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,14 +1,243 @@
|
|
|
1
|
-
function _slicedToArray(r,
|
|
1
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
2
|
+
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."); }
|
|
3
|
+
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; } }
|
|
4
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
5
|
+
function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
|
|
6
|
+
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."); }
|
|
7
|
+
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; } }
|
|
8
|
+
function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
|
|
9
|
+
function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
|
|
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
|
+
/**
|
|
2
12
|
* Copyright 2025 Sourcepole AG
|
|
3
13
|
* All rights reserved.
|
|
4
14
|
*
|
|
5
15
|
* This source code is licensed under the BSD-style license found in the
|
|
6
16
|
* LICENSE file in the root directory of this source tree.
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
import { Parser as ExprParser } from 'expr-eval';
|
|
20
|
+
import isEmpty from "lodash.isempty";
|
|
21
|
+
import parseCssColor from 'parse-css-color';
|
|
22
|
+
import { Float32BufferAttribute, Group, Vector3 } from "three";
|
|
23
|
+
import MiscUtils from '../../../utils/MiscUtils';
|
|
24
|
+
import { createLabelObject, TileMeshHelper } from "./MiscUtils3D";
|
|
25
|
+
var styleExpressionParser = new ExprParser();
|
|
26
|
+
styleExpressionParser.functions.color = function (name) {
|
|
27
|
+
var alpha = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
|
|
28
|
+
var color = parseCssColor(name);
|
|
29
|
+
return [].concat(_toConsumableArray(color.values.map(function (c) {
|
|
30
|
+
return c / 255;
|
|
31
|
+
})), [alpha]);
|
|
32
|
+
};
|
|
33
|
+
styleExpressionParser.functions.rgb = function (r, g, b) {
|
|
34
|
+
return [r / 255, g / 255, g / 255, 1];
|
|
35
|
+
};
|
|
36
|
+
styleExpressionParser.functions.rgba = function (r, g, b, a) {
|
|
37
|
+
return [r / 255, g / 255, g / 255, a];
|
|
38
|
+
};
|
|
39
|
+
styleExpressionParser.functions.hsl = function (h, s, l) {
|
|
40
|
+
return [].concat(_toConsumableArray(MiscUtils.hslToRgb(h, s, l)), [1]);
|
|
41
|
+
};
|
|
42
|
+
styleExpressionParser.functions.hsla = function (h, s, l, a) {
|
|
43
|
+
return [].concat(_toConsumableArray(MiscUtils.hslToRgb(h, s, l)), [a]);
|
|
44
|
+
};
|
|
45
|
+
function featureColor(objectId, featureProperties, context) {
|
|
46
|
+
var _context$featureStyle, _context$featureStyle2;
|
|
47
|
+
if (((_context$featureStyle = (_context$featureStyle2 = context.featureStyles) === null || _context$featureStyle2 === void 0 || (_context$featureStyle2 = _context$featureStyle2[objectId]) === null || _context$featureStyle2 === void 0 ? void 0 : _context$featureStyle2.color) !== null && _context$featureStyle !== void 0 ? _context$featureStyle : null) !== null) {
|
|
48
|
+
var color = parseCssColor(context.featureStyles[objectId].color);
|
|
49
|
+
return [].concat(_toConsumableArray(color.values.map(function (c) {
|
|
50
|
+
return c / 255;
|
|
51
|
+
})), [color.alpha]);
|
|
52
|
+
} else if (context.colorExpressions.length) {
|
|
53
|
+
try {
|
|
54
|
+
for (var i = 0; i < context.colorExpressions.length; ++i) {
|
|
55
|
+
var condition = context.colorExpressions[i][0].evaluate(featureProperties);
|
|
56
|
+
if (condition) {
|
|
57
|
+
return context.colorExpressions[i][1].evaluate(featureProperties);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
} catch (e) {
|
|
61
|
+
/* eslint-disable-next-line */
|
|
62
|
+
console.warn("Failed to parse color expression: " + String(e));
|
|
63
|
+
}
|
|
64
|
+
return null;
|
|
65
|
+
} else if (featureProperties[context.colorAttr]) {
|
|
66
|
+
var _featureProperties$co;
|
|
67
|
+
var _color = featureProperties[context.colorAttr];
|
|
68
|
+
var alpha = context.alphaAttr ? (_featureProperties$co = featureProperties[context.alphaAttr]) !== null && _featureProperties$co !== void 0 ? _featureProperties$co : 255 : 255;
|
|
69
|
+
var r = (_color >> 16 & 0xff) / 255;
|
|
70
|
+
var g = (_color >> 8 & 0xff) / 255;
|
|
71
|
+
var b = (_color & 0xff) / 255;
|
|
72
|
+
return [r, g, b, alpha / 255];
|
|
73
|
+
} else {
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
function featureLabel(objectId, featureProperties, context) {
|
|
78
|
+
var _context$featureStyle3, _context$featureStyle4;
|
|
79
|
+
if (((_context$featureStyle3 = (_context$featureStyle4 = context.featureStyles) === null || _context$featureStyle4 === void 0 || (_context$featureStyle4 = _context$featureStyle4[objectId]) === null || _context$featureStyle4 === void 0 ? void 0 : _context$featureStyle4.label) !== null && _context$featureStyle3 !== void 0 ? _context$featureStyle3 : null) !== null) {
|
|
80
|
+
var _context$featureStyle5;
|
|
81
|
+
return {
|
|
82
|
+
text: context.featureStyles[objectId].label,
|
|
83
|
+
offset: (_context$featureStyle5 = context.featureStyles[objectId].labelOffset) !== null && _context$featureStyle5 !== void 0 ? _context$featureStyle5 : 80
|
|
84
|
+
};
|
|
85
|
+
} else if (context.labelAttr) {
|
|
86
|
+
return featureProperties[context.labelAttr];
|
|
87
|
+
} else {
|
|
88
|
+
return null;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
var Tiles3DStyle = {
|
|
92
|
+
applyTileStyle: function applyTileStyle(group, config, sceneContext) {
|
|
93
|
+
var _config$idAttr, _config$tilesetStyle, _config$tilesetStyle2;
|
|
94
|
+
var featureColorCache = {};
|
|
95
|
+
var featureLabelCache = {};
|
|
96
|
+
var labels = {};
|
|
97
|
+
var idAttr = (_config$idAttr = config.idAttr) !== null && _config$idAttr !== void 0 ? _config$idAttr : "id";
|
|
98
|
+
var context = {
|
|
99
|
+
colorExpressions: [],
|
|
100
|
+
featureStyles: (_config$tilesetStyle = config.tilesetStyle) === null || _config$tilesetStyle === void 0 ? void 0 : _config$tilesetStyle.featureStyles,
|
|
101
|
+
colorAttr: config.colorAttr,
|
|
102
|
+
alphaAttr: config.alphaAttr,
|
|
103
|
+
labelAttr: config.labelAttr
|
|
104
|
+
};
|
|
105
|
+
var baseColor = [1, 1, 1, 1];
|
|
106
|
+
var customBaseColor = false;
|
|
107
|
+
if (config.baseColor) {
|
|
108
|
+
var color = parseCssColor(config.baseColor);
|
|
109
|
+
baseColor = [].concat(_toConsumableArray(color.values.map(function (x) {
|
|
110
|
+
return x / 255;
|
|
111
|
+
})), [color.alpha]);
|
|
112
|
+
customBaseColor = true;
|
|
113
|
+
}
|
|
114
|
+
var colorRules = (_config$tilesetStyle2 = config.tilesetStyle) === null || _config$tilesetStyle2 === void 0 ? void 0 : _config$tilesetStyle2.color;
|
|
115
|
+
var parseExpr = function parseExpr(expr) {
|
|
116
|
+
var cleanExpr = expr.replace(/\$\{(\w+)\}/g, '$1').replaceAll('===', '==').replaceAll('!==', '==').replaceAll('||', 'or').replaceAll('&&', 'and');
|
|
117
|
+
return styleExpressionParser.parse(cleanExpr);
|
|
118
|
+
};
|
|
119
|
+
if (colorRules !== null && colorRules !== void 0 && colorRules.conditions) {
|
|
120
|
+
colorRules === null || colorRules === void 0 || colorRules.conditions.forEach(function (cond) {
|
|
121
|
+
context.colorExpressions.push([parseExpr(cond[0]), parseExpr(cond[1])]);
|
|
122
|
+
});
|
|
123
|
+
} else if (typeof colorRules === "string") {
|
|
124
|
+
context.colorExpressions.push([parseExpr("true"), parseExpr(colorRules)]);
|
|
125
|
+
}
|
|
126
|
+
group.traverse(function (c) {
|
|
127
|
+
if (c.geometry) {
|
|
128
|
+
var helper = new TileMeshHelper(c);
|
|
129
|
+
var featureIdAttr = helper.getFeatureIdAttr();
|
|
130
|
+
if (!featureIdAttr) {
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
var posAttr = c.geometry.getAttribute('position');
|
|
134
|
+
var rgbaColors = [];
|
|
135
|
+
var rgbColors = [];
|
|
136
|
+
var haveColor = customBaseColor;
|
|
137
|
+
var haveAlpha = baseColor[3] < 1;
|
|
138
|
+
for (var idx = 0; idx < featureIdAttr.count; ++idx) {
|
|
139
|
+
var featureId = featureIdAttr.getX(idx);
|
|
140
|
+
var featureProperties = helper.getFeatureProperties(featureId);
|
|
141
|
+
var objectId = String(featureProperties[idAttr]);
|
|
142
|
+
|
|
143
|
+
// Handle color
|
|
144
|
+
var _color2 = featureColorCache[featureId];
|
|
145
|
+
if (_color2 === undefined) {
|
|
146
|
+
_color2 = featureColorCache[featureId] = featureColor(objectId, featureProperties, context);
|
|
147
|
+
}
|
|
148
|
+
if (_color2) {
|
|
149
|
+
haveColor = true;
|
|
150
|
+
haveAlpha |= _color2[3] < 1;
|
|
151
|
+
rgbaColors.push.apply(rgbaColors, _toConsumableArray(_color2));
|
|
152
|
+
rgbColors.push.apply(rgbColors, _toConsumableArray(_color2.slice(0, 3)));
|
|
153
|
+
} else {
|
|
154
|
+
rgbaColors.push.apply(rgbaColors, _toConsumableArray(baseColor));
|
|
155
|
+
rgbColors.push.apply(rgbColors, _toConsumableArray(baseColor.slice(0, 3)));
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
// Handle label
|
|
159
|
+
var label = featureLabelCache[featureId];
|
|
160
|
+
if (label === undefined) {
|
|
161
|
+
label = featureLabelCache[featureId] = featureLabel(objectId, featureProperties, context);
|
|
162
|
+
}
|
|
163
|
+
if (label) {
|
|
164
|
+
var pos = posAttr.array.slice(3 * idx, 3 * idx + 3);
|
|
165
|
+
var entry = labels[featureId];
|
|
166
|
+
if (!entry) {
|
|
167
|
+
entry = labels[featureId] = {
|
|
168
|
+
label: label.text,
|
|
169
|
+
labelOffset: label.offset,
|
|
170
|
+
pos: pos,
|
|
171
|
+
ymax: pos[1],
|
|
172
|
+
count: 1,
|
|
173
|
+
matrix: c.matrixWorld
|
|
174
|
+
};
|
|
175
|
+
} else {
|
|
176
|
+
entry.pos[0] += pos[0];
|
|
177
|
+
entry.pos[1] += pos[1];
|
|
178
|
+
entry.pos[2] += pos[2];
|
|
179
|
+
entry.ymax = Math.max(entry.ymax, pos[1]);
|
|
180
|
+
++entry.count;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
// NOTE: Also update color buffers if they were previously colored
|
|
186
|
+
if (haveColor || group.userData.haveColor) {
|
|
187
|
+
if (haveAlpha) {
|
|
188
|
+
c.geometry.setAttribute('color', new Float32BufferAttribute(rgbaColors, 4));
|
|
189
|
+
} else {
|
|
190
|
+
// Discard alpha
|
|
191
|
+
var count = rgbaColors.length / 4;
|
|
192
|
+
var bufAttr = new Float32BufferAttribute(count * 3, 3);
|
|
193
|
+
for (var i = 0, j = 0; i < count; ++i) {
|
|
194
|
+
bufAttr.array[j++] = rgbaColors[4 * i];
|
|
195
|
+
bufAttr.array[j++] = rgbaColors[4 * i + 1];
|
|
196
|
+
bufAttr.array[j++] = rgbaColors[4 * i + 2];
|
|
197
|
+
}
|
|
198
|
+
c.geometry.setAttribute('color', bufAttr);
|
|
199
|
+
}
|
|
200
|
+
c.material.vertexColors = true;
|
|
201
|
+
c.material.transparent = haveAlpha;
|
|
202
|
+
group.userData.haveColor = haveColor;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
});
|
|
206
|
+
|
|
207
|
+
// Clear previous labels
|
|
208
|
+
if (group.userData.labelGroup) {
|
|
209
|
+
group.remove(group.children.find(function (child) {
|
|
210
|
+
return child.uuid === group.userData.labelGroup;
|
|
211
|
+
}));
|
|
212
|
+
// Explicitly remove label DOM elements
|
|
213
|
+
Object.values(group.userData.tileLabels).forEach(function (entry) {
|
|
214
|
+
entry.labelObject.element.parentNode.removeChild(entry.labelObject.element);
|
|
215
|
+
});
|
|
216
|
+
delete group.userData.tileLabels;
|
|
217
|
+
delete group.userData.labelGroup;
|
|
218
|
+
}
|
|
219
|
+
// Add new labels
|
|
220
|
+
if (!isEmpty(labels)) {
|
|
221
|
+
var tileLabels = {};
|
|
222
|
+
var labelObjects = new Group();
|
|
223
|
+
Object.entries(labels).forEach(function (_ref) {
|
|
224
|
+
var _ref2 = _slicedToArray(_ref, 2),
|
|
225
|
+
featureId = _ref2[0],
|
|
226
|
+
entry = _ref2[1];
|
|
227
|
+
var pos = new Vector3(entry.pos[0] / entry.count, entry.pos[1] / entry.count, entry.pos[2] / entry.count).applyMatrix4(entry.matrix);
|
|
228
|
+
var maxpos = new Vector3(entry.pos[0] / entry.count, entry.ymax, entry.pos[2] / entry.count).applyMatrix4(entry.matrix);
|
|
229
|
+
tileLabels[featureId] = {
|
|
230
|
+
pos: pos,
|
|
231
|
+
label: entry.label,
|
|
232
|
+
labelOffset: entry.labelOffset
|
|
233
|
+
};
|
|
234
|
+
tileLabels[featureId].labelObject = createLabelObject(entry.label, pos, sceneContext, 0, entry.labelOffset + (maxpos.y - pos.y));
|
|
235
|
+
labelObjects.add(tileLabels[featureId].labelObject);
|
|
236
|
+
});
|
|
237
|
+
group.userData.tileLabels = tileLabels;
|
|
238
|
+
group.userData.labelGroup = labelObjects.uuid;
|
|
239
|
+
group.add(labelObjects);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
};
|
|
243
|
+
export default Tiles3DStyle;
|
|
@@ -1,7 +1,59 @@
|
|
|
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 2017-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 PropTypes from 'prop-types';
|
|
25
|
+
import LocaleUtils from '../../utils/LocaleUtils';
|
|
26
|
+
import CopyButton from '../widgets/CopyButton';
|
|
27
|
+
import './style/ShareLink.css';
|
|
28
|
+
var ShareLink = /*#__PURE__*/function (_React$Component) {
|
|
29
|
+
function ShareLink() {
|
|
30
|
+
_classCallCheck(this, ShareLink);
|
|
31
|
+
return _callSuper(this, ShareLink, arguments);
|
|
32
|
+
}
|
|
33
|
+
_inherits(ShareLink, _React$Component);
|
|
34
|
+
return _createClass(ShareLink, [{
|
|
35
|
+
key: "render",
|
|
36
|
+
value: function render() {
|
|
37
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
38
|
+
className: "share-link"
|
|
39
|
+
}, /*#__PURE__*/React.createElement("h4", null, LocaleUtils.tr("share.directLinkTitle")), /*#__PURE__*/React.createElement("div", {
|
|
40
|
+
className: "controlgroup share-link-frame"
|
|
41
|
+
}, /*#__PURE__*/React.createElement("input", {
|
|
42
|
+
onFocus: function onFocus(ev) {
|
|
43
|
+
return ev.target.select();
|
|
44
|
+
},
|
|
45
|
+
readOnly: true,
|
|
46
|
+
type: "text",
|
|
47
|
+
value: this.props.shareUrl
|
|
48
|
+
}), /*#__PURE__*/React.createElement(CopyButton, {
|
|
49
|
+
buttonClass: "share-link-button",
|
|
50
|
+
text: this.props.shareUrl,
|
|
51
|
+
tooltipAlign: "right"
|
|
52
|
+
})));
|
|
53
|
+
}
|
|
54
|
+
}]);
|
|
55
|
+
}(React.Component);
|
|
56
|
+
_defineProperty(ShareLink, "propTypes", {
|
|
57
|
+
shareUrl: PropTypes.string
|
|
58
|
+
});
|
|
59
|
+
export { ShareLink as default };
|
|
@@ -1,8 +1,68 @@
|
|
|
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 GeoSolutions Sas
|
|
3
17
|
* Copyright 2016-2024 Sourcepole AG
|
|
4
18
|
* All rights reserved.
|
|
5
19
|
*
|
|
6
20
|
* This source code is licensed under the BSD-style license found in the
|
|
7
21
|
* LICENSE file in the root directory of this source tree.
|
|
8
|
-
*/
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
import React from 'react';
|
|
25
|
+
import PropTypes from 'prop-types';
|
|
26
|
+
import { QRCodeCanvas } from 'qrcode.react';
|
|
27
|
+
import LocaleUtils from '../../utils/LocaleUtils';
|
|
28
|
+
import CopyButton from '../widgets/CopyButton';
|
|
29
|
+
var ShareQRCode = /*#__PURE__*/function (_React$Component) {
|
|
30
|
+
function ShareQRCode() {
|
|
31
|
+
var _this;
|
|
32
|
+
_classCallCheck(this, ShareQRCode);
|
|
33
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
34
|
+
args[_key] = arguments[_key];
|
|
35
|
+
}
|
|
36
|
+
_this = _callSuper(this, ShareQRCode, [].concat(args));
|
|
37
|
+
_defineProperty(_this, "getClipboardData", function (callback) {
|
|
38
|
+
document.getElementById("qwc2-share-qr-canvas").toBlob(function (blob) {
|
|
39
|
+
return callback({
|
|
40
|
+
"image/png": blob
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
return _this;
|
|
45
|
+
}
|
|
46
|
+
_inherits(ShareQRCode, _React$Component);
|
|
47
|
+
return _createClass(ShareQRCode, [{
|
|
48
|
+
key: "render",
|
|
49
|
+
value: function render() {
|
|
50
|
+
var _navigator$clipboard;
|
|
51
|
+
var canCopy = ((_navigator$clipboard = navigator.clipboard) === null || _navigator$clipboard === void 0 ? void 0 : _navigator$clipboard.write) !== undefined;
|
|
52
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
53
|
+
className: "qr-code"
|
|
54
|
+
}, /*#__PURE__*/React.createElement("h4", null, LocaleUtils.tr("share.QRCodeLinkTitle")), canCopy ? /*#__PURE__*/React.createElement(CopyButton, {
|
|
55
|
+
buttonClass: "qr-code-copy-button",
|
|
56
|
+
getClipboardData: this.getClipboardData
|
|
57
|
+
}) : null, /*#__PURE__*/React.createElement("br", null), /*#__PURE__*/React.createElement(QRCodeCanvas, {
|
|
58
|
+
id: "qwc2-share-qr-canvas",
|
|
59
|
+
size: 128,
|
|
60
|
+
value: this.props.shareUrl
|
|
61
|
+
}));
|
|
62
|
+
}
|
|
63
|
+
}]);
|
|
64
|
+
}(React.Component);
|
|
65
|
+
_defineProperty(ShareQRCode, "propTypes", {
|
|
66
|
+
shareUrl: PropTypes.string
|
|
67
|
+
});
|
|
68
|
+
export { ShareQRCode as default };
|
|
@@ -1,9 +1,131 @@
|
|
|
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 _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
3
|
+
function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
|
|
4
|
+
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); } }
|
|
5
|
+
function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
|
|
6
|
+
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
7
|
+
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); }
|
|
8
|
+
function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
|
|
9
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
10
|
+
function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }
|
|
11
|
+
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); }
|
|
12
|
+
function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
|
|
13
|
+
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; }
|
|
14
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
15
|
+
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); }
|
|
16
|
+
/**
|
|
2
17
|
* Copyright 2016 GeoSolutions Sas
|
|
3
18
|
* Copyright 2016-2024 Sourcepole AG
|
|
4
19
|
* All rights reserved.
|
|
5
20
|
*
|
|
6
21
|
* This source code is licensed under the BSD-style license found in the
|
|
7
22
|
* LICENSE file in the root directory of this source tree.
|
|
8
|
-
*/
|
|
9
|
-
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
import React from 'react';
|
|
26
|
+
import { FacebookShareButton, LinkedinShareButton, TwitterShareButton, WhatsappShareButton, EmailShareButton, FacebookShareCount, FacebookIcon, TwitterIcon, LinkedinIcon, WhatsappIcon, EmailIcon } from 'react-share';
|
|
27
|
+
import PropTypes from 'prop-types';
|
|
28
|
+
import LocaleUtils from '../../utils/LocaleUtils';
|
|
29
|
+
import './style/ShareSocials.css';
|
|
30
|
+
var ShareSocials = /*#__PURE__*/function (_React$Component) {
|
|
31
|
+
function ShareSocials() {
|
|
32
|
+
_classCallCheck(this, ShareSocials);
|
|
33
|
+
return _callSuper(this, ShareSocials, arguments);
|
|
34
|
+
}
|
|
35
|
+
_inherits(ShareSocials, _React$Component);
|
|
36
|
+
return _createClass(ShareSocials, [{
|
|
37
|
+
key: "render",
|
|
38
|
+
value: function render() {
|
|
39
|
+
var countProps = {};
|
|
40
|
+
if (this.props.getCount) {
|
|
41
|
+
countProps.getCount = this.props.getCount;
|
|
42
|
+
}
|
|
43
|
+
var title = this.props.shareTitle;
|
|
44
|
+
var url = this.props.shareUrl;
|
|
45
|
+
var socialTypes = {
|
|
46
|
+
email: /*#__PURE__*/React.createElement("div", {
|
|
47
|
+
className: "social-box",
|
|
48
|
+
key: "email"
|
|
49
|
+
}, /*#__PURE__*/React.createElement(EmailShareButton, {
|
|
50
|
+
subject: title,
|
|
51
|
+
url: url
|
|
52
|
+
}, /*#__PURE__*/React.createElement(EmailIcon, {
|
|
53
|
+
round: true,
|
|
54
|
+
size: 32
|
|
55
|
+
})), /*#__PURE__*/React.createElement("div", null, "\xA0")),
|
|
56
|
+
facebook: /*#__PURE__*/React.createElement("div", {
|
|
57
|
+
className: "social-box",
|
|
58
|
+
key: "facebook"
|
|
59
|
+
}, /*#__PURE__*/React.createElement(FacebookShareButton, {
|
|
60
|
+
quote: title,
|
|
61
|
+
url: url
|
|
62
|
+
}, /*#__PURE__*/React.createElement(FacebookIcon, {
|
|
63
|
+
round: true,
|
|
64
|
+
size: 32
|
|
65
|
+
})), /*#__PURE__*/React.createElement(FacebookShareCount, _extends({
|
|
66
|
+
url: url
|
|
67
|
+
}, countProps), function (count) {
|
|
68
|
+
return count;
|
|
69
|
+
})),
|
|
70
|
+
twitter: /*#__PURE__*/React.createElement("div", {
|
|
71
|
+
className: "social-box",
|
|
72
|
+
key: "twitter"
|
|
73
|
+
}, /*#__PURE__*/React.createElement(TwitterShareButton, {
|
|
74
|
+
title: title,
|
|
75
|
+
url: url
|
|
76
|
+
}, /*#__PURE__*/React.createElement(TwitterIcon, {
|
|
77
|
+
round: true,
|
|
78
|
+
size: 32
|
|
79
|
+
})), /*#__PURE__*/React.createElement("div", null, "\xA0")),
|
|
80
|
+
linkedin: /*#__PURE__*/React.createElement("div", {
|
|
81
|
+
className: "social-box",
|
|
82
|
+
key: "linkedin"
|
|
83
|
+
}, /*#__PURE__*/React.createElement(LinkedinShareButton, {
|
|
84
|
+
title: title,
|
|
85
|
+
url: url
|
|
86
|
+
}, /*#__PURE__*/React.createElement(LinkedinIcon, {
|
|
87
|
+
round: true,
|
|
88
|
+
size: 32
|
|
89
|
+
})), /*#__PURE__*/React.createElement("div", null, "\xA0")),
|
|
90
|
+
whatsapp: /*#__PURE__*/React.createElement("div", {
|
|
91
|
+
className: "social-box",
|
|
92
|
+
key: "whatsapp"
|
|
93
|
+
}, /*#__PURE__*/React.createElement(WhatsappShareButton, {
|
|
94
|
+
title: title,
|
|
95
|
+
url: url
|
|
96
|
+
}, /*#__PURE__*/React.createElement(WhatsappIcon, {
|
|
97
|
+
round: true,
|
|
98
|
+
size: 32
|
|
99
|
+
})), /*#__PURE__*/React.createElement("div", null, "\xA0"))
|
|
100
|
+
};
|
|
101
|
+
var socialBoxes = [];
|
|
102
|
+
if (this.props.showSocials === true) {
|
|
103
|
+
socialBoxes = Object.values(socialTypes);
|
|
104
|
+
} else {
|
|
105
|
+
this.props.showSocials.map(function (name) {
|
|
106
|
+
if (name in socialTypes) {
|
|
107
|
+
socialBoxes.push(socialTypes[name]);
|
|
108
|
+
} else {
|
|
109
|
+
// eslint-disable-next-line
|
|
110
|
+
console.warn("`%s` is not a valid social network", name);
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
115
|
+
className: "social-links"
|
|
116
|
+
}, /*#__PURE__*/React.createElement("h4", null, LocaleUtils.tr("share.socialIntro")), /*#__PURE__*/React.createElement("div", {
|
|
117
|
+
className: "social-boxes"
|
|
118
|
+
}, socialBoxes));
|
|
119
|
+
}
|
|
120
|
+
}]);
|
|
121
|
+
}(React.Component);
|
|
122
|
+
_defineProperty(ShareSocials, "propTypes", {
|
|
123
|
+
getCount: PropTypes.func,
|
|
124
|
+
shareTitle: PropTypes.string,
|
|
125
|
+
shareUrl: PropTypes.string,
|
|
126
|
+
showSocials: PropTypes.oneOfType([PropTypes.bool, PropTypes.array])
|
|
127
|
+
});
|
|
128
|
+
_defineProperty(ShareSocials, "defaultProps", {
|
|
129
|
+
shareTitle: 'GeoSolutions'
|
|
130
|
+
});
|
|
131
|
+
export { ShareSocials as default };
|