@vidro/map-handler 1.2.180 → 1.2.192

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.179 - 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
 
@@ -705,12 +705,15 @@ Geolocalizes user. Will dispatch `geolocation` event .
705
705
  > Params
706
706
 
707
707
  - toggle `<Boolean>` - starts or cancels geolocation
708
+ - options `<json>` - optional
709
+ - track `<Boolean>` - will track user position or geolocalize only once
708
710
 
709
711
  > E.G.
710
712
 
711
713
  ```
712
714
  //start
713
715
  Geolocalize(true)
716
+ Geolocalize(true, {track:true})
714
717
 
715
718
  //cancel
716
719
  Geolocalize(false)
@@ -971,12 +974,12 @@ removeGeoJSONLayer('somename');
971
974
 
972
975
  ##### clearGeoJSON
973
976
 
974
- Clears geoJSON layers
977
+ Clears geoJSON layer
975
978
 
976
979
  > E.G.
977
980
 
978
981
  ```
979
- clearGeoJSON();
982
+ clearGeoJSON(layername);
980
983
  ```
981
984
 
982
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:"toggleGiswaterTiled",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(){return t.com.sendMessageToMap({type:"clearGeoJSON",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){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,14 +1,13 @@
1
1
  // Config:
2
2
  const urlParams = new URLSearchParams(window.location.search);
3
- const user = urlParams.get('user');
4
- const pwd = urlParams.get('pwd');
5
- const apiQuery = urlParams.get('api');
3
+ const user = urlParams.get("user");
4
+ const pwd = urlParams.get("pwd");
5
+ const apiQuery = urlParams.get("api");
6
6
 
7
- if(apiQuery) document.querySelector("#apiurl").value = apiQuery;
7
+ if (apiQuery) document.querySelector("#apiurl").value = apiQuery;
8
8
  var apiUrl = document.querySelector("#apiurl").value;
9
- if(user) document.querySelector("#user").value = user;
10
- if(pwd) document.querySelector("#pwd").value = pwd;
11
-
9
+ if (user) document.querySelector("#user").value = user;
10
+ if (pwd) document.querySelector("#pwd").value = pwd;
12
11
 
13
12
  // UI:
14
13
  var usertoken = document.querySelector("#usertoken");
@@ -19,7 +18,9 @@ var btLoadMap = document.querySelector("#btLoadMap");
19
18
  var btLoadProjectLayers = document.querySelector("#btLoadProjectLayers");
20
19
  var projectlayers = document.getElementById("projectlayers");
21
20
  var userData = document.querySelector("#userData");
22
- var btAddGeoJSONFromGiswater = document.querySelector("#btAddGeoJSONFromGiswater");
21
+ var btAddGeoJSONFromGiswater = document.querySelector(
22
+ "#btAddGeoJSONFromGiswater"
23
+ );
23
24
 
24
25
  var btLogin = document.querySelector("#btLogin");
25
26
 
@@ -65,7 +66,7 @@ function reqListener() {
65
66
  //simulate cache token
66
67
  storeToken(res.message);
67
68
  //fill user projects selector
68
- fillUserProjects(res.message.projects);
69
+ fillUserProjects(res.message.maps);
69
70
  } else {
70
71
  console.error(this.status);
71
72
  var res = JSON.parse(this.responseText);
@@ -108,8 +109,8 @@ function checkToken() {
108
109
  oReq.addEventListener("load", tokenListener);
109
110
  oReq.open("GET", `${apiUrl}token/`, true);
110
111
  oReq.setRequestHeader("Content-type", "application/json");
111
- oReq.setRequestHeader('Authorization',`Bearer ${usertoken.value}`);
112
-
112
+ oReq.setRequestHeader("Authorization", `Bearer ${usertoken.value}`);
113
+
113
114
  oReq.send();
114
115
  console.log("Check token", `${apiUrl}token/`);
115
116
  } else {
@@ -117,10 +118,45 @@ function checkToken() {
117
118
  loginContainer.classList.remove("hide");
118
119
  }
119
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
+ }
120
153
  function tokenListener() {
121
154
  if (this.status === 200) {
122
155
  var res = JSON.parse(this.responseText);
123
156
  console.log("Valid user token", res.message);
157
+ console.log("item", localStorage.getItem("selectedProjectId"));
158
+ getUserProjects();
159
+
124
160
  //get from localstorage last iframe selected
125
161
  var cachedMap = localStorage.getItem("iframe");
126
162
  if (cachedMap) {
@@ -128,11 +164,8 @@ function tokenListener() {
128
164
  mapContainer.classList.remove("hide");
129
165
  iframe.src = cachedMap;
130
166
  sessionToken.innerHTML = localStorage.getItem("sessionToken");
131
- var selectedProjectId = localStorage.getItem("selectedProjectId");
132
- if (selectedProjectId) {
133
- selectProject(selectedProjectId);
134
- }
135
167
  }
168
+ //get user projects
136
169
  } else {
137
170
  //if token is invalid, show login form
138
171
  console.error(this.status);
@@ -148,6 +181,7 @@ function tokenListener() {
148
181
  //************** User projects SELECT
149
182
 
150
183
  function fillUserProjects(options) {
184
+ console.log("fillUserProjects", options);
151
185
  //empty previous options
152
186
  var length = projects_select.options.length;
153
187
  for (i = length - 1; i >= 0; i--) {
@@ -160,6 +194,11 @@ function fillUserProjects(options) {
160
194
  el.value = opt;
161
195
  projects_select.appendChild(el);
162
196
  }
197
+
198
+ var selectedProjectId = localStorage.getItem("selectedProjectId");
199
+ if (selectedProjectId) {
200
+ selectProject(selectedProjectId);
201
+ }
163
202
  }
164
203
 
165
204
  function selectProject(id) {
@@ -193,7 +232,7 @@ btLoadMap.addEventListener("click", function (evt) {
193
232
  uri += `&active_layer=${active_layer}`;
194
233
  }
195
234
  var overrideHost = document.querySelector("#overrideHost").value;
196
- if(overrideHost){
235
+ if (overrideHost) {
197
236
  uri += `&overrideHost=${overrideHost}`;
198
237
  data.overrideHost = overrideHost;
199
238
  }
@@ -218,11 +257,11 @@ btLoadMap.addEventListener("click", function (evt) {
218
257
  data.use_giswater_tiled = use_giswater_tiled.checked;
219
258
  }
220
259
 
221
- console.log(uri)
260
+ console.log(uri);
222
261
  var oReq = new XMLHttpRequest();
223
262
  oReq.addEventListener("load", mapListener);
224
263
  oReq.open("GET", uri, true);
225
- oReq.setRequestHeader('Authorization',`Bearer ${usertoken.value}`);
264
+ oReq.setRequestHeader("Authorization", `Bearer ${usertoken.value}`);
226
265
  oReq.setRequestHeader("Content-type", "application/json");
227
266
  oReq.send(JSON.stringify(data));
228
267
  console.log("Attempt to load map", `${apiUrl}map/${selectedProjectId}`, data);
@@ -261,13 +300,12 @@ btLoadProjectLayers.addEventListener("click", function (evt) {
261
300
  var selectedProjectId =
262
301
  projects_select.options[projects_select.selectedIndex].value;
263
302
 
264
- var uri = `${apiUrl}layers/${selectedProjectId}`;
265
-
303
+ var uri = `${apiUrl}/layers/${selectedProjectId}`;
266
304
 
267
305
  var oReq = new XMLHttpRequest();
268
306
  oReq.addEventListener("load", layersListener);
269
307
  oReq.open("GET", uri, true);
270
- oReq.setRequestHeader('Authorization',`Bearer ${usertoken.value}`);
308
+ oReq.setRequestHeader("Authorization", `Bearer ${usertoken.value}`);
271
309
  oReq.setRequestHeader("Content-type", "application/json");
272
310
  oReq.send();
273
311
  console.log("Attempt to load project layers", uri);
@@ -278,16 +316,16 @@ function layersListener() {
278
316
  console.log("layersListener response", this.responseText);
279
317
  var res = JSON.parse(this.responseText);
280
318
  var length = projectlayers.options.length;
281
- console.log(res)
282
- for (i = length-1; i >= 0; i--) {
319
+ console.log(res);
320
+ for (i = length - 1; i >= 0; i--) {
283
321
  projectlayers.options[i] = null;
284
322
  }
285
- for(var i = 0; i < res.message.length; i++) {
286
- var opt = res.message[i].qgis_name;
287
- var el = document.createElement("option");
288
- el.textContent = opt;
289
- el.value = opt;
290
- projectlayers.appendChild(el);
323
+ for (var i = 0; i < res.message.length; i++) {
324
+ var opt = res.message[i].qgis_name;
325
+ var el = document.createElement("option");
326
+ el.textContent = opt;
327
+ el.value = opt;
328
+ projectlayers.appendChild(el);
291
329
  }
292
330
  } else {
293
331
  console.error(this.status);
@@ -300,47 +338,49 @@ function layersListener() {
300
338
  }
301
339
  }
302
340
 
303
- function fillLayersSelect(options){
341
+ function fillLayersSelect(options) {
304
342
  //empty previous options
305
-
306
343
  }
307
344
 
308
-
309
- if(btAddGeoJSONFromGiswater){
310
- btAddGeoJSONFromGiswater.addEventListener("click", function(){
311
- let lay = document.getElementById('currentActiveLayerForGeoJSON').innerHTML.trim();
312
- console.log(`Requesting Giswater GeoJSON for layer ${lay}`)
313
- if(lay && lay!==''){
345
+ if (btAddGeoJSONFromGiswater) {
346
+ btAddGeoJSONFromGiswater.addEventListener("click", function () {
347
+ let lay = document
348
+ .getElementById("currentActiveLayerForGeoJSON")
349
+ .innerHTML.trim();
350
+ console.log(`Requesting Giswater GeoJSON for layer ${lay}`);
351
+ if (lay && lay !== "") {
314
352
  apiUrl = document.querySelector("#apiurl").value;
315
- //Build XMLHttpRequest
353
+ //Build XMLHttpRequest
316
354
  var selectedProjectId =
317
- projects_select.options[projects_select.selectedIndex].value;
355
+ projects_select.options[projects_select.selectedIndex].value;
318
356
  var uri = `${apiUrl}giswater/geojson/${selectedProjectId}/${lay}`;
319
357
  var oReq = new XMLHttpRequest();
320
358
  oReq.addEventListener("load", GeoJSONListener);
321
359
  oReq.open("GET", uri, true);
322
- oReq.setRequestHeader('Authorization',`Bearer ${usertoken.value}`);
360
+ oReq.setRequestHeader("Authorization", `Bearer ${usertoken.value}`);
323
361
  oReq.setRequestHeader("Content-type", "application/json");
324
362
  oReq.send();
325
363
  }
326
364
  });
327
365
  }
328
366
 
329
- function GeoJSONListener(){
367
+ function GeoJSONListener() {
330
368
  if (this.status === 200) {
331
- try{
369
+ try {
332
370
  var res = JSON.parse(this.responseText);
333
371
  console.log("GeoJSONListener response", res.message);
334
- if(document.getElementById('geojsondata')){
335
- document.getElementById('geojsondata').value = JSON.stringify(res.message);
372
+ if (document.getElementById("geojsondata")) {
373
+ document.getElementById("geojsondata").value = JSON.stringify(
374
+ res.message
375
+ );
336
376
  var btAddGeoJSON = document.querySelector("#btAddGeoJSON");
337
- if(btAddGeoJSON){
377
+ if (btAddGeoJSON) {
338
378
  btAddGeoJSON.click();
339
379
  }
340
380
  }
341
- }catch(e){
342
- console.error("Invalid API response")
343
- }
381
+ } catch (e) {
382
+ console.error("Invalid API response");
383
+ }
344
384
  } else {
345
385
  console.error(this.status);
346
386
  }
@@ -1 +1 @@
1
- b215806e0283b050bdcfb4ae795b11f4
1
+ e47b595bdd549b83c9c061918313886e
@@ -1 +1 @@
1
- 132,117,172,175,177,179
1
+ undefined
@@ -0,0 +1,14 @@
1
+
2
+ services:
3
+ fulldemo:
4
+ build:
5
+ context: .
6
+ dockerfile: Dockerfile
7
+ container_name: fulldemo
8
+ volumes:
9
+ - ${PWD}/../:/var/www/html
10
+ ports:
11
+ - '3200:80'
12
+
13
+ networks:
14
+ vidromaps:
@@ -0,0 +1,27 @@
1
+ FROM ubuntu:20.04
2
+
3
+ # Set timezone to UTC to avoid tzdata interactive mode
4
+ ENV TZ=Etc/UTC
5
+ RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
6
+
7
+ # Update packages and install Apache + PHP 7.4
8
+ RUN apt-get update && apt-get install -y \
9
+ apache2 \
10
+ php7.4 \
11
+ libapache2-mod-php7.4 \
12
+ php7.4-cli \
13
+ php7.4-mbstring \
14
+ php7.4-xml \
15
+ php7.4-curl \
16
+ php7.4-mysql \
17
+ php7.4-zip \
18
+ && apt-get clean
19
+
20
+ # Set working directory
21
+ WORKDIR /var/www/html
22
+
23
+ # Expose port 80
24
+ EXPOSE 80
25
+
26
+ # Start Apache in foreground
27
+ CMD ["apache2ctl", "-D", "FOREGROUND"]
@@ -2,7 +2,7 @@
2
2
 
3
3
  <head>
4
4
  <title>🛠️ MAP TESTER</title>
5
- <link rel="stylesheet" href="../tester.css">
5
+ <link rel="stylesheet" href="tester.css">
6
6
  </link>
7
7
  <link rel="icon" type="image/png" href="https://www.vidrosoftware.com/favicon/favicon-32x32.png" sizes="32x32" />
8
8
  <link rel="icon" type="image/png" href="https://www.vidrosoftware.com/favicon/favicon-16x16.png" sizes="16x16" />
@@ -160,15 +160,17 @@
160
160
  <input type="hidden" name="geojsondata" id="geojsondata" />
161
161
  <br><br>
162
162
  <b>Options</b><br><br>
163
- Stroke color: <input type="text" name="strokecolor" id="strokecolor" size="10" value="#994d4d" placeholder="#000000"> <small>Override stroke color, desfault #ff0000</small><br>
164
- Fill color: <input type="text" name="fillcolor" id="fillcolor" size="10" value="#4d995c" placeholder="#000000"> <small>Override fill color, desfault #ff0000</small><br><br>
165
- <button id="btAddGeoJSON">Add GeoJSON Layer</button> <button id="btClearGeoJSON">Clear GeoJSON Layers</button><br><br>
163
+ Geojson layer name: <input type="text" name="geojsonaLayername" id="geojsonaLayername" size="25" value="geojsontest"><br>
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
+ 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
+ <button id="btSetColors">Set colors</button>
167
+ <button id="btAddGeoJSON">Add GeoJSON Layer</button> <button id="btClearGeoJSON">Clear GeoJSON Layer</button><br><br>
166
168
  <input type="text" name="hitTolerance" id="hitTolerance" size="5" value="" placeholder="5"> <small>Override hit tolerance</small><br><br>
167
169
 
168
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>
169
171
 
170
172
 
171
- <script src="https://unpkg.com/@vidro/map-handler@1.0.12/dist/map-handler.js"></script>
173
+ <script src="https://unpkg.com/@vidro/map-handler@1.2.191/dist/map-handler.js"></script>
172
174
  <script src="./tester.js"></script>
173
175
  <script src="./apidemo.js"></script>
174
176
  </body>
@@ -0,0 +1,74 @@
1
+ * {
2
+ box-sizing: border-box;
3
+ }
4
+
5
+ body{
6
+ background-color: ghostwhite;
7
+ color: lightslategrey;
8
+ font-family: Hack, monospace;
9
+ padding: 20px;
10
+ }
11
+
12
+ #sessionToken{
13
+ display: none;
14
+ }
15
+
16
+ #iframes-container{
17
+ display: flex;
18
+ justify-content: space-between;
19
+ gap: 25px;
20
+ margin: 25px 0;
21
+ }
22
+
23
+ iframe{
24
+ background-color: white;
25
+ border-radius: 5px;
26
+ overflow: hidden;
27
+ border: none;
28
+ box-shadow: 0 5px 10px 0 rgba(0, 0, 0, .2);
29
+ }
30
+
31
+ iframe[name=map-frame]{
32
+ padding: 10px;
33
+ }
34
+
35
+ pre{
36
+ overflow: scroll;
37
+
38
+ }
39
+ .error{
40
+ color: red;
41
+ font-weight: bold;
42
+ }
43
+ .hide{
44
+ display: none;
45
+ }
46
+ .form{
47
+ margin: 20px;
48
+
49
+ }
50
+ .form div{
51
+ padding: 10px;
52
+
53
+ }
54
+
55
+ #Error_container{
56
+ color: red;
57
+ font-weight: bold;
58
+ }
59
+ #Result_container{
60
+ color: blue;
61
+ font-size: 10px;
62
+ }
63
+
64
+ small{
65
+ color: #ccc;
66
+
67
+
68
+ }
69
+
70
+
71
+
72
+
73
+
74
+
@@ -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);
@@ -483,6 +486,7 @@ if (btAddGeoJSON) {
483
486
  }
484
487
  var fillcolor = document.querySelector("#fillcolor");
485
488
  var strokecolor = document.querySelector("#strokecolor");
489
+ var geojsonaLayername = document.querySelector("#geojsonaLayername").value;
486
490
 
487
491
  //Check JSON
488
492
  try {
@@ -496,7 +500,12 @@ if (btAddGeoJSON) {
496
500
  if (strokecolor) {
497
501
  options.strokecolor = strokecolor.value;
498
502
  }
499
- communicator.addGeoJSON(JSON.parse(geoToSend), options, geoJSONName);
503
+
504
+ communicator.addGeoJSON(
505
+ JSON.parse(geoToSend),
506
+ options,
507
+ geojsonaLayername
508
+ );
500
509
  } catch (e) {
501
510
  console.error("invalid geoJSON", e);
502
511
  }
@@ -505,7 +514,8 @@ if (btAddGeoJSON) {
505
514
 
506
515
  if (btClearGeoJSON) {
507
516
  btClearGeoJSON.addEventListener("click", function () {
508
- communicator.clearGeoJSON();
517
+ var geojsonaLayername = document.querySelector("#geojsonaLayername").value;
518
+ communicator.clearGeoJSON(geojsonaLayername);
509
519
  });
510
520
  }
511
521
 
@@ -596,8 +606,8 @@ if (btgetGiswaterFilters) {
596
606
  if (btSetColors) {
597
607
  btSetColors.addEventListener("click", function () {
598
608
  var properties = {
599
- geom_stroke_color: "rgb(19, 39, 99,0.5)",
600
- geom_fill_color: "rgb(19, 39, 99,0.5)",
609
+ geom_stroke_color: strokecolor.value,
610
+ geom_fill_color: fillcolor.value,
601
611
  geom_stroke_width: 1,
602
612
  geom_shape: "circle",
603
613
  geom_radius: 4,
@@ -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
  };
@@ -0,0 +1,24 @@
1
+ "use client";
2
+ import { createContext, useContext, useState, useEffect } from "react";
3
+
4
+ const PrintsContext = createContext({});
5
+
6
+ export const PrintsProvider = ({ children }) => {
7
+ const [paperSize, setPaperSize] = useState(null);
8
+ const [paperLayout, setPaperLayout] = useState(null);
9
+
10
+ return (
11
+ <PrintsContext.Provider
12
+ value={{
13
+ paperLayout,
14
+ setPaperLayout,
15
+ paperSize,
16
+ setPaperSize,
17
+ }}
18
+ >
19
+ {children}
20
+ </PrintsContext.Provider>
21
+ );
22
+ };
23
+
24
+ export const usePrint = () => useContext(PrintsContext);
@@ -10,6 +10,7 @@
10
10
  },
11
11
  "dependencies": {
12
12
  "@vidro/map-handler": "^1.2.179",
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.180",
3
+ "version": "1.2.192",
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
@@ -517,7 +517,7 @@ class Communicator extends EventEmitter {
517
517
  /* deprecated since v1.1.19 */
518
518
  toggleGiswaterTiled = (toggle, tiled) => {
519
519
  this.com.sendMessageToMap({
520
- type: "toggleGiswaterTiled",
520
+ type: "toggleTiled",
521
521
  toggle: toggle,
522
522
  tiled: tiled,
523
523
  sessionToken: this.sessionToken,
@@ -579,9 +579,13 @@ class Communicator extends EventEmitter {
579
579
  }
580
580
  };
581
581
 
582
- clearGeoJSON = () => {
582
+ clearGeoJSON = (name) => {
583
+ if (!name) {
584
+ this.emit("error", { type: "error", error: "No geoJSON layer name" });
585
+ }
583
586
  return this.com.sendMessageToMap({
584
587
  type: "clearGeoJSON",
588
+ name: name,
585
589
  sessionToken: this.sessionToken,
586
590
  });
587
591
  };
@@ -836,6 +840,37 @@ class Communicator extends EventEmitter {
836
840
  sessionToken: this.sessionToken,
837
841
  });
838
842
  };
843
+
844
+ //***** PRINT ******/
845
+ printPaperSize = (paperSize) => {
846
+ this.com.sendMessageToMap({
847
+ type: "printSetPaperSize",
848
+ paperSize: paperSize,
849
+ sessionToken: this.sessionToken,
850
+ });
851
+ };
852
+ printPaperLayout = (paperLayout) => {
853
+ this.com.sendMessageToMap({
854
+ type: "printSetOrientation",
855
+ paperLayout: paperLayout,
856
+ sessionToken: this.sessionToken,
857
+ });
858
+ };
859
+
860
+ startPrint = (options) => {
861
+ this.com.sendMessageToMap({
862
+ type: "printStart",
863
+ options,
864
+ sessionToken: this.sessionToken,
865
+ });
866
+ };
867
+ cancelPrint = (options) => {
868
+ this.com.sendMessageToMap({
869
+ type: "printCancel",
870
+ options,
871
+ sessionToken: this.sessionToken,
872
+ });
873
+ };
839
874
  }
840
875
 
841
876
  export { Communicator };