diff --git a/README.md b/README.md index 3552b08..850b558 100644 --- a/README.md +++ b/README.md @@ -25,10 +25,10 @@ You can pass a number of options to the plugin to control various settings. | position | [Leaflet control position](http://leafletjs.com/reference-1.1.0.html#controls) | 'topleft' | Positions the print button | | sizeModes | array | `Current` | Options available include `Current`, `A4Portrait`, `A4Landscape` or a [custom size object](#custom-print-sizes) | | defaultSizeTitles | object | `{Current: 'Current Size', A4Landscape: 'A4 Landscape', A4Portrait: 'A4 Portrait'}`| button tooltips for the default page sizes | -| exportOnly | Boolean | `false` | If set to `true` the map is exported to a png file | +| outputMode | string | 'print' | Options available include `print`, `download` (download image as png), `event` (get image as blob in event) | | tileLayer | [Leaflet tile layer](http://leafletjs.com/reference-1.1.0.html#tilelayer) | `null` | A tile layer that you can wait for to draw (helpful when resizing) | | tileWait | Integer | 500 | How long to wait for the tiles to draw (helpful when resizing) | -| filename | string | 'map' | Name of the file if export only option set to true | +| filename | string | 'map' | Name of the file if output mode option set to 'download' | | hidden | Boolean | false | Set to true if you don't want to display the toolbar. Instead you can create your own buttons or fire print events programmatically. You still need to call `addTo(map)` to set the leaflet map context. | | hideControlContainer | Boolean | true | Hides the leaflet controls like the zoom buttons and the attribution on the print out. | | hideClasses | array | [] | Hides classes on the print out. Use an array of strings as follow : ['div1', 'div2'] | diff --git a/dist/bundle.js b/dist/bundle.js index 184bb88..cbbf9b6 100644 --- a/dist/bundle.js +++ b/dist/bundle.js @@ -1,2 +1,2 @@ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e():"function"==typeof define&&define.amd?define(e):e()}(0,function(){"use strict";function t(t,e){return e={exports:{}},t(e,e.exports),e.exports}var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=t(function(t){!function(e){function n(t,e){function n(t){return e.bgcolor&&(t.style.backgroundColor=e.bgcolor),e.width&&(t.style.width=e.width+"px"),e.height&&(t.style.height=e.height+"px"),e.style&&Object.keys(e.style).forEach(function(n){t.style[n]=e.style[n]}),t}return e=e||{},s(e),Promise.resolve(t).then(function(t){return u(t,e.filter,!0)}).then(c).then(d).then(n).then(function(n){return g(n,e.width||h.width(t),e.height||h.height(t))})}function i(t,e){return l(t,e||{}).then(function(e){return e.getContext("2d").getImageData(0,0,h.width(t),h.height(t)).data})}function o(t,e){return l(t,e||{}).then(function(t){return t.toDataURL()})}function r(t,e){return e=e||{},l(t,e).then(function(t){return t.toDataURL("image/jpeg",e.quality||1)})}function a(t,e){return l(t,e||{}).then(h.canvasToBlob)}function s(t){void 0===t.imagePlaceholder?w.impl.options.imagePlaceholder=M.imagePlaceholder:w.impl.options.imagePlaceholder=t.imagePlaceholder,void 0===t.cacheBust?w.impl.options.cacheBust=M.cacheBust:w.impl.options.cacheBust=t.cacheBust}function l(t,e){function i(t){var n=document.createElement("canvas");if(n.width=e.width||h.width(t),n.height=e.height||h.height(t),e.bgcolor){var i=n.getContext("2d");i.fillStyle=e.bgcolor,i.fillRect(0,0,n.width,n.height)}return n}return n(t,e).then(h.makeImage).then(h.delay(100)).then(function(e){var n=i(t);return n.getContext("2d").drawImage(e,0,0),n})}function u(t,e,n){function i(t){return t instanceof HTMLCanvasElement?h.makeImage(t.toDataURL()):t.cloneNode(!1)}function o(t,e,n){var i=t.childNodes;return 0===i.length?Promise.resolve(e):function(t,e,n){var i=Promise.resolve();return e.forEach(function(e){i=i.then(function(){return u(e,n)}).then(function(e){e&&t.appendChild(e)})}),i}(e,h.asArray(i),n).then(function(){return e})}function r(t,e){function n(){!function(t,e){t.cssText?e.cssText=t.cssText:function(t,e){h.asArray(t).forEach(function(n){e.setProperty(n,t.getPropertyValue(n),t.getPropertyPriority(n))})}(t,e)}(window.getComputedStyle(t),e.style)}function i(){function n(n){var i=window.getComputedStyle(t,n),o=i.getPropertyValue("content");if(""!==o&&"none"!==o){var r=h.uid();e.className=e.className+" "+r;var a=document.createElement("style");a.appendChild(function(t,e,n){var i="."+t+":"+e,o=n.cssText?function(t){var e=t.getPropertyValue("content");return t.cssText+" content: "+e+";"}(n):function(t){function e(e){return e+": "+t.getPropertyValue(e)+(t.getPropertyPriority(e)?" !important":"")}return h.asArray(t).map(e).join("; ")+";"}(n);return document.createTextNode(i+"{"+o+"}")}(r,n,i)),e.appendChild(a)}}[":before",":after"].forEach(function(t){n(t)})}function o(){t instanceof HTMLTextAreaElement&&(e.innerHTML=t.value),t instanceof HTMLInputElement&&e.setAttribute("value",t.value)}function r(){e instanceof SVGElement&&(e.setAttribute("xmlns","http://www.w3.org/2000/svg"),e instanceof SVGRectElement&&["width","height"].forEach(function(t){var n=e.getAttribute(t);n&&e.style.setProperty(t,n)}))}return e instanceof Element?Promise.resolve().then(n).then(i).then(o).then(r).then(function(){return e}):e}return n||!e||e(t)?Promise.resolve(t).then(i).then(function(n){return o(t,n,e)}).then(function(e){return r(t,e)}):Promise.resolve()}function c(t){return p.resolveAll().then(function(e){var n=document.createElement("style");return t.appendChild(n),n.appendChild(document.createTextNode(e)),t})}function d(t){return f.inlineAll(t).then(function(){return t})}function g(t,e,n){return Promise.resolve(t).then(function(t){return t.setAttribute("xmlns","http://www.w3.org/1999/xhtml"),(new XMLSerializer).serializeToString(t)}).then(h.escapeXhtml).then(function(t){return''+t+""}).then(function(t){return''+t+""}).then(function(t){return"data:image/svg+xml;charset=utf-8,"+t})}var h=function(){function t(){var t="application/font-woff",e="image/jpeg";return{woff:t,woff2:t,ttf:"application/font-truetype",eot:"application/vnd.ms-fontobject",png:"image/png",jpg:e,jpeg:e,gif:"image/gif",tiff:"image/tiff",svg:"image/svg+xml"}}function e(t){var e=/\.([^\.\/]*?)$/g.exec(t);return e?e[1]:""}function n(n){var i=e(n).toLowerCase();return t()[i]||""}function i(t){return-1!==t.search(/^(data:)/)}function o(t){return new Promise(function(e){for(var n=window.atob(t.toDataURL().split(",")[1]),i=n.length,o=new Uint8Array(i),r=0;rthis.mapContainer.style.height?this.orientation="portrait":this.orientation="landscape",this._map.setView(this.originalState.center),this._map.setZoom(this.originalState.zoom),this._map.invalidateSize(),this.options.tileLayer?this._pausePrint(t):this._printOpertion(t)},_pausePrint:function(t){var e=this,n=setInterval(function(){e.options.tileLayer.isLoading()||(clearInterval(n),e._printOpertion(t))},e.options.tileWait)},_printOpertion:function(t){var e=this,o=this.mapContainer.style.width;(this.originalState.widthWasAuto&&"CurrentSize"===t||this.originalState.widthWasPercentage&&"CurrentSize"===t)&&(o=this.originalState.mapWidth),n.toPng(e.mapContainer,{width:parseInt(o),height:parseInt(e.mapContainer.style.height.replace("px"))}).then(function(t){var n=e._dataURItoBlob(t);e.options.exportOnly?i.saveAs(n,e.options.filename+".png"):e._sendToBrowserPrint(t,e.orientation),e._toggleControls(!0),e.outerContainer&&(e.originalState.widthWasAuto?e.mapContainer.style.width="auto":e.originalState.widthWasPercentage?e.mapContainer.style.width=e.originalState.percentageWidth:e.mapContainer.style.width=e.originalState.mapWidth,e.mapContainer.style.height=e.originalState.mapHeight,e._removeOuterContainer(e.mapContainer,e.outerContainer,e.blankDiv),e._map.invalidateSize(),e._map.setView(e.originalState.center),e._map.setZoom(e.originalState.zoom)),e._map.fire("easyPrint-finished")}).catch(function(t){console.error("Print operation failed",t)})},_sendToBrowserPrint:function(t,e){this._page.resizeTo(600,800);var n=this._createNewWindow(t,e,this);this._page.document.body.innerHTML="",this._page.document.write(n),this._page.document.close()},_createSpinner:function(t,e,n){return""+t+"\n
Loading...
'},_createNewWindow:function(t,e,n){return"\n \n \r\n `;\r\n },\r\n\r\n _createOuterContainer: function (mapDiv) {\r\n var outerContainer = document.createElement('div'); \r\n mapDiv.parentNode.insertBefore(outerContainer, mapDiv); \r\n mapDiv.parentNode.removeChild(mapDiv);\r\n outerContainer.appendChild(mapDiv);\r\n outerContainer.style.width = mapDiv.style.width;\r\n outerContainer.style.height = mapDiv.style.height;\r\n outerContainer.style.display = 'inline-block'\r\n outerContainer.style.overflow = 'hidden';\r\n return outerContainer;\r\n },\r\n\r\n _removeOuterContainer: function (mapDiv, outerContainer, blankDiv) {\r\n if (outerContainer.parentNode) {\r\n outerContainer.parentNode.insertBefore(mapDiv, outerContainer);\r\n outerContainer.parentNode.removeChild(blankDiv);\r\n outerContainer.parentNode.removeChild(outerContainer); \r\n }\r\n },\r\n\r\n _addCss: function () {\r\n var css = document.createElement(\"style\");\r\n css.type = \"text/css\";\r\n css.innerHTML = `.leaflet-control-easyPrint-button { \r\n background-image: url(data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjE2cHgiIGhlaWdodD0iMTZweCIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDUxMiA1MTI7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPGc+Cgk8cGF0aCBkPSJNMTI4LDMyaDI1NnY2NEgxMjhWMzJ6IE00ODAsMTI4SDMyYy0xNy42LDAtMzIsMTQuNC0zMiwzMnYxNjBjMCwxNy42LDE0LjM5OCwzMiwzMiwzMmg5NnYxMjhoMjU2VjM1Mmg5NiAgIGMxNy42LDAsMzItMTQuNCwzMi0zMlYxNjBDNTEyLDE0Mi40LDQ5Ny42LDEyOCw0ODAsMTI4eiBNMzUyLDQ0OEgxNjBWMjg4aDE5MlY0NDh6IE00ODcuMTk5LDE3NmMwLDEyLjgxMy0xMC4zODcsMjMuMi0yMy4xOTcsMjMuMiAgIGMtMTIuODEyLDAtMjMuMjAxLTEwLjM4Ny0yMy4yMDEtMjMuMnMxMC4zODktMjMuMiwyMy4xOTktMjMuMkM0NzYuODE0LDE1Mi44LDQ4Ny4xOTksMTYzLjE4Nyw0ODcuMTk5LDE3NnoiIGZpbGw9IiMwMDAwMDAiLz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8L3N2Zz4K);\r\n background-size: 16px 16px; \r\n cursor: pointer; \r\n }\r\n .leaflet-control-easyPrint-button-export { \r\n background-image: url(data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjE2cHgiIGhlaWdodD0iMTZweCIgdmlld0JveD0iMCAwIDQzMy41IDQzMy41IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA0MzMuNSA0MzMuNTsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8Zz4KCTxnIGlkPSJmaWxlLWRvd25sb2FkIj4KCQk8cGF0aCBkPSJNMzk1LjI1LDE1M2gtMTAyVjBoLTE1M3YxNTNoLTEwMmwxNzguNSwxNzguNUwzOTUuMjUsMTUzeiBNMzguMjUsMzgyLjV2NTFoMzU3di01MUgzOC4yNXoiIGZpbGw9IiMwMDAwMDAiLz4KCTwvZz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8L3N2Zz4K);\r\n background-size: 16px 16px; \r\n cursor: pointer; \r\n }\r\n .easyPrintHolder a {\r\n background-size: 16px 16px;\r\n cursor: pointer;\r\n }\r\n .easyPrintHolder .CurrentSize{\r\n background-image: url(data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTZweCIgdmVyc2lvbj0iMS4xIiBoZWlnaHQ9IjE2cHgiIHZpZXdCb3g9IjAgMCA2NCA2NCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNjQgNjQiPgogIDxnPgogICAgPGcgZmlsbD0iIzFEMUQxQiI+CiAgICAgIDxwYXRoIGQ9Ik0yNS4yNTUsMzUuOTA1TDQuMDE2LDU3LjE0NVY0Ni41OWMwLTEuMTA4LTAuODk3LTIuMDA4LTIuMDA4LTIuMDA4QzAuODk4LDQ0LjU4MiwwLDQ1LjQ4MSwwLDQ2LjU5djE1LjQwMiAgICBjMCwwLjI2MSwwLjA1MywwLjUyMSwwLjE1NSwwLjc2N2MwLjIwMywwLjQ5MiwwLjU5NCwwLjg4MiwxLjA4NiwxLjA4N0MxLjQ4Niw2My45NDcsMS43NDcsNjQsMi4wMDgsNjRoMTUuNDAzICAgIGMxLjEwOSwwLDIuMDA4LTAuODk4LDIuMDA4LTIuMDA4cy0wLjg5OC0yLjAwOC0yLjAwOC0yLjAwOEg2Ljg1NWwyMS4yMzgtMjEuMjRjMC43ODQtMC43ODQsMC43ODQtMi4wNTUsMC0yLjgzOSAgICBTMjYuMDM5LDM1LjEyMSwyNS4yNTUsMzUuOTA1eiIgZmlsbD0iIzAwMDAwMCIvPgogICAgICA8cGF0aCBkPSJtNjMuODQ1LDEuMjQxYy0wLjIwMy0wLjQ5MS0wLjU5NC0wLjg4Mi0xLjA4Ni0xLjA4Ny0wLjI0NS0wLjEwMS0wLjUwNi0wLjE1NC0wLjc2Ny0wLjE1NGgtMTUuNDAzYy0xLjEwOSwwLTIuMDA4LDAuODk4LTIuMDA4LDIuMDA4czAuODk4LDIuMDA4IDIuMDA4LDIuMDA4aDEwLjU1NmwtMjEuMjM4LDIxLjI0Yy0wLjc4NCwwLjc4NC0wLjc4NCwyLjA1NSAwLDIuODM5IDAuMzkyLDAuMzkyIDAuOTA2LDAuNTg5IDEuNDIsMC41ODlzMS4wMjctMC4xOTcgMS40MTktMC41ODlsMjEuMjM4LTIxLjI0djEwLjU1NWMwLDEuMTA4IDAuODk3LDIuMDA4IDIuMDA4LDIuMDA4IDEuMTA5LDAgMi4wMDgtMC44OTkgMi4wMDgtMi4wMDh2LTE1LjQwMmMwLTAuMjYxLTAuMDUzLTAuNTIyLTAuMTU1LTAuNzY3eiIgZmlsbD0iIzAwMDAwMCIvPgogICAgPC9nPgogIDwvZz4KPC9zdmc+Cg==)\r\n }\r\n .easyPrintHolder .page {\r\n background-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=);\r\n }\r\n .easyPrintHolder .A4Landscape { \r\n transform: rotate(-90deg);\r\n }\r\n\r\n .leaflet-control-easyPrint-button{\r\n display: inline-block;\r\n }\r\n .easyPrintHolder{\r\n margin-top:-31px;\r\n margin-bottom: -5px;\r\n margin-left: 30px;\r\n padding-left: 0px;\r\n display: none;\r\n }\r\n\r\n .easyPrintSizeMode {\r\n display: inline-block;\r\n }\r\n .easyPrintHolder .easyPrintSizeMode a {\r\n border-radius: 0px;\r\n }\r\n\r\n .easyPrintHolder .easyPrintSizeMode:last-child a{\r\n border-top-right-radius: 2px;\r\n border-bottom-right-radius: 2px;\r\n margin-left: -1px;\r\n }\r\n\r\n .easyPrintPortrait:hover, .easyPrintLandscape:hover{\r\n background-color: #757570;\r\n cursor: pointer;\r\n }`;\r\n document.body.appendChild(css);\r\n },\r\n\r\n _dataURItoBlob: function (dataURI) {\r\n var byteString = atob(dataURI.split(',')[1]);\r\n var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];\r\n var ab = new ArrayBuffer(byteString.length);\r\n var dw = new DataView(ab);\r\n for(var i = 0; i < byteString.length; i++) {\r\n dw.setUint8(i, byteString.charCodeAt(i));\r\n }\r\n return new Blob([ab], {type: mimeString});\r\n },\r\n\r\n _togglePageSizeButtons: function (e) {\r\n var holderStyle = this.holder.style\r\n var linkStyle = this.link.style\r\n if (e.type === 'mouseover') {\r\n holderStyle.display = 'block';\r\n linkStyle.borderTopRightRadius = '0'\r\n linkStyle.borderBottomRightRadius = '0'\r\n } else {\r\n holderStyle.display = 'none';\r\n linkStyle.borderTopRightRadius = '2px'\r\n linkStyle.borderBottomRightRadius = '2px' \r\n }\r\n },\r\n\r\n _toggleControls: function (show) {\r\n var controlContainer = document.getElementsByClassName(\"leaflet-control-container\")[0];\r\n if (show) return controlContainer.style.display = 'block';\r\n controlContainer.style.display = 'none';\r\n },\r\n\r\n _a4PageSize: {\r\n height: 715,\r\n width: 1045\r\n }\r\n\r\n});\r\n\r\nL.easyPrint = function(options) {\r\n return new L.Control.EasyPrint(options);\r\n};\r\n\r\n"],"names":["a","b","c","bgcolor","style","backgroundColor","width","height","Object","keys","forEach","g","Promise","resolve","then","i","filter","j","k","l","q","h","getContext","getImageData","data","d","toDataURL","e","quality","f","canvasToBlob","imagePlaceholder","v","impl","options","u","cacheBust","document","createElement","fillStyle","fillRect","makeImage","delay","drawImage","HTMLCanvasElement","cloneNode","childNodes","length","appendChild","asArray","cssText","setProperty","getPropertyValue","getPropertyPriority","window","getComputedStyle","uid","className","map","join","createTextNode","HTMLTextAreaElement","innerHTML","value","HTMLInputElement","setAttribute","SVGElement","SVGRectElement","getAttribute","Element","s","resolveAll","t","inlineAll","XMLSerializer","serializeToString","escapeXhtml","woff","woff2","ttf","eot","png","jpg","jpeg","gif","tiff","svg","exec","toLowerCase","search","atob","split","Uint8Array","charCodeAt","Blob","type","toBlob","implementation","createHTMLDocument","head","body","href","Image","onload","onerror","src","test","Date","getTime","readyState","status","FileReader","onloadend","result","readAsDataURL","response","console","error","XMLHttpRequest","onreadystatechange","ontimeout","responseType","timeout","open","send","replace","m","setTimeout","n","push","o","p","r","scrollWidth","scrollHeight","parseFloat","escape","parseExtension","mimeType","dataAsUrl","isDataUrl","resolveUrl","getAndEncode","Math","random","pow","toString","slice","RegExp","shouldProcess","readUrls","inline","all","CSSRule","FONT_FACE_RULE","cssRules","bind","log","parentStyleSheet","styleSheets","readAll","HTMLImageElement","newImage","toSvg","toPng","toJpeg","toPixelData","fontFaces","images","util","inliner","module","saveAs","view","navigator","userAgent","doc","get_URL","URL","webkitURL","save_link","createElementNS","can_use_save_link","click","node","event","MouseEvent","dispatchEvent","is_safari","HTMLElement","safari","is_chrome_ios","throw_outside","ex","setImmediate","revoke","file","revoker","revokeObjectURL","remove","dispatch","filesaver","event_types","concat","listener","call","auto_bom","blob","String","fromCharCode","FileSaver","name","no_auto_bom","object_url","this","force","dispatch_all","INIT","createObjectURL","download","DONE","reader","url","location","undefined","FS_proto","prototype","msSaveOrOpenBlob","abort","WRITING","onwritestart","onprogress","onwrite","onabort","onwriteend","self","content","exports","L","Control","EasyPrint","extend","title","mapContainer","_map","getContainer","sizeModes","sizeMode","defaultSizeTitles","Current","_a4PageSize","A4Landscape","A4Portrait","container","DomUtil","create","hidden","_addCss","DomEvent","addListener","_togglePageSizeButtons","btnClass","exportOnly","link","id","holder","btn","printMap","disableClickPropagation","filename","_page","write","_createSpinner","customWindowTitle","customSpinnerClass","spinnerBgCOlor","originalState","getZoom","getCenter","mapWidth","getSize","x","widthWasAuto","includes","percentageWidth","widthWasPercentage","fire","hideControlContainer","_toggleControls","target","_printOpertion","outerContainer","_createOuterContainer","_createImagePlaceholder","plugin","parseInt","mapHeight","dataUrl","blankDiv","parentElement","insertBefore","backgroundImage","position","zIndex","display","_resizeAndPrintMap","catch","opacity","pageSize","item","orientation","setView","center","setZoom","zoom","invalidateSize","tileLayer","_pausePrint","loadingTest","setInterval","isLoading","tileWait","sizemode","widthForExport","_dataURItoBlob","_sendToBrowserPrint","_removeOuterContainer","img","resizeTo","pageContent","_createNewWindow","close","spinnerClass","spinnerColor","mapDiv","parentNode","removeChild","overflow","css","dataURI","byteString","mimeString","ab","ArrayBuffer","dw","DataView","setUint8","holderStyle","linkStyle","borderTopRightRadius","borderBottomRightRadius","show","controlContainer","getElementsByClassName","easyPrint"],"mappings":"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"} \ No newline at end of file +{"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","var domtoimage = require('dom-to-image');\r\nvar fileSaver = require('file-saver');\r\n\r\nL.Control.EasyPrint = L.Control.extend({\r\n options: {\r\n title: 'Print map',\r\n position: 'topleft',\r\n sizeModes: ['Current'],\r\n filename: 'map',\r\n outputMode: 'print',\r\n hidden: false,\r\n tileWait: 500,\r\n hideControlContainer: true,\r\n hideClasses: [],\r\n customWindowTitle: window.document.title,\r\n spinnerBgCOlor: '#0DC5C1',\r\n customSpinnerClass: 'epLoader',\r\n defaultSizeTitles: {\r\n Current: 'Current Size',\r\n A4Landscape: 'A4 Landscape',\r\n A4Portrait: 'A4 Portrait'\r\n }\r\n },\r\n\r\n onAdd: function () { \r\n this.mapContainer = this._map.getContainer();\r\n this.options.sizeModes = this.options.sizeModes.map(function (sizeMode) {\r\n if (sizeMode === 'Current') {\r\n return {\r\n name: this.options.defaultSizeTitles.Current,\r\n className: 'CurrentSize'\r\n }\r\n }\r\n if (sizeMode === 'A4Landscape') {\r\n return {\r\n height: this._a4PageSize.height,\r\n width: this._a4PageSize.width,\r\n name: this.options.defaultSizeTitles.A4Landscape,\r\n className: 'A4Landscape page'\r\n }\r\n }\r\n if (sizeMode === 'A4Portrait') {\r\n return {\r\n height: this._a4PageSize.width,\r\n width: this._a4PageSize.height,\r\n name: this.options.defaultSizeTitles.A4Portrait,\r\n className: 'A4Portrait page'\r\n }\r\n };\r\n return sizeMode;\r\n }, this);\r\n \r\n var container = L.DomUtil.create('div', 'leaflet-control-easyPrint leaflet-bar leaflet-control');\r\n if (!this.options.hidden) {\r\n this._addCss();\r\n\r\n L.DomEvent.addListener(container, 'mouseover', this._togglePageSizeButtons, this);\r\n L.DomEvent.addListener(container, 'mouseout', this._togglePageSizeButtons, this);\r\n\r\n var btnClass = 'leaflet-control-easyPrint-button'\r\n if (this.options.outputMode === 'download') btnClass = btnClass + '-export'\r\n\r\n this.link = L.DomUtil.create('a', btnClass, container);\r\n this.link.id = \"leafletEasyPrint\";\r\n this.link.title = this.options.title;\r\n this.holder = L.DomUtil.create('ul', 'easyPrintHolder', container);\r\n\r\n this.options.sizeModes.forEach(function (sizeMode) {\r\n var btn = L.DomUtil.create('li', 'easyPrintSizeMode', this.holder);\r\n btn.title = sizeMode.name;\r\n var link = L.DomUtil.create('a', sizeMode.className, btn);\r\n L.DomEvent.addListener(btn, 'click', this.printMap, this);\r\n }, this);\r\n\r\n L.DomEvent.disableClickPropagation(container);\r\n }\r\n return container;\r\n },\r\n\r\n printMap: function (event, filename) {\r\n if (filename) {\r\n this.options.filename = filename\r\n }\r\n if (this.options.outputMode === 'print') {\r\n this._page = window.open(\"\", \"_blank\", 'toolbar=no,status=no,menubar=no,scrollbars=no,resizable=no,left=10, top=10, width=200, height=250, visible=none');\r\n this._page.document.write(this._createSpinner(this.options.customWindowTitle, this.options.customSpinnerClass, this.options.spinnerBgCOlor));\r\n }\r\n this.originalState = {\r\n mapWidth: this.mapContainer.style.width,\r\n widthWasAuto: false,\r\n widthWasPercentage: false,\r\n mapHeight: this.mapContainer.style.height,\r\n zoom: this._map.getZoom(),\r\n center: this._map.getCenter()\r\n };\r\n if (this.originalState.mapWidth === 'auto') {\r\n this.originalState.mapWidth = this._map.getSize().x + 'px'\r\n this.originalState.widthWasAuto = true\r\n } else if (this.originalState.mapWidth.includes('%')) {\r\n this.originalState.percentageWidth = this.originalState.mapWidth\r\n this.originalState.widthWasPercentage = true\r\n this.originalState.mapWidth = this._map.getSize().x + 'px'\r\n }\r\n this._map.fire(\"easyPrint-start\", { event: event });\r\n if (!this.options.hidden) {\r\n this._togglePageSizeButtons({type: null});\r\n }\r\n if (this.options.hideControlContainer) {\r\n this._toggleControls(); \r\n }\r\n if (this.options.hideClasses) {\r\n this._toggleClasses(this.options.hideClasses);\r\n }\r\n var sizeMode = typeof event !== 'string' ? event.target.className : event;\r\n if (sizeMode === 'CurrentSize') {\r\n return this._printOpertion(sizeMode);\r\n }\r\n this.outerContainer = this._createOuterContainer(this.mapContainer)\r\n if (this.originalState.widthWasAuto) {\r\n this.outerContainer.style.width = this.originalState.mapWidth\r\n }\r\n this._createImagePlaceholder(sizeMode)\r\n },\r\n\r\n _createImagePlaceholder: function (sizeMode) {\r\n var plugin = this;\r\n domtoimage.toPng(this.mapContainer, {\r\n width: parseInt(this.originalState.mapWidth.replace('px')),\r\n height: parseInt(this.originalState.mapHeight.replace('px'))\r\n })\r\n .then(function (dataUrl) {\r\n plugin.blankDiv = document.createElement(\"div\");\r\n var blankDiv = plugin.blankDiv;\r\n plugin.outerContainer.parentElement.insertBefore(blankDiv, plugin.outerContainer);\r\n blankDiv.className = 'epHolder';\r\n blankDiv.style.backgroundImage = 'url(\"' + dataUrl + '\")';\r\n blankDiv.style.position = 'absolute';\r\n blankDiv.style.zIndex = 1011;\r\n blankDiv.style.display = 'initial';\r\n blankDiv.style.width = plugin.originalState.mapWidth;\r\n blankDiv.style.height = plugin.originalState.mapHeight;\r\n plugin._resizeAndPrintMap(sizeMode);\r\n })\r\n .catch(function (error) {\r\n console.error('oops, something went wrong!', error);\r\n });\r\n },\r\n\r\n _resizeAndPrintMap: function (sizeMode) {\r\n this.outerContainer.style.opacity = 0;\r\n var pageSize = this.options.sizeModes.filter(function (item) {\r\n return item.className.indexOf(sizeMode) > -1;\r\n });\r\n pageSize = pageSize[0]\r\n this.mapContainer.style.width = pageSize.width + 'px';\r\n this.mapContainer.style.height = pageSize.height + 'px';\r\n if (this.mapContainer.style.width > this.mapContainer.style.height) {\r\n this.orientation = 'portrait';\r\n } else {\r\n this.orientation = 'landscape';\r\n }\r\n this._map.setView(this.originalState.center);\r\n this._map.setZoom(this.originalState.zoom);\r\n this._map.invalidateSize();\r\n if (this.options.tileLayer) {\r\n this._pausePrint(sizeMode)\r\n } else {\r\n this._printOpertion(sizeMode)\r\n }\r\n },\r\n\r\n _pausePrint: function (sizeMode) {\r\n var plugin = this\r\n var loadingTest = setInterval(function () { \r\n if(!plugin.options.tileLayer.isLoading()) {\r\n clearInterval(loadingTest);\r\n plugin._printOpertion(sizeMode)\r\n }\r\n }, plugin.options.tileWait);\r\n },\r\n\r\n _printOpertion: function (sizemode) {\r\n var plugin = this;\r\n var widthForExport = this.mapContainer.style.width\r\n if (this.originalState.widthWasAuto && sizemode === 'CurrentSize' || this.originalState.widthWasPercentage && sizemode === 'CurrentSize') {\r\n widthForExport = this.originalState.mapWidth\r\n }\r\n domtoimage.toPng(plugin.mapContainer, {\r\n width: parseInt(widthForExport),\r\n height: parseInt(plugin.mapContainer.style.height.replace('px'))\r\n })\r\n .then(function (dataUrl) {\r\n var blob = plugin._dataURItoBlob(dataUrl);\r\n if (plugin.options.outputMode === 'download') {\r\n fileSaver.saveAs(blob, plugin.options.filename + '.png');\r\n } else if (plugin.options.outputMode === 'print') {\r\n plugin._sendToBrowserPrint(dataUrl, plugin.orientation);\r\n }\r\n plugin._toggleControls(true);\r\n plugin._toggleClasses(plugin.options.hideClasses, true);\r\n\r\n if (plugin.outerContainer) {\r\n if (plugin.originalState.widthWasAuto) {\r\n plugin.mapContainer.style.width = 'auto'\r\n } else if (plugin.originalState.widthWasPercentage) {\r\n plugin.mapContainer.style.width = plugin.originalState.percentageWidth\r\n }\r\n else {\r\n plugin.mapContainer.style.width = plugin.originalState.mapWidth; \r\n }\r\n plugin.mapContainer.style.height = plugin.originalState.mapHeight;\r\n plugin._removeOuterContainer(plugin.mapContainer, plugin.outerContainer, plugin.blankDiv)\r\n plugin._map.invalidateSize();\r\n plugin._map.setView(plugin.originalState.center);\r\n plugin._map.setZoom(plugin.originalState.zoom);\r\n }\r\n if (plugin.options.outputMode === 'event') {\r\n plugin._map.fire(\"easyPrint-finished\", {event: blob});\r\n } else {\r\n plugin._map.fire(\"easyPrint-finished\");\r\n }\r\n })\r\n .catch(function (error) {\r\n console.error('Print operation failed', error);\r\n }); \r\n },\r\n\r\n _sendToBrowserPrint: function (img, orientation) {\r\n this._page.resizeTo(600, 800); \r\n var pageContent = this._createNewWindow(img, orientation, this)\r\n this._page.document.body.innerHTML = ''\r\n this._page.document.write(pageContent);\r\n this._page.document.close(); \r\n },\r\n\r\n _createSpinner: function (title, spinnerClass, spinnerColor) {\r\n return ``+ title + `\r\n
Loading...
`;\r\n },\r\n\r\n _createNewWindow: function (img, orientation, plugin) {\r\n return `\r\n \r\n \r\n `;\r\n },\r\n\r\n _createOuterContainer: function (mapDiv) {\r\n var outerContainer = document.createElement('div'); \r\n mapDiv.parentNode.insertBefore(outerContainer, mapDiv); \r\n mapDiv.parentNode.removeChild(mapDiv);\r\n outerContainer.appendChild(mapDiv);\r\n outerContainer.style.width = mapDiv.style.width;\r\n outerContainer.style.height = mapDiv.style.height;\r\n outerContainer.style.display = 'inline-block'\r\n outerContainer.style.overflow = 'hidden';\r\n return outerContainer;\r\n },\r\n\r\n _removeOuterContainer: function (mapDiv, outerContainer, blankDiv) {\r\n if (outerContainer.parentNode) {\r\n outerContainer.parentNode.insertBefore(mapDiv, outerContainer);\r\n outerContainer.parentNode.removeChild(blankDiv);\r\n outerContainer.parentNode.removeChild(outerContainer); \r\n }\r\n },\r\n\r\n _addCss: function () {\r\n var css = document.createElement(\"style\");\r\n css.type = \"text/css\";\r\n css.innerHTML = `.leaflet-control-easyPrint-button { \r\n background-image: url(data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjE2cHgiIGhlaWdodD0iMTZweCIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDUxMiA1MTI7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPGc+Cgk8cGF0aCBkPSJNMTI4LDMyaDI1NnY2NEgxMjhWMzJ6IE00ODAsMTI4SDMyYy0xNy42LDAtMzIsMTQuNC0zMiwzMnYxNjBjMCwxNy42LDE0LjM5OCwzMiwzMiwzMmg5NnYxMjhoMjU2VjM1Mmg5NiAgIGMxNy42LDAsMzItMTQuNCwzMi0zMlYxNjBDNTEyLDE0Mi40LDQ5Ny42LDEyOCw0ODAsMTI4eiBNMzUyLDQ0OEgxNjBWMjg4aDE5MlY0NDh6IE00ODcuMTk5LDE3NmMwLDEyLjgxMy0xMC4zODcsMjMuMi0yMy4xOTcsMjMuMiAgIGMtMTIuODEyLDAtMjMuMjAxLTEwLjM4Ny0yMy4yMDEtMjMuMnMxMC4zODktMjMuMiwyMy4xOTktMjMuMkM0NzYuODE0LDE1Mi44LDQ4Ny4xOTksMTYzLjE4Nyw0ODcuMTk5LDE3NnoiIGZpbGw9IiMwMDAwMDAiLz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8L3N2Zz4K);\r\n background-size: 16px 16px; \r\n cursor: pointer; \r\n }\r\n .leaflet-control-easyPrint-button-export { \r\n background-image: url(data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjE2cHgiIGhlaWdodD0iMTZweCIgdmlld0JveD0iMCAwIDQzMy41IDQzMy41IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA0MzMuNSA0MzMuNTsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8Zz4KCTxnIGlkPSJmaWxlLWRvd25sb2FkIj4KCQk8cGF0aCBkPSJNMzk1LjI1LDE1M2gtMTAyVjBoLTE1M3YxNTNoLTEwMmwxNzguNSwxNzguNUwzOTUuMjUsMTUzeiBNMzguMjUsMzgyLjV2NTFoMzU3di01MUgzOC4yNXoiIGZpbGw9IiMwMDAwMDAiLz4KCTwvZz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8L3N2Zz4K);\r\n background-size: 16px 16px; \r\n cursor: pointer; \r\n }\r\n .easyPrintHolder a {\r\n background-size: 16px 16px;\r\n cursor: pointer;\r\n }\r\n .easyPrintHolder .CurrentSize{\r\n background-image: url(data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTZweCIgdmVyc2lvbj0iMS4xIiBoZWlnaHQ9IjE2cHgiIHZpZXdCb3g9IjAgMCA2NCA2NCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNjQgNjQiPgogIDxnPgogICAgPGcgZmlsbD0iIzFEMUQxQiI+CiAgICAgIDxwYXRoIGQ9Ik0yNS4yNTUsMzUuOTA1TDQuMDE2LDU3LjE0NVY0Ni41OWMwLTEuMTA4LTAuODk3LTIuMDA4LTIuMDA4LTIuMDA4QzAuODk4LDQ0LjU4MiwwLDQ1LjQ4MSwwLDQ2LjU5djE1LjQwMiAgICBjMCwwLjI2MSwwLjA1MywwLjUyMSwwLjE1NSwwLjc2N2MwLjIwMywwLjQ5MiwwLjU5NCwwLjg4MiwxLjA4NiwxLjA4N0MxLjQ4Niw2My45NDcsMS43NDcsNjQsMi4wMDgsNjRoMTUuNDAzICAgIGMxLjEwOSwwLDIuMDA4LTAuODk4LDIuMDA4LTIuMDA4cy0wLjg5OC0yLjAwOC0yLjAwOC0yLjAwOEg2Ljg1NWwyMS4yMzgtMjEuMjRjMC43ODQtMC43ODQsMC43ODQtMi4wNTUsMC0yLjgzOSAgICBTMjYuMDM5LDM1LjEyMSwyNS4yNTUsMzUuOTA1eiIgZmlsbD0iIzAwMDAwMCIvPgogICAgICA8cGF0aCBkPSJtNjMuODQ1LDEuMjQxYy0wLjIwMy0wLjQ5MS0wLjU5NC0wLjg4Mi0xLjA4Ni0xLjA4Ny0wLjI0NS0wLjEwMS0wLjUwNi0wLjE1NC0wLjc2Ny0wLjE1NGgtMTUuNDAzYy0xLjEwOSwwLTIuMDA4LDAuODk4LTIuMDA4LDIuMDA4czAuODk4LDIuMDA4IDIuMDA4LDIuMDA4aDEwLjU1NmwtMjEuMjM4LDIxLjI0Yy0wLjc4NCwwLjc4NC0wLjc4NCwyLjA1NSAwLDIuODM5IDAuMzkyLDAuMzkyIDAuOTA2LDAuNTg5IDEuNDIsMC41ODlzMS4wMjctMC4xOTcgMS40MTktMC41ODlsMjEuMjM4LTIxLjI0djEwLjU1NWMwLDEuMTA4IDAuODk3LDIuMDA4IDIuMDA4LDIuMDA4IDEuMTA5LDAgMi4wMDgtMC44OTkgMi4wMDgtMi4wMDh2LTE1LjQwMmMwLTAuMjYxLTAuMDUzLTAuNTIyLTAuMTU1LTAuNzY3eiIgZmlsbD0iIzAwMDAwMCIvPgogICAgPC9nPgogIDwvZz4KPC9zdmc+Cg==)\r\n }\r\n .easyPrintHolder .page {\r\n background-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=);\r\n }\r\n .easyPrintHolder .A4Landscape { \r\n transform: rotate(-90deg);\r\n }\r\n\r\n .leaflet-control-easyPrint-button{\r\n display: inline-block;\r\n }\r\n .easyPrintHolder{\r\n margin-top:-31px;\r\n margin-bottom: -5px;\r\n margin-left: 30px;\r\n padding-left: 0px;\r\n display: none;\r\n }\r\n\r\n .easyPrintSizeMode {\r\n display: inline-block;\r\n }\r\n .easyPrintHolder .easyPrintSizeMode a {\r\n border-radius: 0px;\r\n }\r\n\r\n .easyPrintHolder .easyPrintSizeMode:last-child a{\r\n border-top-right-radius: 2px;\r\n border-bottom-right-radius: 2px;\r\n margin-left: -1px;\r\n }\r\n\r\n .easyPrintPortrait:hover, .easyPrintLandscape:hover{\r\n background-color: #757570;\r\n cursor: pointer;\r\n }`;\r\n document.body.appendChild(css);\r\n },\r\n\r\n _dataURItoBlob: function (dataURI) {\r\n var byteString = atob(dataURI.split(',')[1]);\r\n var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];\r\n var ab = new ArrayBuffer(byteString.length);\r\n var dw = new DataView(ab);\r\n for(var i = 0; i < byteString.length; i++) {\r\n dw.setUint8(i, byteString.charCodeAt(i));\r\n }\r\n return new Blob([ab], {type: mimeString});\r\n },\r\n\r\n _togglePageSizeButtons: function (e) {\r\n var holderStyle = this.holder.style\r\n var linkStyle = this.link.style\r\n if (e.type === 'mouseover') {\r\n holderStyle.display = 'block';\r\n linkStyle.borderTopRightRadius = '0'\r\n linkStyle.borderBottomRightRadius = '0'\r\n } else {\r\n holderStyle.display = 'none';\r\n linkStyle.borderTopRightRadius = '2px'\r\n linkStyle.borderBottomRightRadius = '2px' \r\n }\r\n },\r\n\r\n _toggleControls: function (show) {\r\n var controlContainer = document.getElementsByClassName(\"leaflet-control-container\")[0];\r\n if (show) return controlContainer.style.display = 'block';\r\n controlContainer.style.display = 'none';\r\n },\r\n _toggleClasses: function (classes, show) {\r\n classes.forEach(function (className) {\r\n var div = document.getElementsByClassName(className)[0];\r\n if (show) return div.style.display = 'block';\r\n div.style.display = 'none';\r\n });\r\n },\r\n\r\n _a4PageSize: {\r\n height: 715,\r\n width: 1045\r\n }\r\n\r\n});\r\n\r\nL.easyPrint = function(options) {\r\n return new L.Control.EasyPrint(options);\r\n};\r\n\r\n"],"names":["global","toSvg","node","options","applyOptions","clone","bgcolor","style","backgroundColor","width","height","Object","keys","forEach","property","copyOptions","Promise","resolve","then","cloneNode","filter","embedFonts","inlineImages","makeSvgDataUri","util","toPixelData","draw","canvas","getContext","getImageData","data","toPng","toDataURL","toJpeg","quality","toBlob","canvasToBlob","domtoimage","impl","imagePlaceholder","defaultOptions","cacheBust","domNode","newCanvas","document","createElement","ctx","fillStyle","fillRect","makeImage","delay","image","drawImage","root","makeNodeCopy","HTMLCanvasElement","cloneChildren","original","children","childNodes","length","parent","done","child","childClone","appendChild","asArray","processClone","cloneStyle","source","target","cssText","name","setProperty","getPropertyValue","getPropertyPriority","window","getComputedStyle","clonePseudoElements","clonePseudoElement","element","content","className","uid","styleElement","selector","formatProperty","map","join","createTextNode","copyUserInput","HTMLTextAreaElement","innerHTML","value","HTMLInputElement","setAttribute","fixSvg","SVGElement","SVGRectElement","attribute","getAttribute","Element","fontFaces","resolveAll","styleNode","images","inlineAll","XMLSerializer","serializeToString","escapeXhtml","xhtml","foreignObject","svg","mimes","WOFF","woff","woff2","ttf","eot","png","jpg","jpeg","gif","tiff","parseExtension","url","match","exec","mimeType","extension","toLowerCase","isDataUrl","search","binaryString","atob","split","binaryArray","Uint8Array","i","charCodeAt","Blob","type","resolveUrl","baseUrl","doc","implementation","createHTMLDocument","base","head","a","body","href","uri","reject","Image","onload","onerror","src","getAndEncode","TIMEOUT","test","Date","getTime","request","readyState","status","placeholder","fail","encoder","FileReader","onloadend","result","readAsDataURL","response","timeout","message","console","error","XMLHttpRequest","onreadystatechange","ontimeout","responseType","open","send","dataAsUrl","escape","string","replace","ms","arg","setTimeout","arrayLike","array","push","leftBorder","px","rightBorder","scrollWidth","topBorder","bottomBorder","scrollHeight","styleProperty","parseFloat","index","Math","random","pow","toString","slice","inliner","shouldProcess","URL_REGEX","readUrls","inline","get","urlAsRegex","RegExp","dataUrl","urls","readAll","webFonts","all","webFont","cssStrings","selectWebFontRules","cssRules","rule","CSSRule","FONT_FACE_RULE","getCssRules","styleSheets","sheet","bind","e","log","newWebFont","webFontRule","parentStyleSheet","rules","newImage","background","inlined","HTMLImageElement","undefined","module","saveAs","view","navigator","userAgent","get_URL","URL","webkitURL","save_link","createElementNS","can_use_save_link","click","event","MouseEvent","dispatchEvent","is_safari","HTMLElement","safari","is_chrome_ios","throw_outside","ex","setImmediate","revoke","file","revoker","revokeObjectURL","remove","dispatch","filesaver","event_types","concat","listener","call","auto_bom","blob","String","fromCharCode","FileSaver","no_auto_bom","object_url","this","force","dispatch_all","INIT","createObjectURL","download","DONE","reader","location","FS_proto","prototype","msSaveOrOpenBlob","abort","WRITING","onwritestart","onprogress","onwrite","onabort","onwriteend","self","exports","L","Control","EasyPrint","extend","title","mapContainer","_map","getContainer","sizeModes","sizeMode","defaultSizeTitles","Current","_a4PageSize","A4Landscape","A4Portrait","container","DomUtil","create","hidden","_addCss","DomEvent","addListener","_togglePageSizeButtons","btnClass","outputMode","link","id","holder","btn","printMap","disableClickPropagation","filename","_page","write","_createSpinner","customWindowTitle","customSpinnerClass","spinnerBgCOlor","originalState","getZoom","getCenter","mapWidth","getSize","x","widthWasAuto","includes","percentageWidth","widthWasPercentage","fire","hideControlContainer","_toggleControls","hideClasses","_toggleClasses","_printOpertion","outerContainer","_createOuterContainer","_createImagePlaceholder","plugin","parseInt","mapHeight","blankDiv","parentElement","insertBefore","backgroundImage","position","zIndex","display","_resizeAndPrintMap","catch","opacity","pageSize","item","indexOf","orientation","setView","center","setZoom","zoom","invalidateSize","tileLayer","_pausePrint","loadingTest","setInterval","isLoading","tileWait","sizemode","widthForExport","_dataURItoBlob","_sendToBrowserPrint","_removeOuterContainer","img","resizeTo","pageContent","_createNewWindow","close","spinnerClass","spinnerColor","mapDiv","parentNode","removeChild","overflow","css","dataURI","byteString","mimeString","ab","ArrayBuffer","dw","DataView","setUint8","holderStyle","linkStyle","borderTopRightRadius","borderBottomRightRadius","show","controlContainer","getElementsByClassName","classes","div","easyPrint"],"mappings":"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"} \ No newline at end of file diff --git a/src/index.js b/src/index.js index 9236bd4..ed185de 100644 --- a/src/index.js +++ b/src/index.js @@ -7,7 +7,7 @@ L.Control.EasyPrint = L.Control.extend({ position: 'topleft', sizeModes: ['Current'], filename: 'map', - exportOnly: false, + outputMode: 'print', hidden: false, tileWait: 500, hideControlContainer: true, @@ -58,7 +58,7 @@ L.Control.EasyPrint = L.Control.extend({ L.DomEvent.addListener(container, 'mouseout', this._togglePageSizeButtons, this); var btnClass = 'leaflet-control-easyPrint-button' - if (this.options.exportOnly) btnClass = btnClass + '-export' + if (this.options.outputMode === 'download') btnClass = btnClass + '-export' this.link = L.DomUtil.create('a', btnClass, container); this.link.id = "leafletEasyPrint"; @@ -81,7 +81,7 @@ L.Control.EasyPrint = L.Control.extend({ if (filename) { this.options.filename = filename } - if (!this.options.exportOnly) { + if (this.options.outputMode === 'print') { this._page = window.open("", "_blank", 'toolbar=no,status=no,menubar=no,scrollbars=no,resizable=no,left=10, top=10, width=200, height=250, visible=none'); this._page.document.write(this._createSpinner(this.options.customWindowTitle, this.options.customSpinnerClass, this.options.spinnerBgCOlor)); } @@ -191,9 +191,9 @@ L.Control.EasyPrint = L.Control.extend({ }) .then(function (dataUrl) { var blob = plugin._dataURItoBlob(dataUrl); - if (plugin.options.exportOnly) { + if (plugin.options.outputMode === 'download') { fileSaver.saveAs(blob, plugin.options.filename + '.png'); - } else { + } else if (plugin.options.outputMode === 'print') { plugin._sendToBrowserPrint(dataUrl, plugin.orientation); } plugin._toggleControls(true); @@ -214,7 +214,11 @@ L.Control.EasyPrint = L.Control.extend({ plugin._map.setView(plugin.originalState.center); plugin._map.setZoom(plugin.originalState.zoom); } - plugin._map.fire("easyPrint-finished"); + if (plugin.options.outputMode === 'event') { + plugin._map.fire("easyPrint-finished", {event: blob}); + } else { + plugin._map.fire("easyPrint-finished"); + } }) .catch(function (error) { console.error('Print operation failed', error);