qwc2 2026.8.9 → 2026.8.13
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/bookmark.js +0 -15
- package/actions/localConfig.js +0 -7
- package/components/BookmarkPanel.js +121 -124
- package/components/Icon.js +2 -0
- package/components/IdentifyViewer.js +4 -2
- package/components/StandardApp.js +0 -5
- package/components/map3d/Map3D.js +10 -8
- package/components/style/BookmarkPanel.css +2 -0
- package/components/style/Icon.css +4 -0
- package/components/widgets/InputContainer.js +2 -29
- package/components/widgets/style/InputContainer.css +2 -1
- package/package.json +1 -1
- package/plugins/Bookmark.js +25 -19
- package/plugins/BottomBar.js +2 -2
- package/plugins/Identify.js +4 -1
- package/plugins/MapFilter.js +48 -34
- package/plugins/VisibilityPreset.js +34 -23
- package/reducers/localConfig.js +2 -21
- package/static/translations/bg-BG.json +8 -6
- package/static/translations/ca-ES.json +8 -6
- package/static/translations/cs-CZ.json +8 -6
- package/static/translations/de-CH.json +8 -6
- package/static/translations/de-DE.json +8 -6
- package/static/translations/en-US.json +8 -6
- package/static/translations/es-ES.json +8 -6
- package/static/translations/fi-FI.json +8 -6
- package/static/translations/fr-FR.json +8 -6
- package/static/translations/hu-HU.json +8 -6
- package/static/translations/it-IT.json +8 -6
- package/static/translations/ja-JP.json +8 -6
- package/static/translations/nl-NL.json +8 -6
- package/static/translations/no-NO.json +8 -6
- package/static/translations/pl-PL.json +8 -6
- package/static/translations/pt-BR.json +8 -6
- package/static/translations/pt-PT.json +8 -6
- package/static/translations/ro-RO.json +8 -6
- package/static/translations/ru-RU.json +8 -6
- package/static/translations/sv-SE.json +8 -6
- package/static/translations/tr-TR.json +8 -6
- package/static/translations/tsconfig.json +8 -6
- package/static/translations/uk-UA.json +8 -6
- package/utils/LayerUtils.js +18 -5
- package/utils/PermaLinkUtils.js +254 -286
package/plugins/Bookmark.js
CHANGED
|
@@ -15,13 +15,13 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
|
|
|
15
15
|
import React from 'react';
|
|
16
16
|
import { connect } from 'react-redux';
|
|
17
17
|
import PropTypes from 'prop-types';
|
|
18
|
-
import {
|
|
18
|
+
import { setBookmarks } from '../actions/bookmark';
|
|
19
19
|
import { zoomToExtent, zoomToPoint } from "../actions/map";
|
|
20
20
|
import BookmarkPanel from '../components/BookmarkPanel';
|
|
21
21
|
import SideBar from '../components/SideBar';
|
|
22
22
|
import LocaleUtils from "../utils/LocaleUtils";
|
|
23
23
|
import MapUtils from "../utils/MapUtils";
|
|
24
|
-
import {
|
|
24
|
+
import { BookmarksInterface } from '../utils/PermaLinkUtils';
|
|
25
25
|
|
|
26
26
|
/**
|
|
27
27
|
* Allows managing user bookmarks which are storing the current view, including the location and zoom level.
|
|
@@ -39,32 +39,30 @@ var Bookmark = /*#__PURE__*/function (_React$Component) {
|
|
|
39
39
|
}
|
|
40
40
|
_this = _callSuper(this, Bookmark, [].concat(args));
|
|
41
41
|
_defineProperty(_this, "translations", {
|
|
42
|
-
add: LocaleUtils.tr("bookmark.add"),
|
|
43
42
|
addfailed: LocaleUtils.tr("bookmark.addfailed"),
|
|
44
43
|
lastUpdate: LocaleUtils.tr("bookmark.lastUpdate"),
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
notloggedin: LocaleUtils.tr("bookmark.notloggedin"),
|
|
44
|
+
title: LocaleUtils.tr("appmenu.items.Bookmark"),
|
|
45
|
+
"new": LocaleUtils.tr("bookmark.newbookmark"),
|
|
46
|
+
noitems: LocaleUtils.tr("bookmark.nobookmarks"),
|
|
49
47
|
open: LocaleUtils.tr("bookmark.open"),
|
|
50
48
|
openTab: LocaleUtils.tr("bookmark.openTab"),
|
|
51
49
|
update: LocaleUtils.tr("bookmark.update"),
|
|
52
50
|
zoomToExtent: LocaleUtils.tr("bookmark.zoomToExtent"),
|
|
53
51
|
removefailed: LocaleUtils.tr("bookmark.removefailed"),
|
|
54
|
-
savefailed: LocaleUtils.tr("bookmark.savefailed")
|
|
52
|
+
savefailed: LocaleUtils.tr("bookmark.savefailed"),
|
|
53
|
+
togglePublic: LocaleUtils.tr("bookmark.togglePublic"),
|
|
54
|
+
"public": LocaleUtils.tr("bookmark.public"),
|
|
55
|
+
confirmOverwrite: LocaleUtils.tr("bookmark.confirmOverwrite"),
|
|
56
|
+
confirmDelete: LocaleUtils.tr("bookmark.confirmDelete")
|
|
55
57
|
});
|
|
56
58
|
_defineProperty(_this, "renderBody", function () {
|
|
57
59
|
return /*#__PURE__*/React.createElement(BookmarkPanel, {
|
|
60
|
+
bookmarkIface: BookmarksInterface,
|
|
58
61
|
bookmarks: _this.props.bookmarks,
|
|
59
|
-
onAdd: createBookmark,
|
|
60
62
|
onOpen: _this.onOpen,
|
|
61
|
-
onRefresh: _this.props.refreshBookmarks,
|
|
62
|
-
onRemove: removeBookmark,
|
|
63
|
-
onRename: renameBookmark,
|
|
64
|
-
onUpdate: updateBookmark,
|
|
65
63
|
onZoomToExtent: _this.zoomToBookmarkExtent,
|
|
66
64
|
openOnClick: _this.props.openOnClick,
|
|
67
|
-
|
|
65
|
+
setList: _this.props.setBookmarks,
|
|
68
66
|
translations: _this.translations
|
|
69
67
|
});
|
|
70
68
|
});
|
|
@@ -77,7 +75,7 @@ var Bookmark = /*#__PURE__*/function (_React$Component) {
|
|
|
77
75
|
}
|
|
78
76
|
});
|
|
79
77
|
_defineProperty(_this, "zoomToBookmarkExtent", function (key) {
|
|
80
|
-
|
|
78
|
+
BookmarksInterface.resolve(key, function (params) {
|
|
81
79
|
if ('c' in params && 's' in params) {
|
|
82
80
|
var _params$crs;
|
|
83
81
|
var scale = parseFloat(params.s);
|
|
@@ -99,9 +97,17 @@ var Bookmark = /*#__PURE__*/function (_React$Component) {
|
|
|
99
97
|
}
|
|
100
98
|
_inherits(Bookmark, _React$Component);
|
|
101
99
|
return _createClass(Bookmark, [{
|
|
100
|
+
key: "componentDidMount",
|
|
101
|
+
value: function componentDidMount() {
|
|
102
|
+
var _this2 = this;
|
|
103
|
+
BookmarksInterface.getList(function (bookmarks) {
|
|
104
|
+
_this2.props.setBookmarks(bookmarks);
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
}, {
|
|
102
108
|
key: "render",
|
|
103
109
|
value: function render() {
|
|
104
|
-
var
|
|
110
|
+
var _this3 = this;
|
|
105
111
|
return /*#__PURE__*/React.createElement(SideBar, {
|
|
106
112
|
icon: "bookmark",
|
|
107
113
|
id: "Bookmark",
|
|
@@ -110,7 +116,7 @@ var Bookmark = /*#__PURE__*/function (_React$Component) {
|
|
|
110
116
|
width: "20em"
|
|
111
117
|
}, function () {
|
|
112
118
|
return {
|
|
113
|
-
body:
|
|
119
|
+
body: _this3.renderBody()
|
|
114
120
|
};
|
|
115
121
|
});
|
|
116
122
|
}
|
|
@@ -123,7 +129,7 @@ _defineProperty(Bookmark, "propTypes", {
|
|
|
123
129
|
mapScales: PropTypes.array,
|
|
124
130
|
/** Whether to directly open the bookmark on click / middle click, instead of showing dedicated open buttons. */
|
|
125
131
|
openOnClick: PropTypes.bool,
|
|
126
|
-
|
|
132
|
+
setBookmarks: PropTypes.func,
|
|
127
133
|
/** The side of the application on which to display the sidebar. */
|
|
128
134
|
side: PropTypes.string,
|
|
129
135
|
zoomToExtent: PropTypes.func,
|
|
@@ -141,7 +147,7 @@ var selector = function selector(state) {
|
|
|
141
147
|
};
|
|
142
148
|
};
|
|
143
149
|
export default connect(selector, {
|
|
144
|
-
|
|
150
|
+
setBookmarks: setBookmarks,
|
|
145
151
|
zoomToExtent: zoomToExtent,
|
|
146
152
|
zoomToPoint: zoomToPoint
|
|
147
153
|
})(Bookmark);
|
package/plugins/BottomBar.js
CHANGED
|
@@ -46,7 +46,7 @@ import NumberInput from '../components/widgets/NumberInput';
|
|
|
46
46
|
import CoordinatesUtils from '../utils/CoordinatesUtils';
|
|
47
47
|
import LocaleUtils from '../utils/LocaleUtils';
|
|
48
48
|
import MapUtils from '../utils/MapUtils';
|
|
49
|
-
import {
|
|
49
|
+
import { VisibilityPresetsInterface } from "../utils/PermaLinkUtils";
|
|
50
50
|
import './style/BottomBar.css';
|
|
51
51
|
|
|
52
52
|
/**
|
|
@@ -97,7 +97,7 @@ var BottomBar = /*#__PURE__*/function (_React$Component) {
|
|
|
97
97
|
_defineProperty(_this, "openBookmarkOrPreset", function (prefixedKey) {
|
|
98
98
|
if (prefixedKey.startsWith("vp:")) {
|
|
99
99
|
var key = prefixedKey.slice("vp:".length);
|
|
100
|
-
|
|
100
|
+
VisibilityPresetsInterface.resolve(key, function (preset) {
|
|
101
101
|
if (preset) {
|
|
102
102
|
_this.props.setThemeLayersVisibilityPreset(preset);
|
|
103
103
|
}
|
package/plugins/Identify.js
CHANGED
|
@@ -406,6 +406,7 @@ var Identify = /*#__PURE__*/function (_React$Component) {
|
|
|
406
406
|
});
|
|
407
407
|
_defineProperty(_this, "deserializeResults", function (identifyResults, resultDisplayMode) {
|
|
408
408
|
var pendingRequests = 0;
|
|
409
|
+
var importErrors = {};
|
|
409
410
|
Object.entries(identifyResults).forEach(function (_ref5) {
|
|
410
411
|
var _ref6 = _slicedToArray(_ref5, 2),
|
|
411
412
|
layerid = _ref6[0],
|
|
@@ -458,13 +459,15 @@ var Identify = /*#__PURE__*/function (_React$Component) {
|
|
|
458
459
|
});
|
|
459
460
|
}
|
|
460
461
|
});
|
|
462
|
+
} else {
|
|
463
|
+
importErrors[layerid] = true;
|
|
461
464
|
}
|
|
462
465
|
}
|
|
463
466
|
});
|
|
464
467
|
_this.setState({
|
|
465
468
|
identifyResults: identifyResults,
|
|
466
469
|
pendingRequests: pendingRequests,
|
|
467
|
-
importErrors:
|
|
470
|
+
importErrors: importErrors,
|
|
468
471
|
currentResultDisplayMode: resultDisplayMode
|
|
469
472
|
});
|
|
470
473
|
});
|
package/plugins/MapFilter.js
CHANGED
|
@@ -41,7 +41,6 @@ import isEqual from 'lodash.isequal';
|
|
|
41
41
|
import PropTypes from 'prop-types';
|
|
42
42
|
import { v4 as uuidv4 } from 'uuid';
|
|
43
43
|
import { LayerRole, setFilter } from '../actions/layers';
|
|
44
|
-
import { setPermalinkParameters } from '../actions/localConfig';
|
|
45
44
|
import { setCurrentTask } from '../actions/task';
|
|
46
45
|
import Icon from '../components/Icon';
|
|
47
46
|
import MapButton from '../components/MapButton';
|
|
@@ -58,6 +57,7 @@ import DataServiceExprUtils from '../utils/DataServiceExprUtils';
|
|
|
58
57
|
import LayerUtils from '../utils/LayerUtils';
|
|
59
58
|
import LocaleUtils from '../utils/LocaleUtils';
|
|
60
59
|
import MiscUtils from '../utils/MiscUtils';
|
|
60
|
+
import { registerPermalinkDataStoreHook, unregisterPermalinkDataStoreHook } from '../utils/PermaLinkUtils';
|
|
61
61
|
import './style/MapFilter.css';
|
|
62
62
|
|
|
63
63
|
/**
|
|
@@ -228,37 +228,43 @@ var MapFilter = /*#__PURE__*/function (_React$Component) {
|
|
|
228
228
|
});
|
|
229
229
|
});
|
|
230
230
|
}
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
return null;
|
|
247
|
-
}
|
|
248
|
-
var expr = null;
|
|
249
|
-
try {
|
|
250
|
-
expr = JSON.parse(entry.expr);
|
|
251
|
-
} catch (_unused2) {
|
|
252
|
-
return null;
|
|
231
|
+
});
|
|
232
|
+
_defineProperty(_this, "serializeMapFilter", function () {
|
|
233
|
+
return new Promise(function (resolve) {
|
|
234
|
+
var permalinkState = Object.entries(_this.state.filters).reduce(function (res, _ref5) {
|
|
235
|
+
var _ref6 = _slicedToArray(_ref5, 2),
|
|
236
|
+
key = _ref6[0],
|
|
237
|
+
value = _ref6[1];
|
|
238
|
+
if (value.active) {
|
|
239
|
+
return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, value.values));
|
|
240
|
+
} else {
|
|
241
|
+
return res;
|
|
242
|
+
}
|
|
243
|
+
}, {});
|
|
244
|
+
if (_this.state.geomFilter.geom) {
|
|
245
|
+
permalinkState.__geomfilter = _this.state.geomFilter.geom.coordinates;
|
|
253
246
|
}
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
247
|
+
permalinkState.__custom = Object.values(_this.state.customFilters).map(function (entry) {
|
|
248
|
+
if (!entry.active) {
|
|
249
|
+
return null;
|
|
250
|
+
}
|
|
251
|
+
var expr = null;
|
|
252
|
+
try {
|
|
253
|
+
expr = JSON.parse(entry.expr);
|
|
254
|
+
} catch (_unused2) {
|
|
255
|
+
return null;
|
|
256
|
+
}
|
|
257
|
+
return {
|
|
258
|
+
title: entry.title,
|
|
259
|
+
layer: entry.layer,
|
|
260
|
+
expr: expr
|
|
261
|
+
};
|
|
262
|
+
}).filter(Boolean);
|
|
263
|
+
resolve({
|
|
264
|
+
query: {
|
|
265
|
+
f: JSON.stringify(permalinkState)
|
|
266
|
+
}
|
|
267
|
+
});
|
|
262
268
|
});
|
|
263
269
|
});
|
|
264
270
|
_defineProperty(_this, "buildTimeFilter", function (layer, filters, wmsName) {
|
|
@@ -672,6 +678,16 @@ var MapFilter = /*#__PURE__*/function (_React$Component) {
|
|
|
672
678
|
}
|
|
673
679
|
_inherits(MapFilter, _React$Component);
|
|
674
680
|
return _createClass(MapFilter, [{
|
|
681
|
+
key: "componentDidMount",
|
|
682
|
+
value: function componentDidMount() {
|
|
683
|
+
registerPermalinkDataStoreHook("mapfilter", this.serializeMapFilter);
|
|
684
|
+
}
|
|
685
|
+
}, {
|
|
686
|
+
key: "componentWillUnmount",
|
|
687
|
+
value: function componentWillUnmount() {
|
|
688
|
+
unregisterPermalinkDataStoreHook("mapfilter");
|
|
689
|
+
}
|
|
690
|
+
}, {
|
|
675
691
|
key: "componentDidUpdate",
|
|
676
692
|
value: function componentDidUpdate(prevProps, prevState) {
|
|
677
693
|
var _this2 = this;
|
|
@@ -829,7 +845,6 @@ _defineProperty(MapFilter, "propTypes", {
|
|
|
829
845
|
position: PropTypes.number,
|
|
830
846
|
setCurrentTask: PropTypes.func,
|
|
831
847
|
setFilter: PropTypes.func,
|
|
832
|
-
setPermalinkParameters: PropTypes.func,
|
|
833
848
|
/** The side of the application on which to display the sidebar. */
|
|
834
849
|
side: PropTypes.string,
|
|
835
850
|
startupParams: PropTypes.object,
|
|
@@ -854,6 +869,5 @@ export default connect(function (state) {
|
|
|
854
869
|
};
|
|
855
870
|
}, {
|
|
856
871
|
setFilter: setFilter,
|
|
857
|
-
setCurrentTask: setCurrentTask
|
|
858
|
-
setPermalinkParameters: setPermalinkParameters
|
|
872
|
+
setCurrentTask: setCurrentTask
|
|
859
873
|
})(MapFilter);
|
|
@@ -23,12 +23,12 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
|
|
|
23
23
|
import React from 'react';
|
|
24
24
|
import { connect } from 'react-redux';
|
|
25
25
|
import PropTypes from "prop-types";
|
|
26
|
-
import {
|
|
26
|
+
import { setVisibilityPresets } from '../actions/bookmark';
|
|
27
27
|
import { setThemeLayersVisibilityPreset } from '../actions/layers';
|
|
28
28
|
import BookmarkPanel from '../components/BookmarkPanel';
|
|
29
29
|
import SideBar from "../components/SideBar";
|
|
30
30
|
import LocaleUtils from '../utils/LocaleUtils';
|
|
31
|
-
import {
|
|
31
|
+
import { VisibilityPresetsInterface } from '../utils/PermaLinkUtils';
|
|
32
32
|
|
|
33
33
|
/**
|
|
34
34
|
* Allows managing custom user visibility presets, which are storing the currently selected layers without location or
|
|
@@ -48,16 +48,18 @@ var VisibilityPreset = /*#__PURE__*/function (_React$Component) {
|
|
|
48
48
|
}
|
|
49
49
|
_this = _callSuper(this, VisibilityPreset, [].concat(args));
|
|
50
50
|
_defineProperty(_this, "translations", {
|
|
51
|
-
add: LocaleUtils.tr("visibilitypreset.add"),
|
|
52
51
|
addfailed: LocaleUtils.tr("visibilitypreset.addfailed"),
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
notloggedin: LocaleUtils.tr("visibilitypreset.notloggedin"),
|
|
52
|
+
title: LocaleUtils.tr("appmenu.items.VisibilityPresets"),
|
|
53
|
+
"new": LocaleUtils.tr("visibilitypreset.newpreset"),
|
|
54
|
+
noitems: LocaleUtils.tr("visibilitypreset.nopresets"),
|
|
57
55
|
open: LocaleUtils.tr("visibilitypreset.open"),
|
|
58
56
|
update: LocaleUtils.tr("visibilitypreset.update"),
|
|
59
57
|
removefailed: LocaleUtils.tr("visibilitypreset.removefailed"),
|
|
60
|
-
savefailed: LocaleUtils.tr("visibilitypreset.savefailed")
|
|
58
|
+
savefailed: LocaleUtils.tr("visibilitypreset.savefailed"),
|
|
59
|
+
togglePublic: LocaleUtils.tr("visibilitypreset.togglePublic"),
|
|
60
|
+
"public": LocaleUtils.tr("visibilitypreset.public"),
|
|
61
|
+
confirmOverwrite: LocaleUtils.tr("visibilitypreset.confirmOverwrite"),
|
|
62
|
+
confirmDelete: LocaleUtils.tr("visibilitypreset.confirmDelete")
|
|
61
63
|
});
|
|
62
64
|
_defineProperty(_this, "filterByActiveTheme", function (visibilityPresets, themeId) {
|
|
63
65
|
if (themeId === null) return [];
|
|
@@ -69,33 +71,42 @@ var VisibilityPreset = /*#__PURE__*/function (_React$Component) {
|
|
|
69
71
|
var _this$props$theme;
|
|
70
72
|
var presets = _this.filterByActiveTheme(_this.props.visibilityPresets, (_this$props$theme = _this.props.theme) === null || _this$props$theme === void 0 ? void 0 : _this$props$theme.id);
|
|
71
73
|
return /*#__PURE__*/React.createElement(BookmarkPanel, {
|
|
74
|
+
bookmarkIface: VisibilityPresetsInterface,
|
|
72
75
|
bookmarks: presets,
|
|
73
|
-
onAdd: storeVisibilityPreset,
|
|
74
76
|
onOpen: _this.onOpen,
|
|
75
|
-
onRefresh: _this.props.refreshVisibilityPresets,
|
|
76
|
-
onRemove: removeVisibilityPreset,
|
|
77
|
-
onRename: renameVisibilityPreset,
|
|
78
|
-
onUpdate: updateVisibilityPreset,
|
|
79
77
|
openOnClick: _this.props.openOnClick,
|
|
80
|
-
|
|
78
|
+
setList: _this.props.setVisibilityPresets,
|
|
81
79
|
translations: _this.translations
|
|
82
80
|
});
|
|
83
81
|
});
|
|
84
82
|
_defineProperty(_this, "onOpen", function (key) {
|
|
85
83
|
var newtab = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
84
|
+
if (newtab) {
|
|
85
|
+
var url = location.href.split("?")[0] + '?vp=' + key;
|
|
86
|
+
window.open(url, '_blank');
|
|
87
|
+
} else {
|
|
88
|
+
VisibilityPresetsInterface.resolve(key, function (preset) {
|
|
89
|
+
if (preset) {
|
|
90
|
+
_this.props.setThemeLayersVisibilityPreset(preset);
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
}
|
|
91
94
|
});
|
|
92
95
|
return _this;
|
|
93
96
|
}
|
|
94
97
|
_inherits(VisibilityPreset, _React$Component);
|
|
95
98
|
return _createClass(VisibilityPreset, [{
|
|
99
|
+
key: "componentDidMount",
|
|
100
|
+
value: function componentDidMount() {
|
|
101
|
+
var _this2 = this;
|
|
102
|
+
VisibilityPresetsInterface.getList(function (presets) {
|
|
103
|
+
_this2.props.setVisibilityPresets(presets);
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
}, {
|
|
96
107
|
key: "render",
|
|
97
108
|
value: function render() {
|
|
98
|
-
var
|
|
109
|
+
var _this3 = this;
|
|
99
110
|
return /*#__PURE__*/React.createElement(SideBar, {
|
|
100
111
|
icon: "eye",
|
|
101
112
|
id: "VisibilityPresets",
|
|
@@ -104,7 +115,7 @@ var VisibilityPreset = /*#__PURE__*/function (_React$Component) {
|
|
|
104
115
|
width: "20em"
|
|
105
116
|
}, function () {
|
|
106
117
|
return {
|
|
107
|
-
body:
|
|
118
|
+
body: _this3.renderBody()
|
|
108
119
|
};
|
|
109
120
|
});
|
|
110
121
|
}
|
|
@@ -114,8 +125,8 @@ _defineProperty(VisibilityPreset, "availableIn3D", true);
|
|
|
114
125
|
_defineProperty(VisibilityPreset, "propTypes", {
|
|
115
126
|
/** Whether to directly open the bookmark on click / middle click, instead of showing dedicated open buttons. */
|
|
116
127
|
openOnClick: PropTypes.bool,
|
|
117
|
-
refreshVisibilityPresets: PropTypes.func,
|
|
118
128
|
setThemeLayersVisibilityPreset: PropTypes.func,
|
|
129
|
+
setVisibilityPresets: PropTypes.func,
|
|
119
130
|
/** The side of the application on which to display the sidebar. */
|
|
120
131
|
side: PropTypes.string,
|
|
121
132
|
theme: PropTypes.object,
|
|
@@ -132,6 +143,6 @@ var selector = function selector(state) {
|
|
|
132
143
|
};
|
|
133
144
|
};
|
|
134
145
|
export default connect(selector, {
|
|
135
|
-
|
|
146
|
+
setVisibilityPresets: setVisibilityPresets,
|
|
136
147
|
setThemeLayersVisibilityPreset: setThemeLayersVisibilityPreset
|
|
137
148
|
})(VisibilityPreset);
|
package/reducers/localConfig.js
CHANGED
|
@@ -1,14 +1,10 @@
|
|
|
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); }
|
|
2
2
|
function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
|
|
3
3
|
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
4
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
4
5
|
function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
|
|
5
6
|
function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
|
|
6
|
-
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
7
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
8
|
-
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
9
7
|
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
10
|
-
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
11
|
-
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
12
8
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
13
9
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
14
10
|
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; }
|
|
@@ -23,14 +19,13 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
|
|
|
23
19
|
* LICENSE file in the root directory of this source tree.
|
|
24
20
|
*/
|
|
25
21
|
|
|
26
|
-
import { LOCAL_CONFIG_LOADED, SET_STARTUP_PARAMETERS, SET_COLOR_SCHEME, SET_USER_INFO_FIELDS,
|
|
22
|
+
import { LOCAL_CONFIG_LOADED, SET_STARTUP_PARAMETERS, SET_COLOR_SCHEME, SET_USER_INFO_FIELDS, REGISTER_CUSTOM_PLUGIN, UNREGISTER_CUSTOM_PLUGIN } from '../actions/localConfig';
|
|
27
23
|
import ConfigUtils from '../utils/ConfigUtils';
|
|
28
24
|
import { UrlParams } from '../utils/PermaLinkUtils';
|
|
29
25
|
var defaultState = _objectSpread(_objectSpread({}, ConfigUtils.getDefaults()), {}, {
|
|
30
26
|
customPlugins: [],
|
|
31
27
|
startupParams: {},
|
|
32
28
|
startupState: {},
|
|
33
|
-
permalinkParams: {},
|
|
34
29
|
colorScheme: 'default'
|
|
35
30
|
});
|
|
36
31
|
export default function localConfig() {
|
|
@@ -76,20 +71,6 @@ export default function localConfig() {
|
|
|
76
71
|
user_infos: _objectSpread(_objectSpread({}, state.user_infos), action.fields)
|
|
77
72
|
});
|
|
78
73
|
}
|
|
79
|
-
case SET_PERMALINK_PARAMETERS:
|
|
80
|
-
{
|
|
81
|
-
return _objectSpread(_objectSpread({}, state), {}, {
|
|
82
|
-
permalinkParams: Object.entries(_objectSpread(_objectSpread({}, state.permalinkParams), action.params)).reduce(function (res, _ref) {
|
|
83
|
-
var _ref2 = _slicedToArray(_ref, 2),
|
|
84
|
-
key = _ref2[0],
|
|
85
|
-
value = _ref2[1];
|
|
86
|
-
if (value !== undefined) {
|
|
87
|
-
res[key] = value;
|
|
88
|
-
}
|
|
89
|
-
return res;
|
|
90
|
-
}, {})
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
74
|
case REGISTER_CUSTOM_PLUGIN:
|
|
94
75
|
{
|
|
95
76
|
return _objectSpread(_objectSpread({}, state), {}, {
|
|
@@ -98,17 +98,18 @@
|
|
|
98
98
|
"nobg": "Без фон"
|
|
99
99
|
},
|
|
100
100
|
"bookmark": {
|
|
101
|
-
"add": "Създаване на нов маркер",
|
|
102
101
|
"addfailed": "Неуспешно създаване на отметки",
|
|
102
|
+
"confirmDelete": "",
|
|
103
|
+
"confirmOverwrite": "",
|
|
103
104
|
"lastUpdate": "Последно запазен",
|
|
104
|
-
"manage": "Управление на отметките",
|
|
105
105
|
"newbookmark": "",
|
|
106
106
|
"nobookmarks": "Няма отметки",
|
|
107
|
-
"notloggedin": "Трябва да сте влезли в системата, за да съхранявате отметки",
|
|
108
107
|
"open": "Отваряне на отметки в текущия раздел",
|
|
109
108
|
"openTab": "Отваряне на отметки в раздела",
|
|
109
|
+
"public": "",
|
|
110
110
|
"removefailed": "Не успя да премахне отметките",
|
|
111
111
|
"savefailed": "Неуспешно актуализиране на отметките",
|
|
112
|
+
"togglePublic": "",
|
|
112
113
|
"update": "Актуализиране на отметките",
|
|
113
114
|
"zoomToExtent": "Увеличаване на обхвата"
|
|
114
115
|
},
|
|
@@ -919,15 +920,16 @@
|
|
|
919
920
|
"visiblecolor": ""
|
|
920
921
|
},
|
|
921
922
|
"visibilitypreset": {
|
|
922
|
-
"add": "",
|
|
923
923
|
"addfailed": "",
|
|
924
|
-
"
|
|
924
|
+
"confirmDelete": "",
|
|
925
|
+
"confirmOverwrite": "",
|
|
925
926
|
"newpreset": "",
|
|
926
927
|
"nopresets": "",
|
|
927
|
-
"notloggedin": "",
|
|
928
928
|
"open": "",
|
|
929
|
+
"public": "",
|
|
929
930
|
"removefailed": "",
|
|
930
931
|
"savefailed": "",
|
|
932
|
+
"togglePublic": "",
|
|
931
933
|
"update": ""
|
|
932
934
|
},
|
|
933
935
|
"window": {
|
|
@@ -98,17 +98,18 @@
|
|
|
98
98
|
"nobg": "Sense fons"
|
|
99
99
|
},
|
|
100
100
|
"bookmark": {
|
|
101
|
-
"add": "Afegir",
|
|
102
101
|
"addfailed": "Error al crear",
|
|
102
|
+
"confirmDelete": "",
|
|
103
|
+
"confirmOverwrite": "",
|
|
103
104
|
"lastUpdate": "Darrer canvi",
|
|
104
|
-
"manage": "Gestionar",
|
|
105
105
|
"newbookmark": "Nou marcador",
|
|
106
106
|
"nobookmarks": "Cap marcador",
|
|
107
|
-
"notloggedin": "No logat",
|
|
108
107
|
"open": "Obrir",
|
|
109
108
|
"openTab": "Obrir en una pestanya",
|
|
109
|
+
"public": "",
|
|
110
110
|
"removefailed": "Error al eliminar",
|
|
111
111
|
"savefailed": "Error al modificar",
|
|
112
|
+
"togglePublic": "",
|
|
112
113
|
"update": "Updatejar",
|
|
113
114
|
"zoomToExtent": "Fer zoom a l'extensió"
|
|
114
115
|
},
|
|
@@ -919,15 +920,16 @@
|
|
|
919
920
|
"visiblecolor": ""
|
|
920
921
|
},
|
|
921
922
|
"visibilitypreset": {
|
|
922
|
-
"add": "",
|
|
923
923
|
"addfailed": "",
|
|
924
|
-
"
|
|
924
|
+
"confirmDelete": "",
|
|
925
|
+
"confirmOverwrite": "",
|
|
925
926
|
"newpreset": "",
|
|
926
927
|
"nopresets": "",
|
|
927
|
-
"notloggedin": "",
|
|
928
928
|
"open": "",
|
|
929
|
+
"public": "",
|
|
929
930
|
"removefailed": "",
|
|
930
931
|
"savefailed": "",
|
|
932
|
+
"togglePublic": "",
|
|
931
933
|
"update": ""
|
|
932
934
|
},
|
|
933
935
|
"window": {
|
|
@@ -98,17 +98,18 @@
|
|
|
98
98
|
"nobg": "Bez podkladu"
|
|
99
99
|
},
|
|
100
100
|
"bookmark": {
|
|
101
|
-
"add": "Vytvořit novou záložku",
|
|
102
101
|
"addfailed": "Vytváření záložky selhalo",
|
|
102
|
+
"confirmDelete": "",
|
|
103
|
+
"confirmOverwrite": "",
|
|
103
104
|
"lastUpdate": "Naposledy upraveno",
|
|
104
|
-
"manage": "Správa záložek",
|
|
105
105
|
"newbookmark": "",
|
|
106
106
|
"nobookmarks": "Zatím žádné záložky",
|
|
107
|
-
"notloggedin": "Pro vytvoření záložky se musíte přihlásit",
|
|
108
107
|
"open": "Otevřít záložku",
|
|
109
108
|
"openTab": "Otevřít záložku v novém okně",
|
|
109
|
+
"public": "",
|
|
110
110
|
"removefailed": "Mazání záložky selhalo",
|
|
111
111
|
"savefailed": "Ukládání záložky selhalo",
|
|
112
|
+
"togglePublic": "",
|
|
112
113
|
"update": "Upravit",
|
|
113
114
|
"zoomToExtent": ""
|
|
114
115
|
},
|
|
@@ -919,15 +920,16 @@
|
|
|
919
920
|
"visiblecolor": ""
|
|
920
921
|
},
|
|
921
922
|
"visibilitypreset": {
|
|
922
|
-
"add": "",
|
|
923
923
|
"addfailed": "",
|
|
924
|
-
"
|
|
924
|
+
"confirmDelete": "",
|
|
925
|
+
"confirmOverwrite": "",
|
|
925
926
|
"newpreset": "",
|
|
926
927
|
"nopresets": "",
|
|
927
|
-
"notloggedin": "",
|
|
928
928
|
"open": "",
|
|
929
|
+
"public": "",
|
|
929
930
|
"removefailed": "",
|
|
930
931
|
"savefailed": "",
|
|
932
|
+
"togglePublic": "",
|
|
931
933
|
"update": ""
|
|
932
934
|
},
|
|
933
935
|
"window": {
|
|
@@ -98,17 +98,18 @@
|
|
|
98
98
|
"nobg": "Kein Hintergrund"
|
|
99
99
|
},
|
|
100
100
|
"bookmark": {
|
|
101
|
-
"add": "Neues Lesezeichen anlegen",
|
|
102
101
|
"addfailed": "Lesezeichen konnte nicht angelegt werden",
|
|
102
|
+
"confirmDelete": "Lesezeichen löschen?",
|
|
103
|
+
"confirmOverwrite": "Lesezeichen überschreiben?",
|
|
103
104
|
"lastUpdate": "Zuletzt gespeichert",
|
|
104
|
-
"manage": "Lesezeichen",
|
|
105
105
|
"newbookmark": "Neues Lesezeichen",
|
|
106
106
|
"nobookmarks": "Keine Lesezeichen",
|
|
107
|
-
"notloggedin": "Sie müssen angemeldet sein, um Lesezeichen zu verwenden",
|
|
108
107
|
"open": "In aktuellem Fenster öffnen",
|
|
109
108
|
"openTab": "In neuem Fenster öffnen",
|
|
109
|
+
"public": "Öffentliches Lesezeichen",
|
|
110
110
|
"removefailed": "Lesezeichen konnte nicht entfernt werden",
|
|
111
111
|
"savefailed": "Lesezeichen konnte nicht aktualisiert werden",
|
|
112
|
+
"togglePublic": "Lesezeichen öffentlich publizieren",
|
|
112
113
|
"update": "Lesezeichen aktualisieren",
|
|
113
114
|
"zoomToExtent": "Auf Ausschnitt zoomen"
|
|
114
115
|
},
|
|
@@ -919,15 +920,16 @@
|
|
|
919
920
|
"visiblecolor": "Sichtbar"
|
|
920
921
|
},
|
|
921
922
|
"visibilitypreset": {
|
|
922
|
-
"add": "Sichtbarkeitsprofil anlegen",
|
|
923
923
|
"addfailed": "Sichtbarkeitsprofil konnte nicht angelegt werden",
|
|
924
|
-
"
|
|
924
|
+
"confirmDelete": "Sichtbarkeitsprofil löschen?",
|
|
925
|
+
"confirmOverwrite": "Sichtbarkeitsprofil überschreiben?",
|
|
925
926
|
"newpreset": "Neues Sichtbarkeitsprofil",
|
|
926
927
|
"nopresets": "Keine Sichtbarkeitsprofile angelegt",
|
|
927
|
-
"notloggedin": "Sie müssen angemeldet sein, um Sichtbarkeitsprofile zu verwenden",
|
|
928
928
|
"open": "In aktuellem Fenster öffnen",
|
|
929
|
+
"public": "Öffentliches Sichtbarkeitsprofil",
|
|
929
930
|
"removefailed": "Sichtbarkeitsprofil konnte nicht entfernt werden",
|
|
930
931
|
"savefailed": "Sichtbarkeitsprofil konnte nicht aktualisiert werden",
|
|
932
|
+
"togglePublic": "Sichtbarkeitsprofil öffentlich publizieren",
|
|
931
933
|
"update": "Sichtbarkeitsprofil aktualisieren"
|
|
932
934
|
},
|
|
933
935
|
"window": {
|