@vidro/map-handler 1.3.0 → 1.3.2

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.
@@ -1 +1 @@
1
- !function(e,o){"object"==typeof exports&&"object"==typeof module?module.exports=o():"function"==typeof define&&define.amd?define([],o):"object"==typeof exports?exports.VidroMaps=o():e.VidroMaps=o()}(self,(()=>(()=>{"use strict";var e={187:e=>{var o,t="object"==typeof Reflect?Reflect:null,n=t&&"function"==typeof t.apply?t.apply:function(e,o,t){return Function.prototype.apply.call(e,o,t)};o=t&&"function"==typeof t.ownKeys?t.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var r=Number.isNaN||function(e){return e!=e};function s(){s.init.call(this)}e.exports=s,e.exports.once=function(e,o){return new Promise((function(t,n){function r(t){e.removeListener(o,s),n(t)}function s(){"function"==typeof e.removeListener&&e.removeListener("error",r),t([].slice.call(arguments))}y(e,o,s,{once:!0}),"error"!==o&&function(e,o,t){"function"==typeof e.on&&y(e,"error",o,{once:!0})}(e,r)}))},s.EventEmitter=s,s.prototype._events=void 0,s.prototype._eventsCount=0,s.prototype._maxListeners=void 0;var i=10;function a(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function l(e){return void 0===e._maxListeners?s.defaultMaxListeners:e._maxListeners}function c(e,o,t,n){var r,s,i,c;if(a(t),void 0===(s=e._events)?(s=e._events=Object.create(null),e._eventsCount=0):(void 0!==s.newListener&&(e.emit("newListener",o,t.listener?t.listener:t),s=e._events),i=s[o]),void 0===i)i=s[o]=t,++e._eventsCount;else if("function"==typeof i?i=s[o]=n?[t,i]:[i,t]:n?i.unshift(t):i.push(t),(r=l(e))>0&&i.length>r&&!i.warned){i.warned=!0;var u=new Error("Possible EventEmitter memory leak detected. "+i.length+" "+String(o)+" listeners added. Use emitter.setMaxListeners() to increase limit");u.name="MaxListenersExceededWarning",u.emitter=e,u.type=o,u.count=i.length,c=u,console&&console.warn&&console.warn(c)}return e}function u(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function d(e,o,t){var n={fired:!1,wrapFn:void 0,target:e,type:o,listener:t},r=u.bind(n);return r.listener=t,n.wrapFn=r,r}function p(e,o,t){var n=e._events;if(void 0===n)return[];var r=n[o];return void 0===r?[]:"function"==typeof r?t?[r.listener||r]:[r]:t?function(e){for(var o=new Array(e.length),t=0;t<o.length;++t)o[t]=e[t].listener||e[t];return o}(r):m(r,r.length)}function f(e){var o=this._events;if(void 0!==o){var t=o[e];if("function"==typeof t)return 1;if(void 0!==t)return t.length}return 0}function m(e,o){for(var t=new Array(o),n=0;n<o;++n)t[n]=e[n];return t}function y(e,o,t,n){if("function"==typeof e.on)n.once?e.once(o,t):e.on(o,t);else{if("function"!=typeof e.addEventListener)throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e);e.addEventListener(o,(function r(s){n.once&&e.removeEventListener(o,r),t(s)}))}}Object.defineProperty(s,"defaultMaxListeners",{enumerable:!0,get:function(){return i},set:function(e){if("number"!=typeof e||e<0||r(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");i=e}}),s.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},s.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||r(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this},s.prototype.getMaxListeners=function(){return l(this)},s.prototype.emit=function(e){for(var o=[],t=1;t<arguments.length;t++)o.push(arguments[t]);var r="error"===e,s=this._events;if(void 0!==s)r=r&&void 0===s.error;else if(!r)return!1;if(r){var i;if(o.length>0&&(i=o[0]),i instanceof Error)throw i;var a=new Error("Unhandled error."+(i?" ("+i.message+")":""));throw a.context=i,a}var l=s[e];if(void 0===l)return!1;if("function"==typeof l)n(l,this,o);else{var c=l.length,u=m(l,c);for(t=0;t<c;++t)n(u[t],this,o)}return!0},s.prototype.addListener=function(e,o){return c(this,e,o,!1)},s.prototype.on=s.prototype.addListener,s.prototype.prependListener=function(e,o){return c(this,e,o,!0)},s.prototype.once=function(e,o){return a(o),this.on(e,d(this,e,o)),this},s.prototype.prependOnceListener=function(e,o){return a(o),this.prependListener(e,d(this,e,o)),this},s.prototype.removeListener=function(e,o){var t,n,r,s,i;if(a(o),void 0===(n=this._events))return this;if(void 0===(t=n[e]))return this;if(t===o||t.listener===o)0==--this._eventsCount?this._events=Object.create(null):(delete n[e],n.removeListener&&this.emit("removeListener",e,t.listener||o));else if("function"!=typeof t){for(r=-1,s=t.length-1;s>=0;s--)if(t[s]===o||t[s].listener===o){i=t[s].listener,r=s;break}if(r<0)return this;0===r?t.shift():function(e,o){for(;o+1<e.length;o++)e[o]=e[o+1];e.pop()}(t,r),1===t.length&&(n[e]=t[0]),void 0!==n.removeListener&&this.emit("removeListener",e,i||o)}return this},s.prototype.off=s.prototype.removeListener,s.prototype.removeAllListeners=function(e){var o,t,n;if(void 0===(t=this._events))return this;if(void 0===t.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==t[e]&&(0==--this._eventsCount?this._events=Object.create(null):delete t[e]),this;if(0===arguments.length){var r,s=Object.keys(t);for(n=0;n<s.length;++n)"removeListener"!==(r=s[n])&&this.removeAllListeners(r);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"==typeof(o=t[e]))this.removeListener(e,o);else if(void 0!==o)for(n=o.length-1;n>=0;n--)this.removeListener(e,o[n]);return this},s.prototype.listeners=function(e){return p(this,e,!0)},s.prototype.rawListeners=function(e){return p(this,e,!1)},s.listenerCount=function(e,o){return"function"==typeof e.listenerCount?e.listenerCount(o):f.call(e,o)},s.prototype.listenerCount=f,s.prototype.eventNames=function(){return this._eventsCount>0?o(this._events):[]}}},o={};function t(n){var r=o[n];if(void 0!==r)return r.exports;var s=o[n]={exports:{}};return e[n](s,s.exports,t),s.exports}t.d=(e,o)=>{for(var n in o)t.o(o,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:o[n]})},t.o=(e,o)=>Object.prototype.hasOwnProperty.call(e,o),t.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};return(()=>{t.r(n),t.d(n,{Communicator:()=>T});var e=t(187);function o(e){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o(e)}function r(e,o){for(var t=0;t<o.length;t++){var n=o[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,i(n.key),n)}}function s(e,o,t){return o&&r(e.prototype,o),t&&r(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function i(e){var t=function(e,t){if("object"!==o(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,"string");if("object"!==o(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"===o(t)?t:String(t)}var a="undefined"==typeof window,l=s((function e(o){var t,n,r,s=this;!function(e,o){if(!(e instanceof o))throw new TypeError("Cannot call a class as a function")}(this,e),t=this,r=function(e){a||window.top.frames[s.domId].postMessage(e,"*")},(n=i(n="sendMessageToMap"))in t?Object.defineProperty(t,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[n]=r,this.domId="map-frame","string"==typeof o.id&&(this.domId=o.id)}));function c(e){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},c(e)}function u(e,o){for(var t=0;t<o.length;t++){var n=o[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,v(n.key),n)}}function d(){return d="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,o,t){var n=function(e,o){for(;!Object.prototype.hasOwnProperty.call(e,o)&&null!==(e=y(e)););return e}(e,o);if(n){var r=Object.getOwnPropertyDescriptor(n,o);return r.get?r.get.call(arguments.length<3?e:t):r.value}},d.apply(this,arguments)}function p(e,o){return p=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,o){return e.__proto__=o,e},p(e,o)}function f(e,o){if(o&&("object"===c(o)||"function"==typeof o))return o;if(void 0!==o)throw new TypeError("Derived constructors may only return object or undefined");return m(e)}function m(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function y(e){return y=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},y(e)}function g(e,o,t){return(o=v(o))in e?Object.defineProperty(e,o,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[o]=t,e}function v(e){var o=function(e,o){if("object"!==c(e)||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!==c(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"===c(o)?o:String(o)}var T=function(e){!function(e,o){if("function"!=typeof o&&null!==o)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(o&&o.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),o&&p(e,o)}(i,e);var o,t,n,r,s=(n=i,r=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,o=y(n);if(r){var t=y(this).constructor;e=Reflect.construct(o,arguments,t)}else e=o.apply(this,arguments);return f(this,e)});function i(e){var o;return function(e,o){if(!(e instanceof o))throw new TypeError("Cannot call a class as a function")}(this,i),g(m(o=s.call(this)),"onMessageReceived",(function(e){switch(e.data.type){case"onZoomChange":o.emitEvent("onZoomChange",e.data,e.data.domId);break;case"onCenterChange":o.emitEvent("onCenterChange",e.data,e.data.domId);break;case"geomAdded":o.emitEvent("geomAdded",e.data,e.data.domId);break;case"layers":o.emitEvent("layers",e.data,e.data.domId);break;case"geoJSONlayers":o.emitEvent("geoJSONlayers",e.data,e.data.domId);break;case"info":o.emitEvent("info",e.data,e.data.domId);break;case"error":o.emitEvent("error",e.data,e.data.domId);break;case"coordinates":o.emitEvent("coordinates",e.data,e.data.domId);break;case"activeLayer":o.emitEvent("activeLayer",e.data,e.data.domId);break;case"geolocation":o.emitEvent("geolocation",e.data,e.data.domId);break;case"WMSInfoAvailable":o.emitEvent("WMSInfoAvailable",e.data,e.data.domId);break;case"giswaterTiledBackgroundDisplayed":o.emitEvent("giswaterTiledBackgroundDisplayed",e.data,e.data.domId);break;case"giswaterTiledBackgroundAvailable":o.emitEvent("giswaterTiledBackgroundAvailable",e.data,e.data.domId);break;case"GiswaterLayerAvailableFilters":o.emitEvent("GiswaterLayerAvailableFilters",e.data,e.data.domId);break;case"loaded":o.emitEvent("loaded",e.data,e.data.domId);break;case"unloaded":o.emitEvent("unloaded",e.data,e.data.domId);break;case"availableWMSLayers":o.emitEvent("availableWMSLayers",e.data.layers,e.data.domId);break;case"layerElements":o.emitEvent("layerElements",e.data,e.data.domId);break;case"getToc":o.emitEvent("getToc",e.data,e.data.domId);break;case"status":o.emitEvent("status",e.data,e.data.domId);break;case"MeasureEnd":o.emitEvent("MeasureEnd",e.data,e.data.domId);break;case"queue":o.emitEvent("queue",e.data,e.data.domId);break;case"version":o.emitEvent("version",e.data,e.data.domId);break;case"hover":o.emitEvent("hover",e.data,e.data.domId);break;case"screenshot":o.emitEvent("screenshot",e.data,e.data.domId)}})),g(m(o),"emitEvent",(function(e,t,n){n===o.domId&&(delete t.domId,o.emit(e,t))})),g(m(o),"ZoomIn",(function(){o.com.sendMessageToMap({type:"zoomIn",sessionToken:o.sessionToken})})),g(m(o),"ZoomOut",(function(){o.com.sendMessageToMap({type:"zoomOut",sessionToken:o.sessionToken})})),g(m(o),"AddGeom",(function(e,t){o.com.sendMessageToMap({type:"AddGeom",geom:e,texts:null==t?void 0:t.texts,style:null==t?void 0:t.style,drawOnEnd:null==t?void 0:t.drawOnEnd,showConfirm:null==t?void 0:t.showConfirm,sessionToken:o.sessionToken})})),g(m(o),"CancelAddGeom",(function(e){o.com.sendMessageToMap({type:"CancelAddGeom"})})),g(m(o),"loadMultipleLayers",(function(e){void 0!==e?o.com.sendMessageToMap({type:"loadMultipleLayers",layers:e}):o.emit("error",{error:"no layers"})})),g(m(o),"toggleGroup",(function(e){o.com.sendMessageToMap({type:"toggleGroup",layers:e})})),g(m(o),"toggleLayer",(function(e,t){void 0===t&&(t={gutter:null,transparent:null,singletile:null,zIndex:null}),null!==t.singletile&&"boolean"!=typeof t.singletile&&(t.singletile=null,o.emit("error",{error:"singletile must be a Boolean",type:"error"})),""===t.gutter||null===t.gutter||t.singletile||(isNaN(parseInt(t.gutter))&&(t.gutter=null,o.emit("error",{type:"error",error:"Gutter must be a number"})),t.singletile&&(t.gutter=null,o.emit("error",{type:"error",error:"Gutter can only be user with multitile layers; set singletile to false"}))),null!==t.transparent&&"boolean"!=typeof t.transparent&&(t.transparent=null,o.emit("error",{type:"error",error:"transparent must be a Boolean"})),o.com.sendMessageToMap({type:"toggleLayer",layer:e,gutter:isNaN(parseInt(t.gutter))?null:parseInt(t.gutter),transparent:t.transparent,singletile:t.singletile,sessionToken:o.sessionToken,zIndex:isNaN(parseInt(t.zIndex))?null:parseInt(t.zIndex)})})),g(m(o),"removeLayer",(function(e){o.com.sendMessageToMap({type:"removeLayer",layer:e,sessionToken:o.sessionToken})})),g(m(o),"displayLayer",(function(e){o.com.sendMessageToMap({type:"displayLayer",layer:e,sessionToken:o.sessionToken})})),g(m(o),"setActiveLayer",(function(e){o.com.sendMessageToMap({type:"setActiveLayer",layer:e,sessionToken:o.sessionToken})})),g(m(o),"getActiveLayer",(function(){o.com.sendMessageToMap({type:"getActiveLayer",sessionToken:o.sessionToken})})),g(m(o),"bringLayerToTop",(function(e){o.com.sendMessageToMap({type:"bringLayerToTop",layer:e,sessionToken:o.sessionToken})})),g(m(o),"bringLayerToBottom",(function(e){o.com.sendMessageToMap({type:"bringLayerToBottom",layer:e,sessionToken:o.sessionToken})})),g(m(o),"loadWMSAvailableLayers",(function(){o.com.sendMessageToMap({type:"loadWMSAvailableLayers",sessionToken:o.sessionToken})})),g(m(o),"clear",(function(){o.com.sendMessageToMap({type:"clear",sessionToken:o.sessionToken})})),g(m(o),"Highlight",(function(e){o.com.sendMessageToMap({type:"highlight",geom:e.geom,zoom:e.zoom,metadata:null==e?void 0:e.data,center:void 0!==(null==e?void 0:e.center)&&e.center,animate:null==e?void 0:e.animate,style:null==e?void 0:e.style,sessionToken:o.sessionToken})})),g(m(o),"DrawGeometries",(function(e){void 0!==e?o.com.sendMessageToMap({type:"DrawGeometries",geoms:e}):o.emit("error",{type:"error",error:"no geoms"})})),g(m(o),"RemoveGeometriesByProperty",(function(e,t,n){void 0!==e&&void 0!==t&&void 0!==n?o.com.sendMessageToMap({type:"RemoveGeometriesByProperty",layer:e,property:t,value:n}):o.emit("error",{type:"error",error:"no layer, property or value"})})),g(m(o),"UpdateGeometriesByProperty",(function(e,t,n,r){void 0!==e&&void 0!==t&&void 0!==r&&void 0!==n?o.com.sendMessageToMap({type:"UpdateGeometriesByProperty",layer:e,property:t,value:n,style:r}):o.emit("error",{type:"error",error:"no layer, property or value"})})),g(m(o),"DrawGeometry",(function(e,t,n,r){console.warn("DrawGeometry is deprecated. Use DrawGeometries");var s={stroke_color:t.stroke_color?t.stroke_color:null,fill_color:t.fill_color?t.fill_color:null,point_fill_color:t.point_fill_color?t.point_fill_color:null,geom_radius:t.geom_radius?t.geom_radius:null,stroke_width:t.stroke_width?t.stroke_width:null,font_color:t.font_color?t.font_color:null,font:t.font?t.font:null,font_size:t.font_size?t.font_size:null,placement:t.placement?t.placement:null,fontFillColor:t.fontFillColor?t.fontFillColor:null,fontStrokeColor:t.fontStrokeColor?t.fontStrokeColor:null,fontStrokeWidth:t.fontStrokeWidth?t.fontStrokeWidth:null,baseline:t.baseline?t.baseline:null,align:t.align?t.align:null,display:t.display?t.display:null,offsetY:t.offsetY?t.offsetY:null};o.com.sendMessageToMap({type:"drawGeometry",geom:e,style:s,name:n||"highlight",id:r||Math.floor(1e3*Math.random())+1,sessionToken:o.sessionToken})})),g(m(o),"RemoveGeometry",(function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=void 0===e?null:e;if(!n)return console.error("No element id"),void o.emit("error",{type:"error",error:"No element id"});o.com.sendMessageToMap({type:"removeGeometry",layer:t,id:n})})),g(m(o),"zoomToExtent",(function(){o.com.sendMessageToMap({type:"zoomToExtent",sessionToken:o.sessionToken})})),g(m(o),"zoomToScale",(function(e){var t=["1:100","1:200","1:400","1:500","1:1000","1:2000","1:5000","1:10000","1:50000"];if(!t.includes(e))return console.error("Invalid scale: ".concat(e,". Allowed values are: ").concat(t.join(", "))),void o.emit("error",{type:"error",error:"Invalid scale: ".concat(e)});o.com.sendMessageToMap({type:"zoomToScale",sessionToken:o.sessionToken,scale:e})})),g(m(o),"zoomToCoordinates",(function(e,t,n){isNaN(parseInt(n))||o.com.sendMessageToMap({type:"zoomToCoordinates",sessionToken:o.sessionToken,coordinates:[e,t],zoomLevel:n})})),g(m(o),"zoomToGeometry",(function(e,t){o.com.sendMessageToMap({type:"zoomToGeometry",sessionToken:o.sessionToken,geom:e,limits:t})})),g(m(o),"infoFromCoordinates",(function(e,t,n,r){var s=void 0===t?null:t,i=void 0!==n&&n?parseInt(n):5,a=void 0===r?"xml":r.toLowerCase();"xml"===a||"json"===a?isNaN(i)?console.error("hitTolerance must be a number"):o.com.sendMessageToMap({type:"infoFromCoordinates",info:e,layer:s,format:a,hitTolerance:i,sessionToken:o.sessionToken}):console.error("Format must be 'xml' or 'json")})),g(m(o),"getElementsFromLayer",(function(e,t,n){var r=void 0===n?"xml":n.toLowerCase();if("xml"===r||"json"===r)if(isNaN(t))console.error("Limit must be a number");else{var s=void 0===e?null:e;o.com.sendMessageToMap({type:"getElementsFromLayer",layer:s,limit:void 0!==t?parseInt(t):100,format:n,sessionToken:o.sessionToken})}else console.error("Format must be 'xml' or 'json")})),g(m(o),"Geolocalize",(function(e,t){o.com.sendMessageToMap({type:"Geolocalize",toggle:e,options:t,sessionToken:o.sessionToken})})),g(m(o),"toggleGiswaterTiled",(function(e,t){o.com.sendMessageToMap({type:"toggleTiled",toggle:e,tiled:t,sessionToken:o.sessionToken})})),g(m(o),"toggleTiled",(function(e,t){o.com.sendMessageToMap({type:"toggleTiled",toggle:e,tiled:t,sessionToken:o.sessionToken})})),g(m(o),"getTiled",(function(){o.com.sendMessageToMap({type:"getTiled",sessionToken:o.sessionToken})})),g(m(o),"toggleSecondaryBackground",(function(e){o.com.sendMessageToMap({type:"toggleSecondaryBackground",toggle:e})})),g(m(o),"getSecondaryBackground",(function(){o.com.sendMessageToMap({type:"getSecondaryBackground",sessionToken:o.sessionToken})})),g(m(o),"reloadDisplayedLayers",(function(){return o.com.sendMessageToMap({type:"reloadDisplayedLayers",sessionToken:o.sessionToken})})),g(m(o),"addGeoJSON",(function(e,t,n){return e?o.com.sendMessageToMap({type:"addGeoJSON",geoJSON:e,options:void 0!==t?t:{fillcolor:null,strokecolor:null},name:n||Math.random().toString(36).substring(7),sessionToken:o.sessionToken}):void o.emit("error",{type:"error",error:"No geoJSON data"})})),g(m(o),"clearGeoJSON",(function(e){return e||o.emit("error",{type:"error",error:"No geoJSON layer name"}),o.com.sendMessageToMap({type:"clearGeoJSON",name:e,sessionToken:o.sessionToken})})),g(m(o),"removeGeoJSONLayer",(function(e){return e?o.com.sendMessageToMap({type:"removeGeoJSONLayer",name:e,sessionToken:o.sessionToken}):void o.emit("error",{type:"error",error:"No geoJSON data"})})),g(m(o),"setGiswaterFilters",(function(e){var t=e;if(e){if("object"!=c(e)){e=(e=(e=e.trim()).replace(/^\s+|\s+$/g,"")).replace(/\\/g,"");try{t=JSON.parse(e)}catch(e){return void o.emit("error",{type:"error",error:"Filters is not a valid JSON"})}}return o.com.sendMessageToMap({type:"setGiswaterFilters",filters:t,sessionToken:o.sessionToken})}o.emit("error",{type:"error",error:"No filters"})})),g(m(o),"setFilters",(function(e){var t=e;if(e){if("object"!=c(e)){e=(e=(e=e.trim()).replace(/^\s+|\s+$/g,"")).replace(/\\/g,"");try{t=JSON.parse(e)}catch(e){return void o.emit("error",{type:"error",error:"Filters is not a valid JSON"})}}return t.every((function(e){return Array.isArray(e.filters)}))?o.com.sendMessageToMap({type:"setFilters",filters:t,sessionToken:o.sessionToken}):void o.emit("error",{type:"error",error:"Filters is not a valid JSON - missing filters array"})}o.emit("error",{type:"error",error:"No filters"})})),g(m(o),"getGiswaterLayerAvailableFilters",(function(e){return e?o.com.sendMessageToMap({type:"getGiswaterLayerAvailableFilters",name:e,sessionToken:o.sessionToken}):void o.emit("error",{type:"error",error:"No layer_name"})})),g(m(o),"CenterMap",(function(e,t){o.com.sendMessageToMap({type:"centerMap",coordinates:[e,t]})})),g(m(o),"getToc",(function(){return o.com.sendMessageToMap({type:"getToc",sessionToken:o.sessionToken})})),g(m(o),"setDebug",(function(e){isNaN(parseInt(e))?console.error("Debug is not a integer"):o.com.sendMessageToMap({type:"setDebug",what:e,sessionToken:o.sessionToken})})),g(m(o),"setCustomColors",(function(e){if("object"===c(e)){if(e.hasOwnProperty("geom_stroke_width")){if(isNaN(parseInt(e.geom_stroke_width)))return void console.error("geom_stroke_width is not an number");e.geom_stroke_width=parseInt(e.geom_stroke_width)}else e.geom_stroke_width=1;if(e.hasOwnProperty("geom_radius")){if(isNaN(parseInt(e.geom_radius)))return void console.error("geom_stroke_width is not an number");e.geom_radius=parseInt(e.geom_radius)}else e.geom_radius=4;e.hasOwnProperty("geom_shape")&&"circle"!==e.geom_shape&&"square"!==e.geom_shape&&(e.geom_shape="circle",console.error("geom_shape must be either 'circle' or 'square'")),o.com.sendMessageToMap({type:"setCustomColors",properties:e,sessionToken:o.sessionToken})}else console.error("properties is not an object")})),g(m(o),"changeBackground",(function(e){return o.com.sendMessageToMap({type:"changeBackground",sessionToken:o.sessionToken,newBackground:e})})),g(m(o),"getBackground",(function(){o.com.sendMessageToMap({type:"getBackground",sessionToken:o.sessionToken})})),g(m(o),"initMeasure",(function(e,t,n){return o.com.sendMessageToMap({type:"initMeasure",sessionToken:o.sessionToken,measure:e,textStart:t,textContinue:n})})),g(m(o),"cancelMeasure",(function(){return o.com.sendMessageToMap({type:"cancelMeasure",sessionToken:o.sessionToken})})),g(m(o),"setBboxSize",(function(e){isNaN(parseInt(e))?console.error("bbox is not a integer"):o.com.sendMessageToMap({type:"setBoundingBoxSize",bbox:e,sessionToken:o.sessionToken})})),g(m(o),"addIcon",(function(e){var t=e.icon,n=e.coordinates;t instanceof ArrayBuffer||o.emit("error",{type:"error",error:"Invalid icon: Expected an ArrayBuffer."}),Array.isArray(n)||o.emit("error",{type:"error",error:"Invalid coordinates: Expected an array [longitude, latitude]."}),2===n.length&&"number"==typeof n[0]&&"number"==typeof n[1]||o.emit("error",{type:"error",error:"Invalid coordinates: Expected an array with two numeric values [longitude, latitude]."}),o.com.sendMessageToMap({type:"AddIcon",icon:t,coordinates:n,sessionToken:o.sessionToken})})),g(m(o),"screenshot",(function(e){o.com.sendMessageToMap({type:"screenshot",options:e,sessionToken:o.sessionToken})})),g(m(o),"printPaperSize",(function(e){console.warn("printPaperSize is deprecated. Use printSetPaperSize"),o.com.sendMessageToMap({type:"printSetPaperSize",paperSize:e,sessionToken:o.sessionToken})})),g(m(o),"printPaperLayout",(function(e){o.com.sendMessageToMap({type:"printSetOrientation",paperLayout:e,sessionToken:o.sessionToken})})),g(m(o),"startPrint",(function(e){o.com.sendMessageToMap({type:"printStart",options:e,sessionToken:o.sessionToken})})),g(m(o),"cancelPrint",(function(e){o.com.sendMessageToMap({type:"printCancel",options:e,sessionToken:o.sessionToken})})),o.domId="map-frame","undefined"==typeof window?f(o):("string"==typeof e.id&&(o.domId=e.id),o.com=new l(e),window.addEventListener("message",(function(e){return o.onMessageReceived(e)})),o.sessionToken=e.sessionToken,o)}return o=i,(t=[{key:"removeListener",value:function(e,o){d(y(i.prototype),"removeListener",this).call(this,e,o)}}])&&u(o.prototype,t),Object.defineProperty(o,"prototype",{writable:!1}),i}(e.EventEmitter)})(),n})()));
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.VidroMaps=t():e.VidroMaps=t()}(self,(()=>(()=>{"use strict";var e={187:e=>{var t,o="object"==typeof Reflect?Reflect:null,n=o&&"function"==typeof o.apply?o.apply:function(e,t,o){return Function.prototype.apply.call(e,t,o)};t=o&&"function"==typeof o.ownKeys?o.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var r=Number.isNaN||function(e){return e!=e};function s(){s.init.call(this)}e.exports=s,e.exports.once=function(e,t){return new Promise((function(o,n){function r(o){e.removeListener(t,s),n(o)}function s(){"function"==typeof e.removeListener&&e.removeListener("error",r),o([].slice.call(arguments))}y(e,t,s,{once:!0}),"error"!==t&&function(e,t,o){"function"==typeof e.on&&y(e,"error",t,{once:!0})}(e,r)}))},s.EventEmitter=s,s.prototype._events=void 0,s.prototype._eventsCount=0,s.prototype._maxListeners=void 0;var i=10;function a(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function l(e){return void 0===e._maxListeners?s.defaultMaxListeners:e._maxListeners}function c(e,t,o,n){var r,s,i,c;if(a(o),void 0===(s=e._events)?(s=e._events=Object.create(null),e._eventsCount=0):(void 0!==s.newListener&&(e.emit("newListener",t,o.listener?o.listener:o),s=e._events),i=s[t]),void 0===i)i=s[t]=o,++e._eventsCount;else if("function"==typeof i?i=s[t]=n?[o,i]:[i,o]:n?i.unshift(o):i.push(o),(r=l(e))>0&&i.length>r&&!i.warned){i.warned=!0;var u=new Error("Possible EventEmitter memory leak detected. "+i.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");u.name="MaxListenersExceededWarning",u.emitter=e,u.type=t,u.count=i.length,c=u,console&&console.warn&&console.warn(c)}return e}function u(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function d(e,t,o){var n={fired:!1,wrapFn:void 0,target:e,type:t,listener:o},r=u.bind(n);return r.listener=o,n.wrapFn=r,r}function p(e,t,o){var n=e._events;if(void 0===n)return[];var r=n[t];return void 0===r?[]:"function"==typeof r?o?[r.listener||r]:[r]:o?function(e){for(var t=new Array(e.length),o=0;o<t.length;++o)t[o]=e[o].listener||e[o];return t}(r):m(r,r.length)}function f(e){var t=this._events;if(void 0!==t){var o=t[e];if("function"==typeof o)return 1;if(void 0!==o)return o.length}return 0}function m(e,t){for(var o=new Array(t),n=0;n<t;++n)o[n]=e[n];return o}function y(e,t,o,n){if("function"==typeof e.on)n.once?e.once(t,o):e.on(t,o);else{if("function"!=typeof e.addEventListener)throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e);e.addEventListener(t,(function r(s){n.once&&e.removeEventListener(t,r),o(s)}))}}Object.defineProperty(s,"defaultMaxListeners",{enumerable:!0,get:function(){return i},set:function(e){if("number"!=typeof e||e<0||r(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");i=e}}),s.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},s.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||r(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this},s.prototype.getMaxListeners=function(){return l(this)},s.prototype.emit=function(e){for(var t=[],o=1;o<arguments.length;o++)t.push(arguments[o]);var r="error"===e,s=this._events;if(void 0!==s)r=r&&void 0===s.error;else if(!r)return!1;if(r){var i;if(t.length>0&&(i=t[0]),i instanceof Error)throw i;var a=new Error("Unhandled error."+(i?" ("+i.message+")":""));throw a.context=i,a}var l=s[e];if(void 0===l)return!1;if("function"==typeof l)n(l,this,t);else{var c=l.length,u=m(l,c);for(o=0;o<c;++o)n(u[o],this,t)}return!0},s.prototype.addListener=function(e,t){return c(this,e,t,!1)},s.prototype.on=s.prototype.addListener,s.prototype.prependListener=function(e,t){return c(this,e,t,!0)},s.prototype.once=function(e,t){return a(t),this.on(e,d(this,e,t)),this},s.prototype.prependOnceListener=function(e,t){return a(t),this.prependListener(e,d(this,e,t)),this},s.prototype.removeListener=function(e,t){var o,n,r,s,i;if(a(t),void 0===(n=this._events))return this;if(void 0===(o=n[e]))return this;if(o===t||o.listener===t)0==--this._eventsCount?this._events=Object.create(null):(delete n[e],n.removeListener&&this.emit("removeListener",e,o.listener||t));else if("function"!=typeof o){for(r=-1,s=o.length-1;s>=0;s--)if(o[s]===t||o[s].listener===t){i=o[s].listener,r=s;break}if(r<0)return this;0===r?o.shift():function(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}(o,r),1===o.length&&(n[e]=o[0]),void 0!==n.removeListener&&this.emit("removeListener",e,i||t)}return this},s.prototype.off=s.prototype.removeListener,s.prototype.removeAllListeners=function(e){var t,o,n;if(void 0===(o=this._events))return this;if(void 0===o.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==o[e]&&(0==--this._eventsCount?this._events=Object.create(null):delete o[e]),this;if(0===arguments.length){var r,s=Object.keys(o);for(n=0;n<s.length;++n)"removeListener"!==(r=s[n])&&this.removeAllListeners(r);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"==typeof(t=o[e]))this.removeListener(e,t);else if(void 0!==t)for(n=t.length-1;n>=0;n--)this.removeListener(e,t[n]);return this},s.prototype.listeners=function(e){return p(this,e,!0)},s.prototype.rawListeners=function(e){return p(this,e,!1)},s.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):f.call(e,t)},s.prototype.listenerCount=f,s.prototype.eventNames=function(){return this._eventsCount>0?t(this._events):[]}}},t={};function o(n){var r=t[n];if(void 0!==r)return r.exports;var s=t[n]={exports:{}};return e[n](s,s.exports,o),s.exports}o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};return(()=>{o.r(n),o.d(n,{Communicator:()=>T});var e=o(187);function t(e){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},t(e)}function r(e,t){for(var o=0;o<t.length;o++){var n=t[o];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,i(n.key),n)}}function s(e,t,o){return t&&r(e.prototype,t),o&&r(e,o),Object.defineProperty(e,"prototype",{writable:!1}),e}function i(e){var o=function(e,o){if("object"!==t(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,"string");if("object"!==t(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"===t(o)?o:String(o)}var a="undefined"==typeof window,l=s((function e(t){var o,n,r,s=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),o=this,r=function(e){a||window.top.frames[s.domId].postMessage(e,"*")},(n=i(n="sendMessageToMap"))in o?Object.defineProperty(o,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):o[n]=r,this.domId="map-frame","string"==typeof t.id&&(this.domId=t.id)}));function c(e){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},c(e)}function u(e,t){for(var o=0;o<t.length;o++){var n=t[o];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,v(n.key),n)}}function d(){return d="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,o){var n=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=y(e)););return e}(e,t);if(n){var r=Object.getOwnPropertyDescriptor(n,t);return r.get?r.get.call(arguments.length<3?e:o):r.value}},d.apply(this,arguments)}function p(e,t){return p=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},p(e,t)}function f(e,t){if(t&&("object"===c(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return m(e)}function m(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function y(e){return y=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},y(e)}function g(e,t,o){return(t=v(t))in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function v(e){var t=function(e,t){if("object"!==c(e)||null===e)return e;var o=e[Symbol.toPrimitive];if(void 0!==o){var n=o.call(e,"string");if("object"!==c(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"===c(t)?t:String(t)}var T=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&p(e,t)}(i,e);var t,o,n,r,s=(n=i,r=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=y(n);if(r){var o=y(this).constructor;e=Reflect.construct(t,arguments,o)}else e=t.apply(this,arguments);return f(this,e)});function i(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,i),g(m(t=s.call(this)),"onMessageReceived",(function(e){switch(e.data.type){case"onZoomChange":t.emitEvent("onZoomChange",e.data,e.data.domId);break;case"onCenterChange":t.emitEvent("onCenterChange",e.data,e.data.domId);break;case"geomAdded":t.emitEvent("geomAdded",e.data,e.data.domId);break;case"layers":t.emitEvent("layers",e.data,e.data.domId);break;case"geoJSONlayers":t.emitEvent("geoJSONlayers",e.data,e.data.domId);break;case"info":t.emitEvent("info",e.data,e.data.domId);break;case"error":t.emitEvent("error",e.data,e.data.domId);break;case"coordinates":t.emitEvent("coordinates",e.data,e.data.domId);break;case"activeLayer":t.emitEvent("activeLayer",e.data,e.data.domId);break;case"geolocation":t.emitEvent("geolocation",e.data,e.data.domId);break;case"WMSInfoAvailable":t.emitEvent("WMSInfoAvailable",e.data,e.data.domId);break;case"giswaterTiledBackgroundDisplayed":t.emitEvent("giswaterTiledBackgroundDisplayed",e.data,e.data.domId);break;case"giswaterTiledBackgroundAvailable":t.emitEvent("giswaterTiledBackgroundAvailable",e.data,e.data.domId);break;case"GiswaterLayerAvailableFilters":t.emitEvent("GiswaterLayerAvailableFilters",e.data,e.data.domId);break;case"loaded":t.emitEvent("loaded",e.data,e.data.domId);break;case"unloaded":t.emitEvent("unloaded",e.data,e.data.domId);break;case"availableWMSLayers":t.emitEvent("availableWMSLayers",e.data.layers,e.data.domId);break;case"layerElements":t.emitEvent("layerElements",e.data,e.data.domId);break;case"getToc":t.emitEvent("getToc",e.data,e.data.domId);break;case"status":t.emitEvent("status",e.data,e.data.domId);break;case"MeasureEnd":t.emitEvent("MeasureEnd",e.data,e.data.domId);break;case"queue":t.emitEvent("queue",e.data,e.data.domId);break;case"version":t.emitEvent("version",e.data,e.data.domId);break;case"hover":t.emitEvent("hover",e.data,e.data.domId);break;case"screenshot":t.emitEvent("screenshot",e.data,e.data.domId);break;case"print":t.emitEvent("print",e.data,e.data.domId);break;case"dpi":t.emitEvent("dpi",e.data,e.data.domId)}})),g(m(t),"emitEvent",(function(e,o,n){n===t.domId&&(delete o.domId,t.emit(e,o))})),g(m(t),"ZoomIn",(function(){t.com.sendMessageToMap({type:"zoomIn",sessionToken:t.sessionToken})})),g(m(t),"ZoomOut",(function(){t.com.sendMessageToMap({type:"zoomOut",sessionToken:t.sessionToken})})),g(m(t),"AddGeom",(function(e,o){t.com.sendMessageToMap({type:"AddGeom",geom:e,texts:null==o?void 0:o.texts,style:null==o?void 0:o.style,drawOnEnd:null==o?void 0:o.drawOnEnd,showConfirm:null==o?void 0:o.showConfirm,sessionToken:t.sessionToken})})),g(m(t),"CancelAddGeom",(function(e){t.com.sendMessageToMap({type:"CancelAddGeom"})})),g(m(t),"loadMultipleLayers",(function(e){void 0!==e?t.com.sendMessageToMap({type:"loadMultipleLayers",layers:e}):t.emit("error",{error:"no layers"})})),g(m(t),"toggleGroup",(function(e){t.com.sendMessageToMap({type:"toggleGroup",layers:e})})),g(m(t),"toggleLayer",(function(e,o){void 0===o&&(o={gutter:null,transparent:null,singletile:null,zIndex:null}),null!==o.singletile&&"boolean"!=typeof o.singletile&&(o.singletile=null,t.emit("error",{error:"singletile must be a Boolean",type:"error"})),""===o.gutter||null===o.gutter||o.singletile||(isNaN(parseInt(o.gutter))&&(o.gutter=null,t.emit("error",{type:"error",error:"Gutter must be a number"})),o.singletile&&(o.gutter=null,t.emit("error",{type:"error",error:"Gutter can only be user with multitile layers; set singletile to false"}))),null!==o.transparent&&"boolean"!=typeof o.transparent&&(o.transparent=null,t.emit("error",{type:"error",error:"transparent must be a Boolean"})),t.com.sendMessageToMap({type:"toggleLayer",layer:e,gutter:isNaN(parseInt(o.gutter))?null:parseInt(o.gutter),transparent:o.transparent,singletile:o.singletile,sessionToken:t.sessionToken,zIndex:isNaN(parseInt(o.zIndex))?null:parseInt(o.zIndex)})})),g(m(t),"removeLayer",(function(e){t.com.sendMessageToMap({type:"removeLayer",layer:e,sessionToken:t.sessionToken})})),g(m(t),"displayLayer",(function(e){t.com.sendMessageToMap({type:"displayLayer",layer:e,sessionToken:t.sessionToken})})),g(m(t),"setActiveLayer",(function(e){t.com.sendMessageToMap({type:"setActiveLayer",layer:e,sessionToken:t.sessionToken})})),g(m(t),"getActiveLayer",(function(){t.com.sendMessageToMap({type:"getActiveLayer",sessionToken:t.sessionToken})})),g(m(t),"bringLayerToTop",(function(e){t.com.sendMessageToMap({type:"bringLayerToTop",layer:e,sessionToken:t.sessionToken})})),g(m(t),"bringLayerToBottom",(function(e){t.com.sendMessageToMap({type:"bringLayerToBottom",layer:e,sessionToken:t.sessionToken})})),g(m(t),"loadWMSAvailableLayers",(function(){t.com.sendMessageToMap({type:"loadWMSAvailableLayers",sessionToken:t.sessionToken})})),g(m(t),"clear",(function(){t.com.sendMessageToMap({type:"clear",sessionToken:t.sessionToken})})),g(m(t),"Highlight",(function(e){t.com.sendMessageToMap({type:"highlight",geom:e.geom,zoom:e.zoom,metadata:null==e?void 0:e.data,center:void 0!==(null==e?void 0:e.center)&&e.center,animate:null==e?void 0:e.animate,style:null==e?void 0:e.style,sessionToken:t.sessionToken})})),g(m(t),"DrawGeometries",(function(e){void 0!==e?t.com.sendMessageToMap({type:"DrawGeometries",geoms:e}):t.emit("error",{type:"error",error:"no geoms"})})),g(m(t),"RemoveGeometriesByProperty",(function(e,o,n){void 0!==e&&void 0!==o&&void 0!==n?t.com.sendMessageToMap({type:"RemoveGeometriesByProperty",layer:e,property:o,value:n}):t.emit("error",{type:"error",error:"no layer, property or value"})})),g(m(t),"UpdateGeometriesByProperty",(function(e,o,n,r){void 0!==e&&void 0!==o&&void 0!==r&&void 0!==n?t.com.sendMessageToMap({type:"UpdateGeometriesByProperty",layer:e,property:o,value:n,style:r}):t.emit("error",{type:"error",error:"no layer, property or value"})})),g(m(t),"DrawGeometry",(function(e,o,n,r){console.warn("DrawGeometry is deprecated. Use DrawGeometries");var s={stroke_color:o.stroke_color?o.stroke_color:null,fill_color:o.fill_color?o.fill_color:null,point_fill_color:o.point_fill_color?o.point_fill_color:null,geom_radius:o.geom_radius?o.geom_radius:null,stroke_width:o.stroke_width?o.stroke_width:null,font_color:o.font_color?o.font_color:null,font:o.font?o.font:null,font_size:o.font_size?o.font_size:null,placement:o.placement?o.placement:null,fontFillColor:o.fontFillColor?o.fontFillColor:null,fontStrokeColor:o.fontStrokeColor?o.fontStrokeColor:null,fontStrokeWidth:o.fontStrokeWidth?o.fontStrokeWidth:null,baseline:o.baseline?o.baseline:null,align:o.align?o.align:null,display:o.display?o.display:null,offsetY:o.offsetY?o.offsetY:null};t.com.sendMessageToMap({type:"drawGeometry",geom:e,style:s,name:n||"highlight",id:r||Math.floor(1e3*Math.random())+1,sessionToken:t.sessionToken})})),g(m(t),"RemoveGeometry",(function(e){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=void 0===e?null:e;if(!n)return console.error("No element id"),void t.emit("error",{type:"error",error:"No element id"});t.com.sendMessageToMap({type:"removeGeometry",layer:o,id:n})})),g(m(t),"zoomToExtent",(function(){t.com.sendMessageToMap({type:"zoomToExtent",sessionToken:t.sessionToken})})),g(m(t),"zoomToScale",(function(e){var o=["1:100","1:200","1:400","1:500","1:1000","1:2000","1:5000","1:10000","1:50000"];if(!o.includes(e))return console.error("Invalid scale: ".concat(e,". Allowed values are: ").concat(o.join(", "))),void t.emit("error",{type:"error",error:"Invalid scale: ".concat(e)});t.com.sendMessageToMap({type:"zoomToScale",sessionToken:t.sessionToken,scale:e})})),g(m(t),"zoomToCoordinates",(function(e,o,n){isNaN(parseInt(n))||t.com.sendMessageToMap({type:"zoomToCoordinates",sessionToken:t.sessionToken,coordinates:[e,o],zoomLevel:n})})),g(m(t),"zoomToGeometry",(function(e,o){t.com.sendMessageToMap({type:"zoomToGeometry",sessionToken:t.sessionToken,geom:e,limits:o})})),g(m(t),"infoFromCoordinates",(function(e,o,n,r){var s=void 0===o?null:o,i=void 0!==n&&n?parseInt(n):5,a=void 0===r?"xml":r.toLowerCase();"xml"===a||"json"===a?isNaN(i)?console.error("hitTolerance must be a number"):t.com.sendMessageToMap({type:"infoFromCoordinates",info:e,layer:s,format:a,hitTolerance:i,sessionToken:t.sessionToken}):console.error("Format must be 'xml' or 'json")})),g(m(t),"getElementsFromLayer",(function(e,o,n){var r=void 0===n?"xml":n.toLowerCase();if("xml"===r||"json"===r)if(isNaN(o))console.error("Limit must be a number");else{var s=void 0===e?null:e;t.com.sendMessageToMap({type:"getElementsFromLayer",layer:s,limit:void 0!==o?parseInt(o):100,format:n,sessionToken:t.sessionToken})}else console.error("Format must be 'xml' or 'json")})),g(m(t),"Geolocalize",(function(e,o){t.com.sendMessageToMap({type:"Geolocalize",toggle:e,options:o,sessionToken:t.sessionToken})})),g(m(t),"toggleGiswaterTiled",(function(e,o){t.com.sendMessageToMap({type:"toggleTiled",toggle:e,tiled:o,sessionToken:t.sessionToken})})),g(m(t),"toggleTiled",(function(e,o){t.com.sendMessageToMap({type:"toggleTiled",toggle:e,tiled:o,sessionToken:t.sessionToken})})),g(m(t),"getTiled",(function(){t.com.sendMessageToMap({type:"getTiled",sessionToken:t.sessionToken})})),g(m(t),"toggleSecondaryBackground",(function(e){t.com.sendMessageToMap({type:"toggleSecondaryBackground",toggle:e})})),g(m(t),"getSecondaryBackground",(function(){t.com.sendMessageToMap({type:"getSecondaryBackground",sessionToken:t.sessionToken})})),g(m(t),"reloadDisplayedLayers",(function(){return t.com.sendMessageToMap({type:"reloadDisplayedLayers",sessionToken:t.sessionToken})})),g(m(t),"addGeoJSON",(function(e,o,n){return e?t.com.sendMessageToMap({type:"addGeoJSON",geoJSON:e,options:void 0!==o?o:{fillcolor:null,strokecolor:null},name:n||Math.random().toString(36).substring(7),sessionToken:t.sessionToken}):void t.emit("error",{type:"error",error:"No geoJSON data"})})),g(m(t),"clearGeoJSON",(function(e){return e||t.emit("error",{type:"error",error:"No geoJSON layer name"}),t.com.sendMessageToMap({type:"clearGeoJSON",name:e,sessionToken:t.sessionToken})})),g(m(t),"removeGeoJSONLayer",(function(e){return e?t.com.sendMessageToMap({type:"removeGeoJSONLayer",name:e,sessionToken:t.sessionToken}):void t.emit("error",{type:"error",error:"No geoJSON data"})})),g(m(t),"setGiswaterFilters",(function(e){var o=e;if(e){if("object"!=c(e)){e=(e=(e=e.trim()).replace(/^\s+|\s+$/g,"")).replace(/\\/g,"");try{o=JSON.parse(e)}catch(e){return void t.emit("error",{type:"error",error:"Filters is not a valid JSON"})}}return t.com.sendMessageToMap({type:"setGiswaterFilters",filters:o,sessionToken:t.sessionToken})}t.emit("error",{type:"error",error:"No filters"})})),g(m(t),"setFilters",(function(e){var o=e;if(e){if("object"!=c(e)){e=(e=(e=e.trim()).replace(/^\s+|\s+$/g,"")).replace(/\\/g,"");try{o=JSON.parse(e)}catch(e){return void t.emit("error",{type:"error",error:"Filters is not a valid JSON"})}}return o.every((function(e){return Array.isArray(e.filters)}))?t.com.sendMessageToMap({type:"setFilters",filters:o,sessionToken:t.sessionToken}):void t.emit("error",{type:"error",error:"Filters is not a valid JSON - missing filters array"})}t.emit("error",{type:"error",error:"No filters"})})),g(m(t),"getGiswaterLayerAvailableFilters",(function(e){return e?t.com.sendMessageToMap({type:"getGiswaterLayerAvailableFilters",name:e,sessionToken:t.sessionToken}):void t.emit("error",{type:"error",error:"No layer_name"})})),g(m(t),"CenterMap",(function(e,o){t.com.sendMessageToMap({type:"centerMap",coordinates:[e,o]})})),g(m(t),"getToc",(function(){return t.com.sendMessageToMap({type:"getToc",sessionToken:t.sessionToken})})),g(m(t),"setDebug",(function(e){isNaN(parseInt(e))?console.error("Debug is not a integer"):t.com.sendMessageToMap({type:"setDebug",what:e,sessionToken:t.sessionToken})})),g(m(t),"setCustomColors",(function(e){if("object"===c(e)){if(e.hasOwnProperty("geom_stroke_width")){if(isNaN(parseInt(e.geom_stroke_width)))return void console.error("geom_stroke_width is not an number");e.geom_stroke_width=parseInt(e.geom_stroke_width)}else e.geom_stroke_width=1;if(e.hasOwnProperty("geom_radius")){if(isNaN(parseInt(e.geom_radius)))return void console.error("geom_stroke_width is not an number");e.geom_radius=parseInt(e.geom_radius)}else e.geom_radius=4;e.hasOwnProperty("geom_shape")&&"circle"!==e.geom_shape&&"square"!==e.geom_shape&&(e.geom_shape="circle",console.error("geom_shape must be either 'circle' or 'square'")),t.com.sendMessageToMap({type:"setCustomColors",properties:e,sessionToken:t.sessionToken})}else console.error("properties is not an object")})),g(m(t),"changeBackground",(function(e){return t.com.sendMessageToMap({type:"changeBackground",sessionToken:t.sessionToken,newBackground:e})})),g(m(t),"getBackground",(function(){t.com.sendMessageToMap({type:"getBackground",sessionToken:t.sessionToken})})),g(m(t),"initMeasure",(function(e,o,n){return t.com.sendMessageToMap({type:"initMeasure",sessionToken:t.sessionToken,measure:e,textStart:o,textContinue:n})})),g(m(t),"cancelMeasure",(function(){return t.com.sendMessageToMap({type:"cancelMeasure",sessionToken:t.sessionToken})})),g(m(t),"setBboxSize",(function(e){isNaN(parseInt(e))?console.error("bbox is not a integer"):t.com.sendMessageToMap({type:"setBoundingBoxSize",bbox:e,sessionToken:t.sessionToken})})),g(m(t),"addIcon",(function(e){var o=e.icon,n=e.coordinates;o instanceof ArrayBuffer||t.emit("error",{type:"error",error:"Invalid icon: Expected an ArrayBuffer."}),Array.isArray(n)||t.emit("error",{type:"error",error:"Invalid coordinates: Expected an array [longitude, latitude]."}),2===n.length&&"number"==typeof n[0]&&"number"==typeof n[1]||t.emit("error",{type:"error",error:"Invalid coordinates: Expected an array with two numeric values [longitude, latitude]."}),t.com.sendMessageToMap({type:"AddIcon",icon:o,coordinates:n,sessionToken:t.sessionToken})})),g(m(t),"screenshot",(function(e){t.com.sendMessageToMap({type:"screenshot",options:e,sessionToken:t.sessionToken})})),g(m(t),"setDpi",(function(e){t.com.sendMessageToMap({type:"setDpi",options:e,sessionToken:t.sessionToken})})),g(m(t),"print",(function(e){t.com.sendMessageToMap({type:"print",options:e,sessionToken:t.sessionToken})})),g(m(t),"startPrint",(function(e){t.com.sendMessageToMap({type:"printStart",options:e,sessionToken:t.sessionToken})})),g(m(t),"cancelPrint",(function(e){t.com.sendMessageToMap({type:"printCancel",options:e,sessionToken:t.sessionToken})})),t.domId="map-frame","undefined"==typeof window?f(t):("string"==typeof e.id&&(t.domId=e.id),t.com=new l(e),window.addEventListener("message",(function(e){return t.onMessageReceived(e)})),t.sessionToken=e.sessionToken,t)}return t=i,(o=[{key:"removeListener",value:function(e,t){d(y(i.prototype),"removeListener",this).call(this,e,t)}}])&&u(t.prototype,o),Object.defineProperty(t,"prototype",{writable:!1}),i}(e.EventEmitter)})(),n})()));
@@ -4,7 +4,7 @@ const { useState, useEffect } = require("react");
4
4
 
5
5
  const PrintLayoutSelector = () => {
6
6
  const { zoomToScale } = useMessages();
7
- const { paperLayout, setPaperLayout } = usePrint();
7
+ const { paperLayout, setPaperLayout, printEnabled } = usePrint();
8
8
  const layouts = [
9
9
  { id: "landscape", val: "landscape", label: "landscape" },
10
10
  { id: "portrait", val: "portrait", label: "portrait" },
@@ -27,6 +27,7 @@ const PrintLayoutSelector = () => {
27
27
  <div className="mx-2 pt-2">
28
28
  <label>Layout:</label>
29
29
  <select
30
+ disabled={printEnabled}
30
31
  value={actualValue}
31
32
  onChange={(e) => {
32
33
  const newVal = !isNaN(e.target.value)
@@ -4,7 +4,7 @@ const { useState, useEffect } = require("react");
4
4
 
5
5
  const PrintPaperSizeSelector = () => {
6
6
  const { zoomToScale } = useMessages();
7
- const { paperSize, setPaperSize } = usePrint();
7
+ const { paperSize, setPaperSize, printEnabled } = usePrint();
8
8
  const sizes = [
9
9
  { id: "A4", val: "A4", label: "A4" },
10
10
  { id: "A3", val: "A3", label: "A3" },
@@ -22,9 +22,10 @@ const PrintPaperSizeSelector = () => {
22
22
  console.log("paperSize", paperSize);
23
23
  }, [paperSize]);
24
24
  return (
25
- <div className="mx-2 pt-2">
25
+ <div className="mx-2 pt-2 text-xs">
26
26
  <label>Paper size:</label>
27
27
  <select
28
+ disabled={printEnabled}
28
29
  value={actualValue}
29
30
  onChange={(e) => {
30
31
  const newVal = !isNaN(e.target.value)
@@ -0,0 +1,61 @@
1
+ import { useMaps } from "@/contexts/maps";
2
+ import { usePrint } from "@/contexts/print";
3
+ const { useMessages } = require("@/contexts/messages");
4
+ const { useState, useEffect } = require("react");
5
+
6
+ const PrintScaleSelector = () => {
7
+ const { zoomToScale } = useMessages();
8
+ const { mapScale, setMapScale } = useMaps();
9
+ const { printEnabled } = usePrint();
10
+ const scales = [
11
+ { id: "1:100", val: "1:100", label: "1:100" },
12
+ { id: "1:200", val: "1:200", label: "1:200" },
13
+ { id: "1:500", val: "1:500", label: "1:500" },
14
+ { id: "1:1000", val: "1:1000", label: "1:1000" },
15
+ { id: "1:2000", val: "1:2000", label: "1:2000" },
16
+ { id: "1:5000", val: "1:5000", label: "1:5000" },
17
+ { id: "1:10000", val: "1:10000", label: "1:10000" },
18
+ { id: "1:50000", val: "1:50000", label: "1:50000" },
19
+ ];
20
+
21
+ const [actualValue, setActualValue] = useState(mapScale ? mapScale : "-1");
22
+ useEffect(() => {
23
+ if (!mapScale) return;
24
+ const current = scales.find((s) => s.val === mapScale);
25
+ if (current) {
26
+ setActualValue(current.val);
27
+ } else {
28
+ setActualValue("-1");
29
+ }
30
+ console.log("mapScale", mapScale);
31
+ }, [mapScale]);
32
+ return (
33
+ <div className="mx-2 pt-2">
34
+ <label>Scale:</label>
35
+ <select
36
+ disabled={printEnabled}
37
+ value={actualValue}
38
+ onChange={(e) => {
39
+ const newVal = !isNaN(e.target.value)
40
+ ? Number(e.target.value)
41
+ : e.target.value;
42
+ setActualValue(newVal);
43
+ zoomToScale(newVal);
44
+ setMapScale(newVal);
45
+ }}
46
+ >
47
+ <option key={`opt_select_scale`} value="-1">
48
+ Select scale...
49
+ </option>
50
+ {scales.map((opt, index) => {
51
+ return (
52
+ <option key={`opt_sca_${index}`} value={opt.val}>
53
+ {opt.label}
54
+ </option>
55
+ );
56
+ })}
57
+ </select>
58
+ </div>
59
+ );
60
+ };
61
+ export default PrintScaleSelector;
@@ -1,10 +1,7 @@
1
- import PrintLayoutSelector from "@/atoms/PrintLayoutSelector";
2
- import PrintPaperSizeSelector from "@/atoms/PrintPaperSizeSelector";
3
1
  import ZoomToScaleButton from "@/atoms/ZoomToScaleButton";
4
2
  import { useAuth } from "@/contexts/auth";
5
3
  import { useMaps } from "@/contexts/maps";
6
4
  import { useMessages } from "@/contexts/messages";
7
- import { useEffect, useState } from "react";
8
5
 
9
6
  const MapButtons = () => {
10
7
  const { logged } = useAuth();
@@ -103,19 +100,6 @@ const MapButtons = () => {
103
100
  Center map to clicked coordinates
104
101
  </button>
105
102
  <ZoomToScaleButton />
106
- <div className="mx-2 pt-2">|</div>
107
- <button
108
- onClick={(e) => {
109
- console.log("Highlight clickedCoordinates", clickedCoordinates);
110
- }}
111
- disabled={!clickedCoordinates}
112
- className="border border-gray-300 bg-black text-white rounded-md p-2"
113
- >
114
- Print
115
- </button>
116
-
117
- <PrintPaperSizeSelector />
118
- <PrintLayoutSelector />
119
103
  </div>
120
104
  )}
121
105
  </>
@@ -0,0 +1,50 @@
1
+ import { useMessages } from "@/contexts/messages";
2
+ import { usePrint } from "@/contexts/print";
3
+ import PrintLayoutSelector from "@/atoms/PrintLayoutSelector";
4
+ import PrintPaperSizeSelector from "@/atoms/PrintPaperSizeSelector";
5
+ import ZoomToScaleButton from "@/atoms/ZoomToScaleButton";
6
+ import PrintScaleSelector from "@/atoms/PrintScaleSelector";
7
+ import { useMaps } from "@/contexts/maps";
8
+ const MapPrint = ({ map }) => {
9
+ const { cancelPrint, print } = useMessages();
10
+ const { mapScale } = useMaps();
11
+ const { startPrint, printEnabled } = usePrint();
12
+ return (
13
+ <div className="absolute bg-white/60 left-0 py-1 px-5 m-5 text-left border border-gray-300 rounded-md">
14
+ <button
15
+ onClick={(e) => {
16
+ console.log("Print");
17
+ if (!mapScale || mapScale === "-1") {
18
+ alert("Choose scale first");
19
+ return;
20
+ }
21
+ if (printEnabled) {
22
+ print();
23
+ } else {
24
+ startPrint();
25
+ }
26
+ }}
27
+ className="border border-gray-300 bg-black text-white rounded-md p-2 my-1 text-xs"
28
+ >
29
+ Print
30
+ </button>
31
+ {printEnabled && (
32
+ <button
33
+ onClick={(e) => {
34
+ console.log("Print");
35
+ cancelPrint();
36
+ }}
37
+ className="border border-gray-300 bg-black text-white rounded-md p-2 my-1 text-xs"
38
+ >
39
+ Cancel print
40
+ </button>
41
+ )}
42
+ <div className="text-xs text-left">
43
+ <PrintPaperSizeSelector />
44
+ <PrintLayoutSelector />
45
+ <PrintScaleSelector />
46
+ </div>
47
+ </div>
48
+ );
49
+ };
50
+ export default MapPrint;
@@ -212,13 +212,6 @@ export const MessageProvider = ({ children }) => {
212
212
  };
213
213
 
214
214
  //***** PRINT ******/
215
- const printPaperSize = (paperSize) => {
216
- console.log("printPaperSize", communicator, paperSize);
217
- communicator.printPaperSize(paperSize);
218
- };
219
- const printPaperLayout = (paperLayout) => {
220
- communicator.printPaperLayout(paperLayout);
221
- };
222
215
 
223
216
  const startPrint = (options) => {
224
217
  communicator.startPrint(options);
@@ -227,6 +220,9 @@ export const MessageProvider = ({ children }) => {
227
220
  communicator.cancelPrint(options);
228
221
  };
229
222
 
223
+ const print = (options) => {
224
+ communicator.print(options);
225
+ };
230
226
  const onMapEvent = (data) => {
231
227
  console.log(`onMapEvent`, { type: data.type, data });
232
228
  setMessageQueue((prevQueue) => [...prevQueue, data]);
@@ -263,6 +259,7 @@ export const MessageProvider = ({ children }) => {
263
259
  communicator.on(MAP_EVENTS.LAYERS, onMapEvent);
264
260
  communicator.on(MAP_EVENTS.VERSION, onMapEvent);
265
261
  communicator.on(MAP_EVENTS.SCREENSHOT, onMapEvent);
262
+ communicator.on(MAP_EVENTS.PRINT, onMapEvent);
266
263
  return () => {
267
264
  if (!communicator) return;
268
265
  communicator.off(MAP_EVENTS.ZOOM_CHANGE, onMapEvent);
@@ -282,6 +279,7 @@ export const MessageProvider = ({ children }) => {
282
279
  communicator.off(MAP_EVENTS.LAYERS, onMapEvent);
283
280
  communicator.off(MAP_EVENTS.VERSION, onMapEvent);
284
281
  communicator.off(MAP_EVENTS.SCREENSHOT, onMapEvent);
282
+ communicator.off(MAP_EVENTS.PRINT, onMapEvent);
285
283
  setCommunicator(null);
286
284
  };
287
285
  }, [communicator, events]);
@@ -305,6 +303,7 @@ export const MessageProvider = ({ children }) => {
305
303
  communicator.off(MAP_EVENTS.STATUS, onMapEvent);
306
304
  communicator.off(MAP_EVENTS.INFO, onMapEvent);
307
305
  communicator.off(MAP_EVENTS.VERSION, onMapEvent);
306
+ communicator.off(MAP_EVENTS.PRINT, onMapEvent);
308
307
  }
309
308
  setMessage(null);
310
309
  setEvents(false);
@@ -346,8 +345,7 @@ export const MessageProvider = ({ children }) => {
346
345
  drawPoint,
347
346
  addIcon,
348
347
  zoomToScale,
349
- printPaperSize,
350
- printPaperLayout,
348
+ print,
351
349
  startPrint,
352
350
  cancelPrint,
353
351
  }}
@@ -1,21 +1,111 @@
1
1
  "use client";
2
2
  import { createContext, useContext, useState, useEffect } from "react";
3
3
  import { useMessages } from "./messages";
4
+ import { MAP_EVENTS } from "@/shared/constants";
5
+ import { useMaps } from "./maps";
6
+ import { useAuth } from "./auth";
4
7
 
5
8
  const PrintsContext = createContext({});
6
9
 
7
10
  export const PrintsProvider = ({ children }) => {
8
- const [paperSize, setPaperSize] = useState(null);
9
- const [paperLayout, setPaperLayout] = useState(null);
10
- const { printPaperSize, printPaperLayout, startPrint, cancelPrint } =
11
- useMessages();
11
+ const [paperSize, setPaperSize] = useState("A4");
12
+ const [paperLayout, setPaperLayout] = useState("landscape");
13
+ const [printEnabled, setPrintEnabled] = useState(null);
14
+ const { mapId, displayedLayers, mapScale } = useMaps();
15
+ const { apiUrl, token } = useAuth();
16
+ const { startPrint: startPrintMessages, setMessage, message } = useMessages();
17
+
18
+ useEffect(() => {
19
+ if (!message) return;
20
+
21
+ switch (message.type) {
22
+ case MAP_EVENTS.PRINT:
23
+ console.log("useMapEvents print event", message, message.content);
24
+ if (message.content?.print === true) {
25
+ setPrintEnabled(true);
26
+ } else if (message.content?.print === false) {
27
+ setPrintEnabled(false);
28
+ }
29
+ if (message.content?.file) {
30
+ sendPrintToApi(message.content.file);
31
+ setPrintEnabled(false);
32
+ }
33
+ setMessage(null);
34
+ break;
35
+ }
36
+ }, [message]);
37
+
38
+ const sendPrintToApi = async (file) => {
39
+ const data = {
40
+ scale: "1:100",
41
+ template: "basic",
42
+ content: file,
43
+ format: paperSize,
44
+ layout: paperLayout,
45
+ displayedLayers,
46
+ };
47
+ try {
48
+ // Create FormData object for the request payload
49
+ const bodyFormData = new FormData();
50
+ for (const [key, value] of Object.entries(data)) {
51
+ bodyFormData.append(key, value);
52
+ }
53
+
54
+ // Set headers dynamically, including Authorization if available
55
+ const headers = {};
56
+
57
+ if (token) {
58
+ headers.Authorization = `Bearer ${token}`;
59
+ }
60
+
61
+ // Send POST request using fetch
62
+ const response = await fetch(`${apiUrl}/print/${mapId}`, {
63
+ method: "POST",
64
+ headers, // No need to set "Content-Type" for FormData (browser sets it automatically)
65
+ body: bodyFormData,
66
+ });
67
+
68
+ // Check if the request was successful
69
+ if (!response.ok) {
70
+ throw new Error(`Failed to fetch: ${response.statusText}`);
71
+ }
72
+
73
+ // Get the response as a Blob (PDF)
74
+ const pdfBlob = await response.blob();
75
+
76
+ // Create a download link
77
+ const link = document.createElement("a");
78
+ link.href = URL.createObjectURL(pdfBlob);
79
+ link.download = "myprint.pdf"; // Set filename
80
+ document.body.appendChild(link);
81
+ link.click(); // Trigger download
82
+ document.body.removeChild(link);
83
+
84
+ return true;
85
+ } catch (error) {
86
+ console.error("Error sending print request:", error);
87
+ return false;
88
+ }
89
+ };
90
+
91
+ useEffect(() => {
92
+ if (!paperLayout) return;
93
+ console.log("set paperLayout", paperLayout);
94
+ }, [paperLayout]);
12
95
 
13
96
  useEffect(() => {
14
97
  if (!paperSize) return;
15
98
  console.log("set paperSize", paperSize);
16
- printPaperSize(paperSize);
17
99
  }, [paperSize]);
18
100
 
101
+ const startPrint = () => {
102
+ console.log("Start print");
103
+ startPrintMessages({
104
+ paperLayout: paperLayout ? paperLayout : "landscape",
105
+ paperSize: paperSize ? paperSize : "A4",
106
+ });
107
+ };
108
+
19
109
  return (
20
110
  <PrintsContext.Provider
21
111
  value={{
@@ -23,6 +113,8 @@ export const PrintsProvider = ({ children }) => {
23
113
  setPaperLayout,
24
114
  paperSize,
25
115
  setPaperSize,
116
+ startPrint,
117
+ printEnabled,
26
118
  }}
27
119
  >
28
120
  {children}
@@ -9,7 +9,7 @@
9
9
  "lint": "next lint"
10
10
  },
11
11
  "dependencies": {
12
- "@vidro/map-handler": "^1.1.194",
12
+ "@vidro/map-handler": "^1.3.11",
13
13
  "js-cookie": "^3.0.5",
14
14
  "next": "15.1.6",
15
15
  "react": "^19.0.0",
@@ -10,6 +10,7 @@ import MapList from "@/components/MapList";
10
10
  import MapLayers from "@/components/MapLayers";
11
11
  import MapFilters from "@/components/MapFilters";
12
12
  import { PrintsProvider } from "@/contexts/print";
13
+ import MapPrint from "@/components/MapPrint";
13
14
 
14
15
  export default function Home() {
15
16
  return (
@@ -25,13 +26,19 @@ export default function Home() {
25
26
  </div>
26
27
  <div className="my-5">
27
28
  <MapList />
28
- <MapLayers />
29
- <MapFilters />
29
+ <div className="flex gap-4">
30
+ <MapLayers />
31
+ </div>
32
+
33
+ <div className="flex gap-4">
34
+ <MapFilters />
35
+ </div>
30
36
  </div>
31
37
 
32
38
  <div className="my-5 bg-gray-100 border border-gray-400 p-4">
33
39
  <MapButtons />
34
40
  <MapInfo />
41
+ <MapPrint />
35
42
  <MapIframe />
36
43
  </div>
37
44
  </main>
@@ -44,4 +44,5 @@ export const MAP_EVENTS = {
44
44
  LAYERS: "layers",
45
45
  VERSION: "version",
46
46
  SCREENSHOT: "screenshot",
47
+ PRINT: "print",
47
48
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vidro/map-handler",
3
- "version": "1.3.0",
3
+ "version": "1.3.2",
4
4
  "description": "Tool to achieve the easiest way of communication with the map",
5
5
  "homepage": "https://github.com/Vidro-Software-SL/maphandler",
6
6
  "repository": {
package/src/index.js CHANGED
@@ -104,6 +104,12 @@ class Communicator extends EventEmitter {
104
104
  case "screenshot":
105
105
  this.emitEvent("screenshot", e.data, e.data.domId);
106
106
  break;
107
+ case "print":
108
+ this.emitEvent("print", e.data, e.data.domId);
109
+ break;
110
+ case "dpi":
111
+ this.emitEvent("dpi", e.data, e.data.domId);
112
+ break;
107
113
 
108
114
  //case "getLegend": this.emitEvent("getLegend", e.data,e.data.domId); break;
109
115
  }
@@ -841,23 +847,22 @@ class Communicator extends EventEmitter {
841
847
  });
842
848
  };
843
849
 
844
- //***** PRINT ******/
845
- printPaperSize = (paperSize) => {
846
- console.warn("printPaperSize is deprecated. Use printSetPaperSize");
850
+ setDpi = (options) => {
847
851
  this.com.sendMessageToMap({
848
- type: "printSetPaperSize",
849
- paperSize: paperSize,
852
+ type: "setDpi",
853
+ options,
850
854
  sessionToken: this.sessionToken,
851
855
  });
852
856
  };
853
- printPaperLayout = (paperLayout) => {
857
+ //***** PRINT ******/
858
+
859
+ print = (options) => {
854
860
  this.com.sendMessageToMap({
855
- type: "printSetOrientation",
856
- paperLayout: paperLayout,
861
+ type: "print",
862
+ options,
857
863
  sessionToken: this.sessionToken,
858
864
  });
859
865
  };
860
-
861
866
  startPrint = (options) => {
862
867
  this.com.sendMessageToMap({
863
868
  type: "printStart",