@vidro/map-handler 1.2.191 → 1.2.193

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/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Map Handler
2
2
 
3
- #### Version 1.2.19 - February 2025
3
+ #### Version 1.2.191 - February 2025
4
4
 
5
5
  Tool to achieve the easiest way of communication with the map iframe.
6
6
 
@@ -974,12 +974,12 @@ removeGeoJSONLayer('somename');
974
974
 
975
975
  ##### clearGeoJSON
976
976
 
977
- Clears geoJSON layers
977
+ Clears geoJSON layer
978
978
 
979
979
  > E.G.
980
980
 
981
981
  ```
982
- clearGeoJSON();
982
+ clearGeoJSON(layername);
983
983
  ```
984
984
 
985
985
  ##### setFilters
@@ -1 +1 @@
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,g(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 v(e,t,o){return(t=g(t))in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function g(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),v(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)}})),v(m(t),"emitEvent",(function(e,o,n){n===t.domId&&(delete o.domId,t.emit(e,o))})),v(m(t),"ZoomIn",(function(){t.com.sendMessageToMap({type:"zoomIn",sessionToken:t.sessionToken})})),v(m(t),"ZoomOut",(function(){t.com.sendMessageToMap({type:"zoomOut",sessionToken:t.sessionToken})})),v(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})})),v(m(t),"CancelAddGeom",(function(e){t.com.sendMessageToMap({type:"CancelAddGeom"})})),v(m(t),"loadMultipleLayers",(function(e){void 0!==e?t.com.sendMessageToMap({type:"loadMultipleLayers",layers:e}):t.emit("error",{error:"no layers"})})),v(m(t),"toggleGroup",(function(e){t.com.sendMessageToMap({type:"toggleGroup",layers:e})})),v(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)})})),v(m(t),"removeLayer",(function(e){t.com.sendMessageToMap({type:"removeLayer",layer:e,sessionToken:t.sessionToken})})),v(m(t),"displayLayer",(function(e){t.com.sendMessageToMap({type:"displayLayer",layer:e,sessionToken:t.sessionToken})})),v(m(t),"setActiveLayer",(function(e){t.com.sendMessageToMap({type:"setActiveLayer",layer:e,sessionToken:t.sessionToken})})),v(m(t),"getActiveLayer",(function(){t.com.sendMessageToMap({type:"getActiveLayer",sessionToken:t.sessionToken})})),v(m(t),"bringLayerToTop",(function(e){t.com.sendMessageToMap({type:"bringLayerToTop",layer:e,sessionToken:t.sessionToken})})),v(m(t),"bringLayerToBottom",(function(e){t.com.sendMessageToMap({type:"bringLayerToBottom",layer:e,sessionToken:t.sessionToken})})),v(m(t),"loadWMSAvailableLayers",(function(){t.com.sendMessageToMap({type:"loadWMSAvailableLayers",sessionToken:t.sessionToken})})),v(m(t),"clear",(function(){t.com.sendMessageToMap({type:"clear",sessionToken:t.sessionToken})})),v(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})})),v(m(t),"DrawGeometries",(function(e){void 0!==e?t.com.sendMessageToMap({type:"DrawGeometries",geoms:e}):t.emit("error",{type:"error",error:"no geoms"})})),v(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"})})),v(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"})})),v(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})})),v(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})})),v(m(t),"zoomToExtent",(function(){t.com.sendMessageToMap({type:"zoomToExtent",sessionToken:t.sessionToken})})),v(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})})),v(m(t),"zoomToCoordinates",(function(e,o,n){isNaN(parseInt(n))||t.com.sendMessageToMap({type:"zoomToCoordinates",sessionToken:t.sessionToken,coordinates:[e,o],zoomLevel:n})})),v(m(t),"zoomToGeometry",(function(e,o){t.com.sendMessageToMap({type:"zoomToGeometry",sessionToken:t.sessionToken,geom:e,limits:o})})),v(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")})),v(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")})),v(m(t),"Geolocalize",(function(e,o){t.com.sendMessageToMap({type:"Geolocalize",toggle:e,options:o,sessionToken:t.sessionToken})})),v(m(t),"toggleGiswaterTiled",(function(e,o){t.com.sendMessageToMap({type:"toggleTiled",toggle:e,tiled:o,sessionToken:t.sessionToken})})),v(m(t),"toggleTiled",(function(e,o){t.com.sendMessageToMap({type:"toggleTiled",toggle:e,tiled:o,sessionToken:t.sessionToken})})),v(m(t),"getTiled",(function(){t.com.sendMessageToMap({type:"getTiled",sessionToken:t.sessionToken})})),v(m(t),"toggleSecondaryBackground",(function(e){t.com.sendMessageToMap({type:"toggleSecondaryBackground",toggle:e})})),v(m(t),"getSecondaryBackground",(function(){t.com.sendMessageToMap({type:"getSecondaryBackground",sessionToken:t.sessionToken})})),v(m(t),"reloadDisplayedLayers",(function(){return t.com.sendMessageToMap({type:"reloadDisplayedLayers",sessionToken:t.sessionToken})})),v(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"})})),v(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})})),v(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"})})),v(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"})})),v(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"})})),v(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"})})),v(m(t),"CenterMap",(function(e,o){t.com.sendMessageToMap({type:"centerMap",coordinates:[e,o]})})),v(m(t),"getToc",(function(){return t.com.sendMessageToMap({type:"getToc",sessionToken:t.sessionToken})})),v(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})})),v(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")})),v(m(t),"changeBackground",(function(e){return t.com.sendMessageToMap({type:"changeBackground",sessionToken:t.sessionToken,newBackground:e})})),v(m(t),"getBackground",(function(){t.com.sendMessageToMap({type:"getBackground",sessionToken:t.sessionToken})})),v(m(t),"initMeasure",(function(e,o,n){return t.com.sendMessageToMap({type:"initMeasure",sessionToken:t.sessionToken,measure:e,textStart:o,textContinue:n})})),v(m(t),"cancelMeasure",(function(){return t.com.sendMessageToMap({type:"cancelMeasure",sessionToken:t.sessionToken})})),v(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})})),v(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})})),v(m(t),"screenshot",(function(e){t.com.sendMessageToMap({type:"screenshot",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})()));
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})()));
@@ -118,10 +118,45 @@ function checkToken() {
118
118
  loginContainer.classList.remove("hide");
119
119
  }
120
120
  }
121
+
122
+ function getUserProjects() {
123
+ //Check if user token is valid
124
+ console.log("getUserProjects", usertoken.value);
125
+ if (usertoken.value != "") {
126
+ //build XMLHttpRequest for checking token
127
+ var oReq = new XMLHttpRequest();
128
+ oReq.addEventListener("load", projectsListener);
129
+ oReq.open("GET", `${apiUrl}maps/`, true);
130
+ oReq.setRequestHeader("Content-type", "application/json");
131
+ oReq.setRequestHeader("Authorization", `Bearer ${usertoken.value}`);
132
+
133
+ oReq.send();
134
+ console.log("getUserProjects", `${apiUrl}projects/`);
135
+ } else {
136
+ }
137
+ }
138
+
139
+ function projectsListener() {
140
+ if (this.status === 200) {
141
+ var res = JSON.parse(this.responseText);
142
+ console.log("projectsListener", res.message);
143
+ var projects = [];
144
+ for (var i = 0; i < res.message.length; i++) {
145
+ projects.push(res.message[i].map_id);
146
+ }
147
+ fillUserProjects(projects);
148
+ } else {
149
+ //if token is invalid, show login form
150
+ console.error(this.status);
151
+ }
152
+ }
121
153
  function tokenListener() {
122
154
  if (this.status === 200) {
123
155
  var res = JSON.parse(this.responseText);
124
156
  console.log("Valid user token", res.message);
157
+ console.log("item", localStorage.getItem("selectedProjectId"));
158
+ getUserProjects();
159
+
125
160
  //get from localstorage last iframe selected
126
161
  var cachedMap = localStorage.getItem("iframe");
127
162
  if (cachedMap) {
@@ -129,11 +164,8 @@ function tokenListener() {
129
164
  mapContainer.classList.remove("hide");
130
165
  iframe.src = cachedMap;
131
166
  sessionToken.innerHTML = localStorage.getItem("sessionToken");
132
- var selectedProjectId = localStorage.getItem("selectedProjectId");
133
- if (selectedProjectId) {
134
- selectProject(selectedProjectId);
135
- }
136
167
  }
168
+ //get user projects
137
169
  } else {
138
170
  //if token is invalid, show login form
139
171
  console.error(this.status);
@@ -162,6 +194,11 @@ function fillUserProjects(options) {
162
194
  el.value = opt;
163
195
  projects_select.appendChild(el);
164
196
  }
197
+
198
+ var selectedProjectId = localStorage.getItem("selectedProjectId");
199
+ if (selectedProjectId) {
200
+ selectProject(selectedProjectId);
201
+ }
165
202
  }
166
203
 
167
204
  function selectProject(id) {
@@ -263,7 +300,7 @@ btLoadProjectLayers.addEventListener("click", function (evt) {
263
300
  var selectedProjectId =
264
301
  projects_select.options[projects_select.selectedIndex].value;
265
302
 
266
- var uri = `${apiUrl}layers/${selectedProjectId}`;
303
+ var uri = `${apiUrl}/layers/${selectedProjectId}`;
267
304
 
268
305
  var oReq = new XMLHttpRequest();
269
306
  oReq.addEventListener("load", layersListener);
@@ -1 +1 @@
1
- 2ac3b1f2646238b40e49aeb73345d18e
1
+ e47b595bdd549b83c9c061918313886e
@@ -164,13 +164,13 @@
164
164
  Stroke color: <input type="text" name="strokecolor" id="strokecolor" size="10" value="#FF0000" placeholder="#000000"> <small>Override stroke color, desfault #ff0000</small><br>
165
165
  Fill color: <input type="text" name="fillcolor" id="fillcolor" size="10" value="#FF0000" placeholder="#000000"> <small>Override fill color, desfault #ff0000</small><br><br>
166
166
  <button id="btSetColors">Set colors</button>
167
- <button id="btAddGeoJSON">Add GeoJSON Layer</button> <button id="btClearGeoJSON">Clear GeoJSON Layers</button><br><br>
167
+ <button id="btAddGeoJSON">Add GeoJSON Layer</button> <button id="btClearGeoJSON">Clear GeoJSON Layer</button><br><br>
168
168
  <input type="text" name="hitTolerance" id="hitTolerance" size="5" value="" placeholder="5"> <small>Override hit tolerance</small><br><br>
169
169
 
170
170
  Selected GeoJSON Layer: <select id="geojsonlayers"></select> - <button id="btGeoJSONInfo" disabled="true">GeoJSON Info</button> <button id="btRemoveGeoJSONLayer" disabled="true">Remove GeoJSON Layer</button><br><br>
171
171
 
172
172
 
173
- <script src="https://unpkg.com/@vidro/map-handler@1.2.180/dist/map-handler.js"></script>
173
+ <script src="https://unpkg.com/@vidro/map-handler@1.2.191/dist/map-handler.js"></script>
174
174
  <script src="./tester.js"></script>
175
175
  <script src="./apidemo.js"></script>
176
176
  </body>
@@ -92,10 +92,13 @@ communicator.on("geomAdded", function (data) {
92
92
  document.getElementById("geom").value = data;
93
93
  });
94
94
 
95
+ communicator.on("unloaded", function (data) {
96
+ console.log("unloaded", data);
97
+ });
98
+
95
99
  communicator.on("loaded", function (data) {
96
100
  console.log("loaded", data);
97
101
  });
98
-
99
102
  communicator.on("layers", function (data) {
100
103
  console.log("layers received", data);
101
104
  fillDisplayedLayersSelect(data);
@@ -512,7 +515,7 @@ if (btAddGeoJSON) {
512
515
  if (btClearGeoJSON) {
513
516
  btClearGeoJSON.addEventListener("click", function () {
514
517
  var geojsonaLayername = document.querySelector("#geojsonaLayername").value;
515
- communicator.clearGeoJSON({ name: geojsonaLayername });
518
+ communicator.clearGeoJSON(geojsonaLayername);
516
519
  });
517
520
  }
518
521
 
@@ -0,0 +1,50 @@
1
+ import { usePrint } from "@/contexts/print";
2
+ const { useMessages } = require("@/contexts/messages");
3
+ const { useState, useEffect } = require("react");
4
+
5
+ const PrintLayoutSelector = () => {
6
+ const { zoomToScale } = useMessages();
7
+ const { paperLayout, setPaperLayout } = usePrint();
8
+ const layouts = [
9
+ { id: "landscape", val: "landscape", label: "landscape" },
10
+ { id: "portrait", val: "portrait", label: "portrait" },
11
+ ];
12
+
13
+ const [actualValue, setActualValue] = useState(
14
+ paperLayout ? paperLayout : "landscape"
15
+ );
16
+ useEffect(() => {
17
+ if (!paperLayout) return;
18
+ const current = layouts.find((s) => s.val === paperLayout);
19
+ if (current) {
20
+ setActualValue(current.val);
21
+ } else {
22
+ setActualValue("landscape");
23
+ }
24
+ console.log("paperLayout", paperLayout);
25
+ }, [paperLayout]);
26
+ return (
27
+ <div className="mx-2 pt-2">
28
+ <label>Layout:</label>
29
+ <select
30
+ value={actualValue}
31
+ onChange={(e) => {
32
+ const newVal = !isNaN(e.target.value)
33
+ ? Number(e.target.value)
34
+ : e.target.value;
35
+ setActualValue(newVal);
36
+ setPaperLayout(newVal);
37
+ }}
38
+ >
39
+ {layouts.map((opt, index) => {
40
+ return (
41
+ <option key={`opt_layout_${index}`} value={opt.val}>
42
+ {opt.label}
43
+ </option>
44
+ );
45
+ })}
46
+ </select>
47
+ </div>
48
+ );
49
+ };
50
+ export default PrintLayoutSelector;
@@ -0,0 +1,48 @@
1
+ import { usePrint } from "@/contexts/print";
2
+ const { useMessages } = require("@/contexts/messages");
3
+ const { useState, useEffect } = require("react");
4
+
5
+ const PrintPaperSizeSelector = () => {
6
+ const { zoomToScale } = useMessages();
7
+ const { paperSize, setPaperSize } = usePrint();
8
+ const sizes = [
9
+ { id: "A4", val: "A4", label: "A4" },
10
+ { id: "A3", val: "A3", label: "A3" },
11
+ ];
12
+
13
+ const [actualValue, setActualValue] = useState(paperSize ? paperSize : "A4");
14
+ useEffect(() => {
15
+ if (!paperSize) return;
16
+ const currentSize = sizes.find((s) => s.val === paperSize);
17
+ if (currentSize) {
18
+ setActualValue(currentSize.val);
19
+ } else {
20
+ setActualValue("A4");
21
+ }
22
+ console.log("paperSize", paperSize);
23
+ }, [paperSize]);
24
+ return (
25
+ <div className="mx-2 pt-2">
26
+ <label>Paper size:</label>
27
+ <select
28
+ value={actualValue}
29
+ onChange={(e) => {
30
+ const newVal = !isNaN(e.target.value)
31
+ ? Number(e.target.value)
32
+ : e.target.value;
33
+ setActualValue(newVal);
34
+ setPaperSize(newVal);
35
+ }}
36
+ >
37
+ {sizes.map((opt, index) => {
38
+ return (
39
+ <option key={`opt_${index}`} value={opt.val}>
40
+ {opt.label}
41
+ </option>
42
+ );
43
+ })}
44
+ </select>
45
+ </div>
46
+ );
47
+ };
48
+ export default PrintPaperSizeSelector;
@@ -0,0 +1,57 @@
1
+ const { useMaps } = require("@/contexts/maps");
2
+ const { useMessages } = require("@/contexts/messages");
3
+ const { useState, useEffect } = require("react");
4
+
5
+ const ZoomToScaleButton = () => {
6
+ const { zoomToScale } = useMessages();
7
+ const { mapScale } = useMaps();
8
+ const scales = [
9
+ { id: "1:100", val: "1:100", label: "1:100" },
10
+ { id: "1:200", val: "1:200", label: "1:200" },
11
+ { id: "1:500", val: "1:500", label: "1:500" },
12
+ { id: "1:1000", val: "1:1000", label: "1:1000" },
13
+ { id: "1:2000", val: "1:2000", label: "1:2000" },
14
+ { id: "1:5000", val: "1:5000", label: "1:5000" },
15
+ { id: "1:10000", val: "1:10000", label: "1:10000" },
16
+ { id: "1:50000", val: "1:50000", label: "1:50000" },
17
+ ];
18
+
19
+ const [actualValue, setActualValue] = useState(mapScale ? mapScale : "-1");
20
+ useEffect(() => {
21
+ if (!mapScale) return;
22
+ const scale = scales.find((s) => s.val === mapScale);
23
+ if (scale) {
24
+ setActualValue(scale.val);
25
+ } else {
26
+ setActualValue("-1");
27
+ }
28
+ console.log("mapScale", mapScale, scale);
29
+ }, [mapScale]);
30
+ return (
31
+ <div className="mx-2 pt-2">
32
+ <label>Zoom to scale:</label>
33
+ <select
34
+ value={actualValue}
35
+ onChange={(e) => {
36
+ const newVal = !isNaN(e.target.value)
37
+ ? Number(e.target.value)
38
+ : e.target.value;
39
+ setActualValue(newVal);
40
+ zoomToScale(newVal);
41
+ }}
42
+ >
43
+ <option key={`opt_select_scale`} value="-1">
44
+ Select scale...
45
+ </option>
46
+ {scales.map((opt, index) => {
47
+ return (
48
+ <option key={`opt_${index}`} value={opt.val}>
49
+ {opt.label}
50
+ </option>
51
+ );
52
+ })}
53
+ </select>
54
+ </div>
55
+ );
56
+ };
57
+ export default ZoomToScaleButton;
@@ -1,3 +1,6 @@
1
+ import PrintLayoutSelector from "@/atoms/PrintLayoutSelector";
2
+ import PrintPaperSizeSelector from "@/atoms/PrintPaperSizeSelector";
3
+ import ZoomToScaleButton from "@/atoms/ZoomToScaleButton";
1
4
  import { useAuth } from "@/contexts/auth";
2
5
  import { useMaps } from "@/contexts/maps";
3
6
  import { useMessages } from "@/contexts/messages";
@@ -100,62 +103,22 @@ const MapButtons = () => {
100
103
  Center map to clicked coordinates
101
104
  </button>
102
105
  <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 />
103
119
  </div>
104
120
  )}
105
121
  </>
106
122
  );
107
123
  };
108
124
  export default MapButtons;
109
-
110
- const ZoomToScaleButton = () => {
111
- const { zoomToScale } = useMessages();
112
- const { mapScale } = useMaps();
113
- const scales = [
114
- { id: "1:100", val: "1:100", label: "1:100" },
115
- { id: "1:200", val: "1:200", label: "1:200" },
116
- { id: "1:500", val: "1:500", label: "1:500" },
117
- { id: "1:1000", val: "1:1000", label: "1:1000" },
118
- { id: "1:2000", val: "1:2000", label: "1:2000" },
119
- { id: "1:5000", val: "1:5000", label: "1:5000" },
120
- { id: "1:10000", val: "1:10000", label: "1:10000" },
121
- { id: "1:50000", val: "1:50000", label: "1:50000" },
122
- ];
123
-
124
- const [actualValue, setActualValue] = useState(mapScale ? mapScale : "-1");
125
- useEffect(() => {
126
- if (!mapScale) return;
127
- const scale = scales.find((s) => s.val === mapScale);
128
- if (scale) {
129
- setActualValue(scale.val);
130
- } else {
131
- setActualValue("-1");
132
- }
133
- console.log("mapScale", mapScale, scale);
134
- }, [mapScale]);
135
- return (
136
- <div className="mx-2 pt-2">
137
- <label>Zoom to scale:</label>
138
- <select
139
- value={actualValue}
140
- onChange={(e) => {
141
- const newVal = !isNaN(e.target.value)
142
- ? Number(e.target.value)
143
- : e.target.value;
144
- setActualValue(newVal);
145
- zoomToScale(newVal);
146
- }}
147
- >
148
- <option key={`opt_select_scale`} value="-1">
149
- Select scale...
150
- </option>
151
- {scales.map((opt, index) => {
152
- return (
153
- <option key={`opt_${index}`} value={opt.val}>
154
- {opt.label}
155
- </option>
156
- );
157
- })}
158
- </select>
159
- </div>
160
- );
161
- };
@@ -1,11 +1,19 @@
1
1
  import { useAuth } from "@/contexts/auth";
2
2
  import { useMaps } from "@/contexts/maps";
3
- import { useState } from "react";
4
-
3
+ import { useEffect, useState } from "react";
4
+ import { getMapId as getMapIdCookie } from "@/shared/cookies";
5
5
  const MapList = () => {
6
6
  const { GetMap } = useMaps();
7
7
  const { projects, logged } = useAuth();
8
8
  const [selectedMap, setSelectedMap] = useState("-1");
9
+ useEffect(() => {
10
+ if (!logged) return;
11
+ if (!getMapIdCookie()) {
12
+ return;
13
+ }
14
+
15
+ setSelectedMap(getMapIdCookie());
16
+ }, [logged]);
9
17
  if (!logged) return null;
10
18
  return (
11
19
  <div>
@@ -1,7 +1,14 @@
1
1
  "use client";
2
- import { createContext, useContext, useState } from "react";
2
+ import { createContext, useContext, useState, useEffect } from "react";
3
3
  import { useRouter } from "next/navigation";
4
-
4
+ import {
5
+ getToken,
6
+ setToken as setTokenCookie,
7
+ removeToken as removeTokenCookie,
8
+ setMapList as setMapListCookie,
9
+ getMapList as getMapListCookie,
10
+ removeMapList as removeMapListCookie,
11
+ } from "@/shared/cookies";
5
12
  const AuthContext = createContext({});
6
13
 
7
14
  export const AuthProvider = ({ children }) => {
@@ -19,8 +26,46 @@ export const AuthProvider = ({ children }) => {
19
26
  setToken(null);
20
27
  setUserId(null);
21
28
  setProjects([]);
29
+ removeTokenCookie();
30
+ removeMapListCookie();
22
31
  };
23
32
 
33
+ useEffect(() => {
34
+ (async () => {
35
+ if (!getToken()) {
36
+ console.log("No token found");
37
+
38
+ return;
39
+ }
40
+ console.log("token cookie found, authenticating...");
41
+ try {
42
+ const response = await fetch(`${apiUrl}me`, {
43
+ method: "GET",
44
+ headers: {
45
+ "Content-Type": "application/json",
46
+ Authorization: `Bearer ${getToken()}`,
47
+ },
48
+ });
49
+ const data = await response.json();
50
+ if (!response.ok) {
51
+ resetAuthState();
52
+ return;
53
+ }
54
+ setToken(getToken());
55
+ setUserId(data.message.id);
56
+ setLogged(true);
57
+ const listMaps = getMapListCookie();
58
+ if (listMaps) {
59
+ setProjects(JSON.parse(listMaps));
60
+ }
61
+
62
+ console.log("authenticated through cookie", data);
63
+ } catch (error) {
64
+ console.error("Login error:", error);
65
+ return { error: true, message: "An unexpected error occurred" };
66
+ }
67
+ })();
68
+ }, []);
24
69
  const login = async (email, password) => {
25
70
  try {
26
71
  const response = await fetch(`${apiUrl}letsgo`, {
@@ -40,9 +85,10 @@ export const AuthProvider = ({ children }) => {
40
85
 
41
86
  setToken(data.message.token);
42
87
  setUserId(data.message.id);
43
-
44
88
  setLogged(true);
45
89
  setProjects(data.message.maps);
90
+ setTokenCookie(data.message.token);
91
+ setMapListCookie(JSON.stringify(data.message.maps));
46
92
  } catch (error) {
47
93
  console.error("Login error:", error);
48
94
  return { error: true, message: "An unexpected error occurred" };
@@ -1,7 +1,11 @@
1
1
  "use client";
2
2
  import { createContext, useContext, useState, useEffect } from "react";
3
3
  import { useAuth } from "./auth";
4
-
4
+ import {
5
+ setMapId as setMapIdCookie,
6
+ getMapId as getMapIdCookie,
7
+ removeMapId as removeMapIdCookie,
8
+ } from "@/shared/cookies";
5
9
  const MapsContext = createContext({});
6
10
 
7
11
  export const MapsProvider = ({ children }) => {
@@ -45,6 +49,24 @@ export const MapsProvider = ({ children }) => {
45
49
  //tools
46
50
  const [selectedTool, setSelectedTool] = useState(null);
47
51
 
52
+ useEffect(() => {
53
+ if (!token) return;
54
+ (async () => {
55
+ if (!getMapIdCookie()) {
56
+ console.log("No map if cookie found");
57
+
58
+ return;
59
+ }
60
+ console.log("Map id cookie found, getting map...");
61
+ try {
62
+ await GetMap(getMapIdCookie());
63
+ } catch (error) {
64
+ console.error("Error getting map from cookie", error);
65
+ return;
66
+ }
67
+ })();
68
+ }, [token]);
69
+
48
70
  const GetMap = async (id) => {
49
71
  let url = `${apiUrl}map/${id}`;
50
72
 
@@ -64,12 +86,17 @@ export const MapsProvider = ({ children }) => {
64
86
  setMap(
65
87
  `${data.message.iframe}?sessionToken=${data.message.sessionToken}`
66
88
  );
89
+ //store map id in cookie, to avoid losing it on page refresh
90
+ setMapIdCookie(id);
91
+
67
92
  return;
68
93
  } catch (error) {
69
94
  console.error("Error fetching map:", error);
70
95
  setSessionToken(null);
71
96
  setMap(null);
72
97
  setMapId(null);
98
+ removeMapIdCookie();
99
+
73
100
  throw error;
74
101
  }
75
102
  };
@@ -211,6 +211,22 @@ export const MessageProvider = ({ children }) => {
211
211
  communicator.zoomToScale(scale);
212
212
  };
213
213
 
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
+
223
+ const startPrint = (options) => {
224
+ communicator.startPrint(options);
225
+ };
226
+ const cancelPrint = (options) => {
227
+ communicator.cancelPrint(options);
228
+ };
229
+
214
230
  const onMapEvent = (data) => {
215
231
  console.log(`onMapEvent`, { type: data.type, data });
216
232
  setMessageQueue((prevQueue) => [...prevQueue, data]);
@@ -330,6 +346,10 @@ export const MessageProvider = ({ children }) => {
330
346
  drawPoint,
331
347
  addIcon,
332
348
  zoomToScale,
349
+ printPaperSize,
350
+ printPaperLayout,
351
+ startPrint,
352
+ cancelPrint,
333
353
  }}
334
354
  >
335
355
  {children}
@@ -0,0 +1,33 @@
1
+ "use client";
2
+ import { createContext, useContext, useState, useEffect } from "react";
3
+ import { useMessages } from "./messages";
4
+
5
+ const PrintsContext = createContext({});
6
+
7
+ export const PrintsProvider = ({ children }) => {
8
+ const [paperSize, setPaperSize] = useState(null);
9
+ const [paperLayout, setPaperLayout] = useState(null);
10
+ const { printPaperSize, printPaperLayout, startPrint, cancelPrint } =
11
+ useMessages();
12
+
13
+ useEffect(() => {
14
+ if (!paperSize) return;
15
+ console.log("set paperSize", paperSize);
16
+ printPaperSize(paperSize);
17
+ }, [paperSize]);
18
+
19
+ return (
20
+ <PrintsContext.Provider
21
+ value={{
22
+ paperLayout,
23
+ setPaperLayout,
24
+ paperSize,
25
+ setPaperSize,
26
+ }}
27
+ >
28
+ {children}
29
+ </PrintsContext.Provider>
30
+ );
31
+ };
32
+
33
+ export const usePrint = () => useContext(PrintsContext);
@@ -9,7 +9,8 @@
9
9
  "lint": "next lint"
10
10
  },
11
11
  "dependencies": {
12
- "@vidro/map-handler": "^1.2.179",
12
+ "@vidro/map-handler": "^1.1.192",
13
+ "js-cookie": "^3.0.5",
13
14
  "next": "15.1.6",
14
15
  "react": "^19.0.0",
15
16
  "react-dom": "^19.0.0"
@@ -9,6 +9,7 @@ import Image from "next/image";
9
9
  import MapList from "@/components/MapList";
10
10
  import MapLayers from "@/components/MapLayers";
11
11
  import MapFilters from "@/components/MapFilters";
12
+ import { PrintsProvider } from "@/contexts/print";
12
13
 
13
14
  export default function Home() {
14
15
  return (
@@ -16,23 +17,25 @@ export default function Home() {
16
17
  <AuthProvider>
17
18
  <MessageProvider>
18
19
  <MapsProvider>
19
- <main className="text-center">
20
- <h1 className="text-3xl">Map component REACT integration</h1>
21
- <div className="my-5">
22
- <AuthComponent />
23
- </div>
24
- <div className="my-5">
25
- <MapList />
26
- <MapLayers />
27
- <MapFilters />
28
- </div>
20
+ <PrintsProvider>
21
+ <main className="text-center">
22
+ <h1 className="text-3xl">Map component REACT integration</h1>
23
+ <div className="my-5">
24
+ <AuthComponent />
25
+ </div>
26
+ <div className="my-5">
27
+ <MapList />
28
+ <MapLayers />
29
+ <MapFilters />
30
+ </div>
29
31
 
30
- <div className="my-5 bg-gray-100 border border-gray-400 p-4">
31
- <MapButtons />
32
- <MapInfo />
33
- <MapIframe />
34
- </div>
35
- </main>
32
+ <div className="my-5 bg-gray-100 border border-gray-400 p-4">
33
+ <MapButtons />
34
+ <MapInfo />
35
+ <MapIframe />
36
+ </div>
37
+ </main>
38
+ </PrintsProvider>
36
39
  </MapsProvider>
37
40
  </MessageProvider>
38
41
  </AuthProvider>
@@ -0,0 +1,23 @@
1
+ import Cookies from "js-cookie";
2
+ export const NAMES = {
3
+ TOKEN: "componentReactExample-token",
4
+ MAPID: "componentReactExample-mapId",
5
+ MAPLIST: "componentReactExample-mapList",
6
+ };
7
+ // Default cookie setter, with the default expiry value:
8
+ const setCookie = (name, value, expires = 7) =>
9
+ Cookies.set(name, value, { expires: expires });
10
+ // Token: User authentication token
11
+ export const getToken = () => Cookies.get(NAMES.TOKEN) ?? null;
12
+ export const setToken = (token) => setCookie(NAMES.TOKEN, token);
13
+ export const removeToken = () => Cookies.remove(NAMES.TOKEN);
14
+
15
+ // Map id:
16
+ export const getMapId = () => Cookies.get(NAMES.MAPID) ?? null;
17
+ export const setMapId = (token) => setCookie(NAMES.MAPID, token);
18
+ export const removeMapId = () => Cookies.remove(NAMES.MAPID);
19
+
20
+ // Map list:
21
+ export const getMapList = () => Cookies.get(NAMES.MAPLIST) ?? null;
22
+ export const setMapList = (token) => setCookie(NAMES.MAPLIST, token);
23
+ export const removeMapList = () => Cookies.remove(NAMES.MAPLIST);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vidro/map-handler",
3
- "version": "1.2.191",
3
+ "version": "1.2.193",
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
@@ -840,6 +840,38 @@ class Communicator extends EventEmitter {
840
840
  sessionToken: this.sessionToken,
841
841
  });
842
842
  };
843
+
844
+ //***** PRINT ******/
845
+ printPaperSize = (paperSize) => {
846
+ console.warn("printPaperSize is deprecated. Use printSetPaperSize");
847
+ this.com.sendMessageToMap({
848
+ type: "printSetPaperSize",
849
+ paperSize: paperSize,
850
+ sessionToken: this.sessionToken,
851
+ });
852
+ };
853
+ printPaperLayout = (paperLayout) => {
854
+ this.com.sendMessageToMap({
855
+ type: "printSetOrientation",
856
+ paperLayout: paperLayout,
857
+ sessionToken: this.sessionToken,
858
+ });
859
+ };
860
+
861
+ startPrint = (options) => {
862
+ this.com.sendMessageToMap({
863
+ type: "printStart",
864
+ options,
865
+ sessionToken: this.sessionToken,
866
+ });
867
+ };
868
+ cancelPrint = (options) => {
869
+ this.com.sendMessageToMap({
870
+ type: "printCancel",
871
+ options,
872
+ sessionToken: this.sessionToken,
873
+ });
874
+ };
843
875
  }
844
876
 
845
877
  export { Communicator };