qwc2 2025.6.4 → 2025.6.10
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/locale.js +6 -3
- package/actions/map.js +1 -1
- package/actions/theme.js +2 -2
- package/components/QtDesignerForm.js +2 -2
- package/components/SearchBox.js +3 -3
- package/package.json +1 -1
- package/plugins/TourGuide.js +1 -1
- package/reducers/map.js +1 -1
- package/scripts/themesConfig.js +2 -2
- package/scripts/themesConfig.py +6 -2
- package/static/translations/de-CH.json +1 -1
- package/static/translations/de-DE.json +1 -1
- package/utils/MeasureUtils.js +1 -1
- package/utils/SearchProviders.js +1 -1
package/actions/locale.js
CHANGED
|
@@ -5,6 +5,9 @@
|
|
|
5
5
|
*
|
|
6
6
|
* This source code is licensed under the BSD-style license found in the
|
|
7
7
|
* LICENSE file in the root directory of this source tree.
|
|
8
|
-
*/import ReducerIndex from"../reducers/index";import localeReducer from"../reducers/locale";ReducerIndex.register("locale",localeReducer);import axios from"axios";import deepmerge from"deepmerge";import ConfigUtils from"../utils/ConfigUtils";import{UrlParams}from"../utils/PermaLinkUtils";export var CHANGE_LOCALE="CHANGE_LOCALE";export var ADD_TRANSLATIONS="ADD_TRANSLATIONS";export function loadLocale(defaultLangData){var defaultLang=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"";return function(dispatch){var lang=defaultLang||UrlParams.getParam("lang")||
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
*/import ReducerIndex from"../reducers/index";import localeReducer from"../reducers/locale";ReducerIndex.register("locale",localeReducer);import axios from"axios";import deepmerge from"deepmerge";import ConfigUtils from"../utils/ConfigUtils";import{UrlParams}from"../utils/PermaLinkUtils";export var CHANGE_LOCALE="CHANGE_LOCALE";export var ADD_TRANSLATIONS="ADD_TRANSLATIONS";export function loadLocale(defaultLangData){var defaultLang=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"";return function(dispatch){var lang=defaultLang||UrlParams.getParam("lang")||navigator.language;var loadLang=null;var availableLanguages=process.env.AvailableLanguages;if(availableLanguages.indexOf(lang)!==-1){// Exact match: lang-REGION
|
|
9
|
+
loadLang=lang}else if(availableLanguages.indexOf(lang.slice(0,2))!==-1){// Exact match: lang
|
|
10
|
+
loadLang=lang.slice(0,2)}else{// Try match lang-<OTHER_REGION>
|
|
11
|
+
loadLang=availableLanguages.find(function(lc){return lc.slice(0,2)===lang.slice(0,2)})}var config={headers:{"Content-Type":"application/json"},data:{}};var translationsPath=ConfigUtils.getTranslationsPath();var dispatchChangeLocale=function dispatchChangeLocale(locale,messages){if(ConfigUtils.getConfigProp("loadTranslationOverrides")){axios.get(translationsPath+"/"+locale+"_overrides.json",config).then(function(response){var overrideMessages=response.data.messages;dispatch({type:CHANGE_LOCALE,locale:locale,messages:deepmerge(messages,overrideMessages),fallbackMessages:defaultLangData.messages})})["catch"](function(){dispatch({type:CHANGE_LOCALE,locale:locale,messages:messages,fallbackMessages:defaultLangData.messages})})}else{dispatch({type:CHANGE_LOCALE,locale:locale,messages:messages,fallbackMessages:defaultLangData.messages})}};if(!loadLang){// eslint-disable-next-line
|
|
12
|
+
console.warn("No suitable translations available for "+lang+", defaulting to "+defaultLangData.locale);dispatchChangeLocale(defaultLangData.locale,defaultLangData.messages)}else{axios.get(translationsPath+"/"+loadLang+".json",config).then(function(response){dispatchChangeLocale(loadLang,response.data.messages)})["catch"](function(){// eslint-disable-next-line
|
|
13
|
+
console.warn("Failed to load translations for "+loadLang+", defaulting to "+defaultLangData.locale);dispatchChangeLocale(defaultLangData.locale,defaultLangData.messages)})}}}export function addTranslations(translations){return{type:ADD_TRANSLATIONS,translations:translations}}
|
package/actions/map.js
CHANGED
|
@@ -12,4 +12,4 @@
|
|
|
12
12
|
* {center: [x, y], zoom: ..., crs: ...}
|
|
13
13
|
* or
|
|
14
14
|
* {bounds: [xmin, ymin, xmax, ymax], crs: ...}
|
|
15
|
-
*/export function configureMap(crs,scales,view){return{type:CONFIGURE_MAP,crs:crs,scales:scales,view:view}}export function clickOnMap(clickData){return{type:CLICK_ON_MAP,click:clickData}}export function changeZoomLevel(zoomLvl,mapStateSource){return{type:CHANGE_ZOOM_LVL,zoom:zoomLvl,mapStateSource:mapStateSource}}export function panTo(pos,crs){return{type:PAN_TO,pos:pos,crs:crs}}export function zoomToExtent(extent,crs){var zoomOffset=arguments.length>2&&arguments[2]!==undefined?arguments[2]:0;return{type:ZOOM_TO_EXTENT,extent:extent,crs:crs,zoomOffset:zoomOffset}}export function zoomToPoint(pos,zoom,crs){return{type:ZOOM_TO_POINT,pos:pos,zoom:zoom,crs:crs}}export function changeRotation(rotation){return{type:CHANGE_ROTATION,rotation:rotation}}export function toggleMapTips(active){return{type:TOGGLE_MAPTIPS,active:active}}export function setSnappingConfig(enabled,active){return{type:SET_SNAPPING_CONFIG,enabled:enabled,active:active}}export function setDisplayCrs(displayCrs){return{type:SET_DISPLAY_CRS,displayCrs:displayCrs}}
|
|
15
|
+
*/export function configureMap(crs,scales,view,defaultdisplaycrs){return{type:CONFIGURE_MAP,crs:crs,scales:scales,view:view,defaultdisplaycrs:defaultdisplaycrs}}export function clickOnMap(clickData){return{type:CLICK_ON_MAP,click:clickData}}export function changeZoomLevel(zoomLvl,mapStateSource){return{type:CHANGE_ZOOM_LVL,zoom:zoomLvl,mapStateSource:mapStateSource}}export function panTo(pos,crs){return{type:PAN_TO,pos:pos,crs:crs}}export function zoomToExtent(extent,crs){var zoomOffset=arguments.length>2&&arguments[2]!==undefined?arguments[2]:0;return{type:ZOOM_TO_EXTENT,extent:extent,crs:crs,zoomOffset:zoomOffset}}export function zoomToPoint(pos,zoom,crs){return{type:ZOOM_TO_POINT,pos:pos,zoom:zoom,crs:crs}}export function changeRotation(rotation){return{type:CHANGE_ROTATION,rotation:rotation}}export function toggleMapTips(active){return{type:TOGGLE_MAPTIPS,active:active}}export function setSnappingConfig(enabled,active){return{type:SET_SNAPPING_CONFIG,enabled:enabled,active:active}}export function setDisplayCrs(displayCrs){return{type:SET_DISPLAY_CRS,displayCrs:displayCrs}}
|
package/actions/theme.js
CHANGED
|
@@ -13,11 +13,11 @@ if(layer){layer.sublayers=null}dispatch(replacePlaceholderLayer(id,layer))})}}di
|
|
|
13
13
|
if(preserve&&visibleBgLayer===null&&ConfigUtils.getConfigProp("preserveBackgroundOnThemeSwitch",theme)===true){var curBgLayer=curLayers.find(function(layer){return layer.role===LayerRole.BACKGROUND&&layer.visibility===true});visibleBgLayer=curBgLayer?curBgLayer.name:null}// Remove old layers
|
|
14
14
|
var insertPos=0;if(preserve&&ConfigUtils.getConfigProp("preserveNonThemeLayersOnThemeSwitch",theme)===true){// Compute insertion position of new theme layers by counting how many non-theme layers remain
|
|
15
15
|
insertPos=curLayers.filter(function(layer){return layer.role===LayerRole.USERLAYER}).length;var removeLayers=curLayers.filter(function(layer){return layer.role!==LayerRole.USERLAYER}).map(function(layer){return layer.id});var _iterator3=_createForOfIteratorHelper(removeLayers),_step3;try{for(_iterator3.s();!(_step3=_iterator3.n()).done;){var layerId=_step3.value;dispatch(removeLayer(layerId))}}catch(err){_iterator3.e(err)}finally{_iterator3.f()}}else{dispatch(removeAllLayers())}dispatch(setSwipe(null));if(!theme){dispatch({type:SWITCHING_THEME,switching:false});return}// Inherit defaults if necessary
|
|
16
|
-
theme=_objectSpread(_objectSpread({},theme),{},{mapCrs:mapCrs,version:theme.version||themes.defaultWMSVersion||"1.3.0",scales:theme.scales||themes.defaultScales||MapUtils.getGoogleMercatorScales(0,21),printScales:theme.printScales||themes.defaultPrintScales||undefined,printResolutions:theme.printResolutions||themes.defaultPrintResolutions||undefined,printGrid:theme.printGrid||themes.defaultPrintGrid||undefined,searchProviders:theme.searchProviders||themes.defaultSearchProviders||undefined,backgroundLayers:theme.backgroundLayers||themes.defaultBackgroundLayers||[]});// Preserve extent if desired and possible
|
|
16
|
+
theme=_objectSpread(_objectSpread({},theme),{},{mapCrs:mapCrs,version:theme.version||themes.defaultWMSVersion||"1.3.0",scales:theme.scales||themes.defaultScales||MapUtils.getGoogleMercatorScales(0,21),printScales:theme.printScales||themes.defaultPrintScales||undefined,printResolutions:theme.printResolutions||themes.defaultPrintResolutions||undefined,printGrid:theme.printGrid||themes.defaultPrintGrid||undefined,searchProviders:theme.searchProviders||themes.defaultSearchProviders||undefined,backgroundLayers:theme.backgroundLayers||themes.defaultBackgroundLayers||[],defaultDisplayCrs:theme.defaultDisplayCrs||themes.defaultDisplayCrs||undefined});// Preserve extent if desired and possible
|
|
17
17
|
if(getState().display.view3dMode!==View3DMode.FULLSCREEN){var curCrs=getState().map.projection;if(preserve&&!initialView&&curCrs===theme.mapCrs){var curBounds=getState().map.bbox.bounds;if(ConfigUtils.getConfigProp("preserveExtentOnThemeSwitch",theme)===true){// If theme bbox (b1) includes current bbox (b2), keep current extent
|
|
18
18
|
var b1=CoordinatesUtils.reprojectBbox(theme.bbox.bounds,theme.bbox.crs,curCrs);var b2=curBounds;if(b2[0]>=b1[0]&&b2[1]>=b1[1]&&b2[2]<=b1[2]&&b2[3]<=b1[3]){// theme bbox (b1) includes current bbox (b2)
|
|
19
19
|
initialView={bounds:curBounds,crs:curCrs}}}else if(ConfigUtils.getConfigProp("preserveExtentOnThemeSwitch",theme)==="force"){initialView={bounds:curBounds,crs:curCrs}}}}// Reconfigure map
|
|
20
|
-
dispatch(configureMap(theme.mapCrs,theme.scales,initialView||theme.initialBbox));var layerConfigs=layerParams?layerParams.map(function(param){return LayerUtils.splitLayerUrlParam(param)}):null;if(layerConfigs){layerConfigs=LayerUtils.replaceLayerGroups(layerConfigs,theme)}// Restore missing theme layers
|
|
20
|
+
dispatch(configureMap(theme.mapCrs,theme.scales,initialView||theme.initialBbox,theme.defaultDisplayCrs));var layerConfigs=layerParams?layerParams.map(function(param){return LayerUtils.splitLayerUrlParam(param)}):null;if(layerConfigs){layerConfigs=LayerUtils.replaceLayerGroups(layerConfigs,theme)}// Restore missing theme layers
|
|
21
21
|
var missingThemeLayers=null;if(layerConfigs){var layerNames=LayerUtils.getSublayerNames(theme);missingThemeLayers=layerConfigs.reduce(function(missing,layerConfig){if(layerConfig.type==="theme"&&!layerNames.includes(layerConfig.name)){return _objectSpread(_objectSpread({},missing),{},_defineProperty({},layerConfig.name,layerConfig))}else{return missing}},{})}if(themeLayerRestorer&&!isEmpty(missingThemeLayers)){themeLayerRestorer(Object.keys(missingThemeLayers),theme,function(newLayers,newLayerNames){var newTheme=LayerUtils.mergeSubLayers(theme,{sublayers:newLayers});if(newLayerNames){layerConfigs=layerConfigs.reduce(function(res,layerConfig){if(layerConfig.name in newLayerNames){// If layerConfig exactly matches a restored theme layer, return unchanged config
|
|
22
22
|
if(newLayerNames[layerConfig.name].length===1&&newLayerNames[layerConfig.name][0]===layerConfig.name){return[].concat(_toConsumableArray(res),[layerConfig])}// Else, in case multiple theme layers were returned (i.e. layerConfig.name specifies a group)
|
|
23
23
|
// generate layerConfigs based on the group layerConfig, preserving the opacity/visibility/etc of the sublayer
|
|
@@ -16,9 +16,9 @@ preprocessor: function(formData, feature, callback)
|
|
|
16
16
|
*/export function registerFormPreprocessor(editLayerId,preprocessor){FormPreprocessors[editLayerId]=preprocessor}export function removeFormPreprocessor(editLayerId){delete FormPreprocessors[editLayerId]}var hFitWidgets=["QLabel","QCheckBox","QRadioButton","Line","QDateTimeEdit","QDateEdit","QTimeEdit"];var vFitWidgets=["QLabel","QCheckBox","QRadioButton","Line","QDateTimeEdit","QDateEdit","QTimeEdit","QPushButton","QComboBox","QLineEdit","QSpinBox","QDoubleSpinBox","QSlider"];var QtDesignerForm=/*#__PURE__*/function(_React$Component){function QtDesignerForm(props){var _this;_classCallCheck(this,QtDesignerForm);_this=_callSuper(this,QtDesignerForm,[props]);_defineProperty(_this,"state",{reevaluate:0});_defineProperty(_this,"renderLayout",function(layout,feature,dataset,updateField){var nametransform=arguments.length>4&&arguments[4]!==undefined?arguments[4]:function(name){return name};var visible=arguments.length>5&&arguments[5]!==undefined?arguments[5]:true;var containerClass="";var itemStyle=function itemStyle(){return{}};var sortKey=function sortKey(item,idx){return idx};var containerStyle={};if(!layout){return null}else if(layout["class"]==="QGridLayout"||layout["class"]==="QFormLayout"){containerClass="qt-designer-layout-grid";containerStyle={gridTemplateColumns:_this.computeLayoutColumns(layout.item).join(" "),gridTemplateRows:_this.computeLayoutRows(layout.item).join(" ")};itemStyle=function itemStyle(item){return{gridArea:1+parseInt(item.row,10)+"/"+(1+parseInt(item.column,10))+"/ span "+parseInt(item.rowspan||1,10)+"/ span "+parseInt(item.colspan||1,10)}};sortKey=function sortKey(item){return item.row}}else if(layout["class"]==="QVBoxLayout"){containerClass="qt-designer-layout-grid";itemStyle=function itemStyle(item,idx){return{gridArea:1+idx+"/1/ span 1/ span 1"}};sortKey=function sortKey(item,idx){return idx}}else if(layout["class"]==="QHBoxLayout"){containerClass="qt-designer-layout-grid";containerStyle={gridTemplateColumns:_this.computeLayoutColumns(layout.item,true).join(" ")};itemStyle=function itemStyle(item,idx){return{gridArea:"1/"+(1+idx)+"/ span 1/ span 1"}};sortKey=function sortKey(item,idx){return idx}}else{return null}if(!visible){containerStyle.display="none"}if(layout.item.find(function(item){return item.spacer&&(item.spacer.property||{}).orientation==="Qt::Vertical"})){containerStyle.height="100%"}return/*#__PURE__*/React.createElement("div",{className:containerClass,key:layout.name,style:containerStyle},layout.item.sort(function(a,b){return sortKey(a)-sortKey(b)}).map(function(item,idx){var child=null;if(item.widget){child=_this.renderWidget(item.widget,feature,dataset,updateField,nametransform)}else if(item.layout){child=_this.renderLayout(item.layout,feature,dataset,updateField,nametransform)}else if(item.spacer){child=/*#__PURE__*/React.createElement("div",null)}else{return null}return/*#__PURE__*/React.createElement("div",{key:"i"+idx,style:itemStyle(item,idx)},child)}))});_defineProperty(_this,"computeLayoutColumns",function(items){var useIndex=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;var columns=[];var hasAuto=false;var hasSpacer=items.find(function(item){var _item$spacer;return((_item$spacer=item.spacer)===null||_item$spacer===void 0||(_item$spacer=_item$spacer.property)===null||_item$spacer===void 0?void 0:_item$spacer.orientation)==="Qt::Horizontal"});items.forEach(function(item,index){var _item$spacer2,_item$widget;var col=useIndex?index:parseInt(item.column,10)||0;var colSpan=useIndex?1:parseInt(item.colspan,10)||1;if(((_item$spacer2=item.spacer)===null||_item$spacer2===void 0||(_item$spacer2=_item$spacer2.property)===null||_item$spacer2===void 0?void 0:_item$spacer2.orientation)==="Qt::Horizontal"){columns[col]="auto";hasAuto=true}else if(!hasSpacer&&!hFitWidgets.includes((_item$widget=item.widget)===null||_item$widget===void 0?void 0:_item$widget["class"])&&colSpan===1){columns[col]="auto";hasAuto=true}else{var _columns$col;columns[col]=(_columns$col=columns[col])!==null&&_columns$col!==void 0?_columns$col:null;// Placeholder replaced by fit-content below
|
|
17
17
|
}});var fit="fit-content("+Math.round(1/columns.length*100)+"%)";for(var col=0;col<columns.length;++col){columns[col]=hasAuto?columns[col]||fit:"auto"}return columns});_defineProperty(_this,"computeLayoutRows",function(items){var useIndex=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;var rows=[];var hasSpacer=items.find(function(item){var _item$spacer3;return((_item$spacer3=item.spacer)===null||_item$spacer3===void 0||(_item$spacer3=_item$spacer3.property)===null||_item$spacer3===void 0?void 0:_item$spacer3.orientation)==="Qt::Vertical"});items.forEach(function(item,index){var _item$spacer4,_item$widget2,_item$widget2$startsW,_item$widget$layout,_item$widget3,_item$widget5;var row=useIndex?index:parseInt(item.row,10)||0;var rowSpan=useIndex?1:parseInt(item.rowspan,10)||1;if(((_item$spacer4=item.spacer)===null||_item$spacer4===void 0||(_item$spacer4=_item$spacer4.property)===null||_item$spacer4===void 0?void 0:_item$spacer4.orientation)==="Qt::Vertical"||(_item$widget2=item.widget)!==null&&_item$widget2!==void 0&&(_item$widget2=_item$widget2.name)!==null&&_item$widget2!==void 0&&(_item$widget2$startsW=_item$widget2.startsWith)!==null&&_item$widget2$startsW!==void 0&&_item$widget2$startsW.call(_item$widget2,"nrel_")){rows[row]="auto"}else if((_item$widget$layout=(_item$widget3=item.widget)===null||_item$widget3===void 0?void 0:_item$widget3.layout)!==null&&_item$widget$layout!==void 0?_item$widget$layout:item.layout){var _item$widget4,_item$layout;rows[row]=(_item$widget4=item.widget)!==null&&_item$widget4!==void 0&&(_item$widget4=_item$widget4.layout)!==null&&_item$widget4!==void 0&&_item$widget4.verticalFill||(_item$layout=item.layout)!==null&&_item$layout!==void 0&&_item$layout.verticalFill?"auto":null;// Placeholder replaced by fit-content below
|
|
18
18
|
}else if(!hasSpacer&&!vFitWidgets.includes((_item$widget5=item.widget)===null||_item$widget5===void 0?void 0:_item$widget5["class"])&&rowSpan===1){rows[row]="auto"}else{var _rows$row;rows[row]=(_rows$row=rows[row])!==null&&_rows$row!==void 0?_rows$row:null;// Placeholder replaced by fit-content below
|
|
19
|
-
}});var fit="fit-content("+Math.round(1/rows.length*100)+"%)";for(var row=0;row<rows.length;++row){rows[row]=rows[row]||fit}return rows});_defineProperty(_this,"renderWidget",function(widget,feature,dataset,updateField){var _widget$name,_this$props$fields$wi;var nametransform=arguments.length>4&&arguments[4]!==undefined?arguments[4]:function(name){return name};var disabled=arguments.length>5&&arguments[5]!==undefined?arguments[5]:false;var value=(_widget$name=(feature.properties||{})[widget.name])!==null&&_widget$name!==void 0?_widget$name:"";var prop=widget.property||{};if(String(prop.visible)==="false"){return null}var attr=widget.attribute||{};var fieldConstraints=((_this$props$fields$wi=_this.props.fields[widget.name])===null||_this$props$fields$wi===void 0?void 0:_this$props$fields$wi.constraints)||{};var inputConstraints={};inputConstraints.readOnly=_this.props.readOnly||String(prop.readOnly)==="true"||String(prop.enabled)==="false"||fieldConstraints.readOnly===true||disabled;inputConstraints.required=!inputConstraints.readOnly&&(String(prop.required)==="true"||String(fieldConstraints.required)==="true");inputConstraints.placeholder=prop.placeholderText||fieldConstraints.placeholder||"";var fontProps=prop.font||{};var fontStyle={fontWeight:String(fontProps.bold)==="true"?"bold":"normal",fontStyle:String(fontProps.italic)==="true"?"italic":"normal",textDecoration:[String(fontProps.underline)==="true"?"underline":"",String(fontProps.strikeout)==="true"?"line-through":""].join(" "),fontSize:Math.round((fontProps.pointsize||9)/9*100)+"%",textAlign:"left"};if(prop.alignment){if(prop.alignment.includes("Qt::AlignRight")){fontStyle.textAlign="right"}else if(prop.alignment.includes("Qt::AlignCenter")){fontStyle.textAlign="center"}}var elname=undefined;if(widget.name.startsWith("ext__")){updateField=null;value=_this.state.formData.externalFields[widget.name.slice(5)];inputConstraints.readOnly=true}else{elname=nametransform(widget.name)}if(widget["class"]==="QLabel"){if(widget.name.startsWith("img__")){var _widget$name$split$;value=(_widget$name$split$=(feature.properties||[])[widget.name.split("__")[1]])!==null&&_widget$name$split$!==void 0?_widget$name$split$:widget.property.text;return/*#__PURE__*/React.createElement("div",{className:"qt-designer-form-image"},/*#__PURE__*/React.createElement("a",{href:value,rel:"noreferrer",target:"_blank"},/*#__PURE__*/React.createElement("img",{src:value})))}else{var text=widget.name.startsWith("ext__")?value:widget.property.text;return/*#__PURE__*/React.createElement("div",{style:fontStyle},text)}}else if(widget["class"]==="Line"){var _widget$property;var linetype=((_widget$property=widget.property)===null||_widget$property===void 0?void 0:_widget$property.orientation)==="Qt::Vertical"?"vline":"hline";return/*#__PURE__*/React.createElement("div",{className:"qt-designer-form-"+linetype})}else if(widget["class"]==="QFrame"){return/*#__PURE__*/React.createElement("div",{className:"qt-designer-form-container"},/*#__PURE__*/React.createElement("div",{className:"qt-designer-form-frame"},widget.name.startsWith("nrel__")?_this.renderNRelation(widget):_this.renderLayout(widget.layout,feature,dataset,updateField,nametransform)))}else if(widget["class"]==="QGroupBox"){if(widget.property.visibilityExpression){var exprResult=parseExpression(widget.property.visibilityExpression,feature,dataset,_this.props.iface,_this.props.mapPrefix,_this.props.mapCrs,function(){return _this.setState({reevaluate:+new Date})});if(exprResult===false||exprResult===0){return null}}return/*#__PURE__*/React.createElement("div",{className:"qt-designer-form-container"},/*#__PURE__*/React.createElement("div",{className:"qt-designer-form-frame-title",style:fontStyle},prop.title),/*#__PURE__*/React.createElement("div",{className:"qt-designer-form-frame"},widget.name.startsWith("nrel__")?_this.renderNRelation(widget):_this.renderLayout(widget.layout,feature,dataset,updateField,nametransform)))}else if(widget["class"]==="QTabWidget"){if(isEmpty(widget.widget)){return null}var activetab=_this.state.activetabs[widget.name]||widget.widget[0].name;var tabs=widget.widget.map(function(tab){return{key:tab.name,label:tab.attribute.title}});return/*#__PURE__*/React.createElement("div",{className:"qt-designer-form-container"},/*#__PURE__*/React.createElement(ButtonBar,{active:activetab,buttons:tabs,className:"qt-designer-form-tabbar",onClick:function onClick(key){return _this.setState(function(state){return{activetabs:_objectSpread(_objectSpread({},state.activetabs),{},_defineProperty({},widget.name,key))}})}}),/*#__PURE__*/React.createElement("div",{className:"qt-designer-form-frame"},widget.widget.filter(function(child){return child.layout}).map(function(child){return _this.renderLayout(child.layout,feature,dataset,updateField,nametransform,child.name===activetab)})))}else if(widget["class"]==="QTextEdit"||widget["class"]==="QTextBrowser"||widget["class"]==="QPlainTextEdit"){var _feature$properties$w,_feature$properties;if(((_feature$properties$w=(_feature$properties=feature.properties)===null||_feature$properties===void 0?void 0:_feature$properties[widget.name])!==null&&_feature$properties$w!==void 0?_feature$properties$w:null)===null){var _ConfigUtils$getConfi;value=(_ConfigUtils$getConfi=ConfigUtils.getConfigProp("editTextNullValue"))!==null&&_ConfigUtils$getConfi!==void 0?_ConfigUtils$getConfi:""}if(_this.props.report){return/*#__PURE__*/React.createElement("div",{className:"qt-designer-form-textarea"},value)}else{var addLinkAnchors=ConfigUtils.getConfigProp("editingAddLinkAnchors")!==false;return/*#__PURE__*/React.createElement(TextInput,_extends({addLinkAnchors:addLinkAnchors,multiline:true,name:elname,onChange:function onChange(val){return updateField(widget.name,val)}},inputConstraints,{style:fontStyle,value:String(value)}))}}else if(widget["class"]==="QLineEdit"){if(widget.name.endsWith("__upload")){var _feature$properties2;var fieldId=widget.name.replace(/__upload/,"");var uploadValue=((_feature$properties2=feature.properties)===null||_feature$properties2===void 0?void 0:_feature$properties2[fieldId])||"";var uploadElName=elname.replace(/__upload/,"");var constraints={accept:prop.text||"",required:inputConstraints.required};return/*#__PURE__*/React.createElement(EditUploadField,{constraints:constraints,dataset:dataset,disabled:inputConstraints.readOnly,fieldId:fieldId,iface:_this.props.iface,name:uploadElName,report:_this.props.report,updateField:updateField,value:uploadValue})}else{var _feature$properties$w2,_feature$properties3;if(fieldConstraints.prec!==undefined&&typeof value==="number"){value=value.toFixed(fieldConstraints.prec)}else if(((_feature$properties$w2=(_feature$properties3=feature.properties)===null||_feature$properties3===void 0?void 0:_feature$properties3[widget.name])!==null&&_feature$properties$w2!==void 0?_feature$properties$w2:null)===null){var _ConfigUtils$getConfi2;value=(_ConfigUtils$getConfi2=ConfigUtils.getConfigProp("editTextNullValue"))!==null&&_ConfigUtils$getConfi2!==void 0?_ConfigUtils$getConfi2:""}if(_this.props.report){return/*#__PURE__*/React.createElement("div",{style:fontStyle},value||inputConstraints.placeholder)}else{var _addLinkAnchors=ConfigUtils.getConfigProp("editingAddLinkAnchors")!==false;var editTextNullValue=ConfigUtils.getConfigProp("editTextNullValue");return/*#__PURE__*/React.createElement(TextInput,_extends({addLinkAnchors:_addLinkAnchors,clearValue:editTextNullValue,name:elname,onChange:function onChange(val){return updateField(widget.name,val)}},inputConstraints,{style:fontStyle,value:String(value)}))}}}else if(widget["class"]==="QCheckBox"||widget["class"]==="QRadioButton"){var _this$props$feature$p;var type=widget["class"]==="QCheckBox"?"checkbox":"radio";var inGroup=attr.buttonGroup;var checked=inGroup?((_this$props$feature$p=_this.props.feature.properties)===null||_this$props$feature$p===void 0?void 0:_this$props$feature$p[_this.groupOrName(widget)])===widget.name:value;return/*#__PURE__*/React.createElement("label",{style:fontStyle},/*#__PURE__*/React.createElement("input",_extends({checked:checked,disabled:inputConstraints.readOnly,name:nametransform(_this.groupOrName(widget)),onChange:function onChange(ev){return updateField(_this.groupOrName(widget),inGroup?widget.name:ev.target.checked)}},inputConstraints,{type:type,value:widget.name})),widget.property.text)}else if(widget["class"]==="QComboBox"){var parts=widget.name.split("__");if((parts.length===5||parts.length===6)&&parts[0]==="kvrel"){var _fieldId2,
|
|
19
|
+
}});var fit="fit-content("+Math.round(1/rows.length*100)+"%)";for(var row=0;row<rows.length;++row){rows[row]=rows[row]||fit}return rows});_defineProperty(_this,"renderWidget",function(widget,feature,dataset,updateField){var _widget$name,_this$props$fields$wi;var nametransform=arguments.length>4&&arguments[4]!==undefined?arguments[4]:function(name){return name};var disabled=arguments.length>5&&arguments[5]!==undefined?arguments[5]:false;var value=(_widget$name=(feature.properties||{})[widget.name])!==null&&_widget$name!==void 0?_widget$name:"";var prop=widget.property||{};if(String(prop.visible)==="false"){return null}var attr=widget.attribute||{};var fieldConstraints=((_this$props$fields$wi=_this.props.fields[widget.name])===null||_this$props$fields$wi===void 0?void 0:_this$props$fields$wi.constraints)||{};var inputConstraints={};inputConstraints.readOnly=_this.props.readOnly||String(prop.readOnly)==="true"||String(prop.enabled)==="false"||fieldConstraints.readOnly===true||disabled;inputConstraints.required=!inputConstraints.readOnly&&(String(prop.required)==="true"||String(fieldConstraints.required)==="true");inputConstraints.placeholder=prop.placeholderText||fieldConstraints.placeholder||"";var fontProps=prop.font||{};var fontStyle={fontWeight:String(fontProps.bold)==="true"?"bold":"normal",fontStyle:String(fontProps.italic)==="true"?"italic":"normal",textDecoration:[String(fontProps.underline)==="true"?"underline":"",String(fontProps.strikeout)==="true"?"line-through":""].join(" "),fontSize:Math.round((fontProps.pointsize||9)/9*100)+"%",textAlign:"left"};if(prop.alignment){if(prop.alignment.includes("Qt::AlignRight")){fontStyle.textAlign="right"}else if(prop.alignment.includes("Qt::AlignCenter")){fontStyle.textAlign="center"}}var elname=undefined;if(widget.name.startsWith("ext__")){updateField=null;value=_this.state.formData.externalFields[widget.name.slice(5)];inputConstraints.readOnly=true}else{elname=nametransform(widget.name)}if(widget["class"]==="QLabel"){if(widget.name.startsWith("img__")){var _widget$name$split$;value=(_widget$name$split$=(feature.properties||[])[widget.name.split("__")[1]])!==null&&_widget$name$split$!==void 0?_widget$name$split$:widget.property.text;return/*#__PURE__*/React.createElement("div",{className:"qt-designer-form-image"},/*#__PURE__*/React.createElement("a",{href:value,rel:"noreferrer",target:"_blank"},/*#__PURE__*/React.createElement("img",{src:value})))}else{var text=widget.name.startsWith("ext__")?value:widget.property.text;return/*#__PURE__*/React.createElement("div",{style:fontStyle},text)}}else if(widget["class"]==="Line"){var _widget$property;var linetype=((_widget$property=widget.property)===null||_widget$property===void 0?void 0:_widget$property.orientation)==="Qt::Vertical"?"vline":"hline";return/*#__PURE__*/React.createElement("div",{className:"qt-designer-form-"+linetype})}else if(widget["class"]==="QFrame"){return/*#__PURE__*/React.createElement("div",{className:"qt-designer-form-container"},/*#__PURE__*/React.createElement("div",{className:"qt-designer-form-frame"},widget.name.startsWith("nrel__")?_this.renderNRelation(widget):_this.renderLayout(widget.layout,feature,dataset,updateField,nametransform)))}else if(widget["class"]==="QGroupBox"){if(widget.property.visibilityExpression){var exprResult=parseExpression(widget.property.visibilityExpression,feature,dataset,_this.props.iface,_this.props.mapPrefix,_this.props.mapCrs,function(){return _this.setState({reevaluate:+new Date})});if(exprResult===false||exprResult===0){return null}}return/*#__PURE__*/React.createElement("div",{className:"qt-designer-form-container"},/*#__PURE__*/React.createElement("div",{className:"qt-designer-form-frame-title",style:fontStyle},prop.title),/*#__PURE__*/React.createElement("div",{className:"qt-designer-form-frame"},widget.name.startsWith("nrel__")?_this.renderNRelation(widget):_this.renderLayout(widget.layout,feature,dataset,updateField,nametransform)))}else if(widget["class"]==="QTabWidget"){if(isEmpty(widget.widget)){return null}var activetab=_this.state.activetabs[widget.name]||widget.widget[0].name;var tabs=widget.widget.map(function(tab){return{key:tab.name,label:tab.attribute.title}});return/*#__PURE__*/React.createElement("div",{className:"qt-designer-form-container"},/*#__PURE__*/React.createElement(ButtonBar,{active:activetab,buttons:tabs,className:"qt-designer-form-tabbar",onClick:function onClick(key){return _this.setState(function(state){return{activetabs:_objectSpread(_objectSpread({},state.activetabs),{},_defineProperty({},widget.name,key))}})}}),/*#__PURE__*/React.createElement("div",{className:"qt-designer-form-frame"},widget.widget.filter(function(child){return child.layout}).map(function(child){return _this.renderLayout(child.layout,feature,dataset,updateField,nametransform,child.name===activetab)})))}else if(widget["class"]==="QTextEdit"||widget["class"]==="QTextBrowser"||widget["class"]==="QPlainTextEdit"){var _feature$properties$w,_feature$properties;if(((_feature$properties$w=(_feature$properties=feature.properties)===null||_feature$properties===void 0?void 0:_feature$properties[widget.name])!==null&&_feature$properties$w!==void 0?_feature$properties$w:null)===null){var _ConfigUtils$getConfi;value=(_ConfigUtils$getConfi=ConfigUtils.getConfigProp("editTextNullValue"))!==null&&_ConfigUtils$getConfi!==void 0?_ConfigUtils$getConfi:""}if(_this.props.report){return/*#__PURE__*/React.createElement("div",{className:"qt-designer-form-textarea"},value)}else{var addLinkAnchors=ConfigUtils.getConfigProp("editingAddLinkAnchors")!==false;return/*#__PURE__*/React.createElement(TextInput,_extends({addLinkAnchors:addLinkAnchors,multiline:true,name:elname,onChange:function onChange(val){return updateField(widget.name,val)}},inputConstraints,{style:fontStyle,value:String(value)}))}}else if(widget["class"]==="QLineEdit"){if(widget.name.endsWith("__upload")){var _feature$properties2;var fieldId=widget.name.replace(/__upload/,"");var uploadValue=((_feature$properties2=feature.properties)===null||_feature$properties2===void 0?void 0:_feature$properties2[fieldId])||"";var uploadElName=elname.replace(/__upload/,"");var constraints={accept:prop.text||"",required:inputConstraints.required};return/*#__PURE__*/React.createElement(EditUploadField,{constraints:constraints,dataset:dataset,disabled:inputConstraints.readOnly,fieldId:fieldId,iface:_this.props.iface,name:uploadElName,report:_this.props.report,updateField:updateField,value:uploadValue})}else{var _feature$properties$w2,_feature$properties3;if(fieldConstraints.prec!==undefined&&typeof value==="number"){value=value.toFixed(fieldConstraints.prec)}else if(((_feature$properties$w2=(_feature$properties3=feature.properties)===null||_feature$properties3===void 0?void 0:_feature$properties3[widget.name])!==null&&_feature$properties$w2!==void 0?_feature$properties$w2:null)===null){var _ConfigUtils$getConfi2;value=(_ConfigUtils$getConfi2=ConfigUtils.getConfigProp("editTextNullValue"))!==null&&_ConfigUtils$getConfi2!==void 0?_ConfigUtils$getConfi2:""}if(_this.props.report){return/*#__PURE__*/React.createElement("div",{style:fontStyle},value||inputConstraints.placeholder)}else{var _addLinkAnchors=ConfigUtils.getConfigProp("editingAddLinkAnchors")!==false;var editTextNullValue=ConfigUtils.getConfigProp("editTextNullValue");return/*#__PURE__*/React.createElement(TextInput,_extends({addLinkAnchors:_addLinkAnchors,clearValue:editTextNullValue,name:elname,onChange:function onChange(val){return updateField(widget.name,val)}},inputConstraints,{style:fontStyle,value:String(value)}))}}}else if(widget["class"]==="QCheckBox"||widget["class"]==="QRadioButton"){var _this$props$feature$p;var type=widget["class"]==="QCheckBox"?"checkbox":"radio";var inGroup=attr.buttonGroup;var checked=inGroup?((_this$props$feature$p=_this.props.feature.properties)===null||_this$props$feature$p===void 0?void 0:_this$props$feature$p[_this.groupOrName(widget)])===widget.name:value;return/*#__PURE__*/React.createElement("label",{style:fontStyle},/*#__PURE__*/React.createElement("input",_extends({checked:checked,disabled:inputConstraints.readOnly,name:nametransform(_this.groupOrName(widget)),onChange:function onChange(ev){return updateField(_this.groupOrName(widget),inGroup?widget.name:ev.target.checked)}},inputConstraints,{type:type,value:widget.name})),widget.property.text)}else if(widget["class"]==="QComboBox"){var parts=widget.name.split("__");if((parts.length===5||parts.length===6)&&parts[0]==="kvrel"){var _fieldId2,_this$props$editConfi,_this$props$editConfi2;// kvrel__attrname__datatable__keyfield__valuefield
|
|
20
20
|
// kvrel__reltablename__attrname__datatable__keyfield__valuefield
|
|
21
|
-
var count=parts.length;var isRelAttr=count===6;var attrname=parts[isRelAttr?2:1];var _fieldId=parts.slice(1,count-3).join("__");value=(_fieldId2=(feature.properties||[])[_fieldId])!==null&&_fieldId2!==void 0?_fieldId2:"";var keyvalrel=_this.props.mapPrefix+parts[count-3]+":"+parts[count-2]+":"+parts[count-1];var filterExpr=null;var
|
|
21
|
+
var count=parts.length;var isRelAttr=count===6;var attrname=parts[isRelAttr?2:1];var _fieldId=parts.slice(1,count-3).join("__");value=(_fieldId2=(feature.properties||[])[_fieldId])!==null&&_fieldId2!==void 0?_fieldId2:"";var keyvalrel=_this.props.mapPrefix+parts[count-3]+":"+parts[count-2]+":"+parts[count-1];var filterExpr=null;var field=isRelAttr?(_this$props$editConfi=_this.props.editConfig[parts[1]])===null||_this$props$editConfi===void 0||(_this$props$editConfi=_this$props$editConfi.fields)===null||_this$props$editConfi===void 0||(_this$props$editConfi2=_this$props$editConfi.find)===null||_this$props$editConfi2===void 0?void 0:_this$props$editConfi2.call(_this$props$editConfi,function(f){return f.id===attrname}):_this.props.fields[_fieldId];var comboFieldConstraints=(field===null||field===void 0?void 0:field.constraints)||{};if(field!==null&&field!==void 0&&field.filterExpression){filterExpr=parseExpression(field.filterExpression,feature,dataset,_this.props.iface,_this.props.mapPrefix,_this.props.mapCrs,function(){return _this.setState({reevaluate:+new Date})},true)}return/*#__PURE__*/React.createElement(EditComboField,{editIface:_this.props.iface,fieldId:_fieldId,filterExpr:filterExpr,key:_fieldId,keyvalrel:keyvalrel,multiSelect:widget.allowMulti==="true",name:nametransform(_fieldId),placeholder:inputConstraints.placeholder,readOnly:inputConstraints.readOnly||comboFieldConstraints.readOnly,required:inputConstraints.required||comboFieldConstraints.required,style:fontStyle,updateField:updateField,value:value})}else{var values=MiscUtils.ensureArray(widget.item||[]).map(function(item){var _item$property$value;return{label:item.property.text,value:(_item$property$value=item.property.value)!==null&&_item$property$value!==void 0?_item$property$value:item.property.text}});return/*#__PURE__*/React.createElement(EditComboField,{editIface:_this.props.iface,fieldId:widget.name,key:widget.name,name:elname,placeholder:inputConstraints.placeholder,readOnly:inputConstraints.readOnly||inputConstraints.readOnly,required:inputConstraints.required||inputConstraints.required,style:fontStyle,updateField:updateField,value:value,values:values})}}else if(widget["class"]==="QSpinBox"||widget["class"]==="QDoubleSpinBox"||widget["class"]==="QSlider"){var _prop$minimum,_prop$maximum,_ref,_prop$singleStep,_prop$decimals;var floatConstraint=function floatConstraint(x){var f=parseFloat(x);return isNaN(f)?undefined:f};var min=floatConstraint((_prop$minimum=prop.minimum)!==null&&_prop$minimum!==void 0?_prop$minimum:fieldConstraints.min);var max=floatConstraint((_prop$maximum=prop.maximum)!==null&&_prop$maximum!==void 0?_prop$maximum:fieldConstraints.max);var step=(_ref=(_prop$singleStep=prop.singleStep)!==null&&_prop$singleStep!==void 0?_prop$singleStep:fieldConstraints.step)!==null&&_ref!==void 0?_ref:1;var precision=(_prop$decimals=prop.decimals)!==null&&_prop$decimals!==void 0?_prop$decimals:0;if(widget["class"]==="QSlider"){return/*#__PURE__*/React.createElement("input",_extends({max:max,min:min,name:elname,onChange:function onChange(ev){return updateField(widget.name,ev.target.value)}},inputConstraints,{size:5,step:step,style:fontStyle,type:"range",value:value}))}else{var _feature$properties$w3,_feature$properties4;value=(_feature$properties$w3=(_feature$properties4=feature.properties)===null||_feature$properties4===void 0?void 0:_feature$properties4[widget.name])!==null&&_feature$properties$w3!==void 0?_feature$properties$w3:null;return/*#__PURE__*/React.createElement(NumberInput,_extends({decimals:precision,max:max,min:min,name:elname,onChange:function onChange(val){return updateField(widget.name,val)}},inputConstraints,{step:step,style:fontStyle,value:value}))}}else if(widget["class"]==="QDateEdit"){var _min=prop.minimumDate?_this.dateConstraint(prop.minimumDate):"1600-01-01";var _max=prop.maximumDate?_this.dateConstraint(prop.maximumDate):"9999-12-31";return/*#__PURE__*/React.createElement("input",_extends({max:_max,min:_min,name:elname,onChange:function onChange(ev){return updateField(widget.name,ev.target.value)}},inputConstraints,{style:fontStyle,type:"date",value:value}))}else if(widget["class"]==="QTimeEdit"){return/*#__PURE__*/React.createElement("input",_extends({name:elname,onChange:function onChange(ev){return updateField(widget.name,ev.target.value)}},inputConstraints,{style:fontStyle,type:"time",value:value}))}else if(widget["class"]==="QDateTimeEdit"){var _min2=prop.minimumDate?_this.dateConstraint(prop.minimumDate):"1600-01-01";var _max2=prop.maximumDate?_this.dateConstraint(prop.maximumDate):"9999-12-31";return/*#__PURE__*/React.createElement(DateTimeInput,{maxDate:_max2,minDate:_min2,name:elname,onChange:function onChange(val){return updateField(widget.name,val)},readOnly:inputConstraints.readOnly,required:inputConstraints.required,style:fontStyle,value:value})}else if(widget["class"]==="QWidget"){if(widget.name.startsWith("nrel__")){return _this.renderNRelation(widget)}else if(widget.name.startsWith("ext__")){return value}else{return _this.renderLayout(widget.layout,feature,dataset,updateField,nametransform)}}else if(widget["class"]==="QPushButton"){if(widget.name.startsWith("btn__")&&widget.onClick){return/*#__PURE__*/React.createElement("button",{className:"button",disabled:inputConstraints.readOnly,onClick:function onClick(){return widget.onClick(_this.props.setFormBusy)},type:"button"},widget.property.text)}else if(widget.name.startsWith("featurelink__")){var _parts=widget.name.split("__");// featurelink__layer__attrname
|
|
22
22
|
// featurelink__layer__reltable__attrname
|
|
23
23
|
if(_parts.length===3||_parts.length===4){var _feature$properties5;var layer=_parts[1];var reltable=_parts.length===4?_parts[2]:"";var _attrname=_parts.slice(2).join("__");value=(_feature$properties5=feature.properties)===null||_feature$properties5===void 0?void 0:_feature$properties5[_attrname];if(layer===reltable){var index=parseInt(nametransform("").split("__")[1],10);// Ugh..
|
|
24
24
|
var reldataset=_this.props.mapPrefix+reltable;var displayField=_attrname.split("__")[1];if(feature.__status__!=="empty"){var featurebuttons=[{key:"Edit",icon:"editing",label:String(value!==null&&value!==void 0?value:"")}];return/*#__PURE__*/React.createElement("div",{className:"qt-designer-form-featurelink-buttons"},/*#__PURE__*/React.createElement(ButtonBar,{buttons:featurebuttons,forceLabel:true,onClick:function onClick(){return _this.props.editRelationRecord("Edit",reltable,reldataset,index,displayField)}}))}else{var _featurebuttons=[];if(feature.geometry!==null){_featurebuttons.push({key:"Pick",icon:"pick",label:LocaleUtils.tr("editing.pick")})}_featurebuttons.push({key:"Create",icon:"editdraw",label:LocaleUtils.tr("editing.create")});return/*#__PURE__*/React.createElement(ButtonBar,{buttons:_featurebuttons,forceLabel:true,onClick:function onClick(action){return _this.props.editRelationRecord(action,reltable,reldataset,index,displayField)}})}}else{if(value!==null){var _featurebuttons2=[{key:"Edit",icon:"editing",label:String(value!==null&&value!==void 0?value:"")}];return/*#__PURE__*/React.createElement("div",{className:"qt-designer-form-featurelink-buttons"},/*#__PURE__*/React.createElement(ButtonBar,{buttons:_featurebuttons2,onClick:function onClick(){return _this.props.switchEditContext("Edit",layer,value,function(v){return updateField(_attrname,v)},_attrname)}}),/*#__PURE__*/React.createElement("button",{className:"button",onClick:function onClick(){return updateField(_attrname,null)},type:"button"},/*#__PURE__*/React.createElement(Icon,{icon:"clear"})))}else{var _featurebuttons3=[{key:"Pick",icon:"pick",label:LocaleUtils.tr("editing.pick")},{key:"Create",icon:"editdraw",label:LocaleUtils.tr("editing.create")}];return/*#__PURE__*/React.createElement(ButtonBar,{buttons:_featurebuttons3,onClick:function onClick(action){return _this.props.switchEditContext(action,layer,null,function(v){return updateField(_attrname,v)},_attrname)}})}}}}}else if(widget["class"]==="QStackedWidget"){return _this.renderLayout(widget.widget[parseInt(widget.property.currentIndex,10)].layout,feature,dataset,updateField,nametransform)}return null});_defineProperty(_this,"renderNRelation",function(widget){var _widget$property2,_this$props$feature$r;var parts=widget.name.split("__");if(parts.length<3){return null}var disabled=String((_widget$property2=widget.property)===null||_widget$property2===void 0?void 0:_widget$property2.enabled)==="false";var tablename=parts[1];var sortcol=parts[3]||null;var noreorder=parts[4]||false;var datasetname=_this.props.mapPrefix+tablename;var headerItems=widget.layout.item.filter(function(item){return item.widget&&item.widget.name.startsWith("header__")}).sort(function(a,b){return a.column-b.column});var widgetItems=widget.layout.item.filter(function(item){return!item.widget||!item.widget.name.startsWith("header__")}).sort(function(a,b){return a.column-b.column});var tableFitWidgets=["QLabel","QCheckBox","QRadioButton","QDateTimeEdit","QDateEdit","QTimeEdit"];var columnStyles=widgetItems.map(function(item){return item.widget&&tableFitWidgets.includes(item.widget["class"])?{width:"1px"}:{}});return/*#__PURE__*/React.createElement("div",{className:"qt-designer-widget-relation"},/*#__PURE__*/React.createElement("div",{className:"qt-designer-widget-relation-table-container"},!_this.props.feature.relationValues?/*#__PURE__*/React.createElement("div",{className:"qt-designer-widget-relation-table-loading"},/*#__PURE__*/React.createElement(Spinner,null)):null,/*#__PURE__*/React.createElement("table",null,/*#__PURE__*/React.createElement("tbody",null,!isEmpty(headerItems)?/*#__PURE__*/React.createElement("tr",null,/*#__PURE__*/React.createElement("th",null),headerItems.map(function(item){return/*#__PURE__*/React.createElement("th",{key:item.widget.name},item.widget.property.text)}),/*#__PURE__*/React.createElement("th",null)):null,(((_this$props$feature$r=_this.props.feature.relationValues)===null||_this$props$feature$r===void 0||(_this$props$feature$r=_this$props$feature$r[datasetname])===null||_this$props$feature$r===void 0?void 0:_this$props$feature$r.features)||[]).map(function(feature,idx){var updateField=function updateField(name,value){var fieldname=name.slice(tablename.length+2);// Strip <tablename>__ prefix
|
package/components/SearchBox.js
CHANGED
|
@@ -15,9 +15,9 @@ var searchText=_this.state.searchText.trim();if(isEmpty(searchText)){_this.setSt
|
|
|
15
15
|
results=results.filter(function(group){var _group$type3;return((_group$type3=group.type)!==null&&_group$type3!==void 0?_group$type3:SearchResultType.PLACE)===SearchResultType.PLACE})}_this.setState(function(state){if(searchSession!==state.searchSession){return{}}var searchResults=_objectSpread(_objectSpread({},state.searchResults),{},_defineProperty({},provKey,{results:results,result_counts:response.result_counts,tot_result_count:totResultCount}));var newPendingSearches=state.pendingSearches.filter(function(entry){return entry!==provKey});if(isEmpty(newPendingSearches)&&uniquePlaceResult){var providersWithResults=Object.entries(searchResults).filter(function(_ref7){var _ref8=_slicedToArray(_ref7,2),_=_ref8[0],providerResults=_ref8[1];return providerResults.tot_result_count>0});if(providersWithResults.length===1&&providersWithResults[0][1].tot_result_count===1){var group=providersWithResults[0][1].results[0];// Avoid warning about setState called in setState
|
|
16
16
|
setTimeout(function(){_this.selectPlaceResult(providersWithResults[0][0],group,group.items[0])},0)}}return{searchResults:searchResults,pendingSearches:newPendingSearches}})},axios)})});_defineProperty(_this,"filterProviderResults",function(results){if(!_this.state.filterGeometry){return results}var filterPolygon=_this.state.filterGeometry.coordinates[0];return results.map(function(group){var _group$type4;var resultType=(_group$type4=group.type)!==null&&_group$type4!==void 0?_group$type4:SearchResultType.PLACE;if(resultType!==SearchResultType.PLACE){return group}var newItems=group.items.filter(function(item){var _item$crs;var geometry=null;var itemCrs=(_item$crs=item.crs)!==null&&_item$crs!==void 0?_item$crs:_this.props.map.projection;if(item.geometry){geometry=VectorLayerUtils.reprojectGeometry(item.geometry,itemCrs,_this.props.map.projection)}else{geometry={type:"Point",coordinates:CoordinatesUtils.reproject([item.x,item.y],itemCrs,_this.props.map.projection)}}if(geometry.type==="Polygon"){return polygonIntersectTest(geometry.coordinates[0],filterPolygon)}else if(item.bbox){var _CoordinatesUtils$rep=CoordinatesUtils.reprojectBbox(item.bbox,itemCrs,_this.props.map.projection),_CoordinatesUtils$rep2=_slicedToArray(_CoordinatesUtils$rep,4),xmin=_CoordinatesUtils$rep2[0],ymin=_CoordinatesUtils$rep2[1],xmax=_CoordinatesUtils$rep2[2],ymax=_CoordinatesUtils$rep2[3];return polygonIntersectTest([[xmin,ymin],[xmax,ymin],[xmax,ymax],[xmin,ymax],[xmin,ymin]],filterPolygon)}else if(geometry.type==="Point"){return pointInPolygon(geometry.coordinates,filterPolygon)}return true});return newItems.length>0?_objectSpread(_objectSpread({},group),{},{items:newItems}):null}).filter(Boolean)});_defineProperty(_this,"updateRecentSearches",function(){var text=_this.state.searchResults.query_text;if(text&&!_this.state.recentSearches.includes(text)){_this.setState(function(state){return{recentSearches:[text].concat(_toConsumableArray(state.recentSearches.slice(0,4)))}})}});_defineProperty(_this,"blur",function(){if(_this.searchBox){_this.searchBox.blur()}});_defineProperty(_this,"addThemeLayers",function(layer){// Check if layer is already in the LayerTree
|
|
17
17
|
var sublayers=LayerUtils.getSublayerNames(layer);var existing=_this.props.layers.find(function(l){return l.type===layer.type&&l.url===layer.url&&!isEmpty(LayerUtils.getSublayerNames(l).filter(function(v){return sublayers.includes(v)}))});if(existing){var existingLayerName=(layer.sublayers||[]).length===1?layer.sublayers[0].title:layer.title;var text=LocaleUtils.tr("search.existinglayer")+": "+existingLayerName;_this.props.showNotification("existinglayer",text)}else{_this.props.addLayer(_objectSpread(_objectSpread({},layer),{},{role:LayerRole.USERLAYER}))}if(_this.props.searchOptions.zoomToLayers&&layer.bbox){_this.props.zoomToExtent(layer.bbox.bounds,layer.bbox.crs)}// Show layer tree to notify user that something has happened
|
|
18
|
-
_this.props.setCurrentTask("LayerTree")});_defineProperty(_this,"showResultGeometry",function(item,response){var
|
|
19
|
-
if(features[0].styleName!=="marker"&&!response.hidemarker&&_this.props.searchOptions.showHighlightMarker){var _response$
|
|
18
|
+
_this.props.setCurrentTask("LayerTree")});_defineProperty(_this,"showResultGeometry",function(item,response){var _response$crs3,_item$bbox,_item$crs4;var scale=arguments.length>2&&arguments[2]!==undefined?arguments[2]:undefined;var mapCrs=_this.props.map.projection;var feature=response!==null&&response!==void 0&&response.geometry?{type:"Feature",geometry:response.geometry}:response===null||response===void 0?void 0:response.feature;var layer={id:"searchselection",role:LayerRole.SELECTION};if(feature){var _feature$features;var features=(_feature$features=feature.features)!==null&&_feature$features!==void 0?_feature$features:[feature];features.forEach(function(feat){var _response$crs,_feat$geometry,_feat$crs;feat.geometry=VectorLayerUtils.reprojectGeometry(feat.geometry,(_response$crs=response.crs)!==null&&_response$crs!==void 0?_response$crs:mapCrs,mapCrs);feat.styleName=((_feat$geometry=feat.geometry)===null||_feat$geometry===void 0?void 0:_feat$geometry.type)==="Point"&&_this.props.searchOptions.showHighlightMarker?"marker":"default";feat.styleOptions=_this.props.searchOptions.highlightStyle||{};if((_feat$crs=feat.crs)!==null&&_feat$crs!==void 0&&(_feat$crs=_feat$crs.properties)!==null&&_feat$crs!==void 0&&_feat$crs.name){feat.crs=CoordinatesUtils.fromOgcUrnCrs(feat.crs.properties.name)}});// If first feature is not a point(=marker), add a marker
|
|
19
|
+
if(features[0].styleName!=="marker"&&!response.hidemarker&&_this.props.searchOptions.showHighlightMarker){var _response$crs2,_item$crs2;var center=response.center?CoordinatesUtils.reproject(response.center,(_response$crs2=response.crs)!==null&&_response$crs2!==void 0?_response$crs2:mapCrs,mapCrs):CoordinatesUtils.reproject([item.x,item.y],(_item$crs2=item.crs)!==null&&_item$crs2!==void 0?_item$crs2:mapCrs,mapCrs);features.unshift({geometry:{type:"Point",coordinates:center},styleName:"marker"})}// Label first feature
|
|
20
20
|
if(!_this.props.searchOptions.hideResultLabels){var _ref9,_item$label;var label=((_ref9=(_item$label=item.label)!==null&&_item$label!==void 0?_item$label:item.text)!==null&&_ref9!==void 0?_ref9:"").replace(/<\/?\w+\s*\/?>/g,"");features[0].properties=_objectSpread(_objectSpread({},features[0].properties),{},{label:label})}// Mark first feature as searchmarker
|
|
21
|
-
features[0].id="searchmarker";_this.props.addLayerFeatures(layer,features,true)}var
|
|
21
|
+
features[0].id="searchmarker";_this.props.addLayerFeatures(layer,features,true)}else{var _item$crs3;var _center=CoordinatesUtils.reproject([item.x,item.y],(_item$crs3=item.crs)!==null&&_item$crs3!==void 0?_item$crs3:mapCrs,mapCrs);var marker={type:"Feature",geometry:{type:"Point",coordinates:_center},styleName:"marker"};if(!_this.props.searchOptions.hideResultLabels){var _ref10,_item$label2;var _label=((_ref10=(_item$label2=item.label)!==null&&_item$label2!==void 0?_item$label2:item.text)!==null&&_ref10!==void 0?_ref10:"").replace(/<\/?\w+\s*\/?>/g,"");marker.properties={label:_label}}_this.props.addLayerFeatures(layer,[marker],true)}var bbox=response!==null&&response!==void 0&&response.bbox?CoordinatesUtils.reprojectBbox(response.bbox,(_response$crs3=response.crs)!==null&&_response$crs3!==void 0?_response$crs3:mapCrs,mapCrs):CoordinatesUtils.reprojectBbox((_item$bbox=item.bbox)!==null&&_item$bbox!==void 0?_item$bbox:[item.x,item.y,item.x,item.y],(_item$crs4=item.crs)!==null&&_item$crs4!==void 0?_item$crs4:mapCrs,mapCrs);_this.zoomToResultBBox(bbox,scale)});_defineProperty(_this,"zoomToResultBBox",function(bbox,scale){var zoom=0;if(scale){zoom=MapUtils.computeZoom(_this.props.map.scales,scale)}else{var maxZoom=MapUtils.computeZoom(_this.props.map.scales,_this.props.theme.minSearchScaleDenom||_this.props.searchOptions.minScaleDenom);if(bbox[0]!==bbox[2]&&bbox[1]!==bbox[3]){zoom=Math.max(0,MapUtils.getZoomForExtent(bbox,_this.props.map.resolutions,_this.props.map.size,0,maxZoom+1)-1)}else{zoom=maxZoom}}var x=0.5*(bbox[0]+bbox[2]);var y=0.5*(bbox[1]+bbox[3]);_this.props.zoomToPoint([x,y],zoom,_this.props.map.projection)});_defineProperty(_this,"openUrl",function(url,target,title){if(target==="iframe"){target=":iframedialog:externallinkiframe"}_this.props.openExternalUrl(url,target,{title:title})});_this.searchBox=null;_this.searchTimeout=null;_this.preventBlur=false;return _this}_inherits(SearchBox,_React$Component);return _createClass(SearchBox,[{key:"componentDidUpdate",value:function componentDidUpdate(prevProps,prevState){var _this2=this;// Restore highlight from URL as soon as theme is loaded
|
|
22
22
|
if(this.props.theme&&!prevProps.theme){var hp=this.props.startupParams.hp;var hf=this.props.startupParams.hf;var st=this.props.startupParams.st||this.props.startupParams.ht||"";if(hp&&(hf||st)){this.setState({searchText:st});FulltextSearch.handleHighlightParameters(hp,hf,st,function(item,result){_this2.showResultGeometry(item,result,_this2.props.startupParams.s)})}else{this.setState({searchText:st},function(){return _this2.startSearch(null,true)})}UrlParams.updateParams({hp:undefined,hf:undefined,ht:undefined,st:undefined})}else if(this.props.theme!==prevProps.theme){this.clear()}// Trigger search when closing filter options
|
|
23
23
|
if(!this.state.filterOptionsVisible&&prevState.filterOptionsVisible){this.searchTextChanged(this.state.searchText)}}},{key:"render",value:function render(){var _this3=this;var placeholder=LocaleUtils.tr("search.placeholder");var filterButtonClasses=classnames({"button":true,"searchbox-filter-button":true,"pressed":this.state.filterOptionsVisible||this.state.selectedProvider||this.state.filterGeometry});return[/*#__PURE__*/React.createElement("div",{className:"SearchBox",key:"SearchBox"},/*#__PURE__*/React.createElement(InputContainer,{className:"searchbox-field"},/*#__PURE__*/React.createElement(Icon,{icon:"search",role:"prefix"}),/*#__PURE__*/React.createElement("input",{onBlur:this.onBlur,onChange:function onChange(ev){return _this3.searchTextChanged(ev.target.value)},onFocus:this.onFocus,placeholder:placeholder,ref:function ref(el){_this3.searchBox=el},role:"input",type:"text",value:this.state.searchText}),this.state.pendingSearches.length>0?/*#__PURE__*/React.createElement(Spinner,{role:"suffix"}):/*#__PURE__*/React.createElement(Icon,{icon:"clear",onClick:this.clear,role:"suffix"})),this.props.searchOptions.allowSearchFilters?/*#__PURE__*/React.createElement("button",{className:filterButtonClasses,onClick:function onClick(){return _this3.toggleFilterOptions(!_this3.state.filterOptionsVisible)},title:LocaleUtils.tr("search.filter")},/*#__PURE__*/React.createElement(Icon,{icon:"filter"}),/*#__PURE__*/React.createElement(Icon,{icon:"chevron-down"})):null,this.renderResultsMenu(),this.renderFilterOptions()),/*#__PURE__*/React.createElement(MapSelection,{active:this.state.filterOptionsVisible&&this.state.filterGeomType!==null,geomType:this.state.filterGeomType,geometry:this.state.filterGeometry,geometryChanged:function geometryChanged(geom){return _this3.setState({filterGeometry:geom})},key:"MapSelection",measure:this.state.filterGeomType==="Circle"})]}}])}(React.Component);_defineProperty(SearchBox,"propTypes",{addLayer:PropTypes.func,addLayerFeatures:PropTypes.func,addThemeSublayer:PropTypes.func,changeLayerProperty:PropTypes.func,layers:PropTypes.array,logAction:PropTypes.func,map:PropTypes.object,openExternalUrl:PropTypes.func,panTo:PropTypes.func,removeLayer:PropTypes.func,searchOptions:PropTypes.shape({allowSearchFilters:PropTypes.bool,hideResultLabels:PropTypes.bool,highlightStyle:PropTypes.object,minScaleDenom:PropTypes.number,resultLimit:PropTypes.number,sectionsDefaultCollapsed:PropTypes.bool,showHighlightMarker:PropTypes.bool,showLayerAfterChangeTheme:PropTypes.bool,showLayerResultsBeforePlaces:PropTypes.bool,showResultInSearchText:PropTypes.bool,zoomToLayers:PropTypes.bool}),searchProviders:PropTypes.object,setCurrentTask:PropTypes.func,setCurrentTheme:PropTypes.func,showNotification:PropTypes.func,startupParams:PropTypes.object,theme:PropTypes.object,themes:PropTypes.object,zoomToExtent:PropTypes.func,zoomToPoint:PropTypes.func});export default connect(createSelector([function(state){return state},searchProvidersSelector],function(state,searchProviders){return{map:state.map,layers:state.layers.flat,theme:state.theme.current,themes:state.theme.themes,selection:state.selection,searchProviders:searchProviders,startupParams:state.localConfig.startupParams}}),{addThemeSublayer:addThemeSublayer,addLayer:addLayer,addLayerFeatures:addLayerFeatures,changeLayerProperty:changeLayerProperty,removeLayer:removeLayer,setCurrentTask:setCurrentTask,zoomToExtent:zoomToExtent,zoomToPoint:zoomToPoint,panTo:panTo,logAction:logAction,setCurrentTheme:setCurrentTheme,showNotification:showNotification,openExternalUrl:openExternalUrl})(SearchBox);
|
package/package.json
CHANGED
package/plugins/TourGuide.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function _typeof(o){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},_typeof(o)}function _classCallCheck(a,n){if(!(a instanceof n))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,r){for(var t=0;t<r.length;t++){var o=r[t];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,_toPropertyKey(o.key),o)}}function _createClass(e,r,t){return r&&_defineProperties(e.prototype,r),t&&_defineProperties(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function _callSuper(t,o,e){return o=_getPrototypeOf(o),_possibleConstructorReturn(t,_isNativeReflectConstruct()?Reflect.construct(o,e||[],_getPrototypeOf(t).constructor):o.apply(t,e))}function _possibleConstructorReturn(t,e){if(e&&("object"==_typeof(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(t)}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _isNativeReflectConstruct(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(_isNativeReflectConstruct=function _isNativeReflectConstruct(){return!!t})()}function _getPrototypeOf(t){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},_getPrototypeOf(t)}function _inherits(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&_setPrototypeOf(t,e)}function _setPrototypeOf(t,e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},_setPrototypeOf(t,e)}function _defineProperty(e,r,t){return(r=_toPropertyKey(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function _toPropertyKey(t){var i=_toPrimitive(t,"string");return"symbol"==_typeof(i)?i:i+""}function _toPrimitive(t,r){if("object"!=_typeof(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||"default");if("object"!=_typeof(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}import React from"react";import{connect}from"react-redux";import PropTypes from"prop-types";import{setCurrentTask}from"../actions/task";import LocaleUtils from"../utils/LocaleUtils";import MiscUtils from"../utils/MiscUtils";var TourGuide=/*#__PURE__*/function(_React$Component){function TourGuide(){var _this;_classCallCheck(this,TourGuide);for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key]}_this=_callSuper(this,TourGuide,[].concat(args));_defineProperty(_this,"state",{tourSteps:[],driverObj:null,currentStepIndex:0,rawStepData:[]});_defineProperty(_this,"handleClick",function(driverObj,direction){var _this$state=_this.state,currentStepIndex=_this$state.currentStepIndex,rawStepData=_this$state.rawStepData;var currentRawStep=rawStepData[currentStepIndex];var actionNames=direction==="next"?currentRawStep===null||currentRawStep===void 0?void 0:currentRawStep.onNextClick:currentRawStep===null||currentRawStep===void 0?void 0:currentRawStep.onPrevClick;if(Array.isArray(actionNames)){actionNames.forEach(function(actionName){return _this.runCustomAction(actionName)})}else if(actionNames){_this.runCustomAction(actionNames)}_this.setState(function(prevState){return{currentStepIndex:direction==="next"?prevState.currentStepIndex+1:Math.max(prevState.currentStepIndex-1,0)}},function(){direction==="next"?driverObj.moveNext():driverObj.movePrevious()})});_defineProperty(_this,"runCustomAction",function(actionName){var _document$querySelect,_document$querySelect2;if(actionName.startsWith("setTask:")){_this.props.setCurrentTask(actionName.replace("setTask:","").trim());return}if(actionName.startsWith("openSubMenu:")){var submenuName=actionName.replace("openSubMenu:","").trim();var submenu=Array.from(document.querySelectorAll(".appmenu-submenu")).find(function(el){return el.querySelector("span.icon-".concat(submenuName))});if(submenu){submenu.classList.add("appmenu-submenu-expanded")}else{/* eslint-disable-next-line */console.warn("Submenu with icon-".concat(submenuName," not found."))}return}if(actionName.startsWith("closeSubMenu:")){var _submenuName=actionName.replace("closeSubMenu:","").trim();var _submenu=Array.from(document.querySelectorAll(".appmenu-submenu")).find(function(el){return el.querySelector("span.icon-".concat(_submenuName))});if(_submenu){_submenu.classList.remove("appmenu-submenu-expanded")}else{/* eslint-disable-next-line */console.warn("Submenu with icon-".concat(_submenuName," not found."))}return}switch(actionName){case"openMenu":(_document$querySelect=document.querySelector(".AppMenu"))===null||_document$querySelect===void 0||_document$querySelect.classList.add("appmenu-visible");break;case"closeMenu":(_document$querySelect2=document.querySelector(".AppMenu"))===null||_document$querySelect2===void 0||_document$querySelect2.classList.remove("appmenu-visible");break;default:/* eslint-disable-next-line */console.warn("Unknown action:",actionName)}});_defineProperty(_this,"startTour",function(){var _this$state$driverObj;(_this$state$driverObj=_this.state.driverObj)===null||_this$state$driverObj===void 0||_this$state$driverObj.drive()});return _this}_inherits(TourGuide,_React$Component);return _createClass(TourGuide,[{key:"componentDidMount",value:function componentDidMount(){var _this2=this;if(!this.props.tourGuideUrl){return}fetch(MiscUtils.resolveAssetsPath(this.props.tourGuideUrl)).then(function(response){return response.json()}).then(function(data){var steps=data.map(function(step){return{element:step.selector,popover:{title:step.title,description:step.content,side:step.side,align:step.align},disableActiveInteraction:step.disableActiveInteraction}});_this2.setState({tourSteps:steps,rawStepData:data})})["catch"](function(err){/* eslint-disable-next-line */console.error("Failed to fetch tour guide data:",err)})}},{key:"componentDidUpdate",value:function componentDidUpdate(prevProps){var _this3=this;if(this.props.active&&!prevProps.active&&this.state.tourSteps){var tourSteps=this.state.tourSteps;import("driver.js/dist/driver.css");import("./style/TourGuide.css");import("driver.js").then(function(module){var driver=module.driver;var driverObj=driver({popoverClass:"driverjs-theme",nextBtnText:LocaleUtils.tr("tourguide.next")+" \u2192",prevBtnText:"\u2190 "+LocaleUtils.tr("tourguide.previous"),doneBtnText:LocaleUtils.tr("tourguide.done"),progressText:"{{current}} / {{total}}",showProgress:true,steps:tourSteps,onNextClick:function onNextClick(){return _this3.handleClick(driverObj,"next")},onPrevClick:function onPrevClick(){return _this3.handleClick(driverObj,"prev")},onDestroyed:function onDestroyed(){var _document$querySelect3;document.querySelectorAll(".AppMenu .appmenu-submenu").forEach(function(submenu){return submenu.classList.remove("appmenu-submenu-expanded")});(_document$querySelect3=document.querySelector(".AppMenu"))===null||_document$querySelect3===void 0||_document$querySelect3.classList.remove("appmenu-visible");_this3.props.setCurrentTask(null)},onHighlightStarted:function onHighlightStarted(_,step){var index=tourSteps.findIndex(function(s){return s.element===step.element});_this3.setState({currentStepIndex:index})}});_this3.setState({driverObj:driverObj},function(){_this3.startTour();_this3.props.setCurrentTask(null)})})["catch"](function(err){/* eslint-disable-next-line */console.error("Failed to load Driver.js:",err)})}}},{key:"render",value:function render(){return null}}])}(React.Component);_defineProperty(TourGuide,"propTypes",{active:PropTypes.bool,setCurrentTask:PropTypes.func,/** Url of the Tourguide JSON configuration. */tourGuideUrl:PropTypes.string});export default connect(function(state){return{active:state.task.id==="TourGuide"}},{setCurrentTask:setCurrentTask})(TourGuide);
|
|
1
|
+
function _typeof(o){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},_typeof(o)}function _classCallCheck(a,n){if(!(a instanceof n))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,r){for(var t=0;t<r.length;t++){var o=r[t];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,_toPropertyKey(o.key),o)}}function _createClass(e,r,t){return r&&_defineProperties(e.prototype,r),t&&_defineProperties(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function _callSuper(t,o,e){return o=_getPrototypeOf(o),_possibleConstructorReturn(t,_isNativeReflectConstruct()?Reflect.construct(o,e||[],_getPrototypeOf(t).constructor):o.apply(t,e))}function _possibleConstructorReturn(t,e){if(e&&("object"==_typeof(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(t)}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _isNativeReflectConstruct(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(_isNativeReflectConstruct=function _isNativeReflectConstruct(){return!!t})()}function _getPrototypeOf(t){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},_getPrototypeOf(t)}function _inherits(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&_setPrototypeOf(t,e)}function _setPrototypeOf(t,e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},_setPrototypeOf(t,e)}function _defineProperty(e,r,t){return(r=_toPropertyKey(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function _toPropertyKey(t){var i=_toPrimitive(t,"string");return"symbol"==_typeof(i)?i:i+""}function _toPrimitive(t,r){if("object"!=_typeof(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||"default");if("object"!=_typeof(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}import React from"react";import{connect}from"react-redux";import PropTypes from"prop-types";import{setCurrentTask}from"../actions/task";import LocaleUtils from"../utils/LocaleUtils";import MiscUtils from"../utils/MiscUtils";var TourGuide=/*#__PURE__*/function(_React$Component){function TourGuide(){var _this;_classCallCheck(this,TourGuide);for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key]}_this=_callSuper(this,TourGuide,[].concat(args));_defineProperty(_this,"state",{tourSteps:[],driverObj:null,currentStepIndex:0,rawStepData:[]});_defineProperty(_this,"handleClick",function(driverObj,direction){var _this$state=_this.state,currentStepIndex=_this$state.currentStepIndex,rawStepData=_this$state.rawStepData;var currentRawStep=rawStepData[currentStepIndex];var actionNames=direction==="next"?currentRawStep===null||currentRawStep===void 0?void 0:currentRawStep.onNextClick:currentRawStep===null||currentRawStep===void 0?void 0:currentRawStep.onPrevClick;if(Array.isArray(actionNames)){actionNames.forEach(function(actionName){return _this.runCustomAction(actionName)})}else if(actionNames){_this.runCustomAction(actionNames)}_this.setState(function(prevState){return{currentStepIndex:direction==="next"?prevState.currentStepIndex+1:Math.max(prevState.currentStepIndex-1,0)}},function(){direction==="next"?driverObj.moveNext():driverObj.movePrevious()})});_defineProperty(_this,"runCustomAction",function(actionName){var _document$querySelect,_document$querySelect2;if(actionName.startsWith("setTask:")){_this.props.setCurrentTask(actionName.replace("setTask:","").trim());return}if(actionName.startsWith("openSubMenu:")){var submenuName=actionName.replace("openSubMenu:","").trim();var submenu=Array.from(document.querySelectorAll(".appmenu-submenu")).find(function(el){return el.querySelector("span.icon-".concat(submenuName))});if(submenu){submenu.classList.add("appmenu-submenu-expanded")}else{/* eslint-disable-next-line */console.warn("Submenu with icon-".concat(submenuName," not found."))}return}if(actionName.startsWith("closeSubMenu:")){var _submenuName=actionName.replace("closeSubMenu:","").trim();var _submenu=Array.from(document.querySelectorAll(".appmenu-submenu")).find(function(el){return el.querySelector("span.icon-".concat(_submenuName))});if(_submenu){_submenu.classList.remove("appmenu-submenu-expanded")}else{/* eslint-disable-next-line */console.warn("Submenu with icon-".concat(_submenuName," not found."))}return}switch(actionName){case"openMenu":(_document$querySelect=document.querySelector(".AppMenu"))===null||_document$querySelect===void 0||_document$querySelect.classList.add("appmenu-visible");break;case"closeMenu":(_document$querySelect2=document.querySelector(".AppMenu"))===null||_document$querySelect2===void 0||_document$querySelect2.classList.remove("appmenu-visible");break;default:/* eslint-disable-next-line */console.warn("Unknown action:",actionName)}});_defineProperty(_this,"startTour",function(){var _this$state$driverObj;(_this$state$driverObj=_this.state.driverObj)===null||_this$state$driverObj===void 0||_this$state$driverObj.drive()});return _this}_inherits(TourGuide,_React$Component);return _createClass(TourGuide,[{key:"componentDidMount",value:function componentDidMount(){var _this2=this;if(!this.props.tourGuideUrl){return}fetch(MiscUtils.resolveAssetsPath(this.props.tourGuideUrl)).then(function(response){return response.json()}).then(function(data){var steps=data.map(function(step){return{element:step.selector,popover:{title:step.title,description:step.content,side:step.side,align:step.align},disableActiveInteraction:step.disableActiveInteraction}});_this2.setState({tourSteps:steps,rawStepData:data})})["catch"](function(err){/* eslint-disable-next-line */console.error("Failed to fetch tour guide data:",err)})}},{key:"componentDidUpdate",value:function componentDidUpdate(prevProps){var _this3=this;if(this.props.active&&!prevProps.active&&this.state.tourSteps){var tourSteps=this.state.tourSteps;import("driver.js/dist/driver.css");import("./style/TourGuide.css");import("driver.js").then(function(module){var driver=module.driver;var driverObj=driver({popoverClass:"driverjs-theme",nextBtnText:LocaleUtils.tr("tourguide.next")+" \u2192",prevBtnText:"\u2190 "+LocaleUtils.tr("tourguide.previous"),doneBtnText:LocaleUtils.tr("tourguide.done"),progressText:"{{current}} / {{total}}",showProgress:true,steps:tourSteps,onNextClick:function onNextClick(){return _this3.handleClick(driverObj,"next")},onPrevClick:function onPrevClick(){return _this3.handleClick(driverObj,"prev")},onDestroyed:function onDestroyed(){var _document$querySelect3;document.querySelectorAll(".AppMenu .appmenu-submenu").forEach(function(submenu){return submenu.classList.remove("appmenu-submenu-expanded")});(_document$querySelect3=document.querySelector(".AppMenu"))===null||_document$querySelect3===void 0||_document$querySelect3.classList.remove("appmenu-visible");_this3.props.setCurrentTask(null)},onHighlightStarted:function onHighlightStarted(_,step){var index=tourSteps.findIndex(function(s){return s.element===step.element});_this3.setState({currentStepIndex:index})}});_this3.setState({driverObj:driverObj},function(){_this3.startTour();_this3.props.setCurrentTask(null)})})["catch"](function(err){/* eslint-disable-next-line */console.error("Failed to load Driver.js:",err)})}}},{key:"render",value:function render(){return null}}])}(React.Component);_defineProperty(TourGuide,"propTypes",{active:PropTypes.bool,setCurrentTask:PropTypes.func,/** Url of the Tourguide JSON configuration. */tourGuideUrl:PropTypes.string});_defineProperty(TourGuide,"defaultProps",{tourGuideUrl:":/tourguide.json"});export default connect(function(state){return{active:state.task.id==="TourGuide"}},{setCurrentTask:setCurrentTask})(TourGuide);
|
package/reducers/map.js
CHANGED
|
@@ -7,5 +7,5 @@ var _excluded=["type"];function _typeof(o){"@babel/helpers - typeof";return _typ
|
|
|
7
7
|
* LICENSE file in the root directory of this source tree.
|
|
8
8
|
*/import isEmpty from"lodash.isempty";import{CHANGE_MAP_VIEW,CONFIGURE_MAP,CHANGE_ZOOM_LVL,ZOOM_TO_EXTENT,ZOOM_TO_POINT,PAN_TO,CHANGE_ROTATION,CLICK_ON_MAP,TOGGLE_MAPTIPS,SET_DISPLAY_CRS,SET_SNAPPING_CONFIG}from"../actions/map";import ConfigUtils from"../utils/ConfigUtils";import CoordinatesUtils from"../utils/CoordinatesUtils";import MapUtils from"../utils/MapUtils";import{UrlParams}from"../utils/PermaLinkUtils";var defaultState={bbox:{bounds:[0,0,0,0],rotation:0},center:[0,0],dpi:MapUtils.DEFAULT_SCREEN_DPI,projection:"EPSG:3857",displayCrs:"EPSG:3857",zoom:0,scales:[0],resolutions:[0],click:null,size:null,snapping:{enabled:false,active:false}};export default function map(){var state=arguments.length>0&&arguments[0]!==undefined?arguments[0]:defaultState;var action=arguments.length>1?arguments[1]:undefined;// Always reset mapStateSource, CHANGE_MAP_VIEW will set it if necessary
|
|
9
9
|
if(state.mapStateSource){state=_objectSpread(_objectSpread({},state),{},{mapStateSource:null})}switch(action.type){case CHANGE_MAP_VIEW:{// eslint-disable-next-line
|
|
10
|
-
var type=action.type,params=_objectWithoutProperties(action,_excluded);var newState=_objectSpread(_objectSpread({},state),params);var newParams={};var positionFormat=ConfigUtils.getConfigProp("urlPositionFormat");var positionCrs=ConfigUtils.getConfigProp("urlPositionCrs")||newState.projection;var prec=CoordinatesUtils.getPrecision(positionCrs);if(positionFormat==="centerAndZoom"){var center=CoordinatesUtils.reproject(newState.center,newState.projection,positionCrs);var scale=Math.round(MapUtils.computeForZoom(newState.scales,newState.zoom));Object.assign(newParams,{c:center.map(function(x){return x.toFixed(prec)}).join(","),s:scale})}else{var bounds=CoordinatesUtils.reprojectBbox(newState.bbox.bounds,newState.projection,positionCrs);Object.assign(newParams,{e:bounds.map(function(x){return x.toFixed(prec)}).join(",")})}if(positionCrs!==newState.projection){Object.assign(newParams,{crs:positionCrs})}if(!isEmpty(newParams)){UrlParams.updateParams(newParams)}return newState}case CONFIGURE_MAP:{var resolutions=MapUtils.getResolutionsForScales(action.scales,action.crs,state.dpi);var _bounds;var _center;var zoom;if(action.view.center){_center=CoordinatesUtils.reproject(action.view.center,action.view.crs||action.crs,action.crs);zoom=action.view.zoom;_bounds=MapUtils.getExtentForCenterAndZoom(_center,zoom,resolutions,state.size)}else{_bounds=CoordinatesUtils.reprojectBbox(action.view.bounds,action.view.crs||state.projection,action.crs);_center=[0.5*(_bounds[0]+_bounds[2]),0.5*(_bounds[1]+_bounds[3])];zoom=MapUtils.getZoomForExtent(_bounds,resolutions,state.size,0,action.scales.length-1)}return _objectSpread(_objectSpread({},state),{},{bbox:_objectSpread(_objectSpread({},state.bbox),{},{bounds:_bounds}),center:_center,zoom:zoom,projection:action.crs,displayCrs:action.crs,scales:action.scales,resolutions:resolutions})}case CHANGE_ZOOM_LVL:{return _objectSpread(_objectSpread({},state),{},{zoom:action.zoom})}case ZOOM_TO_EXTENT:{// Ugh...
|
|
10
|
+
var type=action.type,params=_objectWithoutProperties(action,_excluded);var newState=_objectSpread(_objectSpread({},state),params);var newParams={};var positionFormat=ConfigUtils.getConfigProp("urlPositionFormat");var positionCrs=ConfigUtils.getConfigProp("urlPositionCrs")||newState.projection;var prec=CoordinatesUtils.getPrecision(positionCrs);if(positionFormat==="centerAndZoom"){var center=CoordinatesUtils.reproject(newState.center,newState.projection,positionCrs);var scale=Math.round(MapUtils.computeForZoom(newState.scales,newState.zoom));Object.assign(newParams,{c:center.map(function(x){return x.toFixed(prec)}).join(","),s:scale})}else{var bounds=CoordinatesUtils.reprojectBbox(newState.bbox.bounds,newState.projection,positionCrs);Object.assign(newParams,{e:bounds.map(function(x){return x.toFixed(prec)}).join(",")})}if(positionCrs!==newState.projection){Object.assign(newParams,{crs:positionCrs})}if(!isEmpty(newParams)){UrlParams.updateParams(newParams)}return newState}case CONFIGURE_MAP:{var _action$defaultdispla;var resolutions=MapUtils.getResolutionsForScales(action.scales,action.crs,state.dpi);var _bounds;var _center;var zoom;if(action.view.center){_center=CoordinatesUtils.reproject(action.view.center,action.view.crs||action.crs,action.crs);zoom=action.view.zoom;_bounds=MapUtils.getExtentForCenterAndZoom(_center,zoom,resolutions,state.size)}else{_bounds=CoordinatesUtils.reprojectBbox(action.view.bounds,action.view.crs||state.projection,action.crs);_center=[0.5*(_bounds[0]+_bounds[2]),0.5*(_bounds[1]+_bounds[3])];zoom=MapUtils.getZoomForExtent(_bounds,resolutions,state.size,0,action.scales.length-1)}return _objectSpread(_objectSpread({},state),{},{bbox:_objectSpread(_objectSpread({},state.bbox),{},{bounds:_bounds}),center:_center,zoom:zoom,projection:action.crs,displayCrs:(_action$defaultdispla=action.defaultdisplaycrs)!==null&&_action$defaultdispla!==void 0?_action$defaultdispla:action.crs,scales:action.scales,resolutions:resolutions})}case CHANGE_ZOOM_LVL:{return _objectSpread(_objectSpread({},state),{},{zoom:action.zoom})}case ZOOM_TO_EXTENT:{// Ugh...
|
|
11
11
|
var topbarHeight=parseFloat(document.querySelector(":root").style.getPropertyValue("--topbar-height").replace(/px$/,""));var bottombarHeight=parseFloat(document.querySelector(":root").style.getPropertyValue("--bottombar-height").replace(/px$/,""));var _bounds2=CoordinatesUtils.reprojectBbox(action.extent,action.crs||state.projection,state.projection);var padding=(topbarHeight+bottombarHeight)/state.size.height;var width=_bounds2[2]-_bounds2[0];var height=_bounds2[3]-_bounds2[1];_bounds2[0]-=padding*width;_bounds2[2]+=padding*width;_bounds2[1]-=padding*height;_bounds2[3]+=padding*height;return _objectSpread(_objectSpread({},state),{},{center:[0.5*(_bounds2[0]+_bounds2[2]),0.5*(_bounds2[1]+_bounds2[3])],zoom:MapUtils.getZoomForExtent(_bounds2,state.resolutions,state.size,0,state.scales.length-1)+action.zoomOffset,bbox:_objectSpread(_objectSpread({},state.bbox),{},{bounds:_bounds2})})}case ZOOM_TO_POINT:{return _objectSpread(_objectSpread({},state),{},{center:CoordinatesUtils.reproject(action.pos,action.crs||state.projection,state.projection),zoom:action.zoom})}case PAN_TO:{return _objectSpread(_objectSpread({},state),{},{center:CoordinatesUtils.reproject(action.pos,action.crs||state.projection,state.projection)})}case CHANGE_ROTATION:{return _objectSpread(_objectSpread({},state),{},{bbox:_objectSpread(_objectSpread({},state.bbox),{},{rotation:action.rotation})})}case CLICK_ON_MAP:{return _objectSpread(_objectSpread({},state),{},{click:action.click})}case TOGGLE_MAPTIPS:{return _objectSpread(_objectSpread({},state),{},{maptips:action.active})}case SET_SNAPPING_CONFIG:{return _objectSpread(_objectSpread({},state),{},{snapping:{enabled:action.enabled,active:action.active}})}case SET_DISPLAY_CRS:{return _objectSpread(_objectSpread({},state),{},{displayCrs:action.displayCrs})}default:return state}}
|
package/scripts/themesConfig.js
CHANGED
|
@@ -36,13 +36,13 @@ var drawingOrder=(capabilities.Capability.LayerDrawingOrder||"").split(",").map(
|
|
|
36
36
|
resultItem.url=configItem.url;resultItem.id=uniqueThemeId(wmsName);resultItem.name=topLayer.Name;resultItem.title=wmsTitle;resultItem.description=configItem.description||"";resultItem.attribution={Title:configItem.attribution||"",OnlineResource:configItem.attributionUrl||""};// service info
|
|
37
37
|
resultItem["abstract"]=capabilities.Service.Abstract||"";resultItem.keywords=keywords.join(", ");resultItem.onlineResource=capabilities.Service.OnlineResource.$_href;resultItem.contact={person:objectPath.get(capabilities,"Service.ContactInformation.ContactPersonPrimary.ContactPerson",""),organization:objectPath.get(capabilities,"Service.ContactInformation.ContactPersonPrimary.ContactOrganization",""),position:objectPath.get(capabilities,"Service.ContactInformation.ContactPosition",""),phone:objectPath.get(capabilities,"Service.ContactInformation.ContactVoiceTelephone",""),email:objectPath.get(capabilities,"Service.ContactInformation.ContactElectronicMailAddress","")};resultItem.format=configItem.format;resultItem.availableFormats=capabilities.Capability.Request.GetMap.Format;resultItem.tiled=configItem.tiled;resultItem.tileSize=configItem.tileSize;resultItem.version=configItem.version?configItem.version:config.defaultWMSVersion;resultItem.infoFormats=capabilities.Capability.Request.GetFeatureInfo.Format;// use geographic bounding box for theme, as default CRS may have inverted axis order with WMS 1.3.0
|
|
38
38
|
var bounds=[parseFloat(topLayer.EX_GeographicBoundingBox.westBoundLongitude),parseFloat(topLayer.EX_GeographicBoundingBox.southBoundLatitude),parseFloat(topLayer.EX_GeographicBoundingBox.eastBoundLongitude),parseFloat(topLayer.EX_GeographicBoundingBox.northBoundLatitude)];resultItem.bbox={crs:"EPSG:4326",bounds:bounds};if(configItem.extent){resultItem.initialBbox={crs:configItem.mapCrs||result.themes.defaultMapCrs,bounds:configItem.extent}}else{resultItem.initialBbox=resultItem.bbox}resultItem.scales=configItem.scales;resultItem.printScales=configItem.printScales;resultItem.printResolutions=configItem.printResolutions;resultItem.printGrid=configItem.printGrid;// NOTE: skip root WMS layer
|
|
39
|
-
resultItem.sublayers=isEmpty(layerTree)?[]:layerTree[0].sublayers;resultItem.expanded=true;resultItem.externalLayers=externalLayers;resultItem.backgroundLayers=configItem.backgroundLayers;resultItem.searchProviders=configItem.searchProviders;resultItem.additionalMouseCrs=configItem.additionalMouseCrs;resultItem.mapCrs=configItem.mapCrs||result.themes.defaultMapCrs;if(printTemplates.length>0){resultItem.print=printTemplates}resultItem.drawingOrder=drawingOrder;if(configItem.extraDxfParameters){resultItem.extraDxfParameters=configItem.extraDxfParameters}if(configItem.extraPrintParameters){resultItem.extraPrintParameters=configItem.extraPrintParameters}if(configItem.legendUrl){resultItem.legendUrl=configItem.legendUrl}else{resultItem.legendUrl=capabilities.Capability.Request.GetLegendGraphic.DCPType.HTTP.Get.OnlineResource.$_href.replace(/\?$/,"")+"?"+(configItem.extraLegendParameters?configItem.extraLegendParameters:"")}if(configItem.featureInfoUrl){resultItem.featureInfoUrl=configItem.featureInfoUrl}else{resultItem.featureInfoUrl=capabilities.Capability.Request.GetFeatureInfo.DCPType.HTTP.Get.OnlineResource.$_href.replace(/\?$/,"")+"?"}if(configItem.printUrl){resultItem.printUrl=configItem.printUrl}else{resultItem.printUrl=capabilities.Capability.Request.GetPrint.DCPType.HTTP.Get.OnlineResource.$_href.replace(/\?$/,"")+"?"}if(configItem.printLabelForSearchResult){resultItem.printLabelForSearchResult=configItem.printLabelForSearchResult}if(configItem.printLabelForAttribution){resultItem.printLabelForAttribution=configItem.printLabelForAttribution}if(configItem.printLabelConfig){resultItem.printLabelConfig=configItem.printLabelConfig}if(configItem.watermark){resultItem.watermark=configItem.watermark}if(configItem.pluginData){resultItem.pluginData=configItem.pluginData}if(configItem.predefinedFilters){resultItem.predefinedFilters=configItem.predefinedFilters}if(configItem.snapping){resultItem.snapping=configItem.snapping}if(configItem.minSearchScaleDenom){resultItem.minSearchScaleDenom=configItem.minSearchScaleDenom}else if(configItem.minSearchScale){// Legacy name
|
|
39
|
+
resultItem.sublayers=isEmpty(layerTree)?[]:layerTree[0].sublayers;resultItem.expanded=true;resultItem.externalLayers=externalLayers;resultItem.backgroundLayers=configItem.backgroundLayers;resultItem.searchProviders=configItem.searchProviders;resultItem.additionalMouseCrs=configItem.additionalMouseCrs;resultItem.mapCrs=configItem.mapCrs||result.themes.defaultMapCrs;resultItem.defaultDisplayCrs=configItem.defaultDisplayCrs;if(printTemplates.length>0){resultItem.print=printTemplates}resultItem.drawingOrder=drawingOrder;if(configItem.extraDxfParameters){resultItem.extraDxfParameters=configItem.extraDxfParameters}if(configItem.extraPrintParameters){resultItem.extraPrintParameters=configItem.extraPrintParameters}if(configItem.legendUrl){resultItem.legendUrl=configItem.legendUrl}else{resultItem.legendUrl=capabilities.Capability.Request.GetLegendGraphic.DCPType.HTTP.Get.OnlineResource.$_href.replace(/\?$/,"")+"?"+(configItem.extraLegendParameters?configItem.extraLegendParameters:"")}if(configItem.featureInfoUrl){resultItem.featureInfoUrl=configItem.featureInfoUrl}else{resultItem.featureInfoUrl=capabilities.Capability.Request.GetFeatureInfo.DCPType.HTTP.Get.OnlineResource.$_href.replace(/\?$/,"")+"?"}if(configItem.printUrl){resultItem.printUrl=configItem.printUrl}else{resultItem.printUrl=capabilities.Capability.Request.GetPrint.DCPType.HTTP.Get.OnlineResource.$_href.replace(/\?$/,"")+"?"}if(configItem.printLabelForSearchResult){resultItem.printLabelForSearchResult=configItem.printLabelForSearchResult}if(configItem.printLabelForAttribution){resultItem.printLabelForAttribution=configItem.printLabelForAttribution}if(configItem.printLabelConfig){resultItem.printLabelConfig=configItem.printLabelConfig}if(configItem.watermark){resultItem.watermark=configItem.watermark}if(configItem.pluginData){resultItem.pluginData=configItem.pluginData}if(configItem.predefinedFilters){resultItem.predefinedFilters=configItem.predefinedFilters}if(configItem.snapping){resultItem.snapping=configItem.snapping}if(configItem.minSearchScaleDenom){resultItem.minSearchScaleDenom=configItem.minSearchScaleDenom}else if(configItem.minSearchScale){// Legacy name
|
|
40
40
|
resultItem.minSearchScaleDenom=configItem.minSearchScale}if(configItem.themeInfoLinks){resultItem.themeInfoLinks=configItem.themeInfoLinks}if(configItem.layerTreeHiddenSublayers){resultItem.layerTreeHiddenSublayers=configItem.layerTreeHiddenSublayers}resultItem.skipEmptyFeatureAttributes=configItem.skipEmptyFeatureAttributes;resultItem.config=configItem.config;resultItem.flags=configItem.flags;resultItem.mapTips=configItem.mapTips;resultItem.userMap=configItem.userMap;resultItem.map3d=configItem.map3d;resultItem.editConfig=getEditConfig(configItem.editConfig);// set default theme
|
|
41
41
|
if(configItem["default"]||!result.themes.defaultTheme){result.themes.defaultTheme=resultItem.id}// get thumbnail asynchronously
|
|
42
42
|
getThumbnail(configItem,resultItem,visibleLayers,crs,extent,resolve,proxy)})["catch"](function(error){/* eslint-disable-next-line */console.error("ERROR reading WMS GetProjectSettings of "+configItem.url+":\n",error);resultItem.error="Could not read GetProjectSettings";resultItem.title="Error";// finish task
|
|
43
43
|
reject(resultItem.error)})})}// asynchronous tasks
|
|
44
44
|
var tasks=[];// recursively get themes for groups
|
|
45
45
|
function getGroupThemes(config,configGroup,result,resultGroup,proxy,groupCounter){var _iterator5=_createForOfIteratorHelper(configGroup.items),_step5;try{for(_iterator5.s();!(_step5=_iterator5.n()).done;){var item=_step5.value;var itemEntry={};tasks.push(getTheme(config,item,result,itemEntry,proxy));resultGroup.items.push(itemEntry)}}catch(err){_iterator5.e(err)}finally{_iterator5.f()}if(configGroup.groups!==undefined){var _iterator6=_createForOfIteratorHelper(configGroup.groups),_step6;try{for(_iterator6.s();!(_step6=_iterator6.n()).done;){var group=_step6.value;var groupEntry={id:"g"+ ++groupCounter,title:group.title,items:[],subdirs:[]};getGroupThemes(config,group,result,groupEntry,proxy,groupCounter);resultGroup.subdirs.push(groupEntry)}}catch(err){_iterator6.e(err)}finally{_iterator6.f()}}}function genThemes(themesConfig){// load themesConfig.json
|
|
46
|
-
var config=JSON.parse(fs.readFileSync(process.cwd()+"/"+themesConfig,"utf8"));var result={themes:{title:"root",subdirs:[],items:[],defaultTheme:config.defaultTheme,defaultMapCrs:config.defaultMapCrs||"EPSG:3857",defaultScales:config.defaultScales,defaultPrintScales:config.defaultPrintScales,defaultPrintResolutions:config.defaultPrintResolutions,defaultPrintGrid:config.defaultPrintGrid,defaultSearchProviders:config.defaultSearchProviders,defaultBackgroundLayers:config.defaultBackgroundLayers||[],externalLayers:config.themes.externalLayers||[],pluginData:config.themes.pluginData,themeInfoLinks:config.themes.themeInfoLinks,backgroundLayers:config.themes.backgroundLayers.map(function(bglayer){bglayer.attribution={Title:bglayer.attribution,OnlineResource:bglayer.attributionUrl};delete bglayer.attributionUrl;return bglayer}),defaultWMSVersion:config.defaultWMSVersion}};var proxy=config.proxy||null;var groupCounter=0;getGroupThemes(config,config.themes,result,result.themes,proxy,groupCounter);Promise.all(tasks).then(function(){for(var _i=0,_autogenExternalLayer=autogenExternalLayers;_i<_autogenExternalLayer.length;_i++){var entry=_autogenExternalLayer[_i];var cpos=entry.indexOf(":");var hpos=entry.lastIndexOf("#");var type=entry.slice(0,cpos);var url=entry.slice(cpos+1,hpos);var layername=entry.slice(hpos+1);result.themes.externalLayers.push({name:entry,type:type,url:url,params:{LAYERS:layername},infoFormats:["text/plain"]})}if(result.themes.backgroundLayers!==undefined){// get thumbnails for background layers
|
|
46
|
+
var config=JSON.parse(fs.readFileSync(process.cwd()+"/"+themesConfig,"utf8"));var result={themes:{title:"root",subdirs:[],items:[],defaultTheme:config.defaultTheme,defaultMapCrs:config.defaultMapCrs||"EPSG:3857",defaultDisplayCrs:config.defaultDisplayCrs,defaultScales:config.defaultScales,defaultPrintScales:config.defaultPrintScales,defaultPrintResolutions:config.defaultPrintResolutions,defaultPrintGrid:config.defaultPrintGrid,defaultSearchProviders:config.defaultSearchProviders,defaultBackgroundLayers:config.defaultBackgroundLayers||[],externalLayers:config.themes.externalLayers||[],pluginData:config.themes.pluginData,themeInfoLinks:config.themes.themeInfoLinks,backgroundLayers:config.themes.backgroundLayers.map(function(bglayer){bglayer.attribution={Title:bglayer.attribution,OnlineResource:bglayer.attributionUrl};delete bglayer.attributionUrl;return bglayer}),defaultWMSVersion:config.defaultWMSVersion}};var proxy=config.proxy||null;var groupCounter=0;getGroupThemes(config,config.themes,result,result.themes,proxy,groupCounter);Promise.all(tasks).then(function(){for(var _i=0,_autogenExternalLayer=autogenExternalLayers;_i<_autogenExternalLayer.length;_i++){var entry=_autogenExternalLayer[_i];var cpos=entry.indexOf(":");var hpos=entry.lastIndexOf("#");var type=entry.slice(0,cpos);var url=entry.slice(cpos+1,hpos);var layername=entry.slice(hpos+1);result.themes.externalLayers.push({name:entry,type:type,url:url,params:{LAYERS:layername},infoFormats:["text/plain"]})}if(result.themes.backgroundLayers!==undefined){// get thumbnails for background layers
|
|
47
47
|
result.themes.backgroundLayers.map(function(backgroundLayer){var imgPath="img/mapthumbs/"+backgroundLayer.thumbnail;if(!fs.existsSync("./static/assets/"+imgPath)){imgPath="img/mapthumbs/default.jpg"}backgroundLayer.thumbnail=imgPath})}// write config file
|
|
48
48
|
fs.writeFile(process.cwd()+"/static/themes.json",JSON.stringify(result,null,2),function(error){if(error){/* eslint-disable-next-line */console.error("ERROR:",error);process.exit(1)}else{/* eslint-disable-next-line */console.log("\nCreated themes.json\n\n")}})})["catch"](function(error){/* eslint-disable-next-line */console.error("ERROR:",error);process.exit(1)});return result}lookup(os.hostname(),{hints:dns.ADDRCONFIG}).then(function(result){return lookupService(result.address,0)}).then(function(result){hostFqdn="http://"+result.hostname;/* eslint-disable-next-line */console.log("Reading "+themesConfigPath);genThemes(themesConfigPath)})["catch"](function(error){process.nextTick(function(){throw error})});
|
package/scripts/themesConfig.py
CHANGED
|
@@ -489,6 +489,10 @@ def getTheme(config, configItem, result, resultItem):
|
|
|
489
489
|
resultItem["mapCrs"] = configItem["mapCrs"]
|
|
490
490
|
else:
|
|
491
491
|
resultItem["mapCrs"] = result["themes"]["defaultMapCrs"]
|
|
492
|
+
if "defaultDisplayCrs" in configItem:
|
|
493
|
+
resultItem["defaultDisplayCrs"] = configItem["defaultDisplayCrs"]
|
|
494
|
+
else:
|
|
495
|
+
resultItem["defaultDisplayCrs"] = result["themes"]["defaultDisplayCrs"]
|
|
492
496
|
if printTemplates:
|
|
493
497
|
resultItem["print"] = printTemplates
|
|
494
498
|
resultItem["drawingOrder"] = drawingOrder
|
|
@@ -605,7 +609,6 @@ def genThemes(themesConfig):
|
|
|
605
609
|
config = json.load(fh)
|
|
606
610
|
except:
|
|
607
611
|
return {"error": "Failed to read themesConfig.json"}
|
|
608
|
-
|
|
609
612
|
result = {
|
|
610
613
|
"themes": {
|
|
611
614
|
"title": "root",
|
|
@@ -623,7 +626,8 @@ def genThemes(themesConfig):
|
|
|
623
626
|
"themeInfoLinks": config["themes"]["themeInfoLinks"] if "themeInfoLinks" in config["themes"] else [],
|
|
624
627
|
"externalLayers": config["themes"]["externalLayers"] if "externalLayers" in config["themes"] else [],
|
|
625
628
|
"backgroundLayers": list(map(reformatAttribution, config["themes"]["backgroundLayers"])),
|
|
626
|
-
"defaultWMSVersion": config["defaultWMSVersion"] if "defaultWMSVersion" in config else None
|
|
629
|
+
"defaultWMSVersion": config["defaultWMSVersion"] if "defaultWMSVersion" in config else None,
|
|
630
|
+
"defaultDisplayCrs": config["defaultDisplayCrs"] if "defaultDisplayCrs" in config else None
|
|
627
631
|
}
|
|
628
632
|
}
|
|
629
633
|
groupCounter = 0
|
package/utils/MeasureUtils.js
CHANGED
|
@@ -5,5 +5,5 @@
|
|
|
5
5
|
*
|
|
6
6
|
* This source code is licensed under the BSD-style license found in the
|
|
7
7
|
* LICENSE file in the root directory of this source tree.
|
|
8
|
-
*/import ol from"openlayers";import ConfigUtils from"./ConfigUtils";import CoordinatesUtils from"./CoordinatesUtils";import LocaleUtils from"./LocaleUtils";var MeasureUtils={getFormattedBearingValue:function getFormattedBearingValue(azimuth){var bearing="";if(
|
|
8
|
+
*/import ol from"openlayers";import ConfigUtils from"./ConfigUtils";import CoordinatesUtils from"./CoordinatesUtils";import LocaleUtils from"./LocaleUtils";var MeasureUtils={getFormattedBearingValue:function getFormattedBearingValue(){var azimuth=arguments.length>0&&arguments[0]!==undefined?arguments[0]:0;var format=ConfigUtils.getConfigProp("bearingFormat")||"bearing";var precision=ConfigUtils.getConfigProp("bearingPrecision")||0;var roundToPrecision=function roundToPrecision(val){return Math.round((val+Number.EPSILON)*Math.pow(10,precision))/Math.pow(10,precision)};var normalizedAzimuth=(azimuth%360+360)%360;if(format==="bearing"){var bearing="";if(normalizedAzimuth>=0&&normalizedAzimuth<90){bearing="N ".concat(this.degToDms(normalizedAzimuth)," E")}else if(normalizedAzimuth>90&&normalizedAzimuth<=180){bearing="S ".concat(this.degToDms(180-normalizedAzimuth)," E")}else if(normalizedAzimuth>180&&normalizedAzimuth<270){bearing="S ".concat(this.degToDms(normalizedAzimuth-180)," W")}else if(normalizedAzimuth>=270&&normalizedAzimuth<=360){bearing="N ".concat(this.degToDms(360-normalizedAzimuth)," W")}return bearing}if(format==="azimuth"){return"".concat(roundToPrecision(normalizedAzimuth),"\xB0")}if(format==="azimuth180"){if(normalizedAzimuth<=180){return"".concat(roundToPrecision(normalizedAzimuth),"\xB0")}else{return"".concat(roundToPrecision(normalizedAzimuth-360),"\xB0")}}if(format==="bearingEW"){if(normalizedAzimuth<180){return"".concat(roundToPrecision(normalizedAzimuth),"\xB0E")}else if(normalizedAzimuth>180){return"".concat(roundToPrecision(360-normalizedAzimuth),"\xB0W")}else{return"180\xB0"}}return"".concat(roundToPrecision(normalizedAzimuth),"\xB0")},formatDuration:function formatDuration(valueSeconds){return new Date(valueSeconds*1000).toISOString().slice(11,19)},formatMeasurement:function formatMeasurement(valueMetric,isArea){var unit=arguments.length>2&&arguments[2]!==undefined?arguments[2]:"metric";var decimals=arguments.length>3&&arguments[3]!==undefined?arguments[3]:-1;var withUnit=arguments.length>4&&arguments[4]!==undefined?arguments[4]:true;if(decimals<0){decimals=ConfigUtils.getConfigProp("measurementPrecision",null,2)}var result="";var unitlabel=unit;switch(unit){case"metric":if(isArea){if(valueMetric>1000000){result=LocaleUtils.toLocaleFixed(valueMetric/1000000,decimals);unitlabel="km\xB2"}else if(valueMetric>10000){result=LocaleUtils.toLocaleFixed(valueMetric/10000,decimals);unitlabel="ha"}else{result=LocaleUtils.toLocaleFixed(valueMetric,decimals);unitlabel="m\xB2"}}else{if(valueMetric>1000){result=LocaleUtils.toLocaleFixed(valueMetric/1000,decimals);unitlabel="km"}else{result=LocaleUtils.toLocaleFixed(valueMetric,decimals);unitlabel="m"}}break;case"imperial":if(isArea){if(valueMetric>2.58999*1000000){result=LocaleUtils.toLocaleFixed(valueMetric*3.86102159e-7,decimals);unitlabel="mi\xB2"}else if(valueMetric>4046.86){result=LocaleUtils.toLocaleFixed(valueMetric*0.0001,decimals);unitlabel="acre"}else{result=LocaleUtils.toLocaleFixed(valueMetric*10.7639,decimals);unitlabel="ft\xB2"}}else{if(valueMetric>1609.34){result=LocaleUtils.toLocaleFixed(valueMetric*0.000621371,decimals);unitlabel="mi"}else{result=LocaleUtils.toLocaleFixed(valueMetric*3.28084,decimals);unitlabel="ft"}}break;case"m":result=LocaleUtils.toLocaleFixed(valueMetric,decimals);break;case"ft":result=LocaleUtils.toLocaleFixed(valueMetric*3.28084,decimals);break;case"km":result=LocaleUtils.toLocaleFixed(valueMetric*0.001,decimals);break;case"mi":result=LocaleUtils.toLocaleFixed(valueMetric*0.000621371,decimals);break;case"sqm":result=LocaleUtils.toLocaleFixed(valueMetric,decimals);unitlabel="m\xB2";break;case"sqft":result=LocaleUtils.toLocaleFixed(valueMetric*10.7639,decimals);unitlabel="ft\xB2";break;case"sqkm":result=LocaleUtils.toLocaleFixed(valueMetric*0.000001,decimals);unitlabel="km\xB2";break;case"sqmi":result=LocaleUtils.toLocaleFixed(valueMetric*3.86102159e-7,decimals);unitlabel="mi\xB2";break;case"ha":result=LocaleUtils.toLocaleFixed(valueMetric*0.0001,decimals);break;case"acre":result=LocaleUtils.toLocaleFixed(valueMetric*0.000247105381467,decimals);break;default:result=LocaleUtils.toLocaleFixed(valueMetric,decimals);break}if(withUnit){result+=" "+unitlabel}return result},getFormattedLength:function getFormattedLength(unit,length){var decimals=arguments.length>2&&arguments[2]!==undefined?arguments[2]:2;var withUnit=arguments.length>3&&arguments[3]!==undefined?arguments[3]:true;var result="";switch(unit){case"m":result=LocaleUtils.toLocaleFixed(length,decimals);break;case"ft":result=LocaleUtils.toLocaleFixed(length*3.28084,decimals);break;case"km":result=LocaleUtils.toLocaleFixed(length*0.001,decimals);break;case"mi":result=LocaleUtils.toLocaleFixed(length*0.000621371,decimals);break;default:result=LocaleUtils.toLocaleFixed(length,decimals);break}if(withUnit){result+=" "+unit}return result},convertLength:function convertLength(length,fromUnit,toUnit){var lengthMeters=length;switch(fromUnit){case"m":lengthMeters=length;break;case"ft":lengthMeters=length*0.3048;break;case"km":lengthMeters=length*1000;break;case"mi":lengthMeters=length*1609.34;break;default:lengthMeters=length;break}switch(toUnit){case"m":return lengthMeters;case"ft":return lengthMeters*3.28084;case"km":return lengthMeters*0.001;case"mi":return lengthMeters*0.000621371;default:return lengthMeters}},getFormattedArea:function getFormattedArea(unit,area){var decimals=arguments.length>2&&arguments[2]!==undefined?arguments[2]:2;var withUnit=arguments.length>3&&arguments[3]!==undefined?arguments[3]:true;var result="";var unitlabel=unit;switch(unit){case"sqm":result=LocaleUtils.toLocaleFixed(area,decimals);unitlabel="m\xB2";break;case"sqft":result=LocaleUtils.toLocaleFixed(area*10.7639,decimals);unitlabel="ft\xB2";break;case"sqkm":result=LocaleUtils.toLocaleFixed(area*0.000001,decimals);unitlabel="km\xB2";break;case"sqmi":result=LocaleUtils.toLocaleFixed(area*3.86102159e-7,decimals);unitlabel="mi\xB2";break;case"ha":result=LocaleUtils.toLocaleFixed(area*0.0001,decimals);break;case"acre":result=LocaleUtils.toLocaleFixed(area*0.000247105381467,decimals);break;default:result=LocaleUtils.toLocaleFixed(area,decimals);break}if(withUnit){result+=" "+unitlabel}return result},degToDms:function degToDms(deg){// convert decimal deg to minutes and seconds
|
|
9
9
|
var d=Math.floor(deg);var minfloat=(deg-d)*60;var m=Math.floor(minfloat);var secfloat=(minfloat-m)*60;var s=Math.floor(secfloat);return""+d+"\xB0 "+m+"' "+s+"'' "},updateFeatureMeasurements:function updateFeatureMeasurements(feature,geomType,featureCrs,settings){var _settings$displayCrs;var geodesic=ConfigUtils.getConfigProp("geodesicMeasurements");var measurements={lenUnit:settings.lenUnit,areaUnit:settings.areaUnit};var displayCrs=(_settings$displayCrs=settings.displayCrs)!==null&&_settings$displayCrs!==void 0?_settings$displayCrs:featureCrs;feature.set("label","");feature.set("segment_labels",undefined);var geom=feature.getGeometry();if(geomType==="Point"){feature.set("label",CoordinatesUtils.getFormattedCoordinate(geom.getCoordinates(),featureCrs,displayCrs))}else if(geomType==="LineString"){var lengths=MeasureUtils.computeSegmentLengths(geom.getCoordinates(),featureCrs,geodesic);measurements.segment_lengths=lengths;measurements.length=lengths.reduce(function(sum,len){return sum+len},0);feature.set("segment_labels",lengths.map(function(length){return MeasureUtils.formatMeasurement(length,false,settings.lenUnit)}))}else if(["Ellipse","Polygon","Square","Box"].includes(geomType)){var area=MeasureUtils.computeArea(geom,featureCrs,geodesic);measurements.area=area;feature.set("label",MeasureUtils.formatMeasurement(area,true,settings.areaUnit))}else if(geomType==="Circle"){var radius=geom.getRadius();measurements.radius=radius;feature.set("label","r = "+MeasureUtils.formatMeasurement(radius,false,settings.lenUnit))}else if(geomType==="Bearing"){var coo=geom.getCoordinates();measurements.bearing=CoordinatesUtils.calculateAzimuth(coo[0],coo[1],featureCrs);feature.set("label",MeasureUtils.getFormattedBearingValue(measurements.bearing))}feature.set("measurements",measurements)},computeSegmentLengths:function computeSegmentLengths(coordinates,featureCrs,geodesic){var lengths=[];var units=CoordinatesUtils.getUnits(featureCrs);if(geodesic||units==="degrees"){var wgsCoo=coordinates.map(function(coo){return CoordinatesUtils.reproject(coo,featureCrs,"EPSG:4326")});for(var i=0;i<wgsCoo.length-1;++i){lengths.push(ol.sphere.getDistance(wgsCoo[i],wgsCoo[i+1]))}}else{var conv=units==="feet"?0.3048:1;for(var _i=0;_i<coordinates.length-1;++_i){var dx=coordinates[_i+1][0]-coordinates[_i][0];var dy=coordinates[_i+1][1]-coordinates[_i][1];lengths.push(Math.sqrt(dx*dx+dy*dy)*conv)}}return lengths},computeArea:function computeArea(geometry,featureCrs,geodesic){var units=CoordinatesUtils.getUnits(featureCrs);if(geodesic||units==="degrees"){return ol.sphere.getArea(geometry,{projection:featureCrs})}else{var conv=units==="feet"?0.3048:1;return geometry.getArea()*conv*conv}}};export default MeasureUtils;
|
package/utils/SearchProviders.js
CHANGED
|
@@ -16,4 +16,4 @@ var _formatLayerEntry=function formatLayerEntry(dataproduct){return{type:SearchR
|
|
|
16
16
|
results.push({id:"fulltext.places",titlemsgid:LocaleUtils.trmsg("search.places"),resultCount:placeResultCount,type:SearchResultType.PLACE,items:data.results.filter(function(entry){return entry.feature}).map(function(entry){return{id:entry.feature.feature_id,text:entry.feature.display,x:0.5*(entry.feature.bbox[0]+entry.feature.bbox[2]),y:0.5*(entry.feature.bbox[1]+entry.feature.bbox[3]),crs:entry.feature.srid?"EPSG:"+String(entry.feature.srid).replace(/^EPSG:/,""):null,bbox:entry.feature.bbox,thumbnail:iconPath+entry.feature.dataproduct_id+".svg",// fulltext specific info
|
|
17
17
|
dataproduct_id:entry.feature.dataproduct_id,id_field_name:entry.feature.id_field_name}})});callback({results:results,result_counts:data.result_counts})})["catch"](function(e){// eslint-disable-next-line
|
|
18
18
|
console.warn("Fulltext search failed: "+e);callback({results:[]})})}},{key:"filterFulltextResults",value:function filterFulltextResults(data,filterPoly,mapCrs){if(!filterPoly){return data}data.results=data.results.filter(function(result){if(!result.feature||!result.feature.bbox){return true}var _CoordinatesUtils$rep=CoordinatesUtils.reprojectBbox(result.feature.bbox,"EPSG:"+result.feature.srid,mapCrs),_CoordinatesUtils$rep2=_slicedToArray(_CoordinatesUtils$rep,4),xmin=_CoordinatesUtils$rep2[0],ymin=_CoordinatesUtils$rep2[1],xmax=_CoordinatesUtils$rep2[2],ymax=_CoordinatesUtils$rep2[3];var intersects=polygonIntersectTest([[xmin,ymin],[xmax,ymin],[xmax,ymax],[xmin,ymax],[xmin,ymin]],filterPoly);if(!intersects){data.result_counts.find(function(entry){return entry.dataproduct_id===result.feature.dataproduct_id}).count-=1}return intersects});return data}},{key:"getResultGeometry",value:function getResultGeometry(resultItem,callback){var dataServiceUrl=ConfigUtils.getConfigProp("searchDataServiceUrl")||ConfigUtils.getConfigProp("dataServiceUrl");if(!dataServiceUrl){callback(null)}// URL example: /api/data/v1/ch.so.afu.fliessgewaesser.netz/?filter=[["gewissnr","=",1179]]
|
|
19
|
-
var quot=typeof resultItem.id==="string"?"\"":"";var filter="[[\"".concat(resultItem.id_field_name,"\",\"=\", ").concat(quot).concat(resultItem.id).concat(quot,"]]");axios.get(dataServiceUrl.replace(/\/?$/,"/")+resultItem.dataproduct_id+"/?filter="+filter).then(function(response){callback({feature:response.data,crs:response.data.crs.properties.name})})["catch"](function(){callback(null)})}},{key:"getLayerDefinition",value:function getLayerDefinition(resultItem,callback){var dataProductServiceUrl=ConfigUtils.getConfigProp("dataproductServiceUrl");if(!dataProductServiceUrl){/* eslint-disable-next-line */console.warn("Fulltext search: failed to get layer definition, dataproductServiceUrl is not defined");callback(null)}var params={filter:resultItem.id};axios.get(dataProductServiceUrl.replace(/\/?$/,"/")+"weblayers",{params:params}).then(function(response){var _response$data$result;callback((_response$data$result=response.data[resultItem.id])===null||_response$data$result===void 0?void 0:_response$data$result[0])})["catch"](function(){callback(null)})}},{key:"handleHighlightParameters",value:function handleHighlightParameters(hp,hf,st,callback){var searchServiceUrl=ConfigUtils.getConfigProp("searchServiceUrl");var dataServiceUrl=ConfigUtils.getConfigProp("searchDataServiceUrl")||ConfigUtils.getConfigProp("dataServiceUrl");if(!searchServiceUrl||!dataServiceUrl){return}var queryFeature=function queryFeature(filter){axios.get(dataServiceUrl.replace(/\/?$/,"/")+hp+"/?filter="+filter).then(function(response){var bbox=response.data.bbox;var item={x:0.5*[bbox[0]+bbox[2]],y:0.5*[bbox[1]+bbox[3]],label:st,crs:response.data.crs.properties.name,bbox:bbox};callback(item,{feature:response.data,crs:response.data.crs.properties.name})})["catch"](function(){})};if(hp&&hf){queryFeature(hf)}else if(hp&&st){var params={searchtext:st,filter:hp,limit:1};axios.get(searchServiceUrl,{params:params}).then(function(response){if(response.data.results&&response.data.results.length===1){var result=response.data.results[0].feature;var quot=typeof result.feature_id==="string"?"\"":"";var filter="[[\"".concat(result.id_field_name,"\",\"=\", ").concat(quot).concat(result.feature_id).concat(quot,"]]");queryFeature(filter)}})["catch"](function(){})}}}])}();export default{coordinates:{labelmsgid:"search.coordinates",onSearch:coordinatesSearch,handlesGeomFilter:false},nominatim:{label:"OpenStreetMap",onSearch:NominatimSearch.search,handlesGeomFilter:false},qgis:{label:"QGIS",onSearch:QgisSearch.search,getResultGeometry:QgisSearch.getResultGeometry,handlesGeomFilter:false},fulltext:{label:"Fulltext",onSearch:FulltextSearch.search,getResultGeometry:FulltextSearch.getResultGeometry,getLayerDefinition:FulltextSearch.getLayerDefinition,handlesGeomFilter:true}};
|
|
19
|
+
var quot=typeof resultItem.id==="string"?"\"":"";var filter="[[\"".concat(resultItem.id_field_name,"\",\"=\", ").concat(quot).concat(resultItem.id).concat(quot,"]]");axios.get(dataServiceUrl.replace(/\/?$/,"/")+resultItem.dataproduct_id+"/?filter="+filter).then(function(response){var bbox=response.data.bbox;var center=bbox?[0.5*(bbox[0]+bbox[2]),0.5*(bbox[1]+bbox[3])]:null;callback({bbox:bbox,center:center,feature:response.data,crs:response.data.crs.properties.name})})["catch"](function(){callback(null)})}},{key:"getLayerDefinition",value:function getLayerDefinition(resultItem,callback){var dataProductServiceUrl=ConfigUtils.getConfigProp("dataproductServiceUrl");if(!dataProductServiceUrl){/* eslint-disable-next-line */console.warn("Fulltext search: failed to get layer definition, dataproductServiceUrl is not defined");callback(null)}var params={filter:resultItem.id};axios.get(dataProductServiceUrl.replace(/\/?$/,"/")+"weblayers",{params:params}).then(function(response){var _response$data$result;callback((_response$data$result=response.data[resultItem.id])===null||_response$data$result===void 0?void 0:_response$data$result[0])})["catch"](function(){callback(null)})}},{key:"handleHighlightParameters",value:function handleHighlightParameters(hp,hf,st,callback){var searchServiceUrl=ConfigUtils.getConfigProp("searchServiceUrl");var dataServiceUrl=ConfigUtils.getConfigProp("searchDataServiceUrl")||ConfigUtils.getConfigProp("dataServiceUrl");if(!searchServiceUrl||!dataServiceUrl){return}var queryFeature=function queryFeature(filter){axios.get(dataServiceUrl.replace(/\/?$/,"/")+hp+"/?filter="+filter).then(function(response){var bbox=response.data.bbox;var item={x:0.5*[bbox[0]+bbox[2]],y:0.5*[bbox[1]+bbox[3]],label:st,crs:response.data.crs.properties.name,bbox:bbox};callback(item,{feature:response.data,crs:response.data.crs.properties.name})})["catch"](function(){})};if(hp&&hf){queryFeature(hf)}else if(hp&&st){var params={searchtext:st,filter:hp,limit:1};axios.get(searchServiceUrl,{params:params}).then(function(response){if(response.data.results&&response.data.results.length===1){var result=response.data.results[0].feature;var quot=typeof result.feature_id==="string"?"\"":"";var filter="[[\"".concat(result.id_field_name,"\",\"=\", ").concat(quot).concat(result.feature_id).concat(quot,"]]");queryFeature(filter)}})["catch"](function(){})}}}])}();export default{coordinates:{labelmsgid:"search.coordinates",onSearch:coordinatesSearch,handlesGeomFilter:false},nominatim:{label:"OpenStreetMap",onSearch:NominatimSearch.search,handlesGeomFilter:false},qgis:{label:"QGIS",onSearch:QgisSearch.search,getResultGeometry:QgisSearch.getResultGeometry,handlesGeomFilter:false},fulltext:{label:"Fulltext",onSearch:FulltextSearch.search,getResultGeometry:FulltextSearch.getResultGeometry,getLayerDefinition:FulltextSearch.getLayerDefinition,handlesGeomFilter:true}};
|