qwc2 2025.10.13 → 2025.10.15

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.
Files changed (241) hide show
  1. package/actions/display.js +30 -1
  2. package/actions/editing.js +22 -1
  3. package/actions/layerinfo.js +13 -1
  4. package/actions/layers.js +213 -3
  5. package/actions/localConfig.js +58 -1
  6. package/actions/locale.js +21 -1
  7. package/actions/locate.js +26 -1
  8. package/actions/logging.js +10 -1
  9. package/actions/map.js +105 -2
  10. package/actions/measurement.js +12 -1
  11. package/actions/processNotifications.js +37 -1
  12. package/actions/redlining.js +18 -1
  13. package/actions/redliningPick.js +12 -1
  14. package/actions/search.js +12 -1
  15. package/actions/serviceinfo.js +12 -1
  16. package/actions/task.js +55 -3
  17. package/actions/theme.js +339 -19
  18. package/actions/windows.js +164 -5
  19. package/components/AppMenu.js +435 -3
  20. package/components/AttributeForm.js +928 -32
  21. package/components/AttributeTableWidget.js +1105 -13
  22. package/components/AutoEditForm.js +189 -3
  23. package/components/CoordinateDisplayer.js +78 -2
  24. package/components/EditComboField.js +190 -6
  25. package/components/EditUploadField.js +315 -3
  26. package/components/ExportSelection.js +203 -2
  27. package/components/FullscreenSwitcher.js +90 -3
  28. package/components/Icon.js +81 -2
  29. package/components/IdentifyViewer.js +1161 -6
  30. package/components/ImportLayer.js +718 -20
  31. package/components/LayerInfoWindow.js +145 -2
  32. package/components/LinkFeatureForm.js +246 -5
  33. package/components/MapButton.js +88 -2
  34. package/components/MapSelection.js +287 -8
  35. package/components/MessageBar.js +68 -2
  36. package/components/NumericInputWindow.js +359 -2
  37. package/components/PickFeature.js +266 -2
  38. package/components/PluginsContainer.js +227 -8
  39. package/components/PrintSelection.js +620 -49
  40. package/components/ProcessNotifications.js +104 -2
  41. package/components/QtDesignerForm.js +1137 -18
  42. package/components/ResizeableWindow.js +591 -8
  43. package/components/SearchBox.js +1307 -20
  44. package/components/ServiceInfoWindow.js +107 -2
  45. package/components/SideBar.js +204 -4
  46. package/components/StandardApp.js +381 -20
  47. package/components/Swipeable.js +15 -1
  48. package/components/TaskBar.js +85 -2
  49. package/components/ThemeLayersListWindow.js +216 -4
  50. package/components/ThemeList.js +381 -7
  51. package/components/Toolbar.js +106 -2
  52. package/components/WindowManager.js +178 -2
  53. package/components/map/OlLayer.js +257 -6
  54. package/components/map/OlMap.js +405 -5
  55. package/components/map/layers/BingLayer.js +31 -2
  56. package/components/map/layers/GoogleLayer.js +222 -19
  57. package/components/map/layers/GraticuleLayer.js +21 -1
  58. package/components/map/layers/ImageLayer.js +15 -1
  59. package/components/map/layers/MVTLayer.js +52 -2
  60. package/components/map/layers/OSMLayer.js +24 -2
  61. package/components/map/layers/OverlayLayer.js +55 -3
  62. package/components/map/layers/VectorLayer.js +173 -8
  63. package/components/map/layers/WFSLayer.js +220 -6
  64. package/components/map/layers/WMSLayer.js +180 -6
  65. package/components/map/layers/WMTSLayer.js +67 -3
  66. package/components/map/layers/XYZLayer.js +24 -2
  67. package/components/map/layers/index.js +28 -1
  68. package/components/map3d/EditDataset3D.js +190 -3
  69. package/components/map3d/HeightProfile3D.js +402 -3
  70. package/components/map3d/ImportObjects3D.js +162 -2
  71. package/components/map3d/Map3D.js +1304 -38
  72. package/components/map3d/MapControls3D.js +392 -7
  73. package/components/map3d/SearchField3D.js +183 -11
  74. package/components/map3d/View3DSwitcher.js +98 -2
  75. package/components/map3d/drawtool/CreateTool3D.js +174 -4
  76. package/components/map3d/drawtool/EditTool3D.js +590 -6
  77. package/components/map3d/drawtool/NumericInput3D.js +336 -4
  78. package/components/map3d/layers/GeoTIFFLayer3D.js +15 -1
  79. package/components/map3d/layers/VectorLayer3D.js +53 -2
  80. package/components/map3d/layers/WFSLayer3D.js +109 -3
  81. package/components/map3d/layers/WMSLayer3D.js +70 -2
  82. package/components/map3d/layers/WMTSLayer3D.js +27 -3
  83. package/components/map3d/layers/index.js +14 -1
  84. package/components/map3d/utils/FirstPersonControls3D.js +423 -16
  85. package/components/map3d/utils/MiscUtils3D.js +221 -13
  86. package/components/map3d/utils/OrbitControls3D.js +176 -5
  87. package/components/map3d/utils/Tiles3DStyle.js +238 -9
  88. package/components/share/ShareLink.js +54 -2
  89. package/components/share/ShareQRCode.js +62 -2
  90. package/components/share/ShareSocials.js +125 -3
  91. package/components/timeline/FixedTimeline.js +236 -5
  92. package/components/timeline/InfiniteTimeline.js +347 -8
  93. package/components/timeline/TimelineFeaturesSlider.js +439 -5
  94. package/components/widgets/AccordeonWidget.js +96 -2
  95. package/components/widgets/ButtonBar.js +124 -2
  96. package/components/widgets/ColorButton.js +201 -3
  97. package/components/widgets/ComboBox.js +166 -2
  98. package/components/widgets/CopyButton.js +110 -2
  99. package/components/widgets/DateTimeInput.js +100 -3
  100. package/components/widgets/EditableSelect.js +230 -3
  101. package/components/widgets/FileSelector.js +128 -4
  102. package/components/widgets/Input.js +124 -2
  103. package/components/widgets/InputContainer.js +96 -2
  104. package/components/widgets/LayerCatalogWidget.js +219 -3
  105. package/components/widgets/MenuButton.js +157 -1
  106. package/components/widgets/ModalDialog.js +64 -2
  107. package/components/widgets/NavBar.js +119 -2
  108. package/components/widgets/NumberInput.js +226 -4
  109. package/components/widgets/PopupMenu.js +72 -1
  110. package/components/widgets/Primitives.js +6 -1
  111. package/components/widgets/ReCaptchaWidget.js +55 -1
  112. package/components/widgets/SearchWidget.js +255 -2
  113. package/components/widgets/Spinner.js +44 -2
  114. package/components/widgets/SuggestionInput.js +77 -2
  115. package/components/widgets/TextInput.js +308 -2
  116. package/components/widgets/ToggleSwitch.js +85 -2
  117. package/components/widgets/VectorLayerPicker.js +85 -3
  118. package/libs/openlayers.js +225 -5
  119. package/package.json +1 -1
  120. package/plugins/API.js +358 -15
  121. package/plugins/AttributeTable.js +109 -3
  122. package/plugins/Authentication.js +130 -5
  123. package/plugins/BackgroundSwitcher.js +218 -4
  124. package/plugins/Bookmark.js +289 -3
  125. package/plugins/BottomBar.js +298 -4
  126. package/plugins/CookiePopup.js +67 -3
  127. package/plugins/Cyclomedia.js +442 -5
  128. package/plugins/Editing.js +497 -9
  129. package/plugins/FeatureForm.js +366 -4
  130. package/plugins/FeatureSearch.js +458 -3
  131. package/plugins/GeometryDigitizer.js +664 -7
  132. package/plugins/HeightProfile.js +768 -15
  133. package/plugins/Help.js +102 -3
  134. package/plugins/HomeButton.js +80 -3
  135. package/plugins/Identify.js +543 -5
  136. package/plugins/LayerCatalog.js +215 -4
  137. package/plugins/LayerTree.js +1194 -6
  138. package/plugins/LocateButton.js +94 -3
  139. package/plugins/Map.js +320 -16
  140. package/plugins/MapCompare.js +94 -3
  141. package/plugins/MapCopyright.js +127 -5
  142. package/plugins/MapExport.js +613 -20
  143. package/plugins/MapFilter.js +868 -12
  144. package/plugins/MapInfoTooltip.js +277 -3
  145. package/plugins/MapLegend.js +253 -4
  146. package/plugins/MapTip.js +290 -4
  147. package/plugins/Measure.js +220 -4
  148. package/plugins/NewsPopup.js +137 -3
  149. package/plugins/OverviewMap.js +167 -7
  150. package/plugins/Panoramax.js +340 -2
  151. package/plugins/Portal.js +199 -4
  152. package/plugins/Print.js +1231 -15
  153. package/plugins/Redlining.js +750 -6
  154. package/plugins/Reports.js +332 -3
  155. package/plugins/Routing.js +1278 -15
  156. package/plugins/ScratchDrawing.js +173 -5
  157. package/plugins/Settings.js +241 -4
  158. package/plugins/Share.js +198 -3
  159. package/plugins/StartupMarker.js +84 -4
  160. package/plugins/TaskButton.js +88 -3
  161. package/plugins/ThemeSwitcher.js +164 -4
  162. package/plugins/TimeManager.js +971 -10
  163. package/plugins/TopBar.js +300 -7
  164. package/plugins/TourGuide.js +213 -2
  165. package/plugins/ValueTool.js +419 -4
  166. package/plugins/View3D.js +519 -14
  167. package/plugins/ZoomButtons.js +165 -3
  168. package/plugins/map/EditingSupport.js +199 -7
  169. package/plugins/map/LocateSupport.js +260 -4
  170. package/plugins/map/MeasurementSupport.js +216 -8
  171. package/plugins/map/RedliningPickSupport.js +201 -7
  172. package/plugins/map/RedliningSupport.js +726 -17
  173. package/plugins/map/SnapInteraction.js +101 -1
  174. package/plugins/map/SnapSupport.js +210 -2
  175. package/plugins/map/SnappingSupport.js +356 -17
  176. package/plugins/map3d/BackgroundSwitcher3D.js +44 -3
  177. package/plugins/map3d/BottomBar3D.js +118 -3
  178. package/plugins/map3d/Compare3D.js +422 -8
  179. package/plugins/map3d/Draw3D.js +353 -6
  180. package/plugins/map3d/ExportObjects3D.js +393 -18
  181. package/plugins/map3d/HideObjects3D.js +313 -12
  182. package/plugins/map3d/Identify3D.js +283 -12
  183. package/plugins/map3d/LayerTree3D.js +323 -3
  184. package/plugins/map3d/MapCopyright3D.js +128 -5
  185. package/plugins/map3d/MapExport3D.js +590 -10
  186. package/plugins/map3d/MapLight3D.js +553 -6
  187. package/plugins/map3d/Measure3D.js +571 -20
  188. package/plugins/map3d/OverviewMap3D.js +169 -3
  189. package/plugins/map3d/Settings3D.js +73 -3
  190. package/plugins/map3d/TopBar3D.js +207 -9
  191. package/plugins/redlining/RedliningBufferSupport.js +206 -3
  192. package/reducers/display.js +34 -2
  193. package/reducers/editing.js +68 -3
  194. package/reducers/index.js +9 -1
  195. package/reducers/layerinfo.js +26 -2
  196. package/reducers/layers.js +456 -9
  197. package/reducers/localConfig.js +122 -2
  198. package/reducers/locale.js +38 -2
  199. package/reducers/locate.js +40 -2
  200. package/reducers/map.js +176 -5
  201. package/reducers/measurement.js +42 -2
  202. package/reducers/processNotifications.js +49 -2
  203. package/reducers/redlining.js +50 -2
  204. package/reducers/redliningPick.js +27 -2
  205. package/reducers/search.js +20 -1
  206. package/reducers/serviceinfo.js +25 -2
  207. package/reducers/task.js +45 -2
  208. package/reducers/theme.js +51 -2
  209. package/reducers/windows.js +203 -2
  210. package/scripts/dist.sh +1 -1
  211. package/scripts/gen-plugin-docs.js +152 -2
  212. package/scripts/makeIconkit.js +85 -6
  213. package/scripts/themesConfig.js +742 -40
  214. package/scripts/updateTranslations.js +251 -10
  215. package/selectors/searchproviders.js +44 -2
  216. package/stores/StandardStore.js +42 -2
  217. package/utils/ConfigUtils.js +84 -3
  218. package/utils/CoordinatesUtils.js +234 -23
  219. package/utils/DxfUtils.js +237 -11
  220. package/utils/EditingInterface.js +421 -87
  221. package/utils/EditingUtils.js +357 -13
  222. package/utils/ElevationInterface.js +83 -22
  223. package/utils/FeatureStyles.js +429 -5
  224. package/utils/IdentifyUtils.js +443 -7
  225. package/utils/ImageEditor.js +79 -9
  226. package/utils/LayerUtils.js +1516 -50
  227. package/utils/LocaleUtils.js +117 -7
  228. package/utils/MapUtils.js +241 -59
  229. package/utils/MeasureUtils.js +323 -2
  230. package/utils/MiscUtils.js +189 -11
  231. package/utils/PermaLinkUtils.js +429 -6
  232. package/utils/PluginStore.js +27 -1
  233. package/utils/ResourceRegistry.js +15 -1
  234. package/utils/RoutingInterface.js +307 -7
  235. package/utils/SearchProviders.js +722 -19
  236. package/utils/ServiceLayerUtils.js +669 -14
  237. package/utils/Signal.js +32 -2
  238. package/utils/ThemeUtils.js +341 -7
  239. package/utils/VectorLayerUtils.js +589 -15
  240. package/utils/expr_grammar/grammar.js +2239 -2
  241. package/utils/expr_grammar/test.js +65 -3
@@ -1,17 +1,258 @@
1
1
  #!/usr/bin/env node
2
+
2
3
  /**
3
4
  * Copyright 2017-2024 Sourcepole AG
4
5
  * All rights reserved.
5
6
  *
6
7
  * This source code is licensed under the BSD-style license found in the
7
8
  * LICENSE file in the root directory of this source tree.
8
- */var _packageJson$dependen;function _toConsumableArray(r){return _arrayWithoutHoles(r)||_iterableToArray(r)||_unsupportedIterableToArray(r)||_nonIterableSpread()}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.")}function _iterableToArray(r){if("undefined"!=typeof Symbol&&null!=r[Symbol.iterator]||null!=r["@@iterator"])return Array.from(r)}function _arrayWithoutHoles(r){if(Array.isArray(r))return _arrayLikeToArray(r)}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}}}}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}}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}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)}var fs=require("fs");var merge=require("deepmerge");var objectPath=require("object-path");var readJSON=function readJSON(path){try{return JSON.parse(fs.readFileSync(process.cwd()+path,"utf8"))}catch(e){return{}}};var _cleanMessages=function cleanMessages(data,ref){for(var _i=0,_Object$keys=Object.keys(data);_i<_Object$keys.length;_i++){var property=_Object$keys[_i];var omit=ref&&!(property in ref);if(_typeof(data[property])==="object"){if(omit){delete data[property]}else{_cleanMessages(data[property],ref?ref[property]:undefined)}}else if(data[property]===""||omit){delete data[property]}}return data};var createSkel=function createSkel(strings){var skel={locale:"",messages:{}};var _iterator=_createForOfIteratorHelper(strings),_step;try{for(_iterator.s();!(_step=_iterator.n()).done;){var string=_step.value;var path=string.split(".");var cur=skel.messages;for(var i=0;i<path.length-1;++i){cur[path[i]]=cur[path[i]]||{};cur=cur[path[i]]}cur[path[path.length-1]]=""}}catch(err){_iterator.e(err)}finally{_iterator.f()}return skel};var _listDir=function listDir(dir,pattern){var results=[];var list=fs.readdirSync(dir);list.forEach(function(file){if(file==="node_modules"){return}var path=dir+"/"+file;var stat=fs.statSync(path);if(stat&&stat.isDirectory()){/* Recurse into a subdirectory */results=results.concat(_listDir(path,pattern))}else if(pattern.exec(file)){/* Is a file */results.push(path)}});return results};var updateTsConfig=function updateTsConfig(topdir,tsconfig){var collectedMsgIds=arguments.length>2&&arguments[2]!==undefined?arguments[2]:null;var files=_listDir(topdir,/^.*\.jsx?$/);var trRegEx=/LocaleUtils\.tr(?:msg)?\((['"])([A-Za-z0-9._]+)\1/g;var msgIds=new Set;var _iterator2=_createForOfIteratorHelper(files),_step2;try{for(_iterator2.s();!(_step2=_iterator2.n()).done;){var file=_step2.value;var data=fs.readFileSync(file).toString();var _iterator3=_createForOfIteratorHelper(data.matchAll(trRegEx)),_step3;try{for(_iterator3.s();!(_step3=_iterator3.n()).done;){var match=_step3.value;if((!collectedMsgIds||!collectedMsgIds.has(match[2]))&&!match[2].endsWith(".")){msgIds.add(match[2])}}}catch(err){_iterator3.e(err)}finally{_iterator3.f()}}}catch(err){_iterator2.e(err)}finally{_iterator2.f()}var msgIdList=Array.from(msgIds);msgIdList.sort();var json=readJSON(tsconfig);json.strings=msgIdList;fs.writeFileSync(process.cwd()+"/"+tsconfig,JSON.stringify(json,null,2)+"\n");return msgIds};// Determine workspaces / dependencies
9
- var packageJson=readJSON("/package.json");var workspaces=packageJson.workspaces||[];var qwcDeps=Object.keys((_packageJson$dependen=packageJson.dependencies)!==null&&_packageJson$dependen!==void 0?_packageJson$dependen:{qwc2:"0"}).filter(function(dep){return dep.startsWith("qwc")});// Generate workspace translations
10
- var collectedMsgIds=new Set;var _iterator4=_createForOfIteratorHelper(workspaces),_step4;try{for(_iterator4.s();!(_step4=_iterator4.n()).done;){var workspace=_step4.value;/* eslint-disable-next-line */console.log("Generating translations for "+workspace);var newMsgIds=updateTsConfig(process.cwd()+"/"+workspace,"/"+workspace+"/static/translations/tsconfig.json");collectedMsgIds=new Set([].concat(_toConsumableArray(collectedMsgIds),_toConsumableArray(newMsgIds)));var _config=readJSON("/"+workspace+"/static/translations/tsconfig.json");var _strings=[].concat(_toConsumableArray(_config.strings||[]),_toConsumableArray(_config.extra_strings||[]));var _skel=createSkel(_strings);var _iterator6=_createForOfIteratorHelper(_config.languages||[]),_step6;try{for(_iterator6.s();!(_step6=_iterator6.n()).done;){var lang=_step6.value;var langskel=merge(_skel,{locale:lang});// Merge translations
11
- var data=merge(langskel,_cleanMessages(readJSON("/"+workspace+"/static/translations/"+lang+".json"),langskel));// Write updated translations file
12
- try{fs.writeFileSync(process.cwd()+"/"+workspace+"/static/translations/"+lang+".json",JSON.stringify(data,null,2)+"\n");/* eslint-disable-next-line */console.log("Wrote "+workspace+"/static/translations/"+lang+".json")}catch(e){/* eslint-disable-next-line */console.error("Failed to write "+workspace+"/static/translations/"+lang+".json: "+e)}}}catch(err){_iterator6.e(err)}finally{_iterator6.f()}}// Generate application translations
13
- }catch(err){_iterator4.e(err)}finally{_iterator4.f()}updateTsConfig(fs.existsSync(process.cwd()+"/js")?process.cwd()+"/js":process.cwd(),"/static/translations/tsconfig.json",collectedMsgIds);var config=readJSON("/static/translations/tsconfig.json");var strings=[].concat(_toConsumableArray(config.strings||[]),_toConsumableArray(config.extra_strings||[]));var skel=createSkel(strings);var _iterator5=_createForOfIteratorHelper(config.languages||[]),_step5;try{for(_iterator5.s();!(_step5=_iterator5.n()).done;){var _lang=_step5.value;var _langskel=merge(skel,{locale:_lang});var origData=readJSON("/static/translations/"+_lang+".json");var _data=merge(_langskel,_cleanMessages(readJSON("/static/translations/"+_lang+".json"),_langskel));// Merge translations from workspaces
14
- var _iterator7=_createForOfIteratorHelper(workspaces),_step7;try{for(_iterator7.s();!(_step7=_iterator7.n()).done;){var _workspace=_step7.value;_data=merge(_data,readJSON("/"+_workspace+"/static/translations/"+_lang+".json"))}// Merge translations from dependencies
15
- }catch(err){_iterator7.e(err)}finally{_iterator7.f()}var _iterator8=_createForOfIteratorHelper(qwcDeps),_step8;try{for(_iterator8.s();!(_step8=_iterator8.n()).done;){var qwcDep=_step8.value;_data=merge(_data,readJSON("/node_modules/"+qwcDep+"/static/translations/"+_lang+".json"))}// Revert to original values for strings specified in overrides
16
- }catch(err){_iterator8.e(err)}finally{_iterator8.f()}var _iterator9=_createForOfIteratorHelper(config.overrides||[]),_step9;try{for(_iterator9.s();!(_step9=_iterator9.n()).done;){var path=_step9.value;var value=objectPath.get(origData.messages,path);if(value!==undefined){objectPath.set(_data.messages,path,value)}}// Write output
17
- }catch(err){_iterator9.e(err)}finally{_iterator9.f()}try{fs.writeFileSync(process.cwd()+"/static/translations/"+_lang+".json",JSON.stringify(_data,null,2)+"\n");/* eslint-disable-next-line */console.log("Wrote static/translations/"+_lang+".json")}catch(e){/* eslint-disable-next-line */console.error("Failed to write static/translations/"+_lang+".json: "+e)}}}catch(err){_iterator5.e(err)}finally{_iterator5.f()}
9
+ */
10
+ var _packageJson$dependen;
11
+ function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
12
+ 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."); }
13
+ function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
14
+ function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
15
+ 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; } } }; }
16
+ 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; } }
17
+ 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; }
18
+ 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); }
19
+ var fs = require('fs');
20
+ var merge = require('deepmerge');
21
+ var objectPath = require('object-path');
22
+ var readJSON = function readJSON(path) {
23
+ try {
24
+ return JSON.parse(fs.readFileSync(process.cwd() + path, "utf8"));
25
+ } catch (e) {
26
+ return {};
27
+ }
28
+ };
29
+ var _cleanMessages = function cleanMessages(data, ref) {
30
+ for (var _i = 0, _Object$keys = Object.keys(data); _i < _Object$keys.length; _i++) {
31
+ var property = _Object$keys[_i];
32
+ var omit = ref && !(property in ref);
33
+ if (_typeof(data[property]) === "object") {
34
+ if (omit) {
35
+ delete data[property];
36
+ } else {
37
+ _cleanMessages(data[property], ref ? ref[property] : undefined);
38
+ }
39
+ } else if (data[property] === "" || omit) {
40
+ delete data[property];
41
+ }
42
+ }
43
+ return data;
44
+ };
45
+ var createSkel = function createSkel(strings) {
46
+ var skel = {
47
+ locale: "",
48
+ messages: {}
49
+ };
50
+ var _iterator = _createForOfIteratorHelper(strings),
51
+ _step;
52
+ try {
53
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
54
+ var string = _step.value;
55
+ var path = string.split(".");
56
+ var cur = skel.messages;
57
+ for (var i = 0; i < path.length - 1; ++i) {
58
+ cur[path[i]] = cur[path[i]] || {};
59
+ cur = cur[path[i]];
60
+ }
61
+ cur[path[path.length - 1]] = "";
62
+ }
63
+ } catch (err) {
64
+ _iterator.e(err);
65
+ } finally {
66
+ _iterator.f();
67
+ }
68
+ return skel;
69
+ };
70
+ var _listDir = function listDir(dir, pattern) {
71
+ var results = [];
72
+ var list = fs.readdirSync(dir);
73
+ list.forEach(function (file) {
74
+ if (file === 'node_modules') {
75
+ return;
76
+ }
77
+ var path = dir + '/' + file;
78
+ var stat = fs.statSync(path);
79
+ if (stat && stat.isDirectory()) {
80
+ /* Recurse into a subdirectory */
81
+ results = results.concat(_listDir(path, pattern));
82
+ } else if (pattern.exec(file)) {
83
+ /* Is a file */
84
+ results.push(path);
85
+ }
86
+ });
87
+ return results;
88
+ };
89
+ var updateTsConfig = function updateTsConfig(topdir, tsconfig) {
90
+ var collectedMsgIds = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
91
+ var files = _listDir(topdir, /^.*\.jsx?$/);
92
+ var trRegEx = /LocaleUtils\.tr(?:msg)?\((['"])([A-Za-z0-9._]+)\1/g;
93
+ var msgIds = new Set();
94
+ var _iterator2 = _createForOfIteratorHelper(files),
95
+ _step2;
96
+ try {
97
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
98
+ var file = _step2.value;
99
+ var data = fs.readFileSync(file).toString();
100
+ var _iterator3 = _createForOfIteratorHelper(data.matchAll(trRegEx)),
101
+ _step3;
102
+ try {
103
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
104
+ var match = _step3.value;
105
+ if ((!collectedMsgIds || !collectedMsgIds.has(match[2])) && !match[2].endsWith(".")) {
106
+ msgIds.add(match[2]);
107
+ }
108
+ }
109
+ } catch (err) {
110
+ _iterator3.e(err);
111
+ } finally {
112
+ _iterator3.f();
113
+ }
114
+ }
115
+ } catch (err) {
116
+ _iterator2.e(err);
117
+ } finally {
118
+ _iterator2.f();
119
+ }
120
+ var msgIdList = Array.from(msgIds);
121
+ msgIdList.sort();
122
+ var json = readJSON(tsconfig);
123
+ json.strings = msgIdList;
124
+ fs.writeFileSync(process.cwd() + '/' + tsconfig, JSON.stringify(json, null, 2) + "\n");
125
+ return msgIds;
126
+ };
127
+
128
+ // Determine workspaces / dependencies
129
+ var packageJson = readJSON('/package.json');
130
+ var workspaces = packageJson.workspaces || [];
131
+ var qwcDeps = Object.keys((_packageJson$dependen = packageJson.dependencies) !== null && _packageJson$dependen !== void 0 ? _packageJson$dependen : {
132
+ qwc2: "0"
133
+ }).filter(function (dep) {
134
+ return dep.startsWith("qwc");
135
+ });
136
+
137
+ // Generate workspace translations
138
+ var collectedMsgIds = new Set();
139
+ var _iterator4 = _createForOfIteratorHelper(workspaces),
140
+ _step4;
141
+ try {
142
+ for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
143
+ var workspace = _step4.value;
144
+ /* eslint-disable-next-line */
145
+ console.log("Generating translations for " + workspace);
146
+ var newMsgIds = updateTsConfig(process.cwd() + '/' + workspace, '/' + workspace + '/static/translations/tsconfig.json');
147
+ collectedMsgIds = new Set([].concat(_toConsumableArray(collectedMsgIds), _toConsumableArray(newMsgIds)));
148
+ var _config = readJSON('/' + workspace + '/static/translations/tsconfig.json');
149
+ var _strings = [].concat(_toConsumableArray(_config.strings || []), _toConsumableArray(_config.extra_strings || []));
150
+ var _skel = createSkel(_strings);
151
+ var _iterator6 = _createForOfIteratorHelper(_config.languages || []),
152
+ _step6;
153
+ try {
154
+ for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
155
+ var lang = _step6.value;
156
+ var langskel = merge(_skel, {
157
+ locale: lang
158
+ });
159
+
160
+ // Merge translations
161
+ var data = merge(langskel, _cleanMessages(readJSON('/' + workspace + '/static/translations/' + lang + '.json'), langskel));
162
+ // Write updated translations file
163
+ try {
164
+ fs.writeFileSync(process.cwd() + '/' + workspace + '/static/translations/' + lang + ".json", JSON.stringify(data, null, 2) + "\n");
165
+ /* eslint-disable-next-line */
166
+ console.log('Wrote ' + workspace + '/static/translations/' + lang + '.json');
167
+ } catch (e) {
168
+ /* eslint-disable-next-line */
169
+ console.error('Failed to write ' + workspace + '/static/translations/' + lang + '.json: ' + e);
170
+ }
171
+ }
172
+ } catch (err) {
173
+ _iterator6.e(err);
174
+ } finally {
175
+ _iterator6.f();
176
+ }
177
+ }
178
+
179
+ // Generate application translations
180
+ } catch (err) {
181
+ _iterator4.e(err);
182
+ } finally {
183
+ _iterator4.f();
184
+ }
185
+ updateTsConfig(fs.existsSync(process.cwd() + '/js') ? process.cwd() + '/js' : process.cwd(), '/static/translations/tsconfig.json', collectedMsgIds);
186
+ var config = readJSON('/static/translations/tsconfig.json');
187
+ var strings = [].concat(_toConsumableArray(config.strings || []), _toConsumableArray(config.extra_strings || []));
188
+ var skel = createSkel(strings);
189
+ var _iterator5 = _createForOfIteratorHelper(config.languages || []),
190
+ _step5;
191
+ try {
192
+ for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
193
+ var _lang = _step5.value;
194
+ var _langskel = merge(skel, {
195
+ locale: _lang
196
+ });
197
+ var origData = readJSON('/static/translations/' + _lang + '.json');
198
+ var _data = merge(_langskel, _cleanMessages(readJSON('/static/translations/' + _lang + '.json'), _langskel));
199
+
200
+ // Merge translations from workspaces
201
+ var _iterator7 = _createForOfIteratorHelper(workspaces),
202
+ _step7;
203
+ try {
204
+ for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
205
+ var _workspace = _step7.value;
206
+ _data = merge(_data, readJSON('/' + _workspace + '/static/translations/' + _lang + '.json'));
207
+ }
208
+ // Merge translations from dependencies
209
+ } catch (err) {
210
+ _iterator7.e(err);
211
+ } finally {
212
+ _iterator7.f();
213
+ }
214
+ var _iterator8 = _createForOfIteratorHelper(qwcDeps),
215
+ _step8;
216
+ try {
217
+ for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
218
+ var qwcDep = _step8.value;
219
+ _data = merge(_data, readJSON('/node_modules/' + qwcDep + '/static/translations/' + _lang + '.json'));
220
+ }
221
+
222
+ // Revert to original values for strings specified in overrides
223
+ } catch (err) {
224
+ _iterator8.e(err);
225
+ } finally {
226
+ _iterator8.f();
227
+ }
228
+ var _iterator9 = _createForOfIteratorHelper(config.overrides || []),
229
+ _step9;
230
+ try {
231
+ for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
232
+ var path = _step9.value;
233
+ var value = objectPath.get(origData.messages, path);
234
+ if (value !== undefined) {
235
+ objectPath.set(_data.messages, path, value);
236
+ }
237
+ }
238
+
239
+ // Write output
240
+ } catch (err) {
241
+ _iterator9.e(err);
242
+ } finally {
243
+ _iterator9.f();
244
+ }
245
+ try {
246
+ fs.writeFileSync(process.cwd() + '/static/translations/' + _lang + '.json', JSON.stringify(_data, null, 2) + "\n");
247
+ /* eslint-disable-next-line */
248
+ console.log('Wrote static/translations/' + _lang + '.json');
249
+ } catch (e) {
250
+ /* eslint-disable-next-line */
251
+ console.error('Failed to write static/translations/' + _lang + '.json: ' + e);
252
+ }
253
+ }
254
+ } catch (err) {
255
+ _iterator5.e(err);
256
+ } finally {
257
+ _iterator5.f();
258
+ }
@@ -4,5 +4,47 @@
4
4
  *
5
5
  * This source code is licensed under the BSD-style license found in the
6
6
  * LICENSE file in the root directory of this source tree.
7
- */import{createSelector}from"reselect";import ConfigUtils from"../utils/ConfigUtils";import LocaleUtils from"../utils/LocaleUtils";import MapUtils from"../utils/MapUtils";import{collectSearchProviders}from"../utils/SearchProviders";import ThemeUtils from"../utils/ThemeUtils";export default createSelector([function(state){return state.theme.current},function(state){return state.theme},function(state){return state.layers.flat},function(state){return state.map.scales},function(state){return state.map.zoom}],function(theme,themes,layers,scales,zoom){// Collect active layers/search terms
8
- var mapScale=MapUtils.computeForZoom(scales,zoom);var availableProviders=collectSearchProviders(theme,layers,mapScale);if(ConfigUtils.getConfigProp("searchThemes",theme)){availableProviders.themes={labelmsgid:LocaleUtils.trmsg("search.themes"),onSearch:function onSearch(text,options,callback){callback({results:ThemeUtils.searchThemes(themes.themes,text)})}}}if(ConfigUtils.getConfigProp("searchThemeLayers",theme)){availableProviders.themelayers={labelmsgid:LocaleUtils.trmsg("search.themelayers"),onSearch:function onSearch(text,options,callback){callback({results:ThemeUtils.searchThemeLayers(themes.themes,text)})}}}return availableProviders});
7
+ */
8
+
9
+ import { createSelector } from 'reselect';
10
+ import ConfigUtils from '../utils/ConfigUtils';
11
+ import LocaleUtils from '../utils/LocaleUtils';
12
+ import MapUtils from '../utils/MapUtils';
13
+ import { collectSearchProviders } from '../utils/SearchProviders';
14
+ import ThemeUtils from '../utils/ThemeUtils';
15
+ export default createSelector([function (state) {
16
+ return state.theme.current;
17
+ }, function (state) {
18
+ return state.theme;
19
+ }, function (state) {
20
+ return state.layers.flat;
21
+ }, function (state) {
22
+ return state.map.scales;
23
+ }, function (state) {
24
+ return state.map.zoom;
25
+ }], function (theme, themes, layers, scales, zoom) {
26
+ // Collect active layers/search terms
27
+ var mapScale = MapUtils.computeForZoom(scales, zoom);
28
+ var availableProviders = collectSearchProviders(theme, layers, mapScale);
29
+ if (ConfigUtils.getConfigProp("searchThemes", theme)) {
30
+ availableProviders.themes = {
31
+ labelmsgid: LocaleUtils.trmsg("search.themes"),
32
+ onSearch: function onSearch(text, options, callback) {
33
+ callback({
34
+ results: ThemeUtils.searchThemes(themes.themes, text)
35
+ });
36
+ }
37
+ };
38
+ }
39
+ if (ConfigUtils.getConfigProp("searchThemeLayers", theme)) {
40
+ availableProviders.themelayers = {
41
+ labelmsgid: LocaleUtils.trmsg("search.themelayers"),
42
+ onSearch: function onSearch(text, options, callback) {
43
+ callback({
44
+ results: ThemeUtils.searchThemeLayers(themes.themes, text)
45
+ });
46
+ }
47
+ };
48
+ }
49
+ return availableProviders;
50
+ });
@@ -1,8 +1,48 @@
1
- function _typeof(o){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},_typeof(o)}function 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}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}function _defineProperty(e,r,t){return(r=_toPropertyKey(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function _toPropertyKey(t){var i=_toPrimitive(t,"string");return"symbol"==_typeof(i)?i:i+""}function _toPrimitive(t,r){if("object"!=_typeof(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||"default");if("object"!=_typeof(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}/**
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 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; }
3
+ 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; }
4
+ 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; }
5
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
6
+ 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); }
7
+ /**
2
8
  * Copyright 2016 GeoSolutions Sas
3
9
  * Copyright 2016-2024 Sourcepole AG
4
10
  * All rights reserved.
5
11
  *
6
12
  * This source code is licensed under the BSD-style license found in the
7
13
  * LICENSE file in the root directory of this source tree.
8
- */import{configureStore}from"@reduxjs/toolkit";import merge from"deepmerge";import{combineReducers}from"redux";import{logger}from"redux-logger";export var createStore=function createStore(reducers){var initialState=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var actionLogger=arguments.length>2&&arguments[2]!==undefined?arguments[2]:null;var allReducers=combineReducers(reducers);var defaultState=merge(_objectSpread({},allReducers({},{type:null})),initialState.defaultState||{});var searchParams=new URLSearchParams(window.location.search);var enableDevTools=process.env.NODE_ENV!=="production"&&(searchParams.get("debug")||"").toLowerCase()==="true";return configureStore({devTools:enableDevTools,reducer:function reducer(state,action){var newState=_objectSpread({},allReducers(state,action));if(actionLogger){actionLogger(action,newState,state)}return newState},preloadedState:defaultState,middleware:function middleware(getDefaultMiddleware){var middleware=getDefaultMiddleware({serializableCheck:false});if(enableDevTools){middleware.push(logger)}return middleware}})};
14
+ */
15
+ import { configureStore } from '@reduxjs/toolkit';
16
+ import merge from 'deepmerge';
17
+ import { combineReducers } from 'redux';
18
+ import { logger } from 'redux-logger';
19
+ export var createStore = function createStore(reducers) {
20
+ var initialState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
21
+ var actionLogger = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
22
+ var allReducers = combineReducers(reducers);
23
+ var defaultState = merge(_objectSpread({}, allReducers({}, {
24
+ type: null
25
+ })), initialState.defaultState || {});
26
+ var searchParams = new URLSearchParams(window.location.search);
27
+ var enableDevTools = process.env.NODE_ENV !== "production" && (searchParams.get("debug") || "").toLowerCase() === "true";
28
+ return configureStore({
29
+ devTools: enableDevTools,
30
+ reducer: function reducer(state, action) {
31
+ var newState = _objectSpread({}, allReducers(state, action));
32
+ if (actionLogger) {
33
+ actionLogger(action, newState, state);
34
+ }
35
+ return newState;
36
+ },
37
+ preloadedState: defaultState,
38
+ middleware: function middleware(getDefaultMiddleware) {
39
+ var middleware = getDefaultMiddleware({
40
+ serializableCheck: false
41
+ });
42
+ if (enableDevTools) {
43
+ middleware.push(logger);
44
+ }
45
+ return middleware;
46
+ }
47
+ });
48
+ };
@@ -1,9 +1,90 @@
1
- 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}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}function _defineProperty(e,r,t){return(r=_toPropertyKey(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function _toPropertyKey(t){var i=_toPrimitive(t,"string");return"symbol"==_typeof(i)?i:i+""}function _toPrimitive(t,r){if("object"!=_typeof(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||"default");if("object"!=_typeof(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}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)}/**
1
+ 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; }
2
+ 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; }
3
+ 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; }
4
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
5
+ 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); }
6
+ 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); }
7
+ /**
2
8
  * Copyright 2015 GeoSolutions Sas
3
9
  * Copyright 2016-2024 Sourcepole AG
4
10
  * All rights reserved.
5
11
  *
6
12
  * This source code is licensed under the BSD-style license found in the
7
13
  * LICENSE file in the root directory of this source tree.
8
- */import axios from"axios";import isMobile from"ismobilejs";import url from"url";var config={assetsPath:"assets",translationsPath:"translations",defaultFeatureStyle:{strokeColor:[0,0,255,1],strokeWidth:2,strokeDash:[4],fillColor:[0,0,255,0.33],circleRadius:10,textFill:"black",textStroke:"white"}};var sessionConfig={};export default{getDefaults:function getDefaults(){return config},loadConfiguration:function loadConfiguration(){var configParams=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var configFile="config.json";var urlQuery=url.parse(window.location.href,true).query;if(urlQuery.localConfig){configFile=urlQuery.localConfig+".json"}return axios.get(configFile,{params:configParams}).then(function(response){if(_typeof(response.data)==="object"){config=_objectSpread(_objectSpread({},config),response.data)}else{/* eslint-disable-next-line */console.warn("Broken configuration file "+configFile+"!")}// Set isMobile
9
- config.isMobile=isMobile(window.navigator).any;return config})},isMobile:function isMobile(){return config.isMobile},getConfigProp:function getConfigProp(prop,theme){var _theme$config$section,_theme$config,_theme$config2,_ref,_ref2,_config$section;var defval=arguments.length>2&&arguments[2]!==undefined?arguments[2]:undefined;var section=config.isMobile?"mobile":"desktop";var themeProp=(_theme$config$section=theme===null||theme===void 0||(_theme$config=theme.config)===null||_theme$config===void 0||(_theme$config=_theme$config[section])===null||_theme$config===void 0?void 0:_theme$config[prop])!==null&&_theme$config$section!==void 0?_theme$config$section:theme===null||theme===void 0||(_theme$config2=theme.config)===null||_theme$config2===void 0?void 0:_theme$config2[prop];return(_ref=(_ref2=themeProp!==null&&themeProp!==void 0?themeProp:(_config$section=config[section])===null||_config$section===void 0?void 0:_config$section[prop])!==null&&_ref2!==void 0?_ref2:config[prop])!==null&&_ref!==void 0?_ref:defval},getAssetsPath:function getAssetsPath(){return config.assetsPath.replace(/\/$/g,"")},getTranslationsPath:function getTranslationsPath(){return config.translationsPath.replace(/\/$/g,"")},havePlugin:function havePlugin(name){return config.plugins[config.isMobile?"mobile":"desktop"].find(function(entry){return entry.name===name})},getPluginConfig:function getPluginConfig(name){return config.plugins[config.isMobile?"mobile":"desktop"].find(function(entry){return entry.name===name})||{}},setSessionConfig:function setSessionConfig(name,value){sessionConfig[name]=value},getSessionConfig:function getSessionConfig(name){return sessionConfig[name]}};
14
+ */
15
+
16
+ import axios from 'axios';
17
+ import isMobile from 'ismobilejs';
18
+ import url from 'url';
19
+ var config = {
20
+ assetsPath: "assets",
21
+ translationsPath: "translations",
22
+ defaultFeatureStyle: {
23
+ strokeColor: [0, 0, 255, 1],
24
+ strokeWidth: 2,
25
+ strokeDash: [4],
26
+ fillColor: [0, 0, 255, 0.33],
27
+ circleRadius: 10,
28
+ textFill: 'black',
29
+ textStroke: 'white'
30
+ }
31
+ };
32
+ var sessionConfig = {};
33
+ export default {
34
+ getDefaults: function getDefaults() {
35
+ return config;
36
+ },
37
+ loadConfiguration: function loadConfiguration() {
38
+ var configParams = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
39
+ var configFile = 'config.json';
40
+ var urlQuery = url.parse(window.location.href, true).query;
41
+ if (urlQuery.localConfig) {
42
+ configFile = urlQuery.localConfig + '.json';
43
+ }
44
+ return axios.get(configFile, {
45
+ params: configParams
46
+ }).then(function (response) {
47
+ if (_typeof(response.data) === 'object') {
48
+ config = _objectSpread(_objectSpread({}, config), response.data);
49
+ } else {
50
+ /* eslint-disable-next-line */
51
+ console.warn("Broken configuration file " + configFile + "!");
52
+ }
53
+ // Set isMobile
54
+ config.isMobile = isMobile(window.navigator).any;
55
+ return config;
56
+ });
57
+ },
58
+ isMobile: function isMobile() {
59
+ return config.isMobile;
60
+ },
61
+ getConfigProp: function getConfigProp(prop, theme) {
62
+ var _theme$config$section, _theme$config, _theme$config2, _ref, _ref2, _config$section;
63
+ var defval = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;
64
+ var section = config.isMobile ? "mobile" : "desktop";
65
+ var themeProp = (_theme$config$section = theme === null || theme === void 0 || (_theme$config = theme.config) === null || _theme$config === void 0 || (_theme$config = _theme$config[section]) === null || _theme$config === void 0 ? void 0 : _theme$config[prop]) !== null && _theme$config$section !== void 0 ? _theme$config$section : theme === null || theme === void 0 || (_theme$config2 = theme.config) === null || _theme$config2 === void 0 ? void 0 : _theme$config2[prop];
66
+ return (_ref = (_ref2 = themeProp !== null && themeProp !== void 0 ? themeProp : (_config$section = config[section]) === null || _config$section === void 0 ? void 0 : _config$section[prop]) !== null && _ref2 !== void 0 ? _ref2 : config[prop]) !== null && _ref !== void 0 ? _ref : defval;
67
+ },
68
+ getAssetsPath: function getAssetsPath() {
69
+ return config.assetsPath.replace(/\/$/g, "");
70
+ },
71
+ getTranslationsPath: function getTranslationsPath() {
72
+ return config.translationsPath.replace(/\/$/g, "");
73
+ },
74
+ havePlugin: function havePlugin(name) {
75
+ return config.plugins[config.isMobile ? "mobile" : "desktop"].find(function (entry) {
76
+ return entry.name === name;
77
+ });
78
+ },
79
+ getPluginConfig: function getPluginConfig(name) {
80
+ return config.plugins[config.isMobile ? "mobile" : "desktop"].find(function (entry) {
81
+ return entry.name === name;
82
+ }) || {};
83
+ },
84
+ setSessionConfig: function setSessionConfig(name, value) {
85
+ sessionConfig[name] = value;
86
+ },
87
+ getSessionConfig: function getSessionConfig(name) {
88
+ return sessionConfig[name];
89
+ }
90
+ };