@mapgis/leaflet-easyprint 16.8.0 → 17.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/src/index-dev2.js DELETED
@@ -1,453 +0,0 @@
1
- var domtoimage = require('dom-to-image');
2
- var fileSaver = require('file-saver');
3
- var L;
4
- class EasyPrint {
5
- constructor(options){
6
- const defaults = {
7
- title: 'Print map',
8
- position: 'topleft',
9
- sizeModes: ['Current'],
10
- filename: 'map',
11
- exportOnly: false,
12
- hidden: false,
13
- tileWait: 500,
14
- hideControlContainer: true,
15
- hideClasses: [],
16
- customWindowTitle: window.document.title,
17
- spinnerBgCOlor: '#0DC5C1',
18
- customSpinnerClass: 'epLoader',
19
- defaultSizeTitles: {
20
- Current: 'Current Size',
21
- A4Landscape: 'A4 Landscape',
22
- A4Portrait: 'A4 Portrait'
23
- }
24
- }
25
- L = options.L
26
- this.options = Object.assign({}, defaults, options);
27
- }
28
-
29
- onAdd () {
30
- this.mapContainer = this._map.getContainer();
31
- this.options.sizeModes = this.options.sizeModes.map(function (sizeMode) {
32
- if (sizeMode === 'Current') {
33
- return {
34
- name: this.options.defaultSizeTitles.Current,
35
- className: 'CurrentSize'
36
- }
37
- }
38
- if (sizeMode === 'A4Landscape') {
39
- return {
40
- height: this._a4PageSize.height,
41
- width: this._a4PageSize.width,
42
- name: this.options.defaultSizeTitles.A4Landscape,
43
- className: 'A4Landscape page'
44
- }
45
- }
46
- if (sizeMode === 'A4Portrait') {
47
- return {
48
- height: this._a4PageSize.width,
49
- width: this._a4PageSize.height,
50
- name: this.options.defaultSizeTitles.A4Portrait,
51
- className: 'A4Portrait page'
52
- }
53
- };
54
- return sizeMode;
55
- }, this);
56
-
57
- var container = L.DomUtil.create('div', 'leaflet-control-easyPrint leaflet-bar leaflet-control');
58
- if (!this.options.hidden) {
59
- this._addCss();
60
-
61
- L.DomEvent.addListener(container, 'mouseover', this._togglePageSizeButtons, this);
62
- L.DomEvent.addListener(container, 'mouseout', this._togglePageSizeButtons, this);
63
-
64
- var btnClass = 'leaflet-control-easyPrint-button'
65
- if (this.options.exportOnly) btnClass = btnClass + '-export'
66
-
67
- this.link = L.DomUtil.create('a', btnClass, container);
68
- this.link.id = "leafletEasyPrint";
69
- this.link.title = this.options.title;
70
- this.holder = L.DomUtil.create('ul', 'easyPrintHolder', container);
71
-
72
- this.options.sizeModes.forEach(function (sizeMode) {
73
- var btn = L.DomUtil.create('li', 'easyPrintSizeMode', this.holder);
74
- btn.title = sizeMode.name;
75
- var link = L.DomUtil.create('a', sizeMode.className, btn);
76
- L.DomEvent.addListener(btn, 'click', this.printMap, this);
77
- }, this);
78
-
79
- L.DomEvent.disableClickPropagation(container);
80
- }
81
- return container;
82
- }
83
-
84
- printMap(event, filename) {
85
- if (filename) {
86
- this.options.filename = filename
87
- }
88
- if (!this.options.exportOnly) {
89
- 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');
90
- this._page.document.write(this._createSpinner(this.options.customWindowTitle, this.options.customSpinnerClass, this.options.spinnerBgCOlor));
91
- }
92
- this.originalState = {
93
- mapWidth: this.mapContainer.style.width,
94
- widthWasAuto: false,
95
- widthWasPercentage: false,
96
- mapHeight: this.mapContainer.style.height,
97
- zoom: this._map.getZoom(),
98
- center: this._map.getCenter()
99
- };
100
- if (this.originalState.mapWidth === 'auto') {
101
- this.originalState.mapWidth = this._map.getSize().x + 'px'
102
- this.originalState.widthWasAuto = true
103
- } else if (this.originalState.mapWidth.includes('%')) {
104
- this.originalState.percentageWidth = this.originalState.mapWidth
105
- this.originalState.widthWasPercentage = true
106
- this.originalState.mapWidth = this._map.getSize().x + 'px'
107
- }
108
- this._map.fire("easyPrint-start", { event: event });
109
- if (!this.options.hidden) {
110
- this._togglePageSizeButtons({type: null});
111
- }
112
- if (this.options.hideControlContainer) {
113
- this._toggleControls();
114
- }
115
- if (this.options.hideClasses) {
116
- this._toggleClasses(this.options.hideClasses);
117
- }
118
- var sizeMode = typeof event !== 'string' ? event.target.className : event;
119
- if (sizeMode === 'CurrentSize') {
120
- return this._printOpertion(sizeMode);
121
- }
122
- this.outerContainer = this._createOuterContainer(this.mapContainer)
123
- if (this.originalState.widthWasAuto) {
124
- this.outerContainer.style.width = this.originalState.mapWidth
125
- }
126
- this._createImagePlaceholder(sizeMode)
127
- }
128
-
129
- _createImagePlaceholder(sizeMode) {
130
- var plugin = this;
131
- domtoimage.toPng(this.mapContainer, {
132
- width: parseInt(this.originalState.mapWidth.replace('px')),
133
- height: parseInt(this.originalState.mapHeight.replace('px'))
134
- })
135
- .then(function (dataUrl) {
136
- plugin.blankDiv = document.createElement("div");
137
- var blankDiv = plugin.blankDiv;
138
- plugin.outerContainer.parentElement.insertBefore(blankDiv, plugin.outerContainer);
139
- blankDiv.className = 'epHolder';
140
- blankDiv.style.backgroundImage = 'url("' + dataUrl + '")';
141
- blankDiv.style.position = 'absolute';
142
- blankDiv.style.zIndex = 1011;
143
- blankDiv.style.display = 'initial';
144
- blankDiv.style.width = plugin.originalState.mapWidth;
145
- blankDiv.style.height = plugin.originalState.mapHeight;
146
- plugin._resizeAndPrintMap(sizeMode);
147
- })
148
- .catch(function (error) {
149
- console.error('oops, something went wrong!', error);
150
- });
151
- }
152
-
153
- _resizeAndPrintMap(sizeMode) {
154
- this.outerContainer.style.opacity = 0;
155
- var pageSize = this.options.sizeModes.filter(function (item) {
156
- return item.className.indexOf(sizeMode) > -1;
157
- });
158
- pageSize = pageSize[0]
159
- this.mapContainer.style.width = pageSize.width + 'px';
160
- this.mapContainer.style.height = pageSize.height + 'px';
161
- if (this.mapContainer.style.width > this.mapContainer.style.height) {
162
- this.orientation = 'portrait';
163
- } else {
164
- this.orientation = 'landscape';
165
- }
166
- this._map.setView(this.originalState.center);
167
- this._map.setZoom(this.originalState.zoom);
168
- this._map.invalidateSize();
169
- if (this.options.tileLayer) {
170
- this._pausePrint(sizeMode)
171
- } else {
172
- this._printOpertion(sizeMode)
173
- }
174
- }
175
-
176
- _pausePrint(sizeMode) {
177
- var plugin = this
178
- var loadingTest = setInterval(function () {
179
- if(!plugin.options.tileLayer.isLoading()) {
180
- clearInterval(loadingTest);
181
- plugin._printOpertion(sizeMode)
182
- }
183
- }, plugin.options.tileWait);
184
- }
185
-
186
- _printOpertion(sizemode) {
187
- var plugin = this;
188
- var widthForExport = this.mapContainer.style.width
189
- if (this.originalState.widthWasAuto && sizemode === 'CurrentSize' || this.originalState.widthWasPercentage && sizemode === 'CurrentSize') {
190
- widthForExport = this.originalState.mapWidth
191
- }
192
- domtoimage.toPng(plugin.mapContainer, {
193
- width: parseInt(widthForExport),
194
- height: parseInt(plugin.mapContainer.style.height.replace('px'))
195
- })
196
- .then(function (dataUrl) {
197
- var blob = plugin._dataURItoBlob(dataUrl);
198
- if (plugin.options.exportOnly) {
199
- fileSaver.saveAs(blob, plugin.options.filename + '.png');
200
- } else {
201
- plugin._sendToBrowserPrint(dataUrl, plugin.orientation);
202
- }
203
- plugin._toggleControls(true);
204
- plugin._toggleClasses(plugin.options.hideClasses, true);
205
-
206
- if (plugin.outerContainer) {
207
- if (plugin.originalState.widthWasAuto) {
208
- plugin.mapContainer.style.width = 'auto'
209
- } else if (plugin.originalState.widthWasPercentage) {
210
- plugin.mapContainer.style.width = plugin.originalState.percentageWidth
211
- }
212
- else {
213
- plugin.mapContainer.style.width = plugin.originalState.mapWidth;
214
- }
215
- plugin.mapContainer.style.height = plugin.originalState.mapHeight;
216
- plugin._removeOuterContainer(plugin.mapContainer, plugin.outerContainer, plugin.blankDiv)
217
- plugin._map.invalidateSize();
218
- plugin._map.setView(plugin.originalState.center);
219
- plugin._map.setZoom(plugin.originalState.zoom);
220
- }
221
- plugin._map.fire("easyPrint-finished");
222
- })
223
- .catch(function (error) {
224
- console.error('Print operation failed', error);
225
- });
226
- }
227
-
228
- _sendToBrowserPrint(img, orientation) {
229
- this._page.resizeTo(600, 800);
230
- var pageContent = this._createNewWindow(img, orientation, this)
231
- this._page.document.body.innerHTML = ''
232
- this._page.document.write(pageContent);
233
- this._page.document.close();
234
- }
235
-
236
- _createSpinner(title, spinnerClass, spinnerColor) {
237
- return `<html><head><title>`+ title + `</title></head><body><style>
238
- body{
239
- background: ` + spinnerColor + `;
240
- }
241
- .epLoader,
242
- .epLoader:before,
243
- .epLoader:after {
244
- border-radius: 50%;
245
- }
246
- .epLoader {
247
- color: #ffffff;
248
- font-size: 11px;
249
- text-indent: -99999em;
250
- margin: 55px auto;
251
- position: relative;
252
- width: 10em;
253
- height: 10em;
254
- box-shadow: inset 0 0 0 1em;
255
- -webkit-transform: translateZ(0);
256
- -ms-transform: translateZ(0);
257
- transform: translateZ(0);
258
- }
259
- .epLoader:before,
260
- .epLoader:after {
261
- position: absolute;
262
- content: '';
263
- }
264
- .epLoader:before {
265
- width: 5.2em;
266
- height: 10.2em;
267
- background: #0dc5c1;
268
- border-radius: 10.2em 0 0 10.2em;
269
- top: -0.1em;
270
- left: -0.1em;
271
- -webkit-transform-origin: 5.2em 5.1em;
272
- transform-origin: 5.2em 5.1em;
273
- -webkit-animation: load2 2s infinite ease 1.5s;
274
- animation: load2 2s infinite ease 1.5s;
275
- }
276
- .epLoader:after {
277
- width: 5.2em;
278
- height: 10.2em;
279
- background: #0dc5c1;
280
- border-radius: 0 10.2em 10.2em 0;
281
- top: -0.1em;
282
- left: 5.1em;
283
- -webkit-transform-origin: 0px 5.1em;
284
- transform-origin: 0px 5.1em;
285
- -webkit-animation: load2 2s infinite ease;
286
- animation: load2 2s infinite ease;
287
- }
288
- @-webkit-keyframes load2 {
289
- 0% {
290
- -webkit-transform: rotate(0deg);
291
- transform: rotate(0deg);
292
- }
293
- 100% {
294
- -webkit-transform: rotate(360deg);
295
- transform: rotate(360deg);
296
- }
297
- }
298
- @keyframes load2 {
299
- 0% {
300
- -webkit-transform: rotate(0deg);
301
- transform: rotate(0deg);
302
- }
303
- 100% {
304
- -webkit-transform: rotate(360deg);
305
- transform: rotate(360deg);
306
- }
307
- }
308
- </style>
309
- <div class="`+spinnerClass+`">Loading...</div></body></html>`;
310
- }
311
-
312
- _createNewWindow(img, orientation, plugin) {
313
- return `<html><head>
314
- <style>@media print {
315
- img { max-width: 98%!important; max-height: 98%!important; }
316
- @page { size: ` + orientation + `;}}
317
- </style>
318
- <script>function step1(){
319
- setTimeout('step2()', 10);}
320
- function step2(){window.print();window.close()}
321
- </script></head><body onload='step1()'>
322
- <img src="` + img + `" style="display:block; margin:auto;"></body></html>`;
323
- }
324
-
325
- _createOuterContainer(mapDiv) {
326
- var outerContainer = document.createElement('div');
327
- mapDiv.parentNode.insertBefore(outerContainer, mapDiv);
328
- mapDiv.parentNode.removeChild(mapDiv);
329
- outerContainer.appendChild(mapDiv);
330
- outerContainer.style.width = mapDiv.style.width;
331
- outerContainer.style.height = mapDiv.style.height;
332
- outerContainer.style.display = 'inline-block'
333
- outerContainer.style.overflow = 'hidden';
334
- return outerContainer;
335
- }
336
-
337
- _removeOuterContainer(mapDiv, outerContainer, blankDiv) {
338
- if (outerContainer.parentNode) {
339
- outerContainer.parentNode.insertBefore(mapDiv, outerContainer);
340
- outerContainer.parentNode.removeChild(blankDiv);
341
- outerContainer.parentNode.removeChild(outerContainer);
342
- }
343
- }
344
-
345
- _addCss() {
346
- var css = document.createElement("style");
347
- css.type = "text/css";
348
- css.innerHTML = `.leaflet-control-easyPrint-button {
349
- background-image: url(data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjE2cHgiIGhlaWdodD0iMTZweCIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDUxMiA1MTI7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPGc+Cgk8cGF0aCBkPSJNMTI4LDMyaDI1NnY2NEgxMjhWMzJ6IE00ODAsMTI4SDMyYy0xNy42LDAtMzIsMTQuNC0zMiwzMnYxNjBjMCwxNy42LDE0LjM5OCwzMiwzMiwzMmg5NnYxMjhoMjU2VjM1Mmg5NiAgIGMxNy42LDAsMzItMTQuNCwzMi0zMlYxNjBDNTEyLDE0Mi40LDQ5Ny42LDEyOCw0ODAsMTI4eiBNMzUyLDQ0OEgxNjBWMjg4aDE5MlY0NDh6IE00ODcuMTk5LDE3NmMwLDEyLjgxMy0xMC4zODcsMjMuMi0yMy4xOTcsMjMuMiAgIGMtMTIuODEyLDAtMjMuMjAxLTEwLjM4Ny0yMy4yMDEtMjMuMnMxMC4zODktMjMuMiwyMy4xOTktMjMuMkM0NzYuODE0LDE1Mi44LDQ4Ny4xOTksMTYzLjE4Nyw0ODcuMTk5LDE3NnoiIGZpbGw9IiMwMDAwMDAiLz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8L3N2Zz4K);
350
- background-size: 16px 16px;
351
- cursor: pointer;
352
- }
353
- .leaflet-control-easyPrint-button-export {
354
- background-image: url(data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjE2cHgiIGhlaWdodD0iMTZweCIgdmlld0JveD0iMCAwIDQzMy41IDQzMy41IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA0MzMuNSA0MzMuNTsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8Zz4KCTxnIGlkPSJmaWxlLWRvd25sb2FkIj4KCQk8cGF0aCBkPSJNMzk1LjI1LDE1M2gtMTAyVjBoLTE1M3YxNTNoLTEwMmwxNzguNSwxNzguNUwzOTUuMjUsMTUzeiBNMzguMjUsMzgyLjV2NTFoMzU3di01MUgzOC4yNXoiIGZpbGw9IiMwMDAwMDAiLz4KCTwvZz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8L3N2Zz4K);
355
- background-size: 16px 16px;
356
- cursor: pointer;
357
- }
358
- .easyPrintHolder a {
359
- background-size: 16px 16px;
360
- cursor: pointer;
361
- }
362
- .easyPrintHolder .CurrentSize{
363
- background-image: url(data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTZweCIgdmVyc2lvbj0iMS4xIiBoZWlnaHQ9IjE2cHgiIHZpZXdCb3g9IjAgMCA2NCA2NCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNjQgNjQiPgogIDxnPgogICAgPGcgZmlsbD0iIzFEMUQxQiI+CiAgICAgIDxwYXRoIGQ9Ik0yNS4yNTUsMzUuOTA1TDQuMDE2LDU3LjE0NVY0Ni41OWMwLTEuMTA4LTAuODk3LTIuMDA4LTIuMDA4LTIuMDA4QzAuODk4LDQ0LjU4MiwwLDQ1LjQ4MSwwLDQ2LjU5djE1LjQwMiAgICBjMCwwLjI2MSwwLjA1MywwLjUyMSwwLjE1NSwwLjc2N2MwLjIwMywwLjQ5MiwwLjU5NCwwLjg4MiwxLjA4NiwxLjA4N0MxLjQ4Niw2My45NDcsMS43NDcsNjQsMi4wMDgsNjRoMTUuNDAzICAgIGMxLjEwOSwwLDIuMDA4LTAuODk4LDIuMDA4LTIuMDA4cy0wLjg5OC0yLjAwOC0yLjAwOC0yLjAwOEg2Ljg1NWwyMS4yMzgtMjEuMjRjMC43ODQtMC43ODQsMC43ODQtMi4wNTUsMC0yLjgzOSAgICBTMjYuMDM5LDM1LjEyMSwyNS4yNTUsMzUuOTA1eiIgZmlsbD0iIzAwMDAwMCIvPgogICAgICA8cGF0aCBkPSJtNjMuODQ1LDEuMjQxYy0wLjIwMy0wLjQ5MS0wLjU5NC0wLjg4Mi0xLjA4Ni0xLjA4Ny0wLjI0NS0wLjEwMS0wLjUwNi0wLjE1NC0wLjc2Ny0wLjE1NGgtMTUuNDAzYy0xLjEwOSwwLTIuMDA4LDAuODk4LTIuMDA4LDIuMDA4czAuODk4LDIuMDA4IDIuMDA4LDIuMDA4aDEwLjU1NmwtMjEuMjM4LDIxLjI0Yy0wLjc4NCwwLjc4NC0wLjc4NCwyLjA1NSAwLDIuODM5IDAuMzkyLDAuMzkyIDAuOTA2LDAuNTg5IDEuNDIsMC41ODlzMS4wMjctMC4xOTcgMS40MTktMC41ODlsMjEuMjM4LTIxLjI0djEwLjU1NWMwLDEuMTA4IDAuODk3LDIuMDA4IDIuMDA4LDIuMDA4IDEuMTA5LDAgMi4wMDgtMC44OTkgMi4wMDgtMi4wMDh2LTE1LjQwMmMwLTAuMjYxLTAuMDUzLTAuNTIyLTAuMTU1LTAuNzY3eiIgZmlsbD0iIzAwMDAwMCIvPgogICAgPC9nPgogIDwvZz4KPC9zdmc+Cg==)
364
- }
365
- .easyPrintHolder .page {
366
- 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=);
367
- }
368
- .easyPrintHolder .A4Landscape {
369
- transform: rotate(-90deg);
370
- }
371
-
372
- .leaflet-control-easyPrint-button{
373
- display: inline-block;
374
- }
375
- .easyPrintHolder{
376
- margin-top:-31px;
377
- margin-bottom: -5px;
378
- margin-left: 30px;
379
- padding-left: 0px;
380
- display: none;
381
- }
382
-
383
- .easyPrintSizeMode {
384
- display: inline-block;
385
- }
386
- .easyPrintHolder .easyPrintSizeMode a {
387
- border-radius: 0px;
388
- }
389
-
390
- .easyPrintHolder .easyPrintSizeMode:last-child a{
391
- border-top-right-radius: 2px;
392
- border-bottom-right-radius: 2px;
393
- margin-left: -1px;
394
- }
395
-
396
- .easyPrintPortrait:hover, .easyPrintLandscape:hover{
397
- background-color: #757570;
398
- cursor: pointer;
399
- }`;
400
- document.body.appendChild(css);
401
- }
402
-
403
- _dataURItoBlob(dataURI) {
404
- var byteString = atob(dataURI.split(',')[1]);
405
- var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];
406
- var ab = new ArrayBuffer(byteString.length);
407
- var dw = new DataView(ab);
408
- for(var i = 0; i < byteString.length; i++) {
409
- dw.setUint8(i, byteString.charCodeAt(i));
410
- }
411
- return new Blob([ab], {type: mimeString});
412
- }
413
-
414
- _togglePageSizeButtons (e) {
415
- var holderStyle = this.holder.style
416
- var linkStyle = this.link.style
417
- if (e.type === 'mouseover') {
418
- holderStyle.display = 'block';
419
- linkStyle.borderTopRightRadius = '0'
420
- linkStyle.borderBottomRightRadius = '0'
421
- } else {
422
- holderStyle.display = 'none';
423
- linkStyle.borderTopRightRadius = '2px'
424
- linkStyle.borderBottomRightRadius = '2px'
425
- }
426
- }
427
-
428
- _toggleControls(show) {
429
- var controlContainer = document.getElementsByClassName("leaflet-control-container")[0];
430
- if (show) return controlContainer.style.display = 'block';
431
- controlContainer.style.display = 'none';
432
- }
433
- _toggleClasses(classes, show) {
434
- classes.forEach(function (className) {
435
- var div = document.getElementsByClassName(className)[0];
436
- if (show) return div.style.display = 'block';
437
- div.style.display = 'none';
438
- });
439
- }
440
-
441
- _a4PageSize= {
442
- height: 715,
443
- width: 1045
444
- }
445
-
446
- };
447
-
448
- export default EasyPrint
449
-
450
- // L.easyPrint = function(options) {
451
- // return new L.Control.EasyPrint(options);
452
- // };
453
-