qwc2 2026.4.21 → 2026.4.29
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/components/AttributeForm.js +26 -11
- package/components/EditComboField.js +58 -15
- package/components/LinkFeatureForm.js +9 -10
- package/components/QtDesignerForm.js +12 -15
- package/components/SearchBox.js +77 -52
- package/components/map3d/Map3D.js +19 -4
- package/components/map3d/layers/WFSLayer3D.js +4 -0
- package/components/map3d/utils/MiscUtils3D.js +3 -1
- package/components/style/EditComboField.css +5 -0
- package/components/widgets/ComboBox.js +11 -2
- package/package.json +3 -3
- package/plugins/Redlining.js +14 -5
- package/plugins/SensorThingsTool.js +41 -22
- package/plugins/TaskButton.js +16 -2
- package/plugins/map3d/Identify3D.js +18 -10
- package/plugins/map3d/MapCopyright3D.js +36 -17
- package/plugins/map3d/MapExport3D.js +1 -1
- package/plugins/map3d/Measure3D.js +3 -3
- package/plugins/style/SensorThingsTool.css +13 -5
- package/static/translations/bg-BG.json +1 -0
- package/static/translations/ca-ES.json +1 -0
- package/static/translations/cs-CZ.json +1 -0
- package/static/translations/de-CH.json +1 -0
- package/static/translations/de-DE.json +1 -0
- package/static/translations/en-US.json +1 -0
- package/static/translations/es-ES.json +1 -0
- package/static/translations/fi-FI.json +1 -0
- package/static/translations/fr-FR.json +1 -0
- package/static/translations/hu-HU.json +1 -0
- package/static/translations/it-IT.json +1 -0
- package/static/translations/ja-JP.json +1 -0
- package/static/translations/nl-NL.json +1 -0
- package/static/translations/no-NO.json +1 -0
- package/static/translations/pl-PL.json +1 -0
- package/static/translations/pt-BR.json +1 -0
- package/static/translations/pt-PT.json +1 -0
- package/static/translations/ro-RO.json +1 -0
- package/static/translations/ru-RU.json +1 -0
- package/static/translations/sv-SE.json +1 -0
- package/static/translations/tr-TR.json +1 -0
- package/static/translations/tsconfig.json +1 -0
- package/static/translations/uk-UA.json +1 -0
- package/utils/EditingUtils.js +2 -1
- package/utils/SearchProviders.js +38 -84
package/utils/EditingUtils.js
CHANGED
|
@@ -93,8 +93,9 @@ _KeyValCache = KeyValCache;
|
|
|
93
93
|
_defineProperty(KeyValCache, "store", {});
|
|
94
94
|
_defineProperty(KeyValCache, "requestPromises", {});
|
|
95
95
|
_defineProperty(KeyValCache, "get", function (editIface, keyvalrel, filterExpr) {
|
|
96
|
+
var forceReload = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
|
96
97
|
var key = keyvalrel + uuidv5(JSON.stringify(filterExpr !== null && filterExpr !== void 0 ? filterExpr : null), UUID_NS);
|
|
97
|
-
if (key in _KeyValCache.store) {
|
|
98
|
+
if (key in _KeyValCache.store && !forceReload) {
|
|
98
99
|
return new Promise(function (resolve) {
|
|
99
100
|
return resolve(_KeyValCache.store[key]);
|
|
100
101
|
});
|
package/utils/SearchProviders.js
CHANGED
|
@@ -36,7 +36,6 @@ import DataServiceExprUtils from './DataServiceExprUtils';
|
|
|
36
36
|
import IdentifyUtils from './IdentifyUtils';
|
|
37
37
|
import LayerUtils from './LayerUtils';
|
|
38
38
|
import LocaleUtils from './LocaleUtils';
|
|
39
|
-
import VectorLayerUtils from './VectorLayerUtils';
|
|
40
39
|
export var SearchResultType = {
|
|
41
40
|
PLACE: 0,
|
|
42
41
|
THEMELAYER: 1,
|
|
@@ -521,13 +520,13 @@ export var FulltextSearch = /*#__PURE__*/function () {
|
|
|
521
520
|
var quot = typeof resultItem.id === 'string' ? '"' : '';
|
|
522
521
|
var filter = "[[\"".concat(resultItem.id_field_name, "\",\"=\", ").concat(quot).concat(resultItem.id).concat(quot, "]]");
|
|
523
522
|
axios.get(dataServiceUrl.replace(/\/?$/, "/") + resultItem.dataproduct_id + "/?filter=" + filter).then(function (response) {
|
|
523
|
+
var feature = response.data;
|
|
524
524
|
var bbox = response.data.bbox;
|
|
525
|
-
var center = bbox ? [0.5 * (bbox[0] + bbox[2]), 0.5 * (bbox[1] + bbox[3])] : null;
|
|
526
525
|
callback({
|
|
527
526
|
bbox: bbox,
|
|
528
|
-
center:
|
|
529
|
-
feature:
|
|
530
|
-
crs:
|
|
527
|
+
center: null,
|
|
528
|
+
feature: feature,
|
|
529
|
+
crs: feature.crs.properties.name
|
|
531
530
|
});
|
|
532
531
|
})["catch"](function () {
|
|
533
532
|
callback(null);
|
|
@@ -640,44 +639,6 @@ export function unregisterSearchProvider(key) {
|
|
|
640
639
|
delete SearchProviders[key];
|
|
641
640
|
addedSearchProviders["delete"](key);
|
|
642
641
|
}
|
|
643
|
-
|
|
644
|
-
// Uniformize the response of getResultGeometry
|
|
645
|
-
function getResultGeometry(provider, item, callback) {
|
|
646
|
-
provider.getResultGeometry(item, function (response) {
|
|
647
|
-
var features = [];
|
|
648
|
-
if (response !== null && response !== void 0 && response.geometry) {
|
|
649
|
-
var highlightFeature = response.geometry.coordinates ? {
|
|
650
|
-
type: "Feature",
|
|
651
|
-
geometry: response.geometry
|
|
652
|
-
} : VectorLayerUtils.wktToGeoJSON(response.geometry, response.crs, response.crs);
|
|
653
|
-
if (highlightFeature) {
|
|
654
|
-
features.push(highlightFeature);
|
|
655
|
-
}
|
|
656
|
-
} else if (response !== null && response !== void 0 && response.feature) {
|
|
657
|
-
if (response.feature.features) {
|
|
658
|
-
features.push.apply(features, _toConsumableArray(response.feature.features));
|
|
659
|
-
} else {
|
|
660
|
-
features.push(response.feature);
|
|
661
|
-
}
|
|
662
|
-
}
|
|
663
|
-
if (features.length === 0) {
|
|
664
|
-
callback(null);
|
|
665
|
-
} else {
|
|
666
|
-
callback(_objectSpread(_objectSpread({
|
|
667
|
-
feature: {
|
|
668
|
-
type: "FeatureCollection",
|
|
669
|
-
features: features
|
|
670
|
-
},
|
|
671
|
-
crs: response.crs,
|
|
672
|
-
hidemarker: response.hidemarker
|
|
673
|
-
}, response.bbox && {
|
|
674
|
-
bbox: response.bbox
|
|
675
|
-
}), response.center && {
|
|
676
|
-
center: response.center
|
|
677
|
-
}));
|
|
678
|
-
}
|
|
679
|
-
});
|
|
680
|
-
}
|
|
681
642
|
export function collectSearchProviders(theme, layers) {
|
|
682
643
|
var mapScale = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
|
|
683
644
|
// Collect active layers/search terms
|
|
@@ -710,50 +671,43 @@ export function collectSearchProviders(theme, layers) {
|
|
|
710
671
|
var _iterator2 = _createForOfIteratorHelper(enabledProviders),
|
|
711
672
|
_step2;
|
|
712
673
|
try {
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
674
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
675
|
+
var _entry2;
|
|
676
|
+
var _entry = _step2.value;
|
|
677
|
+
if (typeof _entry === 'string') {
|
|
678
|
+
_entry = {
|
|
679
|
+
provider: _entry
|
|
680
|
+
};
|
|
681
|
+
}
|
|
682
|
+
// Omit qgis provider with field configuration, this is only supported through the FeatureSearch plugin
|
|
683
|
+
if (_entry.provider === 'qgis' && (_entry2 = _entry) !== null && _entry2 !== void 0 && (_entry2 = _entry2.params) !== null && _entry2 !== void 0 && _entry2.fields) {
|
|
684
|
+
continue;
|
|
685
|
+
}
|
|
686
|
+
var provider = searchProviders[_entry.provider];
|
|
687
|
+
if (provider) {
|
|
688
|
+
var _entry$key, _entry$label, _entry$labelmsgid;
|
|
689
|
+
if (provider.requiresLayer && !themeLayerNames.includes(provider.requiresLayer)) {
|
|
690
|
+
continue;
|
|
720
691
|
}
|
|
721
|
-
|
|
722
|
-
if (
|
|
723
|
-
|
|
692
|
+
var key = (_entry$key = _entry.key) !== null && _entry$key !== void 0 ? _entry$key : _entry.provider;
|
|
693
|
+
if (providerKeys.has(key)) {
|
|
694
|
+
var i = 0;
|
|
695
|
+
for (i = 0; providerKeys.has(key + "_" + i); ++i);
|
|
696
|
+
key = key + "_" + i;
|
|
724
697
|
}
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
698
|
+
providerKeys.add(key);
|
|
699
|
+
availableProviders[key] = _objectSpread(_objectSpread({}, provider), {}, {
|
|
700
|
+
label: (_entry$label = _entry.label) !== null && _entry$label !== void 0 ? _entry$label : provider.label,
|
|
701
|
+
labelmsgid: (_entry$labelmsgid = _entry.labelmsgid) !== null && _entry$labelmsgid !== void 0 ? _entry$labelmsgid : provider.labelmsgid,
|
|
702
|
+
getResultGeometry: provider.getResultGeometry,
|
|
703
|
+
cfgParams: _entry.params || {},
|
|
704
|
+
params: {
|
|
705
|
+
searchTerms: searchTerms,
|
|
706
|
+
activeLayers: activeLayers,
|
|
707
|
+
theme: theme
|
|
730
708
|
}
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
var i = 0;
|
|
734
|
-
for (i = 0; providerKeys.has(key + "_" + i); ++i);
|
|
735
|
-
key = key + "_" + i;
|
|
736
|
-
}
|
|
737
|
-
providerKeys.add(key);
|
|
738
|
-
availableProviders[key] = _objectSpread(_objectSpread({}, provider), {}, {
|
|
739
|
-
label: (_entry$label = entry.label) !== null && _entry$label !== void 0 ? _entry$label : provider.label,
|
|
740
|
-
labelmsgid: (_entry$labelmsgid = entry.labelmsgid) !== null && _entry$labelmsgid !== void 0 ? _entry$labelmsgid : provider.labelmsgid,
|
|
741
|
-
getResultGeometry: provider.getResultGeometry ? function (item, callback) {
|
|
742
|
-
return getResultGeometry(provider, item, callback);
|
|
743
|
-
} : null,
|
|
744
|
-
cfgParams: entry.params || {},
|
|
745
|
-
params: {
|
|
746
|
-
searchTerms: searchTerms,
|
|
747
|
-
activeLayers: activeLayers,
|
|
748
|
-
theme: theme
|
|
749
|
-
}
|
|
750
|
-
});
|
|
751
|
-
}
|
|
752
|
-
},
|
|
753
|
-
_ret;
|
|
754
|
-
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
755
|
-
_ret = _loop();
|
|
756
|
-
if (_ret === 0) continue;
|
|
709
|
+
});
|
|
710
|
+
}
|
|
757
711
|
}
|
|
758
712
|
} catch (err) {
|
|
759
713
|
_iterator2.e(err);
|