qwc2 2025.5.16 → 2025.5.21
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 +2 -2
- package/components/AttributeForm.js +1 -1
- package/components/AttributeTableWidget.js +2 -2
- package/components/EditComboField.js +4 -3
- package/components/IdentifyViewer.js +5 -7
- package/components/PickFeature.js +1 -1
- package/components/QtDesignerForm.js +2 -2
- package/components/SearchBox.js +1 -1
- package/components/map3d/Map3D.js +3 -3
- package/components/style/EditComboField.css +7 -0
- package/components/style/PluginsContainer.css +3 -2
- package/components/widgets/style/NumberInput.css +1 -1
- package/icons/clone.svg +63 -0
- package/package.json +1 -1
- package/plugins/BackgroundSwitcher.js +1 -1
- package/plugins/Cyclomedia.js +1 -1
- package/plugins/Editing.js +2 -2
- package/plugins/FeatureForm.js +1 -1
- package/plugins/Identify.js +2 -2
- package/plugins/LayerTree.js +3 -3
- package/plugins/Map.js +3 -3
- package/plugins/MapTip.js +1 -1
- package/plugins/Print.js +1 -1
- package/plugins/Reports.js +2 -2
- package/plugins/TimeManager.js +5 -5
- package/plugins/map/SnappingSupport.js +1 -1
- package/reducers/layers.js +6 -5
- package/static/translations/bg-BG.json +1 -1
- package/static/translations/ca-ES.json +1 -1
- package/static/translations/cs-CZ.json +1 -1
- package/static/translations/de-CH.json +1 -1
- package/static/translations/de-DE.json +1 -1
- package/static/translations/en-US.json +1 -1
- package/static/translations/es-ES.json +1 -1
- package/static/translations/fi-FI.json +1 -1
- package/static/translations/fr-FR.json +1 -1
- package/static/translations/hu-HU.json +1 -1
- package/static/translations/it-IT.json +1 -1
- package/static/translations/ja-JP.json +1 -1
- package/static/translations/nl-NL.json +1 -1
- package/static/translations/no-NO.json +1 -1
- package/static/translations/pl-PL.json +1 -1
- package/static/translations/pt-BR.json +1 -1
- package/static/translations/pt-PT.json +1 -1
- package/static/translations/ro-RO.json +1 -1
- package/static/translations/ru-RU.json +1 -1
- package/static/translations/sv-SE.json +1 -1
- package/static/translations/tr-TR.json +1 -1
- package/static/translations/tsconfig.json +1 -1
- package/utils/EditingUtils.js +4 -4
- package/utils/IdentifyUtils.js +3 -3
- package/utils/LayerUtils.js +10 -10
- package/utils/expr_grammar/grammar.js +1 -1
- package/utils/expr_grammar/grammar.ne +12 -1
- package/utils/expr_grammar/test.js +3 -2
package/utils/LayerUtils.js
CHANGED
|
@@ -8,17 +8,17 @@ function _typeof(o){"@babel/helpers - typeof";return _typeof="function"==typeof
|
|
|
8
8
|
var _iterator=_createForOfIteratorHelper(exploded),_step;try{var _loop=function _loop(){var entry=_step.value;var layerConfig=layerConfigs.find(function(layer){return layer.type==="theme"&&layer.name===entry.sublayer.name});if(layerConfig){entry.sublayer.opacity=layerConfig.opacity;entry.sublayer.visibility=layerConfig.visibility||layerConfig.tristate;entry.sublayer.tristate=layerConfig.tristate;entry.sublayer.style=layerConfig.style;if(!entry.sublayer.style){entry.sublayer.style=!isEmpty(entry.sublayer.styles)?Object.keys(entry.sublayer.styles)[0]:""}}else{entry.sublayer.visibility=false}};for(_iterator.s();!(_step=_iterator.n()).done;){_loop()}// Create placeholders for external layers to be added in front
|
|
9
9
|
}catch(err){_iterator.e(err)}finally{_iterator.f()}var external=[];var _iterator2=_createForOfIteratorHelper(layerConfigs),_step2;try{for(_iterator2.s();!(_step2=_iterator2.n()).done;){var layerConfig=_step2.value;if(layerConfig.type==="separator"){// No point restoring separators
|
|
10
10
|
}else if(layerConfig.type!=="theme"){external=external.concat(LayerUtils.createExternalLayerPlaceholder(layerConfig,externalLayers,layerConfig.id))}}}catch(err){_iterator2.e(err)}finally{_iterator2.f()}exploded=[].concat(_toConsumableArray(external),_toConsumableArray(exploded));LayerUtils.insertPermalinkLayers(exploded,permalinkLayers);var layers=LayerUtils.implodeLayers(exploded);LayerUtils.setGroupVisiblities(layers);return layers},restoreOrderedLayerParams:function restoreOrderedLayerParams(themeLayer,layerConfigs,permalinkLayers,externalLayers){var exploded=LayerUtils.explodeLayers([themeLayer]);var reordered=[];// Iterate over layer configs and reorder items accordingly, create external layer placeholders as neccessary
|
|
11
|
-
var _iterator3=_createForOfIteratorHelper(layerConfigs),_step3;try{var _loop2=function _loop2(){var layerConfig=_step3.value;if(layerConfig.type==="theme"){var entry=exploded.find(function(e){return e.sublayer.name===layerConfig.name});if(entry){entry.sublayer.opacity=layerConfig.opacity;entry.sublayer.visibility=layerConfig.visibility||layerConfig.tristate;entry.sublayer.tristate=layerConfig.tristate;entry.sublayer.style=layerConfig.style;if(!entry.sublayer.style){entry.sublayer.style=!isEmpty(entry.sublayer.styles)?Object.keys(entry.sublayer.styles)[0]:""}reordered.push(entry)}}else if(layerConfig.type==="separator"){reordered=reordered.concat(LayerUtils.createSeparatorLayer(layerConfig.name))}else{reordered=reordered.concat(LayerUtils.createExternalLayerPlaceholder(layerConfig,externalLayers,layerConfig.id))}};for(_iterator3.s();!(_step3=_iterator3.n()).done;){_loop2()}}catch(err){_iterator3.e(err)}finally{_iterator3.f()}LayerUtils.insertPermalinkLayers(reordered,permalinkLayers);var layers=LayerUtils.implodeLayers(reordered);LayerUtils.setGroupVisiblities(layers);return layers},setGroupVisiblities:function setGroupVisiblities(layers){var parentVisible=false;var parentInvisible=false;var _iterator4=_createForOfIteratorHelper(layers),_step4;try{for(_iterator4.s();!(_step4=_iterator4.n()).done;){var layer=_step4.value;if(!isEmpty(layer.sublayers)){layer.visibility=LayerUtils.setGroupVisiblities(layer.sublayers)}parentInvisible=parentInvisible||layer.tristate;delete layer.tristate;parentVisible=parentVisible||layer.visibility}}catch(err){_iterator4.e(err)}finally{_iterator4.f()}return parentVisible&&!parentInvisible},createSeparatorLayer:function createSeparatorLayer(title){return LayerUtils.explodeLayers([{type:"separator",title:title,role:LayerRole.USERLAYER,
|
|
11
|
+
var _iterator3=_createForOfIteratorHelper(layerConfigs),_step3;try{var _loop2=function _loop2(){var layerConfig=_step3.value;if(layerConfig.type==="theme"){var entry=exploded.find(function(e){return e.sublayer.name===layerConfig.name});if(entry){entry.sublayer.opacity=layerConfig.opacity;entry.sublayer.visibility=layerConfig.visibility||layerConfig.tristate;entry.sublayer.tristate=layerConfig.tristate;entry.sublayer.style=layerConfig.style;if(!entry.sublayer.style){entry.sublayer.style=!isEmpty(entry.sublayer.styles)?Object.keys(entry.sublayer.styles)[0]:""}reordered.push(entry)}}else if(layerConfig.type==="separator"){reordered=reordered.concat(LayerUtils.createSeparatorLayer(layerConfig.name))}else{reordered=reordered.concat(LayerUtils.createExternalLayerPlaceholder(layerConfig,externalLayers,layerConfig.id))}};for(_iterator3.s();!(_step3=_iterator3.n()).done;){_loop2()}}catch(err){_iterator3.e(err)}finally{_iterator3.f()}LayerUtils.insertPermalinkLayers(reordered,permalinkLayers);var layers=LayerUtils.implodeLayers(reordered);LayerUtils.setGroupVisiblities(layers);return layers},setGroupVisiblities:function setGroupVisiblities(layers){var parentVisible=false;var parentInvisible=false;var _iterator4=_createForOfIteratorHelper(layers),_step4;try{for(_iterator4.s();!(_step4=_iterator4.n()).done;){var layer=_step4.value;if(!isEmpty(layer.sublayers)){layer.visibility=LayerUtils.setGroupVisiblities(layer.sublayers)}parentInvisible=parentInvisible||layer.tristate;delete layer.tristate;parentVisible=parentVisible||layer.visibility}}catch(err){_iterator4.e(err)}finally{_iterator4.f()}return parentVisible&&!parentInvisible},createSeparatorLayer:function createSeparatorLayer(title){return LayerUtils.explodeLayers([{type:"separator",title:title,role:LayerRole.USERLAYER,id:uuidv4()}])},createExternalLayerPlaceholder:function createExternalLayerPlaceholder(layerConfig,externalLayers,id){var key=layerConfig.type+":"+layerConfig.url;(externalLayers[key]=externalLayers[key]||[]).push({id:id,name:layerConfig.name,opacity:layerConfig.opacity,visibility:layerConfig.visibility,style:layerConfig.style,params:layerConfig.params});return LayerUtils.explodeLayers([{id:id,type:"placeholder",name:layerConfig.name,title:layerConfig.name,role:LayerRole.USERLAYER,loading:true}])},insertPermalinkLayers:function insertPermalinkLayers(exploded,layers){var _iterator5=_createForOfIteratorHelper(layers||[]),_step5;try{for(_iterator5.s();!(_step5=_iterator5.n()).done;){var layer=_step5.value;var insLayer=LayerUtils.explodeLayers([layer])[0];if(insLayer.layer.role!==LayerRole.USERLAYER||insLayer.layer.type!=="vector"){continue}delete insLayer.layer.pos;exploded.splice(layer.pos,0,insLayer)}}catch(err){_iterator5.e(err)}finally{_iterator5.f()}},collectWMSSublayerParams:function collectWMSSublayerParams(sublayer,layerNames,opacities,styles,queryable,visibilities,parentVisibility){var layerVisibility=sublayer.visibility===undefined?true:sublayer.visibility;var visibility=layerVisibility&&parentVisibility;if(visibility||visibilities){if(!isEmpty(sublayer.sublayers)){// Is group
|
|
12
12
|
sublayer.sublayers.map(function(sublyr){LayerUtils.collectWMSSublayerParams(sublyr,layerNames,opacities,styles,queryable,visibilities,visibility)})}else{layerNames.push(sublayer.name);opacities.push(Number.isInteger(sublayer.opacity)?sublayer.opacity:255);// Only specify style if more than one style choice exists
|
|
13
13
|
styles.push(Object.keys(sublayer.styles||{}).length>1?sublayer.style||"":"");if(sublayer.queryable&&!sublayer.omitFromQueryLayers){queryable.push(sublayer.name)}if(visibilities){// eslint-disable-next-line
|
|
14
14
|
visibilities.push(layerVisibility?parentVisibility?1:0.5:0)}}}},buildWMSLayerParams:function buildWMSLayerParams(layer){var filter=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var params=layer.params||{};var newParams={};var queryLayers=[];var initialOpacities=undefined;if(!Array.isArray(layer.sublayers)){var _ref,_layer$initialOpaciti,_layer$opacity,_ref2,_layer$style;// Background layers may just contain layer.params.OPACITIES
|
|
15
15
|
// User layers will be controlled with layer.opacity, and value will be replicated in layer.params.OPACITIES
|
|
16
16
|
// => Store the initial layer.params.OPACITIES as initialOpacities, compute actual opacities
|
|
17
17
|
// by multipliying layer.opacity with initialOpacities
|
|
18
|
-
initialOpacities=(_ref=(_layer$initialOpaciti=layer.initialOpacities)!==null&&_layer$initialOpaciti!==void 0?_layer$initialOpaciti:params.OPACITIES)!==null&&_ref!==void 0?_ref:"";var layers=(params.LAYERS||layer.name).split(",").filter(Boolean);var opacities=initialOpacities.split(",").filter(Boolean);var opacityMult=((_layer$opacity=layer.opacity)!==null&&_layer$opacity!==void 0?_layer$opacity:255)/255;newParams=_objectSpread({LAYERS:layers.join(","),OPACITIES:layers.map(function(x,i){var _opacities$i;return Math.round(((_opacities$i=opacities[i])!==null&&_opacities$i!==void 0?_opacities$i:"255")*opacityMult)}).map(Math.round).join(","),STYLES:(_ref2=(_layer$style=layer.style)!==null&&_layer$style!==void 0?_layer$style:params.STYLES)!==null&&_ref2!==void 0?_ref2:layers.map(function(){return""}).join(",")},layer.dimensionValues);queryLayers=layer.queryable&&!layer.omitFromQueryLayers?[layer.name]:[]}else{var layerNames=[];var _opacities=[];var styles=[];layer.sublayers.map(function(sublayer){LayerUtils.collectWMSSublayerParams(sublayer,layerNames,_opacities,styles,queryLayers,null,layer.visibility)});layerNames.reverse();_opacities.reverse();styles.reverse();if(layer.drawingOrder&&layer.drawingOrder.length>0){var indices=layer.drawingOrder.map(function(lyr){return layerNames.indexOf(lyr)}).filter(function(idx){return idx>=0});layerNames=indices.map(function(idx){return layerNames[idx]});_opacities=indices.map(function(idx){return _opacities[idx]});styles=indices.map(function(idx){return styles[idx]})}newParams=_objectSpread({LAYERS:layerNames.join(","),OPACITIES:_opacities.map(Math.round).join(","),STYLES:styles.join(",")},layer.dimensionValues)
|
|
18
|
+
initialOpacities=(_ref=(_layer$initialOpaciti=layer.initialOpacities)!==null&&_layer$initialOpaciti!==void 0?_layer$initialOpaciti:params.OPACITIES)!==null&&_ref!==void 0?_ref:"";var layers=(params.LAYERS||layer.name).split(",").filter(Boolean);var opacities=initialOpacities.split(",").filter(Boolean);var opacityMult=((_layer$opacity=layer.opacity)!==null&&_layer$opacity!==void 0?_layer$opacity:255)/255;newParams=_objectSpread({LAYERS:layers.join(","),OPACITIES:layers.map(function(x,i){var _opacities$i;return Math.round(((_opacities$i=opacities[i])!==null&&_opacities$i!==void 0?_opacities$i:"255")*opacityMult)}).map(Math.round).join(","),STYLES:(_ref2=(_layer$style=layer.style)!==null&&_layer$style!==void 0?_layer$style:params.STYLES)!==null&&_ref2!==void 0?_ref2:layers.map(function(){return""}).join(",")},layer.dimensionValues);queryLayers=layer.queryable&&!layer.omitFromQueryLayers?[layer.name]:[]}else{var layerNames=[];var _opacities=[];var styles=[];layer.sublayers.map(function(sublayer){LayerUtils.collectWMSSublayerParams(sublayer,layerNames,_opacities,styles,queryLayers,null,layer.visibility)});layerNames.reverse();_opacities.reverse();styles.reverse();if(layer.drawingOrder&&layer.drawingOrder.length>0){var indices=layer.drawingOrder.map(function(lyr){return layerNames.indexOf(lyr)}).filter(function(idx){return idx>=0});layerNames=indices.map(function(idx){return layerNames[idx]});_opacities=indices.map(function(idx){return _opacities[idx]});styles=indices.map(function(idx){return styles[idx]})}newParams=_objectSpread({LAYERS:layerNames.join(","),OPACITIES:_opacities.map(Math.round).join(","),STYLES:styles.join(",")},layer.dimensionValues)}if(filter.filterParams){newParams.FILTER=Object.entries(filter.filterParams).reduce(function(res,_ref3){var _ref4=_slicedToArray(_ref3,2),layername=_ref4[0],filters=_ref4[1];if(!newParams.LAYERS.split(",").includes(layername)){return res}return[].concat(_toConsumableArray(res),[layername+":"+filters.map(function(expr){return Array.isArray(expr)?LayerUtils.formatFilterExpr(expr):"AND"}).join(" ")])},[]).join(";")}if(filter.filterGeom){newParams.FILTER_GEOM=VectorLayerUtils.geoJSONGeomToWkt(filter.filterGeom)}return{params:newParams,queryLayers:queryLayers,initialOpacities:initialOpacities}},formatFilterExpr:function formatFilterExpr(expr){var _this=this;if(expr.length===3&&typeof expr[0]==="string"){var op=expr[1].toUpperCase();if(typeof expr[2]==="number"){return"\"".concat(expr[0],"\" ").concat(op," ").concat(expr[2])}else if(expr[2]===null){return"\"".concat(expr[0],"\" ").concat(op," NULL")}else if(Array.isArray(expr[2])){return"\"".concat(expr[0],"\" ").concat(op," ( ").concat(expr[2].join(" , ")," )")}else{return"\"".concat(expr[0],"\" ").concat(op," '").concat(expr[2],"'")}}else{return"( "+expr.map(function(entry){return Array.isArray(entry)?_this.formatFilterExpr(entry):entry.toUpperCase()}).join(" ")+" )"}},buildWMSLayerUrlParam:function buildWMSLayerUrlParam(layers){var layernames=[];var opacities=[];var styles=[];var visibilities=[];var queryable=[];var _iterator6=_createForOfIteratorHelper(layers),_step6;try{var _loop3=function _loop3(){var layer=_step6.value;if(layer.role===LayerRole.THEME&&!isEmpty(layer.sublayers)){LayerUtils.collectWMSSublayerParams(layer,layernames,opacities,styles,queryable,visibilities,layer.visibility)}else if(layer.role===LayerRole.USERLAYER&&layer.type==="wms"){var sublayernames=[];LayerUtils.collectWMSSublayerParams(layer,sublayernames,opacities,styles,queryable,visibilities,layer.visibility);var layerurl=layer.url;if(layer.extwmsparams){layerurl+=(layerurl.includes("?")?"&":"?")+Object.entries(layer.extwmsparams||{}).map(function(_ref5){var _ref6=_slicedToArray(_ref5,2),key=_ref6[0],value=_ref6[1];return"extwms."+key+"="+value}).join("&")}layernames.push.apply(layernames,_toConsumableArray(sublayernames.map(function(name){return"wms:"+layerurl+"#"+name})))}else if(layer.role===LayerRole.USERLAYER&&(layer.type==="wfs"||layer.type==="wmts")){layernames.push(layer.type+":"+(layer.capabilitiesUrl||layer.url)+"#"+layer.name);opacities.push(layer.opacity);styles.push(layer.style);visibilities.push(layer.visibility)}else if(layer.role===LayerRole.USERLAYER&&layer.type==="separator"){layernames.push("sep:"+layer.title);opacities.push(255);styles.push("");visibilities.push(true)}};for(_iterator6.s();!(_step6=_iterator6.n()).done;){_loop3()}}catch(err){_iterator6.e(err)}finally{_iterator6.f()}var result=layernames.map(function(layername,idx){var param=layername;if(opacities[idx]<255){param+="["+(100-Math.round(opacities[idx]/255*100))+"]"}if(styles[idx]){param+="{"+styles[idx]+"}"}if(visibilities[idx]===0||visibilities[idx]===false){param+="!"}else if(visibilities[idx]===0.5){param+="~"}return param});if(ConfigUtils.getConfigProp("urlReverseLayerOrder")){result.reverse()}return result.join(",")},splitLayerUrlParam:function splitLayerUrlParam(entry){var opacityPattern=/\[(\d+)\]/;var stylePattern=/{([^}]+)}/;var extPattern=/^(\w+):(.*)#([^#]+)$/;var id=uuidv4();var type="theme";var layerUrl=null;var opacity=255;var style="";var visibility=true;var tristate=false;if(entry.endsWith("!")){visibility=false;entry=entry.slice(0,-1)}else if(entry.endsWith("~")){visibility=false;tristate=true;entry=entry.slice(0,-1)}var m=null;if(m=entry.match(opacityPattern)){opacity=Math.round(255-parseFloat(m[1])/100*255);entry=entry.slice(0,m.index)+entry.slice(m.index+m[0].length)}if(m=entry.match(stylePattern)){style=m[1];entry=entry.slice(0,m.index)+entry.slice(m.index+m[0].length)}var name=entry;if(m=entry.match(extPattern)){type=m[1];layerUrl=m[2];name=m[3]}else if(name.startsWith("sep:")){type="separator";name=name.slice(4)}return{id:id,type:type,url:layerUrl,name:name,opacity:opacity,style:style,visibility:visibility,tristate:tristate}},pathEqualOrBelow:function pathEqualOrBelow(parent,child){return isEqual(child.slice(0,parent.length),parent)},removeLayer:function removeLayer(layers,layer,sublayerpath){// Extract foreground layers
|
|
19
19
|
var fglayers=layers.filter(function(lyr){return lyr.role!==LayerRole.BACKGROUND});// Explode layers (one entry for every single sublayer)
|
|
20
20
|
var exploded=LayerUtils.explodeLayers(fglayers);// Remove matching entries
|
|
21
|
-
exploded=exploded.filter(function(entry){return entry.layer.
|
|
21
|
+
exploded=exploded.filter(function(entry){return entry.layer.id!==layer.id||!LayerUtils.pathEqualOrBelow(sublayerpath,entry.path)});// Re-assemble layers
|
|
22
22
|
var newlayers=LayerUtils.implodeLayers(exploded);// Ensure theme layer is never removed
|
|
23
23
|
if(!newlayers.find(function(lyr){return lyr.role===LayerRole.THEME})){var oldThemeLayer=layers.find(function(lyr){return lyr.role===LayerRole.THEME});if(oldThemeLayer){newlayers.push(_objectSpread(_objectSpread({},oldThemeLayer),{},{sublayers:[]}))}}// Re-add background layers
|
|
24
24
|
return[].concat(_toConsumableArray(newlayers),_toConsumableArray(layers.filter(function(lyr){return lyr.role===LayerRole.BACKGROUND})))},insertSeparator:function insertSeparator(layers,title,beforelayerId,beforesublayerpath){// Extract foreground layers
|
|
@@ -29,7 +29,7 @@ exploded.splice(pos,0,LayerUtils.createSeparatorLayer(title)[0])}// Re-assemble
|
|
|
29
29
|
return[].concat(_toConsumableArray(LayerUtils.implodeLayers(exploded)),_toConsumableArray(layers.filter(function(layer){return layer.role===LayerRole.BACKGROUND})))},reorderLayer:function reorderLayer(layers,movelayer,sublayerpath,delta,preventSplittingGroups){// Extract foreground layers
|
|
30
30
|
var fglayers=layers.filter(function(layer){return layer.role!==LayerRole.BACKGROUND});// Explode layers (one entry for every single sublayer)
|
|
31
31
|
var exploded=LayerUtils.explodeLayers(fglayers);// Find entry to move
|
|
32
|
-
if(movelayer){var indices=exploded.reduce(function(result,entry,index){if(entry.layer.
|
|
32
|
+
if(movelayer){var indices=exploded.reduce(function(result,entry,index){if(entry.layer.id===movelayer.id&&LayerUtils.pathEqualOrBelow(sublayerpath,entry.path)){return[].concat(_toConsumableArray(result),[index])}return result},[]);if(isEmpty(indices)){return layers}indices.sort(function(a,b){return a-b});if(delta<0&&indices[0]<=0||delta>0&&indices[indices.length-1]>=exploded.length-1){return layers}if(preventSplittingGroups){// Prevent moving an entry out of a containing group
|
|
33
33
|
var idx=delta<0?indices[0]:indices[indices.length-1];var level=sublayerpath.length;if(level>exploded[idx+delta].path.length||level>0&&!isEqual(exploded[idx+delta].path.slice(0,level-1),sublayerpath.slice(0,-1))){return layers}// Avoid splitting sibling groups when reordering
|
|
34
34
|
if(exploded[idx+delta].path.length>level||!isEqual(exploded[idx+delta].path.slice(0,-1),sublayerpath.slice(0,-1))){// Find next slot
|
|
35
35
|
var siblinggrouppath=exploded[idx+delta].path.slice(0,level);siblinggrouppath[siblinggrouppath.length-1]+=delta;while(idx+delta>=0&&idx+delta<exploded.length&&(exploded[idx+delta].path.length>level||!isEqual(exploded[idx+delta].path.slice(0,level),siblinggrouppath))){delta+=delta>0?1:-1}// The above logic adds the number of items to skip to the delta which is already -1 or +1, so we need to decrease delta by one accordingly
|
|
@@ -38,20 +38,20 @@ if(delta<0){var _iterator7=_createForOfIteratorHelper(indices),_step7;try{for(_i
|
|
|
38
38
|
var newlayers=LayerUtils.implodeLayers(exploded);// Re-add background layers
|
|
39
39
|
return[].concat(_toConsumableArray(newlayers),_toConsumableArray(layers.filter(function(layer){return layer.role===LayerRole.BACKGROUND})))},explodeLayers:function explodeLayers(layers){// Return array with one entry for every single sublayer)
|
|
40
40
|
var exploded=[];var _iterator9=_createForOfIteratorHelper(layers),_step9;try{for(_iterator9.s();!(_step9=_iterator9.n()).done;){var layer=_step9.value;if(!isEmpty(layer.sublayers)){this.explodeSublayers(layer,layer,exploded)}else{var newLayer=_objectSpread({},layer);exploded.push({layer:newLayer,path:[],sublayer:newLayer})}}}catch(err){_iterator9.e(err)}finally{_iterator9.f()}return exploded},explodeSublayers:function explodeSublayers(layer,parent,exploded){var parentpath=arguments.length>3&&arguments[3]!==undefined?arguments[3]:[];for(var idx=0;idx<parent.sublayers.length;++idx){var path=[].concat(_toConsumableArray(parentpath),[idx]);if(parent.sublayers[idx].sublayers){LayerUtils.explodeSublayers(layer,parent.sublayers[idx],exploded,path)}else{// Reduced layer with one single sublayer per level, up to leaf
|
|
41
|
-
var redLayer=_objectSpread({},layer);var group=redLayer;var _iterator10=_createForOfIteratorHelper(path),_step10;try{for(_iterator10.s();!(_step10=_iterator10.n()).done;){var jdx=_step10.value;group.sublayers=[_objectSpread({},group.sublayers[jdx])];group=group.sublayers[0]}}catch(err){_iterator10.e(err)}finally{_iterator10.f()}exploded.push({layer:redLayer,path:path,sublayer:group})}}},implodeLayers:function implodeLayers(exploded){var newlayers=[]
|
|
41
|
+
var redLayer=_objectSpread(_objectSpread({},layer),{},{id:uuidv4()});var group=redLayer;var _iterator10=_createForOfIteratorHelper(path),_step10;try{for(_iterator10.s();!(_step10=_iterator10.n()).done;){var jdx=_step10.value;group.sublayers=[_objectSpread({},group.sublayers[jdx])];group=group.sublayers[0]}}catch(err){_iterator10.e(err)}finally{_iterator10.f()}exploded.push({layer:redLayer,path:path,sublayer:group})}}},implodeLayers:function implodeLayers(exploded){var newlayers=[];// Merge all possible items of an exploded layer array
|
|
42
42
|
var _iterator11=_createForOfIteratorHelper(exploded),_step11;try{for(_iterator11.s();!(_step11=_iterator11.n()).done;){var entry=_step11.value;var _layer2=entry.layer;// Attempt to merge with previous if possible
|
|
43
|
-
var target=newlayers.length>0?newlayers[newlayers.length-1]:null;var source=_layer2;if(target&&target.sublayers&&target.
|
|
43
|
+
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
|
|
44
44
|
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
|
|
45
|
-
}target.sublayers.push(source.sublayers[0])
|
|
46
|
-
}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);LayerUtils.addUUIDs(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,key,value){var roles=arguments.length>3&&arguments[3]!==undefined?arguments[3]:[LayerRole.THEME,LayerRole.USERLAYER];var _iterator16=_createForOfIteratorHelper(layers),_step16;try{for(_iterator16.s();!(_step16=_iterator16.n()).done;){var layer=_step16.value;if(roles.includes(layer.role)){var matchsublayer=LayerUtils.searchSubLayer(layer,key,value);if(matchsublayer){return{layer:layer,sublayer:matchsublayer}}}}}catch(err){_iterator16.e(err)}finally{_iterator16.f()}return null},sublayerVisible:function sublayerVisible(layer,sublayerpath){var visible=layer.visibility!==false;var sublayer=layer;var _iterator17=_createForOfIteratorHelper(sublayerpath),_step17;try{for(_iterator17.s();!(_step17=_iterator17.n()).done;){var index=_step17.value;sublayer=sublayer.sublayers[index];visible&=sublayer.visibility!==false;if(!visible){return false}}}catch(err){_iterator17.e(err)}finally{_iterator17.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 _iterator18=_createForOfIteratorHelper(layer.sublayers),_step18;try{for(_iterator18.s();!(_step18=_iterator18.n()).done;){var sublayer=_step18.value;LayerUtils.collectGroupLayers(sublayer,parentGroups.concat(layer.name),groupLayers)}}catch(err){_iterator18.e(err)}finally{_iterator18.f()}}else{var _iterator19=_createForOfIteratorHelper(parentGroups),_step19;try{for(_iterator19.s();!(_step19=_iterator19.n()).done;){var group=_step19.value;groupLayers[group]=(groupLayers[group]||[]).concat(layer.name)}}catch(err){_iterator19.e(err)}finally{_iterator19.f()}}},replaceLayerGroups:function replaceLayerGroups(layerConfigs,layer){var groupLayers={};LayerUtils.collectGroupLayers(layer,[],groupLayers);var newLayerConfigs=[];var _iterator20=_createForOfIteratorHelper(layerConfigs),_step20;try{var _loop4=function _loop4(){var layerConfig=_step20.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(_iterator20.s();!(_step20=_iterator20.n()).done;){_loop4()}}catch(err){_iterator20.e(err)}finally{_iterator20.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.uuid=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};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
|
+
}target.sublayers.push(source.sublayers[0])}else{newlayers.push(_layer2)}}// Ensure mutually exclusive groups have exactly one visible layer
|
|
46
|
+
}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
|
|
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: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
|
|
48
48
|
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
|
|
49
49
|
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 request, request external layer with full opacity
|
|
50
50
|
// and control opacity at QGIS server level (helps preserving opacity if external server does not support OPACITIES)
|
|
51
51
|
var opacities=layer.params.OPACITIES.split(",");if(opacities.length===1){params.OPACITIES.push(opacities[0]);params[identifier+":opacities"]="255"}else{params.OPACITIES.push("255");params[identifier+":opacities"]=layer.params.OPACITIES}if(layer.url.includes("?")){params[identifier+":IgnoreGetMapUrl"]="1"}Object.entries(layer.extwmsparams||{}).forEach(function(_ref7){var _ref8=_slicedToArray(_ref7,2),key=_ref8[0],value=_ref8[1];params[identifier+":"+key]=value})}}else if(qgisServerVersion===2){if(layer.type==="wms"){var names=layer.params.LAYERS.split(",");var _opacities2=layer.params.OPACITIES.split(",");for(var idx=0;idx<names.length;++idx){// Handled by qwc-print-service
|
|
52
52
|
params.LAYERS.push("wms:".concat(layer.url,"#").concat(names[idx]));params.OPACITIES.push(_opacities2[idx]);params.COLORS.push("");params.STYLES.push("")}}else if(layer.type==="wfs"){// Handled by qwc-print-service
|
|
53
|
-
params.LAYERS.push("wfs:".concat(layer.url,"#").concat(layer.name));params.OPACITIES.push(layer.opacity);params.COLORS.push(layer.color);params.STYLES.push("")}}},collectPrintParams:function collectPrintParams(layers,theme,printScale,printCrs,printExternalLayers,omitBackgroundLayer){var params={LAYERS:[],OPACITIES:[],STYLES:[],COLORS:[],FILTER:"",FILTER_GEOM:""};var counterRef=[0];var
|
|
53
|
+
params.LAYERS.push("wfs:".concat(layer.url,"#").concat(layer.name));params.OPACITIES.push(layer.opacity);params.COLORS.push(layer.color);params.STYLES.push("")}}},collectPrintParams:function collectPrintParams(layers,theme,printScale,printCrs,printExternalLayers,omitBackgroundLayer){var params={LAYERS:[],OPACITIES:[],STYLES:[],COLORS:[],FILTER:"",FILTER_GEOM:""};var counterRef=[0];var _iterator20=_createForOfIteratorHelper(layers),_step20;try{for(_iterator20.s();!(_step20=_iterator20.n()).done;){var _layer3=_step20.value;if(_layer3.role===LayerRole.THEME&&_layer3.params.LAYERS){var _layer3$params$FILTER,_layer3$params$FILTER2;params.LAYERS.push(_layer3.params.LAYERS);params.OPACITIES.push(_layer3.params.OPACITIES);params.STYLES.push(_layer3.params.STYLES);params.COLORS.push(_layer3.params.LAYERS.split(",").map(function(){return""}).join(","));params.FILTER=(_layer3$params$FILTER=_layer3.params.FILTER)!==null&&_layer3$params$FILTER!==void 0?_layer3$params$FILTER:"";params.FILTER_GEOM=(_layer3$params$FILTER2=_layer3.params.FILTER_GEOM)!==null&&_layer3$params$FILTER2!==void 0?_layer3$params$FILTER2:""}else if(printExternalLayers&&_layer3.role===LayerRole.USERLAYER&&_layer3.visibility!==false&&LayerUtils.layerScaleInRange(_layer3,printScale)){LayerUtils.addExternalLayerPrintParams(_layer3,params,printCrs,counterRef)}}}catch(err){_iterator20.e(err)}finally{_iterator20.f()}var backgroundLayer=layers.find(function(layer){return layer.role===LayerRole.BACKGROUND&&layer.visibility===true});if(backgroundLayer&&!omitBackgroundLayer){var backgroundLayerName=backgroundLayer.name;var themeBackgroundLayer=theme.backgroundLayers.find(function(entry){return entry.name===backgroundLayerName});var printBackgroundLayer=themeBackgroundLayer?themeBackgroundLayer.printLayer:null;if(printBackgroundLayer){// Use printLayer defined in qgis project
|
|
54
54
|
var printBgLayerName=printBackgroundLayer;if(Array.isArray(printBackgroundLayer)){printBgLayerName=null;for(var i=0;i<printBackgroundLayer.length;++i){printBgLayerName=printBackgroundLayer[i].name;if(printScale<=printBackgroundLayer[i].maxScale){break}}}if(printBgLayerName){var match=null;if((match=printBgLayerName.match(/^(\w+):(.*)#([^#]+)$/))&&match[1]==="wms"){if(printExternalLayers){var _backgroundLayer$opac;var layer={type:"wms",params:{LAYERS:match[3],OPACITIES:String((_backgroundLayer$opac=backgroundLayer.opacity)!==null&&_backgroundLayer$opac!==void 0?_backgroundLayer$opac:255),STYLES:""},url:match[2]};LayerUtils.addExternalLayerPrintParams(layer,params,printCrs,counterRef)}}else{var _backgroundLayer$opac2;params.LAYERS.push(printBgLayerName);params.OPACITIES.push(String((_backgroundLayer$opac2=backgroundLayer.opacity)!==null&&_backgroundLayer$opac2!==void 0?_backgroundLayer$opac2:255));params.COLORS.push("");params.STYLES.push("")}}}else if(printExternalLayers){// Inject client-side wms as external layer for print
|
|
55
55
|
var items=backgroundLayer.type==="group"?backgroundLayer.items:[backgroundLayer];items.slice(0).reverse().forEach(function(layer){if(LayerUtils.layerScaleInRange(layer,printScale)){LayerUtils.addExternalLayerPrintParams(layer,params,printCrs,counterRef)}})}}params.LAYERS=params.LAYERS.reverse().join(",");params.OPACITIES=params.OPACITIES.reverse().join(",");params.COLORS=params.COLORS.reverse().join(",");params.STYLES=params.STYLES.reverse().join(",");return params},getTimeDimensionValues:function getTimeDimensionValues(layer){var result={names:new Set,values:new Set,attributes:{}};if(layer.visibility){(layer.dimensions||[]).forEach(function(dimension){if(dimension.units==="ISO8601"&&dimension.value){result.names.add(dimension.name);dimension.value.split(/,\s+/).filter(function(x){return x}).forEach(function(x){return result.values.add(x)});result.attributes[layer.name]=[dimension.fieldName,dimension.endFieldName]}})}(layer.sublayers||[]).forEach(function(sublayer){var sublayerResult=LayerUtils.getTimeDimensionValues(sublayer);sublayerResult.names.forEach(function(x){return result.names.add(x)});sublayerResult.values.forEach(function(x){return result.values.add(x)});result.attributes=_objectSpread(_objectSpread({},result.attributes),sublayerResult.attributes)});return result},getAttribution:function getAttribution(layer,map){var showThemeAttributionOnly=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;var transformedMapBBoxes=arguments.length>3&&arguments[3]!==undefined?arguments[3]:{};if(layer.visibility===false||showThemeAttributionOnly&&layer.role!==LayerRole.THEME){return{}}var mapScale=MapUtils.computeForZoom(map.scales,map.zoom);if(!LayerUtils.layerScaleInRange(layer,mapScale)){return{}}if(layer.bbox&&layer.bbox.bounds){var layerCrs=layer.bbox.crs||map.projection;if(!transformedMapBBoxes[layerCrs]){transformedMapBBoxes[layerCrs]=CoordinatesUtils.reprojectBbox(map.bbox.bounds,map.projection,layerCrs)}var mapbbox=transformedMapBBoxes[layerCrs];var laybbox=layer.bbox.bounds;if(mapbbox[0]>laybbox[2]||mapbbox[2]<laybbox[0]||mapbbox[1]>laybbox[3]||mapbbox[3]<laybbox[1]){// Extents don't overlap
|
|
56
56
|
return{}}}var copyrights={};if(layer.sublayers){Object.assign(copyrights,layer.sublayers.reduce(function(res,sublayer){return _objectSpread(_objectSpread({},res),LayerUtils.getAttribution(sublayer,map,false,transformedMapBBoxes))},{}))}else if(layer.type==="group"&&layer.items){Object.assign(copyrights,layer.items.reduce(function(res,sublayer){return _objectSpread(_objectSpread({},res),LayerUtils.getAttribution(sublayer,map,false,transformedMapBBoxes))},{}))}if(layer.attribution&&layer.attribution.Title){var key=layer.attribution.OnlineResource||layer.attribution.Title;copyrights[key]={title:layer.attribution.OnlineResource?layer.attribution.Title:null,layers:[].concat(_toConsumableArray((copyrights[key]||{}).layers||[]),[layer])}}return copyrights},recomputeLayerBBox:function recomputeLayerBBox(layer){if(isEmpty(layer.sublayers)){return layer}var bounds=null;var newlayer=_objectSpread({},layer);newlayer.sublayers=newlayer.sublayers.map(function(sublayer){sublayer=LayerUtils.recomputeLayerBBox(sublayer);if(!bounds&&sublayer.bbox&&sublayer.bbox.bounds){bounds=CoordinatesUtils.reprojectBbox(sublayer.bbox.bounds,sublayer.bbox.crs,"EPSG:4326")}else if(bounds&&sublayer.bbox&&sublayer.bbox.bounds){var sublayerbounds=CoordinatesUtils.reprojectBbox(sublayer.bbox.bounds,sublayer.bbox.crs,"EPSG:4326");bounds=[Math.min(bounds[0],sublayerbounds[0]),Math.min(bounds[1],sublayerbounds[1]),Math.max(bounds[2],sublayerbounds[2]),Math.max(bounds[3],sublayerbounds[3])]}return sublayer});if(bounds){newlayer.bbox={bounds:bounds,crs:"EPSG:4326"}}return newlayer},propagateLayerProperty:function propagateLayerProperty(newlayer,property,value){var path=arguments.length>3&&arguments[3]!==undefined?arguments[3]:null;Object.assign(newlayer,_defineProperty({},property,value));// Don't propagate visibility for mutually exclusive groups
|
|
57
|
-
if(newlayer.sublayers&&!(property==="visibility"&&newlayer.mutuallyExclusive)){newlayer.sublayers=newlayer.sublayers.map(function(sublayer,idx){if(path===null||!isEmpty(path)&&path[0]===idx){var newsublayer=_objectSpread({},sublayer);LayerUtils.propagateLayerProperty(newsublayer,property,value,path?path.slice(1):null);return newsublayer}else{return sublayer}})}},getLayerRefreshInterval:function getLayerRefreshInterval(layer){var _layer$refreshInterva;var refreshInterval=(_layer$refreshInterva=layer.refreshInterval)!==null&&_layer$refreshInterva!==void 0?_layer$refreshInterva:0;(layer.sublayers||[]).forEach(function(sublayer){var sublayerRefreshInterval=LayerUtils.getLayerRefreshInterval(sublayer);if(sublayerRefreshInterval>0){refreshInterval=refreshInterval>0?Math.min(refreshInterval,sublayerRefreshInterval):sublayerRefreshInterval}});return refreshInterval}};export default LayerUtils;
|
|
57
|
+
if(newlayer.sublayers&&!(property==="visibility"&&newlayer.mutuallyExclusive)){newlayer.sublayers=newlayer.sublayers.map(function(sublayer,idx){if(path===null||!isEmpty(path)&&path[0]===idx){var newsublayer=_objectSpread({},sublayer);LayerUtils.propagateLayerProperty(newsublayer,property,value,path?path.slice(1):null);return newsublayer}else{return sublayer}})}},getLayerRefreshInterval:function getLayerRefreshInterval(layer){var _layer$refreshInterva;var refreshInterval=(_layer$refreshInterva=layer.refreshInterval)!==null&&_layer$refreshInterva!==void 0?_layer$refreshInterva:0;(layer.sublayers||[]).forEach(function(sublayer){var sublayerRefreshInterval=LayerUtils.getLayerRefreshInterval(sublayer);if(sublayerRefreshInterval>0){refreshInterval=refreshInterval>0?Math.min(refreshInterval,sublayerRefreshInterval):sublayerRefreshInterval}});return refreshInterval},collectFeatureReports:function collectFeatureReports(layers){if(!ConfigUtils.getConfigProp("documentServiceUrl")){return{}}var reports={};var _collectLayerReports=function collectLayerReports(toplayer,layer){if(layer.sublayers){var _iterator21=_createForOfIteratorHelper(layer.sublayers),_step21;try{for(_iterator21.s();!(_step21=_iterator21.n()).done;){var sublayer=_step21.value;reports=_objectSpread(_objectSpread({},reports),_collectLayerReports(toplayer,sublayer))}}catch(err){_iterator21.e(err)}finally{_iterator21.f()}}else if(layer.featureReport){var key=toplayer.url+"#"+layer.name;if(Array.isArray(layer.featureReport)){reports[key]=layer.featureReport.map(function(report){return{title:report.title,template:report.template}})}else{reports[key]=[{title:layer.title,template:layer.featureReport}]}}return reports};layers.forEach(function(layer){if(layer.role===LayerRole.THEME||layer.role===LayerRole.USERLAYER){_collectLayerReports(layer,layer)}});return reports}};export default LayerUtils;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
function _toConsumableArray(r){return _arrayWithoutHoles(r)||_iterableToArray(r)||_unsupportedIterableToArray(r)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread 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 _iterableToArray(r){if("undefined"!=typeof Symbol&&null!=r[Symbol.iterator]||null!=r["@@iterator"])return Array.from(r)}function _arrayWithoutHoles(r){if(Array.isArray(r))return _arrayLikeToArray(r)}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 _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)}// Generated automatically by nearley, version 2.20.1
|
|
2
2
|
// http://github.com/Hardmath123/nearley
|
|
3
|
-
(function(){function id(x){return x[0]}if(typeof window==="undefined"){window=global}function asFilter(d){return window.qwc2ExpressionParserContext.asFilter&&["string","object"].includes(_typeof(d[0]))}function generateUUID(){var d=new Date().getTime();var d2=typeof performance!=="undefined"&&performance.now&&performance.now()*1000||0;var result="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(c){var r=Math.random()*16;if(d>0){r=(d+r)%16|0;d=Math.floor(d/16)}else{r=(d2+r)%16|0;d2=Math.floor(d2/16)}return(c==="x"?r:r&3|8).toString(16)});return"{"+result+"}"}var grammar={Lexer:undefined,ParserRules:[{"name":"dqstring$ebnf$1","symbols":[]},{"name":"dqstring$ebnf$1","symbols":["dqstring$ebnf$1","dstrchar"],"postprocess":function arrpush(d){return d[0].concat([d[1]])}},{"name":"dqstring","symbols":[{"literal":"\""},"dqstring$ebnf$1",{"literal":"\""}],"postprocess":function postprocess(d){return d[1].join("")}},{"name":"sqstring$ebnf$1","symbols":[]},{"name":"sqstring$ebnf$1","symbols":["sqstring$ebnf$1","sstrchar"],"postprocess":function arrpush(d){return d[0].concat([d[1]])}},{"name":"sqstring","symbols":[{"literal":"'"},"sqstring$ebnf$1",{"literal":"'"}],"postprocess":function postprocess(d){return d[1].join("")}},{"name":"btstring$ebnf$1","symbols":[]},{"name":"btstring$ebnf$1","symbols":["btstring$ebnf$1",/[^`]/],"postprocess":function arrpush(d){return d[0].concat([d[1]])}},{"name":"btstring","symbols":[{"literal":"`"},"btstring$ebnf$1",{"literal":"`"}],"postprocess":function postprocess(d){return d[1].join("")}},{"name":"dstrchar","symbols":[/[^\\"\n]/],"postprocess":id},{"name":"dstrchar","symbols":[{"literal":"\\"},"strescape"],"postprocess":function postprocess(d){return JSON.parse("\""+d.join("")+"\"")}},{"name":"sstrchar","symbols":[/[^\\'\n]/],"postprocess":id},{"name":"sstrchar","symbols":[{"literal":"\\"},"strescape"],"postprocess":function postprocess(d){return JSON.parse("\""+d.join("")+"\"")}},{"name":"sstrchar$string$1","symbols":[{"literal":"\\"},{"literal":"'"}],"postprocess":function joiner(d){return d.join("")}},{"name":"sstrchar","symbols":["sstrchar$string$1"],"postprocess":function postprocess(d){return"'"}},{"name":"strescape","symbols":[/["\\/bfnrt]/],"postprocess":id},{"name":"strescape","symbols":[{"literal":"u"},/[a-fA-F0-9]/,/[a-fA-F0-9]/,/[a-fA-F0-9]/,/[a-fA-F0-9]/],"postprocess":function postprocess(d){return d.join("")}},{"name":"main","symbols":["_","P0","_"],"postprocess":function postprocess(d){return d[1]}},{"name":"P0$subexpression$1","symbols":[/[oO]/,/[rR]/],"postprocess":function postprocess(d){return d.join("")}},{"name":"P0","symbols":["P0","_","P0$subexpression$1","_","P1"],"postprocess":function postprocess(d){return asFilter(d)?[d[0],d[2],d[4]]:d[0]||d[4]}},{"name":"P0","symbols":["P1"],"postprocess":id},{"name":"P1$subexpression$1","symbols":[/[aA]/,/[nN]/,/[dD]/],"postprocess":function postprocess(d){return d.join("")}},{"name":"P1","symbols":["P1","_","P1$subexpression$1","_","P2"],"postprocess":function postprocess(d){return asFilter(d)?[d[0],d[2],d[4]]:d[0]&&d[4]}},{"name":"P1","symbols":["P2"],"postprocess":id},{"name":"P2","symbols":["P2","_",{"literal":"<"},"_","P3"],"postprocess":function postprocess(d){return asFilter(d)?[d[0],d[2],d[4]]:d[0]<d[4]}},{"name":"P2","symbols":["P2","_",{"literal":">"},"_","P3"],"postprocess":function postprocess(d){return asFilter(d)?[d[0],d[2],d[4]]:d[0]>d[4]}},{"name":"P2$string$1","symbols":[{"literal":">"},{"literal":"="}],"postprocess":function joiner(d){return d.join("")}},{"name":"P2","symbols":["P2","_","P2$string$1","_","P3"],"postprocess":function postprocess(d){return asFilter(d)?[d[0],d[2],d[4]]:d[0]>=d[4]}},{"name":"P2$string$2","symbols":[{"literal":"<"},{"literal":"="}],"postprocess":function joiner(d){return d.join("")}},{"name":"P2","symbols":["P2","_","P2$string$2","_","P3"],"postprocess":function postprocess(d){return asFilter(d)?[d[0],d[2],d[4]]:d[0]<=d[4]}},{"name":"P2","symbols":["P2","_",{"literal":"="},"_","P3"],"postprocess":function postprocess(d){return asFilter(d)?[d[0],d[2],d[4]]:d[0]==d[4]}},{"name":"P2$string$3","symbols":[{"literal":"<"},{"literal":">"}],"postprocess":function joiner(d){return d.join("")}},{"name":"P2","symbols":["P2","_","P2$string$3","_","P3"],"postprocess":function postprocess(d){return asFilter(d)?[d[0],"!=",d[4]]:d[0]!=d[4]}},{"name":"P2","symbols":["P3"],"postprocess":id},{"name":"P3","symbols":["P3","_",{"literal":"+"},"_","P4"],"postprocess":function postprocess(d){return d[0]+d[4]}},{"name":"P3","symbols":["P3","_",{"literal":"-"},"_","P4"],"postprocess":function postprocess(d){return d[0]-d[4]}},{"name":"P3","symbols":["P4"],"postprocess":id},{"name":"P4","symbols":["P4","_",{"literal":"*"},"_","P5"],"postprocess":function postprocess(d){return d[0]*d[4]}},{"name":"P4","symbols":["P4","_",{"literal":"/"},"_","P5"],"postprocess":function postprocess(d){return d[0]/d[4]}},{"name":"P4","symbols":["P5"],"postprocess":id},{"name":"P5","symbols":["P6","_",{"literal":"^"},"_","P5"],"postprocess":function postprocess(d){return Math.pow(d[0],d[4])}},{"name":"P5$subexpression$1","symbols":[/[iI]/,/[sS]/],"postprocess":function postprocess(d){return d.join("")}},{"name":"P5","symbols":["P5","__","P5$subexpression$1","__","P6"],"postprocess":function postprocess(d){return asFilter(d)?[d[0],"=",d[4]]:d[0]===d[4]}},{"name":"P5$subexpression$2","symbols":[/[iI]/,/[sS]/],"postprocess":function postprocess(d){return d.join("")}},{"name":"P5$subexpression$3","symbols":[/[nN]/,/[oO]/,/[tT]/],"postprocess":function postprocess(d){return d.join("")}},{"name":"P5","symbols":["P5","__","P5$subexpression$2","__","P5$subexpression$3","__","P6"],"postprocess":function postprocess(d){return asFilter(d)?[d[0],"!=",d[6]]:d[0]!==d[6]}},{"name":"P5","symbols":["P6"],"postprocess":id},{"name":"P6","symbols":[{"literal":"-"},"_","P6"],"postprocess":function postprocess(d){return-d[2]}},{"name":"P6","symbols":[{"literal":"+"},"_","P6"],"postprocess":function postprocess(d){return d[2]}},{"name":"P6","symbols":[{"literal":"("},"_","P0","_",{"literal":")"}],"postprocess":function postprocess(d){return d[2]}},{"name":"P6","symbols":["N"],"postprocess":id},{"name":"N","symbols":["float"],"postprocess":id},{"name":"N","symbols":["sqstring"],"postprocess":id},{"name":"N","symbols":["dqstring"],"postprocess":function postprocess(d){var _window$qwc2Expressio,_window$qwc2Expressio2;return asFilter(d)?d[0]:(_window$qwc2Expressio=(_window$qwc2Expressio2=window.qwc2ExpressionParserContext.feature.properties)===null||_window$qwc2Expressio2===void 0?void 0:_window$qwc2Expressio2[d[0]])!==null&&_window$qwc2Expressio!==void 0?_window$qwc2Expressio:null}},{"name":"N$string$1","symbols":[{"literal":"u"},{"literal":"u"},{"literal":"i"},{"literal":"d"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N","symbols":["N$string$1","_",{"literal":"("},"_",{"literal":")"}],"postprocess":function postprocess(d){return generateUUID()}},{"name":"N$string$2","symbols":[{"literal":"n"},{"literal":"o"},{"literal":"w"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N","symbols":["N$string$2","_",{"literal":"("},"_",{"literal":")"}],"postprocess":function postprocess(d){return new Date().toISOString()}},{"name":"N$string$3","symbols":[{"literal":"s"},{"literal":"i"},{"literal":"n"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N","symbols":["N$string$3","_",{"literal":"("},"_","P0","_",{"literal":")"}],"postprocess":function postprocess(d){return Math.sin(d[4])}},{"name":"N$string$4","symbols":[{"literal":"c"},{"literal":"o"},{"literal":"s"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N","symbols":["N$string$4","_",{"literal":"("},"_","P0","_",{"literal":")"}],"postprocess":function postprocess(d){return Math.cos(d[4])}},{"name":"N$string$5","symbols":[{"literal":"t"},{"literal":"a"},{"literal":"n"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N","symbols":["N$string$5","_",{"literal":"("},"_","P0","_",{"literal":")"}],"postprocess":function postprocess(d){return Math.tan(d[4])}},{"name":"N$string$6","symbols":[{"literal":"a"},{"literal":"s"},{"literal":"i"},{"literal":"n"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N","symbols":["N$string$6","_",{"literal":"("},"_","P0","_",{"literal":")"}],"postprocess":function postprocess(d){return Math.asin(d[4])}},{"name":"N$string$7","symbols":[{"literal":"a"},{"literal":"c"},{"literal":"o"},{"literal":"s"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N","symbols":["N$string$7","_",{"literal":"("},"_","P0","_",{"literal":")"}],"postprocess":function postprocess(d){return Math.acos(d[4])}},{"name":"N$string$8","symbols":[{"literal":"a"},{"literal":"t"},{"literal":"a"},{"literal":"n"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N","symbols":["N$string$8","_",{"literal":"("},"_","P0","_",{"literal":")"}],"postprocess":function postprocess(d){return Math.atan(d[4])}},{"name":"N$string$9","symbols":[{"literal":"s"},{"literal":"q"},{"literal":"r"},{"literal":"t"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N","symbols":["N$string$9","_",{"literal":"("},"_","P0","_",{"literal":")"}],"postprocess":function postprocess(d){return Math.sqrt(d[4])}},{"name":"N$string$10","symbols":[{"literal":"l"},{"literal":"n"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N","symbols":["N$string$10","_",{"literal":"("},"_","P0","_",{"literal":")"}],"postprocess":function postprocess(d){return Math.log(d[4])}},{"name":"N$string$11","symbols":[{"literal":"a"},{"literal":"t"},{"literal":"a"},{"literal":"n"},{"literal":"2"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N","symbols":["N$string$11","_",{"literal":"("},"_","P0","_",{"literal":","},"_","P0","_",{"literal":")"}],"postprocess":function postprocess(d){return Math.atan2(d[4],d[8])}},{"name":"N$string$12","symbols":[{"literal":"p"},{"literal":"o"},{"literal":"w"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N","symbols":["N$string$12","_",{"literal":"("},"_","P0","_",{"literal":","},"_","P0","_",{"literal":")"}],"postprocess":function postprocess(d){return Math.pow(d[4],d[8])}},{"name":"N$string$13","symbols":[{"literal":"C"},{"literal":"A"},{"literal":"S"},{"literal":"E"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N$string$14","symbols":[{"literal":"E"},{"literal":"L"},{"literal":"S"},{"literal":"E"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N$string$15","symbols":[{"literal":"E"},{"literal":"N"},{"literal":"D"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N","symbols":["N$string$13","_","when_args","_","N$string$14","_","P0","_","N$string$15"],"postprocess":function postprocess(d){return d[2]!==undefined?d[2]:d[6]}},{"name":"N$string$16","symbols":[{"literal":"c"},{"literal":"o"},{"literal":"a"},{"literal":"l"},{"literal":"e"},{"literal":"s"},{"literal":"c"},{"literal":"e"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N","symbols":["N$string$16","_",{"literal":"("},"_","var_args","_",{"literal":")"}],"postprocess":function postprocess(d){var _d$4$find;return(_d$4$find=d[4].find(function(x){return x!==null}))!==null&&_d$4$find!==void 0?_d$4$find:null}},{"name":"N$string$17","symbols":[{"literal":"i"},{"literal":"f"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N","symbols":["N$string$17","_",{"literal":"("},"_","P0","_",{"literal":","},"_","P0","_",{"literal":","},"_","P0","_",{"literal":")"}],"postprocess":function postprocess(d){return d[4]?d[8]:d[12]}},{"name":"N$string$18","symbols":[{"literal":"n"},{"literal":"u"},{"literal":"l"},{"literal":"l"},{"literal":"i"},{"literal":"f"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N","symbols":["N$string$18","_",{"literal":"("},"_","P0","_",{"literal":","},"_","P0","_",{"literal":")"}],"postprocess":function postprocess(d){return d[4]===d[8]?null:d[4]}},{"name":"N$string$19","symbols":[{"literal":"r"},{"literal":"e"},{"literal":"g"},{"literal":"e"},{"literal":"x"},{"literal":"p"},{"literal":"_"},{"literal":"m"},{"literal":"a"},{"literal":"t"},{"literal":"c"},{"literal":"h"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N","symbols":["N$string$19","_",{"literal":"("},"_","P0","_",{"literal":","},"_","P0","_",{"literal":")"}],"postprocess":function postprocess(d){return d[4].search(new RegExp(d[8]))+1}},{"name":"N$string$20","symbols":[{"literal":"a"},{"literal":"t"},{"literal":"t"},{"literal":"r"},{"literal":"i"},{"literal":"b"},{"literal":"u"},{"literal":"t"},{"literal":"e"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N","symbols":["N$string$20","_",{"literal":"("},"_","P0","_",{"literal":")"}],"postprocess":function postprocess(d){var _window$qwc2Expressio3,_window$qwc2Expressio4;return(_window$qwc2Expressio3=(_window$qwc2Expressio4=window.qwc2ExpressionParserContext.feature.properties)===null||_window$qwc2Expressio4===void 0?void 0:_window$qwc2Expressio4[d[4]])!==null&&_window$qwc2Expressio3!==void 0?_window$qwc2Expressio3:null}},{"name":"N$string$21","symbols":[{"literal":"c"},{"literal":"u"},{"literal":"r"},{"literal":"r"},{"literal":"e"},{"literal":"n"},{"literal":"t"},{"literal":"_"},{"literal":"v"},{"literal":"a"},{"literal":"l"},{"literal":"u"},{"literal":"e"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N","symbols":["N$string$21","_",{"literal":"("},"_","P0","_",{"literal":")"}],"postprocess":function postprocess(d){var _window$qwc2Expressio5,_window$qwc2Expressio6;return(_window$qwc2Expressio5=(_window$qwc2Expressio6=window.qwc2ExpressionParserContext.feature.properties)===null||_window$qwc2Expressio6===void 0?void 0:_window$qwc2Expressio6[d[4]])!==null&&_window$qwc2Expressio5!==void 0?_window$qwc2Expressio5:null}},{"name":"N$string$22","symbols":[{"literal":"a"},{"literal":"t"},{"literal":"t"},{"literal":"r"},{"literal":"i"},{"literal":"b"},{"literal":"u"},{"literal":"t"},{"literal":"e"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N","symbols":["N$string$22","_",{"literal":"("},"_","P0","_",{"literal":","},"_","P0","_",{"literal":")"}],"postprocess":function postprocess(d){var _d$4$properties$d$,_d$;return(_d$4$properties$d$=(_d$=d[4])===null||_d$===void 0||(_d$=_d$.properties)===null||_d$===void 0?void 0:_d$[d[8]])!==null&&_d$4$properties$d$!==void 0?_d$4$properties$d$:null}},{"name":"N$string$23","symbols":[{"literal":"g"},{"literal":"e"},{"literal":"t"},{"literal":"_"},{"literal":"f"},{"literal":"e"},{"literal":"a"},{"literal":"t"},{"literal":"u"},{"literal":"r"},{"literal":"e"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N","symbols":["N$string$23","_",{"literal":"("},"_","P0","_",{"literal":","},"_","P0","_",{"literal":","},"_","P0","_",{"literal":")"}],"postprocess":function postprocess(d){return window.qwc2ExpressionParserContext.getFeature(d[4],d[8],d[12])}},{"name":"N$string$24","symbols":[{"literal":"g"},{"literal":"e"},{"literal":"t"},{"literal":"_"},{"literal":"f"},{"literal":"e"},{"literal":"a"},{"literal":"t"},{"literal":"u"},{"literal":"r"},{"literal":"e"},{"literal":"_"},{"literal":"b"},{"literal":"y"},{"literal":"_"},{"literal":"i"},{"literal":"d"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N","symbols":["N$string$24","_",{"literal":"("},"_","P0","_",{"literal":","},"_","P0","_",{"literal":")"}],"postprocess":function postprocess(d){return window.qwc2ExpressionParserContext.getFeature(d[4],"id",d[8])}},{"name":"N$subexpression$1","symbols":[/[pP]/,/[iI]/],"postprocess":function postprocess(d){return d.join("")}},{"name":"N","symbols":["N$subexpression$1"],"postprocess":function postprocess(d){return Math.PI}},{"name":"N$subexpression$2","symbols":[/[eE]/],"postprocess":function postprocess(d){return d.join("")}},{"name":"N","symbols":["N$subexpression$2"],"postprocess":function postprocess(d){return Math.E}},{"name":"N$subexpression$3","symbols":[/[nN]/,/[uU]/,/[lL]/,/[lL]/],"postprocess":function postprocess(d){return d.join("")}},{"name":"N","symbols":["N$subexpression$3"],"postprocess":function postprocess(d){return null}},{"name":"N$subexpression$4","symbols":[/[fF]/,/[aA]/,/[lL]/,/[sS]/,/[eE]/],"postprocess":function postprocess(d){return d.join("")}},{"name":"N","symbols":["N$subexpression$4"],"postprocess":function postprocess(d){return false}},{"name":"N$subexpression$5","symbols":[/[tT]/,/[rR]/,/[uU]/,/[eE]/],"postprocess":function postprocess(d){return d.join("")}},{"name":"N","symbols":["N$subexpression$5"],"postprocess":function postprocess(d){return true}},{"name":"var_args","symbols":["P0"],"postprocess":function postprocess(d){return[d[0]]}},{"name":"var_args","symbols":["var_args","_",{"literal":","},"_","P0"],"postprocess":function postprocess(d){return[].concat(_toConsumableArray(d[0]),[d[4]])}},{"name":"when_args$string$1","symbols":[{"literal":"W"},{"literal":"H"},{"literal":"E"},{"literal":"N"}],"postprocess":function joiner(d){return d.join("")}},{"name":"when_args$string$2","symbols":[{"literal":"T"},{"literal":"H"},{"literal":"E"},{"literal":"N"}],"postprocess":function joiner(d){return d.join("")}},{"name":"when_args","symbols":["when_args$string$1","_","P0","_","when_args$string$2","_","P0"],"postprocess":function postprocess(d){return d[2]?d[6]:undefined}},{"name":"when_args$string$3","symbols":[{"literal":"W"},{"literal":"H"},{"literal":"E"},{"literal":"N"}],"postprocess":function joiner(d){return d.join("")}},{"name":"when_args$string$4","symbols":[{"literal":"T"},{"literal":"H"},{"literal":"E"},{"literal":"N"}],"postprocess":function joiner(d){return d.join("")}},{"name":"when_args","symbols":["when_args","_","when_args$string$3","_","P0","_","when_args$string$4","_","P0"],"postprocess":function postprocess(d){return d[0]!==undefined?d[0]:d[4]?d[8]:undefined}},{"name":"float","symbols":["int",{"literal":"."},"int"],"postprocess":function postprocess(d){return parseFloat(d[0]+d[1]+d[2])}},{"name":"float","symbols":["int"],"postprocess":function postprocess(d){return parseInt(d[0])}},{"name":"int$ebnf$1","symbols":[/[0-9]/]},{"name":"int$ebnf$1","symbols":["int$ebnf$1",/[0-9]/],"postprocess":function arrpush(d){return d[0].concat([d[1]])}},{"name":"int","symbols":["int$ebnf$1"],"postprocess":function postprocess(d){return d[0].join("")}},{"name":"_$ebnf$1","symbols":[]},{"name":"_$ebnf$1","symbols":["_$ebnf$1",/[\s]/],"postprocess":function arrpush(d){return d[0].concat([d[1]])}},{"name":"_","symbols":["_$ebnf$1"],"postprocess":function postprocess(d){return null}},{"name":"__$ebnf$1","symbols":[/[\s]/]},{"name":"__$ebnf$1","symbols":["__$ebnf$1",/[\s]/],"postprocess":function arrpush(d){return d[0].concat([d[1]])}},{"name":"__","symbols":["__$ebnf$1"],"postprocess":function postprocess(d){return null}}],ParserStart:"main"};if(typeof module!=="undefined"&&typeof module.exports!=="undefined"){module.exports=grammar}else{window.grammar=grammar}})();
|
|
3
|
+
(function(){function id(x){return x[0]}if(typeof window==="undefined"){window=global}function asFilter(d){return window.qwc2ExpressionParserContext.asFilter&&["string","object"].includes(_typeof(d[0]))}function generateUUID(){var d=new Date().getTime();var d2=typeof performance!=="undefined"&&performance.now&&performance.now()*1000||0;var result="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(c){var r=Math.random()*16;if(d>0){r=(d+r)%16|0;d=Math.floor(d/16)}else{r=(d2+r)%16|0;d2=Math.floor(d2/16)}return(c==="x"?r:r&3|8).toString(16)});return"{"+result+"}"}var grammar={Lexer:undefined,ParserRules:[{"name":"dqstring$ebnf$1","symbols":[]},{"name":"dqstring$ebnf$1","symbols":["dqstring$ebnf$1","dstrchar"],"postprocess":function arrpush(d){return d[0].concat([d[1]])}},{"name":"dqstring","symbols":[{"literal":"\""},"dqstring$ebnf$1",{"literal":"\""}],"postprocess":function postprocess(d){return d[1].join("")}},{"name":"sqstring$ebnf$1","symbols":[]},{"name":"sqstring$ebnf$1","symbols":["sqstring$ebnf$1","sstrchar"],"postprocess":function arrpush(d){return d[0].concat([d[1]])}},{"name":"sqstring","symbols":[{"literal":"'"},"sqstring$ebnf$1",{"literal":"'"}],"postprocess":function postprocess(d){return d[1].join("")}},{"name":"btstring$ebnf$1","symbols":[]},{"name":"btstring$ebnf$1","symbols":["btstring$ebnf$1",/[^`]/],"postprocess":function arrpush(d){return d[0].concat([d[1]])}},{"name":"btstring","symbols":[{"literal":"`"},"btstring$ebnf$1",{"literal":"`"}],"postprocess":function postprocess(d){return d[1].join("")}},{"name":"dstrchar","symbols":[/[^\\"\n]/],"postprocess":id},{"name":"dstrchar","symbols":[{"literal":"\\"},"strescape"],"postprocess":function postprocess(d){return JSON.parse("\""+d.join("")+"\"")}},{"name":"sstrchar","symbols":[/[^\\'\n]/],"postprocess":id},{"name":"sstrchar","symbols":[{"literal":"\\"},"strescape"],"postprocess":function postprocess(d){return JSON.parse("\""+d.join("")+"\"")}},{"name":"sstrchar$string$1","symbols":[{"literal":"\\"},{"literal":"'"}],"postprocess":function joiner(d){return d.join("")}},{"name":"sstrchar","symbols":["sstrchar$string$1"],"postprocess":function postprocess(d){return"'"}},{"name":"strescape","symbols":[/["\\/bfnrt]/],"postprocess":id},{"name":"strescape","symbols":[{"literal":"u"},/[a-fA-F0-9]/,/[a-fA-F0-9]/,/[a-fA-F0-9]/,/[a-fA-F0-9]/],"postprocess":function postprocess(d){return d.join("")}},{"name":"main","symbols":["_","P0","_"],"postprocess":function postprocess(d){return d[1]}},{"name":"P0$subexpression$1","symbols":[/[oO]/,/[rR]/],"postprocess":function postprocess(d){return d.join("")}},{"name":"P0","symbols":["P0","_","P0$subexpression$1","_","P1"],"postprocess":function postprocess(d){return asFilter(d)?[d[0],d[2],d[4]]:d[0]||d[4]}},{"name":"P0","symbols":["P1"],"postprocess":id},{"name":"P1$subexpression$1","symbols":[/[aA]/,/[nN]/,/[dD]/],"postprocess":function postprocess(d){return d.join("")}},{"name":"P1","symbols":["P1","_","P1$subexpression$1","_","P2"],"postprocess":function postprocess(d){return asFilter(d)?[d[0],d[2],d[4]]:d[0]&&d[4]}},{"name":"P1","symbols":["P2"],"postprocess":id},{"name":"P2","symbols":["P2","_",{"literal":"<"},"_","P3"],"postprocess":function postprocess(d){return asFilter(d)?[d[0],d[2],d[4]]:d[0]<d[4]}},{"name":"P2","symbols":["P2","_",{"literal":">"},"_","P3"],"postprocess":function postprocess(d){return asFilter(d)?[d[0],d[2],d[4]]:d[0]>d[4]}},{"name":"P2$string$1","symbols":[{"literal":">"},{"literal":"="}],"postprocess":function joiner(d){return d.join("")}},{"name":"P2","symbols":["P2","_","P2$string$1","_","P3"],"postprocess":function postprocess(d){return asFilter(d)?[d[0],d[2],d[4]]:d[0]>=d[4]}},{"name":"P2$string$2","symbols":[{"literal":"<"},{"literal":"="}],"postprocess":function joiner(d){return d.join("")}},{"name":"P2","symbols":["P2","_","P2$string$2","_","P3"],"postprocess":function postprocess(d){return asFilter(d)?[d[0],d[2],d[4]]:d[0]<=d[4]}},{"name":"P2","symbols":["P2","_",{"literal":"="},"_","P3"],"postprocess":function postprocess(d){return asFilter(d)?[d[0],d[2],d[4]]:d[0]==d[4]}},{"name":"P2$string$3","symbols":[{"literal":"<"},{"literal":">"}],"postprocess":function joiner(d){return d.join("")}},{"name":"P2","symbols":["P2","_","P2$string$3","_","P3"],"postprocess":function postprocess(d){return asFilter(d)?[d[0],"!=",d[4]]:d[0]!=d[4]}},{"name":"P2","symbols":["P3"],"postprocess":id},{"name":"P3","symbols":["P3","_",{"literal":"+"},"_","P4"],"postprocess":function postprocess(d){return d[0]+d[4]}},{"name":"P3","symbols":["P3","_",{"literal":"-"},"_","P4"],"postprocess":function postprocess(d){return d[0]-d[4]}},{"name":"P3","symbols":["P4"],"postprocess":id},{"name":"P4","symbols":["P4","_",{"literal":"*"},"_","P5"],"postprocess":function postprocess(d){return d[0]*d[4]}},{"name":"P4","symbols":["P4","_",{"literal":"/"},"_","P5"],"postprocess":function postprocess(d){return d[0]/d[4]}},{"name":"P4","symbols":["P5"],"postprocess":id},{"name":"P5","symbols":["P6","_",{"literal":"^"},"_","P5"],"postprocess":function postprocess(d){return Math.pow(d[0],d[4])}},{"name":"P5$subexpression$1","symbols":[/[iI]/,/[sS]/],"postprocess":function postprocess(d){return d.join("")}},{"name":"P5","symbols":["P5","__","P5$subexpression$1","__","P6"],"postprocess":function postprocess(d){return asFilter(d)?[d[0],"=",d[4]]:d[0]===d[4]}},{"name":"P5$subexpression$2","symbols":[/[iI]/,/[sS]/],"postprocess":function postprocess(d){return d.join("")}},{"name":"P5$subexpression$3","symbols":[/[nN]/,/[oO]/,/[tT]/],"postprocess":function postprocess(d){return d.join("")}},{"name":"P5","symbols":["P5","__","P5$subexpression$2","__","P5$subexpression$3","__","P6"],"postprocess":function postprocess(d){return asFilter(d)?[d[0],"!=",d[6]]:d[0]!==d[6]}},{"name":"P5","symbols":["P6"],"postprocess":id},{"name":"P6","symbols":[{"literal":"-"},"_","P6"],"postprocess":function postprocess(d){return-d[2]}},{"name":"P6","symbols":[{"literal":"+"},"_","P6"],"postprocess":function postprocess(d){return d[2]}},{"name":"P6","symbols":[{"literal":"("},"_","P0","_",{"literal":")"}],"postprocess":function postprocess(d){return d[2]}},{"name":"P6","symbols":["N"],"postprocess":id},{"name":"N","symbols":["float"],"postprocess":id},{"name":"N","symbols":["sqstring"],"postprocess":id},{"name":"N","symbols":["dqstring"],"postprocess":function postprocess(d){var _window$qwc2Expressio,_window$qwc2Expressio2;return asFilter(d)?d[0]:(_window$qwc2Expressio=(_window$qwc2Expressio2=window.qwc2ExpressionParserContext.feature.properties)===null||_window$qwc2Expressio2===void 0?void 0:_window$qwc2Expressio2[d[0]])!==null&&_window$qwc2Expressio!==void 0?_window$qwc2Expressio:null}},{"name":"N$string$1","symbols":[{"literal":"u"},{"literal":"u"},{"literal":"i"},{"literal":"d"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N","symbols":["N$string$1","_",{"literal":"("},"_",{"literal":")"}],"postprocess":function postprocess(d){return generateUUID()}},{"name":"N$string$2","symbols":[{"literal":"n"},{"literal":"o"},{"literal":"w"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N","symbols":["N$string$2","_",{"literal":"("},"_",{"literal":")"}],"postprocess":function postprocess(d){return new Date().toISOString()}},{"name":"N$string$3","symbols":[{"literal":"s"},{"literal":"i"},{"literal":"n"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N","symbols":["N$string$3","_",{"literal":"("},"_","P0","_",{"literal":")"}],"postprocess":function postprocess(d){return Math.sin(d[4])}},{"name":"N$string$4","symbols":[{"literal":"c"},{"literal":"o"},{"literal":"s"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N","symbols":["N$string$4","_",{"literal":"("},"_","P0","_",{"literal":")"}],"postprocess":function postprocess(d){return Math.cos(d[4])}},{"name":"N$string$5","symbols":[{"literal":"t"},{"literal":"a"},{"literal":"n"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N","symbols":["N$string$5","_",{"literal":"("},"_","P0","_",{"literal":")"}],"postprocess":function postprocess(d){return Math.tan(d[4])}},{"name":"N$string$6","symbols":[{"literal":"a"},{"literal":"s"},{"literal":"i"},{"literal":"n"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N","symbols":["N$string$6","_",{"literal":"("},"_","P0","_",{"literal":")"}],"postprocess":function postprocess(d){return Math.asin(d[4])}},{"name":"N$string$7","symbols":[{"literal":"a"},{"literal":"c"},{"literal":"o"},{"literal":"s"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N","symbols":["N$string$7","_",{"literal":"("},"_","P0","_",{"literal":")"}],"postprocess":function postprocess(d){return Math.acos(d[4])}},{"name":"N$string$8","symbols":[{"literal":"a"},{"literal":"t"},{"literal":"a"},{"literal":"n"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N","symbols":["N$string$8","_",{"literal":"("},"_","P0","_",{"literal":")"}],"postprocess":function postprocess(d){return Math.atan(d[4])}},{"name":"N$string$9","symbols":[{"literal":"s"},{"literal":"q"},{"literal":"r"},{"literal":"t"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N","symbols":["N$string$9","_",{"literal":"("},"_","P0","_",{"literal":")"}],"postprocess":function postprocess(d){return Math.sqrt(d[4])}},{"name":"N$string$10","symbols":[{"literal":"l"},{"literal":"n"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N","symbols":["N$string$10","_",{"literal":"("},"_","P0","_",{"literal":")"}],"postprocess":function postprocess(d){return Math.log(d[4])}},{"name":"N$string$11","symbols":[{"literal":"a"},{"literal":"t"},{"literal":"a"},{"literal":"n"},{"literal":"2"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N","symbols":["N$string$11","_",{"literal":"("},"_","P0","_",{"literal":","},"_","P0","_",{"literal":")"}],"postprocess":function postprocess(d){return Math.atan2(d[4],d[8])}},{"name":"N$string$12","symbols":[{"literal":"p"},{"literal":"o"},{"literal":"w"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N","symbols":["N$string$12","_",{"literal":"("},"_","P0","_",{"literal":","},"_","P0","_",{"literal":")"}],"postprocess":function postprocess(d){return Math.pow(d[4],d[8])}},{"name":"N$string$13","symbols":[{"literal":"C"},{"literal":"A"},{"literal":"S"},{"literal":"E"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N$string$14","symbols":[{"literal":"E"},{"literal":"L"},{"literal":"S"},{"literal":"E"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N$string$15","symbols":[{"literal":"E"},{"literal":"N"},{"literal":"D"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N","symbols":["N$string$13","_","when_args","_","N$string$14","_","P0","_","N$string$15"],"postprocess":function postprocess(d){return d[2]!==undefined?d[2]:d[6]}},{"name":"N$string$16","symbols":[{"literal":"c"},{"literal":"o"},{"literal":"a"},{"literal":"l"},{"literal":"e"},{"literal":"s"},{"literal":"c"},{"literal":"e"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N","symbols":["N$string$16","_",{"literal":"("},"_","var_args","_",{"literal":")"}],"postprocess":function postprocess(d){var _d$4$find;return(_d$4$find=d[4].find(function(x){return x!==null}))!==null&&_d$4$find!==void 0?_d$4$find:null}},{"name":"N$string$17","symbols":[{"literal":"i"},{"literal":"f"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N","symbols":["N$string$17","_",{"literal":"("},"_","P0","_",{"literal":","},"_","P0","_",{"literal":","},"_","P0","_",{"literal":")"}],"postprocess":function postprocess(d){return d[4]?d[8]:d[12]}},{"name":"N$string$18","symbols":[{"literal":"n"},{"literal":"u"},{"literal":"l"},{"literal":"l"},{"literal":"i"},{"literal":"f"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N","symbols":["N$string$18","_",{"literal":"("},"_","P0","_",{"literal":","},"_","P0","_",{"literal":")"}],"postprocess":function postprocess(d){return d[4]===d[8]?null:d[4]}},{"name":"N$string$19","symbols":[{"literal":"r"},{"literal":"e"},{"literal":"g"},{"literal":"e"},{"literal":"x"},{"literal":"p"},{"literal":"_"},{"literal":"m"},{"literal":"a"},{"literal":"t"},{"literal":"c"},{"literal":"h"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N","symbols":["N$string$19","_",{"literal":"("},"_","P0","_",{"literal":","},"_","P0","_",{"literal":")"}],"postprocess":function postprocess(d){return d[4].search(new RegExp(d[8]))+1}},{"name":"N$string$20","symbols":[{"literal":"a"},{"literal":"t"},{"literal":"t"},{"literal":"r"},{"literal":"i"},{"literal":"b"},{"literal":"u"},{"literal":"t"},{"literal":"e"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N","symbols":["N$string$20","_",{"literal":"("},"_","P0","_",{"literal":")"}],"postprocess":function postprocess(d){var _window$qwc2Expressio3,_window$qwc2Expressio4;return(_window$qwc2Expressio3=(_window$qwc2Expressio4=window.qwc2ExpressionParserContext.feature.properties)===null||_window$qwc2Expressio4===void 0?void 0:_window$qwc2Expressio4[d[4]])!==null&&_window$qwc2Expressio3!==void 0?_window$qwc2Expressio3:null}},{"name":"N$string$21","symbols":[{"literal":"c"},{"literal":"u"},{"literal":"r"},{"literal":"r"},{"literal":"e"},{"literal":"n"},{"literal":"t"},{"literal":"_"},{"literal":"v"},{"literal":"a"},{"literal":"l"},{"literal":"u"},{"literal":"e"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N","symbols":["N$string$21","_",{"literal":"("},"_","P0","_",{"literal":")"}],"postprocess":function postprocess(d){var _window$qwc2Expressio5,_window$qwc2Expressio6;return(_window$qwc2Expressio5=(_window$qwc2Expressio6=window.qwc2ExpressionParserContext.feature.properties)===null||_window$qwc2Expressio6===void 0?void 0:_window$qwc2Expressio6[d[4]])!==null&&_window$qwc2Expressio5!==void 0?_window$qwc2Expressio5:null}},{"name":"N$string$22","symbols":[{"literal":"a"},{"literal":"t"},{"literal":"t"},{"literal":"r"},{"literal":"i"},{"literal":"b"},{"literal":"u"},{"literal":"t"},{"literal":"e"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N","symbols":["N$string$22","_",{"literal":"("},"_","P0","_",{"literal":","},"_","P0","_",{"literal":")"}],"postprocess":function postprocess(d){var _d$4$properties$d$,_d$;return(_d$4$properties$d$=(_d$=d[4])===null||_d$===void 0||(_d$=_d$.properties)===null||_d$===void 0?void 0:_d$[d[8]])!==null&&_d$4$properties$d$!==void 0?_d$4$properties$d$:null}},{"name":"N$string$23","symbols":[{"literal":"g"},{"literal":"e"},{"literal":"t"},{"literal":"_"},{"literal":"f"},{"literal":"e"},{"literal":"a"},{"literal":"t"},{"literal":"u"},{"literal":"r"},{"literal":"e"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N","symbols":["N$string$23","_",{"literal":"("},"_","P0","_",{"literal":","},"_","P0","_",{"literal":","},"_","P0","_",{"literal":")"}],"postprocess":function postprocess(d){return window.qwc2ExpressionParserContext.getFeature(d[4],d[8],d[12])}},{"name":"N$string$24","symbols":[{"literal":"g"},{"literal":"e"},{"literal":"t"},{"literal":"_"},{"literal":"f"},{"literal":"e"},{"literal":"a"},{"literal":"t"},{"literal":"u"},{"literal":"r"},{"literal":"e"},{"literal":"_"},{"literal":"b"},{"literal":"y"},{"literal":"_"},{"literal":"i"},{"literal":"d"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N","symbols":["N$string$24","_",{"literal":"("},"_","P0","_",{"literal":","},"_","P0","_",{"literal":")"}],"postprocess":function postprocess(d){return window.qwc2ExpressionParserContext.getFeature(d[4],"id",d[8])}},{"name":"N$subexpression$1","symbols":[/[pP]/,/[iI]/],"postprocess":function postprocess(d){return d.join("")}},{"name":"N","symbols":["N$subexpression$1"],"postprocess":function postprocess(d){return Math.PI}},{"name":"N$subexpression$2","symbols":[/[eE]/],"postprocess":function postprocess(d){return d.join("")}},{"name":"N","symbols":["N$subexpression$2"],"postprocess":function postprocess(d){return Math.E}},{"name":"N$subexpression$3","symbols":[/[nN]/,/[uU]/,/[lL]/,/[lL]/],"postprocess":function postprocess(d){return d.join("")}},{"name":"N","symbols":["N$subexpression$3"],"postprocess":function postprocess(d){return null}},{"name":"N$subexpression$4","symbols":[/[fF]/,/[aA]/,/[lL]/,/[sS]/,/[eE]/],"postprocess":function postprocess(d){return d.join("")}},{"name":"N","symbols":["N$subexpression$4"],"postprocess":function postprocess(d){return false}},{"name":"N$subexpression$5","symbols":[/[tT]/,/[rR]/,/[uU]/,/[eE]/],"postprocess":function postprocess(d){return d.join("")}},{"name":"N","symbols":["N$subexpression$5"],"postprocess":function postprocess(d){return true}},{"name":"N$string$25","symbols":[{"literal":"@"},{"literal":"f"},{"literal":"e"},{"literal":"a"},{"literal":"t"},{"literal":"u"},{"literal":"r"},{"literal":"e"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N","symbols":["N$string$25"],"postprocess":function postprocess(d){return window.qwc2ExpressionParserContext.feature}},{"name":"N$string$26","symbols":[{"literal":"@"},{"literal":"g"},{"literal":"e"},{"literal":"o"},{"literal":"m"},{"literal":"e"},{"literal":"t"},{"literal":"r"},{"literal":"y"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N","symbols":["N$string$26"],"postprocess":function postprocess(d){var _window$qwc2Expressio7;return(_window$qwc2Expressio7=window.qwc2ExpressionParserContext.feature)===null||_window$qwc2Expressio7===void 0?void 0:_window$qwc2Expressio7.geometry}},{"name":"N$string$27","symbols":[{"literal":"@"},{"literal":"i"},{"literal":"d"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N","symbols":["N$string$27"],"postprocess":function postprocess(d){var _window$qwc2Expressio8;return(_window$qwc2Expressio8=window.qwc2ExpressionParserContext.feature)===null||_window$qwc2Expressio8===void 0?void 0:_window$qwc2Expressio8.id}},{"name":"N$string$28","symbols":[{"literal":"@"},{"literal":"l"},{"literal":"a"},{"literal":"y"},{"literal":"e"},{"literal":"r"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N","symbols":["N$string$28"],"postprocess":function postprocess(d){return window.qwc2ExpressionParserContext.layer}},{"name":"N$string$29","symbols":[{"literal":"@"},{"literal":"l"},{"literal":"a"},{"literal":"y"},{"literal":"e"},{"literal":"r"},{"literal":"_"},{"literal":"n"},{"literal":"a"},{"literal":"m"},{"literal":"e"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N","symbols":["N$string$29"],"postprocess":function postprocess(d){return window.qwc2ExpressionParserContext.layer}},{"name":"N$string$30","symbols":[{"literal":"@"},{"literal":"l"},{"literal":"a"},{"literal":"y"},{"literal":"e"},{"literal":"r"},{"literal":"_"},{"literal":"c"},{"literal":"r"},{"literal":"s"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N","symbols":["N$string$30"],"postprocess":function postprocess(d){return window.qwc2ExpressionParserContext.projection}},{"name":"N$string$31","symbols":[{"literal":"@"},{"literal":"p"},{"literal":"r"},{"literal":"o"},{"literal":"j"},{"literal":"e"},{"literal":"c"},{"literal":"t"},{"literal":"_"},{"literal":"b"},{"literal":"a"},{"literal":"s"},{"literal":"e"},{"literal":"n"},{"literal":"a"},{"literal":"m"},{"literal":"e"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N","symbols":["N$string$31"],"postprocess":function postprocess(d){return window.qwc2ExpressionParserContext.mapPrefix}},{"name":"N$string$32","symbols":[{"literal":"@"},{"literal":"p"},{"literal":"r"},{"literal":"o"},{"literal":"j"},{"literal":"e"},{"literal":"c"},{"literal":"t"},{"literal":"_"},{"literal":"c"},{"literal":"r"},{"literal":"s"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N","symbols":["N$string$32"],"postprocess":function postprocess(d){return window.qwc2ExpressionParserContext.projection}},{"name":"N$string$33","symbols":[{"literal":"@"},{"literal":"q"},{"literal":"g"},{"literal":"i"},{"literal":"s"},{"literal":"_"},{"literal":"l"},{"literal":"o"},{"literal":"c"},{"literal":"a"},{"literal":"l"},{"literal":"e"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N","symbols":["N$string$33"],"postprocess":function postprocess(d){return window.qwc2ExpressionParserContext.lang}},{"name":"N$string$34","symbols":[{"literal":"@"},{"literal":"u"},{"literal":"s"},{"literal":"e"},{"literal":"r"},{"literal":"_"},{"literal":"a"},{"literal":"c"},{"literal":"c"},{"literal":"o"},{"literal":"u"},{"literal":"n"},{"literal":"t"},{"literal":"_"},{"literal":"n"},{"literal":"a"},{"literal":"m"},{"literal":"e"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N","symbols":["N$string$34"],"postprocess":function postprocess(d){return window.qwc2ExpressionParserContext.username}},{"name":"N$string$35","symbols":[{"literal":"@"},{"literal":"c"},{"literal":"l"},{"literal":"o"},{"literal":"u"},{"literal":"d"},{"literal":"_"},{"literal":"u"},{"literal":"s"},{"literal":"e"},{"literal":"r"},{"literal":"n"},{"literal":"a"},{"literal":"m"},{"literal":"e"}],"postprocess":function joiner(d){return d.join("")}},{"name":"N","symbols":["N$string$35"],"postprocess":function postprocess(d){return window.qwc2ExpressionParserContext.username}},{"name":"var_args","symbols":["P0"],"postprocess":function postprocess(d){return[d[0]]}},{"name":"var_args","symbols":["var_args","_",{"literal":","},"_","P0"],"postprocess":function postprocess(d){return[].concat(_toConsumableArray(d[0]),[d[4]])}},{"name":"when_args$string$1","symbols":[{"literal":"W"},{"literal":"H"},{"literal":"E"},{"literal":"N"}],"postprocess":function joiner(d){return d.join("")}},{"name":"when_args$string$2","symbols":[{"literal":"T"},{"literal":"H"},{"literal":"E"},{"literal":"N"}],"postprocess":function joiner(d){return d.join("")}},{"name":"when_args","symbols":["when_args$string$1","_","P0","_","when_args$string$2","_","P0"],"postprocess":function postprocess(d){return d[2]?d[6]:undefined}},{"name":"when_args$string$3","symbols":[{"literal":"W"},{"literal":"H"},{"literal":"E"},{"literal":"N"}],"postprocess":function joiner(d){return d.join("")}},{"name":"when_args$string$4","symbols":[{"literal":"T"},{"literal":"H"},{"literal":"E"},{"literal":"N"}],"postprocess":function joiner(d){return d.join("")}},{"name":"when_args","symbols":["when_args","_","when_args$string$3","_","P0","_","when_args$string$4","_","P0"],"postprocess":function postprocess(d){return d[0]!==undefined?d[0]:d[4]?d[8]:undefined}},{"name":"float","symbols":["int",{"literal":"."},"int"],"postprocess":function postprocess(d){return parseFloat(d[0]+d[1]+d[2])}},{"name":"float","symbols":["int"],"postprocess":function postprocess(d){return parseInt(d[0])}},{"name":"int$ebnf$1","symbols":[/[0-9]/]},{"name":"int$ebnf$1","symbols":["int$ebnf$1",/[0-9]/],"postprocess":function arrpush(d){return d[0].concat([d[1]])}},{"name":"int","symbols":["int$ebnf$1"],"postprocess":function postprocess(d){return d[0].join("")}},{"name":"_$ebnf$1","symbols":[]},{"name":"_$ebnf$1","symbols":["_$ebnf$1",/[\s]/],"postprocess":function arrpush(d){return d[0].concat([d[1]])}},{"name":"_","symbols":["_$ebnf$1"],"postprocess":function postprocess(d){return null}},{"name":"__$ebnf$1","symbols":[/[\s]/]},{"name":"__$ebnf$1","symbols":["__$ebnf$1",/[\s]/],"postprocess":function arrpush(d){return d[0].concat([d[1]])}},{"name":"__","symbols":["__$ebnf$1"],"postprocess":function postprocess(d){return null}}],ParserStart:"main"};if(typeof module!=="undefined"&&typeof module.exports!=="undefined"){module.exports=grammar}else{window.grammar=grammar}})();
|
|
@@ -67,7 +67,7 @@ P6 -> "-" _ P6 {% function(d) { return -d[2]; } %}
|
|
|
67
67
|
| "(" _ P0 _ ")" {% function(d) { return d[2]; } %}
|
|
68
68
|
| N {% id %}
|
|
69
69
|
|
|
70
|
-
# A number or a function of a number
|
|
70
|
+
# A number or a function of a number, a variable or a constant
|
|
71
71
|
N -> float {% id %}
|
|
72
72
|
| sqstring {% id %}
|
|
73
73
|
| dqstring {% function(d) { return asFilter(d) ? d[0] : window.qwc2ExpressionParserContext.feature.properties?.[d[0]] ?? null; } %}
|
|
@@ -98,6 +98,17 @@ N -> float {% id %}
|
|
|
98
98
|
| "NULL"i {% function(d) { return null; } %}
|
|
99
99
|
| "FALSE"i {% function(d) { return false; } %}
|
|
100
100
|
| "TRUE"i {% function(d) { return true; } %}
|
|
101
|
+
| "@feature" {% function(d) { return window.qwc2ExpressionParserContext.feature; } %}
|
|
102
|
+
| "@geometry" {% function(d) { return window.qwc2ExpressionParserContext.feature?.geometry; } %}
|
|
103
|
+
| "@id" {% function(d) { return window.qwc2ExpressionParserContext.feature?.id; } %}
|
|
104
|
+
| "@layer" {% function(d) { return window.qwc2ExpressionParserContext.layer; } %}
|
|
105
|
+
| "@layer_name" {% function(d) { return window.qwc2ExpressionParserContext.layer; } %}
|
|
106
|
+
| "@layer_crs" {% function(d) { return window.qwc2ExpressionParserContext.projection; } %}
|
|
107
|
+
| "@project_basename" {% function(d) { return window.qwc2ExpressionParserContext.mapPrefix; } %}
|
|
108
|
+
| "@project_crs" {% function(d) { return window.qwc2ExpressionParserContext.projection; } %}
|
|
109
|
+
| "@qgis_locale" {% function(d) { return window.qwc2ExpressionParserContext.lang; } %}
|
|
110
|
+
| "@user_account_name" {% function(d) { return window.qwc2ExpressionParserContext.username; } %}
|
|
111
|
+
| "@cloud_username" {% function(d) { return window.qwc2ExpressionParserContext.username; } %}
|
|
101
112
|
|
|
102
113
|
var_args -> P0 {% function(d) { return [d[0]]; } %}
|
|
103
114
|
var_args -> var_args _ "," _ P0 {% function(d) { return [...d[0], d[4]]; } %}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* This is just a scratch file for testing the expression grammar */var nearley=require("nearley");var grammar=require("./grammar.js");global.qwc2ExpressionParserContext={feature:{"type":"Feature","properties":{"listnr":1,"grpcode":2,"numcode":3}},getFeature:function getFeature(layerName,attr,value){return{"type":"Feature","id":210000,"geometry":null,"properties":{"id":2,"label":"ABLAGERUNGEN","code":"DBC","listnr":21,"grpcode":0,"numcode":0,"q1":null,"q1suff":null,"q2":null,"q2suff":null,"qsr":null,"z1":null,"z2":null,"l1":2,"l2":null,"lastlevel":null,"level":1,"tooltip":"Ablagerungen an der Schachtsohle oder an Auftritten.","id2":210000},"__version__":1711648978811}},asFilter:false};// Create a Parser object from our grammar.
|
|
1
|
+
/* This is just a scratch file for testing the expression grammar */var nearley=require("nearley");var grammar=require("./grammar.js");global.qwc2ExpressionParserContext={feature:{"type":"Feature","properties":{"listnr":1,"grpcode":2,"numcode":3}},getFeature:function getFeature(layerName,attr,value){return{"type":"Feature","id":210000,"geometry":null,"properties":{"id":2,"label":"ABLAGERUNGEN","code":"DBC","listnr":21,"grpcode":0,"numcode":0,"q1":null,"q1suff":null,"q2":null,"q2suff":null,"qsr":null,"z1":null,"z2":null,"l1":2,"l2":null,"lastlevel":null,"level":1,"tooltip":"Ablagerungen an der Schachtsohle oder an Auftritten.","id2":210000},"__version__":1711648978811}},asFilter:false,username:"testuser",layer:"layername"};// Create a Parser object from our grammar.
|
|
2
2
|
var parser=new nearley.Parser(nearley.Grammar.fromCompiled(grammar));// Parse something!
|
|
3
3
|
// parser.feed("attribute('txt') is not null and attribute('txt') <> ''")
|
|
4
4
|
// parser.feed("attribute(get_feature('foo', 'asd', 3), 'asd')");
|
|
@@ -10,4 +10,5 @@ var parser=new nearley.Parser(nearley.Grammar.fromCompiled(grammar));// Parse so
|
|
|
10
10
|
// parser.feed('"listnr" =current_value(\'listnr\') and "grpcode" >0 and "numcode" = 0')
|
|
11
11
|
// parser.feed(' "listnr" =current_value(\'listnr\') and "grpcode" = current_value(\'grpcode\') and "numcode" >0 and "foo" = ((1<2) = true)')
|
|
12
12
|
// parser.feed("if(3>2, 3, 4)")
|
|
13
|
-
parser.feed("nullif('a', 'b')")
|
|
13
|
+
// parser.feed("nullif('a', 'b')")
|
|
14
|
+
parser.feed("@user_account_name");console.log(JSON.stringify(parser.results));
|