qwc2 2025.6.3 → 2025.6.4
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/actions/layers.js +1 -1
- package/package.json +1 -1
- package/plugins/API.js +7 -5
- package/plugins/TourGuide.js +1 -1
- package/reducers/layers.js +1 -1
- package/utils/LayerUtils.js +1 -1
- package/utils/SearchProviders.js +1 -1
package/actions/layers.js
CHANGED
|
@@ -4,5 +4,5 @@
|
|
|
4
4
|
*
|
|
5
5
|
* This source code is licensed under the BSD-style license found in the
|
|
6
6
|
* LICENSE file in the root directory of this source tree.
|
|
7
|
-
*/import ReducerIndex from"../reducers/index";import layersReducer from"../reducers/layers";ReducerIndex.register("layers",layersReducer);import ConfigUtils from"../utils/ConfigUtils";export var SET_LAYER_LOADING="SET_LAYER_LOADING";export var ADD_LAYER="ADD_LAYER";export var ADD_LAYER_SEPARATOR="ADD_LAYER_SEPARATOR";export var REMOVE_LAYER="REMOVE_LAYER";export var REORDER_LAYER="REORDER_LAYER";export var ADD_LAYER_FEATURES="ADD_LAYER_FEATURES";export var ADD_THEME_SUBLAYER="ADD_THEME_SUBLAYER";export var REMOVE_LAYER_FEATURES="REMOVE_LAYER_FEATURES";export var CLEAR_LAYER="CLEAR_LAYER";export var CHANGE_LAYER_PROPERTY="CHANGE_LAYER_PROPERTY";export var SET_LAYER_DIMENSIONS="SET_LAYER_DIMENSIONS";export var REFRESH_LAYER="REFRESH_LAYER";export var REMOVE_ALL_LAYERS="REMOVE_ALL_LAYERS";export var REPLACE_PLACEHOLDER_LAYER="REPLACE_PLACEHOLDER_LAYER";export var SET_SWIPE="SET_SWIPE";export var SET_FILTER="SET_FILTER";export var SET_THEME_LAYERS_VISIBILITY_PRESET="SET_THEME_LAYERS_VISIBILITY_PRESET";export var LayerRole={BACKGROUND:1,THEME:2,USERLAYER:3,SELECTION:4,MARKER:5};export function addLayer(layer){var pos=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;var
|
|
7
|
+
*/import ReducerIndex from"../reducers/index";import layersReducer from"../reducers/layers";ReducerIndex.register("layers",layersReducer);import ConfigUtils from"../utils/ConfigUtils";export var SET_LAYER_LOADING="SET_LAYER_LOADING";export var ADD_LAYER="ADD_LAYER";export var ADD_LAYER_SEPARATOR="ADD_LAYER_SEPARATOR";export var REMOVE_LAYER="REMOVE_LAYER";export var REORDER_LAYER="REORDER_LAYER";export var ADD_LAYER_FEATURES="ADD_LAYER_FEATURES";export var ADD_THEME_SUBLAYER="ADD_THEME_SUBLAYER";export var REMOVE_LAYER_FEATURES="REMOVE_LAYER_FEATURES";export var CLEAR_LAYER="CLEAR_LAYER";export var CHANGE_LAYER_PROPERTY="CHANGE_LAYER_PROPERTY";export var SET_LAYER_DIMENSIONS="SET_LAYER_DIMENSIONS";export var REFRESH_LAYER="REFRESH_LAYER";export var REMOVE_ALL_LAYERS="REMOVE_ALL_LAYERS";export var REPLACE_PLACEHOLDER_LAYER="REPLACE_PLACEHOLDER_LAYER";export var SET_SWIPE="SET_SWIPE";export var SET_FILTER="SET_FILTER";export var SET_THEME_LAYERS_VISIBILITY_PRESET="SET_THEME_LAYERS_VISIBILITY_PRESET";export var LayerRole={BACKGROUND:1,THEME:2,USERLAYER:3,SELECTION:4,MARKER:5};export function addLayer(layer){var pos=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;var options=arguments.length>2&&arguments[2]!==undefined?arguments[2]:null;return{type:ADD_LAYER,layer:layer,pos:pos,options:options}}export function addLayerSeparator(title,afterLayerId,afterSublayerPath){return{type:ADD_LAYER_SEPARATOR,title:title,afterLayerId:afterLayerId,afterSublayerPath:afterSublayerPath}}export function removeLayer(layerId){var sublayerpath=arguments.length>1&&arguments[1]!==undefined?arguments[1]:[];return{type:REMOVE_LAYER,layerId:layerId,sublayerpath:sublayerpath}}export function reorderLayer(layer,sublayerpath,direction){return function(dispatch,getState){dispatch({type:REORDER_LAYER,layer:layer,sublayerpath:sublayerpath,direction:direction,preventSplittingGroups:ConfigUtils.getConfigProp("preventSplittingGroupsWhenReordering",getState().theme.current)})}}export function addLayerFeatures(layer,features){var clear=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;return{type:ADD_LAYER_FEATURES,layer:layer,features:features,clear:clear}}export function removeLayerFeatures(layerId,featureIds){var keepEmptyLayer=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;return{type:REMOVE_LAYER_FEATURES,layerId:layerId,featureIds:featureIds,keepEmptyLayer:keepEmptyLayer}}export function clearLayer(layerId){return{type:CLEAR_LAYER,layerId:layerId}}export function addThemeSublayer(layer){return{type:ADD_THEME_SUBLAYER,layer:layer}}// recurseDirection: null (don't recurse), 'parents', 'children', 'both'
|
|
8
8
|
export function changeLayerProperty(layerId,property,newvalue){var sublayerpath=arguments.length>3&&arguments[3]!==undefined?arguments[3]:[];var recurseDirection=arguments.length>4&&arguments[4]!==undefined?arguments[4]:null;return{type:CHANGE_LAYER_PROPERTY,layerId:layerId,property:property,newvalue:newvalue,sublayerpath:sublayerpath,recurseDirection:recurseDirection}}export function setLayerDimensions(layerId,dimensions){return{type:SET_LAYER_DIMENSIONS,layerId:layerId,dimensions:dimensions}}export function setLayerLoading(layerId,loading){return{type:SET_LAYER_LOADING,layerId:layerId,loading:loading}}export function addMarker(id,point){var label=arguments.length>2&&arguments[2]!==undefined?arguments[2]:"";var crs=arguments.length>3&&arguments[3]!==undefined?arguments[3]:"EPSG:4326";var zIndex=arguments.length>4&&arguments[4]!==undefined?arguments[4]:null;var layer={id:"markers",role:LayerRole.MARKER,zIndex:zIndex};var feature={id:id,geometry:{type:"Point",coordinates:point},properties:{label:label},crs:crs,styleName:"marker"};return addLayerFeatures(layer,[feature])}export function removeMarker(id){return removeLayerFeatures("markers",[id])}export function refreshLayer(filter){return{type:REFRESH_LAYER,filter:filter}}export function removeAllLayers(){return{type:REMOVE_ALL_LAYERS}}export function replacePlaceholderLayer(id,layer){return{type:REPLACE_PLACEHOLDER_LAYER,id:id,layer:layer}}export function setSwipe(swipe){return{type:SET_SWIPE,swipe:swipe}}export function setFilter(filter,filterGeom,timeRange){return{type:SET_FILTER,filter:filter,filterGeom:filterGeom,timeRange:timeRange}}export function setThemeLayersVisibilityPreset(preset){return{type:SET_THEME_LAYERS_VISIBILITY_PRESET,preset:preset}};
|
package/package.json
CHANGED
package/plugins/API.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
function
|
|
1
|
+
function ownKeys(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable})),t.push.apply(t,o)}return t}function _objectSpread(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?ownKeys(Object(t),!0).forEach(function(r){_defineProperty(e,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})}return e}function _slicedToArray(r,e){return _arrayWithHoles(r)||_iterableToArrayLimit(r,e)||_unsupportedIterableToArray(r,e)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(r,a){if(r){if("string"==typeof r)return _arrayLikeToArray(r,a);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0}}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e<a;e++)n[e]=r[e];return n}function _iterableToArrayLimit(r,l){var t=null==r?null:"undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(null!=t){var e,n,i,u,a=[],f=!0,o=!1;try{if(i=(t=t.call(r)).next,0===l){if(Object(t)!==t)return;f=!1}else for(;!(f=(e=i.call(t)).done)&&(a.push(e.value),a.length!==l);f=!0);}catch(r){o=!0,n=r}finally{try{if(!f&&null!=t["return"]&&(u=t["return"](),Object(u)!==u))return}finally{if(o)throw n}}return a}}function _arrayWithHoles(r){if(Array.isArray(r))return r}function _typeof(o){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},_typeof(o)}function _classCallCheck(a,n){if(!(a instanceof n))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,r){for(var t=0;t<r.length;t++){var o=r[t];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,_toPropertyKey(o.key),o)}}function _createClass(e,r,t){return r&&_defineProperties(e.prototype,r),t&&_defineProperties(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function _callSuper(t,o,e){return o=_getPrototypeOf(o),_possibleConstructorReturn(t,_isNativeReflectConstruct()?Reflect.construct(o,e||[],_getPrototypeOf(t).constructor):o.apply(t,e))}function _possibleConstructorReturn(t,e){if(e&&("object"==_typeof(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(t)}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _isNativeReflectConstruct(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(_isNativeReflectConstruct=function _isNativeReflectConstruct(){return!!t})()}function _getPrototypeOf(t){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},_getPrototypeOf(t)}function _inherits(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&_setPrototypeOf(t,e)}function _setPrototypeOf(t,e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},_setPrototypeOf(t,e)}function _defineProperty(e,r,t){return(r=_toPropertyKey(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function _toPropertyKey(t){var i=_toPrimitive(t,"string");return"symbol"==_typeof(i)?i:i+""}function _toPrimitive(t,r){if("object"!=_typeof(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||"default");if("object"!=_typeof(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}/**
|
|
2
2
|
* Copyright 2020-2024 Sourcepole AG
|
|
3
3
|
* All rights reserved.
|
|
4
4
|
*
|
|
@@ -89,13 +89,15 @@ function _typeof(o){"@babel/helpers - typeof";return _typeof="function"==typeof
|
|
|
89
89
|
* Remove identify exporter
|
|
90
90
|
*
|
|
91
91
|
* * `name`: The identifier
|
|
92
|
-
*/_defineProperty(_this,"removeIdentifyExporter",function(name){delete window.qwc2.__identifyExportes[name]})
|
|
92
|
+
*/_defineProperty(_this,"removeIdentifyExporter",function(name){delete window.qwc2.__identifyExportes[name]});/**
|
|
93
93
|
* Convenience method for adding an external layer.
|
|
94
94
|
*
|
|
95
95
|
* * `resource`: An external resource of the form `wms:<service_url>#<layername>` or `wmts:<capabilities_url>#<layername>`.
|
|
96
|
-
* * `
|
|
97
|
-
*
|
|
98
|
-
|
|
96
|
+
* * `options`: An object which may contain the following fields:
|
|
97
|
+
* * `beforeLayerName`: Insert the new layer before the layer with the specified name. If `null` or the layer does not exist, the layer is inserted on top.
|
|
98
|
+
* * `afterLayerName`: Insert the new layer after the layer with the specified name. If `null` or the layer does not exist, the layer is inserted on top.
|
|
99
|
+
* * `sublayers`: Whether to import the sublayer structure (`true`) or just a flat layer (`false`).
|
|
100
|
+
*/_defineProperty(_this,"addExternalLayer",function(resource){var optionsOrBeforeLayerName=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;var sublayers=arguments.length>2&&arguments[2]!==undefined?arguments[2]:true;var options={};if(_typeof(optionsOrBeforeLayerName)!=="object"){options.beforeLayerName=optionsOrBeforeLayerName;options.sublayers=sublayers}else{options=optionsOrBeforeLayerName}var params=LayerUtils.splitLayerUrlParam(resource);ServiceLayerUtils.findLayers(params.type,params.url,[params],_this.props.mapCrs,function(id,layer){if(layer){if(sublayers===false){layer.sublayers=null}_this.props.addLayer(layer,null,options)}})});/**
|
|
99
101
|
* Deprecated, use `window.qwc2.drawGeometry` instead.
|
|
100
102
|
*/_defineProperty(_this,"drawScratch",function(geomType,message,drawMultiple,callback){var style=arguments.length>4&&arguments[4]!==undefined?arguments[4]:null;/* eslint-disable-next-line */console.warn("window.qwc2.drawScratch is deprecated, use window.qwc2.drawGeometry instead");_this.props.setCurrentTask("ScratchDrawing",null,null,{geomType:geomType,message:message,drawMultiple:drawMultiple,callback:callback,style:style})});/**
|
|
101
103
|
* Draw geometries, and return these as GeoJSON to the calling application.
|
package/plugins/TourGuide.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function _typeof(o){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},_typeof(o)}function _classCallCheck(a,n){if(!(a instanceof n))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,r){for(var t=0;t<r.length;t++){var o=r[t];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,_toPropertyKey(o.key),o)}}function _createClass(e,r,t){return r&&_defineProperties(e.prototype,r),t&&_defineProperties(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function _callSuper(t,o,e){return o=_getPrototypeOf(o),_possibleConstructorReturn(t,_isNativeReflectConstruct()?Reflect.construct(o,e||[],_getPrototypeOf(t).constructor):o.apply(t,e))}function _possibleConstructorReturn(t,e){if(e&&("object"==_typeof(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(t)}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _isNativeReflectConstruct(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(_isNativeReflectConstruct=function _isNativeReflectConstruct(){return!!t})()}function _getPrototypeOf(t){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},_getPrototypeOf(t)}function _inherits(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&_setPrototypeOf(t,e)}function _setPrototypeOf(t,e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},_setPrototypeOf(t,e)}function _defineProperty(e,r,t){return(r=_toPropertyKey(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function _toPropertyKey(t){var i=_toPrimitive(t,"string");return"symbol"==_typeof(i)?i:i+""}function _toPrimitive(t,r){if("object"!=_typeof(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||"default");if("object"!=_typeof(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}import React from"react";import{connect}from"react-redux";import PropTypes from"prop-types";import{setCurrentTask}from"../actions/task";import LocaleUtils from"../utils/LocaleUtils";import MiscUtils from"../utils/MiscUtils";var TourGuide=/*#__PURE__*/function(_React$Component){function TourGuide(){var _this;_classCallCheck(this,TourGuide);for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key]}_this=_callSuper(this,TourGuide,[].concat(args));_defineProperty(_this,"state",{tourSteps:[],driverObj:null,currentStepIndex:0,rawStepData:[]});_defineProperty(_this,"handleClick",function(driverObj,direction){var _this$state=_this.state,currentStepIndex=_this$state.currentStepIndex,rawStepData=_this$state.rawStepData;var currentRawStep=rawStepData[currentStepIndex];var actionNames=direction==="next"?currentRawStep===null||currentRawStep===void 0?void 0:currentRawStep.onNextClick:currentRawStep===null||currentRawStep===void 0?void 0:currentRawStep.onPrevClick;if(Array.isArray(actionNames)){actionNames.forEach(function(actionName){return _this.runCustomAction(actionName)})}else if(actionNames){_this.runCustomAction(actionNames)}_this.setState(function(prevState){return{currentStepIndex:direction==="next"?prevState.currentStepIndex+1:Math.max(prevState.currentStepIndex-1,0)}},function(){direction==="next"?driverObj.moveNext():driverObj.movePrevious()})});_defineProperty(_this,"runCustomAction",function(actionName){var _document$querySelect,_document$querySelect2;if(actionName.startsWith("setTask:")){_this.props.setCurrentTask(actionName.replace("setTask:","").trim());return}if(actionName.startsWith("openSubMenu:")){var submenuName=actionName.replace("openSubMenu:","").trim();var submenu=Array.from(document.querySelectorAll(".appmenu-submenu")).find(function(el){return el.querySelector("span.icon-".concat(submenuName))});if(submenu){submenu.classList.add("appmenu-submenu-expanded")}else{/* eslint-disable-next-line */console.warn("Submenu with icon-".concat(submenuName," not found."))}return}if(actionName.startsWith("closeSubMenu:")){var _submenuName=actionName.replace("closeSubMenu:","").trim();var _submenu=Array.from(document.querySelectorAll(".appmenu-submenu")).find(function(el){return el.querySelector("span.icon-".concat(_submenuName))});if(_submenu){_submenu.classList.remove("appmenu-submenu-expanded")}else{/* eslint-disable-next-line */console.warn("Submenu with icon-".concat(_submenuName," not found."))}return}switch(actionName){case"openMenu":(_document$querySelect=document.querySelector(".AppMenu"))===null||_document$querySelect===void 0||_document$querySelect.classList.add("appmenu-visible");break;case"closeMenu":(_document$querySelect2=document.querySelector(".AppMenu"))===null||_document$querySelect2===void 0||_document$querySelect2.classList.remove("appmenu-visible");break;default:/* eslint-disable-next-line */console.warn("Unknown action:",actionName)}});_defineProperty(_this,"startTour",function(){var _this$state$driverObj;(_this$state$driverObj=_this.state.driverObj)===null||_this$state$driverObj===void 0||_this$state$driverObj.drive()});return _this}_inherits(TourGuide,_React$Component);return _createClass(TourGuide,[{key:"componentDidMount",value:function componentDidMount(){var _this2=this;fetch(MiscUtils.resolveAssetsPath(this.props.tourGuideUrl)).then(function(response){return response.json()}).then(function(data){var steps=data.map(function(step){return{element:step.selector,popover:{title:step.title,description:step.content,side:step.side,align:step.align},disableActiveInteraction:step.disableActiveInteraction}});_this2.setState({tourSteps:steps,rawStepData:data})})["catch"](function(err){/* eslint-disable-next-line */console.error("Failed to fetch tour guide data:",err)})}},{key:"componentDidUpdate",value:function componentDidUpdate(prevProps){var _this3=this;if(this.props.active&&!prevProps.active&&this.state.tourSteps){var tourSteps=this.state.tourSteps;import("driver.js/dist/driver.css");import("./style/TourGuide.css");import("driver.js").then(function(module){var driver=module.driver;var driverObj=driver({popoverClass:"driverjs-theme",nextBtnText:LocaleUtils.tr("tourguide.next")+" \u2192",prevBtnText:"\u2190 "+LocaleUtils.tr("tourguide.previous"),doneBtnText:LocaleUtils.tr("tourguide.done"),progressText:"{{current}} / {{total}}",showProgress:true,steps:tourSteps,onNextClick:function onNextClick(){return _this3.handleClick(driverObj,"next")},onPrevClick:function onPrevClick(){return _this3.handleClick(driverObj,"prev")},onDestroyed:function onDestroyed(){var _document$querySelect3;document.querySelectorAll(".AppMenu .appmenu-submenu").forEach(function(submenu){return submenu.classList.remove("appmenu-submenu-expanded")});(_document$querySelect3=document.querySelector(".AppMenu"))===null||_document$querySelect3===void 0||_document$querySelect3.classList.remove("appmenu-visible");_this3.props.setCurrentTask(null)},onHighlightStarted:function onHighlightStarted(_,step){var index=tourSteps.findIndex(function(s){return s.element===step.element});_this3.setState({currentStepIndex:index})}});_this3.setState({driverObj:driverObj},function(){_this3.startTour();_this3.props.setCurrentTask(null)})})["catch"](function(err){/* eslint-disable-next-line */console.error("Failed to load Driver.js:",err)})}}},{key:"render",value:function render(){return null}}])}(React.Component);_defineProperty(TourGuide,"propTypes",{active:PropTypes.bool,setCurrentTask:PropTypes.func,/** Url of the Tourguide JSON configuration. */tourGuideUrl:PropTypes.string});
|
|
1
|
+
function _typeof(o){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},_typeof(o)}function _classCallCheck(a,n){if(!(a instanceof n))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,r){for(var t=0;t<r.length;t++){var o=r[t];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,_toPropertyKey(o.key),o)}}function _createClass(e,r,t){return r&&_defineProperties(e.prototype,r),t&&_defineProperties(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function _callSuper(t,o,e){return o=_getPrototypeOf(o),_possibleConstructorReturn(t,_isNativeReflectConstruct()?Reflect.construct(o,e||[],_getPrototypeOf(t).constructor):o.apply(t,e))}function _possibleConstructorReturn(t,e){if(e&&("object"==_typeof(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(t)}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _isNativeReflectConstruct(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(_isNativeReflectConstruct=function _isNativeReflectConstruct(){return!!t})()}function _getPrototypeOf(t){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},_getPrototypeOf(t)}function _inherits(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&_setPrototypeOf(t,e)}function _setPrototypeOf(t,e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},_setPrototypeOf(t,e)}function _defineProperty(e,r,t){return(r=_toPropertyKey(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function _toPropertyKey(t){var i=_toPrimitive(t,"string");return"symbol"==_typeof(i)?i:i+""}function _toPrimitive(t,r){if("object"!=_typeof(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||"default");if("object"!=_typeof(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}import React from"react";import{connect}from"react-redux";import PropTypes from"prop-types";import{setCurrentTask}from"../actions/task";import LocaleUtils from"../utils/LocaleUtils";import MiscUtils from"../utils/MiscUtils";var TourGuide=/*#__PURE__*/function(_React$Component){function TourGuide(){var _this;_classCallCheck(this,TourGuide);for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key]}_this=_callSuper(this,TourGuide,[].concat(args));_defineProperty(_this,"state",{tourSteps:[],driverObj:null,currentStepIndex:0,rawStepData:[]});_defineProperty(_this,"handleClick",function(driverObj,direction){var _this$state=_this.state,currentStepIndex=_this$state.currentStepIndex,rawStepData=_this$state.rawStepData;var currentRawStep=rawStepData[currentStepIndex];var actionNames=direction==="next"?currentRawStep===null||currentRawStep===void 0?void 0:currentRawStep.onNextClick:currentRawStep===null||currentRawStep===void 0?void 0:currentRawStep.onPrevClick;if(Array.isArray(actionNames)){actionNames.forEach(function(actionName){return _this.runCustomAction(actionName)})}else if(actionNames){_this.runCustomAction(actionNames)}_this.setState(function(prevState){return{currentStepIndex:direction==="next"?prevState.currentStepIndex+1:Math.max(prevState.currentStepIndex-1,0)}},function(){direction==="next"?driverObj.moveNext():driverObj.movePrevious()})});_defineProperty(_this,"runCustomAction",function(actionName){var _document$querySelect,_document$querySelect2;if(actionName.startsWith("setTask:")){_this.props.setCurrentTask(actionName.replace("setTask:","").trim());return}if(actionName.startsWith("openSubMenu:")){var submenuName=actionName.replace("openSubMenu:","").trim();var submenu=Array.from(document.querySelectorAll(".appmenu-submenu")).find(function(el){return el.querySelector("span.icon-".concat(submenuName))});if(submenu){submenu.classList.add("appmenu-submenu-expanded")}else{/* eslint-disable-next-line */console.warn("Submenu with icon-".concat(submenuName," not found."))}return}if(actionName.startsWith("closeSubMenu:")){var _submenuName=actionName.replace("closeSubMenu:","").trim();var _submenu=Array.from(document.querySelectorAll(".appmenu-submenu")).find(function(el){return el.querySelector("span.icon-".concat(_submenuName))});if(_submenu){_submenu.classList.remove("appmenu-submenu-expanded")}else{/* eslint-disable-next-line */console.warn("Submenu with icon-".concat(_submenuName," not found."))}return}switch(actionName){case"openMenu":(_document$querySelect=document.querySelector(".AppMenu"))===null||_document$querySelect===void 0||_document$querySelect.classList.add("appmenu-visible");break;case"closeMenu":(_document$querySelect2=document.querySelector(".AppMenu"))===null||_document$querySelect2===void 0||_document$querySelect2.classList.remove("appmenu-visible");break;default:/* eslint-disable-next-line */console.warn("Unknown action:",actionName)}});_defineProperty(_this,"startTour",function(){var _this$state$driverObj;(_this$state$driverObj=_this.state.driverObj)===null||_this$state$driverObj===void 0||_this$state$driverObj.drive()});return _this}_inherits(TourGuide,_React$Component);return _createClass(TourGuide,[{key:"componentDidMount",value:function componentDidMount(){var _this2=this;if(!this.props.tourGuideUrl){return}fetch(MiscUtils.resolveAssetsPath(this.props.tourGuideUrl)).then(function(response){return response.json()}).then(function(data){var steps=data.map(function(step){return{element:step.selector,popover:{title:step.title,description:step.content,side:step.side,align:step.align},disableActiveInteraction:step.disableActiveInteraction}});_this2.setState({tourSteps:steps,rawStepData:data})})["catch"](function(err){/* eslint-disable-next-line */console.error("Failed to fetch tour guide data:",err)})}},{key:"componentDidUpdate",value:function componentDidUpdate(prevProps){var _this3=this;if(this.props.active&&!prevProps.active&&this.state.tourSteps){var tourSteps=this.state.tourSteps;import("driver.js/dist/driver.css");import("./style/TourGuide.css");import("driver.js").then(function(module){var driver=module.driver;var driverObj=driver({popoverClass:"driverjs-theme",nextBtnText:LocaleUtils.tr("tourguide.next")+" \u2192",prevBtnText:"\u2190 "+LocaleUtils.tr("tourguide.previous"),doneBtnText:LocaleUtils.tr("tourguide.done"),progressText:"{{current}} / {{total}}",showProgress:true,steps:tourSteps,onNextClick:function onNextClick(){return _this3.handleClick(driverObj,"next")},onPrevClick:function onPrevClick(){return _this3.handleClick(driverObj,"prev")},onDestroyed:function onDestroyed(){var _document$querySelect3;document.querySelectorAll(".AppMenu .appmenu-submenu").forEach(function(submenu){return submenu.classList.remove("appmenu-submenu-expanded")});(_document$querySelect3=document.querySelector(".AppMenu"))===null||_document$querySelect3===void 0||_document$querySelect3.classList.remove("appmenu-visible");_this3.props.setCurrentTask(null)},onHighlightStarted:function onHighlightStarted(_,step){var index=tourSteps.findIndex(function(s){return s.element===step.element});_this3.setState({currentStepIndex:index})}});_this3.setState({driverObj:driverObj},function(){_this3.startTour();_this3.props.setCurrentTask(null)})})["catch"](function(err){/* eslint-disable-next-line */console.error("Failed to load Driver.js:",err)})}}},{key:"render",value:function render(){return null}}])}(React.Component);_defineProperty(TourGuide,"propTypes",{active:PropTypes.bool,setCurrentTask:PropTypes.func,/** Url of the Tourguide JSON configuration. */tourGuideUrl:PropTypes.string});export default connect(function(state){return{active:state.task.id==="TourGuide"}},{setCurrentTask:setCurrentTask})(TourGuide);
|
package/reducers/layers.js
CHANGED
|
@@ -10,7 +10,7 @@ return state}var newLayers=(state.flat||[]).map(function(layer){if(layer.id===ac
|
|
|
10
10
|
if(mutexVisibilityChanged){var newParent=newlayer;parentPath.forEach(function(index){newParent=newParent.sublayers[index]});var targetIdx=action.sublayerpath[action.sublayerpath.length-1];newParent.sublayers=newParent.sublayers.map(function(l,idx){return _objectSpread(_objectSpread({},l),{},{visibility:idx===targetIdx})})}if(["children","both"].includes(recurseDirection)){// recurse to children (except visibility to children in mutex case)
|
|
11
11
|
LayerUtils.propagateLayerProperty(newsublayer,action.property,action.newvalue)}if(["parents","both"].includes(recurseDirection)){// recurse to parents
|
|
12
12
|
LayerUtils.propagateLayerProperty(newlayer,action.property,action.newvalue,action.sublayerpath)}if(newlayer.type==="wms"){Object.assign(newlayer,LayerUtils.buildWMSLayerParams(newlayer,state.filter))}if(newlayer.role===LayerRole.BACKGROUND){UrlParams.updateParams({bl:newlayer.visibility?newlayer.name:""})}return newlayer}else if(layer.role===LayerRole.BACKGROUND&&backgroundVisibilityChanged){return _objectSpread(_objectSpread({},layer),{},{visibility:false})}return layer});UrlParams.updateParams({l:LayerUtils.buildWMSLayerUrlParam(newLayers)});return _objectSpread(_objectSpread({},state),{},{flat:newLayers})}case SET_LAYER_DIMENSIONS:{var _state$flat$find;// Set dimensions for all layers with the same URL (i.e. if a WMS is split)
|
|
13
|
-
var layerUrl=(_state$flat$find=state.flat.find(function(layer){return layer.id===action.layerId}))===null||_state$flat$find===void 0?void 0:_state$flat$find.url;if(!layerUrl){return""}var _newLayers=(state.flat||[]).map(function(layer){if(layer.url===layerUrl){var newLayer=_objectSpread(_objectSpread({},layer),{},{dimensionValues:action.dimensions});Object.assign(newLayer,LayerUtils.buildWMSLayerParams(newLayer,state.filter));return newLayer}return layer});return _objectSpread(_objectSpread({},state),{},{flat:_newLayers})}case ADD_LAYER:{var _action$layer$visibil,_action$layer$opacity;var _newLayers2=(state.flat||[]).concat();var layerId=action.layer.id||uuidv4();var newLayer=_objectSpread(_objectSpread({},action.layer),{},{id:layerId,name:action.layer.name||layerId,role:action.layer.role||LayerRole.USERLAYER,queryable:action.layer.queryable||false,visibility:(_action$layer$visibil=action.layer.visibility)!==null&&_action$layer$visibil!==void 0?_action$layer$visibil:true,opacity:(_action$layer$opacity=action.layer.opacity)!==null&&_action$layer$opacity!==void 0?_action$layer$opacity:255,layertreehidden:action.layer.layertreehidden||action.layer.role>LayerRole.USERLAYER});if(action.
|
|
13
|
+
var layerUrl=(_state$flat$find=state.flat.find(function(layer){return layer.id===action.layerId}))===null||_state$flat$find===void 0?void 0:_state$flat$find.url;if(!layerUrl){return""}var _newLayers=(state.flat||[]).map(function(layer){if(layer.url===layerUrl){var newLayer=_objectSpread(_objectSpread({},layer),{},{dimensionValues:action.dimensions});Object.assign(newLayer,LayerUtils.buildWMSLayerParams(newLayer,state.filter));return newLayer}return layer});return _objectSpread(_objectSpread({},state),{},{flat:_newLayers})}case ADD_LAYER:{var _action$layer$visibil,_action$layer$opacity,_action$options,_action$options2;var _newLayers2=(state.flat||[]).concat();var layerId=action.layer.id||uuidv4();var newLayer=_objectSpread(_objectSpread({},action.layer),{},{id:layerId,name:action.layer.name||layerId,role:action.layer.role||LayerRole.USERLAYER,queryable:action.layer.queryable||false,visibility:(_action$layer$visibil=action.layer.visibility)!==null&&_action$layer$visibil!==void 0?_action$layer$visibil:true,opacity:(_action$layer$opacity=action.layer.opacity)!==null&&_action$layer$opacity!==void 0?_action$layer$opacity:255,layertreehidden:action.layer.layertreehidden||action.layer.role>LayerRole.USERLAYER});if((_action$options=action.options)!==null&&_action$options!==void 0&&_action$options.beforeLayerName||(_action$options2=action.options)!==null&&_action$options2!==void 0&&_action$options2.afterLayerName){_newLayers2=LayerUtils.insertLayer(_newLayers2,newLayer,"name",action.options.beforeLayerName||action.options.afterLayerName,action.options.afterLayerName?true:false)}else{var inspos=0;if(action.pos===null){for(;inspos<_newLayers2.length&&newLayer.role<_newLayers2[inspos].role;++inspos);}else{inspos=action.pos}_newLayers2.splice(inspos,0,newLayer);// Compress layers if possible
|
|
14
14
|
_newLayers2=LayerUtils.implodeLayers(LayerUtils.explodeLayers(_newLayers2))}var _iterator=_createForOfIteratorHelper(_newLayers2),_step;try{for(_iterator.s();!(_step=_iterator.n()).done;){var lyr=_step.value;if(lyr.type==="wms"){Object.assign(lyr,LayerUtils.buildWMSLayerParams(lyr,state.filter))}}}catch(err){_iterator.e(err)}finally{_iterator.f()}UrlParams.updateParams({l:LayerUtils.buildWMSLayerUrlParam(_newLayers2)});if(newLayer.role===LayerRole.BACKGROUND&&newLayer.visibility){UrlParams.updateParams({bl:newLayer.name})}return _objectSpread(_objectSpread({},state),{},{flat:_newLayers2})}case ADD_LAYER_SEPARATOR:{var _newLayers3=LayerUtils.insertSeparator(state.flat,action.title,action.afterLayerId,action.afterSublayerPath);var _iterator2=_createForOfIteratorHelper(_newLayers3),_step2;try{for(_iterator2.s();!(_step2=_iterator2.n()).done;){var layer=_step2.value;if(layer.type==="wms"){Object.assign(layer,LayerUtils.buildWMSLayerParams(layer,state.filter))}}}catch(err){_iterator2.e(err)}finally{_iterator2.f()}UrlParams.updateParams({l:LayerUtils.buildWMSLayerUrlParam(_newLayers3)});return _objectSpread(_objectSpread({},state),{},{flat:_newLayers3})}case REMOVE_LAYER:{var _layer=state.flat.find(function(l){return l.id===action.layerId});if(!_layer){return state}var _newLayers4=state.flat;if(_layer.role===LayerRole.BACKGROUND||isEmpty(action.sublayerpath)){var position=state.flat.findIndex(function(l){return l.id===action.layerId});_newLayers4=_toConsumableArray(_newLayers4);_newLayers4.splice(position,1);if(position>0&&position<_newLayers4.length&&_newLayers4[position-1].id===_newLayers4[position].id){// Compress layers
|
|
15
15
|
_newLayers4=LayerUtils.implodeLayers(LayerUtils.explodeLayers(_newLayers4))}}else{_newLayers4=LayerUtils.removeLayer(state.flat,_layer,action.sublayerpath).map(function(l){if(l.type==="wms"){return _objectSpread(_objectSpread({},l),LayerUtils.buildWMSLayerParams(l,state.filter))}else{return l}})}UrlParams.updateParams({l:LayerUtils.buildWMSLayerUrlParam(_newLayers4)});return _objectSpread(_objectSpread({},state),{},{flat:_newLayers4})}case ADD_LAYER_FEATURES:{var _layerId=action.layer.id||uuidv4();var _newLayers5=(state.flat||[]).concat();var idx=_newLayers5.findIndex(function(layer){return layer.id===_layerId});if(idx===-1){var newFeatures=action.features.map(function(f){return _objectSpread(_objectSpread({},f),{},{id:f.id||(f.properties||{}).id||uuidv4()})});var _newLayer=_objectSpread(_objectSpread({},action.layer),{},{id:_layerId,type:"vector",name:action.layer.name||_layerId,features:newFeatures,role:action.layer.role||LayerRole.USERLAYER,queryable:action.layer.queryable||false,visibility:action.layer.visibility||true,opacity:action.layer.opacity||255,layertreehidden:action.layer.layertreehidden||action.layer.role>LayerRole.USERLAYER,bbox:VectorLayerUtils.computeFeaturesBBox(action.features)});var _inspos=0;for(;_inspos<_newLayers5.length&&_newLayer.role<_newLayers5[_inspos].role;++_inspos);_newLayers5.splice(_inspos,0,_newLayer)}else{var addFeatures=action.features.map(function(f){return _objectSpread(_objectSpread({},f),{},{id:f.id||(f.properties||{}).id||uuidv4()})});var _newFeatures=action.clear?addFeatures:[].concat(_toConsumableArray((_newLayers5[idx].features||[]).filter(function(f){return!addFeatures.find(function(g){return g.id===f.id})})),_toConsumableArray(addFeatures));_newLayers5[idx]=_objectSpread(_objectSpread({},_newLayers5[idx]),{},{features:_newFeatures,bbox:VectorLayerUtils.computeFeaturesBBox(_newFeatures),rev:action.layer.rev})}return _objectSpread(_objectSpread({},state),{},{flat:_newLayers5})}case REMOVE_LAYER_FEATURES:{var changed=false;var _newLayers6=(state.flat||[]).reduce(function(result,layer){if(layer.id===action.layerId){var _newFeatures2=(layer.features||[]).filter(function(f){return action.featureIds.includes(f.id)===false});if(!isEmpty(_newFeatures2)||action.keepEmptyLayer){result.push(_objectSpread(_objectSpread({},layer),{},{features:_newFeatures2,bbox:VectorLayerUtils.computeFeaturesBBox(_newFeatures2)}))}changed=true}else{result.push(layer)}return result},[]);if(changed){return _objectSpread(_objectSpread({},state),{},{flat:_newLayers6})}else{return state}}case CLEAR_LAYER:{var _newLayers7=(state.flat||[]).map(function(layer){if(layer.id===action.layerId){return _objectSpread(_objectSpread({},layer),{},{features:[],bbox:null})}else{return layer}});return _objectSpread(_objectSpread({},state),{},{flat:_newLayers7})}case ADD_THEME_SUBLAYER:{var themeLayerIdx=state.flat.findIndex(function(layer){return layer.role===LayerRole.THEME});if(themeLayerIdx>=0){var _newLayers8=state.flat.slice(0);_newLayers8[themeLayerIdx]=LayerUtils.mergeSubLayers(state.flat[themeLayerIdx],action.layer);_newLayers8[themeLayerIdx].visibility=true;Object.assign(_newLayers8[themeLayerIdx],LayerUtils.buildWMSLayerParams(_newLayers8[themeLayerIdx],state.filter));UrlParams.updateParams({l:LayerUtils.buildWMSLayerUrlParam(_newLayers8)});return _objectSpread(_objectSpread({},state),{},{flat:_newLayers8})}return state}case REFRESH_LAYER:{var _newLayers9=(state.flat||[]).map(function(layer){if(action.filter(layer)){return _objectSpread(_objectSpread({},layer),{},{rev:+new Date})}return layer});return _objectSpread(_objectSpread({},state),{},{flat:_newLayers9})}case REMOVE_ALL_LAYERS:{return defaultState}case REORDER_LAYER:{var _newLayers10=LayerUtils.reorderLayer(state.flat,action.layer,action.sublayerpath,action.direction,action.preventSplittingGroups).map(function(layer){if(layer.type==="wms"){return _objectSpread(_objectSpread({},layer),LayerUtils.buildWMSLayerParams(layer,state.filter))}else{return layer}});UrlParams.updateParams({l:LayerUtils.buildWMSLayerUrlParam(_newLayers10)});return _objectSpread(_objectSpread({},state),{},{flat:_newLayers10})}case REPLACE_PLACEHOLDER_LAYER:{var _newLayers11=state.flat||[];if(action.layer){_newLayers11=_newLayers11.map(function(layer){if(layer.type==="placeholder"&&layer.id===action.id){var _newLayer2=_objectSpread(_objectSpread(_objectSpread({},layer),action.layer),{},{role:layer.role,id:layer.id});// For background layers, preserve any custom title/attribution/opacity
|
|
16
16
|
if(layer.role===LayerRole.BACKGROUND){_newLayer2.title=layer.title||action.layer.title;_newLayer2.attribution=layer.attribution||action.layer.attribution;_newLayer2.opacity=layer.opacity||action.layer.opacity}delete _newLayer2.loading;if(_newLayer2.type==="wms"){Object.assign(_newLayer2,LayerUtils.buildWMSLayerParams(_newLayer2,state.filter))}return _newLayer2}else{return layer}})}else{_newLayers11=_newLayers11.filter(function(layer){return!(layer.type==="placeholder"&&layer.id===action.id)})}UrlParams.updateParams({l:LayerUtils.buildWMSLayerUrlParam(_newLayers11)});return _objectSpread(_objectSpread({},state),{},{flat:_newLayers11})}case SET_SWIPE:{return _objectSpread(_objectSpread({},state),{},{swipe:action.swipe})}case SET_FILTER:{var filter={filterParams:action.filter,filterGeom:action.filterGeom,timeRange:action.timeRange};var _newLayers12=state.flat.map(function(layer){if(layer.type==="wms"){return _objectSpread(_objectSpread({},layer),LayerUtils.buildWMSLayerParams(layer,filter))}return layer});return _objectSpread(_objectSpread({},state),{},{flat:_newLayers12,filter:filter})}case SET_THEME_LAYERS_VISIBILITY_PRESET:{var _newLayers13=state.flat.map(function(layer){if(layer.role===LayerRole.THEME){var _newLayer3=LayerUtils.applyVisibilityPreset(layer,action.preset);return _objectSpread(_objectSpread({},_newLayer3),LayerUtils.buildWMSLayerParams(_newLayer3,state.filter))}else{return layer}});UrlParams.updateParams({l:LayerUtils.buildWMSLayerUrlParam(_newLayers13)});return _objectSpread(_objectSpread({},state),{},{flat:_newLayers13})}default:return state}}
|
package/utils/LayerUtils.js
CHANGED
|
@@ -42,7 +42,7 @@ var _iterator11=_createForOfIteratorHelper(exploded),_step11;try{for(_iterator11
|
|
|
42
42
|
var target=newlayers.length>0?newlayers[newlayers.length-1]:null;var source=_layer2;if(target&&target.sublayers&&target.url===_layer2.url){var innertarget=target.sublayers[target.sublayers.length-1];var innersource=source.sublayers[0];// Exploded entries have only one entry per sublayer level
|
|
43
43
|
while(innertarget&&innertarget.sublayers&&innertarget.name===innersource.name){target=innertarget;source=innersource;innertarget=target.sublayers[target.sublayers.length-1];innersource=source.sublayers[0];// Exploded entries have only one entry per sublayer level
|
|
44
44
|
}target.sublayers.push(source.sublayers[0])}else{if(usedIds.has(_layer2.id)){newlayers.push(_objectSpread(_objectSpread({},_layer2),{},{id:uuidv4()}))}else{newlayers.push(_layer2)}}}// Ensure mutually exclusive groups have exactly one visible layer
|
|
45
|
-
}catch(err){_iterator11.e(err)}finally{_iterator11.f()}for(var _i=0,_newlayers=newlayers;_i<_newlayers.length;_i++){var layer=_newlayers[_i];LayerUtils.ensureMutuallyExclusive(layer)}for(var _i2=0,_newlayers2=newlayers;_i2<_newlayers2.length;_i2++){var _layer=_newlayers2[_i2];if(_layer.type==="wms"){Object.assign(_layer,LayerUtils.recomputeLayerBBox(_layer))}}return newlayers},insertLayer:function insertLayer(layers,newlayer,beforeattr,beforeval){var exploded=LayerUtils.explodeLayers(layers);var explodedAdd=LayerUtils.explodeLayers([newlayer]);var index=exploded.findIndex(function(entry){return entry.sublayer[beforeattr]===beforeval});if(index!==-1){exploded.splice.apply(exploded,[index,0].concat(_toConsumableArray(explodedAdd)))}return LayerUtils.implodeLayers(exploded)},ensureMutuallyExclusive:function ensureMutuallyExclusive(group){if(!isEmpty(group.sublayers)){if(group.mutuallyExclusive){var tristateSublayer=group.sublayers.find(function(sublayer){return sublayer.tristate===true});var visibleSublayer=tristateSublayer||group.sublayers.find(function(sublayer){return sublayer.visibility===true})||group.sublayers[0];var _iterator12=_createForOfIteratorHelper(group.sublayers),_step12;try{for(_iterator12.s();!(_step12=_iterator12.n()).done;){var sublayer=_step12.value;sublayer.visibility=sublayer===visibleSublayer}}catch(err){_iterator12.e(err)}finally{_iterator12.f()}}var _iterator13=_createForOfIteratorHelper(group.sublayers),_step13;try{for(_iterator13.s();!(_step13=_iterator13.n()).done;){var _sublayer=_step13.value;LayerUtils.ensureMutuallyExclusive(_sublayer)}}catch(err){_iterator13.e(err)}finally{_iterator13.f()}}},getSublayerNames:function getSublayerNames(layer){var _this2=this;var toplevel=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;var filter=arguments.length>2&&arguments[2]!==undefined?arguments[2]:null;return[toplevel&&layer.sublayers||filter&&!filter(layer)?null:layer.name].concat((layer.sublayers||[]).reduce(function(list,sublayer){return list.concat(_toConsumableArray(_this2.getSublayerNames(sublayer,false,filter)))},[])).filter(function(x){return x})},mergeSubLayers:function mergeSubLayers(baselayer,addlayer){addlayer=_objectSpread(_objectSpread({},baselayer),{},{sublayers:addlayer.sublayers});addlayer.externalLayerMap=_objectSpread({},addlayer.externalLayerMap);LayerUtils.extractExternalLayersFromSublayers(addlayer,addlayer);if(isEmpty(addlayer.sublayers)){return _objectSpread({},baselayer)}if(isEmpty(baselayer.sublayers)){return addlayer}var explodedBase=LayerUtils.explodeLayers([baselayer]);var existing=explodedBase.map(function(entry){return entry.sublayer.name});var explodedAdd=LayerUtils.explodeLayers([addlayer]);explodedAdd=explodedAdd.filter(function(entry){return!existing.includes(entry.sublayer.name)});return LayerUtils.implodeLayers(explodedAdd.concat(explodedBase))[0]},searchSubLayer:function searchSubLayer(layer,attr,value){var path=arguments.length>3&&arguments[3]!==undefined?arguments[3]:[];if(layer.sublayers){var idx=0;var _iterator14=_createForOfIteratorHelper(layer.sublayers),_step14;try{for(_iterator14.s();!(_step14=_iterator14.n()).done;){var sublayer=_step14.value;var match=sublayer[attr]===value?sublayer:LayerUtils.searchSubLayer(sublayer,attr,value,path);if(match){path.unshift(idx);return match}idx+=1}}catch(err){_iterator14.e(err)}finally{_iterator14.f()}}else{if(layer[attr]===value){return layer}}return null},matchSubLayer:function matchSubLayer(layer,func){var path=arguments.length>2&&arguments[2]!==undefined?arguments[2]:[];if(layer.sublayers){var idx=0;var _iterator15=_createForOfIteratorHelper(layer.sublayers),_step15;try{for(_iterator15.s();!(_step15=_iterator15.n()).done;){var sublayer=_step15.value;var match=func(sublayer)?sublayer:LayerUtils.matchSubLayer(sublayer,func,path);if(match){path.unshift(idx);return match}idx+=1}}catch(err){_iterator15.e(err)}finally{_iterator15.f()}}else{if(func(layer)){return layer}}return null},searchLayer:function searchLayer(layers,layerUrl,layerName){var match=null;layers.find(function(layer){var sublayer=null;if(layer.url===layerUrl&&(sublayer=LayerUtils.searchSubLayer(layer,"name",layerName))){match={layer:layer,sublayer:sublayer};return true}return false});return match},sublayerVisible:function sublayerVisible(layer,sublayerpath){var visible=layer.visibility!==false;var sublayer=layer;var _iterator16=_createForOfIteratorHelper(sublayerpath),_step16;try{for(_iterator16.s();!(_step16=_iterator16.n()).done;){var index=_step16.value;sublayer=sublayer.sublayers[index];visible&=sublayer.visibility!==false;if(!visible){return false}}}catch(err){_iterator16.e(err)}finally{_iterator16.f()}return true},computeLayerVisibility:function computeLayerVisibility(layer){if(isEmpty(layer.sublayers)||layer.visibility===false){return layer.visibility?1:0}var visible=0;layer.sublayers.map(function(sublayer){var _sublayer$visibility;var sublayervisibility=(_sublayer$visibility=sublayer.visibility)!==null&&_sublayer$visibility!==void 0?_sublayer$visibility:true;if(sublayer.sublayers&&sublayervisibility){visible+=LayerUtils.computeLayerVisibility(sublayer)}else{visible+=sublayervisibility?1:0}});return visible/layer.sublayers.length},computeLayerOpacity:function computeLayerOpacity(layer){if(isEmpty(layer.sublayers)){var _layer$opacity2;return(_layer$opacity2=layer.opacity)!==null&&_layer$opacity2!==void 0?_layer$opacity2:255}var opacity=0;layer.sublayers.map(function(sublayer){opacity+=LayerUtils.computeLayerOpacity(sublayer)});return opacity/layer.sublayers.length},computeLayerQueryable:function computeLayerQueryable(layer){var queryable=0;layer.sublayers.map(function(sublayer){var _sublayer$omitFromQue;var sublayerqueryable=(_sublayer$omitFromQue=!sublayer.omitFromQueryLayers)!==null&&_sublayer$omitFromQue!==void 0?_sublayer$omitFromQue:true;if(sublayer.sublayers&&sublayerqueryable){queryable+=LayerUtils.computeLayerQueryable(sublayer)}else{queryable+=sublayerqueryable?1:0}});return queryable/layer.sublayers.length},hasQueryableSublayers:function hasQueryableSublayers(layer){return layer.sublayers.find(function(sublayer){return sublayer.sulayers?LayerUtils.hasQueryableSublayers(sublayer):sublayer.queryable})},cloneLayer:function cloneLayer(layer,sublayerpath){var newlayer=_objectSpread({},layer);var cur=newlayer;for(var i=0;i<sublayerpath.length;++i){var idx=sublayerpath[i];cur.sublayers=[].concat(_toConsumableArray(cur.sublayers.slice(0,idx)),[_objectSpread({},cur.sublayers[idx])],_toConsumableArray(cur.sublayers.slice(idx+1)));cur=cur.sublayers[idx]}return{newlayer:newlayer,newsublayer:cur}},collectGroupLayers:function collectGroupLayers(layer,parentGroups,groupLayers){if(!isEmpty(layer.sublayers)){var _iterator17=_createForOfIteratorHelper(layer.sublayers),_step17;try{for(_iterator17.s();!(_step17=_iterator17.n()).done;){var sublayer=_step17.value;LayerUtils.collectGroupLayers(sublayer,parentGroups.concat(layer.name),groupLayers)}}catch(err){_iterator17.e(err)}finally{_iterator17.f()}}else{var _iterator18=_createForOfIteratorHelper(parentGroups),_step18;try{for(_iterator18.s();!(_step18=_iterator18.n()).done;){var group=_step18.value;groupLayers[group]=(groupLayers[group]||[]).concat(layer.name)}}catch(err){_iterator18.e(err)}finally{_iterator18.f()}}},replaceLayerGroups:function replaceLayerGroups(layerConfigs,layer){var groupLayers={};LayerUtils.collectGroupLayers(layer,[],groupLayers);var newLayerConfigs=[];var _iterator19=_createForOfIteratorHelper(layerConfigs),_step19;try{var _loop4=function _loop4(){var layerConfig=_step19.value;if(layerConfig.name in groupLayers){newLayerConfigs.push.apply(newLayerConfigs,_toConsumableArray(groupLayers[layerConfig.name].map(function(name){return _objectSpread(_objectSpread({},layerConfig),{},{name:name})})))}else{newLayerConfigs.push(layerConfig)}};for(_iterator19.s();!(_step19=_iterator19.n()).done;){_loop4()}}catch(err){_iterator19.e(err)}finally{_iterator19.f()}return newLayerConfigs},extractExternalLayersFromSublayers:function extractExternalLayersFromSublayers(toplayer,layer){if(layer.sublayers){layer.sublayers=layer.sublayers.map(function(sublayer){if(sublayer.externalLayer){var externalLayer=_objectSpread({},sublayer.externalLayer);LayerUtils.completeExternalLayer(externalLayer,sublayer,toplayer.mapCrs);toplayer.externalLayerMap[sublayer.name]=externalLayer;sublayer=_objectSpread({},sublayer);delete sublayer.externalLayer}if(sublayer.sublayers){LayerUtils.extractExternalLayersFromSublayers(toplayer,sublayer)}return sublayer})}},completeExternalLayer:function completeExternalLayer(externalLayer,sublayer,mapCrs){externalLayer.title=externalLayer.title||(sublayer||{}).title||externalLayer.name;externalLayer.id=uuidv4();if(externalLayer.type==="wms"||externalLayer.params){externalLayer.version=externalLayer.version||"1.3.0";externalLayer.featureInfoUrl=externalLayer.featureInfoUrl||externalLayer.url;externalLayer.legendUrl=externalLayer.legendUrl||externalLayer.url;externalLayer.queryLayers=externalLayer.queryLayers||externalLayer.params.LAYERS.split(",");var externalLayerFeatureInfoFormats=ConfigUtils.getConfigProp("externalLayerFeatureInfoFormats")||{};for(var _i3=0,_Object$keys=Object.keys(externalLayerFeatureInfoFormats);_i3<_Object$keys.length;_i3++){var entry=_Object$keys[_i3];if(externalLayer.featureInfoUrl.toLowerCase().includes(entry.toLowerCase())){externalLayer.infoFormats=[externalLayerFeatureInfoFormats[entry]];break}}}else if(externalLayer.type==="mvt"){externalLayer.projection=mapCrs;if(externalLayer.tileGridName){externalLayer.tileGridConfig=(ConfigUtils.getConfigProp("mvtTileGrids")||{})[externalLayer.tileGridName];if(!externalLayer.tileGridConfig){/* eslint-disable-next-line */console.warn("Tile grid config not found: "+externalLayer.tileGridName)}}}},getLegendUrl:function getLegendUrl(layer,sublayer,scale,map,bboxDependentLegend,scaleDependentLegend,extraLegendParameters){if(layer.type!=="wms"){return layer.legendUrl||""}var requestParams={SERVICE:"WMS",REQUEST:"GetLegendGraphic",FORMAT:"image/png",CRS:map.projection,SRS:map.projection,SLD_VERSION:"1.1.0",WIDTH:200,HEIGHT:200};if(extraLegendParameters){Object.assign(requestParams,Object.fromEntries(extraLegendParameters.split("&").map(function(entry){return entry.split("=")})))}if(scaleDependentLegend===true||scaleDependentLegend==="theme"&&layer.role===LayerRole.THEME){requestParams.SCALE=Math.round(scale)}if(bboxDependentLegend===true||bboxDependentLegend==="theme"&&layer.role===LayerRole.THEME){var bounds=map.bbox.bounds;if(CoordinatesUtils.getAxisOrder(map.projection).substr(0,2)==="ne"&&layer.version==="1.3.0"){requestParams.BBOX=[bounds[1],bounds[0],bounds[3],bounds[2]].join(",")}else{requestParams.BBOX=bounds.join(",")}}if(layer.externalLayerMap&&layer.externalLayerMap[sublayer.name]){var externalLayer=layer.externalLayerMap[sublayer.name];if(externalLayer.type!=="wms"){return externalLayer.legendUrl||""}var urlParts=url.parse(externalLayer.legendUrl,true);urlParts.query=Object.keys(urlParts.query).filter(function(key){// Filter service, request, version
|
|
45
|
+
}catch(err){_iterator11.e(err)}finally{_iterator11.f()}for(var _i=0,_newlayers=newlayers;_i<_newlayers.length;_i++){var layer=_newlayers[_i];LayerUtils.ensureMutuallyExclusive(layer)}for(var _i2=0,_newlayers2=newlayers;_i2<_newlayers2.length;_i2++){var _layer=_newlayers2[_i2];if(_layer.type==="wms"){Object.assign(_layer,LayerUtils.recomputeLayerBBox(_layer))}}return newlayers},insertLayer:function insertLayer(layers,newlayer,attr,val){var after=arguments.length>4&&arguments[4]!==undefined?arguments[4]:false;var exploded=LayerUtils.explodeLayers(layers);var explodedAdd=LayerUtils.explodeLayers([newlayer]);var index=exploded.findIndex(function(entry){return entry.sublayer[attr]===val});if(index!==-1){if(after){index+=1}exploded.splice.apply(exploded,[index,0].concat(_toConsumableArray(explodedAdd)))}else{exploded.unshift.apply(exploded,_toConsumableArray(explodedAdd))}return LayerUtils.implodeLayers(exploded)},ensureMutuallyExclusive:function ensureMutuallyExclusive(group){if(!isEmpty(group.sublayers)){if(group.mutuallyExclusive){var tristateSublayer=group.sublayers.find(function(sublayer){return sublayer.tristate===true});var visibleSublayer=tristateSublayer||group.sublayers.find(function(sublayer){return sublayer.visibility===true})||group.sublayers[0];var _iterator12=_createForOfIteratorHelper(group.sublayers),_step12;try{for(_iterator12.s();!(_step12=_iterator12.n()).done;){var sublayer=_step12.value;sublayer.visibility=sublayer===visibleSublayer}}catch(err){_iterator12.e(err)}finally{_iterator12.f()}}var _iterator13=_createForOfIteratorHelper(group.sublayers),_step13;try{for(_iterator13.s();!(_step13=_iterator13.n()).done;){var _sublayer=_step13.value;LayerUtils.ensureMutuallyExclusive(_sublayer)}}catch(err){_iterator13.e(err)}finally{_iterator13.f()}}},getSublayerNames:function getSublayerNames(layer){var _this2=this;var toplevel=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;var filter=arguments.length>2&&arguments[2]!==undefined?arguments[2]:null;return[toplevel&&layer.sublayers||filter&&!filter(layer)?null:layer.name].concat((layer.sublayers||[]).reduce(function(list,sublayer){return list.concat(_toConsumableArray(_this2.getSublayerNames(sublayer,false,filter)))},[])).filter(function(x){return x})},mergeSubLayers:function mergeSubLayers(baselayer,addlayer){addlayer=_objectSpread(_objectSpread({},baselayer),{},{sublayers:addlayer.sublayers});addlayer.externalLayerMap=_objectSpread({},addlayer.externalLayerMap);LayerUtils.extractExternalLayersFromSublayers(addlayer,addlayer);if(isEmpty(addlayer.sublayers)){return _objectSpread({},baselayer)}if(isEmpty(baselayer.sublayers)){return addlayer}var explodedBase=LayerUtils.explodeLayers([baselayer]);var existing=explodedBase.map(function(entry){return entry.sublayer.name});var explodedAdd=LayerUtils.explodeLayers([addlayer]);explodedAdd=explodedAdd.filter(function(entry){return!existing.includes(entry.sublayer.name)});return LayerUtils.implodeLayers(explodedAdd.concat(explodedBase))[0]},searchSubLayer:function searchSubLayer(layer,attr,value){var path=arguments.length>3&&arguments[3]!==undefined?arguments[3]:[];if(layer.sublayers){var idx=0;var _iterator14=_createForOfIteratorHelper(layer.sublayers),_step14;try{for(_iterator14.s();!(_step14=_iterator14.n()).done;){var sublayer=_step14.value;var match=sublayer[attr]===value?sublayer:LayerUtils.searchSubLayer(sublayer,attr,value,path);if(match){path.unshift(idx);return match}idx+=1}}catch(err){_iterator14.e(err)}finally{_iterator14.f()}}else{if(layer[attr]===value){return layer}}return null},matchSubLayer:function matchSubLayer(layer,func){var path=arguments.length>2&&arguments[2]!==undefined?arguments[2]:[];if(layer.sublayers){var idx=0;var _iterator15=_createForOfIteratorHelper(layer.sublayers),_step15;try{for(_iterator15.s();!(_step15=_iterator15.n()).done;){var sublayer=_step15.value;var match=func(sublayer)?sublayer:LayerUtils.matchSubLayer(sublayer,func,path);if(match){path.unshift(idx);return match}idx+=1}}catch(err){_iterator15.e(err)}finally{_iterator15.f()}}else{if(func(layer)){return layer}}return null},searchLayer:function searchLayer(layers,layerUrl,layerName){var match=null;layers.find(function(layer){var sublayer=null;if(layer.url===layerUrl&&(sublayer=LayerUtils.searchSubLayer(layer,"name",layerName))){match={layer:layer,sublayer:sublayer};return true}return false});return match},sublayerVisible:function sublayerVisible(layer,sublayerpath){var visible=layer.visibility!==false;var sublayer=layer;var _iterator16=_createForOfIteratorHelper(sublayerpath),_step16;try{for(_iterator16.s();!(_step16=_iterator16.n()).done;){var index=_step16.value;sublayer=sublayer.sublayers[index];visible&=sublayer.visibility!==false;if(!visible){return false}}}catch(err){_iterator16.e(err)}finally{_iterator16.f()}return true},computeLayerVisibility:function computeLayerVisibility(layer){if(isEmpty(layer.sublayers)||layer.visibility===false){return layer.visibility?1:0}var visible=0;layer.sublayers.map(function(sublayer){var _sublayer$visibility;var sublayervisibility=(_sublayer$visibility=sublayer.visibility)!==null&&_sublayer$visibility!==void 0?_sublayer$visibility:true;if(sublayer.sublayers&&sublayervisibility){visible+=LayerUtils.computeLayerVisibility(sublayer)}else{visible+=sublayervisibility?1:0}});return visible/layer.sublayers.length},computeLayerOpacity:function computeLayerOpacity(layer){if(isEmpty(layer.sublayers)){var _layer$opacity2;return(_layer$opacity2=layer.opacity)!==null&&_layer$opacity2!==void 0?_layer$opacity2:255}var opacity=0;layer.sublayers.map(function(sublayer){opacity+=LayerUtils.computeLayerOpacity(sublayer)});return opacity/layer.sublayers.length},computeLayerQueryable:function computeLayerQueryable(layer){var queryable=0;layer.sublayers.map(function(sublayer){var _sublayer$omitFromQue;var sublayerqueryable=(_sublayer$omitFromQue=!sublayer.omitFromQueryLayers)!==null&&_sublayer$omitFromQue!==void 0?_sublayer$omitFromQue:true;if(sublayer.sublayers&&sublayerqueryable){queryable+=LayerUtils.computeLayerQueryable(sublayer)}else{queryable+=sublayerqueryable?1:0}});return queryable/layer.sublayers.length},hasQueryableSublayers:function hasQueryableSublayers(layer){return layer.sublayers.find(function(sublayer){return sublayer.sulayers?LayerUtils.hasQueryableSublayers(sublayer):sublayer.queryable})},cloneLayer:function cloneLayer(layer,sublayerpath){var newlayer=_objectSpread({},layer);var cur=newlayer;for(var i=0;i<sublayerpath.length;++i){var idx=sublayerpath[i];cur.sublayers=[].concat(_toConsumableArray(cur.sublayers.slice(0,idx)),[_objectSpread({},cur.sublayers[idx])],_toConsumableArray(cur.sublayers.slice(idx+1)));cur=cur.sublayers[idx]}return{newlayer:newlayer,newsublayer:cur}},collectGroupLayers:function collectGroupLayers(layer,parentGroups,groupLayers){if(!isEmpty(layer.sublayers)){var _iterator17=_createForOfIteratorHelper(layer.sublayers),_step17;try{for(_iterator17.s();!(_step17=_iterator17.n()).done;){var sublayer=_step17.value;LayerUtils.collectGroupLayers(sublayer,parentGroups.concat(layer.name),groupLayers)}}catch(err){_iterator17.e(err)}finally{_iterator17.f()}}else{var _iterator18=_createForOfIteratorHelper(parentGroups),_step18;try{for(_iterator18.s();!(_step18=_iterator18.n()).done;){var group=_step18.value;groupLayers[group]=(groupLayers[group]||[]).concat(layer.name)}}catch(err){_iterator18.e(err)}finally{_iterator18.f()}}},replaceLayerGroups:function replaceLayerGroups(layerConfigs,layer){var groupLayers={};LayerUtils.collectGroupLayers(layer,[],groupLayers);var newLayerConfigs=[];var _iterator19=_createForOfIteratorHelper(layerConfigs),_step19;try{var _loop4=function _loop4(){var layerConfig=_step19.value;if(layerConfig.name in groupLayers){newLayerConfigs.push.apply(newLayerConfigs,_toConsumableArray(groupLayers[layerConfig.name].map(function(name){return _objectSpread(_objectSpread({},layerConfig),{},{name:name})})))}else{newLayerConfigs.push(layerConfig)}};for(_iterator19.s();!(_step19=_iterator19.n()).done;){_loop4()}}catch(err){_iterator19.e(err)}finally{_iterator19.f()}return newLayerConfigs},extractExternalLayersFromSublayers:function extractExternalLayersFromSublayers(toplayer,layer){if(layer.sublayers){layer.sublayers=layer.sublayers.map(function(sublayer){if(sublayer.externalLayer){var externalLayer=_objectSpread({},sublayer.externalLayer);LayerUtils.completeExternalLayer(externalLayer,sublayer,toplayer.mapCrs);toplayer.externalLayerMap[sublayer.name]=externalLayer;sublayer=_objectSpread({},sublayer);delete sublayer.externalLayer}if(sublayer.sublayers){LayerUtils.extractExternalLayersFromSublayers(toplayer,sublayer)}return sublayer})}},completeExternalLayer:function completeExternalLayer(externalLayer,sublayer,mapCrs){externalLayer.title=externalLayer.title||(sublayer||{}).title||externalLayer.name;externalLayer.id=uuidv4();if(externalLayer.type==="wms"||externalLayer.params){externalLayer.version=externalLayer.version||"1.3.0";externalLayer.featureInfoUrl=externalLayer.featureInfoUrl||externalLayer.url;externalLayer.legendUrl=externalLayer.legendUrl||externalLayer.url;externalLayer.queryLayers=externalLayer.queryLayers||externalLayer.params.LAYERS.split(",");var externalLayerFeatureInfoFormats=ConfigUtils.getConfigProp("externalLayerFeatureInfoFormats")||{};for(var _i3=0,_Object$keys=Object.keys(externalLayerFeatureInfoFormats);_i3<_Object$keys.length;_i3++){var entry=_Object$keys[_i3];if(externalLayer.featureInfoUrl.toLowerCase().includes(entry.toLowerCase())){externalLayer.infoFormats=[externalLayerFeatureInfoFormats[entry]];break}}}else if(externalLayer.type==="mvt"){externalLayer.projection=mapCrs;if(externalLayer.tileGridName){externalLayer.tileGridConfig=(ConfigUtils.getConfigProp("mvtTileGrids")||{})[externalLayer.tileGridName];if(!externalLayer.tileGridConfig){/* eslint-disable-next-line */console.warn("Tile grid config not found: "+externalLayer.tileGridName)}}}},getLegendUrl:function getLegendUrl(layer,sublayer,scale,map,bboxDependentLegend,scaleDependentLegend,extraLegendParameters){if(layer.type!=="wms"){return layer.legendUrl||""}var requestParams={SERVICE:"WMS",REQUEST:"GetLegendGraphic",FORMAT:"image/png",CRS:map.projection,SRS:map.projection,SLD_VERSION:"1.1.0",WIDTH:200,HEIGHT:200};if(extraLegendParameters){Object.assign(requestParams,Object.fromEntries(extraLegendParameters.split("&").map(function(entry){return entry.split("=")})))}if(scaleDependentLegend===true||scaleDependentLegend==="theme"&&layer.role===LayerRole.THEME){requestParams.SCALE=Math.round(scale)}if(bboxDependentLegend===true||bboxDependentLegend==="theme"&&layer.role===LayerRole.THEME){var bounds=map.bbox.bounds;if(CoordinatesUtils.getAxisOrder(map.projection).substr(0,2)==="ne"&&layer.version==="1.3.0"){requestParams.BBOX=[bounds[1],bounds[0],bounds[3],bounds[2]].join(",")}else{requestParams.BBOX=bounds.join(",")}}if(layer.externalLayerMap&&layer.externalLayerMap[sublayer.name]){var externalLayer=layer.externalLayerMap[sublayer.name];if(externalLayer.type!=="wms"){return externalLayer.legendUrl||""}var urlParts=url.parse(externalLayer.legendUrl,true);urlParts.query=Object.keys(urlParts.query).filter(function(key){// Filter service, request, version
|
|
46
46
|
return!["service","request","version"].includes(key.toLowerCase())}).reduce(function(res,key){return _objectSpread(_objectSpread({},res),{},_defineProperty({},key,urlParts.query[key]))},{});urlParts.query=_objectSpread(_objectSpread(_objectSpread({VERSION:layer.version},urlParts.query),requestParams),{},{LAYER:externalLayer.params.LAYERS});delete urlParts.search;return url.format(urlParts)}else{var _layer$params$FILTER;var layername=layer===sublayer?layer.params.LAYERS.split(",").reverse().join(","):sublayer.name;var style=layer===sublayer?layer.params.STYLES.split(",").reverse().join(","):sublayer.style;var _urlParts=url.parse(layer.legendUrl,true);_urlParts.query=Object.keys(_urlParts.query).filter(function(key){// Filter service, request, version
|
|
47
47
|
return!["service","request","version"].includes(key.toLowerCase())}).reduce(function(res,key){return _objectSpread(_objectSpread({},res),{},_defineProperty({},key,_urlParts.query[key]))},{});_urlParts.query=_objectSpread(_objectSpread(_objectSpread({VERSION:layer.version},_urlParts.query),requestParams),{},{LAYER:layername,STYLES:style,FILTER:(_layer$params$FILTER=layer.params.FILTER)!==null&&_layer$params$FILTER!==void 0?_layer$params$FILTER:""});delete _urlParts.search;return url.format(_urlParts)}},layerScaleInRange:function layerScaleInRange(layer,mapScale){return(layer.minScale===undefined||mapScale>=layer.minScale)&&(layer.maxScale===undefined||mapScale<layer.maxScale)},addExternalLayerPrintParams:function addExternalLayerPrintParams(layer,params,printCrs,counterRef){var qgisServerVersion=ConfigUtils.getConfigProp("qgisServerVersion",null,3);if(qgisServerVersion>=3){if(layer.type==="wms"){var layerUrl=layer.url;var urlParts=url.parse(layerUrl,true);// Resolve relative urls
|
|
48
48
|
if(!urlParts.host){var locationParts=url.parse(window.location.href);urlParts.protocol=locationParts.protocol;urlParts.host=locationParts.host;delete urlParts.search;layerUrl=url.format(urlParts)}var identifier=String.fromCharCode(65+counterRef[0]++);params.LAYERS.push("EXTERNAL_WMS:"+identifier);params.STYLES.push("");params.COLORS.push("");params[identifier+":url"]=layerUrl;params[identifier+":layers"]=layer.params.LAYERS;params[identifier+":styles"]=layer.params.STYLES;params[identifier+":format"]="image/png";if(layer.serverType==="qgis"&&layer.params.FILTER){params[identifier+":filter"]=layer.params.FILTER}params[identifier+":crs"]=printCrs;params[identifier+":dpiMode"]="7";params[identifier+":contextualWMSLegend"]="0";// If only one layer is requested, request external layer with full opacity
|
package/utils/SearchProviders.js
CHANGED
|
@@ -4,7 +4,7 @@ function _typeof(o){"@babel/helpers - typeof";return _typeof="function"==typeof
|
|
|
4
4
|
*
|
|
5
5
|
* This source code is licensed under the BSD-style license found in the
|
|
6
6
|
* LICENSE file in the root directory of this source tree.
|
|
7
|
-
*/import axios from"axios";import yaml from"js-yaml";import polygonIntersectTest from"polygon-intersect-test";import ConfigUtils from"./ConfigUtils";import CoordinatesUtils from"./CoordinatesUtils";import IdentifyUtils from"./IdentifyUtils";import LocaleUtils from"./LocaleUtils";export var SearchResultType={PLACE:0,THEMELAYER:1,THEME:2,EXTERNALLAYER:3};function coordinatesSearch(text,searchParams,callback){var displaycrs=searchParams.displaycrs||"EPSG:4326";var matches=text.match(/^\s*([+-]?\d+\.?\d*)[,\s]\s*([+-]?\d+\.?\d*)\s*$/);var items=[];if(matches&&matches.length>=3){var x=parseFloat(matches[1]);var y=parseFloat(matches[2]);if(displaycrs!=="EPSG:4326"){items.push({id:"coord0",text:x+", "+y+" ("+displaycrs+")",x:x,y:y,crs:displaycrs,bbox:[x,y,x,y]})}if(x>=-180&&x<=180&&y>=-90&&y<=90){var title=Math.abs(x)+(x>=0?"\xB0E":"\xB0W")+", "+Math.abs(y)+(y>=0?"\xB0N":"\xB0S");items.push({id:"coord"+items.length,text:title,x:x,y:y,crs:"EPSG:4326",bbox:[x,y,x,y]})}if(x>=-90&&x<=90&&y>=-180&&y<=180&&x!==y){var _title=Math.abs(y)+(y>=0?"\xB0E":"\xB0W")+", "+Math.abs(x)+(x>=0?"\xB0N":"\xB0S");items.push({id:"coord"+items.length,text:_title,x:y,y:x,crs:"EPSG:4326",bbox:[y,x,y,x]})}}var results=[];if(items.length>0){results.push({id:"coords",titlemsgid:LocaleUtils.trmsg("search.coordinates"),type:SearchResultType.PLACE,items:items})}callback({results:results})}/** ************************************************************************ **/var NominatimSearch=/*#__PURE__*/function(){function NominatimSearch(){_classCallCheck(this,NominatimSearch)}return _createClass(NominatimSearch,null,[{key:"search",value:function search(text,searchParams,callback){var viewboxParams={};if(searchParams.filterBBox){viewboxParams.viewbox=CoordinatesUtils.reprojectBbox(searchParams.filterBBox,searchParams.mapcrs,"EPSG:4326").join(",");viewboxParams.bounded=1}axios.get("https://nominatim.openstreetmap.org/search",{params:_objectSpread(_objectSpread({"q":text,"addressdetails":1,"polygon_geojson":1,"limit":20,"format":"json","accept-language":searchParams.lang},searchParams.cfgParams||{}),viewboxParams)}).then(function(response){var locale=searchParams.lang;if(NominatimSearch.TRANSLATIONS[locale]===undefined){NominatimSearch.TRANSLATIONS[locale]={promise:NominatimSearch.loadLocale(locale)};NominatimSearch.TRANSLATIONS[locale].promise.then(function(){NominatimSearch.parseResults(response.data,NominatimSearch.TRANSLATIONS[locale].strings,callback)})}else if(NominatimSearch.TRANSLATIONS[locale].promise){NominatimSearch.TRANSLATIONS[locale].promise.then(function(){NominatimSearch.parseResults(response.data,NominatimSearch.TRANSLATIONS[locale].strings,callback)})}else if(NominatimSearch.TRANSLATIONS[locale].strings){NominatimSearch.parseResults(response.data,NominatimSearch.TRANSLATIONS[locale].strings,callback)}})}},{key:"parseResults",value:function parseResults(obj,translations,callback){var results=[];var groups={};var groupcounter=0;(obj||[]).map(function(entry){if(!(entry["class"]in groups)){var title=entry.type;try{title=translations[entry["class"]][entry.type]||entry.type}catch(e){/* pass */}groups[entry["class"]]={id:"nominatimgroup"+groupcounter++,// capitalize class
|
|
7
|
+
*/import axios from"axios";import yaml from"js-yaml";import polygonIntersectTest from"polygon-intersect-test";import ConfigUtils from"./ConfigUtils";import CoordinatesUtils from"./CoordinatesUtils";import IdentifyUtils from"./IdentifyUtils";import LocaleUtils from"./LocaleUtils";export var SearchResultType={PLACE:0,THEMELAYER:1,THEME:2,EXTERNALLAYER:3};function coordinatesSearch(text,searchParams,callback){var displaycrs=searchParams.displaycrs||"EPSG:4326";var matches=text.replace(/[’']/g,"").match(/^\s*([+-]?\d+\.?\d*)[,\s]\s*([+-]?\d+\.?\d*)\s*$/);var items=[];if(matches&&matches.length>=3){var x=parseFloat(matches[1]);var y=parseFloat(matches[2]);if(displaycrs!=="EPSG:4326"){items.push({id:"coord0",text:x+", "+y+" ("+displaycrs+")",x:x,y:y,crs:displaycrs,bbox:[x,y,x,y]})}if(x>=-180&&x<=180&&y>=-90&&y<=90){var title=Math.abs(x)+(x>=0?"\xB0E":"\xB0W")+", "+Math.abs(y)+(y>=0?"\xB0N":"\xB0S");items.push({id:"coord"+items.length,text:title,x:x,y:y,crs:"EPSG:4326",bbox:[x,y,x,y]})}if(x>=-90&&x<=90&&y>=-180&&y<=180&&x!==y){var _title=Math.abs(y)+(y>=0?"\xB0E":"\xB0W")+", "+Math.abs(x)+(x>=0?"\xB0N":"\xB0S");items.push({id:"coord"+items.length,text:_title,x:y,y:x,crs:"EPSG:4326",bbox:[y,x,y,x]})}}var results=[];if(items.length>0){results.push({id:"coords",titlemsgid:LocaleUtils.trmsg("search.coordinates"),type:SearchResultType.PLACE,items:items})}callback({results:results})}/** ************************************************************************ **/var NominatimSearch=/*#__PURE__*/function(){function NominatimSearch(){_classCallCheck(this,NominatimSearch)}return _createClass(NominatimSearch,null,[{key:"search",value:function search(text,searchParams,callback){var viewboxParams={};if(searchParams.filterBBox){viewboxParams.viewbox=CoordinatesUtils.reprojectBbox(searchParams.filterBBox,searchParams.mapcrs,"EPSG:4326").join(",");viewboxParams.bounded=1}axios.get("https://nominatim.openstreetmap.org/search",{params:_objectSpread(_objectSpread({"q":text,"addressdetails":1,"polygon_geojson":1,"limit":20,"format":"json","accept-language":searchParams.lang},searchParams.cfgParams||{}),viewboxParams)}).then(function(response){var locale=searchParams.lang;if(NominatimSearch.TRANSLATIONS[locale]===undefined){NominatimSearch.TRANSLATIONS[locale]={promise:NominatimSearch.loadLocale(locale)};NominatimSearch.TRANSLATIONS[locale].promise.then(function(){NominatimSearch.parseResults(response.data,NominatimSearch.TRANSLATIONS[locale].strings,callback)})}else if(NominatimSearch.TRANSLATIONS[locale].promise){NominatimSearch.TRANSLATIONS[locale].promise.then(function(){NominatimSearch.parseResults(response.data,NominatimSearch.TRANSLATIONS[locale].strings,callback)})}else if(NominatimSearch.TRANSLATIONS[locale].strings){NominatimSearch.parseResults(response.data,NominatimSearch.TRANSLATIONS[locale].strings,callback)}})}},{key:"parseResults",value:function parseResults(obj,translations,callback){var results=[];var groups={};var groupcounter=0;(obj||[]).map(function(entry){if(!(entry["class"]in groups)){var title=entry.type;try{title=translations[entry["class"]][entry.type]||entry.type}catch(e){/* pass */}groups[entry["class"]]={id:"nominatimgroup"+groupcounter++,// capitalize class
|
|
8
8
|
title:title,type:SearchResultType.PLACE,items:[]};results.push(groups[entry["class"]])}// shorten display_name
|
|
9
9
|
var text=entry.display_name.split(", ").slice(0,3).join(", ");// map label
|
|
10
10
|
var label=text;// collect address fields
|