@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 +3 -3
- package/dist/map-handler.js +1 -1
- package/examples/full/apidemo.js +42 -5
- package/examples/full/cachedToken.dat +1 -1
- package/examples/full/index.php +2 -2
- package/examples/full/tester.js +5 -2
- package/examples/react-next/atoms/PrintLayoutSelector.js +50 -0
- package/examples/react-next/atoms/PrintPaperSizeSelector.js +48 -0
- package/examples/react-next/atoms/ZoomToScaleButton.js +57 -0
- package/examples/react-next/components/MapButtons.js +16 -53
- package/examples/react-next/components/MapList.js +10 -2
- package/examples/react-next/contexts/auth.js +49 -3
- package/examples/react-next/contexts/maps.js +28 -1
- package/examples/react-next/contexts/messages.js +20 -0
- package/examples/react-next/contexts/print.js +33 -0
- package/examples/react-next/package.json +2 -1
- package/examples/react-next/pages/index.js +19 -16
- package/examples/react-next/shared/cookies.js +23 -0
- package/package.json +1 -1
- package/src/index.js +32 -0
package/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Map Handler
|
2
2
|
|
3
|
-
#### Version 1.2.
|
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
|
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
|
package/dist/map-handler.js
CHANGED
@@ -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})()));
|
package/examples/full/apidemo.js
CHANGED
@@ -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
|
-
|
1
|
+
e47b595bdd549b83c9c061918313886e
|
package/examples/full/index.php
CHANGED
@@ -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
|
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.
|
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>
|
package/examples/full/tester.js
CHANGED
@@ -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(
|
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,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
|
-
<
|
20
|
-
<
|
21
|
-
|
22
|
-
<
|
23
|
-
|
24
|
-
|
25
|
-
<
|
26
|
-
|
27
|
-
|
28
|
-
|
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
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
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
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 };
|