qwc2 2025.10.9 → 2025.10.14
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/display.js +30 -1
- package/actions/editing.js +22 -1
- package/actions/layerinfo.js +13 -1
- package/actions/layers.js +213 -3
- package/actions/localConfig.js +58 -1
- package/actions/locale.js +21 -1
- package/actions/locate.js +26 -1
- package/actions/logging.js +10 -1
- package/actions/map.js +105 -2
- package/actions/measurement.js +12 -1
- package/actions/processNotifications.js +37 -1
- package/actions/redlining.js +18 -1
- package/actions/redliningPick.js +12 -1
- package/actions/search.js +12 -1
- package/actions/serviceinfo.js +12 -1
- package/actions/task.js +55 -3
- package/actions/theme.js +339 -19
- package/actions/windows.js +164 -5
- package/components/AppMenu.js +435 -3
- package/components/AttributeForm.js +928 -32
- package/components/AttributeTableWidget.js +1105 -13
- package/components/AutoEditForm.js +189 -3
- package/components/CoordinateDisplayer.js +78 -2
- package/components/EditComboField.js +190 -6
- package/components/EditUploadField.js +315 -3
- package/components/ExportSelection.js +203 -2
- package/components/FullscreenSwitcher.js +90 -3
- package/components/Icon.js +81 -2
- package/components/IdentifyViewer.js +1161 -6
- package/components/ImportLayer.js +718 -20
- package/components/LayerInfoWindow.js +145 -2
- package/components/LinkFeatureForm.js +246 -5
- package/components/MapButton.js +88 -2
- package/components/MapSelection.js +287 -8
- package/components/MessageBar.js +68 -2
- package/components/NumericInputWindow.js +359 -2
- package/components/PickFeature.js +266 -2
- package/components/PluginsContainer.js +227 -8
- package/components/PrintSelection.js +620 -49
- package/components/ProcessNotifications.js +104 -2
- package/components/QtDesignerForm.js +1137 -18
- package/components/ResizeableWindow.js +591 -8
- package/components/SearchBox.js +1307 -20
- package/components/ServiceInfoWindow.js +107 -2
- package/components/SideBar.js +204 -4
- package/components/StandardApp.js +381 -20
- package/components/Swipeable.js +15 -1
- package/components/TaskBar.js +85 -2
- package/components/ThemeLayersListWindow.js +216 -4
- package/components/ThemeList.js +381 -7
- package/components/Toolbar.js +106 -2
- package/components/WindowManager.js +178 -2
- package/components/map/OlLayer.js +257 -6
- package/components/map/OlMap.js +405 -5
- package/components/map/layers/BingLayer.js +31 -2
- package/components/map/layers/GoogleLayer.js +222 -19
- package/components/map/layers/GraticuleLayer.js +21 -1
- package/components/map/layers/ImageLayer.js +15 -1
- package/components/map/layers/MVTLayer.js +52 -2
- package/components/map/layers/OSMLayer.js +24 -2
- package/components/map/layers/OverlayLayer.js +55 -3
- package/components/map/layers/VectorLayer.js +173 -8
- package/components/map/layers/WFSLayer.js +220 -6
- package/components/map/layers/WMSLayer.js +180 -6
- package/components/map/layers/WMTSLayer.js +67 -3
- package/components/map/layers/XYZLayer.js +24 -2
- package/components/map/layers/index.js +28 -1
- package/components/map3d/EditDataset3D.js +190 -3
- package/components/map3d/HeightProfile3D.js +402 -3
- package/components/map3d/ImportObjects3D.js +162 -2
- package/components/map3d/Map3D.js +1304 -38
- package/components/map3d/MapControls3D.js +392 -7
- package/components/map3d/SearchField3D.js +183 -11
- package/components/map3d/View3DSwitcher.js +98 -2
- package/components/map3d/drawtool/CreateTool3D.js +174 -4
- package/components/map3d/drawtool/EditTool3D.js +590 -6
- package/components/map3d/drawtool/NumericInput3D.js +336 -4
- package/components/map3d/layers/GeoTIFFLayer3D.js +15 -1
- package/components/map3d/layers/VectorLayer3D.js +53 -2
- package/components/map3d/layers/WFSLayer3D.js +109 -3
- package/components/map3d/layers/WMSLayer3D.js +70 -2
- package/components/map3d/layers/WMTSLayer3D.js +27 -3
- package/components/map3d/layers/index.js +14 -1
- package/components/map3d/utils/FirstPersonControls3D.js +423 -16
- package/components/map3d/utils/MiscUtils3D.js +221 -13
- package/components/map3d/utils/OrbitControls3D.js +176 -5
- package/components/map3d/utils/Tiles3DStyle.js +238 -9
- package/components/share/ShareLink.js +54 -2
- package/components/share/ShareQRCode.js +62 -2
- package/components/share/ShareSocials.js +125 -3
- package/components/timeline/FixedTimeline.js +236 -5
- package/components/timeline/InfiniteTimeline.js +347 -8
- package/components/timeline/TimelineFeaturesSlider.js +439 -5
- package/components/widgets/AccordeonWidget.js +96 -2
- package/components/widgets/ButtonBar.js +124 -2
- package/components/widgets/ColorButton.js +201 -3
- package/components/widgets/ComboBox.js +166 -2
- package/components/widgets/CopyButton.js +110 -2
- package/components/widgets/DateTimeInput.js +100 -3
- package/components/widgets/EditableSelect.js +230 -3
- package/components/widgets/FileSelector.js +128 -4
- package/components/widgets/Input.js +124 -2
- package/components/widgets/InputContainer.js +96 -2
- package/components/widgets/LayerCatalogWidget.js +219 -3
- package/components/widgets/MenuButton.js +157 -1
- package/components/widgets/ModalDialog.js +64 -2
- package/components/widgets/NavBar.js +119 -2
- package/components/widgets/NumberInput.js +226 -4
- package/components/widgets/PopupMenu.js +72 -1
- package/components/widgets/Primitives.js +6 -1
- package/components/widgets/ReCaptchaWidget.js +55 -1
- package/components/widgets/SearchWidget.js +255 -2
- package/components/widgets/Spinner.js +44 -2
- package/components/widgets/SuggestionInput.js +77 -2
- package/components/widgets/TextInput.js +308 -2
- package/components/widgets/ToggleSwitch.js +85 -2
- package/components/widgets/VectorLayerPicker.js +85 -3
- package/libs/openlayers.js +225 -5
- package/package.json +1 -1
- package/plugins/API.js +358 -15
- package/plugins/AttributeTable.js +109 -3
- package/plugins/Authentication.js +130 -5
- package/plugins/BackgroundSwitcher.js +218 -4
- package/plugins/Bookmark.js +289 -3
- package/plugins/BottomBar.js +298 -4
- package/plugins/CookiePopup.js +67 -3
- package/plugins/Cyclomedia.js +442 -5
- package/plugins/Editing.js +497 -9
- package/plugins/FeatureForm.js +366 -4
- package/plugins/FeatureSearch.js +458 -3
- package/plugins/GeometryDigitizer.js +664 -7
- package/plugins/HeightProfile.js +763 -15
- package/plugins/Help.js +102 -3
- package/plugins/HomeButton.js +80 -3
- package/plugins/Identify.js +543 -5
- package/plugins/LayerCatalog.js +215 -4
- package/plugins/LayerTree.js +1194 -6
- package/plugins/LocateButton.js +94 -3
- package/plugins/Map.js +320 -16
- package/plugins/MapCompare.js +94 -3
- package/plugins/MapCopyright.js +127 -5
- package/plugins/MapExport.js +613 -20
- package/plugins/MapFilter.js +868 -12
- package/plugins/MapInfoTooltip.js +277 -3
- package/plugins/MapLegend.js +253 -4
- package/plugins/MapTip.js +290 -4
- package/plugins/Measure.js +220 -4
- package/plugins/NewsPopup.js +137 -3
- package/plugins/OverviewMap.js +167 -7
- package/plugins/Panoramax.js +340 -2
- package/plugins/Portal.js +199 -4
- package/plugins/Print.js +1231 -15
- package/plugins/Redlining.js +750 -6
- package/plugins/Reports.js +332 -3
- package/plugins/Routing.js +1278 -15
- package/plugins/ScratchDrawing.js +173 -5
- package/plugins/Settings.js +241 -4
- package/plugins/Share.js +198 -3
- package/plugins/StartupMarker.js +84 -4
- package/plugins/TaskButton.js +88 -3
- package/plugins/ThemeSwitcher.js +164 -4
- package/plugins/TimeManager.js +971 -10
- package/plugins/TopBar.js +300 -7
- package/plugins/TourGuide.js +213 -2
- package/plugins/ValueTool.js +419 -4
- package/plugins/View3D.js +519 -14
- package/plugins/ZoomButtons.js +165 -3
- package/plugins/map/EditingSupport.js +199 -7
- package/plugins/map/LocateSupport.js +260 -4
- package/plugins/map/MeasurementSupport.js +216 -8
- package/plugins/map/RedliningPickSupport.js +201 -7
- package/plugins/map/RedliningSupport.js +726 -17
- package/plugins/map/SnapInteraction.js +101 -1
- package/plugins/map/SnapSupport.js +210 -2
- package/plugins/map/SnappingSupport.js +356 -17
- package/plugins/map3d/BackgroundSwitcher3D.js +44 -3
- package/plugins/map3d/BottomBar3D.js +118 -3
- package/plugins/map3d/Compare3D.js +422 -8
- package/plugins/map3d/Draw3D.js +353 -6
- package/plugins/map3d/ExportObjects3D.js +393 -18
- package/plugins/map3d/HideObjects3D.js +313 -12
- package/plugins/map3d/Identify3D.js +283 -12
- package/plugins/map3d/LayerTree3D.js +323 -3
- package/plugins/map3d/MapCopyright3D.js +128 -5
- package/plugins/map3d/MapExport3D.js +590 -10
- package/plugins/map3d/MapLight3D.js +553 -6
- package/plugins/map3d/Measure3D.js +571 -20
- package/plugins/map3d/OverviewMap3D.js +169 -3
- package/plugins/map3d/Settings3D.js +73 -3
- package/plugins/map3d/TopBar3D.js +207 -9
- package/plugins/redlining/RedliningBufferSupport.js +206 -3
- package/reducers/display.js +34 -2
- package/reducers/editing.js +68 -3
- package/reducers/index.js +9 -1
- package/reducers/layerinfo.js +26 -2
- package/reducers/layers.js +456 -9
- package/reducers/localConfig.js +122 -2
- package/reducers/locale.js +38 -2
- package/reducers/locate.js +40 -2
- package/reducers/map.js +176 -5
- package/reducers/measurement.js +42 -2
- package/reducers/processNotifications.js +49 -2
- package/reducers/redlining.js +50 -2
- package/reducers/redliningPick.js +27 -2
- package/reducers/search.js +20 -1
- package/reducers/serviceinfo.js +25 -2
- package/reducers/task.js +45 -2
- package/reducers/theme.js +51 -2
- package/reducers/windows.js +203 -2
- package/scripts/dist.sh +1 -1
- package/scripts/gen-plugin-docs.js +152 -2
- package/scripts/makeIconkit.js +85 -6
- package/scripts/themesConfig.js +742 -40
- package/scripts/updateTranslations.js +251 -10
- package/selectors/searchproviders.js +44 -2
- package/stores/StandardStore.js +42 -2
- package/utils/ConfigUtils.js +84 -3
- package/utils/CoordinatesUtils.js +234 -23
- package/utils/DxfUtils.js +237 -11
- package/utils/EditingInterface.js +421 -87
- package/utils/EditingUtils.js +357 -13
- package/utils/ElevationInterface.js +83 -22
- package/utils/FeatureStyles.js +429 -5
- package/utils/IdentifyUtils.js +443 -7
- package/utils/ImageEditor.js +79 -9
- package/utils/LayerUtils.js +1516 -50
- package/utils/LocaleUtils.js +117 -7
- package/utils/MapUtils.js +241 -59
- package/utils/MeasureUtils.js +323 -2
- package/utils/MiscUtils.js +189 -11
- package/utils/PermaLinkUtils.js +429 -6
- package/utils/PluginStore.js +27 -1
- package/utils/ResourceRegistry.js +15 -1
- package/utils/RoutingInterface.js +307 -7
- package/utils/SearchProviders.js +722 -19
- package/utils/ServiceLayerUtils.js +669 -14
- package/utils/Signal.js +32 -2
- package/utils/ThemeUtils.js +341 -7
- package/utils/VectorLayerUtils.js +589 -15
- package/utils/expr_grammar/grammar.js +2239 -2
- package/utils/expr_grammar/test.js +65 -3
|
@@ -1,26 +1,387 @@
|
|
|
1
|
-
function _typeof(o){"@babel/helpers - typeof";return _typeof="function"==
|
|
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
|
+
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
3
|
+
function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
|
|
4
|
+
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."); }
|
|
5
|
+
function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
|
|
6
|
+
function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
|
|
7
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
8
|
+
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."); }
|
|
9
|
+
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; } }
|
|
10
|
+
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; }
|
|
11
|
+
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; } }
|
|
12
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
13
|
+
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; }
|
|
14
|
+
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; }
|
|
15
|
+
function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
|
|
16
|
+
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); } }
|
|
17
|
+
function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
|
|
18
|
+
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
19
|
+
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); }
|
|
20
|
+
function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
|
|
21
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
22
|
+
function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }
|
|
23
|
+
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); }
|
|
24
|
+
function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
|
|
25
|
+
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; }
|
|
26
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
27
|
+
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); }
|
|
28
|
+
/**
|
|
2
29
|
* Copyright 2016 GeoSolutions Sas
|
|
3
30
|
* Copyright 2016-2024 Sourcepole AG
|
|
4
31
|
* All rights reserved.
|
|
5
32
|
*
|
|
6
33
|
* This source code is licensed under the BSD-style license found in the
|
|
7
34
|
* LICENSE file in the root directory of this source tree.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
axios
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
35
|
+
*/
|
|
36
|
+
import React from 'react';
|
|
37
|
+
import { Provider, connect } from 'react-redux';
|
|
38
|
+
import axios from 'axios';
|
|
39
|
+
import deepmerge from 'deepmerge';
|
|
40
|
+
import { register as olProj4Register } from 'ol/proj/proj4';
|
|
41
|
+
import Proj4js from 'proj4';
|
|
42
|
+
import PropTypes from 'prop-types';
|
|
43
|
+
import { localConfigLoaded, setStartupParameters, setColorScheme } from '../actions/localConfig';
|
|
44
|
+
import { changeLocale } from '../actions/locale';
|
|
45
|
+
import { setCurrentTask } from '../actions/task';
|
|
46
|
+
import { themesLoaded, setCurrentTheme } from '../actions/theme';
|
|
47
|
+
import { NotificationType, showNotification, setBottombarHeight, setTopbarHeight } from '../actions/windows';
|
|
48
|
+
import ReducerIndex from '../reducers/index';
|
|
49
|
+
import { createStore } from '../stores/StandardStore';
|
|
50
|
+
import ConfigUtils from '../utils/ConfigUtils';
|
|
51
|
+
import CoordinatesUtils from '../utils/CoordinatesUtils';
|
|
52
|
+
import LocaleUtils from '../utils/LocaleUtils';
|
|
53
|
+
import MapUtils from '../utils/MapUtils';
|
|
54
|
+
import MiscUtils from '../utils/MiscUtils';
|
|
55
|
+
import { UrlParams, resolvePermaLink } from '../utils/PermaLinkUtils';
|
|
56
|
+
import PluginStore from '../utils/PluginStore';
|
|
57
|
+
import ThemeUtils from '../utils/ThemeUtils';
|
|
58
|
+
import PluginsContainer from './PluginsContainer';
|
|
59
|
+
import './style/App.css';
|
|
60
|
+
import './style/DefaultColorScheme.css';
|
|
61
|
+
var CSRF_TOKEN = MiscUtils.getCsrfToken();
|
|
62
|
+
if (CSRF_TOKEN) {
|
|
63
|
+
axios.interceptors.request.use(function (config) {
|
|
64
|
+
if (["POST", "PUT", "PATCH", "DELETE"].includes(config.method.toUpperCase())) {
|
|
65
|
+
config.headers["X-CSRF-TOKEN"] = CSRF_TOKEN;
|
|
66
|
+
}
|
|
67
|
+
return config;
|
|
68
|
+
}, function (error) {
|
|
69
|
+
return Promise.reject(error);
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
var AppContainerComponent = /*#__PURE__*/function (_React$Component) {
|
|
73
|
+
function AppContainerComponent(props) {
|
|
74
|
+
var _this;
|
|
75
|
+
_classCallCheck(this, AppContainerComponent);
|
|
76
|
+
_this = _callSuper(this, AppContainerComponent, [props]);
|
|
77
|
+
_defineProperty(_this, "loadThemes", function () {
|
|
78
|
+
_this.themesLoaded = true;
|
|
79
|
+
var _this$props$startupCo = _this.props.startupConfig,
|
|
80
|
+
state = _this$props$startupCo.state,
|
|
81
|
+
permalinkInvalid = _this$props$startupCo.permalinkInvalid;
|
|
82
|
+
var params = _objectSpread({}, _this.props.startupConfig.params); // Clone as changed below
|
|
83
|
+
|
|
84
|
+
// Warn if permalink key is invalid
|
|
85
|
+
if (permalinkInvalid) {
|
|
86
|
+
_this.props.showNotification("missingtheme", LocaleUtils.tr("app.missingpermalink"), NotificationType.WARN, true);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
// Load themes.json
|
|
90
|
+
axios.get("themes.json", {
|
|
91
|
+
params: {
|
|
92
|
+
lang: _this.props.locale
|
|
93
|
+
}
|
|
94
|
+
}).then(function (response) {
|
|
95
|
+
var _this$props$appConfig, _this$props$appConfig2, _theme;
|
|
96
|
+
var themes = ThemeUtils.applyTranslations(response.data.themes || {});
|
|
97
|
+
(_this$props$appConfig = (_this$props$appConfig2 = _this.props.appConfig).themePreprocessor) === null || _this$props$appConfig === void 0 || _this$props$appConfig.call(_this$props$appConfig2, themes);
|
|
98
|
+
_this.props.themesLoaded(themes);
|
|
99
|
+
var theme = ThemeUtils.getThemeById(themes, params.t);
|
|
100
|
+
if ((!theme || theme.restricted) && !ConfigUtils.getConfigProp("dontLoadDefaultTheme") && (params.t || !ConfigUtils.havePlugin("Portal"))) {
|
|
101
|
+
if (params.t) {
|
|
102
|
+
_this.props.showNotification("missingtheme", LocaleUtils.tr("app.missingtheme", params.t), NotificationType.WARN, true);
|
|
103
|
+
params.l = undefined;
|
|
104
|
+
}
|
|
105
|
+
var userDefaultTheme = Object.fromEntries(_this.props.defaultUrlParams.split("&").map(function (x) {
|
|
106
|
+
return x.split("=");
|
|
107
|
+
})).t;
|
|
108
|
+
var defaultTheme = themes.defaultTheme;
|
|
109
|
+
if (userDefaultTheme) {
|
|
110
|
+
var _ThemeUtils$getThemeB;
|
|
111
|
+
theme = (_ThemeUtils$getThemeB = ThemeUtils.getThemeById(themes, userDefaultTheme)) !== null && _ThemeUtils$getThemeB !== void 0 ? _ThemeUtils$getThemeB : ThemeUtils.getThemeById(themes, defaultTheme);
|
|
112
|
+
} else {
|
|
113
|
+
theme = ThemeUtils.getThemeById(themes, defaultTheme);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
if (theme) {
|
|
117
|
+
var _params$bl;
|
|
118
|
+
// Compute initial view
|
|
119
|
+
var initialView = params.v;
|
|
120
|
+
var initialExtent = null;
|
|
121
|
+
if (params.c && params.s !== undefined) {
|
|
122
|
+
var coords = params.c.split(/[;,]/g).map(function (x) {
|
|
123
|
+
return parseFloat(x) || 0;
|
|
124
|
+
});
|
|
125
|
+
var scales = theme.scales || themes.defaultScales;
|
|
126
|
+
var zoom = MapUtils.computeZoom(scales, params.s);
|
|
127
|
+
if (coords.length === 2) {
|
|
128
|
+
var p = CoordinatesUtils.reproject(coords, params.crs || theme.mapCrs, theme.bbox.crs);
|
|
129
|
+
var bounds = theme.bbox.bounds;
|
|
130
|
+
// Only accept c if it is within the theme bounds
|
|
131
|
+
if (bounds[0] <= p[0] && p[0] <= bounds[2] && bounds[1] <= p[1] && p[1] <= bounds[3]) {
|
|
132
|
+
initialExtent = {
|
|
133
|
+
center: coords,
|
|
134
|
+
zoom: zoom,
|
|
135
|
+
crs: params.crs || theme.mapCrs
|
|
136
|
+
};
|
|
137
|
+
} else {
|
|
138
|
+
initialExtent = {
|
|
139
|
+
center: [0.5 * (bounds[0] + bounds[2]), 0.5 * (bounds[1] + bounds[3])],
|
|
140
|
+
zoom: zoom,
|
|
141
|
+
crs: theme.bbox.crs
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
} else if (params.e) {
|
|
146
|
+
var _bounds = params.e.split(/[;,]/g).map(function (x) {
|
|
147
|
+
return parseFloat(x) || 0;
|
|
148
|
+
});
|
|
149
|
+
if (CoordinatesUtils.isValidExtent(_bounds)) {
|
|
150
|
+
initialExtent = {
|
|
151
|
+
bounds: _bounds,
|
|
152
|
+
crs: params.crs || theme.mapCrs
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
var layerParams = params.l !== undefined ? params.l.split(",").filter(function (entry) {
|
|
157
|
+
return entry;
|
|
158
|
+
}) : null;
|
|
159
|
+
if (layerParams && ConfigUtils.getConfigProp("urlReverseLayerOrder")) {
|
|
160
|
+
layerParams.reverse();
|
|
161
|
+
}
|
|
162
|
+
_this.props.setCurrentTheme(theme, themes, false, initialExtent, layerParams, (_params$bl = params.bl) !== null && _params$bl !== void 0 ? _params$bl : null, state.layers, _this.props.appConfig.themeLayerRestorer, _this.props.appConfig.externalLayerRestorer, initialView);
|
|
163
|
+
} else if (!ConfigUtils.havePlugin("Portal")) {
|
|
164
|
+
_this.props.showNotification("missingdefaulttheme", LocaleUtils.tr("app.missingdefaulttheme", params.t), NotificationType.WARN, true);
|
|
165
|
+
}
|
|
166
|
+
var task = ConfigUtils.getConfigProp("startupTask");
|
|
167
|
+
if (task && !((_theme = theme) !== null && _theme !== void 0 && (_theme = _theme.config) !== null && _theme !== void 0 && _theme.startupTask)) {
|
|
168
|
+
var mapClickAction = ConfigUtils.getPluginConfig(task.key).mapClickAction;
|
|
169
|
+
_this.props.setCurrentTask(task.key, task.mode, mapClickAction);
|
|
170
|
+
}
|
|
171
|
+
});
|
|
172
|
+
});
|
|
173
|
+
_this.themesLoaded = false;
|
|
174
|
+
|
|
175
|
+
// Set initial bottom/topbar height to zero in case not topbar/bottombar is enabled
|
|
176
|
+
// The components will set the proper height if and when initialized
|
|
177
|
+
props.setTopbarHeight(0);
|
|
178
|
+
props.setBottombarHeight(0);
|
|
179
|
+
return _this;
|
|
180
|
+
}
|
|
181
|
+
_inherits(AppContainerComponent, _React$Component);
|
|
182
|
+
return _createClass(AppContainerComponent, [{
|
|
183
|
+
key: "componentDidMount",
|
|
184
|
+
value: function componentDidMount() {
|
|
185
|
+
this.componentDidUpdate({});
|
|
186
|
+
}
|
|
187
|
+
}, {
|
|
188
|
+
key: "componentDidUpdate",
|
|
189
|
+
value: function componentDidUpdate(prevProps) {
|
|
190
|
+
// The map component needs to have finished loading before theme initialization can proceed
|
|
191
|
+
if (this.props.haveMapSize && !this.themesLoaded) {
|
|
192
|
+
this.loadThemes();
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
}, {
|
|
196
|
+
key: "render",
|
|
197
|
+
value: function render() {
|
|
198
|
+
// Filter 2D plugins
|
|
199
|
+
var device = ConfigUtils.isMobile() ? 'mobile' : 'desktop';
|
|
200
|
+
var pluginsConf = this.props.localConfig.plugins[device];
|
|
201
|
+
return /*#__PURE__*/React.createElement(PluginsContainer, {
|
|
202
|
+
pluginsConfig: pluginsConf
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
}]);
|
|
206
|
+
}(React.Component);
|
|
207
|
+
_defineProperty(AppContainerComponent, "propTypes", {
|
|
208
|
+
appConfig: PropTypes.object,
|
|
209
|
+
customPlugins: PropTypes.array,
|
|
210
|
+
defaultUrlParams: PropTypes.string,
|
|
211
|
+
haveMapSize: PropTypes.bool,
|
|
212
|
+
localConfig: PropTypes.object,
|
|
213
|
+
locale: PropTypes.string,
|
|
214
|
+
setBottombarHeight: PropTypes.func,
|
|
215
|
+
setCurrentTask: PropTypes.func,
|
|
216
|
+
setCurrentTheme: PropTypes.func,
|
|
217
|
+
setTopbarHeight: PropTypes.func,
|
|
218
|
+
showNotification: PropTypes.func,
|
|
219
|
+
startupConfig: PropTypes.object,
|
|
220
|
+
themesLoaded: PropTypes.func
|
|
221
|
+
});
|
|
222
|
+
var AppContainer = connect(function (state) {
|
|
223
|
+
var _state$localConfig$us;
|
|
224
|
+
return {
|
|
225
|
+
locale: state.locale.current,
|
|
226
|
+
haveMapSize: state.map.size !== null,
|
|
227
|
+
defaultUrlParams: ((_state$localConfig$us = state.localConfig.user_infos) === null || _state$localConfig$us === void 0 ? void 0 : _state$localConfig$us.default_url_params) || "",
|
|
228
|
+
localConfig: state.localConfig
|
|
229
|
+
};
|
|
230
|
+
}, {
|
|
231
|
+
themesLoaded: themesLoaded,
|
|
232
|
+
setCurrentTask: setCurrentTask,
|
|
233
|
+
setCurrentTheme: setCurrentTheme,
|
|
234
|
+
showNotification: showNotification,
|
|
235
|
+
setTopbarHeight: setTopbarHeight,
|
|
236
|
+
setBottombarHeight: setBottombarHeight
|
|
237
|
+
})(AppContainerComponent);
|
|
238
|
+
var StandardApp = /*#__PURE__*/function (_React$Component2) {
|
|
239
|
+
function StandardApp(props) {
|
|
240
|
+
var _this2;
|
|
241
|
+
_classCallCheck(this, StandardApp);
|
|
242
|
+
_this2 = _callSuper(this, StandardApp, [props]);
|
|
243
|
+
_defineProperty(_this2, "state", {
|
|
244
|
+
startupConfig: null,
|
|
245
|
+
haveConfig: false,
|
|
246
|
+
haveLocale: false
|
|
247
|
+
});
|
|
248
|
+
_defineProperty(_this2, "computeVh", function () {
|
|
249
|
+
// https://css-tricks.com/the-trick-to-viewport-units-on-mobile/
|
|
250
|
+
document.documentElement.style.setProperty('--vh', window.innerHeight * 0.01 + 'px');
|
|
251
|
+
});
|
|
252
|
+
_defineProperty(_this2, "init", function () {
|
|
253
|
+
// Save initial params and clear URL
|
|
254
|
+
var initialParams = UrlParams.getParams();
|
|
255
|
+
UrlParams.clear();
|
|
256
|
+
|
|
257
|
+
// Set builtin plugins
|
|
258
|
+
PluginStore.setBuiltinPlugins(_this2.props.appConfig.pluginsDef.plugins);
|
|
259
|
+
|
|
260
|
+
// Load config.json
|
|
261
|
+
var configParams = Object.entries(initialParams).reduce(function (res, _ref) {
|
|
262
|
+
var _ref2 = _slicedToArray(_ref, 2),
|
|
263
|
+
key = _ref2[0],
|
|
264
|
+
value = _ref2[1];
|
|
265
|
+
if (key.startsWith("config:")) {
|
|
266
|
+
res[key.slice(7)] = value;
|
|
267
|
+
}
|
|
268
|
+
return res;
|
|
269
|
+
}, {});
|
|
270
|
+
ConfigUtils.loadConfiguration(configParams).then(function (config) {
|
|
271
|
+
var _window$QWC2PluginCon, _window$QWC2PluginCon2, _window$QWC2PluginCon3, _ref5, _this2$props$appConfi, _this2$props$appConfi2, _this2$props$appConfi3;
|
|
272
|
+
// Merge common config into mobile/desktop config, merge config from appConfig
|
|
273
|
+
var renameTaskButtons = function renameTaskButtons(res, entry) {
|
|
274
|
+
var _entry$cfg$task, _entry$cfg;
|
|
275
|
+
var key = entry.name + (entry.name === "TaskButton" ? "#" + ((_entry$cfg$task = (_entry$cfg = entry.cfg) === null || _entry$cfg === void 0 ? void 0 : _entry$cfg.task) !== null && _entry$cfg$task !== void 0 ? _entry$cfg$task : "") : "");
|
|
276
|
+
return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, entry));
|
|
277
|
+
};
|
|
278
|
+
var commonConfig = [].concat(_toConsumableArray(config.plugins.common || []), _toConsumableArray(((_window$QWC2PluginCon = window.QWC2PluginConfig) === null || _window$QWC2PluginCon === void 0 ? void 0 : _window$QWC2PluginCon.common) || [])).reduce(renameTaskButtons, {});
|
|
279
|
+
var desktopConfig = [].concat(_toConsumableArray(config.plugins.desktop || []), _toConsumableArray(((_window$QWC2PluginCon2 = window.QWC2PluginConfig) === null || _window$QWC2PluginCon2 === void 0 ? void 0 : _window$QWC2PluginCon2.desktop) || [])).reduce(renameTaskButtons, {});
|
|
280
|
+
var mobileConfig = [].concat(_toConsumableArray(config.plugins.mobile || []), _toConsumableArray(((_window$QWC2PluginCon3 = window.QWC2PluginConfig) === null || _window$QWC2PluginCon3 === void 0 ? void 0 : _window$QWC2PluginCon3.mobile) || [])).reduce(renameTaskButtons, {});
|
|
281
|
+
var completePluginConfig = function completePluginConfig(pluginConfig) {
|
|
282
|
+
return Object.entries(pluginConfig).map(function (_ref3) {
|
|
283
|
+
var _plugin$WrappedCompon, _component$availableI;
|
|
284
|
+
var _ref4 = _slicedToArray(_ref3, 2),
|
|
285
|
+
key = _ref4[0],
|
|
286
|
+
entry = _ref4[1];
|
|
287
|
+
var plugin = _this2.props.appConfig.pluginsDef.plugins[entry.name + "Plugin"];
|
|
288
|
+
var component = (_plugin$WrappedCompon = plugin === null || plugin === void 0 ? void 0 : plugin.WrappedComponent) !== null && _plugin$WrappedCompon !== void 0 ? _plugin$WrappedCompon : plugin;
|
|
289
|
+
var availableIn3D = (_component$availableI = component === null || component === void 0 ? void 0 : component.availableIn3D) !== null && _component$availableI !== void 0 ? _component$availableI : false;
|
|
290
|
+
return _objectSpread(_objectSpread({}, entry), {}, {
|
|
291
|
+
key: key,
|
|
292
|
+
availableIn3D: availableIn3D,
|
|
293
|
+
cfg: _objectSpread(_objectSpread({}, entry.cfg), _this2.props.appConfig.pluginsDef.cfg[entry.name + "Plugin"])
|
|
294
|
+
});
|
|
295
|
+
});
|
|
296
|
+
};
|
|
297
|
+
config.plugins.desktop = completePluginConfig(deepmerge(commonConfig, desktopConfig));
|
|
298
|
+
config.plugins.mobile = completePluginConfig(deepmerge(commonConfig, mobileConfig));
|
|
299
|
+
delete config.plugins.common;
|
|
300
|
+
|
|
301
|
+
// Add projections from config
|
|
302
|
+
var _iterator = _createForOfIteratorHelper(config.projections || []),
|
|
303
|
+
_step;
|
|
304
|
+
try {
|
|
305
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
306
|
+
var proj = _step.value;
|
|
307
|
+
if (Proj4js.defs(proj.code) === undefined) {
|
|
308
|
+
Proj4js.defs(proj.code, proj.proj);
|
|
309
|
+
}
|
|
310
|
+
CoordinatesUtils.setCrsLabels(_defineProperty({}, proj.code, proj.label));
|
|
311
|
+
}
|
|
312
|
+
} catch (err) {
|
|
313
|
+
_iterator.e(err);
|
|
314
|
+
} finally {
|
|
315
|
+
_iterator.f();
|
|
316
|
+
}
|
|
317
|
+
olProj4Register(Proj4js);
|
|
318
|
+
StandardApp.store.dispatch(localConfigLoaded(config));
|
|
319
|
+
_this2.setState({
|
|
320
|
+
haveConfig: true
|
|
321
|
+
});
|
|
322
|
+
|
|
323
|
+
// Load locale
|
|
324
|
+
var lang = (_ref5 = (_this2$props$appConfi = (_this2$props$appConfi2 = (_this2$props$appConfi3 = _this2.props.appConfig).getDefaultLocale) === null || _this2$props$appConfi2 === void 0 ? void 0 : _this2$props$appConfi2.call(_this2$props$appConfi3)) !== null && _this2$props$appConfi !== void 0 ? _this2$props$appConfi : initialParams.lang) !== null && _ref5 !== void 0 ? _ref5 : navigator.language;
|
|
325
|
+
LocaleUtils.loadLocale(lang, _this2.props.appConfig.defaultLocaleData).then(function (localeData) {
|
|
326
|
+
StandardApp.store.dispatch(changeLocale(localeData, _this2.props.appConfig.defaultLocaleData));
|
|
327
|
+
_this2.setState({
|
|
328
|
+
haveLocale: true
|
|
329
|
+
});
|
|
330
|
+
});
|
|
331
|
+
|
|
332
|
+
// Set color scheme
|
|
333
|
+
var storedColorScheme = ConfigUtils.havePlugin("Settings") ? localStorage.getItem('qwc2-color-scheme') : null;
|
|
334
|
+
var colorScheme = initialParams.style || storedColorScheme || ConfigUtils.getConfigProp("defaultColorScheme");
|
|
335
|
+
StandardApp.store.dispatch(setColorScheme(colorScheme));
|
|
336
|
+
|
|
337
|
+
// Resolve permalink and restore settings
|
|
338
|
+
resolvePermaLink(initialParams, function (params, state, success) {
|
|
339
|
+
StandardApp.store.dispatch(setStartupParameters(params, state));
|
|
340
|
+
_this2.setState({
|
|
341
|
+
startupConfig: {
|
|
342
|
+
params: params,
|
|
343
|
+
state: state,
|
|
344
|
+
permalinkInvalid: !success
|
|
345
|
+
}
|
|
346
|
+
});
|
|
347
|
+
});
|
|
348
|
+
});
|
|
349
|
+
});
|
|
350
|
+
var initialState = _this2.props.appConfig.initialState || {};
|
|
351
|
+
StandardApp.store = createStore(ReducerIndex.reducers, initialState, _this2.props.appConfig.actionLogger);
|
|
352
|
+
_this2.init();
|
|
353
|
+
_this2.touchY = null;
|
|
354
|
+
return _this2;
|
|
355
|
+
}
|
|
356
|
+
_inherits(StandardApp, _React$Component2);
|
|
357
|
+
return _createClass(StandardApp, [{
|
|
358
|
+
key: "componentDidMount",
|
|
359
|
+
value: function componentDidMount() {
|
|
360
|
+
window.addEventListener('resize', this.computeVh);
|
|
361
|
+
this.computeVh();
|
|
362
|
+
}
|
|
363
|
+
}, {
|
|
364
|
+
key: "componentWillUnmount",
|
|
365
|
+
value: function componentWillUnmount() {
|
|
366
|
+
window.removeEventListener('resize', this.computeVh);
|
|
367
|
+
}
|
|
368
|
+
}, {
|
|
369
|
+
key: "render",
|
|
370
|
+
value: function render() {
|
|
371
|
+
if (!this.state.startupConfig || !this.state.haveConfig || !this.state.haveLocale) {
|
|
372
|
+
return null;
|
|
373
|
+
}
|
|
374
|
+
return /*#__PURE__*/React.createElement(Provider, {
|
|
375
|
+
store: StandardApp.store
|
|
376
|
+
}, /*#__PURE__*/React.createElement(AppContainer, {
|
|
377
|
+
appConfig: this.props.appConfig,
|
|
378
|
+
startupConfig: this.state.startupConfig
|
|
379
|
+
}));
|
|
380
|
+
}
|
|
381
|
+
}]);
|
|
382
|
+
}(React.Component);
|
|
383
|
+
_defineProperty(StandardApp, "store", null);
|
|
384
|
+
_defineProperty(StandardApp, "propTypes", {
|
|
385
|
+
appConfig: PropTypes.object
|
|
386
|
+
});
|
|
387
|
+
export { StandardApp as default };
|
package/components/Swipeable.js
CHANGED
|
@@ -1 +1,15 @@
|
|
|
1
|
-
var _excluded
|
|
1
|
+
var _excluded = ["children"];
|
|
2
|
+
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
|
|
3
|
+
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
|
|
4
|
+
import React from 'react';
|
|
5
|
+
import { useSwipeable } from 'react-swipeable';
|
|
6
|
+
import PropTypes from 'prop-types';
|
|
7
|
+
export var Swipeable = function Swipeable(_ref) {
|
|
8
|
+
var children = _ref.children,
|
|
9
|
+
props = _objectWithoutProperties(_ref, _excluded);
|
|
10
|
+
var handlers = useSwipeable(props);
|
|
11
|
+
return /*#__PURE__*/React.createElement("div", handlers, children);
|
|
12
|
+
};
|
|
13
|
+
Swipeable.propTypes = {
|
|
14
|
+
children: PropTypes.oneOfType([PropTypes.node, PropTypes.func])
|
|
15
|
+
};
|
package/components/TaskBar.js
CHANGED
|
@@ -1,7 +1,90 @@
|
|
|
1
|
-
function _typeof(o){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){
|
|
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
|
+
function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
|
|
3
|
+
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); } }
|
|
4
|
+
function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
|
|
5
|
+
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
6
|
+
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); }
|
|
7
|
+
function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
|
|
8
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
9
|
+
function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }
|
|
10
|
+
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); }
|
|
11
|
+
function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
|
|
12
|
+
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; }
|
|
13
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
14
|
+
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); }
|
|
15
|
+
/**
|
|
2
16
|
* Copyright 2016-2024 Sourcepole AG
|
|
3
17
|
* All rights reserved.
|
|
4
18
|
*
|
|
5
19
|
* This source code is licensed under the BSD-style license found in the
|
|
6
20
|
* LICENSE file in the root directory of this source tree.
|
|
7
|
-
*/
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
import React from 'react';
|
|
24
|
+
import { connect } from 'react-redux';
|
|
25
|
+
import PropTypes from 'prop-types';
|
|
26
|
+
import { setCurrentTask, setCurrentTaskBlocked } from '../actions/task';
|
|
27
|
+
import MessageBar from './MessageBar';
|
|
28
|
+
var TaskBar = /*#__PURE__*/function (_React$Component) {
|
|
29
|
+
function TaskBar() {
|
|
30
|
+
var _this;
|
|
31
|
+
_classCallCheck(this, TaskBar);
|
|
32
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
33
|
+
args[_key] = arguments[_key];
|
|
34
|
+
}
|
|
35
|
+
_this = _callSuper(this, TaskBar, [].concat(args));
|
|
36
|
+
_defineProperty(_this, "closeClicked", function () {
|
|
37
|
+
if (_this.props.unblockOnClose) {
|
|
38
|
+
_this.props.setCurrentTaskBlocked(false);
|
|
39
|
+
}
|
|
40
|
+
_this.props.setCurrentTask(null);
|
|
41
|
+
});
|
|
42
|
+
return _this;
|
|
43
|
+
}
|
|
44
|
+
_inherits(TaskBar, _React$Component);
|
|
45
|
+
return _createClass(TaskBar, [{
|
|
46
|
+
key: "componentDidUpdate",
|
|
47
|
+
value: function componentDidUpdate(prevProps) {
|
|
48
|
+
var _this$props$currentTa, _prevProps$currentTas, _prevProps$currentTas2;
|
|
49
|
+
var newVisible = ((_this$props$currentTa = this.props.currentTask) === null || _this$props$currentTa === void 0 ? void 0 : _this$props$currentTa.id) === this.props.task;
|
|
50
|
+
var oldVisible = ((_prevProps$currentTas = prevProps.currentTask) === null || _prevProps$currentTas === void 0 ? void 0 : _prevProps$currentTas.id) === this.props.task;
|
|
51
|
+
if (newVisible && (!oldVisible || this.props.currentTask.mode !== ((_prevProps$currentTas2 = prevProps.currentTask) === null || _prevProps$currentTas2 === void 0 ? void 0 : _prevProps$currentTas2.mode))) {
|
|
52
|
+
this.props.onShow(this.props.currentTask.mode, this.props.currentTask.data);
|
|
53
|
+
} else if (!newVisible && oldVisible) {
|
|
54
|
+
this.props.onHide();
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}, {
|
|
58
|
+
key: "render",
|
|
59
|
+
value: function render() {
|
|
60
|
+
if (this.props.currentTask.id !== this.props.task) {
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
return /*#__PURE__*/React.createElement(MessageBar, {
|
|
64
|
+
onClose: this.closeClicked
|
|
65
|
+
}, this.props.children);
|
|
66
|
+
}
|
|
67
|
+
}]);
|
|
68
|
+
}(React.Component);
|
|
69
|
+
_defineProperty(TaskBar, "propTypes", {
|
|
70
|
+
children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),
|
|
71
|
+
currentTask: PropTypes.object,
|
|
72
|
+
onHide: PropTypes.func,
|
|
73
|
+
onShow: PropTypes.func,
|
|
74
|
+
setCurrentTask: PropTypes.func,
|
|
75
|
+
setCurrentTaskBlocked: PropTypes.func,
|
|
76
|
+
task: PropTypes.string.isRequired,
|
|
77
|
+
unblockOnClose: PropTypes.bool
|
|
78
|
+
});
|
|
79
|
+
_defineProperty(TaskBar, "defaultProps", {
|
|
80
|
+
onShow: function onShow() {},
|
|
81
|
+
onHide: function onHide() {}
|
|
82
|
+
});
|
|
83
|
+
export default connect(function (state) {
|
|
84
|
+
return {
|
|
85
|
+
currentTask: state.task
|
|
86
|
+
};
|
|
87
|
+
}, {
|
|
88
|
+
setCurrentTask: setCurrentTask,
|
|
89
|
+
setCurrentTaskBlocked: setCurrentTaskBlocked
|
|
90
|
+
})(TaskBar);
|