simwrapper 4.1.3__tar.gz → 4.1.4__tar.gz

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 (357) hide show
  1. {simwrapper-4.1.3 → simwrapper-4.1.4}/PKG-INFO +1 -1
  2. {simwrapper-4.1.3 → simwrapper-4.1.4}/pyproject.toml +1 -1
  3. simwrapper-4.1.3/simwrapper/static/assets/AggregateOd-C7hKHrtG.css → simwrapper-4.1.4/simwrapper/static/assets/AggregateOd-BWyxbgD3.css +1 -1
  4. simwrapper-4.1.4/simwrapper/static/assets/AggregateOd-CXmiQkHA.js +1 -0
  5. simwrapper-4.1.3/simwrapper/static/assets/BackgroundMapOnTop-84v7Y9j_.js → simwrapper-4.1.4/simwrapper/static/assets/BackgroundMapOnTop-Cz5-VA8k.js +1 -1
  6. simwrapper-4.1.3/simwrapper/static/assets/CalculationTable-L4vQ8c-4.js → simwrapper-4.1.4/simwrapper/static/assets/CalculationTable-BjnSjLMs.js +1 -1
  7. simwrapper-4.1.4/simwrapper/static/assets/CarrierViewer-jJrk5uij.js +1 -0
  8. simwrapper-4.1.3/simwrapper/static/assets/CollapsiblePanel-GuobHpcZ.js → simwrapper-4.1.4/simwrapper/static/assets/CollapsiblePanel-CD6PjB1X.js +1 -1
  9. simwrapper-4.1.3/simwrapper/static/assets/ColorsAndWidths-DQGojr_h.js → simwrapper-4.1.4/simwrapper/static/assets/ColorsAndWidths-BbmadHLM.js +1 -1
  10. simwrapper-4.1.3/simwrapper/static/assets/DashboardDataManager-DadBWrpd.js → simwrapper-4.1.4/simwrapper/static/assets/DashboardDataManager-CKcv4ndV.js +1 -1
  11. simwrapper-4.1.3/simwrapper/static/assets/DrawingTool-CaOc8yNx.js → simwrapper-4.1.4/simwrapper/static/assets/DrawingTool-CmcnUtqm.js +1 -1
  12. simwrapper-4.1.3/simwrapper/static/assets/EventViewer-BOdshHfS.js → simwrapper-4.1.4/simwrapper/static/assets/EventViewer-CBq4_UUQ.js +2 -2
  13. simwrapper-4.1.3/simwrapper/static/assets/FileSelector-CwXbclxk.js → simwrapper-4.1.4/simwrapper/static/assets/FileSelector-1W983aaV.js +1 -1
  14. simwrapper-4.1.3/simwrapper/static/assets/Flowmap-DA00hbuB.js → simwrapper-4.1.4/simwrapper/static/assets/Flowmap-CaMK58QA.js +10 -10
  15. simwrapper-4.1.3/simwrapper/static/assets/GridMap-DNmC3Rkm.js → simwrapper-4.1.4/simwrapper/static/assets/GridMap-D7yWfaeC.js +2 -2
  16. simwrapper-4.1.3/simwrapper/static/assets/HTTPFileSystem-Cf8G_bcW.js → simwrapper-4.1.4/simwrapper/static/assets/HTTPFileSystem-WNrn1tPJ.js +1 -1
  17. simwrapper-4.1.3/simwrapper/static/assets/ImageView-Bvvkruen.js → simwrapper-4.1.4/simwrapper/static/assets/ImageView-CtubhIXf.js +1 -1
  18. simwrapper-4.1.3/simwrapper/static/assets/LayerMap-CwUEZvgN.js → simwrapper-4.1.4/simwrapper/static/assets/LayerMap-wmAR2jwn.js +1 -1
  19. simwrapper-4.1.3/simwrapper/static/assets/LayoutManager-BCBekaMY.js → simwrapper-4.1.4/simwrapper/static/assets/LayoutManager-BT7pw0Yb.js +3 -3
  20. simwrapper-4.1.3/simwrapper/static/assets/LegendBox-DCW8O5g7.js → simwrapper-4.1.4/simwrapper/static/assets/LegendBox-DTRNFWoy.js +1 -1
  21. simwrapper-4.1.3/simwrapper/static/assets/LegendColors-BuORfEL7.js → simwrapper-4.1.4/simwrapper/static/assets/LegendColors-CNhxg9t6.js +1 -1
  22. simwrapper-4.1.4/simwrapper/static/assets/LogisticsViewer-CZv-hNV4.js +1 -0
  23. simwrapper-4.1.3/simwrapper/static/assets/MatrixViewer-v0xGHmR8.js → simwrapper-4.1.4/simwrapper/static/assets/MatrixViewer-QN6QraDx.js +185 -185
  24. simwrapper-4.1.3/simwrapper/static/assets/ModalIdColumnPicker-Ba40fVKg.js → simwrapper-4.1.4/simwrapper/static/assets/ModalIdColumnPicker-CHfFDAZm.js +1 -1
  25. simwrapper-4.1.4/simwrapper/static/assets/NetworkLinks-DFw013H5.js +1 -0
  26. simwrapper-4.1.3/simwrapper/static/assets/PathTraceLayer-CN_L1hnx.js → simwrapper-4.1.4/simwrapper/static/assets/PathTraceLayer-PlfYVZCI.js +1 -1
  27. simwrapper-4.1.3/simwrapper/static/assets/PieChartDemo-BmkqQhRS.js → simwrapper-4.1.4/simwrapper/static/assets/PieChartDemo-QpKOZ1EL.js +1 -1
  28. simwrapper-4.1.3/simwrapper/static/assets/PlotlyDiagram-DJZI0g-m.js → simwrapper-4.1.4/simwrapper/static/assets/PlotlyDiagram-C5jRRJwR.js +1 -1
  29. simwrapper-4.1.3/simwrapper/static/assets/RunConfigurator-BBsfor_p.js → simwrapper-4.1.4/simwrapper/static/assets/RunConfigurator-CkS3Kf0Y.js +1 -1
  30. simwrapper-4.1.3/simwrapper/static/assets/SankeyDiagram-wb011ZMi.js → simwrapper-4.1.4/simwrapper/static/assets/SankeyDiagram-CzpMO7JL.js +1 -1
  31. simwrapper-4.1.3/simwrapper/static/assets/ShapeFile-D_t3pOHC.js → simwrapper-4.1.4/simwrapper/static/assets/ShapeFile-BLn23vgo.js +2 -2
  32. simwrapper-4.1.3/simwrapper/static/assets/TimeSlider-B0kaD6Uf.js → simwrapper-4.1.4/simwrapper/static/assets/TimeSlider-CW7pH8GJ.js +1 -1
  33. simwrapper-4.1.3/simwrapper/static/assets/TopSheet-D4u-pVea.js → simwrapper-4.1.4/simwrapper/static/assets/TopSheet-LRRemD72.js +1 -1
  34. simwrapper-4.1.3/simwrapper/static/assets/TransitDemand-D4a7NaAv.js → simwrapper-4.1.4/simwrapper/static/assets/TransitDemand-84vdoqyA.js +6 -6
  35. simwrapper-4.1.3/simwrapper/static/assets/VegaLite-fRSUwRRi.js → simwrapper-4.1.4/simwrapper/static/assets/VegaLite-DTXrNNHT.js +1 -1
  36. simwrapper-4.1.3/simwrapper/static/assets/VehicleAnimation-DCrrli0E.js → simwrapper-4.1.4/simwrapper/static/assets/VehicleAnimation-DgAzNDQB.js +4 -4
  37. simwrapper-4.1.3/simwrapper/static/assets/VehicleAnimation-BbNrHwWX.js → simwrapper-4.1.4/simwrapper/static/assets/VehicleAnimation-Fnkocqr4.js +4 -4
  38. simwrapper-4.1.3/simwrapper/static/assets/VideoPlayer-SS02w24U.js → simwrapper-4.1.4/simwrapper/static/assets/VideoPlayer-SddYHZXi.js +1 -1
  39. simwrapper-4.1.3/simwrapper/static/assets/VizConfigurator-1-9a3OUI.js → simwrapper-4.1.4/simwrapper/static/assets/VizConfigurator-KIDE06Vj.js +1 -1
  40. simwrapper-4.1.3/simwrapper/static/assets/VuePlotly-BYzUgSS4.js → simwrapper-4.1.4/simwrapper/static/assets/VuePlotly-CmtVC2Ei.js +1 -1
  41. simwrapper-4.1.3/simwrapper/static/assets/XmlViewer-DWp7QuT9.js → simwrapper-4.1.4/simwrapper/static/assets/XmlViewer-nO1wiTD9.js +1 -1
  42. simwrapper-4.1.4/simwrapper/static/assets/XyHexagons-DTBZjxKh.js +263 -0
  43. simwrapper-4.1.3/simwrapper/static/assets/XyTime-Bz-NHdMK.js → simwrapper-4.1.4/simwrapper/static/assets/XyTime-BRyx7nAz.js +5 -5
  44. simwrapper-4.1.3/simwrapper/static/assets/ZoomButtons-B7tt6RkT.js → simwrapper-4.1.4/simwrapper/static/assets/ZoomButtons-D2uWsuQs.js +1 -1
  45. simwrapper-4.1.3/simwrapper/static/assets/aggregate-od-Cz4AqvR6.js → simwrapper-4.1.4/simwrapper/static/assets/aggregate-od-D14T5G7T.js +1 -1
  46. simwrapper-4.1.3/simwrapper/static/assets/area-BeJREtXh.js → simwrapper-4.1.4/simwrapper/static/assets/area-DC6yUAA_.js +1 -1
  47. simwrapper-4.1.3/simwrapper/static/assets/area-map-Bp4Okkmj.js → simwrapper-4.1.4/simwrapper/static/assets/area-map-ouDJxCnP.js +1 -1
  48. simwrapper-4.1.3/simwrapper/static/assets/bar-hCLqDfwI.js → simwrapper-4.1.4/simwrapper/static/assets/bar-C5hv0gOI.js +1 -1
  49. simwrapper-4.1.3/simwrapper/static/assets/bubble-DNzIP5Vt.js → simwrapper-4.1.4/simwrapper/static/assets/bubble-fzUgZNaT.js +1 -1
  50. simwrapper-4.1.3/simwrapper/static/assets/carriers-B4Kh2t5j.js → simwrapper-4.1.4/simwrapper/static/assets/carriers-hXo3YDNd.js +1 -1
  51. simwrapper-4.1.3/simwrapper/static/assets/column-layer-BEEIazOy.js → simwrapper-4.1.4/simwrapper/static/assets/column-layer-SKqENiMt.js +1 -1
  52. simwrapper-4.1.3/simwrapper/static/assets/flowmap-DHY8RzeZ.js → simwrapper-4.1.4/simwrapper/static/assets/flowmap-Bb0otHlb.js +1 -1
  53. simwrapper-4.1.3/simwrapper/static/assets/geo-utils-B8BYiwEx.js → simwrapper-4.1.4/simwrapper/static/assets/geo-utils-CG3zNbgU.js +1 -1
  54. simwrapper-4.1.3/simwrapper/static/assets/geojson-layer-ClBV_VpI.js → simwrapper-4.1.4/simwrapper/static/assets/geojson-layer-DTh83Hy1.js +1 -1
  55. simwrapper-4.1.3/simwrapper/static/assets/gridmap-DSsoVcfH.js → simwrapper-4.1.4/simwrapper/static/assets/gridmap-YJAgv4D5.js +1 -1
  56. simwrapper-4.1.3/simwrapper/static/assets/groups-0zWdeVJQ.js → simwrapper-4.1.4/simwrapper/static/assets/groups-ZvH4FWRr.js +1 -1
  57. simwrapper-4.1.3/simwrapper/static/assets/heatmap-D2dKV4Na.js → simwrapper-4.1.4/simwrapper/static/assets/heatmap-HaLJudep.js +1 -1
  58. simwrapper-4.1.3/simwrapper/static/assets/hexagons-CwmBcoaV.js → simwrapper-4.1.4/simwrapper/static/assets/hexagons-CZSWzMt5.js +1 -1
  59. simwrapper-4.1.3/simwrapper/static/assets/index-CM0svw02.js → simwrapper-4.1.4/simwrapper/static/assets/index-BGzsgwfU.js +1 -1
  60. simwrapper-4.1.3/simwrapper/static/assets/index-B23dC982.js → simwrapper-4.1.4/simwrapper/static/assets/index-C0WnpZCG.js +1 -1
  61. simwrapper-4.1.3/simwrapper/static/assets/index-B0QPu2l3.js → simwrapper-4.1.4/simwrapper/static/assets/index-CGaFlMco.js +1 -1
  62. simwrapper-4.1.3/simwrapper/static/assets/index-CHe7BiNX.js → simwrapper-4.1.4/simwrapper/static/assets/index-D3p5oi12.js +3 -3
  63. simwrapper-4.1.3/simwrapper/static/assets/index-g5R23Vjl.js → simwrapper-4.1.4/simwrapper/static/assets/index-DYqxQzaj.js +1 -1
  64. simwrapper-4.1.3/simwrapper/static/assets/layermap-Dd1S77Cu.js → simwrapper-4.1.4/simwrapper/static/assets/layermap-CrT7IVwK.js +1 -1
  65. simwrapper-4.1.3/simwrapper/static/assets/line-V8jhya0F.js → simwrapper-4.1.4/simwrapper/static/assets/line-HAGXGI92.js +1 -1
  66. simwrapper-4.1.3/simwrapper/static/assets/links-DvJ4P6v5.js → simwrapper-4.1.4/simwrapper/static/assets/links-DcVOTCsl.js +1 -1
  67. simwrapper-4.1.3/simwrapper/static/assets/lodash-IhglTFO4.js → simwrapper-4.1.4/simwrapper/static/assets/lodash-CQTnzDmO.js +1 -1
  68. simwrapper-4.1.3/simwrapper/static/assets/matrix-DnyYGM4J.js → simwrapper-4.1.4/simwrapper/static/assets/matrix-BGkq8adI.js +1 -1
  69. simwrapper-4.1.3/simwrapper/static/assets/nprogress-BYoelC-3.js → simwrapper-4.1.4/simwrapper/static/assets/nprogress-ByTl0lPP.js +1 -1
  70. simwrapper-4.1.3/simwrapper/static/assets/papaparse.min-scs4TfNl.js → simwrapper-4.1.4/simwrapper/static/assets/papaparse.min-BcGbTYYz.js +1 -1
  71. simwrapper-4.1.3/simwrapper/static/assets/pie-DRzRbGoI.js → simwrapper-4.1.4/simwrapper/static/assets/pie-DerQ9-7G.js +1 -1
  72. simwrapper-4.1.3/simwrapper/static/assets/plotly-CWBrg1BT.js → simwrapper-4.1.4/simwrapper/static/assets/plotly-6Zp_Hs12.js +1 -1
  73. simwrapper-4.1.3/simwrapper/static/assets/sankey-DXF7iKm_.js → simwrapper-4.1.4/simwrapper/static/assets/sankey-TLlkRKck.js +1 -1
  74. simwrapper-4.1.3/simwrapper/static/assets/scatter-B_yU9CDt.js → simwrapper-4.1.4/simwrapper/static/assets/scatter-teMRBG85.js +1 -1
  75. simwrapper-4.1.3/simwrapper/static/assets/slideshow-Mp9difc_.js → simwrapper-4.1.4/simwrapper/static/assets/slideshow-BQjak72w.js +1 -1
  76. simwrapper-4.1.3/simwrapper/static/assets/table-HRjnsICr.js → simwrapper-4.1.4/simwrapper/static/assets/table-DdMO05xA.js +1 -1
  77. simwrapper-4.1.3/simwrapper/static/assets/text-BzLBkdq8.js → simwrapper-4.1.4/simwrapper/static/assets/text-B4acUgL6.js +1 -1
  78. simwrapper-4.1.3/simwrapper/static/assets/tile-_PZzfmJq.js → simwrapper-4.1.4/simwrapper/static/assets/tile-D6EpfyXy.js +1 -1
  79. simwrapper-4.1.3/simwrapper/static/assets/transit-BNjqtb3a.js → simwrapper-4.1.4/simwrapper/static/assets/transit-BK3T6EVb.js +1 -1
  80. simwrapper-4.1.3/simwrapper/static/assets/vega-Di7GG6_B.js → simwrapper-4.1.4/simwrapper/static/assets/vega-BW4TIa6M.js +1 -1
  81. simwrapper-4.1.3/simwrapper/static/assets/vehicles-D2hsgSLb.js → simwrapper-4.1.4/simwrapper/static/assets/vehicles-DGShYBJt.js +1 -1
  82. simwrapper-4.1.3/simwrapper/static/assets/video-CgMV46tG.js → simwrapper-4.1.4/simwrapper/static/assets/video-Cz_SCdU2.js +1 -1
  83. simwrapper-4.1.3/simwrapper/static/assets/xml-DdCyNHBe.js → simwrapper-4.1.4/simwrapper/static/assets/xml-BaugQjJT.js +1 -1
  84. simwrapper-4.1.3/simwrapper/static/assets/xytime-5GSmuCsh.js → simwrapper-4.1.4/simwrapper/static/assets/xytime-DffmtR4D.js +1 -1
  85. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/index.html +1 -1
  86. {simwrapper-4.1.3 → simwrapper-4.1.4}/uv.lock +1 -1
  87. simwrapper-4.1.3/simwrapper/static/assets/AggregateOd-CRQugqrU.js +0 -1
  88. simwrapper-4.1.3/simwrapper/static/assets/CarrierViewer-Dy0abVm0.js +0 -1
  89. simwrapper-4.1.3/simwrapper/static/assets/LogisticsViewer-CN3DSgkV.js +0 -1
  90. simwrapper-4.1.3/simwrapper/static/assets/NetworkLinks-DGFNRmFw.js +0 -1
  91. simwrapper-4.1.3/simwrapper/static/assets/XyHexagons-C9UOHOgh.js +0 -263
  92. {simwrapper-4.1.3 → simwrapper-4.1.4}/.gitignore +0 -0
  93. {simwrapper-4.1.3 → simwrapper-4.1.4}/LICENSE.txt +0 -0
  94. {simwrapper-4.1.3 → simwrapper-4.1.4}/MANIFEST.in +0 -0
  95. {simwrapper-4.1.3 → simwrapper-4.1.4}/Makefile +0 -0
  96. {simwrapper-4.1.3 → simwrapper-4.1.4}/README.md +0 -0
  97. {simwrapper-4.1.3 → simwrapper-4.1.4}/patches/apply_pytables_patch.py +0 -0
  98. {simwrapper-4.1.3 → simwrapper-4.1.4}/patches/pytables-3.10.2.patch +0 -0
  99. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/FlaskApp.py +0 -0
  100. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/GunicornServer.py +0 -0
  101. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/MiniFileServer.py +0 -0
  102. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/__init__.py +0 -0
  103. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/cli.py +0 -0
  104. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/config/gunicorn_config.py +0 -0
  105. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/config/nginx.conf +0 -0
  106. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/config/simwrapper-flask-app.service +0 -0
  107. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/config/simwrapper-rclone.service +0 -0
  108. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/config/supervisord.conf +0 -0
  109. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/sites.py +0 -0
  110. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/404.html +0 -0
  111. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/404.html.bak +0 -0
  112. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/README.md +0 -0
  113. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/AggregateDatasetStreamer.worker-BAkFzLI9.js +0 -0
  114. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/BackgroundMapOnTop-DptOe2tm.css +0 -0
  115. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/CalculationTable-ie-f6C8y.css +0 -0
  116. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/CarrierViewer-B6aZtDBu.css +0 -0
  117. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/CollapsiblePanel-zCvUtCGk.css +0 -0
  118. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/CoordinateConverter.worker-BUgBAv_F.js +0 -0
  119. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/Coords-In7NRIX8.js +0 -0
  120. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/CsvGzipParser.worker-CmRyigJZ.js +0 -0
  121. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/DataFetcher.worker-BxRJWgFP.js +0 -0
  122. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/DrawingTool-Cxz0mWSd.css +0 -0
  123. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/EventViewer-CZ3TThUA.css +0 -0
  124. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/FileSelector-IeBXTqNi.css +0 -0
  125. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/Flowmap-BuE0aFLI.css +0 -0
  126. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/GridMap-BAaxePX9.css +0 -0
  127. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/GzipFetcher.worker-cLk5ZI98.js +0 -0
  128. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/GzipFetcher.worker-om0h2NAp.js +0 -0
  129. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/H5ProviderWorker.worker-CFQ2mOos.js +0 -0
  130. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/ImageView-_qbXLBoX.css +0 -0
  131. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/LayerMap-DfWxXQr6.css +0 -0
  132. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/LayoutManager-CrMbulzJ.css +0 -0
  133. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/LegendBox-BJxkonIO.css +0 -0
  134. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/LegendColors-DwNyh-6y.css +0 -0
  135. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/LegendStore-CGgeb9zL.js +0 -0
  136. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/LineOffsetLayer-BLObRkrp.js +0 -0
  137. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/LogisticsViewer-CGM8-b5b.css +0 -0
  138. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/MATSimEventStreamer.worker-Dk6wRjLM.js +0 -0
  139. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/MatrixViewer-BGWyU7so.css +0 -0
  140. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/ModalIdColumnPicker-BYwf6hzm.css +0 -0
  141. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/NetworkLinks-Boct5mDt.css +0 -0
  142. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/NewXmlFetcher.worker-DPWerqW9.js +0 -0
  143. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/NewXmlFetcher.worker-DSJgeOd2.js +0 -0
  144. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/PathOffsetLayer-DAEGMsHr.js +0 -0
  145. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/PathTraceLayer-CrQfpvuS.css +0 -0
  146. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/PieChartDemo-BtuA3oXS.css +0 -0
  147. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/PlotlyDiagram-CkH80TS4.css +0 -0
  148. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/PolygonsLayer.worker-CVRCTekN.js +0 -0
  149. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/RoadNetworkLoader.worker-BsIqKwCD.js +0 -0
  150. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/RunConfigurator-Cka-r30l.css +0 -0
  151. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/SW_logo_icon_anim-Cyl7nwZq.gif +0 -0
  152. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/SW_logo_white-Db4Yi2rP.js +0 -0
  153. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/SW_logo_white-mbdplT21.png +0 -0
  154. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/SW_logo_yellow-Btlbhihn.png +0 -0
  155. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/SankeyDiagram-CACz4sdX.css +0 -0
  156. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/ShapeFile-CVR4h-7Z.css +0 -0
  157. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/TimeSlider-Bvnp9Ymc.css +0 -0
  158. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/TopSheet-CMi5Zi0C.css +0 -0
  159. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/TopSheetWorker.worker-1BBR3_FY.js +0 -0
  160. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/TransitDemand-DH6Isbnu.css +0 -0
  161. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/TransitSupplyHelper.worker-D8crPrmD.js +0 -0
  162. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/VegaLite-DVfrWt8N.css +0 -0
  163. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/VehicleAnimation-BJiiAXJd.css +0 -0
  164. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/VehicleAnimation-Dc9Qe3Dk.css +0 -0
  165. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/VideoPlayer-CQUHGSke.css +0 -0
  166. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/VizConfigurator-CV0IhvHW.css +0 -0
  167. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/WASMEventStreamer.worker-DBw2EEtK.js +0 -0
  168. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/WasmXmlNetworkParser.worker-Br7OVoG_.js +0 -0
  169. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/XmlViewer-BGwZvg3-.css +0 -0
  170. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/XyHexagons-3IRNPsu_.css +0 -0
  171. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/XyTime-CbNEqM7D.css +0 -0
  172. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/XytDataParser.worker-DDEc0p2H.js +0 -0
  173. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/ZoomButtons-urPLxqJ5.css +0 -0
  174. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/aggregate-od-CxN1rXyi.css +0 -0
  175. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/arc-layer-BVLaP1vr.js +0 -0
  176. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/arcs-B-65v31y.png +0 -0
  177. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/area-B207IVrs.css +0 -0
  178. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/area-map-CwgktcLJ.css +0 -0
  179. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/bar-BAcPDcUH.css +0 -0
  180. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/berlin-C-twquEa.jpg +0 -0
  181. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/bisect-CYcslDjR.js +0 -0
  182. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/bubble-BkeWQmPX.css +0 -0
  183. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/carriers-Bynfqluv.css +0 -0
  184. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/color-CBfzWUsH.js +0 -0
  185. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/comlink-CPG-Ccvr.js +0 -0
  186. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/data-filter-extension-CLr7Gtu_.js +0 -0
  187. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/defaultLocale-Zq5WfVW0.js +0 -0
  188. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/draw-icon-dm-DbFh91q-.png +0 -0
  189. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/extent-Ccx1MofX.js +0 -0
  190. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/flowmap-CvjUZABP.css +0 -0
  191. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/fxp-DjoqftHf.js +0 -0
  192. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/gridmap-f31N4Owr.css +0 -0
  193. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/group-hI8ly2Wr.js +0 -0
  194. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/hcl-Dwd6uikK.js +0 -0
  195. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/heatmap-BxnzdKxM.css +0 -0
  196. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/hexagons-CPOSxcyG.css +0 -0
  197. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/icon-blue-ramp-D1d4h-6x.png +0 -0
  198. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/icon-pie-chart-BS7BHQ_l.png +0 -0
  199. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/icon-stop-triangle-BjEDyLtU.png +0 -0
  200. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/index-B9fw0f6a.js +0 -0
  201. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/index-CVL_6l40.js +0 -0
  202. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/index-D7bO68xb.css +0 -0
  203. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/index-DFKcNkqO.js +0 -0
  204. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/index-_doEQLKC.js +0 -0
  205. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/index-emsa1Orl.js +0 -0
  206. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/init-DZFJxo1o.js +0 -0
  207. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/layer-GQvgsG1_.js +0 -0
  208. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/layer-extension-CCnGoUTU.js +0 -0
  209. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/layermap-CWKLShno.css +0 -0
  210. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/libH5Zblosc-DmbwZN5J.so +0 -0
  211. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/libH5Zblosc2-C2k_kvFi.so +0 -0
  212. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/libH5Zbshuf-CAWqoiJv.so +0 -0
  213. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/libH5Zbz2-YH5bcfd1.so +0 -0
  214. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/libH5Zlz4-DBxVEC8C.so +0 -0
  215. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/libH5Zlzf-B37RoVJN.so +0 -0
  216. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/libH5Zszf-vmQ-rYRm.so +0 -0
  217. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/libH5Zzfp-CxpSdQww.so +0 -0
  218. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/libH5Zzstd-BNHjSL5H.so +0 -0
  219. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/lil-gui.esm-D2cLj-mk.js +0 -0
  220. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/line-DkJk6MUL.css +0 -0
  221. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/line-layer-BsT1dmhn.js +0 -0
  222. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/links-BdpHH8jO.css +0 -0
  223. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/links-BjFLDFnX.png +0 -0
  224. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/mapbox-overlay-BWTNBTi1.js +0 -0
  225. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/matrix-CwtPS1VI.css +0 -0
  226. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/matsim_event_streamer_bg-DwBjm0Hh.wasm +0 -0
  227. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/min-C6O82vcA.js +0 -0
  228. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/moving-icons-vehicles-layer-BKlY97P0.js +0 -0
  229. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/path-layer-BllYebBs.js +0 -0
  230. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/pie-CHkxdXB7.css +0 -0
  231. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/plotly-DIuHo25J.css +0 -0
  232. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/points-CNz3arAg.png +0 -0
  233. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/polygons-BCSoK5vV.png +0 -0
  234. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/pow-BJlj2e5q.js +0 -0
  235. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/precisionRound-CGdWDuur.js +0 -0
  236. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/rainbow-DYLOPEGn.js +0 -0
  237. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/range-OtVwhkKS.js +0 -0
  238. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/sankey-ChmfM_XB.css +0 -0
  239. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/scatter-DxIgg1if.css +0 -0
  240. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/sequential-DVUtHXFn.js +0 -0
  241. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/sidebar-BRi9n39r.png +0 -0
  242. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/slideshow-KikGqlRS.css +0 -0
  243. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/sw_minus-B3KtJjJs.jpg +0 -0
  244. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/sw_minus_dm-BB92PyXK.jpg +0 -0
  245. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/sw_north_arrow-BuDjRW21.png +0 -0
  246. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/sw_north_arrow_dm-b3Ne7pdA.png +0 -0
  247. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/sw_plus-_7XGt7Yq.jpg +0 -0
  248. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/sw_plus_dm-O9hpaAgy.jpg +0 -0
  249. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/table-DEhKzzbD.css +0 -0
  250. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/table-NNqWMujx.png +0 -0
  251. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/text-Cz75an8R.css +0 -0
  252. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/text-layer-Cpq7KRgR.js +0 -0
  253. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/threshold-BCEk2Ck_.js +0 -0
  254. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/thumbnail-B7gJwb8m.jpg +0 -0
  255. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/thumbnail-BWla1ZrP.jpg +0 -0
  256. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/thumbnail-B_QeHA-1.jpg +0 -0
  257. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/tile-BmkuwpJZ.css +0 -0
  258. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/timer-C47FinJ0.js +0 -0
  259. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/transit-J9voF7aH.css +0 -0
  260. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/turf.es-BzqbG201.js +0 -0
  261. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/vega-9UM1ksay.css +0 -0
  262. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/vehicles-BEXxPljt.css +0 -0
  263. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/video-Bc92MdQ0.css +0 -0
  264. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/viridis-Dsxo9Ge-.js +0 -0
  265. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/vsp-2023-logo-kcRNuRsU.png +0 -0
  266. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/xml-DR8CGo6Q.css +0 -0
  267. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/xytime-BdF5XbHJ.css +0 -0
  268. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/assets/year-Cg8DRz0f.js +0 -0
  269. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/colors/scale-bluered.png +0 -0
  270. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/colors/scale-inferno.png +0 -0
  271. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/colors/scale-picnic.png +0 -0
  272. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/colors/scale-salinity.png +0 -0
  273. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/colors/scale-viridis.png +0 -0
  274. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/css/font-awesome-5.7.1.css +0 -0
  275. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/css/materialdesignicons.min.css +0 -0
  276. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/data/build-index.js +0 -0
  277. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/data/index.html +0 -0
  278. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/icon-atlas.png +0 -0
  279. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/images/SW_favicon.png +0 -0
  280. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/images/SW_logo_icon_white.png +0 -0
  281. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/images/SW_logo_icon_yellow.png +0 -0
  282. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/images/draw-icon.svg +0 -0
  283. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/images/icon-atlas-2.svg +0 -0
  284. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/images/icon-atlas-3.png +0 -0
  285. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/images/icon-atlas-3.xcf +0 -0
  286. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/images/icon-atlas-vehicles-leftside.png +0 -0
  287. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/images/icon-atlas-vehicles.png +0 -0
  288. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/images/icon-atlas.png +0 -0
  289. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/images/icon-atlas.svg +0 -0
  290. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/images/logos/arc.png +0 -0
  291. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/images/logos/bmbf-logo.png +0 -0
  292. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/images/logos/dfg.jpg +0 -0
  293. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/images/logos/matsim-logo-blue.png +0 -0
  294. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/images/logos/matsim-logo-white.png +0 -0
  295. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/images/logos/metcouncil.png +0 -0
  296. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/images/logos/mtc.png +0 -0
  297. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/images/logos/mwcog.png +0 -0
  298. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/images/logos/ohiodot.png +0 -0
  299. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/images/logos/oregondot.png +0 -0
  300. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/images/logos/psrc.png +0 -0
  301. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/images/logos/sandag.jpg +0 -0
  302. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/images/logos/semcog.jpg +0 -0
  303. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/images/logos/sfcta-old.png +0 -0
  304. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/images/logos/sfcta.png +0 -0
  305. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/images/logos/tu-logo.png +0 -0
  306. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/images/logos/vsp-logo-300dpi.png +0 -0
  307. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/images/tile-icons/departure_board.svg +0 -0
  308. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/images/tile-icons/directions_bike.svg +0 -0
  309. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/images/tile-icons/directions_boat.svg +0 -0
  310. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/images/tile-icons/directions_bus.svg +0 -0
  311. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/images/tile-icons/directions_car.svg +0 -0
  312. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/images/tile-icons/directions_subway.svg +0 -0
  313. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/images/tile-icons/electric_car.svg +0 -0
  314. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/images/tile-icons/electric_rickshaw.svg +0 -0
  315. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/images/tile-icons/emoji_transportation.svg +0 -0
  316. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/images/tile-icons/ev_station.svg +0 -0
  317. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/images/tile-icons/group.svg +0 -0
  318. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/images/tile-icons/groups.svg +0 -0
  319. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/images/tile-icons/info.txt +0 -0
  320. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/images/tile-icons/local_gas_station.svg +0 -0
  321. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/images/tile-icons/local_parking.svg +0 -0
  322. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/images/tile-icons/local_shipping.svg +0 -0
  323. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/images/tile-icons/local_taxi.svg +0 -0
  324. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/images/tile-icons/motorcycle.svg +0 -0
  325. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/images/tile-icons/person.svg +0 -0
  326. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/images/tile-icons/route.svg +0 -0
  327. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/images/tile-icons/subway.svg +0 -0
  328. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/images/tile-icons/train.svg +0 -0
  329. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/images/tile-icons/transportation.svg +0 -0
  330. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/images/tile-icons/two_wheeler.svg +0 -0
  331. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/images/veh-curvy.png +0 -0
  332. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/images/veh-curvy2.png +0 -0
  333. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/images/veh-curvy3.png +0 -0
  334. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/images/veh-curvy5.png +0 -0
  335. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/map-styles/dark.json +0 -0
  336. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/map-styles/positron.json +0 -0
  337. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/sax-wasm.wasm +0 -0
  338. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/sql-wasm.wasm +0 -0
  339. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/tu-logo-circle.jpg +0 -0
  340. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/tu-logo-circle.png +0 -0
  341. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/tu-logo.png +0 -0
  342. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/webfonts/Firava.ttf +0 -0
  343. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/webfonts/fa-regular-400.eot +0 -0
  344. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/webfonts/fa-regular-400.svg +0 -0
  345. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/webfonts/fa-regular-400.ttf +0 -0
  346. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/webfonts/fa-regular-400.woff +0 -0
  347. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/webfonts/fa-regular-400.woff2 +0 -0
  348. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/webfonts/fa-solid-900.eot +0 -0
  349. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/webfonts/fa-solid-900.svg +0 -0
  350. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/webfonts/fa-solid-900.ttf +0 -0
  351. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/webfonts/fa-solid-900.woff +0 -0
  352. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/webfonts/fa-solid-900.woff2 +0 -0
  353. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/webfonts/figtree-italic-var.ttf +0 -0
  354. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/webfonts/figtree-var.ttf +0 -0
  355. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/zones/sandag.geojson.gz +0 -0
  356. {simwrapper-4.1.3 → simwrapper-4.1.4}/simwrapper/static/zones/zones.yaml +0 -0
  357. {simwrapper-4.1.3 → simwrapper-4.1.4}/tests/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: simwrapper
3
- Version: 4.1.3
3
+ Version: 4.1.4
4
4
  Summary: SimWrapper command line tools
5
5
  Project-URL: Homepage, https://docs.simwrapper.app
6
6
  Project-URL: Repository, https://github.com/simwrapper/simwrapper-python-tools
@@ -1,5 +1,5 @@
1
1
  [project]
2
- version = "4.1.3"
2
+ version = "4.1.4"
3
3
  name = "simwrapper"
4
4
  description = "SimWrapper command line tools"
5
5
  readme = "README.md"
@@ -1 +1 @@
1
- [data-v-3d3d9829]:root{--bg: #edebe4;--bgBold: #ffffff;--bgBrowser: #7c839f;--bgCardFrame: white;--bgCardFrame2: #f8f8f8;--bgCream: #eef2ec;--bgCream2: #dddcd7;--bgCream3: #dddce7;--bgCream4: #e4e3f4;--bgCream5: #f8f8f8;--bgIconBar: #575462;--bgError: #fea;--bgDashboard: #e3e3e0;--bgDashboardHeader: #3b4a72;--bgHideButton: #ece9f5;--bgHover: #eaeaea;--bgHover2: #9191bd;--bgLayerPanel: linear-gradient(150deg, #d5dcf1, #dbf2ea);--bgPanel: #fff;--bgPanel2: #ededed;--bgPanel3: #e4e4e4;--bgMapPanel: #fff;--bgMapWater: #e6eaf1;--bgTag: #fdffa3;--bgSplash: #eaeaef;--bgSplashPage: linear-gradient(25deg, #ebe9f4, #e4ebf7, #e0f4f7);--bgScrollbar: #888888aa;--bgTabBanner: linear-gradient(150deg, #345be6, #29d299);--bgTreeItem: #d9f5cb;--gradientEthereal: linear-gradient(45deg, #ecf2ff, #f0f1fd, #e6f7fb);--highlightActiveSection: #65d68f;--text: #363636;--textBold: #12063a;--textBlack: #060606;--textFancy: #564c9d;--textPale: #777777;--textVeryPale: #bbbbcc;--textPanel: #616672;--link: #196096;--linkHover: #079f6f;--linkActive: #bbf1ca;--iconShowHide: #dbf2ea;--shadowMode: 0px 0px 6px 6px rgba(0, 0, 0, .12);--borderThin: 1px solid #cce;--borderDashboard: 3px solid #d4dbdd;--borderFaint: 1px solid #cccccc;--borderSymbology: 1px solid #b3c0c4;--beige: #ffeead;--yellow: $colorYellow;--splitPanel: #d4dbdd;--borderColor: #66666633;--borderZoomButtons: 1px solid var(--borderColor);--scaleBorder: 1px solid #7974a0;--scaleBg: #ffffff;--sliderThumb: #29d09a;--yellowHighlight: #20513a;--opacityLogo: opacity(70%);--opacityAttribution: opacity(70%)}.dark-mode[data-v-3d3d9829]{--bg: #2d3133;--bgBold: #000414;--bgBrowser: #56696e;--bgCardFrame: #14141a;--bgCardFrame2: #202028;--bgCream: #282c2f;--bgCream2: #33373a;--bgCream3: #344857;--bgCream4: #304453;--bgCream5: #344857;--bgDashboard: #222a35;--bgDashboardHeader: #304163;--bgError: #fea;--bgHideButton: #32455a;--bgHover: #433b53;--bgHover2: #34618b;--bgLayerPanel: linear-gradient(150deg, #3d3753, #183d36);--bgMapPanel: #181818;--bgMapWater: #1e3048;--bgPanel: #2a3c4f;--bgPanel2: #32455a;--bgPanel3: #2f3b49;--bgScrollbar: #77777788;--bgSplash: #2a3c4f;--bgSplashPage: linear-gradient(25deg, #142e3c, #28242e);--bgTabBanner: linear-gradient(150deg, #253845, #1d3486);--bgTag: #2a3c4f;--bgTreeItem: #216a6d;--gradientEthereal: linear-gradient(45deg, #1c1f26, #1e2a36, #1d313c);--highlightActiveSection: #65d68f;--text: #c6c1b9;--textBold: white;--textBlack: white;--textFancy: #a5c4e2;--textPale: #aaaaaa;--textPanel: #9caccf;--textVeryPale: #778;--link: #65d68f;--linkHover: #a8ffc8;--linkActive: #145240;--shadowMode: 0px 0px 6px 6px rgba(192, 192, 255, .3);--borderThin: 1px solid #447;--borderDashboard: 3px solid #616169;--borderSymbology: 1px solid #616169;--borderFaint: 1px solid #484848;--splitPanel: #2e343f;--borderColor: #00000088;--borderZoomButtons: 1px solid #777;--scaleBorder: 1px solid #728cab;--scaleBg: #283d50;--opacityLogo: opacity(40%);--opacityAttribution: opacity(60%);--yellowHighlight: #edf6ae;--iconShowHide: #183d36}#legend-container[data-v-3d3d9829]{display:flex;flex-direction:row;color:var(--text);background-color:var(--bgPanel);padding:0rem .5rem;border:solid 1px rgba(161,160,160,.781);border-radius:2px}.legend-item[data-v-3d3d9829]{display:flex;flex-direction:row;font-size:.8rem}.legend-col[data-v-3d3d9829]{width:1rem;margin-top:.6rem;height:2rem}p.title[data-v-3d3d9829]{color:var(--text);font-size:.9rem;text-transform:uppercase;margin-bottom:1rem;margin-top:1.1rem;margin-right:2rem;font-weight:400}.legend-element1[data-v-3d3d9829]{font-size:1.2rem;font-weight:700;margin-right:.8rem;margin-left:-1.75rem;margin-top:.6rem}.legend-element2[data-v-3d3d9829]{font-size:1.2rem;font-weight:700;margin-right:.8rem;margin-left:-.8rem;margin-top:.6rem}.time-slider[data-v-9c65b545]{max-width:100%;padding:0 1rem}#scale-container[data-v-05aee5dc]{display:flex;flex-direction:row;color:var(--text);background-color:var(--bgPanel);padding:0rem .5rem;border:solid 1px rgba(161,160,160,.7);border-radius:4px}.scale-item[data-v-05aee5dc]{display:flex;flex-direction:row;margin-bottom:.25rem}p.title[data-v-05aee5dc]{color:var(--text);font-size:.9rem;text-transform:uppercase;margin-bottom:1rem;margin-top:1.1rem;margin-right:1rem;font-weight:400}.scale-element[data-v-05aee5dc]{position:relative;font-weight:400;margin-right:1rem;margin-top:.7rem}.scale-scale[data-v-05aee5dc]{position:relative;font-variant:small-caps;font-weight:400;margin-right:.2rem;margin-top:.7rem}[data-v-e8e0a0de]:root{--bg: #edebe4;--bgBold: #ffffff;--bgBrowser: #7c839f;--bgCardFrame: white;--bgCardFrame2: #f8f8f8;--bgCream: #eef2ec;--bgCream2: #dddcd7;--bgCream3: #dddce7;--bgCream4: #e4e3f4;--bgCream5: #f8f8f8;--bgIconBar: #575462;--bgError: #fea;--bgDashboard: #e3e3e0;--bgDashboardHeader: #3b4a72;--bgHideButton: #ece9f5;--bgHover: #eaeaea;--bgHover2: #9191bd;--bgLayerPanel: linear-gradient(150deg, #d5dcf1, #dbf2ea);--bgPanel: #fff;--bgPanel2: #ededed;--bgPanel3: #e4e4e4;--bgMapPanel: #fff;--bgMapWater: #e6eaf1;--bgTag: #fdffa3;--bgSplash: #eaeaef;--bgSplashPage: linear-gradient(25deg, #ebe9f4, #e4ebf7, #e0f4f7);--bgScrollbar: #888888aa;--bgTabBanner: linear-gradient(150deg, #345be6, #29d299);--bgTreeItem: #d9f5cb;--gradientEthereal: linear-gradient(45deg, #ecf2ff, #f0f1fd, #e6f7fb);--highlightActiveSection: #65d68f;--text: #363636;--textBold: #12063a;--textBlack: #060606;--textFancy: #564c9d;--textPale: #777777;--textVeryPale: #bbbbcc;--textPanel: #616672;--link: #196096;--linkHover: #079f6f;--linkActive: #bbf1ca;--iconShowHide: #dbf2ea;--shadowMode: 0px 0px 6px 6px rgba(0, 0, 0, .12);--borderThin: 1px solid #cce;--borderDashboard: 3px solid #d4dbdd;--borderFaint: 1px solid #cccccc;--borderSymbology: 1px solid #b3c0c4;--beige: #ffeead;--yellow: $colorYellow;--splitPanel: #d4dbdd;--borderColor: #66666633;--borderZoomButtons: 1px solid var(--borderColor);--scaleBorder: 1px solid #7974a0;--scaleBg: #ffffff;--sliderThumb: #29d09a;--yellowHighlight: #20513a;--opacityLogo: opacity(70%);--opacityAttribution: opacity(70%)}.dark-mode[data-v-e8e0a0de]{--bg: #2d3133;--bgBold: #000414;--bgBrowser: #56696e;--bgCardFrame: #14141a;--bgCardFrame2: #202028;--bgCream: #282c2f;--bgCream2: #33373a;--bgCream3: #344857;--bgCream4: #304453;--bgCream5: #344857;--bgDashboard: #222a35;--bgDashboardHeader: #304163;--bgError: #fea;--bgHideButton: #32455a;--bgHover: #433b53;--bgHover2: #34618b;--bgLayerPanel: linear-gradient(150deg, #3d3753, #183d36);--bgMapPanel: #181818;--bgMapWater: #1e3048;--bgPanel: #2a3c4f;--bgPanel2: #32455a;--bgPanel3: #2f3b49;--bgScrollbar: #77777788;--bgSplash: #2a3c4f;--bgSplashPage: linear-gradient(25deg, #142e3c, #28242e);--bgTabBanner: linear-gradient(150deg, #253845, #1d3486);--bgTag: #2a3c4f;--bgTreeItem: #216a6d;--gradientEthereal: linear-gradient(45deg, #1c1f26, #1e2a36, #1d313c);--highlightActiveSection: #65d68f;--text: #c6c1b9;--textBold: white;--textBlack: white;--textFancy: #a5c4e2;--textPale: #aaaaaa;--textPanel: #9caccf;--textVeryPale: #778;--link: #65d68f;--linkHover: #a8ffc8;--linkActive: #145240;--shadowMode: 0px 0px 6px 6px rgba(192, 192, 255, .3);--borderThin: 1px solid #447;--borderDashboard: 3px solid #616169;--borderSymbology: 1px solid #616169;--borderFaint: 1px solid #484848;--splitPanel: #2e343f;--borderColor: #00000088;--borderZoomButtons: 1px solid #777;--scaleBorder: 1px solid #728cab;--scaleBg: #283d50;--opacityLogo: opacity(40%);--opacityAttribution: opacity(60%);--yellowHighlight: #edf6ae;--iconShowHide: #183d36}.time-slider[data-v-e8e0a0de]{margin:-.75rem .5rem .5rem}p[data-v-e8e0a0de]{font-size:1rem;margin:0;margin-left:-.4rem;padding:0;line-height:.5rem}.time-slider[data-v-c2cef25b]{max-width:100%;padding:0 1rem}[data-v-080d3d16]:root{--bg: #edebe4;--bgBold: #ffffff;--bgBrowser: #7c839f;--bgCardFrame: white;--bgCardFrame2: #f8f8f8;--bgCream: #eef2ec;--bgCream2: #dddcd7;--bgCream3: #dddce7;--bgCream4: #e4e3f4;--bgCream5: #f8f8f8;--bgIconBar: #575462;--bgError: #fea;--bgDashboard: #e3e3e0;--bgDashboardHeader: #3b4a72;--bgHideButton: #ece9f5;--bgHover: #eaeaea;--bgHover2: #9191bd;--bgLayerPanel: linear-gradient(150deg, #d5dcf1, #dbf2ea);--bgPanel: #fff;--bgPanel2: #ededed;--bgPanel3: #e4e4e4;--bgMapPanel: #fff;--bgMapWater: #e6eaf1;--bgTag: #fdffa3;--bgSplash: #eaeaef;--bgSplashPage: linear-gradient(25deg, #ebe9f4, #e4ebf7, #e0f4f7);--bgScrollbar: #888888aa;--bgTabBanner: linear-gradient(150deg, #345be6, #29d299);--bgTreeItem: #d9f5cb;--gradientEthereal: linear-gradient(45deg, #ecf2ff, #f0f1fd, #e6f7fb);--highlightActiveSection: #65d68f;--text: #363636;--textBold: #12063a;--textBlack: #060606;--textFancy: #564c9d;--textPale: #777777;--textVeryPale: #bbbbcc;--textPanel: #616672;--link: #196096;--linkHover: #079f6f;--linkActive: #bbf1ca;--iconShowHide: #dbf2ea;--shadowMode: 0px 0px 6px 6px rgba(0, 0, 0, .12);--borderThin: 1px solid #cce;--borderDashboard: 3px solid #d4dbdd;--borderFaint: 1px solid #cccccc;--borderSymbology: 1px solid #b3c0c4;--beige: #ffeead;--yellow: $colorYellow;--splitPanel: #d4dbdd;--borderColor: #66666633;--borderZoomButtons: 1px solid var(--borderColor);--scaleBorder: 1px solid #7974a0;--scaleBg: #ffffff;--sliderThumb: #29d09a;--yellowHighlight: #20513a;--opacityLogo: opacity(70%);--opacityAttribution: opacity(70%)}.dark-mode[data-v-080d3d16]{--bg: #2d3133;--bgBold: #000414;--bgBrowser: #56696e;--bgCardFrame: #14141a;--bgCardFrame2: #202028;--bgCream: #282c2f;--bgCream2: #33373a;--bgCream3: #344857;--bgCream4: #304453;--bgCream5: #344857;--bgDashboard: #222a35;--bgDashboardHeader: #304163;--bgError: #fea;--bgHideButton: #32455a;--bgHover: #433b53;--bgHover2: #34618b;--bgLayerPanel: linear-gradient(150deg, #3d3753, #183d36);--bgMapPanel: #181818;--bgMapWater: #1e3048;--bgPanel: #2a3c4f;--bgPanel2: #32455a;--bgPanel3: #2f3b49;--bgScrollbar: #77777788;--bgSplash: #2a3c4f;--bgSplashPage: linear-gradient(25deg, #142e3c, #28242e);--bgTabBanner: linear-gradient(150deg, #253845, #1d3486);--bgTag: #2a3c4f;--bgTreeItem: #216a6d;--gradientEthereal: linear-gradient(45deg, #1c1f26, #1e2a36, #1d313c);--highlightActiveSection: #65d68f;--text: #c6c1b9;--textBold: white;--textBlack: white;--textFancy: #a5c4e2;--textPale: #aaaaaa;--textPanel: #9caccf;--textVeryPale: #778;--link: #65d68f;--linkHover: #a8ffc8;--linkActive: #145240;--shadowMode: 0px 0px 6px 6px rgba(192, 192, 255, .3);--borderThin: 1px solid #447;--borderDashboard: 3px solid #616169;--borderSymbology: 1px solid #616169;--borderFaint: 1px solid #484848;--splitPanel: #2e343f;--borderColor: #00000088;--borderZoomButtons: 1px solid #777;--scaleBorder: 1px solid #728cab;--scaleBg: #283d50;--opacityLogo: opacity(40%);--opacityAttribution: opacity(60%);--yellowHighlight: #edf6ae;--iconShowHide: #183d36}h3[data-v-080d3d16]{margin:0}h4[data-v-080d3d16]{margin-left:3px}.mycomponent[data-v-080d3d16]{display:grid;grid-template-columns:auto 1fr;grid-template-rows:1fr auto}.status-blob[data-v-080d3d16]{position:absolute;bottom:.5rem;left:.5rem;background-color:#fff;padding:.75rem 1.5rem;z-index:5;filter:drop-shadow(0px 3px 5px rgba(34,34,34,.4));font-size:1.2rem}.map-container[data-v-080d3d16]{height:100%;min-height:10rem;grid-column:1/3;grid-row:1/3;display:flex;flex-direction:column;position:relative}.mymap[data-v-080d3d16]{flex:1}.mytitle[data-v-080d3d16]{margin-left:10px;color:var(--text)}.details[data-v-080d3d16]{font-size:12px;margin-bottom:auto;margin-top:auto}.info-header[data-v-080d3d16]{padding:.5rem 0rem}.widgets[data-v-080d3d16]{color:var(--text);display:flex;flex-direction:row;user-select:none;grid-column:1/3}.widget-column[data-v-080d3d16]{margin-right:1rem;display:flex;flex-direction:column}.status-blob p[data-v-080d3d16]{color:#555}.lower-right[data-v-080d3d16]{position:absolute;bottom:3rem;right:.5rem;display:flex;z-index:1}.lower-left[data-v-080d3d16]{width:12rem;position:absolute;left:.5rem;bottom:.5rem;display:flex;flex-direction:column;z-index:1;background-color:var(--bgPanel);opacity:.97;border:solid 1px rgba(161,160,160,.781);border-radius:2px;padding:3px 4px}.complication[data-v-080d3d16]{margin:0rem 0rem 0rem .25rem}.widget-column button[data-v-080d3d16]{margin:1px 0}.heading[data-v-080d3d16]{font-weight:700;text-align:left;margin-top:.5rem}.subheading[data-v-080d3d16]{text-align:left;font-size:.9rem;line-height:1rem;margin:.25rem 0 0rem .5rem}.description[data-v-080d3d16]{margin-top:0rem;padding:0rem .25rem}.hide-button[data-v-080d3d16]{grid-column:1/2;grid-row:2/3;margin:auto auto .5rem 16.5rem;z-index:20}.hide-toggle-button[data-v-080d3d16]{margin-left:.25rem}.left-panel[data-v-080d3d16]{z-index:2;position:absolute;top:0rem;left:0;display:flex;flex-direction:row;pointer-events:auto;max-height:50%;max-width:50%;width:18rem}.mapboxgl-popup-content[data-v-080d3d16]{padding:0 20px 0 0;opacity:.95;box-shadow:0 0 3px #00000080}.white-box[data-v-080d3d16]{padding:.5rem .25rem}.zoom-buttons[data-v-080d3d16]{position:absolute;top:.3rem;right:.3rem;z-index:1}.checkbox[data-v-080d3d16]{font-size:.9rem;margin-bottom:2px}.checkbox[data-v-080d3d16]:hover{color:var(--textFancy)}.xtime-slider[data-v-080d3d16]{margin-top:-.25rem}
1
+ [data-v-3d3d9829]:root{--bg: #edebe4;--bgBold: #ffffff;--bgBrowser: #7c839f;--bgCardFrame: white;--bgCardFrame2: #f8f8f8;--bgCream: #eef2ec;--bgCream2: #dddcd7;--bgCream3: #dddce7;--bgCream4: #e4e3f4;--bgCream5: #f8f8f8;--bgIconBar: #575462;--bgError: #fea;--bgDashboard: #e3e3e0;--bgDashboardHeader: #3b4a72;--bgHideButton: #ece9f5;--bgHover: #eaeaea;--bgHover2: #9191bd;--bgLayerPanel: linear-gradient(150deg, #d5dcf1, #dbf2ea);--bgPanel: #fff;--bgPanel2: #ededed;--bgPanel3: #e4e4e4;--bgMapPanel: #fff;--bgMapWater: #e6eaf1;--bgTag: #fdffa3;--bgSplash: #eaeaef;--bgSplashPage: linear-gradient(25deg, #ebe9f4, #e4ebf7, #e0f4f7);--bgScrollbar: #888888aa;--bgTabBanner: linear-gradient(150deg, #345be6, #29d299);--bgTreeItem: #d9f5cb;--gradientEthereal: linear-gradient(45deg, #ecf2ff, #f0f1fd, #e6f7fb);--highlightActiveSection: #65d68f;--text: #363636;--textBold: #12063a;--textBlack: #060606;--textFancy: #564c9d;--textPale: #777777;--textVeryPale: #bbbbcc;--textPanel: #616672;--link: #196096;--linkHover: #079f6f;--linkActive: #bbf1ca;--iconShowHide: #dbf2ea;--shadowMode: 0px 0px 6px 6px rgba(0, 0, 0, .12);--borderThin: 1px solid #cce;--borderDashboard: 3px solid #d4dbdd;--borderFaint: 1px solid #cccccc;--borderSymbology: 1px solid #b3c0c4;--beige: #ffeead;--yellow: $colorYellow;--splitPanel: #d4dbdd;--borderColor: #66666633;--borderZoomButtons: 1px solid var(--borderColor);--scaleBorder: 1px solid #7974a0;--scaleBg: #ffffff;--sliderThumb: #29d09a;--yellowHighlight: #20513a;--opacityLogo: opacity(70%);--opacityAttribution: opacity(70%)}.dark-mode[data-v-3d3d9829]{--bg: #2d3133;--bgBold: #000414;--bgBrowser: #56696e;--bgCardFrame: #14141a;--bgCardFrame2: #202028;--bgCream: #282c2f;--bgCream2: #33373a;--bgCream3: #344857;--bgCream4: #304453;--bgCream5: #344857;--bgDashboard: #222a35;--bgDashboardHeader: #304163;--bgError: #fea;--bgHideButton: #32455a;--bgHover: #433b53;--bgHover2: #34618b;--bgLayerPanel: linear-gradient(150deg, #3d3753, #183d36);--bgMapPanel: #181818;--bgMapWater: #1e3048;--bgPanel: #2a3c4f;--bgPanel2: #32455a;--bgPanel3: #2f3b49;--bgScrollbar: #77777788;--bgSplash: #2a3c4f;--bgSplashPage: linear-gradient(25deg, #142e3c, #28242e);--bgTabBanner: linear-gradient(150deg, #253845, #1d3486);--bgTag: #2a3c4f;--bgTreeItem: #216a6d;--gradientEthereal: linear-gradient(45deg, #1c1f26, #1e2a36, #1d313c);--highlightActiveSection: #65d68f;--text: #c6c1b9;--textBold: white;--textBlack: white;--textFancy: #a5c4e2;--textPale: #aaaaaa;--textPanel: #9caccf;--textVeryPale: #778;--link: #65d68f;--linkHover: #a8ffc8;--linkActive: #145240;--shadowMode: 0px 0px 6px 6px rgba(192, 192, 255, .3);--borderThin: 1px solid #447;--borderDashboard: 3px solid #616169;--borderSymbology: 1px solid #616169;--borderFaint: 1px solid #484848;--splitPanel: #2e343f;--borderColor: #00000088;--borderZoomButtons: 1px solid #777;--scaleBorder: 1px solid #728cab;--scaleBg: #283d50;--opacityLogo: opacity(40%);--opacityAttribution: opacity(60%);--yellowHighlight: #edf6ae;--iconShowHide: #183d36}#legend-container[data-v-3d3d9829]{display:flex;flex-direction:row;color:var(--text);background-color:var(--bgPanel);padding:0rem .5rem;border:solid 1px rgba(161,160,160,.781);border-radius:2px}.legend-item[data-v-3d3d9829]{display:flex;flex-direction:row;font-size:.8rem}.legend-col[data-v-3d3d9829]{width:1rem;margin-top:.6rem;height:2rem}p.title[data-v-3d3d9829]{color:var(--text);font-size:.9rem;text-transform:uppercase;margin-bottom:1rem;margin-top:1.1rem;margin-right:2rem;font-weight:400}.legend-element1[data-v-3d3d9829]{font-size:1.2rem;font-weight:700;margin-right:.8rem;margin-left:-1.75rem;margin-top:.6rem}.legend-element2[data-v-3d3d9829]{font-size:1.2rem;font-weight:700;margin-right:.8rem;margin-left:-.8rem;margin-top:.6rem}.time-slider[data-v-9c65b545]{max-width:100%;padding:0 1rem}#scale-container[data-v-05aee5dc]{display:flex;flex-direction:row;color:var(--text);background-color:var(--bgPanel);padding:0rem .5rem;border:solid 1px rgba(161,160,160,.7);border-radius:4px}.scale-item[data-v-05aee5dc]{display:flex;flex-direction:row;margin-bottom:.25rem}p.title[data-v-05aee5dc]{color:var(--text);font-size:.9rem;text-transform:uppercase;margin-bottom:1rem;margin-top:1.1rem;margin-right:1rem;font-weight:400}.scale-element[data-v-05aee5dc]{position:relative;font-weight:400;margin-right:1rem;margin-top:.7rem}.scale-scale[data-v-05aee5dc]{position:relative;font-variant:small-caps;font-weight:400;margin-right:.2rem;margin-top:.7rem}[data-v-e8e0a0de]:root{--bg: #edebe4;--bgBold: #ffffff;--bgBrowser: #7c839f;--bgCardFrame: white;--bgCardFrame2: #f8f8f8;--bgCream: #eef2ec;--bgCream2: #dddcd7;--bgCream3: #dddce7;--bgCream4: #e4e3f4;--bgCream5: #f8f8f8;--bgIconBar: #575462;--bgError: #fea;--bgDashboard: #e3e3e0;--bgDashboardHeader: #3b4a72;--bgHideButton: #ece9f5;--bgHover: #eaeaea;--bgHover2: #9191bd;--bgLayerPanel: linear-gradient(150deg, #d5dcf1, #dbf2ea);--bgPanel: #fff;--bgPanel2: #ededed;--bgPanel3: #e4e4e4;--bgMapPanel: #fff;--bgMapWater: #e6eaf1;--bgTag: #fdffa3;--bgSplash: #eaeaef;--bgSplashPage: linear-gradient(25deg, #ebe9f4, #e4ebf7, #e0f4f7);--bgScrollbar: #888888aa;--bgTabBanner: linear-gradient(150deg, #345be6, #29d299);--bgTreeItem: #d9f5cb;--gradientEthereal: linear-gradient(45deg, #ecf2ff, #f0f1fd, #e6f7fb);--highlightActiveSection: #65d68f;--text: #363636;--textBold: #12063a;--textBlack: #060606;--textFancy: #564c9d;--textPale: #777777;--textVeryPale: #bbbbcc;--textPanel: #616672;--link: #196096;--linkHover: #079f6f;--linkActive: #bbf1ca;--iconShowHide: #dbf2ea;--shadowMode: 0px 0px 6px 6px rgba(0, 0, 0, .12);--borderThin: 1px solid #cce;--borderDashboard: 3px solid #d4dbdd;--borderFaint: 1px solid #cccccc;--borderSymbology: 1px solid #b3c0c4;--beige: #ffeead;--yellow: $colorYellow;--splitPanel: #d4dbdd;--borderColor: #66666633;--borderZoomButtons: 1px solid var(--borderColor);--scaleBorder: 1px solid #7974a0;--scaleBg: #ffffff;--sliderThumb: #29d09a;--yellowHighlight: #20513a;--opacityLogo: opacity(70%);--opacityAttribution: opacity(70%)}.dark-mode[data-v-e8e0a0de]{--bg: #2d3133;--bgBold: #000414;--bgBrowser: #56696e;--bgCardFrame: #14141a;--bgCardFrame2: #202028;--bgCream: #282c2f;--bgCream2: #33373a;--bgCream3: #344857;--bgCream4: #304453;--bgCream5: #344857;--bgDashboard: #222a35;--bgDashboardHeader: #304163;--bgError: #fea;--bgHideButton: #32455a;--bgHover: #433b53;--bgHover2: #34618b;--bgLayerPanel: linear-gradient(150deg, #3d3753, #183d36);--bgMapPanel: #181818;--bgMapWater: #1e3048;--bgPanel: #2a3c4f;--bgPanel2: #32455a;--bgPanel3: #2f3b49;--bgScrollbar: #77777788;--bgSplash: #2a3c4f;--bgSplashPage: linear-gradient(25deg, #142e3c, #28242e);--bgTabBanner: linear-gradient(150deg, #253845, #1d3486);--bgTag: #2a3c4f;--bgTreeItem: #216a6d;--gradientEthereal: linear-gradient(45deg, #1c1f26, #1e2a36, #1d313c);--highlightActiveSection: #65d68f;--text: #c6c1b9;--textBold: white;--textBlack: white;--textFancy: #a5c4e2;--textPale: #aaaaaa;--textPanel: #9caccf;--textVeryPale: #778;--link: #65d68f;--linkHover: #a8ffc8;--linkActive: #145240;--shadowMode: 0px 0px 6px 6px rgba(192, 192, 255, .3);--borderThin: 1px solid #447;--borderDashboard: 3px solid #616169;--borderSymbology: 1px solid #616169;--borderFaint: 1px solid #484848;--splitPanel: #2e343f;--borderColor: #00000088;--borderZoomButtons: 1px solid #777;--scaleBorder: 1px solid #728cab;--scaleBg: #283d50;--opacityLogo: opacity(40%);--opacityAttribution: opacity(60%);--yellowHighlight: #edf6ae;--iconShowHide: #183d36}.time-slider[data-v-e8e0a0de]{margin:-.75rem .5rem .5rem}p[data-v-e8e0a0de]{font-size:1rem;margin:0;margin-left:-.4rem;padding:0;line-height:.5rem}.time-slider[data-v-c2cef25b]{max-width:100%;padding:0 1rem}[data-v-0f050fd0]:root{--bg: #edebe4;--bgBold: #ffffff;--bgBrowser: #7c839f;--bgCardFrame: white;--bgCardFrame2: #f8f8f8;--bgCream: #eef2ec;--bgCream2: #dddcd7;--bgCream3: #dddce7;--bgCream4: #e4e3f4;--bgCream5: #f8f8f8;--bgIconBar: #575462;--bgError: #fea;--bgDashboard: #e3e3e0;--bgDashboardHeader: #3b4a72;--bgHideButton: #ece9f5;--bgHover: #eaeaea;--bgHover2: #9191bd;--bgLayerPanel: linear-gradient(150deg, #d5dcf1, #dbf2ea);--bgPanel: #fff;--bgPanel2: #ededed;--bgPanel3: #e4e4e4;--bgMapPanel: #fff;--bgMapWater: #e6eaf1;--bgTag: #fdffa3;--bgSplash: #eaeaef;--bgSplashPage: linear-gradient(25deg, #ebe9f4, #e4ebf7, #e0f4f7);--bgScrollbar: #888888aa;--bgTabBanner: linear-gradient(150deg, #345be6, #29d299);--bgTreeItem: #d9f5cb;--gradientEthereal: linear-gradient(45deg, #ecf2ff, #f0f1fd, #e6f7fb);--highlightActiveSection: #65d68f;--text: #363636;--textBold: #12063a;--textBlack: #060606;--textFancy: #564c9d;--textPale: #777777;--textVeryPale: #bbbbcc;--textPanel: #616672;--link: #196096;--linkHover: #079f6f;--linkActive: #bbf1ca;--iconShowHide: #dbf2ea;--shadowMode: 0px 0px 6px 6px rgba(0, 0, 0, .12);--borderThin: 1px solid #cce;--borderDashboard: 3px solid #d4dbdd;--borderFaint: 1px solid #cccccc;--borderSymbology: 1px solid #b3c0c4;--beige: #ffeead;--yellow: $colorYellow;--splitPanel: #d4dbdd;--borderColor: #66666633;--borderZoomButtons: 1px solid var(--borderColor);--scaleBorder: 1px solid #7974a0;--scaleBg: #ffffff;--sliderThumb: #29d09a;--yellowHighlight: #20513a;--opacityLogo: opacity(70%);--opacityAttribution: opacity(70%)}.dark-mode[data-v-0f050fd0]{--bg: #2d3133;--bgBold: #000414;--bgBrowser: #56696e;--bgCardFrame: #14141a;--bgCardFrame2: #202028;--bgCream: #282c2f;--bgCream2: #33373a;--bgCream3: #344857;--bgCream4: #304453;--bgCream5: #344857;--bgDashboard: #222a35;--bgDashboardHeader: #304163;--bgError: #fea;--bgHideButton: #32455a;--bgHover: #433b53;--bgHover2: #34618b;--bgLayerPanel: linear-gradient(150deg, #3d3753, #183d36);--bgMapPanel: #181818;--bgMapWater: #1e3048;--bgPanel: #2a3c4f;--bgPanel2: #32455a;--bgPanel3: #2f3b49;--bgScrollbar: #77777788;--bgSplash: #2a3c4f;--bgSplashPage: linear-gradient(25deg, #142e3c, #28242e);--bgTabBanner: linear-gradient(150deg, #253845, #1d3486);--bgTag: #2a3c4f;--bgTreeItem: #216a6d;--gradientEthereal: linear-gradient(45deg, #1c1f26, #1e2a36, #1d313c);--highlightActiveSection: #65d68f;--text: #c6c1b9;--textBold: white;--textBlack: white;--textFancy: #a5c4e2;--textPale: #aaaaaa;--textPanel: #9caccf;--textVeryPale: #778;--link: #65d68f;--linkHover: #a8ffc8;--linkActive: #145240;--shadowMode: 0px 0px 6px 6px rgba(192, 192, 255, .3);--borderThin: 1px solid #447;--borderDashboard: 3px solid #616169;--borderSymbology: 1px solid #616169;--borderFaint: 1px solid #484848;--splitPanel: #2e343f;--borderColor: #00000088;--borderZoomButtons: 1px solid #777;--scaleBorder: 1px solid #728cab;--scaleBg: #283d50;--opacityLogo: opacity(40%);--opacityAttribution: opacity(60%);--yellowHighlight: #edf6ae;--iconShowHide: #183d36}h3[data-v-0f050fd0]{margin:0}h4[data-v-0f050fd0]{margin-left:3px}.mycomponent[data-v-0f050fd0]{display:grid;grid-template-columns:auto 1fr;grid-template-rows:1fr auto}.status-blob[data-v-0f050fd0]{position:absolute;bottom:.5rem;left:.5rem;background-color:#fff;padding:.75rem 1.5rem;z-index:5;filter:drop-shadow(0px 3px 5px rgba(34,34,34,.4));font-size:1.2rem}.map-container[data-v-0f050fd0]{height:100%;min-height:10rem;grid-column:1/3;grid-row:1/3;display:flex;flex-direction:column;position:relative}.mymap[data-v-0f050fd0]{flex:1}.mytitle[data-v-0f050fd0]{margin-left:10px;color:var(--text)}.details[data-v-0f050fd0]{font-size:12px;margin-bottom:auto;margin-top:auto}.info-header[data-v-0f050fd0]{padding:.5rem 0rem}.widgets[data-v-0f050fd0]{color:var(--text);display:flex;flex-direction:row;user-select:none;grid-column:1/3}.widget-column[data-v-0f050fd0]{margin-right:1rem;display:flex;flex-direction:column}.status-blob p[data-v-0f050fd0]{color:#555}.lower-right[data-v-0f050fd0]{position:absolute;bottom:3rem;right:.5rem;display:flex;z-index:1}.lower-left[data-v-0f050fd0]{width:12rem;position:absolute;left:.5rem;bottom:.5rem;display:flex;flex-direction:column;z-index:1;background-color:var(--bgPanel);opacity:.97;border:solid 1px rgba(161,160,160,.781);border-radius:2px;padding:3px 4px}.complication[data-v-0f050fd0]{margin:0rem 0rem 0rem .25rem}.widget-column button[data-v-0f050fd0]{margin:1px 0}.heading[data-v-0f050fd0]{font-weight:700;text-align:left;margin-top:.5rem}.subheading[data-v-0f050fd0]{text-align:left;font-size:.9rem;line-height:1rem;margin:.25rem 0 0rem .5rem}.description[data-v-0f050fd0]{margin-top:0rem;padding:0rem .25rem}.hide-button[data-v-0f050fd0]{grid-column:1/2;grid-row:2/3;margin:auto auto .5rem 16.5rem;z-index:20}.hide-toggle-button[data-v-0f050fd0]{margin-left:.25rem}.left-panel[data-v-0f050fd0]{z-index:2;position:absolute;top:0rem;left:0;display:flex;flex-direction:row;pointer-events:auto;max-height:50%;max-width:50%;width:18rem}.mapboxgl-popup-content[data-v-0f050fd0]{padding:0 20px 0 0;opacity:.95;box-shadow:0 0 3px #00000080}.white-box[data-v-0f050fd0]{padding:.5rem .25rem}.zoom-buttons[data-v-0f050fd0]{position:absolute;top:.3rem;right:.3rem;z-index:1}.checkbox[data-v-0f050fd0]{font-size:.9rem;margin-bottom:2px}.checkbox[data-v-0f050fd0]:hover{color:var(--textFancy)}.xtime-slider[data-v-0f050fd0]{margin-top:-.25rem}
@@ -0,0 +1 @@
1
+ import{d as c,n as h,g as d,C as f,S as y,m as g}from"./index-D3p5oi12.js";import{r as w}from"./index-emsa1Orl.js";import{l as F,c as L}from"./turf.es-BzqbG201.js";import{d as u}from"./index-DYqxQzaj.js";import{n as b}from"./nprogress-ByTl0lPP.js";import{p as v,C as x}from"./Coords-In7NRIX8.js";import{r as _}from"./index-C0WnpZCG.js";import{Y as k}from"./index-DFKcNkqO.js";import{C as M}from"./CollapsiblePanel-CD6PjB1X.js";import{Z as T}from"./ZoomButtons-D2uWsuQs.js";import{f as D,H as $}from"./HTTPFileSystem-WNrn1tPJ.js";import"./fxp-DjoqftHf.js";const z={messages:{en:{linewidth:"Line widths:",legend:"Legend:"},de:{linewidth:"Linienbreite:",legend:"Legende:"}}},O=c({name:"LegendBoxOD",i18n:z,props:{rows:{type:Array,required:!0}}});var V=function(){var e=this,i=e._self._c;return e._self._setupProxy,i("div",{attrs:{id:"legend-container"}},[i("p",{staticClass:"title"},[e._v(e._s(e.$t("legend")))]),e._l(e.rows,function(s){return i("div",{staticClass:"legend-item"},[typeof s=="string"&&s.includes("#")?i("div",{staticClass:"legend-col",style:{"background-color":s}}):e._e(),typeof s=="string"&&!s.includes("#")&&s=="↓"?i("div",{staticClass:"legend-element1"},[e._v(e._s(s))]):e._e(),typeof s=="string"&&!s.includes("#")&&s!="↓"?i("div",{staticClass:"legend-element2"},[e._v(e._s(s))]):e._e()])})],2)},j=[],A=h(O,V,j,!1,null,"3d3d9829");const E=A.exports,I=c({name:"LineFilterSlider",props:{initialValue:{required:!0},tooltip:{type:Boolean,default:!0}},data:t=>({sliderValue:0,options:{size:"is-small",indicator:!0,min:0,max:100,"tooltip-always":t.tooltip,tooltip:t.tooltip,data:[0,1,2,5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100,"Alle"]}}),mounted(){this.options["custom-formatter"]=t=>""+this.options.data[t],this.sliderValue=Number.isFinite(this.initialValue)?this.initialValue:0,this.sliderValue=this.options.data.includes(this.initialValue)?this.options.data.indexOf(this.initialValue):0,this.options.max=this.options.data.length-1},watch:{sliderValue(t){this.$emit("change",this.options.data[t])}}});var R=function(){var e=this,i=e._self._c;return e._self._setupProxy,i("b-slider",e._b({staticClass:"time-slider",attrs:{"tooltip-always":""},model:{value:e.sliderValue,callback:function(s){e.sliderValue=s},expression:"sliderValue"}},"b-slider",e.options,!1),e._l(e.options.data,function(s,o){return i("b-slider-tick",{key:o,attrs:{value:o}})}),1)},W=[],Y=h(I,R,W,!1,null,"9c65b545");const P=Y.exports,B={messages:{en:{linewidth:"Line widths:",legend:"Legend:",trips:"trips"},de:{linewidth:"Linienbreite:",legend:"Legende:",trips:"Fahrten"}}},X=c({name:"LineFilterSlider",i18n:B,props:{rows:{type:Array,required:!0}}});var G=function(){var e=this,i=e._self._c;return e._self._setupProxy,i("div",{attrs:{id:"scale-container"}},[i("p",{staticClass:"title"},[e._v(e._s(e.$t("linewidth")))]),i("div",{staticClass:"scale-element"},[e._v(e._s("|↔︎|"))]),i("div",{staticClass:"scale-scale"},[e._v(e._s(`~ ${this.rows[0]} `+e.$t("trips")))]),i("p")])},N=[],H=h(X,G,N,!1,null,"05aee5dc");const q=H.exports,Z=c({name:"TimeSliderX",components:{},props:{useRange:Boolean,all:String,stops:{type:Array,required:!0}},data:()=>({sliderValue:0}),computed:{allStops(){return[...this.all?[this.all]:[],...this.stops]},stopLabel(){return Array.isArray(this.sliderValue)?`${this.allStops[this.sliderValue[0]]} : ${this.allStops[this.sliderValue[1]]}`:this.allStops[this.sliderValue]}},watch:{useRange(t){t?this.sliderValue=[1,this.allStops.length-1]:this.sliderValue=this.sliderValue[0]},sliderValue(){const t=Array.isArray(this.sliderValue)?[this.allStops[this.sliderValue[0]],this.allStops[this.sliderValue[1]]]:this.allStops[this.sliderValue];this.$emit("change",t)}},mounted(){},methods:{}});var U=function(){var e=this,i=e._self._c;return e._self._setupProxy,i("div",{staticClass:"time-slider"},[i("b-slider",{attrs:{min:0,max:e.stops.length,tooltip:!1},model:{value:e.sliderValue,callback:function(s){e.sliderValue=s},expression:"sliderValue"}},e._l(e.allStops,function(s,o){return i("b-slider-tick",{key:s,attrs:{value:o}})}),1),i("p",[i("b",[e._v(e._s(e.stopLabel))])])],1)},K=[],J=h(Z,U,K,!1,null,"e8e0a0de");const Q=J.exports,ee=c({name:"ScaleSlider",props:{stops:{type:Array,required:!0},initialValue:{type:Number,required:!0},tooltip:{type:Boolean,default:!0}},data:t=>({sliderValue:1,options:{tooltip:t.tooltip,"tooltip-always":t.tooltip,min:0,size:"is-small",max:100,indicator:!0,data:[],"custom-formatter":{}}}),mounted(){this.options["custom-formatter"]=t=>""+this.options.data[t],this.options.max=this.stops.length-1,this.options.data=this.stops,this.sliderValue=this.stops.includes(this.initialValue)?this.stops.indexOf(this.initialValue):0},watch:{sliderValue(){this.sliderChangedEvent()}},methods:{sliderChangedEvent(){this.$emit("change",this.options.data[this.sliderValue])}}});var te=function(){var e=this,i=e._self._c;return e._self._setupProxy,e.options.data.length?i("b-slider",e._b({staticClass:"time-slider",model:{value:e.sliderValue,callback:function(s){e.sliderValue=s},expression:"sliderValue"}},"b-slider",e.options,!1),e._l(e.options.data,function(s,o){return i("b-slider-tick",{key:o,attrs:{value:o}})}),1):e._e()},ie=[],se=h(ee,te,ie,!1,null,"c2cef25b");const oe=se.exports;function ae(t){return new Worker("/assets/AggregateDatasetStreamer.worker-BAkFzLI9.js",{name:t?.name})}const re={messages:{en:{legend:"Legend:",lineWidth:"Line width:",lineWidths:"Line widths",hide:"Hide smaller than",time:"Filter",duration:"Duration",circle:"Centroids",showCentroids:"Show centroids",showNumbers:"Show totals",total:"Totals for",origins:"Origins",dest:"Destinations"},de:{legend:"Legende:",lineWidth:"Line width",lineWidths:"Line widths",hide:"Hide smaller than",time:"Filter",duration:"Duration",circle:"Centroids",showCentroids:"Show centroids",showNumbers:"Show totals",total:"Totals for",origins:"Origins",dest:"Destinations"}}},C="/",l=d.state.locale.startsWith("de")?"Alle >>":"All >>",ne=0,S=[1,3,5,10,25,50,100,150,200,300,400,450,500,1e3,5e3],le=c({name:"AggregateOD",i18n:re,components:{CollapsiblePanel:M,LegendBox:E,LineFilterSlider:P,ScaleBox:q,ScaleSlider:oe,TimeSlider:Q,ZoomButtons:T},props:{root:{type:String,required:!0},subfolder:{type:String,required:!0},yamlConfig:String,config:Object,thumbnail:Boolean},data:()=>({globalState:d.state,isFinishedLoading:!1,myState:{subfolder:"",yamlConfig:"",thumbnail:!1},vizDetails:{csvFile:"",shpFile:"",dbfFile:"",projection:"",scaleFactor:1,title:"",description:"",mapIsIndependent:!1},standaloneYAMLconfig:{csvFile:"",shpFile:"",dbfFile:"",projection:"",scaleFactor:1,title:"",description:"",mapIsIndependent:!1},YAMLrequirementsOD:{shpFile:"",dbfFile:"",csvFile:"",projection:"",scaleFactor:1},containerId:`c${Math.floor(1e12*Math.random())}`,mapId:`map-c${Math.floor(1e12*Math.random())}`,centroids:{},centroidSource:{},linkData:{},spiderLinkFeatureCollection:{},zoneData:{},dailyData:{},marginals:{},hoveredStateId:0,rowName:"",colName:"",headers:[],geojson:{},idColumn:"",mapIsIndependent:!1,showTimeRange:!1,showCentroids:!0,showCentroidLabels:!0,isOrigin:!0,selectedCentroid:0,maxZonalTotal:0,loadingText:"Aggregierte Quell-Ziel Muster",mymap:{},project:{},scaleFactor:1,scaleValues:S,currentScale:S[0],currentTimeBin:l,allTimeBinsLabel:l,lineFilter:0,projection:"",hoverId:null,_mapExtentXYXY:null,_maximum:null,bounceTimeSlider:{},bounceScaleSlider:{},bounceLineFilter:{},resizer:null,isMapMoving:!1,isDarkMode:!1,csvWorker:null}),computed:{fileSystem(){const t=this.$store.state.svnProjects.filter(e=>e.slug===this.root);if(t.length===0)throw console.log("no such project"),Error;return t[0]},fileApi(){return new $(this.fileSystem,d)},isMobile(){const t=window,e=document,i=e.documentElement,s=e.getElementsByTagName("body")[0],o=t.innerWidth||i.clientWidth||s.clientWidth;return t.innerHeight||i.clientHeight||s.clientHeight,o<640},legendRows(){return["#00aa66","#880033","↓","↑"]},scaleRows(){return[Math.min(Math.round((1200*Math.pow(this.currentScale,-1)+20)*Math.sqrt(this.scaleFactor)),1e3*this.scaleFactor)]}},methods:{updateTestData(){window.__testdata__={centroids:this.centroidSource?.features,spiderLinks:this.spiderLinkFeatureCollection?.features,geojson:this.geojson?.features}},setupResizer(){this.resizer=new ResizeObserver(()=>{});const t=document.getElementById(this.containerId);this.resizer.observe(t)},configureSettings(){(this.vizDetails.lineWidths||this.vizDetails.lineWidth)&&(this.currentScale=this.vizDetails.lineWidth||this.vizDetails.lineWidths||1),this.vizDetails.hideSmallerThan&&(this.lineFilter=this.vizDetails.hideSmallerThan)},handleMapMotion(){const t={longitude:this.mymap.getCenter().lng,latitude:this.mymap.getCenter().lat,bearing:this.mymap.getBearing(),zoom:this.mymap.getZoom(),pitch:this.mymap.getPitch()};this.isMapMoving=!0,this.mapIsIndependent||d.commit("setMapCamera",t)},async getVizDetails(){if(this.config)this.validateYAML(),this.vizDetails=Object.assign({},this.config);else try{const t=this.myState.yamlConfig.indexOf("/")>-1?this.myState.yamlConfig:this.myState.subfolder+"/"+this.myState.yamlConfig,e=await this.fileApi.getFileText(t);this.standaloneYAMLconfig=Object.assign({},k.parse(e)),this.validateYAML(),this.setVizDetails()}catch(t){console.error(""+t),this.$emit("error",""+t)}this.$emit("title",this.vizDetails),this.scaleFactor=this.vizDetails.scaleFactor,this.projection=this.vizDetails.projection,this.mapIsIndependent=!!this.vizDetails.mapIsIndependent,this.idColumn=this.vizDetails.idColumn?this.vizDetails.idColumn:"id",b.done()},validateYAML(){const t=new RegExp(".*(yml|yaml)$").test(this.myState.yamlConfig);let e={};t?e=this.standaloneYAMLconfig:e=this.config;for(const i in this.YAMLrequirementsOD)i in e||this.$emit("error",{type:y.ERROR,msg:`${this.yamlConfig}: missing required key: ${i}`,desc:""})},setVizDetails(){this.vizDetails=Object.assign({},this.vizDetails,this.standaloneYAMLconfig);const t=this.vizDetails.title?this.vizDetails.title:"Aggregate OD";this.$emit("title",t)},async findFilenameFromWildcard(t){let e=t.indexOf("/")>-1?t.substring(0,t.lastIndexOf("/")):this.subfolder;const{files:i}=await this.fileApi.getDirectory(e);let s=t.indexOf("/")===-1?t:t.substring(t.lastIndexOf("/")+1);const o=D(i,s);if(o.length===1)return`${e}/${o[0]}`;throw Error("File not found: "+t)},async loadFiles(){try{this.loadingText="Loading...";const t=await this.findFilenameFromWildcard(`${this.myState.subfolder}/${this.vizDetails.shpFile}`),e=await this.findFilenameFromWildcard(`${this.myState.subfolder}/${this.vizDetails.dbfFile}`),i=await this.fileApi.getFileBlob(t),s=await _.arraybuffer(i),o=await this.fileApi.getFileBlob(e),a=await _.arraybuffer(o);return{shpFile:s,dbfFile:a}}catch(t){const e=t;let i=e.statusText||""+e;return e.url&&(i+=": "+e.url),console.error(i),this.loadingText=""+t,this.$emit("error",i),null}},async setupMap(){try{const t=`${C}map-styles/${this.globalState.isDarkMode?"dark":"positron"}.json`;this.mymap=new g.Map({container:this.mapId,style:t})}catch{console.error("HUH?");return}try{const t=localStorage.getItem(this.$route.fullPath+"-bounds");if(t){const e=JSON.parse(t);this.$store.commit("setMapCamera",{longitude:.5*(e[0]+e[2]),latitude:.5*(e[1]+e[3]),zoom:8,pitch:0,bearing:0,jump:!0})}}catch{}this.mymap.on("click",this.handleEmptyClick),this.mymap.on("load",this.mapIsReady),this.mymap.on("move",this.handleMapMotion)},handleEmptyClick(t){this.mymap.queryRenderedFeatures(t.point).filter(e=>e.source==="centroids"||e.source==="spider-source").length===0&&(this.fadeUnselectedLinks(-1),this.selectedCentroid=0,this.isMobile)},async mapIsReady(){const t=await this.loadFiles();t&&(this.geojson=await this.processShapefile(t),this.geojson&&this.loadCSVData()),b.done()},createSpiderLinks(){this.spiderLinkFeatureCollection={type:"FeatureCollection",features:[]};for(const t of Object.keys(this.linkData)){const e=this.linkData[t];if(!(e.daily<=this.lineFilter))try{const i=this.centroids[e.orig].geometry.coordinates,s=this.centroids[e.dest].geometry.coordinates,o=i[1]-s[1]>0?"#00aa66":"#880033",r={id:t,orig:e.orig||0,dest:e.dest||0,daily:e.daily||0,color:o,fade:.7};r[l]=e.daily,e.values.forEach((m,n)=>{r[this.headers[n]]=m??0});const p={type:"Feature",properties:r,geometry:{type:"LineString",coordinates:[i,s]}};this.spiderLinkFeatureCollection.features.push(p)}catch{}}},updateSpiderLinks(){this.createSpiderLinks(),this.selectedCentroid?this.fadeUnselectedLinks(this.selectedCentroid):this.mymap.getSource("spider-source").setData(this.spiderLinkFeatureCollection)},buildSpiderLinks(){this.mymap.getSource("spider-source")||(this.createSpiderLinks(),this.mymap.addSource("spider-source",{data:this.spiderLinkFeatureCollection,type:"geojson"})),this.mymap.getLayer("spider-layer")&&this.mymap.removeLayer("spider-layer"),this.mymap.addLayer({id:"spider-layer",source:"spider-source",type:"line",paint:{"line-color":["get","color"],"line-width":["*",1/500*this.scaleFactor,["get","daily"]],"line-offset":["*",.5,["get","daily"]],"line-opacity":["get","fade"]},filter:[">",["get",this.currentTimeBin],0]},"centroid-layer"),this.changedScale(this.currentScale);const t=this;this.mymap.on("click","spider-layer",function(e){t.clickedOnSpiderLink(e)}),this.mymap.on("mousemove","spider-layer",function(e){t.mymap.getCanvas().style.cursor=e?"pointer":"grab"}),this.mymap.on("mouseleave","spider-layer",function(){t.mymap.getCanvas().style.cursor="grab"})},clickedOrigins(){this.isOrigin=!0,this.updateCentroidLabels(),this.convertRegionColors(this.geojson),this.mymap.getSource("shpsource").setData(this.geojson)},clickedDestinations(){this.isOrigin=!1,this.updateCentroidLabels(),this.convertRegionColors(this.geojson),this.mymap.getSource("shpsource").setData(this.geojson)},updateCentroidLabels(){const t=this.isOrigin?"{dailyFrom}":"{dailyTo}",e=this.isOrigin?"widthFrom":"widthTo";this.mymap.getLayer("centroid-layer")&&this.mymap.removeLayer("centroid-layer"),this.mymap.getLayer("centroid-label-layer")&&this.mymap.removeLayer("centroid-label-layer"),this.showCentroids&&this.mymap.addLayer({layout:{visibility:this.thumbnail?"none":"visible"},id:"centroid-layer",source:"centroids",type:"circle",paint:{"circle-color":"#ec0","circle-radius":["get",e],"circle-stroke-width":2,"circle-stroke-color":"white"},filter:[">",["get",this.isOrigin?"dailyFrom":"dailyTo"],0]}),this.showCentroidLabels&&this.mymap.addLayer({id:"centroid-label-layer",source:"centroids",type:"symbol",layout:{"text-field":t,"text-font":["Noto Sans Regular"],"text-size":11},paint:this.showCentroids?{}:{"text-halo-color":"white","text-halo-width":2},filter:[">",["get",this.isOrigin?"dailyFrom":"dailyTo"],0]})},unselectAllCentroids(){this.fadeUnselectedLinks(-1),this.selectedCentroid=0},clickedOnCentroid(t){t.originalEvent.stopPropagating=!0;const i=t.features[0].properties.id;if(i===this.selectedCentroid){this.unselectAllCentroids();return}this.selectedCentroid=i,this.fadeUnselectedLinks(i)},fadeUnselectedLinks(t){const e=this.mymap;for(const i of this.spiderLinkFeatureCollection.features){const s=i.properties.id.split(":");let o=s[0]===String(t)||s[1]===String(t)?.7:ne;t===-1&&(o=.7),i.properties.fade=o}e.getSource("spider-source").setData(this.spiderLinkFeatureCollection)},clickedOnSpiderLink(t){if(t.originalEvent.stopPropagating)return;const e=t.features[0].properties,i=Math.round(1e4*e.daily*this.scaleFactor)/1e4;let s=0;const o=""+e.dest+":"+e.orig;this.linkData[o]&&(s=Math.round(1e4*this.linkData[o].daily*this.scaleFactor)/1e4);const a=i+s;let r=`<h1><b>${a} Bidirectional Trip${a!==1?"s":""}</b></h1>`;r+='<p style="width: max-content">_________________________</p>',r+=`<p style="width: max-content">${i} trip${i!==1?"s":""} // ${s} reverse trip${s!==1?"s":""}</p>`,new g.Popup({closeOnClick:!0}).setLngLat(t.lngLat).setHTML(r).addTo(this.mymap)},convertRegionColors(t){for(const e of t.features){if(!e.properties)continue;let o=128+127*(1-(this.isOrigin?e.properties.dailyFrom:e.properties.dailyTo)/this.maxZonalTotal);o||(o=255),e.properties.blue=o}},handleCentroidsForTimeOfDayChange(t){const e={type:"FeatureCollection",features:[]};for(const s of this.geojson.features){const o=this.buildSingleCentroid(s);o.properties.id=s.id;const a=this.calculateCentroidValuesForZone(t,s);o.properties.dailyFrom=Math.round(1e4*a.from*this.scaleFactor)/1e4,o.properties.dailyTo=Math.round(1e4*a.to*this.scaleFactor)/1e4;let r=Math.log10(o.properties.dailyFrom);o.properties.widthFrom=6+r*3.5,r=Math.log10(o.properties.dailyTo),o.properties.widthTo=6+r*3.5,s.properties||(s.properties={}),s.properties.dailyFrom=a.from,s.properties.dailyTo=a.to,o.properties.dailyFrom+o.properties.dailyTo>0&&(e.features.push(o),s.properties&&(this.centroids[s.properties[this.idColumn]]=o))}this.centroidSource=e,this.mymap.getSource("centroids").setData(this.centroidSource),this.updateCentroidLabels()},calculateCentroidValuesForZone(t,e){let i=0,s=0;if(t===l)return s=e.properties.dailyTo,i=e.properties.dailyFrom,{from:i,to:s};const o=this.marginals.from[e.id],a=this.marginals.to[e.id];if(Array.isArray(t)){let p=this.headers.indexOf(t[0])-1;p<0&&(p=0);const m=this.headers.indexOf(t[1])-1;for(let n=p;n<=m;n++)i+=o?Math.round(o[n]):0,s+=a?Math.round(a[n]):0;return{from:i,to:s}}const r=this.headers.indexOf(t)-1;return i=o?Math.round(o[r]):0,s=a?Math.round(a[r]):0,{from:i,to:s}},buildSingleCentroid(t){t.properties||(t.properties={});let e;if(this.vizDetails.centroidColumn){let i=t.properties[this.vizDetails.centroidColumn];Array.isArray(i)||(i=i.split(",").map(s=>parseFloat(s))),e={type:"Feature",geometry:{type:"Point",coordinates:i},properties:{id:t.id},id:t.id}}else e=L(t),e.properties.id=t.id,e.id=t.id;return e},buildCentroids(t){const e={type:"FeatureCollection",features:[]};try{for(const i of t.features){if(!i.id)continue;i.properties||(i.properties={});const s=this.buildSingleCentroid(i);let o=Math.round(this.marginals.rowTotal[i.id]),a=Math.round(this.marginals.colTotal[i.id]);o||(o=0),a||(a=0),s.properties.dailyFrom=o*this.scaleFactor,s.properties.dailyTo=a*this.scaleFactor;let r=Math.log10(s.properties.dailyFrom);s.properties.widthFrom=6+r*3.5,r=Math.log10(s.properties.dailyTo),s.properties.widthTo=6+r*3.5,o&&(this.maxZonalTotal=Math.max(this.maxZonalTotal,o)),a&&(this.maxZonalTotal=Math.max(this.maxZonalTotal,a)),i.properties||(i.properties={}),i.properties.dailyFrom=o,i.properties.dailyTo=a,s.properties.dailyFrom+s.properties.dailyTo>0&&(e.features.push(s),i.properties&&(this.centroids[i.id]=s),this.updateMapExtent(s.geometry.coordinates))}}catch{this.$emit("error","Error creating centroids, does centroid column exist?")}this.centroidSource=e,this.mymap.getSource("centroids")||this.mymap.addSource("centroids",{data:this.centroidSource,type:"geojson"}),this.updateCentroidLabels(),this.mymap.on("click","centroid-layer",i=>{this.clickedOnCentroid(i)}),this.mymap.on("mousemove","centroid-layer",i=>{this.mymap.getCanvas().style.cursor=i?"pointer":"grab"}),this.mymap.on("mouseleave","centroid-layer",()=>{this.mymap.getCanvas().style.cursor="grab"})},setMapExtent(){localStorage.setItem(this.$route.fullPath+"-bounds",JSON.stringify(this._mapExtentXYXY));const t=this.thumbnail?{animate:!1}:{padding:{top:25,bottom:25,right:100,left:100},animate:!1};this.mymap.fitBounds(this._mapExtentXYXY,t)},setupKeyListeners(){window.addEventListener("keyup",t=>{t.keyCode===27&&this.pressedEscape()}),window.addEventListener("keydown",t=>{t.keyCode===38&&this.pressedArrowKey(-1),t.keyCode===40&&this.pressedArrowKey(1)})},processGeojson(){for(const t of this.geojson.features){const e=t.properties;e.dailyFrom!==0||e.dailyTo!==0?t.properties.isVisible=!0:t.properties.isVisible=!1}},async processShapefile(t){this.loadingText="Verkehrsnetz bauarbeiten...";const e=await w(t.shpFile,t.dbfFile);e.features.length>150&&(this.lineFilter=10),this.loadingText="Koordinaten berechnen...";for(const i of e.features){const s=i.properties;if(!this.idColumn&&s&&(this.idColumn=Object.keys(s)[0]),!(this.idColumn in s)){this.$emit("error",`Shapefile does not contain ID column "${this.idColumn}"`);return}i.properties&&(i.id=i.properties[this.idColumn]);try{i.geometry.type==="MultiPolygon"?this.convertMultiPolygonCoordinatesToWGS84(i):this.convertPolygonCoordinatesToWGS84(i)}catch(o){console.error("ERR with feature: "+i),console.error(o)}}return e},convertPolygonCoordinatesToWGS84(t){for(const e of t.geometry.coordinates){const i=[];for(const s of e){const o=x.toLngLat(this.projection,s);i.push(o)}e.length=0,e.push(...i)}},origConvertMultiPolygonCoordinatesToWGS84(t){for(const e of t.geometry.coordinates){const i=e[0],s=[];for(const o of i){const a=v(this.projection,"WGS84",o);s.push(a)}e[0]=s}},convertMultiPolygonCoordinatesToWGS84(t){t.geometry.coordinates=this.recurseWGS84(t.geometry.coordinates)},recurseWGS84(t){const e=[];for(let i of t)Array.isArray(i[0])?e.push(this.recurseWGS84(i)):e.push(v(this.projection,"WGS84",i));return e},async getDailyDataSummary(){const t={},e={},i={},s={};for(const o of Object.keys(this.zoneData)){i[o]=Array(this.headers.length-1).fill(0);for(const a of Object.keys(this.zoneData[o])){t[o]||(t[o]=0),e[a]||(e[a]=0),this.dailyData[o][a]&&(t[o]+=this.dailyData[o][a],e[a]+=this.dailyData[o][a]),s[a]||(s[a]=Array(this.headers.length-1).fill(0));for(let r=0;r<this.headers.length-1;r++)this.zoneData[o][a][r]&&(i[o][r]+=this.zoneData[o][a][r],s[a][r]+=this.zoneData[o][a][r])}}return{rowTotal:t,colTotal:e,from:i,to:s}},async loadCSVData(){this.loadingText="Load CSV data...";let t="";try{t=await this.findFilenameFromWildcard(`${this.myState.subfolder}/${this.vizDetails.csvFile}`)}catch{this.$store.commit("error",`Error loading ${this.myState.subfolder}/${this.vizDetails.csvFile}`);return}const e=new ae;e.onmessage=i=>{const s=i.data;s.ready?e.postMessage({fileSystem:this.fileSystem,filePath:t}):s.status?this.loadingText=s.status:s.error?(this.csvWorker?.terminate(),this.loadingText=s.error,this.$emit("error",{type:y.ERROR,msg:`Aggr.OD: Error loading "${this.myState.subfolder}/${this.vizDetails.csvFile}"`,desc:"Check the path and filename"})):s.finished&&(this.csvWorker?.terminate(),this.finishedLoadingData(s))},this.csvWorker=e},async finishedLoadingData(t){this.loadingText="Building diagram...",this.isFinishedLoading=!0,await this.$nextTick(),this.rowName=t.rowName,this.colName=t.colName,this.headers=t.headers,this.dailyData=t.dailyZoneData,this.zoneData=t.zoneData,this.linkData=t.dailyLinkData,this.marginals=await this.getDailyDataSummary(),this.buildCentroids(this.geojson),this.convertRegionColors(this.geojson),this.addGeojsonToMap(this.geojson),this.setMapExtent(),this.buildSpiderLinks(),this.setupKeyListeners(),this.updateTestData(),this.loadingText=""},updateMapExtent(t){this._mapExtentXYXY[0]=Math.min(this._mapExtentXYXY[0],t[0]),this._mapExtentXYXY[1]=Math.min(this._mapExtentXYXY[1],t[1]),this._mapExtentXYXY[2]=Math.max(this._mapExtentXYXY[2],t[0]),this._mapExtentXYXY[3]=Math.max(this._mapExtentXYXY[3],t[1])},addGeojsonToMap(t){this.processGeojson(),this.addGeojsonLayers(t),this.addNeighborhoodHoverEffects()},addGeojsonLayers(t){this.mymap.getSource("shpsource")||this.mymap.addSource("shpsource",{data:t,type:"geojson"}),this.mymap.getLayer("shplayer-fill")&&this.mymap.removeLayer("shplayer-fill"),this.mymap.addLayer({id:"shplayer-fill",source:"shpsource",type:"fill",paint:{"fill-color":["rgb",["get","blue"],["get","blue"],255],"fill-opacity":.5}},"water"),this.mymap.getLayer("shplayer-border")&&this.mymap.removeLayer("shplayer-border"),this.mymap.addLayer({id:"shplayer-border",source:"shpsource",type:"line",paint:{"line-color":"#66f","line-opacity":.5,"line-width":["case",["boolean",["feature-state","hover"],!1],3,1]},filter:["==","isVisible",!0]},"centroid-layer")},addNeighborhoodHoverEffects(){const t=this;this.mymap.on("mousemove","shplayer-fill",function(e){const i=t.mymap;e.features.length>0&&(t.hoveredStateId&&i.setFeatureState({source:"shpsource",id:t.hoveredStateId},{hover:!1}),t.hoveredStateId=e.features[0].properties[t.idColumn],i.setFeatureState({source:"shpsource",id:t.hoveredStateId},{hover:!0}))}),this.mymap.on("mouseleave","shplayer-fill",function(){const e=t.mymap;t.hoveredStateId&&e.setFeatureState({source:"shpsource",id:t.hoveredStateId},{hover:!1}),t.hoveredStateId=null})},offsetLineByMeters(t,e){try{return F(t,e,{units:"meters"})}catch{}return t},pressedEscape(){this.unselectAllCentroids()},pressedArrowKey(t){},changedTimeSlider(t){this.currentTimeBin=t;const e=this.currentScale/500*this.scaleFactor;if(this.showTimeRange==!1)this.mymap.setPaintProperty("spider-layer","line-width",["*",e,["get",t]]),this.mymap.setPaintProperty("spider-layer","line-offset",["*",.5*e,["get",t]]);else{const i=["+"];let s=!1;for(const o of this.headers)o===t[0]&&(s=!0),o!==l&&(s&&i.push(["get",o]),o===t[1]&&(s=!1));this.mymap.setPaintProperty("spider-layer","line-width",["*",e,i]),this.mymap.setPaintProperty("spider-layer","line-offset",["*",.5*e,i])}this.handleCentroidsForTimeOfDayChange(t)},changedScale(t){this.isFinishedLoading&&(this.currentScale=t,this.changedTimeSlider(this.currentTimeBin))},changedLineFilter(t){t===l?this.lineFilter=1/0:this.lineFilter=t,this.updateSpiderLinks()}},watch:{"globalState.viewState"(t){if(this.mapIsIndependent)return;if(!this.mymap||this.isMapMoving||this.thumbnail){this.isMapMoving=!1;return}const{bearing:e,center:i,zoom:s,pitch:o}=t;if(s)try{this.mymap.off("move",this.handleMapMotion),this.mymap.jumpTo({center:i,zoom:s,bearing:e,pitch:o}),this.mymap.on("move",this.handleMapMotion)}catch{}},async"$store.state.colorScheme"(){if(this.isDarkMode=this.$store.state.colorScheme===f.DarkMode,!this.mymap)return;const t=`${C}map-styles/${this.globalState.isDarkMode?"dark":"positron"}.json`,e=i=>new Promise(s=>setTimeout(s,i));this.mymap.setStyle(t),await e(1200),this.buildCentroids(this.geojson),this.buildSpiderLinks(),this.addGeojsonToMap(this.geojson)},"$store.state.resizeEvents"(){},showTimeRange(){},showCentroids(){this.updateCentroidLabels()},showCentroidLabels(){this.updateCentroidLabels()}},async created(){this._mapExtentXYXY=[180,90,-180,-90],this._maximum=0},async mounted(){d.commit("setFullScreen",!this.thumbnail),this.isDarkMode=this.$store.state.colorScheme===f.DarkMode,this.bounceTimeSlider=u.debounce(this.changedTimeSlider,100),this.bounceScaleSlider=u.debounce(this.changedScale,50),this.bounceLineFilter=u.debounce(this.changedLineFilter,250),this.myState.thumbnail=this.thumbnail,this.myState.yamlConfig=this.yamlConfig||"",this.myState.subfolder=this.subfolder,await this.getVizDetails(),!this.thumbnail&&(this.setupMap(),this.configureSettings(),this.setupResizer())},beforeDestroy(){this.resizer?.disconnect(),this.csvWorker?.terminate(),delete window.__testdata__},destroyed(){d.commit("setFullScreen",!1)}});var de=function(){var e=this,i=e._self._c;return e._self._setupProxy,i("div",{staticClass:"mycomponent",attrs:{id:e.containerId}},[e.thumbnail?e._e():i("zoom-buttons",{staticClass:"zoom-buttons",attrs:{corner:"top-left"}}),i("div",{staticClass:"map-container"},[i("div",{staticClass:"mymap",attrs:{id:e.mapId}}),i("div",{directives:[{name:"show",rawName:"v-show",value:!e.thumbnail&&e.loadingText,expression:"!thumbnail && loadingText"}],staticClass:"status-blob"},[i("p",[e._v(e._s(e.loadingText))])]),!e.thumbnail&&!e.loadingText?i("div",{staticClass:"lower-left"},[i("div",{staticClass:"subheading"},[e._v(e._s(e.$t("lineWidths")))]),i("scale-slider",{staticClass:"scale-slider",attrs:{stops:e.scaleValues,initialValue:e.currentScale,tooltip:!1},on:{change:e.bounceScaleSlider}}),i("div",{staticClass:"subheading"},[e._v(e._s(e.$t("hide")))]),i("line-filter-slider",{staticClass:"scale-slider",attrs:{initialValue:e.lineFilter,tooltip:!1},on:{change:e.bounceLineFilter}})],1):e._e(),!e.thumbnail&&!e.isMobile?i("div",{staticClass:"lower-right"},[i("legend-box",{staticClass:"complication",attrs:{rows:e.legendRows}}),i("scale-box",{staticClass:"complication",attrs:{rows:e.scaleRows}})],1):e._e()]),e.thumbnail?e._e():i("div",{staticClass:"widgets",style:{padding:e.yamlConfig?"0 0.5rem 0.5rem 0.5rem":"2px 4px"}},[this.headers.length>2?i("div",{staticClass:"widget-column",staticStyle:{"min-width":"8rem"}},[i("h4",{staticClass:"heading"},[e._v(e._s(e.$t("time")))]),i("b-checkbox",{staticClass:"checkbox",model:{value:e.showTimeRange,callback:function(s){e.showTimeRange=s},expression:"showTimeRange"}},[e._v(e._s(e.$t("duration")))]),i("time-slider",{staticClass:"xtime-slider",attrs:{useRange:e.showTimeRange,stops:e.headers,all:e.allTimeBinsLabel},on:{change:e.bounceTimeSlider}})],1):e._e(),i("div",{staticClass:"widget-column"},[i("h4",{staticClass:"heading"},[e._v(e._s(e.$t("circle")))]),i("b-checkbox",{staticClass:"checkbox",model:{value:e.showCentroids,callback:function(s){e.showCentroids=s},expression:"showCentroids"}},[e._v(" "+e._s(e.$t("showCentroids")))]),i("b-checkbox",{staticClass:"checkbox",model:{value:e.showCentroidLabels,callback:function(s){e.showCentroidLabels=s},expression:"showCentroidLabels"}},[e._v(" "+e._s(e.$t("showNumbers")))])],1),i("div",{staticClass:"widget-column",staticStyle:{margin:"0 0 0 auto"}},[i("h4",{staticClass:"heading"},[e._v(e._s(e.$t("total")))]),i("b-button",{staticClass:"is-small",class:{"is-link":e.isOrigin,"is-active":e.isOrigin},on:{click:e.clickedOrigins}},[e._v(e._s(e.$t("origins")))]),i("b-button",{staticClass:"is-small",class:{"is-link":!e.isOrigin,"is-active":!e.isOrigin},attrs:{hint:"Hide"},on:{click:e.clickedDestinations}},[e._v(e._s(e.$t("dest")))])],1)])],1)},ce=[],he=h(le,de,ce,!1,null,"0f050fd0");const Fe=he.exports;export{Fe as default};
@@ -1 +1 @@
1
- import{d as m,C as n,g as r,m as p,n as l}from"./index-CHe7BiNX.js";const h=m({name:"BackgroundMapOnTop",components:{},data:()=>({containerId:`c${Math.floor(1e12*Math.random())}`,globalState:r.state,isDarkMode:!1,isMapMoving:!1,mapId:`map-${Math.floor(1e12*Math.random())}`,layerId:Math.floor(1e12*Math.random()),mymap:{},resizer:null,isMapReady:!1}),computed:{},methods:{setupResizer(){this.resizer=new ResizeObserver(()=>{this.mymap.resize()});const t=document.getElementById(this.containerId);this.resizer.observe(t)},handleMapMotion(){if(!this.isMapReady)return;const t={longitude:this.mymap.getCenter().lng,latitude:this.mymap.getCenter().lat,bearing:this.mymap.getBearing(),zoom:this.mymap.getZoom(),pitch:this.mymap.getPitch()};this.$store.commit("setMapCamera",t),this.isMapMoving||(this.isMapMoving=!0)},setupMap(){const t=r.state.mapStyles;try{this.mymap=new p.Map({container:this.mapId,style:this.isDarkMode?t.transparentDark:t.transparentLight,logoPosition:"top-left"});const{jump:e,initial:o,startup:i,...s}=this.globalState.viewState;s.center=[s.longitude,s.latitude],this.mymap.jumpTo(s)}catch(e){console.error("HUH?"+e);return}this.mymap.on("load",this.mapIsReady);let a=document.getElementsByClassName("mapboxgl-ctrl mapboxgl-ctrl-attrib mapboxgl-compact");for(const e of a)e.setAttribute("style","display: none");a=document.getElementsByClassName("mapboxgl-ctrl mapboxgl-ctrl-group");for(const e of a)e.setAttribute("style","display: none");a=document.getElementsByClassName("mapboxgl-ctrl-logo");for(const e of a)e.setAttribute("style","display: none")},async mapIsReady(){this.isMapReady=!0,this.setupResizer(),this.mymap.on("move",this.handleMapMotion)},viewMoved(t){if(!this.isMapReady)return;if(!this.mymap||this.isMapMoving){this.isMapMoving=!1;return}const{bearing:a,longitude:e,latitude:o,zoom:i,pitch:s}=t;!e||!o||!i||(this.mymap.off("move",this.handleMapMotion),this.mymap.jumpTo({bearing:a,zoom:i,center:[e,o],pitch:s}),this.mymap.on("move",this.handleMapMotion))}},watch:{"globalState.viewState"(t){this.viewMoved(t)},"$store.state.colorScheme"(){if(this.isDarkMode=this.$store.state.colorScheme===n.DarkMode,!this.mymap)return;const t=r.state.mapStyles;this.mymap.setStyle(this.isDarkMode?t.transparentDark:t.transparentLight),this.mymap.on("style.load",()=>{})},"$store.state.resizeEvents"(){this.mymap&&this.mymap.resize()}},beforeDestroy(){this.resizer?.disconnect()},mounted(){this.isDarkMode=this.$store.state.colorScheme===n.DarkMode,this.setupMap()}});var d=function(){var a=this,e=a._self._c;return a._self._setupProxy,e("div",{staticClass:"mymaplibre-map",attrs:{id:a.containerId}},[e("div",{staticClass:"mymap",attrs:{id:a.mapId}})])},c=[],y=l(h,d,c,!1,null,"f469fa8b");const u=y.exports;export{u as B};
1
+ import{d as m,C as n,g as r,m as p,n as l}from"./index-D3p5oi12.js";const h=m({name:"BackgroundMapOnTop",components:{},data:()=>({containerId:`c${Math.floor(1e12*Math.random())}`,globalState:r.state,isDarkMode:!1,isMapMoving:!1,mapId:`map-${Math.floor(1e12*Math.random())}`,layerId:Math.floor(1e12*Math.random()),mymap:{},resizer:null,isMapReady:!1}),computed:{},methods:{setupResizer(){this.resizer=new ResizeObserver(()=>{this.mymap.resize()});const t=document.getElementById(this.containerId);this.resizer.observe(t)},handleMapMotion(){if(!this.isMapReady)return;const t={longitude:this.mymap.getCenter().lng,latitude:this.mymap.getCenter().lat,bearing:this.mymap.getBearing(),zoom:this.mymap.getZoom(),pitch:this.mymap.getPitch()};this.$store.commit("setMapCamera",t),this.isMapMoving||(this.isMapMoving=!0)},setupMap(){const t=r.state.mapStyles;try{this.mymap=new p.Map({container:this.mapId,style:this.isDarkMode?t.transparentDark:t.transparentLight,logoPosition:"top-left"});const{jump:e,initial:o,startup:i,...s}=this.globalState.viewState;s.center=[s.longitude,s.latitude],this.mymap.jumpTo(s)}catch(e){console.error("HUH?"+e);return}this.mymap.on("load",this.mapIsReady);let a=document.getElementsByClassName("mapboxgl-ctrl mapboxgl-ctrl-attrib mapboxgl-compact");for(const e of a)e.setAttribute("style","display: none");a=document.getElementsByClassName("mapboxgl-ctrl mapboxgl-ctrl-group");for(const e of a)e.setAttribute("style","display: none");a=document.getElementsByClassName("mapboxgl-ctrl-logo");for(const e of a)e.setAttribute("style","display: none")},async mapIsReady(){this.isMapReady=!0,this.setupResizer(),this.mymap.on("move",this.handleMapMotion)},viewMoved(t){if(!this.isMapReady)return;if(!this.mymap||this.isMapMoving){this.isMapMoving=!1;return}const{bearing:a,longitude:e,latitude:o,zoom:i,pitch:s}=t;!e||!o||!i||(this.mymap.off("move",this.handleMapMotion),this.mymap.jumpTo({bearing:a,zoom:i,center:[e,o],pitch:s}),this.mymap.on("move",this.handleMapMotion))}},watch:{"globalState.viewState"(t){this.viewMoved(t)},"$store.state.colorScheme"(){if(this.isDarkMode=this.$store.state.colorScheme===n.DarkMode,!this.mymap)return;const t=r.state.mapStyles;this.mymap.setStyle(this.isDarkMode?t.transparentDark:t.transparentLight),this.mymap.on("style.load",()=>{})},"$store.state.resizeEvents"(){this.mymap&&this.mymap.resize()}},beforeDestroy(){this.resizer?.disconnect()},mounted(){this.isDarkMode=this.$store.state.colorScheme===n.DarkMode,this.setupMap()}});var d=function(){var a=this,e=a._self._c;return a._self._setupProxy,e("div",{staticClass:"mymaplibre-map",attrs:{id:a.containerId}},[e("div",{staticClass:"mymap",attrs:{id:a.mapId}})])},c=[],y=l(h,d,c,!1,null,"f469fa8b");const u=y.exports;export{u as B};
@@ -1 +1 @@
1
- import{d as l,g as s,n as a}from"./index-CHe7BiNX.js";import{Y as o}from"./index-DFKcNkqO.js";import{H as r}from"./HTTPFileSystem-Cf8G_bcW.js";import{T as n}from"./TopSheet-D4u-pVea.js";import"./fxp-DjoqftHf.js";const f="url('assets/thumbnail.jpg') no-repeat;",h=l({name:"CalculationTable",components:{TopSheet:n},props:{root:{type:String,required:!0},subfolder:{type:String,required:!0},yamlConfig:String,config:Object,thumbnail:Boolean},data:()=>({globalState:s.state,allConfigFiles:{dashboards:{},topsheets:{},vizes:{},configs:{}},files:[],isLoaded:!1,vizDetails:{title:"",description:"",thumbnail:""}}),computed:{fileApi(){return new r(this.fileSystem,s)},fileSystem(){const i=this.$store.state.svnProjects.filter(t=>t.slug===this.root);if(i.length===0)throw console.log("no such project"),Error;return i[0]},urlThumbnail(){return f}},methods:{async getVizDetails(){if(!this.fileApi)return;try{const t=await this.fileApi.getFileText(this.subfolder+"/"+this.yamlConfig);this.vizDetails=o.parse(t)}catch(t){console.error("failed "+t),this.$emit("error",""+t)}const i=this.vizDetails.title?this.vizDetails.title:"Table";this.$emit("title",i)}},async mounted(){await this.getVizDetails(),this.allConfigFiles=await this.fileApi.findAllYamlConfigs(this.subfolder);const{files:i}=await this.fileApi.getDirectory(this.subfolder);this.files=i,this.isLoaded=!0,this.thumbnail}}),m="/assets/table-NNqWMujx.png";var c=function(){var t=this,e=t._self._c;return t._self._setupProxy,e("div",{staticClass:"my-component",class:{"hide-thumbnail":!t.thumbnail},attrs:{oncontextmenu:"return false"}},[t.thumbnail?e("img",{staticClass:"thumb",attrs:{src:m,width:128}}):t._e(),!t.thumbnail&&t.isLoaded?e("div",{staticClass:"topsheet"},[e("p",{staticClass:"header"},[t._v(t._s(t.subfolder))]),e("h2",[t._v(t._s(t.vizDetails.title))]),e("p",[t._v(t._s(t.vizDetails.description))]),e("hr"),e("TopSheet",{tag:"component",staticClass:"dash-card",attrs:{fileSystemConfig:t.fileSystem,subfolder:t.subfolder,config:t.vizDetails,yaml:t.yamlConfig,files:t.files,cardTitle:t.vizDetails.title,cardId:"table1",allConfigFiles:t.allConfigFiles}})],1):t._e()])},u=[],d=a(h,c,u,!1,null,"73ee6118");const C=d.exports;export{C as default};
1
+ import{d as l,g as s,n as a}from"./index-D3p5oi12.js";import{Y as o}from"./index-DFKcNkqO.js";import{H as r}from"./HTTPFileSystem-WNrn1tPJ.js";import{T as n}from"./TopSheet-LRRemD72.js";import"./fxp-DjoqftHf.js";const f="url('assets/thumbnail.jpg') no-repeat;",h=l({name:"CalculationTable",components:{TopSheet:n},props:{root:{type:String,required:!0},subfolder:{type:String,required:!0},yamlConfig:String,config:Object,thumbnail:Boolean},data:()=>({globalState:s.state,allConfigFiles:{dashboards:{},topsheets:{},vizes:{},configs:{}},files:[],isLoaded:!1,vizDetails:{title:"",description:"",thumbnail:""}}),computed:{fileApi(){return new r(this.fileSystem,s)},fileSystem(){const i=this.$store.state.svnProjects.filter(t=>t.slug===this.root);if(i.length===0)throw console.log("no such project"),Error;return i[0]},urlThumbnail(){return f}},methods:{async getVizDetails(){if(!this.fileApi)return;try{const t=await this.fileApi.getFileText(this.subfolder+"/"+this.yamlConfig);this.vizDetails=o.parse(t)}catch(t){console.error("failed "+t),this.$emit("error",""+t)}const i=this.vizDetails.title?this.vizDetails.title:"Table";this.$emit("title",i)}},async mounted(){await this.getVizDetails(),this.allConfigFiles=await this.fileApi.findAllYamlConfigs(this.subfolder);const{files:i}=await this.fileApi.getDirectory(this.subfolder);this.files=i,this.isLoaded=!0,this.thumbnail}}),m="/assets/table-NNqWMujx.png";var c=function(){var t=this,e=t._self._c;return t._self._setupProxy,e("div",{staticClass:"my-component",class:{"hide-thumbnail":!t.thumbnail},attrs:{oncontextmenu:"return false"}},[t.thumbnail?e("img",{staticClass:"thumb",attrs:{src:m,width:128}}):t._e(),!t.thumbnail&&t.isLoaded?e("div",{staticClass:"topsheet"},[e("p",{staticClass:"header"},[t._v(t._s(t.subfolder))]),e("h2",[t._v(t._s(t.vizDetails.title))]),e("p",[t._v(t._s(t.vizDetails.description))]),e("hr"),e("TopSheet",{tag:"component",staticClass:"dash-card",attrs:{fileSystemConfig:t.fileSystem,subfolder:t.subfolder,config:t.vizDetails,yaml:t.yamlConfig,files:t.files,cardTitle:t.vizDetails.title,cardId:"table1",allConfigFiles:t.allConfigFiles}})],1):t._e()])},u=[],d=a(h,c,u,!1,null,"73ee6118");const C=d.exports;export{C as default};
@@ -0,0 +1 @@
1
+ import{d as k,n as S,g as p,m as A,C as _,R as w}from"./index-D3p5oi12.js";import{d as L}from"./index-CVL_6l40.js";import{r as M}from"./index-C0WnpZCG.js";import{Y as P}from"./index-DFKcNkqO.js";import{f as O,g as j,p as F,n as u,a as E,H as B}from"./HTTPFileSystem-WNrn1tPJ.js";import{c as R}from"./index-CGaFlMco.js";import{P as H,L as W}from"./LegendColors-CNhxg9t6.js";import{Z as N}from"./ZoomButtons-D2uWsuQs.js";import{W as U,D as X}from"./DashboardDataManager-CKcv4ndV.js";import{P as C}from"./PathOffsetLayer-DAEGMsHr.js";import{M as Y}from"./mapbox-overlay-BWTNBTi1.js";import{A as I}from"./arc-layer-BVLaP1vr.js";import{T as D,S as f}from"./text-layer-Cpq7KRgR.js";import"./fxp-DjoqftHf.js";import"./layer-extension-CCnGoUTU.js";import"./layer-GQvgsG1_.js";import"./group-hI8ly2Wr.js";import"./index-_doEQLKC.js";import"./path-layer-BllYebBs.js";const q=k({name:"MapTooltip",components:{},props:{hoverInfo:{type:Object,required:!0}},data(){return{tooltipType:0,activity:"",stop:{}}},watch:{hoverInfo(){this.renderTooltip(this.hoverInfo)}},methods:{renderTooltip(s){console.log({hoverInfo:s}),this.tooltipType=0;const{object:t}=s;return t?t?.type=="pickup"?this.renderActivityTooltip(s,"pickup"):t?.type=="delivery"?this.renderActivityTooltip(s,"delivery"):t?.type=="service"?this.renderServicesTooltip(s,"service"):t?.color?this.renderLegTooltip(s):t?.type=="depot"?null:this.renderStopTooltip(s):null},renderActivityTooltip(s,t){this.tooltipType=1,this.activity=t},renderServicesTooltip(s,t){this.tooltipType=2},renderLegTooltip(s){this.tooltipType=3},renderStopTooltip(s){this.tooltipType=2;const{object:t,x:e,y:i}=s,o=t.visits.length,r=t.visits.reduce((h,a)=>h+a.pickup.length,0),n=t.visits.reduce((h,a)=>h+a.delivery.length,0);this.stop={numPickupsAndDeliveries:r+n,overview:{visits:o,pickups:r,deliveries:n}}}}});var G=function(){var t=this,e=t._self._c;return t._self._setupProxy,t.tooltipType?e("div",{staticClass:"flex-col"},[t.tooltipType==1?e("div",{staticClass:"tooltip"},[e("table",{staticStyle:{"max-width":"30rem","font-size":"0.8rem"}},[e("tbody",[e("tr",[e("td",{staticStyle:{"text-align":"right","padding-right":"0.5rem","padding-top":"0.2rem"}},[t._v(t._s(t.activity)+":")]),e("td",{staticStyle:{"padding-top":"0.2rem"}},[t._v(t._s(t.hoverInfo.object.shipmentIds.join(", ")))])])])])]):t._e(),t.tooltipType==2?e("div",{staticClass:"tooltip flex-col"},[e("b",[t._v(t._s(t.hoverInfo.object?.$id))]),e("h5",{staticStyle:{"padding-top":"0.2rem"}},[t._v("Capacity Demand: "+t._s(t.hoverInfo.object.$capacityDemand))])]):t._e(),t.tooltipType==3?e("div",{staticClass:"tooltip flex-col"},[e("b",[t._v(t._s(t.hoverInfo.object?.tour?.vehicleId))]),e("p",[t._v("Leg # "+t._s(1+t.hoverInfo.object?.count))]),e("p",[t._v("Shipments on board: "+t._s(t.hoverInfo.object?.shipmentsOnBoard?.length))]),e("p",[t._v("Total size: "+t._s(t.hoverInfo.object?.totalSize))])]):t._e(),t.tooltipType==4?e("div",{staticClass:"tooltip flex-col"},[e("table",{staticStyle:{"font-size":"0.8rem"}},[e("tbody",[t._l(Object.keys(t.stop.overview),function(i){return e("tr",{key:i},[e("td",{staticStyle:{"text-align":"right","padding-right":"0.5rem"}},[t._v(t._s(i)+":")]),e("td",[e("b",[t._v(t._s(t.stop.overview[i]))])])])}),t._l(Object.keys(t.stop.numPickupsAndDeliveries==1?t.hoverInfo.object.details:[]),function(i){return e("tr",{key:i},[e("td",{staticStyle:{"text-align":"right","padding-right":"0.5rem","padding-top":"0.2rem"}},[t._v(t._s(i.slice(1))+":")]),e("td",{staticStyle:{"padding-top":"0.2rem"}},[t._v(t._s(t.hoverInfo.object.details[t.a]))])])})],2)])]):t._e()]):t._e()},V=[],J=S(q,G,V,!1,null,null);const Z=J.exports,x="/",y={pickup:[0,150,255],delivery:[240,0,60]},K=k({name:"MyDeckComponent",components:{MapTooltip:Z},props:{activeTab:{type:String,required:!0},dark:{type:Boolean,required:!0},depots:{type:Array},legs:{type:Array,required:!0},mapIsIndependent:{type:Boolean},numSelectedTours:{type:Number,required:!0},onClick:{type:Function},projection:{type:String,required:!0},services:{type:Boolean,required:!0},settings:{type:Object,required:!0},shipments:{type:Array,required:!0},stopActivities:{type:Array,required:!0},viewId:{type:Number,required:!0}},data(){return{mymap:null,deckOverlay:null,globalState:p.state,tip:null,tooltipStyle:{position:"absolute",padding:"4px 8px",display:"block",top:0,left:0,color:this.dark?"#ccc":"#223",backgroundColor:this.dark?"#2a3c4f":"white",zIndex:2e4}}},watch:{layers(){this.deckOverlay?.setProps({layers:this.layers})},dark(){const s=`${x}map-styles/${this.globalState.isDarkMode?"dark":"positron"}.json`;this.mymap?.setStyle(s)},"globalState.viewState"(){if(this.mapIsIndependent)return;const s=this.globalState.viewState,t=this.mymap?.getCenter();(s.longitude!==t.lng||s.latitude!==t.lat||s.zoom!==this.mymap?.getZoom()||s.pitch!==this.mymap?.getPitch()||s.bearing!==this.mymap?.getBearing())&&this.mymap?.jumpTo(Object.assign({center:{lng:s.longitude,lat:s.latitude}},s))}},computed:{layers(){const s=[];if(this.activeTab=="tours"&&(s.push(new C({id:"shipmentLocationDashedLine",data:this.stopActivities,getPath:t=>[t.ptFrom,t.ptTo],getColor:[128,128,128],getOffset:2,opacity:1,getWidth:this.settings.scaleFactor/2,widthMinPixels:3,widthMaxPixels:200,jointRounded:!0,shadowEnabled:!1,pickable:!1,autoHighlight:!1,highlightColor:[255,255,255],parameters:{depthTest:!1},getDashArray:[3,2],dashJustified:!0,extensions:[new H({dash:!0})]})),this.settings.simplifyTours?s.push(new I({id:"leg-arcs",data:this.legs,getSourcePosition:t=>t.points[0],getTargetPosition:t=>t.points[t.points.length-1],getSourceColor:t=>t.color,getTargetColor:t=>t.color,getWidth:2+(this.settings.scaleFactor-0)*38/100,getHeight:.5,widthMinPixels:2,widthMaxPixels:40,widthUnits:"pixels",opacity:.9,parameters:{depthTest:!1},updateTriggers:{getWidth:[this.settings.scaleFactor]},transitions:{getWidth:150},pickable:!0,autoHighlight:!0,highlightColor:[255,255,255],onHover:this.getTooltip})):s.push(new C({id:"deliveryroutes",data:this.legs,getPath:t=>t.points,getColor:t=>t.color,getWidth:3+(this.settings.scaleFactor-0)*37/100,getOffset:2,opacity:1,widthMinPixels:3,widthMaxPixels:40,widthUnits:"pixels",jointRounded:!0,shadowEnabled:!1,pickable:!0,autoHighlight:!0,highlightColor:[255,255,255],parameters:{depthTest:!1},updateTriggers:{getWidth:[this.settings.scaleFactor]},transitions:{getWidth:150},onHover:this.getTooltip})),s.push(new D({id:"dest-labels",background:!0,data:this.stopActivities,backgroundPadding:this.numSelectedTours!==1?[2,1,2,1]:[3,2,3,1],getColor:[255,255,255],getBackgroundColor:t=>{const e=t.visits.reduce((o,r)=>o+r.pickup.length,0),i=t.visits.reduce((o,r)=>o+r.delivery.length,0);return e&&i?[0,0,255]:e?y.pickup:i?y.delivery:[240,130,0]},getPosition:t=>t.midpoint,getText:t=>t.label=="Depot"?t.label:this.numSelectedTours!==1?" ":`${t.label}`,getSize:t=>t.label=="Depot"?11:this.numSelectedTours!==1?4:11,getTextAnchor:"middle",getAlignmentBaseline:"center",opacity:1,noAlloc:!1,billboard:!0,sizeScale:1,pickable:!0,autoHighlight:!0,highlightColor:[255,255,255],visible:this.settings.shipmentDotsOnTourMap,onHover:this.getTooltip}))),this.activeTab=="shipments"){s.push(new f({id:"deliveries",data:this.pickupsAndDeliveries.deliveries,getPosition:e=>e.coord,getFillColor:y.delivery,getRadius:3,opacity:.9,parameters:{depthTest:!1},pickable:!0,radiusUnits:"pixels",onHover:this.getTooltip})),s.push(new f({id:"pickups",data:this.pickupsAndDeliveries.pickups,getPosition:e=>e.coord,getFillColor:y.pickup,getRadius:2,opacity:.9,parameters:{depthTest:!1},pickable:!0,radiusUnits:"pixels",onHover:this.getTooltip}));const t=this.shipments.length>1?32:255;this.services?s.push(new f({id:"services",data:this.shipments,getPosition:e=>[e.toX,e.toY],getColor:[240,0,60,224],getRadius:4,opacity:.9,parameters:{depthTest:!1},pickable:!0,radiusUnits:"pixels",onHover:this.getTooltip})):s.push(new I({id:"shipments",data:this.shipments,getSourcePosition:e=>[e.fromX,e.fromY],getTargetPosition:e=>[e.toX,e.toY],getSourceColor:[0,228,255,t],getTargetColor:[240,0,60,224],getWidth:1+(this.settings.scaleFactor-0)*49/100,widthUnits:"pixels",getHeight:.5,opacity:.9,parameters:{depthTest:!1},widthMinPixels:1,widthMaxPixels:50,updateTriggers:{getWidth:[this.settings.scaleFactor]},transitions:{getWidth:200},onHover:this.getTooltip}))}return this.activeTab=="services"&&this.services&&s.push(new f({id:"services",data:this.shipments,getPosition:t=>[t.toX,t.toY],getColor:[240,0,60,224],getRadius:4,opacity:.9,parameters:{depthTest:!1},pickable:!0,radiusUnits:"pixels",onHover:this.getTooltip})),s.push(new D({id:"depots",data:this.depots,background:!0,backgroundPadding:[3,2,3,1],getColor:[255,255,255],getBackgroundColor:[0,150,240],getPosition:t=>t.midpoint,getText:t=>"Depot",getTextAnchor:"middle",getAlignmentBaseline:"center",getSize:11,opacity:1,noAlloc:!1,billboard:!0,sizeScale:1,pickable:!0,autoHighlight:!0,highlightColor:[255,255,255],onHover:this.getTooltip})),s},pickupsAndDeliveries(){const s={},t={};return this.shipments.forEach(e=>{let i=`${e.fromX}-${e.fromY}`;s[i]||(s[i]={type:"pickup",shipmentIds:[],coord:[e.fromX,e.fromY]}),s[i].shipmentIds.push(e.$id),i=`${e.toX}-${e.toY}`,t[i]||(t[i]={type:"delivery",shipmentIds:[],coord:[e.toX,e.toY]}),t[i].shipmentIds.push(e.$id)}),{type:"activity",pickups:Object.values(s),deliveries:Object.values(t)}},widthScale(){let s=this.settings.scaleFactor;return s==0?1e-6:1/Math.pow(2,(100-s)/5-6)}},async mounted(){const s=`${x}map-styles/${this.globalState.isDarkMode?"dark":"positron"}.json`,t=`map-${this.viewId}`,e=this.globalState.viewState.center,i=this.globalState.viewState.zoom||8;this.mymap=new A.Map({center:e,zoom:i,container:t,style:s}),this.mymap.on("style.load",()=>{this.deckOverlay=new Y({layers:this.layers,onClick:this.handleClick}),this.mymap?.addControl(this.deckOverlay)}),this.mymap.on("move",this.handleMove)},beforeDestroy(){this.deckOverlay&&this.mymap?.removeControl(this.deckOverlay),this.mymap?.remove()},methods:{handleMove(){if(this.mapIsIndependent)return;const s=this.mymap?.getCenter(),t={latitude:s.lat,longitude:s.lng,center:s,zoom:this.mymap?.getZoom(),bearing:this.mymap?.getBearing(),pitch:this.mymap?.getPitch(),jump:!0};p.commit("setMapCamera",t)},getTooltip(s){const{x:t,y:e,object:i}=s;if(!i){this.tooltipStyle.display="none",this.tip=null;return}this.tip={...s},this.tooltipStyle.display="block",this.tooltipStyle.top=`${e+12}px`,this.tooltipStyle.left=`${t+12}px`},handleClick(s){this.onClick&&(s.object?this.onClick(s.object):this.onClick(null))}}});var Q=function(){var t=this,e=t._self._c;return t._self._setupProxy,e("div",{staticClass:"deck-map flex-col"},[e("div",{staticClass:"map-container",attrs:{id:`map-${t.viewId}`}}),t.tip?e("MapTooltip",{staticClass:"deck-tooltip",style:t.tooltipStyle,attrs:{hoverInfo:t.tip}}):t._e()],1)},tt=[],et=S(K,Q,tt,!1,null,null);const st=et.exports,it={messages:{en:{carriers:"Carriers",vehicles:"VEHICLES",services:"SERVICES",shipments:"JOBS",jobs:"JOBS",tours:"TOURS",pickup:"Pickup",delivery:"Delivery",flatten:"Simple&nbsp;tours",shipmentDots:"Show shipments",scaleSize:"Widths",scaleFactor:"Width"},de:{carriers:"Unternehmen",vehicles:"FAHRZEUGE",services:"BETRIEBE",shipments:"AUFTRÄGE",jobs:"JOBS",tours:"TOUREN",pickup:"Abholung",delivery:"Lieferung",flatten:"Simple&nbsp;tours",shipmentDots:"Show shipments",scaleSize:"Widths",scaleFactor:"Width"}}};u.insensitive=!0;const ot=k({name:"CarrierPlugin",i18n:it,components:{DeckMapComponent:st,LegendColors:W,ToggleButton:L.ToggleButton,ZoomButtons:N},props:{root:{type:String,required:!0},subfolder:{type:String,required:!0},yamlConfig:String,config:Object,thumbnail:Boolean,datamanager:{type:Object}},data(){return{linkLayerId:Math.floor(1e12*Math.random()),vizSettings:{simplifyTours:!1,scaleShipmentSizes:!0,shipmentDotsOnTourMap:!0,scaleFactor:0},vizDetails:{network:"",carriers:"",projection:"",title:"",description:"",thumbnail:"",services:!1,center:null},myState:{statusMessage:"",isRunning:!1,subfolder:"",yamlConfig:"",thumbnail:!0,data:[]},myDataManager:this.datamanager||new X(this.root,this.subfolder),searchTerm:"",searchEnabled:!1,globalState:p.state,isLoaded:!0,showHelp:!1,activeTab:"shipments",speedStops:[-10,-5,-2,-1,-.5,-.25,0,.25,.5,1,2,5,10],speed:1,legendBits:[],links:null,toggleTours:!0,toggleVehicles:!0,toggleShipments:!0,toggleServices:!0,detailContent:"",data:null,carriers:[],vehicles:[],shipments:[],shipmentLookup:{},services:[],stopActivities:[],tours:[],plans:[],shownShipments:[],shipmentIdsInTour:[],depots:[],shownDepots:[],shownLegs:[],selectedCarrier:"",selectedTours:[],selectedPlan:null,selectedPlanIndex:null,selectedShipment:null,thumbnailUrl:"url('assets/thumbnail.jpg') no-repeat;",vehicleLookup:[],vehicleLookupString:{},rgb:R({colormap:"phase",nshades:9,format:"rba"}).map(s=>s.slice(0,3)).reverse(),dropdownIsActive:!1}},computed:{fileApi(){return new B(this.fileSystem,p)},fileSystem(){const s=this.$store.state.svnProjects.filter(t=>t.slug===this.root);if(s.length===0)throw console.log("no such project"),Error;return s[0]},urlThumbnail(){return this.thumbnailUrl},textColor(){const s={text:"#3498db",bg:"#eeeef480"},t={text:"white",bg:"#181518aa"};return this.globalState.isDarkMode?t:s}},watch:{"$store.state.viewState"(){w[this.linkLayerId]&&w[this.linkLayerId]()},"globalState.isDarkMode"(){this.updateLegendColors()},async"globalState.authAttempts"(){console.log("AUTH CHANGED - Reload"),this.yamlConfig||this.buildRouteFromUrl(),await this.getVizDetails()}},methods:{handleSelectShipment(s){if(this.selectedShipment===s){if(this.selectedShipment=null,this.shownShipments=[],!this.selectedTours.length||this.selectedShipment==null){const t=this.carriers.filter(e=>e.$id==this.selectedCarrier);this.selectedCarrier="",this.handleSelectCarrier(t[0])}return}this.shownShipments=this.shipments.filter(t=>t.$id===s.$id),this.selectedShipment=s},processActivitiesInTour(s){const t=[];let e=0;const i={};let o=this.vehicles.filter(l=>l.$id===s.vehicleId)[0];const r=this.links[o.$depotLinkId];let n=[.5*(r[0]+r[2]),.5*(r[1]+r[3])],h=o.$depotLinkId;i[`L${o.$depotLinkId}`]={link:o.$depotLinkId,midpoint:n,visits:[{pickup:[],delivery:[],service:[]}],label:"",tour:s,details:{},ptFrom:[r[0],r[1]],ptTo:[r[2],r[3]]};for(const l of s.plan){if(!l.$shipmentId&&!l.$serviceId)continue;var a;if(l.$serviceId?(t.push(l.$serviceId),a=this.shipmentLookup[l.$serviceId]):(t.push(l.$shipmentId),a=this.shipmentLookup[l.$shipmentId]),!a)continue;const c=l.$type==="pickup"?a.$from:a.$to,m=[this.links[c][0],this.links[c][1]],g=[this.links[c][2],this.links[c][3]],$=[.5*(m[0]+g[0]),.5*(m[1]+g[1])],z=this.$t(l.$type),{from:lt,fromX:ct,fromY:ht,to:pt,toX:dt,toY:ut,id:mt,...T}=a,b={id:a.$id,type:z,count:e++,link:c,midpoint:$,label:"",tour:s,details:T,ptFrom:m,ptTo:g};if(c==h)i[`L${c}`].visits[i[`L${c}`].visits.length-1][l.$type].push(b);else if(`L${c}`in i){const v={pickup:[],delivery:[],service:[]};v[l.$type].push(b),i[`L${c}`].visits.push(v)}else{const v={pickup:[],delivery:[],service:[]};v[l.$type].push(b),i[`L${c}`]={link:c,midpoint:$,label:"",tour:s,details:T,ptFrom:m,ptTo:g,visits:[v]}}h=c}const d=Object.values(i);for(let l=0;l<d.length;l++)d[l].label=`${l}`;return d[0].label="Depot",{shipmentIdsInTour:t,stopActivities:d}},setupDepots(){const s={};this.vehicles.forEach(t=>{const e=t.$depotLinkId;let i=this.links[e];i&&(s[e]||(s[e]={type:"depot",link:t.$depotLinkId,midpoint:[.5*(i[0]+i[2]),.5*(i[1]+i[3])],coords:this.links[t.$depotLinkId],vehicles:{}}),s[e].vehicles[t.$id]=t)}),this.depots=Object.values(s),this.shownDepots=this.depots.slice(0)},selectAllTours(){this.selectedTours=[],this.shownLegs=[],this.stopActivities=[],this.shownDepots=[],this.shownShipments=this.shipments.slice(0);for(const s of this.tours){s.legs.forEach((e,i)=>this.addRouteToMap(s,e,i++));const t=this.processActivitiesInTour(s);this.stopActivities=this.stopActivities.concat(t.stopActivities),this.setupDepots()}},async handleSelectTour(s){if(!s.legs.length){console.log("No Route.");for(let o=0;o<s.plan.length;o++)if(s.plan[o].$shipmentId){const r=s.plan[o].$shipmentId,n=[this.shipmentLookup[r].$from,this.shipmentLookup[r].$to];s.legs.push({links:n})}this.vizSettings.simplifyTours=!0}if(this.selectedTours.includes(s)){this.selectedTours=this.selectedTours.filter(o=>o!==s),this.shownLegs=this.shownLegs.filter(o=>o.tour!==s),this.stopActivities=this.stopActivities.filter(o=>o.tour!==s),this.selectedTours.length||this.selectAllTours();return}this.selectedTours.length||(this.selectedTours=[],this.shownLegs=[],this.stopActivities=[],this.shownDepots=[]),this.selectedTours.push(s);const{shipmentIdsInTour:t,stopActivities:e}=this.processActivitiesInTour(s);this.shipmentIdsInTour=t;let i=0;for(const o of s.legs)this.addRouteToMap(s,o,i++);this.stopActivities=this.stopActivities.concat(e)},addRouteToMap(s,t,e){const i=[[this.links[t.links[0]][0],this.links[t.links[0]][1]]];for(const o of t.links){const r=i[i.length-1],n=[this.links[o][0],this.links[o][1]];(n[0]!==r[0]||n[1]!==r[1])&&i.push(n),i.push([this.links[o][2],this.links[o][3]])}this.shownLegs=this.shownLegs.concat([{tour:s,shipmentsOnBoard:t.shipmentsOnBoard,totalSize:t.totalSize,count:e,points:i,color:this.rgb[(3+s.tourNumber)%this.rgb.length],type:"leg"}])},handleSelectCarrier(s){if(this.dropdownIsActive=!1,!this.links)return;const t=s.$id;if(this.vehicles=[],this.shipments=[],this.services=[],this.tours=[],this.plans=[],this.shownShipments=[],this.shownDepots=[],this.selectedShipment=null,this.shipmentIdsInTour=[],this.stopActivities=[],this.shownLegs=[],this.selectedCarrier===t){this.selectedCarrier="";return}this.selectedCarrier=t;let e=s.capabilities.vehicles.vehicle||[];this.vehicles=e.sort((i,o)=>u(i,o)),this.setupDepots(),this.shipments=this.processShipments(s),s.services?.service?.length&&(this.services=s.services.service.sort((i,o)=>u(i.$id,o.$id))),this.tours=this.processTours(s),this.shownShipments=this.shipments,this.selectAllTours()},getAllPlans(s){if(s.plan!=null){this.plans.push(s.plan),this.selectedPlan=s.plan;return}if(s.plans!=null){if(s.plans.plan.length==null){this.plans.push(s.plans.plan),this.selectedPlan=s.plans.plan;return}this.plans=s.plans.plan;for(let t=0;t<s.plans.plan.length;t++){if(s.plans.plan[t].selected=="true"){this.selectedPlan=s.plans.plan[t];break}this.selectedPlan=s.plans.plan[t]}}},processTours(s){if(this.getAllPlans(s),!this.selectPlan||!this.plans.length)return[];Array.isArray(this.selectedPlan.tour)||(this.selectedPlan.tour=[this.selectedPlan.tour]);const t=this.selectedPlan.tour.map((e,i)=>{const o=[e.act[0]],r=new Set;for(let a=1;a<e.act.length;a++)e.leg[a-1].shipmentsOnBoard=[...r],o.push(e.leg[a-1]),o.push(e.act[a]),e.act[a].$type=="pickup"&&e.act[a].$shipmentId&&r.add(e.act[a].$shipmentId),e.act[a].$type=="delivery"&&e.act[a].$shipmentId&&r.delete(e.act[a].$shipmentId);const n=e.leg.filter(a=>a.route&&a.route.length).map(a=>{const d=a.shipmentsOnBoard.map(c=>this.shipmentLookup[c]),l=d.reduce((c,m)=>c+parseFloat(m?.$size||0),0);return{shipmentsOnBoard:d,totalSize:l,links:a.route?a.route.split(" "):[]}});return{vehicleId:e.$vehicleId,tourId:e.$tourId,plan:o,legs:n,tourNumber:0}});return t.sort((e,i)=>u(e.vehicleId,i.vehicleId)),t.forEach((e,i)=>e.tourNumber=i),t},processShipments(s){this.shipmentLookup={};var t=[];if(s.shipments?.shipment?.length)t=s.shipments.shipment.sort((e,i)=>u(e.$id,i.$id));else if(s.services?.service?.length)t=s.services.service.sort((e,i)=>u(e.$id,i.$id)),this.processServices(s,t);else return[];try{for(const e of t)e.fromX=.5*(this.links[e.$from][0]+this.links[e.$from][2]),e.fromY=.5*(this.links[e.$from][1]+this.links[e.$from][3]),e.toX=.5*(this.links[e.$to][0]+this.links[e.$to][2]),e.toY=.5*(this.links[e.$to][1]+this.links[e.$to][3]),this.shipmentLookup[e.$id]=e}catch{}return t},processServices(s,t){this.vizDetails.services=!0;try{for(const e of t)e.toX=.5*(this.links[e.$to][0]+this.links[e.$to][2]),e.toY=.5*(this.links[e.$to][1]+this.links[e.$to][3]),e.type="service",this.shipmentLookup[e.$id]=e,console.log(e)}catch{}},buildRouteFromUrl(){const s=this.$route.params;if(!s.project||!s.pathMatch){console.log("I CANT EVEN: NO PROJECT/PARHMATCH");return}const t=1+s.pathMatch.lastIndexOf("/"),e=s.pathMatch.substring(0,t),i=s.pathMatch.substring(t);this.myState.subfolder=e,this.myState.yamlConfig=i},async getVizDetails(){if(this.config){this.vizDetails=Object.assign({},this.config);return}if(this.yamlConfig?.endsWith("yaml")||this.yamlConfig?.endsWith("yml"))try{const o=this.yamlConfig.indexOf("/")>-1?this.yamlConfig:this.subfolder+"/"+this.yamlConfig,r=await this.fileApi.getFileText(o);this.vizDetails=P.parse(r),this.vizDetails.title&&this.$emit("title",this.vizDetails.title);return}catch(o){console.log("failed"+o);const r=o;this.fileSystem.needPassword&&r.status===401?p.commit("requestLogin",this.fileSystem.slug):this.$emit("error",""+o);return}const s=this.myState.yamlConfig.substring(0,15+this.myState.yamlConfig.indexOf("carriers")),{files:t}=await this.fileApi.getDirectory(this.myState.subfolder);let e=this.myState.yamlConfig.replaceAll("carriers","network");if(t.indexOf(e)==-1){const o=t.filter(r=>r.indexOf("network")>-1);o.length?e=o[0]:(this.myState.statusMessage="No road network found.",e="")}this.vizDetails={network:e,carriers:this.yamlConfig,title:s,description:"",center:this.vizDetails.center,projection:"",thumbnail:"",services:!1},this.$emit("title","Carrier Explorer"),this.buildThumbnail()},async setMapCenter(){let s=0,t=0,e=0;if(this.vizDetails.center)typeof this.vizDetails.center=="string"&&(this.vizDetails.center=this.vizDetails.center.split(",").map(Number)),t=this.vizDetails.center[0],e=this.vizDetails.center[1];else if(!this.vizDetails.center){if(this.data=Object.entries(this.links),!this.data.length)return;const i=this.data.length/2,o=4096;for(let r=0;r<i;r+=o)t+=this.data[r*2][1][0],e+=this.data[r*2+1][1][1],s++;t=t/s,e=e/s}t&&e&&this.$store.commit("setMapCamera",{longitude:t,latitude:e,zoom:9,bearing:0,pitch:0,jump:!1})},async buildThumbnail(){if(this.thumbnail&&this.vizDetails.thumbnail)try{const s=await this.fileApi.getFileBlob(this.myState.subfolder+"/"+this.vizDetails.thumbnail),t=await M.arraybuffer(s),e=E(t);e&&(this.thumbnailUrl=`center / cover no-repeat url(data:image/png;base64,${e})`)}catch(s){console.error(s)}},handleClick(s){console.log("CLICK!",s),s||this.clickedEmptyMap(),s?.type=="depot"&&this.clickedDepot(s),s?.type=="leg"&&this.clickedLeg(s)},clickedDepot(s){const t=Object.values(s.vehicles).map(e=>e.$id);this.selectedTours=[],this.shownShipments=[];for(const e of this.tours)t.includes(e.vehicleId)&&(this.handleSelectTour(e),this.shipmentIdsInTour.forEach(i=>{this.shownShipments.push(this.shipmentLookup[i])}))},clickedLeg(s){s?.tour&&this.handleSelectTour(s?.tour)},clickedEmptyMap(){this.selectAllTours()},updateLegendColors(){},async loadCarriers(){const s=await this.loadFileOrGzippedFile(this.vizDetails.carriers);return s?(await F(s,{alwaysArray:["carriers.carrier","carriers.carrier.capabilities.vehicles.vehicle","carriers.carrier.plan.tour","carriers.carrier.shipments.shipment","carriers.carrier.services.service"]})).carriers.carrier.sort((i,o)=>u(i.$id,o.$id)):[]},async loadNetwork(){if(this.myState.statusMessage="Loading network...",this.vizDetails.network.indexOf(".xml.")>-1||this.vizDetails.network.endsWith(".avro")){const s=await this.myDataManager.getRoadNetwork(this.vizDetails.network,this.subfolder,this.vizDetails,null,!0);this.vizDetails.projection=""+s.projection,this.myState.statusMessage="Building network link table";const t={};return s.linkId.forEach((e,i)=>{t[e]=[s.source[i*2],s.source[i*2+1],s.dest[i*2],s.dest[i*2+1]]}),t}else{const s=await this.fileApi.getFileJson(this.myState.subfolder+"/"+this.vizDetails.network);return this.vizDetails.projection="EPSG:4326",s}},async fetchNetwork(s,t){return new Promise((e,i)=>{const o=new U;try{o.postMessage({filePath:s,fileSystem:this.fileSystem,vizDetails:t}),o.onmessage=r=>{if(r.data.promptUserForCRS){let n=prompt("Enter the coordinate reference system, e.g. EPSG:25832")||"EPSG:31468";Number.isFinite(parseInt(n))&&(n=`EPSG:${n}`),o.postMessage({crs:n});return}if(r.data.status){this.myState.statusMessage=""+r.data.status;return}o.terminate(),r.data.error&&(console.error(r.data.error),p.commit("error",r.data.error),this.myState.statusMessage=r.data.error,i(r.data.error)),e(r.data.links)}}catch(r){o.terminate(),console.error(r),i(r)}})},toggleLoaded(s){this.isLoaded=s},rotateColors(){localStorage.setItem("plugin/agent-animation/colorscheme",this.globalState.isDarkMode?_.DarkMode:_.LightMode)},async loadFileOrGzippedFile(s){let t=`${this.subfolder}/${s}`;try{if(t.indexOf("*")>-1||t.indexOf("?")>-1){const o=t.substring(1+t.lastIndexOf("/")),r=t.substring(0,t.lastIndexOf("/")),{files:n}=await this.fileApi.getDirectory(r),h=O(n,o);if(h.length==0)throw Error(`No files matched "${o}"`);if(h.length>1)throw Error(`More than one file matched "${o}": ${h}`);t=`${r}/${h[0]}`}let i="";if(t.endsWith("xml")||t.endsWith("gz")){const r=await(await this.fileApi.getFileBlob(t)).arrayBuffer(),n=await j(r);return new TextDecoder("utf-8").decode(n)}}catch{}const e=`Error loading ${t}`;return p.commit("error",e),this.myState.statusMessage=e,""},selectDropdown(){this.dropdownIsActive=!this.dropdownIsActive},selectPlan(s){for(let t=0;t<this.plans.length;t++)this.plans[t].$selected="false";s.$selected="true",this.selectedPlanIndex=this.plans.indexOf(s),this.selectedTours=[],this.selectDropdown(),this.selectedPlan=s}},async mounted(){p.commit("setFullScreen",!this.thumbnail),this.myState.thumbnail=this.thumbnail,this.myState.subfolder=this.subfolder,this.yamlConfig||this.buildRouteFromUrl(),await this.getVizDetails(),!this.thumbnail&&(this.showHelp=!1,this.updateLegendColors(),this.myState.statusMessage="Loading carriers...",this.carriers=await this.loadCarriers(),await this.$nextTick(),this.links=await this.loadNetwork(),this.setMapCenter(),this.myState.statusMessage="",this.carriers.length&&this.handleSelectCarrier(this.carriers[0]),this.tours.length&&this.handleSelectTour(this.tours[0]))},beforeDestroy(){this.myState.isRunning=!1,p.commit("setFullScreen",!1),this.$store.commit("setFullScreen",!1)}});var rt=function(){var t=this,e=t._self._c;return t._self._setupProxy,e("div",{staticClass:"carrier-viewer",class:{"hide-thumbnail":!t.thumbnail},style:{background:t.urlThumbnail},attrs:{oncontextmenu:"return false"}},[e("div",{staticClass:"container-1"},[e("div",{staticClass:"main-panel"},[t.thumbnail?t._e():e("DeckMapComponent",{staticClass:"anim",attrs:{activeTab:t.activeTab,shipments:t.shownShipments,depots:t.shownDepots,legs:t.shownLegs,stopActivities:t.stopActivities,dark:t.globalState.isDarkMode,center:t.vizDetails.center,viewId:t.linkLayerId,settings:t.vizSettings,numSelectedTours:t.selectedTours.length,onClick:t.handleClick,projection:t.vizDetails.projection,services:t.vizDetails.services}}),t.thumbnail?t._e():e("ZoomButtons",{attrs:{corner:"top-left"}}),t.myState.statusMessage?e("div",{staticClass:"xmessage"},[t._v(t._s(t.myState.statusMessage))]):t._e()],1),t.thumbnail?t._e():e("div",{staticClass:"right-panel",attrs:{darkMode:!0}},[t.carriers.length?e("h3",{staticStyle:{"margin-left":"0.25rem"}},[t._v(t._s(t.$t("carriers")))]):t._e(),e("div",{staticClass:"carrier-list",attrs:{"data-testid":"carrier-list"}},t._l(t.carriers,function(i){return e("div",{key:i.$id,staticClass:"carrier",class:{selected:i.$id===t.selectedCarrier},on:{click:function(o){return t.handleSelectCarrier(i)}}},[e("div",{staticClass:"carrier-title"},[t._v(t._s(i.$id))])])}),0),e("h4",[t._v(t._s(t.selectedCarrier||"Details"))]),t.selectedCarrier?e("b-field",{staticClass:"detail-buttons",attrs:{size:"is-small"}},[e("b-radio-button",{attrs:{"native-value":"shipments",size:"is-small",type:"is-warning"},model:{value:t.activeTab,callback:function(i){t.activeTab=i},expression:"activeTab"}},[e("span",[t._v(t._s(t.$t("jobs")))])]),e("b-radio-button",{attrs:{"native-value":"tours",size:"is-small",type:"is-warning"},model:{value:t.activeTab,callback:function(i){t.activeTab=i},expression:"activeTab"}},[e("span",[t._v(t._s(t.$t("tours")))])]),e("b-radio-button",{attrs:{"native-value":"vehicles",size:"is-small",type:"is-warning"},model:{value:t.activeTab,callback:function(i){t.activeTab=i},expression:"activeTab"}},[e("span",[t._v(t._s(t.$t("vehicles")))])]),t.services.length?e("b-radio-button",{attrs:{"native-value":"services",size:"is-small",type:"is-warning"},model:{value:t.activeTab,callback:function(i){t.activeTab=i},expression:"activeTab"}},[e("span",[t._v(t._s(t.$t("services")))])]):t._e()],1):t._e(),e("div",{staticClass:"detail-area"},[t.activeTab=="shipments"&&!t.vizDetails.services?e("div",{staticClass:"shipments"},[e("span",[t._v(t._s(t.$t("jobs"))+": "+t._s(t.shipments.length))]),t._l(t.shipments,function(i,o){return e("div",{key:`${o}-${i.$id}`,staticClass:"leaf tour",class:{selected:i==t.selectedShipment,"shipment-in-tour":t.shipmentIdsInTour.includes(i.$id)},on:{click:function(r){return t.handleSelectShipment(i)}}},[t._v(t._s(`${i.$id}: ${i.$from}-${i.$to}`))])})],2):t._e(),t.activeTab=="shipments"&&t.vizDetails.services?e("div",{staticClass:"shipments"},[e("span",[t._v(t._s(t.$t("jobs"))+": "+t._s(t.shipments.length))]),t._l(t.shipments,function(i,o){return e("div",{key:`${o}-${i.$id}`,staticClass:"leaf tour",class:{selected:i==t.selectedShipment,"shipment-in-tour":t.shipmentIdsInTour.includes(i.$id)},on:{click:function(r){return t.handleSelectShipment(i)}}},[t._v(t._s(`${i.$id}`))])})],2):t._e(),t.activeTab=="tours"?e("div",{staticClass:"tours"},[this.plans.length>1?e("div",{staticClass:"dropdown",class:{"is-active":t.dropdownIsActive},staticStyle:{width:"100%"}},[e("div",{staticClass:"dropdown-trigger",on:{click:function(i){return t.selectDropdown()}}},[e("button",[e("span",[t._v("Plan "+t._s(t.selectedPlanIndex+1))]),t._m(0)])]),e("div",{staticClass:"dropdown-menu"},[e("div",{staticClass:"dropdown-content"},t._l(this.plans,function(i,o){return e("a",{staticClass:"dropdown-item",class:{"is-active":i.$selected=="true"},on:{click:function(r){return t.selectPlan(i)}}},[t._v("Plan "+t._s(o+1))])}),0)])]):t._e(),e("span",[t._v(t._s(t.$t("tours"))+": "+t._s(t.tours.length))]),t._l(t.tours,function(i,o){return e("div",{key:`${o}-${i.$id}`,staticClass:"leaf tour",class:{selected:t.selectedTours.includes(i)},on:{click:function(r){return t.handleSelectTour(i)}}},[i.tourId?e("div",[t._v(t._s(i.tourId)+": "+t._s(`${i.vehicleId}`))]):e("div",[t._v(t._s(`${i.vehicleId}`))])])})],2):t._e(),t.activeTab=="vehicles"?e("div",{staticClass:"vehicles"},[e("span",[t._v(t._s(t.$t("vehicles"))+": "+t._s(t.vehicles.length))]),t._l(t.vehicles,function(i,o){return e("div",{key:`${o}-${i.$id}`,staticClass:"leaf tour"},[t._v(t._s(i.$id))])})],2):t._e(),t.activeTab=="services"?e("div",{staticClass:"services"},[e("span",[t._v(t._s(t.$t("services"))+": "+t._s(t.services.length))]),t._l(t.services,function(i,o){return e("div",{key:`${o}-${i.$id}`,staticClass:"leaf tour"},[t._v(t._s(`${i.$id}`))])})],2):t._e()]),e("div",{staticClass:"switchbox"},[e("div",{staticClass:"switches"},[e("p",[t._v(t._s(t.$t("scaleSize")))]),e("b-slider",{staticClass:"slider",attrs:{tooltip:!1,type:"is-link",size:"is-small"},model:{value:t.vizSettings.scaleFactor,callback:function(i){t.$set(t.vizSettings,"scaleFactor",i)},expression:"vizSettings.scaleFactor"}})],1),e("div",{staticClass:"switches"},[e("b-switch",{model:{value:t.vizSettings.shipmentDotsOnTourMap,callback:function(i){t.$set(t.vizSettings,"shipmentDotsOnTourMap",i)},expression:"vizSettings.shipmentDotsOnTourMap"}},[e("span",{domProps:{innerHTML:t._s(t.$t("shipmentDots"))}})]),e("b-switch",{model:{value:t.vizSettings.simplifyTours,callback:function(i){t.$set(t.vizSettings,"simplifyTours",i)},expression:"vizSettings.simplifyTours"}},[e("span",{domProps:{innerHTML:t._s(t.$t("flatten"))}})])],1)])],1)])])},at=[function(){var s=this,t=s._self._c;return s._self._setupProxy,t("span",{staticClass:"icon is-small"},[t("i",{staticClass:"fas fa-angle-down"})])}],nt=S(ot,rt,at,!1,null,"fd0f874c");const Pt=nt.exports;export{Pt as default};
@@ -1 +1 @@
1
- import{d as l,n as s}from"./index-CHe7BiNX.js";const a=l({name:"CollapsiblePanel",props:{initialCollapsed:Boolean,direction:String,locked:Boolean},data:()=>({collapsed:!1}),mounted(){this.collapsed=!!this.initialCollapsed},methods:{handleClick(){this.collapsed=!this.collapsed}}});var o=function(){var e=this,t=e._self._c;return e._self._setupProxy,t("div",{staticClass:"outer",class:{collapsed:e.collapsed}},[e.direction==="left"?t("div",{staticClass:"body left",style:{transform:e.collapsed?"translateX(-50%) scale(0,1)":"none"}},[e._t("default")],2):t("div",{staticClass:"body",style:{order:1,transform:e.collapsed?"translateX(50%) scale(0,1)":"none"}},[e._t("default")],2),e.locked?t("div",{staticClass:"xbutton",style:{order:e.direction==="left"?1:2}},[t("div",{staticClass:"rotate",staticStyle:{width:"0.8rem"}})]):t("div",{staticClass:"xbutton",class:{collapsed:e.collapsed},style:{order:e.direction==="left"?1:2},on:{click:e.handleClick}},[t("div",{staticClass:"rotate",style:{transform:`rotate(${e.collapsed?180:360}deg)`}},[e._v(e._s(e.direction==="left"?"<":">"))])])])},i=[],n=s(a,o,i,!1,null,"0ed973d5");const c=n.exports;export{c as C};
1
+ import{d as l,n as s}from"./index-D3p5oi12.js";const a=l({name:"CollapsiblePanel",props:{initialCollapsed:Boolean,direction:String,locked:Boolean},data:()=>({collapsed:!1}),mounted(){this.collapsed=!!this.initialCollapsed},methods:{handleClick(){this.collapsed=!this.collapsed}}});var o=function(){var e=this,t=e._self._c;return e._self._setupProxy,t("div",{staticClass:"outer",class:{collapsed:e.collapsed}},[e.direction==="left"?t("div",{staticClass:"body left",style:{transform:e.collapsed?"translateX(-50%) scale(0,1)":"none"}},[e._t("default")],2):t("div",{staticClass:"body",style:{order:1,transform:e.collapsed?"translateX(50%) scale(0,1)":"none"}},[e._t("default")],2),e.locked?t("div",{staticClass:"xbutton",style:{order:e.direction==="left"?1:2}},[t("div",{staticClass:"rotate",staticStyle:{width:"0.8rem"}})]):t("div",{staticClass:"xbutton",class:{collapsed:e.collapsed},style:{order:e.direction==="left"?1:2},on:{click:e.handleClick}},[t("div",{staticClass:"rotate",style:{transform:`rotate(${e.collapsed?180:360}deg)`}},[e._v(e._s(e.direction==="left"?"<":">"))])])])},i=[],n=s(a,o,i,!1,null,"0ed973d5");const c=n.exports;export{c as C};
@@ -1 +1 @@
1
- import{c as oe,h as fe,r as E}from"./color-CBfzWUsH.js";import{b as I,g as re,h as se,l as le,d as ce,c as de}from"./bisect-CYcslDjR.js";import{s as ie,a as ue,b as be,c as me,d as he,e as ge,f as pe,g as ye,h as ve,i as we,o as _,t as L}from"./threshold-BCEk2Ck_.js";import{c as k}from"./init-DZFJxo1o.js";import{w as F,v as Be,l as ke,k as Me,j as Fe,u as Ae,t as Re,n as xe,m as Ce,h as $e,s as Ge,p as Ve,f as Oe,g as Ne,e as De,r as Pe,d as Ie,q as ze,o as Ee,b as Se,c as Ye,a as je,i as Te,x as _e,y as Le,z as qe,A as We,B as He,C as Ue,D as Je,E as Ke,F as Qe,G as Xe,H as Ze,I as ea,J as aa,K as ta,L as na,M as oa,N as fa,O as ra}from"./viridis-Dsxo9Ge-.js";import{c as sa,i as q,w as la}from"./rainbow-DYLOPEGn.js";import{i as W,g as N}from"./index-CHe7BiNX.js";const ca=Object.freeze(Object.defineProperty({__proto__:null,color:oe,cubehelix:I,gray:re,hcl:se,hsl:fe,lab:le,lch:ce,rgb:E},Symbol.toStringTag,{value:"Module"})),da=k("4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab");var H=new Array(3).concat("d8b365f5f5f55ab4ac","a6611adfc27d80cdc1018571","a6611adfc27df5f5f580cdc1018571","8c510ad8b365f6e8c3c7eae55ab4ac01665e","8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e","8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e","8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e","5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30","5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30").map(k);const ia=F(H);var U=new Array(3).concat("af8dc3f7f7f77fbf7b","7b3294c2a5cfa6dba0008837","7b3294c2a5cff7f7f7a6dba0008837","762a83af8dc3e7d4e8d9f0d37fbf7b1b7837","762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837","762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837","762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837","40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b","40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b").map(k);const ua=F(U);var J=new Array(3).concat("e9a3c9f7f7f7a1d76a","d01c8bf1b6dab8e1864dac26","d01c8bf1b6daf7f7f7b8e1864dac26","c51b7de9a3c9fde0efe6f5d0a1d76a4d9221","c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221","c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221","c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221","8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419","8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419").map(k);const ba=F(J);var K=new Array(3).concat("998ec3f7f7f7f1a340","5e3c99b2abd2fdb863e66101","5e3c99b2abd2f7f7f7fdb863e66101","542788998ec3d8daebfee0b6f1a340b35806","542788998ec3d8daebf7f7f7fee0b6f1a340b35806","5427888073acb2abd2d8daebfee0b6fdb863e08214b35806","5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806","2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08","2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08").map(k);const ma=F(K);var Q=new Array(3).concat("ef8a62f7f7f767a9cf","ca0020f4a58292c5de0571b0","ca0020f4a582f7f7f792c5de0571b0","b2182bef8a62fddbc7d1e5f067a9cf2166ac","b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac","b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac","b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac","67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061","67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061").map(k);const ha=F(Q);var X=new Array(3).concat("ef8a62ffffff999999","ca0020f4a582bababa404040","ca0020f4a582ffffffbababa404040","b2182bef8a62fddbc7e0e0e09999994d4d4d","b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d","b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d","b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d","67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a","67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a").map(k);const ga=F(X);var Z=new Array(3).concat("fc8d59ffffbf91bfdb","d7191cfdae61abd9e92c7bb6","d7191cfdae61ffffbfabd9e92c7bb6","d73027fc8d59fee090e0f3f891bfdb4575b4","d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4","d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4","d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4","a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695","a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695").map(k);const pa=F(Z);var ee=new Array(3).concat("fc8d59ffffbf91cf60","d7191cfdae61a6d96a1a9641","d7191cfdae61ffffbfa6d96a1a9641","d73027fc8d59fee08bd9ef8b91cf601a9850","d73027fc8d59fee08bffffbfd9ef8b91cf601a9850","d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850","d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850","a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837","a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837").map(k);const ya=F(ee);var ae=new Array(3).concat("fc8d59ffffbf99d594","d7191cfdae61abdda42b83ba","d7191cfdae61ffffbfabdda42b83ba","d53e4ffc8d59fee08be6f59899d5943288bd","d53e4ffc8d59fee08bffffbfe6f59899d5943288bd","d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd","d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd","9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2","9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2").map(k);const va=F(ae);function wa(e){return e=Math.max(0,Math.min(1,e)),"rgb("+Math.max(0,Math.min(255,Math.round(-4.54-e*(35.34-e*(2381.73-e*(6402.7-e*(7024.72-e*2710.57)))))))+", "+Math.max(0,Math.min(255,Math.round(32.49+e*(170.73+e*(52.82-e*(131.46-e*(176.58-e*67.37)))))))+", "+Math.max(0,Math.min(255,Math.round(81.24+e*(442.36-e*(2482.43-e*(6167.24-e*(6614.94-e*2475.67)))))))+")"}const Ba=de(I(300,.5,0),I(-240,.5,1));var V=E(),ka=Math.PI/3,Ma=Math.PI*2/3;function Fa(e){var a;return e=(.5-e)*Math.PI,V.r=255*(a=Math.sin(e))*a,V.g=255*(a=Math.sin(e+ka))*a,V.b=255*(a=Math.sin(e+Ma))*a,V+""}function Aa(e){return e=Math.max(0,Math.min(1,e)),"rgb("+Math.max(0,Math.min(255,Math.round(34.61+e*(1172.33-e*(10793.56-e*(33300.12-e*(38394.49-e*14825.05)))))))+", "+Math.max(0,Math.min(255,Math.round(23.31+e*(557.33+e*(1225.33-e*(3574.96-e*(1073.77+e*707.56)))))))+", "+Math.max(0,Math.min(255,Math.round(27.2+e*(3211.1-e*(15327.97-e*(27814-e*(22569.18-e*6838.66)))))))+")"}const te=Object.freeze(Object.defineProperty({__proto__:null,interpolateBlues:Be,interpolateBrBG:ia,interpolateBuGn:ke,interpolateBuPu:Me,interpolateCividis:wa,interpolateCool:sa,interpolateCubehelixDefault:Ba,interpolateGnBu:Fe,interpolateGreens:Ae,interpolateGreys:Re,interpolateInferno:xe,interpolateMagma:Ce,interpolateOrRd:$e,interpolateOranges:Ge,interpolatePRGn:ua,interpolatePiYG:ba,interpolatePlasma:Ve,interpolatePuBu:Oe,interpolatePuBuGn:Ne,interpolatePuOr:ma,interpolatePuRd:De,interpolatePurples:Pe,interpolateRainbow:q,interpolateRdBu:ha,interpolateRdGy:ga,interpolateRdPu:Ie,interpolateRdYlBu:pa,interpolateRdYlGn:ya,interpolateReds:ze,interpolateSinebow:Fa,interpolateSpectral:va,interpolateTurbo:Aa,interpolateViridis:Ee,interpolateWarm:la,interpolateYlGn:Se,interpolateYlGnBu:Ye,interpolateYlOrBr:je,interpolateYlOrRd:Te,schemeAccent:ie,schemeBlues:_e,schemeBrBG:H,schemeBuGn:Le,schemeBuPu:qe,schemeCategory10:ue,schemeDark2:be,schemeGnBu:We,schemeGreens:He,schemeGreys:Ue,schemeObservable10:me,schemeOrRd:Je,schemeOranges:Ke,schemePRGn:U,schemePaired:he,schemePastel1:ge,schemePastel2:pe,schemePiYG:J,schemePuBu:Qe,schemePuBuGn:Xe,schemePuOr:K,schemePuRd:Ze,schemePurples:ea,schemeRdBu:Q,schemeRdGy:X,schemeRdPu:aa,schemeRdYlBu:Z,schemeRdYlGn:ee,schemeReds:ta,schemeSet1:ye,schemeSet2:ve,schemeSet3:we,schemeSpectral:ae,schemeTableau10:da,schemeYlGn:na,schemeYlGnBu:oa,schemeYlOrBr:fa,schemeYlOrRd:ra},Symbol.toStringTag,{value:"Module"})),j={greenRed:["#a6d96a","#d9ef8b","#ffffbf","#fee08b","#fdae61","#f46d43","#d73027"]},C={...te,...ca};var Ra=(e=>(e[e.categorical=0]="categorical",e[e.diverging=1]="diverging",e[e.sequential=2]="sequential",e))(Ra||{});function et(e,a){let t=e;typeof e=="string"&&(t=e.split(",").map(d=>d.trim()));const n=`interpolate${a||"Rainbow"}`,s=te[n]||q,o=_().domain(t).range(t.map((d,b)=>s((b+1)/t.length))),c={};return t.forEach(d=>c[d]=o(d)),c}function xa(e){return e.data?e.data.type===W.STRING||e.options.colorRamp.style==0?Ya(e):e.data2?ja(e):Ca(e):{rgbArray:null,legend:[],calculatedValues:null}}function Ca(e){const{metric:a,max:t,min:n}=_a(e),s=La({options:e.options,max:t,min:n}),o=$a(e),{rgbArray:c,legend:d,isRGBA:b}=Wa({numFeatures:e.numFeatures,metric:a,breakpoints:s,max:t,min:n,transparencies:o,fixedColors:e.options.fixedColors||[]});return{rgbArray:c,legend:d,calculatedValues:a,isRGBA:b}}function $a(e){if(!e.transparency)return;const a=new Uint8Array(e.numFeatures);for(let t=0;t<e.transparency.values.length;t++){const n=e.lookup?e.lookup.values[t]:t;a[n]=Math.floor(255*e.data.values[t])}return a}function Ga(e,a){if(e.length<2)throw new Error("At least two colors are required for interpolation.");const t=[];for(let n=0;n<e.length-1;n++){const s=T(e[n]),o=T(e[n+1]);for(let c=0;c<a;c++){const d=Va(s,o,a,c);t.push(Oa(d))}}return t}function T(e){const a=parseInt(e.slice(1),16),t=a>>16&255,n=a>>8&255,s=a&255;return[t,n,s]}function Va(e,a,t,n){const[s,o,c]=e,[d,b,u]=a,m=Math.round(s+(d-s)*n/t),r=Math.round(o+(b-o)*n/t),f=Math.round(c+(u-c)*n/t);return[m,r,f]}function Oa(e){const[a,t,n]=e;return`#${(1<<24|a<<16|t<<8|n).toString(16).slice(1)}`}function Na(e,a){let t;if(Object.keys(j).includes(e.ramp))return Ga(j[e.ramp],a);if(e.style===0)return C[`scheme${e.ramp}`].slice(0,a);const n=`scheme${e.ramp}`;if(a>3&&C[n]&&C[n][a])t=C[`scheme${e.ramp}`][a];else try{const s=C[`interpolate${e.ramp}`];t=[];for(let o=0;o<a;++o){const c=a<=3?.7*o/(a-1)+.15:o/(a-1),d=s(c),b=C.rgb(d).hex();t.push(b)}}catch{return Na(e,a-1)}return e.style===1&&a%2===1&&(t[Math.floor(a/2)]=N.state.isDarkMode?"#282828":"#e4e4e4"),t}function Da(e){return e.data.type===W.STRING?Pa(e):e.data2?Ia(e):za(e)}function Pa(e){const{columnName:a,dataset:t,scaleFactor:n}=e.options;return{array:new Float32Array,legend:[],calculatedValues:null}}function Ia(e){const{numFeatures:a,data:t,data2:n,lookup:s,lookup2:o,normalize:c,join:d,options:b}=e,{columnName:u,dataset:m,scaleFactor:r,relative:f}=b;if(isNaN(r))return{array:null,legend:[],calculatedValues:null};const p=new Float32Array(a),l=new Float32Array(a),g=new Float32Array(a);n&&o&&(t.values.forEach((i,y)=>{l[s.values[y]]+=i}),n.values.forEach((i,y)=>{g[o.values[y]]+=i}));const B=new Float32Array(a);let M=new Float32Array(0);f&&(M=new Float32Array(a));for(let i=0;i<a;i++)B[i]=l[i]-g[i],f&&(M[i]=100*(B[i]/g[i]));const A=f?M:B;if(r)for(let i=0;i<a;i++)p[i]=Math.abs(A[i]/r);const w=[];for(const i of[1,5,10,17,25,50])w.push({label:r*i,value:i});return w[0].label="<"+w[0].label,w[w.length-1].label=w[w.length-1].label+"+",{array:p,legend:w,calculatedValues:A}}function za(e){const{numFeatures:a,data:t,lookup:n,normalize:s,options:o}=e,{columnName:c,dataset:d,scaleFactor:b}=o;if(Number.isNaN(b))return{array:null,legend:[],calculatedValues:null};const u=new Float32Array(a),m=new Float32Array(a);if(b)for(let f=0;f<t.values.length;f++){const p=n?n.values[f]:f;u[p]=t.values[f]/b,m[p]=t.values[f]}const r=[];for(const f of[1,5,10,17,25,50])r.push({label:b*f,value:f});return r[0].label="<"+r[0].label,r[r.length-1].label=r[r.length-1].label+"+",{array:u,legend:r,calculatedValues:m}}function Ea(e){const{length:a,data:t,lookup:n,normalize:s,join:o,options:c}=e,{columnName:d,dataset:b,scaleFactor:u}=c;if(typeof u!="number")return{heights:0,calculatedValues:null};const m=new Float32Array(a),r=new Float32Array(a);if(o==="@count")for(let l=0;l<t.values.length;l++){const g=n?n.values[l]:l;r[g]+=1}else for(let l=0;l<t.values.length;l++){const g=n?n.values[l]:l;r[g]+=t.values[l]}let f=t.values,p=t.max||-1/0;if(s){f=new Float32Array(t.values.length),p=-1/0;for(let l=0;l<t.values.length;l++)f[l]=s.values[l]?t.values[l]/s.values[l]:NaN,f[l]>p&&(p=f[l])}if(u)for(let l=0;l<t.values.length;l++){const g=n?n.values[l]:l;r[g]=f[l],m[g]=f[l]/u}return{heights:m,calculatedValues:r,normalizedValues:null}}function Sa(e){const{length:a,data:t,lookup:n,normalize:s,join:o,options:c}=e,{columnName:d,dataset:b,scaleFactor:u}=c;if(typeof u!="number")return{radius:0,calculatedValues:null};const m=new Float32Array(a),r=new Float32Array(a);if(!u)return{radius:m,calculatedValues:r};if(o==="@count")for(let f=0;f<t.values.length;f++){const p=n?n.values[f]:f;r[p]+=1}else for(let f=0;f<t.values.length;f++){const p=n?n.values[f]:f;r[p]+=t.values[f]}for(let f=0;f<a;f++)m[f]=Math.sqrt(r[f]/u);return{radius:m,calculatedValues:r}}function Ya(e){const{numFeatures:a,data:t,lookup:n,normalize:s,join:o,options:c}=e,{colorRamp:d,columnName:b,dataset:u,fixedColors:m}=c,r=S(m),f=_().range(r),p=N.state.isDarkMode?48:228,l=new Uint8ClampedArray(a*3).fill(p),g=[];for(let i=0;i<t.values.length;i++){const y=n?n.values[i]:i;g[y]=t.values[i]}for(let i=0;i<a;i++){if(e.filter[i]===-1||g[i]==null)continue;const y=f(g[i]),R=i*3;l[R+0]=y[0],l[R+1]=y[1],l[R+2]=y[2]}const B=[],M=f.domain(),A=f.range();M.forEach((i,y)=>B.push({label:i,value:A[y%A.length]})),B.sort((i,y)=>i.label<y.label?-1:1);const w=g.map(i=>!!i);return{rgbArray:l,legend:B,calculatedValues:null,normalizedValues:null,hasCategory:w}}function ne(e){let{colorRamp:a,fixedColors:t,minDiff:n,maxDiff:s}=e;const o=a.steps??t?.length??5;if(a.breakpoints){const u=a.breakpoints.split(",").map(r=>parseFloat(r.trim()));if(a.steps!==u.length+1)throw Error('Color ramp "steps" must be one larger than number of breakpoints');let m=-1/0;for(const r of u){if(r<m)throw Error("Breakpoints must be in lowest to highest order");m=r}return u}if(o==2)return[0];if(o==3)return[-1,1];const c=s>Math.abs(n)?s:-1*n,d=Math.floor(o/2)-1,b=d+1;if(o%2==1){const u=[1];for(let r=1;r<=d;r++)u.push(r*c/b);const m=u.slice().reverse().map(r=>-1*r);return m.push(...u),m}else{const u=[0];for(let r=1;r<=d;r++)u.push(r*c/b);const m=u.slice().reverse().map(r=>-1*r);return m.pop(),m.push(...u),m}}function ja(e){const{numFeatures:a,options:t,relative:n,data:s,data2:o,lookup:c,lookup2:d}=e,{colorRamp:b,fixedColors:u}=t;let m=new Float32Array(a),r=new Float32Array(a);o&&d&&(s.values.forEach((h,v)=>{m[c.values[v]]+=h}),o.values.forEach((h,v)=>{r[d.values[v]]+=h})),m=z(m,e),r=z(r,e);const f=new Float32Array(a);let p=new Float32Array(0);n&&(p=new Float32Array(a));for(let h=0;h<a;h++)f[h]=m[h]-r[h],n&&(p[h]=100*(f[h]/r[h]));const l=n?p:f,g=l.reduce((h,v)=>Number.isFinite(v)?Math.min(h,v):h,1/0),B=l.reduce((h,v)=>Number.isFinite(v)?Math.max(h,v):h,-1/0);let M;const A=!!t.colorRamp.breakpoints;g<0?M=ne({colorRamp:b,fixedColors:u,minDiff:g,maxDiff:B}):M=Ta({colorRamp:b,fixedColors:u||[],min:g,max:B}).map(h=>b.style===1?h:h*B);const w=S(u||[]),i=L().range(w).domain(M),y=N.state.isDarkMode?[48,48,48]:[232,232,232],R=new Uint8ClampedArray(a*3);l.forEach((h,v)=>{const G=Number.isFinite(h)?i(h):y,x=v*3;R[x+0]=G[0],R[x+1]=G[1],R[x+2]=G[2]});const D=[],P=i.domain(),Y=i.range();let $;for(let h=0;h<P.length;h++){const v=P[h],G=A?$:Math.round($*1),x=A?v:Math.round(v*1);D.push({label:$!==void 0?`${G} — ${x}`:`< ${x}`,value:Y[h]}),$=v}return D.push({label:`> ${Math.round($*1)}`,value:Y[P.length]}),{rgbArray:R,legend:D,calculatedValues:l,normalizedValues:null}}function Ta(e){const{colorRamp:a,fixedColors:t,min:n,max:s}=e;if(a.style===1)return ne({colorRamp:a,fixedColors:t,minDiff:n,maxDiff:s});if(a.breakpoints){const b=a.breakpoints.split(",").map(m=>parseFloat(m));if(a.steps!==b.length+1)throw Error('Color ramp "steps" must be one larger than number of breakpoints');let u=-1/0;for(const m of b){if(m<u)throw Error("Breakpoints must be in lowest to highest order");u=m}return b}const o=t.length,c=3;return new Array(o-1).fill(0).map((b,u)=>Math.pow(1/o*(u+1),c))}function _a(e){const a=new Float32Array(e.numFeatures);if(e.join==="@count")for(let o=0;o<e.data.values.length;o++){const c=e.lookup?e.lookup.values[o]:o;a[c]+=1}else for(let o=0;o<e.data.values.length;o++){const c=e.lookup?e.lookup.values[o]:o;a[c]+=e.data.values[o]}const t=z(a,e);let n=1/0,s=-1/0;for(let o=0;o<e.numFeatures;o++){const c=t[o];Number.isFinite(c)&&(n=Math.min(n,c),s=Math.max(s,c))}return n=n??1/0,s=s??-1/0,{metric:t,max:s,min:n}}function La(e){if(e.options.colorRamp.breakpoints)return qa(e);let a=9;a=e.options.colorRamp?.steps||a,a=e.options.fixedColors?.length||a;const t=3,n=new Array(a-1).fill(0).map((c,d)=>Math.pow(1/a*(d+1),t));let s=[],o=e.max-e.min||1;for(let c=0;c<a-1;c++)s.push(e.min+o*n[c]);return s}function qa(e){if(!e.options.colorRamp.breakpoints)return[];const a=e.options.colorRamp.breakpoints.split(",").map(n=>parseFloat(n));if(e.options.colorRamp.steps!==a.length+1)throw Error('Color ramp "steps" must be one larger than number of breakpoints');let t=-1/0;for(const n of a){if(n<t)throw Error("Breakpoints must be in lowest to highest order");t=n}return a}function Wa(e){const a=S(e.fixedColors),t=L().range(a).domain(e.breakpoints),n=e.transparencies,s=n?4:3,o=new Uint8ClampedArray(e.numFeatures*s),c=N.state.isDarkMode?[48,48,48]:[212,212,212];for(let f=0;f<e.numFeatures;f++){let p=e.metric[f];const l=Number.isNaN(p)?c:t(p),g=f*s;o[g+0]=l[0],o[g+1]=l[1],o[g+2]=l[2],n&&(o[g+3]=n[f])}const d=[],b=t.domain(),u=t.range();let m=e.max>=1e3?0:3,r=e.min;for(let f=0;f<b.length;f++){let p=b[f];const l=O({value:r,precision:m}),g=O({value:p,precision:m});d.push({label:`${l} — ${g}`,value:u[f]}),r=p}return d.push({label:`${O({value:r,precision:m})} — ${O({value:e.max,precision:m})}`,value:u[b.length]}),{rgbArray:o,legend:d,isRGBA:!!e.transparencies}}function z(e,a){if(!a.normalColumn)return e;const t=new Float32Array(a.numFeatures);let n=-1/0;const s=new Float32Array(a.numFeatures);a.normalColumn.values.forEach((d,b)=>{const u=a.normalLookup?a.normalLookup.values[b]:b;s[u]=d});for(let d=0;d<a.numFeatures;d++)t[d]=e[d]/s[d],n=Math.max(t[d],n);const o=t.reduce((d,b)=>Number.isFinite(b)?Math.min(d,b):d,1/0);if(!(a.options.colorRamp?.style===1)&&o<0)throw Error(`Column "${a.data.name}" has negative values: use a diverging color scale`);return t}function S(e){return e.map(t=>{const n=E(t);return[n.r,n.g,n.b]})}function O({value:e,precision:a}){let t=a??3;if(t==0&&(t=-1),typeof e!="number")return e;let n=""+e;if(n.includes(".")&&n.indexOf(".")===n.lastIndexOf(".")&&/\d$/.test(n)){const s=n.substring(0,1+t+n.lastIndexOf("."));try{if(parseInt(s.substring(1+s.indexOf(".")))===0)return s.substring(0,s.indexOf("."))}catch{}return s}return e}const at={getHeightsBasedOnNumericValues:Ea,getColorsForDataColumn:xa,getWidthsForDataColumn:Da,getRadiusForDataColumn:Sa};export{at as C,Ra as S,ya as a,et as b,pa as c,ga as d,ha as e,ma as f,Na as g,T as h,va as i,ba as j,ua as k,ia as l,Fa as m,Ba as n,wa as o,Aa as p,S as q,te as r,ca as s};
1
+ import{c as oe,h as fe,r as E}from"./color-CBfzWUsH.js";import{b as I,g as re,h as se,l as le,d as ce,c as de}from"./bisect-CYcslDjR.js";import{s as ie,a as ue,b as be,c as me,d as he,e as ge,f as pe,g as ye,h as ve,i as we,o as _,t as L}from"./threshold-BCEk2Ck_.js";import{c as k}from"./init-DZFJxo1o.js";import{w as F,v as Be,l as ke,k as Me,j as Fe,u as Ae,t as Re,n as xe,m as Ce,h as $e,s as Ge,p as Ve,f as Oe,g as Ne,e as De,r as Pe,d as Ie,q as ze,o as Ee,b as Se,c as Ye,a as je,i as Te,x as _e,y as Le,z as qe,A as We,B as He,C as Ue,D as Je,E as Ke,F as Qe,G as Xe,H as Ze,I as ea,J as aa,K as ta,L as na,M as oa,N as fa,O as ra}from"./viridis-Dsxo9Ge-.js";import{c as sa,i as q,w as la}from"./rainbow-DYLOPEGn.js";import{i as W,g as N}from"./index-D3p5oi12.js";const ca=Object.freeze(Object.defineProperty({__proto__:null,color:oe,cubehelix:I,gray:re,hcl:se,hsl:fe,lab:le,lch:ce,rgb:E},Symbol.toStringTag,{value:"Module"})),da=k("4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab");var H=new Array(3).concat("d8b365f5f5f55ab4ac","a6611adfc27d80cdc1018571","a6611adfc27df5f5f580cdc1018571","8c510ad8b365f6e8c3c7eae55ab4ac01665e","8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e","8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e","8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e","5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30","5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30").map(k);const ia=F(H);var U=new Array(3).concat("af8dc3f7f7f77fbf7b","7b3294c2a5cfa6dba0008837","7b3294c2a5cff7f7f7a6dba0008837","762a83af8dc3e7d4e8d9f0d37fbf7b1b7837","762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837","762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837","762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837","40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b","40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b").map(k);const ua=F(U);var J=new Array(3).concat("e9a3c9f7f7f7a1d76a","d01c8bf1b6dab8e1864dac26","d01c8bf1b6daf7f7f7b8e1864dac26","c51b7de9a3c9fde0efe6f5d0a1d76a4d9221","c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221","c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221","c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221","8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419","8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419").map(k);const ba=F(J);var K=new Array(3).concat("998ec3f7f7f7f1a340","5e3c99b2abd2fdb863e66101","5e3c99b2abd2f7f7f7fdb863e66101","542788998ec3d8daebfee0b6f1a340b35806","542788998ec3d8daebf7f7f7fee0b6f1a340b35806","5427888073acb2abd2d8daebfee0b6fdb863e08214b35806","5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806","2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08","2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08").map(k);const ma=F(K);var Q=new Array(3).concat("ef8a62f7f7f767a9cf","ca0020f4a58292c5de0571b0","ca0020f4a582f7f7f792c5de0571b0","b2182bef8a62fddbc7d1e5f067a9cf2166ac","b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac","b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac","b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac","67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061","67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061").map(k);const ha=F(Q);var X=new Array(3).concat("ef8a62ffffff999999","ca0020f4a582bababa404040","ca0020f4a582ffffffbababa404040","b2182bef8a62fddbc7e0e0e09999994d4d4d","b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d","b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d","b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d","67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a","67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a").map(k);const ga=F(X);var Z=new Array(3).concat("fc8d59ffffbf91bfdb","d7191cfdae61abd9e92c7bb6","d7191cfdae61ffffbfabd9e92c7bb6","d73027fc8d59fee090e0f3f891bfdb4575b4","d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4","d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4","d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4","a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695","a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695").map(k);const pa=F(Z);var ee=new Array(3).concat("fc8d59ffffbf91cf60","d7191cfdae61a6d96a1a9641","d7191cfdae61ffffbfa6d96a1a9641","d73027fc8d59fee08bd9ef8b91cf601a9850","d73027fc8d59fee08bffffbfd9ef8b91cf601a9850","d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850","d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850","a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837","a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837").map(k);const ya=F(ee);var ae=new Array(3).concat("fc8d59ffffbf99d594","d7191cfdae61abdda42b83ba","d7191cfdae61ffffbfabdda42b83ba","d53e4ffc8d59fee08be6f59899d5943288bd","d53e4ffc8d59fee08bffffbfe6f59899d5943288bd","d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd","d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd","9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2","9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2").map(k);const va=F(ae);function wa(e){return e=Math.max(0,Math.min(1,e)),"rgb("+Math.max(0,Math.min(255,Math.round(-4.54-e*(35.34-e*(2381.73-e*(6402.7-e*(7024.72-e*2710.57)))))))+", "+Math.max(0,Math.min(255,Math.round(32.49+e*(170.73+e*(52.82-e*(131.46-e*(176.58-e*67.37)))))))+", "+Math.max(0,Math.min(255,Math.round(81.24+e*(442.36-e*(2482.43-e*(6167.24-e*(6614.94-e*2475.67)))))))+")"}const Ba=de(I(300,.5,0),I(-240,.5,1));var V=E(),ka=Math.PI/3,Ma=Math.PI*2/3;function Fa(e){var a;return e=(.5-e)*Math.PI,V.r=255*(a=Math.sin(e))*a,V.g=255*(a=Math.sin(e+ka))*a,V.b=255*(a=Math.sin(e+Ma))*a,V+""}function Aa(e){return e=Math.max(0,Math.min(1,e)),"rgb("+Math.max(0,Math.min(255,Math.round(34.61+e*(1172.33-e*(10793.56-e*(33300.12-e*(38394.49-e*14825.05)))))))+", "+Math.max(0,Math.min(255,Math.round(23.31+e*(557.33+e*(1225.33-e*(3574.96-e*(1073.77+e*707.56)))))))+", "+Math.max(0,Math.min(255,Math.round(27.2+e*(3211.1-e*(15327.97-e*(27814-e*(22569.18-e*6838.66)))))))+")"}const te=Object.freeze(Object.defineProperty({__proto__:null,interpolateBlues:Be,interpolateBrBG:ia,interpolateBuGn:ke,interpolateBuPu:Me,interpolateCividis:wa,interpolateCool:sa,interpolateCubehelixDefault:Ba,interpolateGnBu:Fe,interpolateGreens:Ae,interpolateGreys:Re,interpolateInferno:xe,interpolateMagma:Ce,interpolateOrRd:$e,interpolateOranges:Ge,interpolatePRGn:ua,interpolatePiYG:ba,interpolatePlasma:Ve,interpolatePuBu:Oe,interpolatePuBuGn:Ne,interpolatePuOr:ma,interpolatePuRd:De,interpolatePurples:Pe,interpolateRainbow:q,interpolateRdBu:ha,interpolateRdGy:ga,interpolateRdPu:Ie,interpolateRdYlBu:pa,interpolateRdYlGn:ya,interpolateReds:ze,interpolateSinebow:Fa,interpolateSpectral:va,interpolateTurbo:Aa,interpolateViridis:Ee,interpolateWarm:la,interpolateYlGn:Se,interpolateYlGnBu:Ye,interpolateYlOrBr:je,interpolateYlOrRd:Te,schemeAccent:ie,schemeBlues:_e,schemeBrBG:H,schemeBuGn:Le,schemeBuPu:qe,schemeCategory10:ue,schemeDark2:be,schemeGnBu:We,schemeGreens:He,schemeGreys:Ue,schemeObservable10:me,schemeOrRd:Je,schemeOranges:Ke,schemePRGn:U,schemePaired:he,schemePastel1:ge,schemePastel2:pe,schemePiYG:J,schemePuBu:Qe,schemePuBuGn:Xe,schemePuOr:K,schemePuRd:Ze,schemePurples:ea,schemeRdBu:Q,schemeRdGy:X,schemeRdPu:aa,schemeRdYlBu:Z,schemeRdYlGn:ee,schemeReds:ta,schemeSet1:ye,schemeSet2:ve,schemeSet3:we,schemeSpectral:ae,schemeTableau10:da,schemeYlGn:na,schemeYlGnBu:oa,schemeYlOrBr:fa,schemeYlOrRd:ra},Symbol.toStringTag,{value:"Module"})),j={greenRed:["#a6d96a","#d9ef8b","#ffffbf","#fee08b","#fdae61","#f46d43","#d73027"]},C={...te,...ca};var Ra=(e=>(e[e.categorical=0]="categorical",e[e.diverging=1]="diverging",e[e.sequential=2]="sequential",e))(Ra||{});function et(e,a){let t=e;typeof e=="string"&&(t=e.split(",").map(d=>d.trim()));const n=`interpolate${a||"Rainbow"}`,s=te[n]||q,o=_().domain(t).range(t.map((d,b)=>s((b+1)/t.length))),c={};return t.forEach(d=>c[d]=o(d)),c}function xa(e){return e.data?e.data.type===W.STRING||e.options.colorRamp.style==0?Ya(e):e.data2?ja(e):Ca(e):{rgbArray:null,legend:[],calculatedValues:null}}function Ca(e){const{metric:a,max:t,min:n}=_a(e),s=La({options:e.options,max:t,min:n}),o=$a(e),{rgbArray:c,legend:d,isRGBA:b}=Wa({numFeatures:e.numFeatures,metric:a,breakpoints:s,max:t,min:n,transparencies:o,fixedColors:e.options.fixedColors||[]});return{rgbArray:c,legend:d,calculatedValues:a,isRGBA:b}}function $a(e){if(!e.transparency)return;const a=new Uint8Array(e.numFeatures);for(let t=0;t<e.transparency.values.length;t++){const n=e.lookup?e.lookup.values[t]:t;a[n]=Math.floor(255*e.data.values[t])}return a}function Ga(e,a){if(e.length<2)throw new Error("At least two colors are required for interpolation.");const t=[];for(let n=0;n<e.length-1;n++){const s=T(e[n]),o=T(e[n+1]);for(let c=0;c<a;c++){const d=Va(s,o,a,c);t.push(Oa(d))}}return t}function T(e){const a=parseInt(e.slice(1),16),t=a>>16&255,n=a>>8&255,s=a&255;return[t,n,s]}function Va(e,a,t,n){const[s,o,c]=e,[d,b,u]=a,m=Math.round(s+(d-s)*n/t),r=Math.round(o+(b-o)*n/t),f=Math.round(c+(u-c)*n/t);return[m,r,f]}function Oa(e){const[a,t,n]=e;return`#${(1<<24|a<<16|t<<8|n).toString(16).slice(1)}`}function Na(e,a){let t;if(Object.keys(j).includes(e.ramp))return Ga(j[e.ramp],a);if(e.style===0)return C[`scheme${e.ramp}`].slice(0,a);const n=`scheme${e.ramp}`;if(a>3&&C[n]&&C[n][a])t=C[`scheme${e.ramp}`][a];else try{const s=C[`interpolate${e.ramp}`];t=[];for(let o=0;o<a;++o){const c=a<=3?.7*o/(a-1)+.15:o/(a-1),d=s(c),b=C.rgb(d).hex();t.push(b)}}catch{return Na(e,a-1)}return e.style===1&&a%2===1&&(t[Math.floor(a/2)]=N.state.isDarkMode?"#282828":"#e4e4e4"),t}function Da(e){return e.data.type===W.STRING?Pa(e):e.data2?Ia(e):za(e)}function Pa(e){const{columnName:a,dataset:t,scaleFactor:n}=e.options;return{array:new Float32Array,legend:[],calculatedValues:null}}function Ia(e){const{numFeatures:a,data:t,data2:n,lookup:s,lookup2:o,normalize:c,join:d,options:b}=e,{columnName:u,dataset:m,scaleFactor:r,relative:f}=b;if(isNaN(r))return{array:null,legend:[],calculatedValues:null};const p=new Float32Array(a),l=new Float32Array(a),g=new Float32Array(a);n&&o&&(t.values.forEach((i,y)=>{l[s.values[y]]+=i}),n.values.forEach((i,y)=>{g[o.values[y]]+=i}));const B=new Float32Array(a);let M=new Float32Array(0);f&&(M=new Float32Array(a));for(let i=0;i<a;i++)B[i]=l[i]-g[i],f&&(M[i]=100*(B[i]/g[i]));const A=f?M:B;if(r)for(let i=0;i<a;i++)p[i]=Math.abs(A[i]/r);const w=[];for(const i of[1,5,10,17,25,50])w.push({label:r*i,value:i});return w[0].label="<"+w[0].label,w[w.length-1].label=w[w.length-1].label+"+",{array:p,legend:w,calculatedValues:A}}function za(e){const{numFeatures:a,data:t,lookup:n,normalize:s,options:o}=e,{columnName:c,dataset:d,scaleFactor:b}=o;if(Number.isNaN(b))return{array:null,legend:[],calculatedValues:null};const u=new Float32Array(a),m=new Float32Array(a);if(b)for(let f=0;f<t.values.length;f++){const p=n?n.values[f]:f;u[p]=t.values[f]/b,m[p]=t.values[f]}const r=[];for(const f of[1,5,10,17,25,50])r.push({label:b*f,value:f});return r[0].label="<"+r[0].label,r[r.length-1].label=r[r.length-1].label+"+",{array:u,legend:r,calculatedValues:m}}function Ea(e){const{length:a,data:t,lookup:n,normalize:s,join:o,options:c}=e,{columnName:d,dataset:b,scaleFactor:u}=c;if(typeof u!="number")return{heights:0,calculatedValues:null};const m=new Float32Array(a),r=new Float32Array(a);if(o==="@count")for(let l=0;l<t.values.length;l++){const g=n?n.values[l]:l;r[g]+=1}else for(let l=0;l<t.values.length;l++){const g=n?n.values[l]:l;r[g]+=t.values[l]}let f=t.values,p=t.max||-1/0;if(s){f=new Float32Array(t.values.length),p=-1/0;for(let l=0;l<t.values.length;l++)f[l]=s.values[l]?t.values[l]/s.values[l]:NaN,f[l]>p&&(p=f[l])}if(u)for(let l=0;l<t.values.length;l++){const g=n?n.values[l]:l;r[g]=f[l],m[g]=f[l]/u}return{heights:m,calculatedValues:r,normalizedValues:null}}function Sa(e){const{length:a,data:t,lookup:n,normalize:s,join:o,options:c}=e,{columnName:d,dataset:b,scaleFactor:u}=c;if(typeof u!="number")return{radius:0,calculatedValues:null};const m=new Float32Array(a),r=new Float32Array(a);if(!u)return{radius:m,calculatedValues:r};if(o==="@count")for(let f=0;f<t.values.length;f++){const p=n?n.values[f]:f;r[p]+=1}else for(let f=0;f<t.values.length;f++){const p=n?n.values[f]:f;r[p]+=t.values[f]}for(let f=0;f<a;f++)m[f]=Math.sqrt(r[f]/u);return{radius:m,calculatedValues:r}}function Ya(e){const{numFeatures:a,data:t,lookup:n,normalize:s,join:o,options:c}=e,{colorRamp:d,columnName:b,dataset:u,fixedColors:m}=c,r=S(m),f=_().range(r),p=N.state.isDarkMode?48:228,l=new Uint8ClampedArray(a*3).fill(p),g=[];for(let i=0;i<t.values.length;i++){const y=n?n.values[i]:i;g[y]=t.values[i]}for(let i=0;i<a;i++){if(e.filter[i]===-1||g[i]==null)continue;const y=f(g[i]),R=i*3;l[R+0]=y[0],l[R+1]=y[1],l[R+2]=y[2]}const B=[],M=f.domain(),A=f.range();M.forEach((i,y)=>B.push({label:i,value:A[y%A.length]})),B.sort((i,y)=>i.label<y.label?-1:1);const w=g.map(i=>!!i);return{rgbArray:l,legend:B,calculatedValues:null,normalizedValues:null,hasCategory:w}}function ne(e){let{colorRamp:a,fixedColors:t,minDiff:n,maxDiff:s}=e;const o=a.steps??t?.length??5;if(a.breakpoints){const u=a.breakpoints.split(",").map(r=>parseFloat(r.trim()));if(a.steps!==u.length+1)throw Error('Color ramp "steps" must be one larger than number of breakpoints');let m=-1/0;for(const r of u){if(r<m)throw Error("Breakpoints must be in lowest to highest order");m=r}return u}if(o==2)return[0];if(o==3)return[-1,1];const c=s>Math.abs(n)?s:-1*n,d=Math.floor(o/2)-1,b=d+1;if(o%2==1){const u=[1];for(let r=1;r<=d;r++)u.push(r*c/b);const m=u.slice().reverse().map(r=>-1*r);return m.push(...u),m}else{const u=[0];for(let r=1;r<=d;r++)u.push(r*c/b);const m=u.slice().reverse().map(r=>-1*r);return m.pop(),m.push(...u),m}}function ja(e){const{numFeatures:a,options:t,relative:n,data:s,data2:o,lookup:c,lookup2:d}=e,{colorRamp:b,fixedColors:u}=t;let m=new Float32Array(a),r=new Float32Array(a);o&&d&&(s.values.forEach((h,v)=>{m[c.values[v]]+=h}),o.values.forEach((h,v)=>{r[d.values[v]]+=h})),m=z(m,e),r=z(r,e);const f=new Float32Array(a);let p=new Float32Array(0);n&&(p=new Float32Array(a));for(let h=0;h<a;h++)f[h]=m[h]-r[h],n&&(p[h]=100*(f[h]/r[h]));const l=n?p:f,g=l.reduce((h,v)=>Number.isFinite(v)?Math.min(h,v):h,1/0),B=l.reduce((h,v)=>Number.isFinite(v)?Math.max(h,v):h,-1/0);let M;const A=!!t.colorRamp.breakpoints;g<0?M=ne({colorRamp:b,fixedColors:u,minDiff:g,maxDiff:B}):M=Ta({colorRamp:b,fixedColors:u||[],min:g,max:B}).map(h=>b.style===1?h:h*B);const w=S(u||[]),i=L().range(w).domain(M),y=N.state.isDarkMode?[48,48,48]:[232,232,232],R=new Uint8ClampedArray(a*3);l.forEach((h,v)=>{const G=Number.isFinite(h)?i(h):y,x=v*3;R[x+0]=G[0],R[x+1]=G[1],R[x+2]=G[2]});const D=[],P=i.domain(),Y=i.range();let $;for(let h=0;h<P.length;h++){const v=P[h],G=A?$:Math.round($*1),x=A?v:Math.round(v*1);D.push({label:$!==void 0?`${G} — ${x}`:`< ${x}`,value:Y[h]}),$=v}return D.push({label:`> ${Math.round($*1)}`,value:Y[P.length]}),{rgbArray:R,legend:D,calculatedValues:l,normalizedValues:null}}function Ta(e){const{colorRamp:a,fixedColors:t,min:n,max:s}=e;if(a.style===1)return ne({colorRamp:a,fixedColors:t,minDiff:n,maxDiff:s});if(a.breakpoints){const b=a.breakpoints.split(",").map(m=>parseFloat(m));if(a.steps!==b.length+1)throw Error('Color ramp "steps" must be one larger than number of breakpoints');let u=-1/0;for(const m of b){if(m<u)throw Error("Breakpoints must be in lowest to highest order");u=m}return b}const o=t.length,c=3;return new Array(o-1).fill(0).map((b,u)=>Math.pow(1/o*(u+1),c))}function _a(e){const a=new Float32Array(e.numFeatures);if(e.join==="@count")for(let o=0;o<e.data.values.length;o++){const c=e.lookup?e.lookup.values[o]:o;a[c]+=1}else for(let o=0;o<e.data.values.length;o++){const c=e.lookup?e.lookup.values[o]:o;a[c]+=e.data.values[o]}const t=z(a,e);let n=1/0,s=-1/0;for(let o=0;o<e.numFeatures;o++){const c=t[o];Number.isFinite(c)&&(n=Math.min(n,c),s=Math.max(s,c))}return n=n??1/0,s=s??-1/0,{metric:t,max:s,min:n}}function La(e){if(e.options.colorRamp.breakpoints)return qa(e);let a=9;a=e.options.colorRamp?.steps||a,a=e.options.fixedColors?.length||a;const t=3,n=new Array(a-1).fill(0).map((c,d)=>Math.pow(1/a*(d+1),t));let s=[],o=e.max-e.min||1;for(let c=0;c<a-1;c++)s.push(e.min+o*n[c]);return s}function qa(e){if(!e.options.colorRamp.breakpoints)return[];const a=e.options.colorRamp.breakpoints.split(",").map(n=>parseFloat(n));if(e.options.colorRamp.steps!==a.length+1)throw Error('Color ramp "steps" must be one larger than number of breakpoints');let t=-1/0;for(const n of a){if(n<t)throw Error("Breakpoints must be in lowest to highest order");t=n}return a}function Wa(e){const a=S(e.fixedColors),t=L().range(a).domain(e.breakpoints),n=e.transparencies,s=n?4:3,o=new Uint8ClampedArray(e.numFeatures*s),c=N.state.isDarkMode?[48,48,48]:[212,212,212];for(let f=0;f<e.numFeatures;f++){let p=e.metric[f];const l=Number.isNaN(p)?c:t(p),g=f*s;o[g+0]=l[0],o[g+1]=l[1],o[g+2]=l[2],n&&(o[g+3]=n[f])}const d=[],b=t.domain(),u=t.range();let m=e.max>=1e3?0:3,r=e.min;for(let f=0;f<b.length;f++){let p=b[f];const l=O({value:r,precision:m}),g=O({value:p,precision:m});d.push({label:`${l} — ${g}`,value:u[f]}),r=p}return d.push({label:`${O({value:r,precision:m})} — ${O({value:e.max,precision:m})}`,value:u[b.length]}),{rgbArray:o,legend:d,isRGBA:!!e.transparencies}}function z(e,a){if(!a.normalColumn)return e;const t=new Float32Array(a.numFeatures);let n=-1/0;const s=new Float32Array(a.numFeatures);a.normalColumn.values.forEach((d,b)=>{const u=a.normalLookup?a.normalLookup.values[b]:b;s[u]=d});for(let d=0;d<a.numFeatures;d++)t[d]=e[d]/s[d],n=Math.max(t[d],n);const o=t.reduce((d,b)=>Number.isFinite(b)?Math.min(d,b):d,1/0);if(!(a.options.colorRamp?.style===1)&&o<0)throw Error(`Column "${a.data.name}" has negative values: use a diverging color scale`);return t}function S(e){return e.map(t=>{const n=E(t);return[n.r,n.g,n.b]})}function O({value:e,precision:a}){let t=a??3;if(t==0&&(t=-1),typeof e!="number")return e;let n=""+e;if(n.includes(".")&&n.indexOf(".")===n.lastIndexOf(".")&&/\d$/.test(n)){const s=n.substring(0,1+t+n.lastIndexOf("."));try{if(parseInt(s.substring(1+s.indexOf(".")))===0)return s.substring(0,s.indexOf("."))}catch{}return s}return e}const at={getHeightsBasedOnNumericValues:Ea,getColorsForDataColumn:xa,getWidthsForDataColumn:Da,getRadiusForDataColumn:Sa};export{at as C,Ra as S,ya as a,et as b,pa as c,ga as d,ha as e,ma as f,Na as g,T as h,va as i,ba as j,ua as k,ia as l,Fa as m,Ba as n,wa as o,Aa as p,S as q,te as r,ca as s};
@@ -1,3 +1,3 @@
1
- import{g as C}from"./index-CHe7BiNX.js";import{H as y,g as P,p as L,f as S}from"./HTTPFileSystem-Cf8G_bcW.js";import{r as R}from"./group-hI8ly2Wr.js";function b(u){return new Worker("/assets/DataFetcher.worker-BxRJWgFP.js",{name:u?.name})}function $(u){return new Worker("/assets/RoadNetworkLoader.worker-BsIqKwCD.js",{name:u?.name})}const A=avro;function E(u){return new Worker("/assets/WasmXmlNetworkParser.worker-Br7OVoG_.js",{name:u?.name})}const D=!!window.showDirectoryPicker,x=!D;class M{constructor(...e){this.root=e.length?e[0]:"",this.subfolder=e.length?e[1]:"",this.fileApi=this._getFileSystem(this.root)}threads=[];subfolder="";root="";fileApi;networks={};featureCollections={};kill(){for(const e of this.threads)e.terminate();this.threads=[]}getFilteredDataset(e){return e.dataset in this.datasets?{filteredRows:this.datasets[e.dataset].filteredRows}:{filteredRows:null}}async OLDgetFiltered(e){const s=this.datasets[e.dataset].filteredRows;if(!s)return{filteredRows:null};let t={};if(e.value&&e.groupBy){const l=e.value,d=e.groupBy;t=R(s,i=>i.reduce((a,r)=>a+r[l],0),i=>i[d])}const n=Array.from(t.keys()),o=Array.from(t.values());return{filteredRows:{x:n,y:o}}}async getDataset(e,s){try{const t=`${s?.subfolder||this.subfolder}/${e.dataset}`;this.datasets[t]||(console.log("LOAD:",t),this.datasets[t]={dataset:this._fetchDataset(e,s),activeFilters:{},filteredRows:null,filterListeners:new Set});let o=await((a,r)=>{const f=new Promise((c,h)=>{setTimeout(()=>{h(new Error(`Operation timed out after ${r}s`))},r*1e3)});return Promise.race([a,f])})(this.datasets[t].dataset,60),{_comments:l,...d}=o,i=l;return e.ignoreColumns&&e.ignoreColumns.forEach(a=>{delete d[a]}),e.useLastRow&&Object.keys(d).forEach(a=>{const r=o[a].values;d[a]=r[r.length-1]}),{allRows:d,comments:i}}catch(t){const n=(""+t).replaceAll("Error: ","");throw console.error(n),Error(n)}}setRowWisePropertyTable(e,s,t){const n=e.substring(e.lastIndexOf("/")+1);let o={dataset:n};return typeof t!="string"&&(o=Object.assign(o,t)),this.datasets[n]={activeFilters:{},filteredRows:null,filterListeners:new Set,dataset:new Promise(l=>{l(s)})},this.datasets[n].dataset}getFeatureCollection(e){return this.featureCollections[e]}async registerFeatures(e,s,t){this.featureCollections[e]=s;const n=s.map(o=>o.properties||{});await this.setFeatureProperties(e,n,t),s.forEach(o=>{o.properties={}})}setFeatureProperties(e,s,t){const n=e.substring(e.lastIndexOf("/")+1),o=`${t?.subfolder||""}/${n}`;let l={dataset:o};return typeof t!="string"&&(l=Object.assign(l,t)),this.datasets[o]={activeFilters:{},filteredRows:null,filterListeners:new Set,dataset:new Promise((d,i)=>{const a=new b;try{a.onmessage=r=>{if(r.data.ready){this.threads.push(a),a.postMessage({config:l,featureProperties:s});return}a.terminate(),r.data.error&&(console.error(r.data.error),i(`Problem loading properties in ${e}`)),d(r.data)}}catch(r){a.terminate(),console.error(r),i(r)}})},this.datasets[o].dataset}setPreloadedDataset(e){this.datasets[e.key]={dataset:new Promise((s,t)=>{s(e.dataTable)}),activeFilters:{},filteredRows:null,filterListeners:new Set}}async getRoadNetwork(e,s,t,n,o){const l=`/${s}/${e}`,d={};return t.projection&&(d.crs=t.projection),this.networks[l]||(this.networks[l]=this._fetchNetwork({subfolder:s,filename:e,cbStatus:n,options:d,extra:o})),await this.networks[l]}async setFilter(e){const{dataset:s,column:t,value:n,invert:o,range:l}=e;if(!this.datasets[s]){console.warn(`${s} doesn't exist yet`),console.warn(Object.keys(this.datasets));return}console.log("> setFilter",s,t,n);const d=Array.isArray(n)?n:[n];this.datasets[s].activeFilters==null&&(this.datasets[s].activeFilters={});const i=this.datasets[s].activeFilters;d.length?i[t]={values:d,invert:o,range:l}:delete i[t],await this._updateFilters(s)}addFilterListener(e,s){try{const t=`${e.subfolder||this.subfolder}/${e.dataset}`;if(!this.datasets[t])throw Error("Can't add listener, no dataset named: "+t);this.datasets[t].filterListeners.add(s)}catch(t){console.error("CANT ADD FILTER LISTENER"+t)}}removeFilterListener(e,s){const t=`${e.subfolder||this.subfolder}/${e.dataset}`;try{this.datasets[t].filterListeners&&this.datasets[t].filterListeners.delete(s)}catch{}}clearCache(){this.kill(),this.datasets={},this.networks={}}async _updateFilters(e){console.log("> updateFilters ",e);const s=this.datasets[e];if(console.log({metaData:s}),!Object.keys(s.activeFilters).length){console.log("no keys"),s.filteredRows=null,this._notifyListeners(e);return}const t=await s.dataset,n=Object.keys(t);let o=[];const l=t[n[0]].values.length,d=new Array(l).fill(!0),i=/^(<|>)/;for(const[a,r]of Object.entries(s.activeFilters)){const f=t[a];if(r.values[0]===void 0||r.values[0]==="")throw Error(e+": filter error");if(i.test(r.values[0]))r.values[0].startsWith("<=")?(r.conditional="<=",r.values[0]=r.values[0].substring(2).trim()):r.values[0].startsWith(">=")?(r.conditional=">=",r.values[0]=r.values[0].substring(2).trim()):r.values[0].startsWith("<")?(r.conditional="<",r.values[0]=r.values[0].substring(1).trim()):r.values[0].startsWith(">")&&(r.conditional=">",r.values[0]=r.values[0].substring(1).trim());else if(r.values.length===1&&typeof r.values[0]=="string"){const c=parseFloat(r.values[0]);Number.isFinite(c)&&r.values.push(c)}for(let c=0;c<l;c++)O(r,f.values[c])||(d[c]=!1)}for(let a=0;a<l;a++)if(d[a]){const r={};n.forEach(f=>r[f]=t[f].values[a]),o.push(r)}s.filteredRows=o,this._notifyListeners(e)}_notifyListeners(e){const s=this.datasets[e];for(const t of s.filterListeners)t(e)}async _fetchDataset(e,s){let t;try{const{files:o}=await new y(this.fileApi).getDirectory(s?.subfolder||this.subfolder);t=o}catch(o){throw console.error("FAIL! "+o),Error(""+o)}let n=t;return new Promise((o,l)=>{const d=new b;try{d.onmessage=i=>{if(i.data.ready){d.postMessage({fileSystemConfig:this.fileApi,subfolder:s?.subfolder||this.subfolder,files:n,config:e,options:s});return}if(d.terminate(),i.data.error){let a=""+(i.data?.error||"Error loading file");a=a.replace("[object Response]","Error loading file"),e?.dataset&&a.indexOf(e.dataset)===-1&&(a+=`: ${e.dataset}`),l(a)}o(i.data)}}catch(i){d.terminate(),console.error(i),l(i)}})}async _getAvroNetwork(e){try{const t=await new y(this.fileApi).getFileBlob(`${e.subfolder}/${e.filename}`),o=(await new Promise(async(a,r)=>{const f=[];A.createBlobDecoder(t).on("metadata",c=>{}).on("data",c=>{f.push(c)}).on("end",()=>{a(f)})}))[0],l=o.linkId.length,d=new Float32Array(2*l),i=new Float32Array(2*l);for(let a=0;a<l;a++){const r=2*o.from[a],f=2*o.to[a];d[2*a]=o.nodeCoordinates[r],d[2*a+1]=o.nodeCoordinates[1+r],i[2*a]=o.nodeCoordinates[f],i[2*a+1]=o.nodeCoordinates[1+f]}return o.source=d,o.dest=i,o}catch(s){return console.error(s),null}}async _getEPSGfromConfig(){try{const e=new y(this.fileApi),{files:s}=await e.getDirectory(this.subfolder),t=s.filter(n=>n.indexOf("config.xml")>-1||n.indexOf("config_reduced.xml")>-1);if(t.length)for(const n of t)try{const l=await(await e.getFileBlob(`${this.subfolder}/${n}`)).arrayBuffer(),d=await P(l),i=new TextDecoder().decode(d);return(await L(i)).config.module.filter(h=>h.$name==="global")[0].param.filter(h=>h.$name==="coordinateSystem")[0].$value}catch{console.warn("Failed parsing",n)}}catch(e){return console.error(""+e),""}}async _fetchNetwork(e){return new Promise(async(s,t)=>{const{subfolder:n,filename:o,cbStatus:l,options:d}=e,i=`/${n}/${o}`;console.log("load network:",i);let a=i.indexOf("/")>-1?i.substring(0,i.lastIndexOf("/")):this.subfolder;try{const{files:c}=await new y(this.fileApi).getDirectory(a);let h=i.indexOf("/")===-1?i:i.substring(i.lastIndexOf("/")+1);S(c,h).length!==1&&t("File not found: "+i)}catch{t("Error reading folder: "+a)}if(o.toLocaleLowerCase().endsWith(".avro")){const c=await this._getAvroNetwork(e);c||t("Problem loading network: "+i),s(c);return}const r=await this._getEPSGfromConfig();if(o.toLocaleLowerCase().endsWith(".xml")||o.toLocaleLowerCase().endsWith(".xml.gz"))try{const h=await new Promise((p,v)=>{const m=new E;m.onmessage=F=>{const w=F.data;if("requestCRS"in w){if(r&&r!=="Atlantis"){w.confirmedCRS=r,m.postMessage({confirmedCRS:r});return}const k=w.requestCRS?'"Atlantis" coordinates found. ':"";let g=prompt(`Enter EPSG projection code.
1
+ import{g as C}from"./index-D3p5oi12.js";import{H as y,g as P,p as L,f as S}from"./HTTPFileSystem-WNrn1tPJ.js";import{r as R}from"./group-hI8ly2Wr.js";function b(u){return new Worker("/assets/DataFetcher.worker-BxRJWgFP.js",{name:u?.name})}function $(u){return new Worker("/assets/RoadNetworkLoader.worker-BsIqKwCD.js",{name:u?.name})}const A=avro;function E(u){return new Worker("/assets/WasmXmlNetworkParser.worker-Br7OVoG_.js",{name:u?.name})}const D=!!window.showDirectoryPicker,x=!D;class M{constructor(...e){this.root=e.length?e[0]:"",this.subfolder=e.length?e[1]:"",this.fileApi=this._getFileSystem(this.root)}threads=[];subfolder="";root="";fileApi;networks={};featureCollections={};kill(){for(const e of this.threads)e.terminate();this.threads=[]}getFilteredDataset(e){return e.dataset in this.datasets?{filteredRows:this.datasets[e.dataset].filteredRows}:{filteredRows:null}}async OLDgetFiltered(e){const s=this.datasets[e.dataset].filteredRows;if(!s)return{filteredRows:null};let t={};if(e.value&&e.groupBy){const l=e.value,d=e.groupBy;t=R(s,i=>i.reduce((a,r)=>a+r[l],0),i=>i[d])}const n=Array.from(t.keys()),o=Array.from(t.values());return{filteredRows:{x:n,y:o}}}async getDataset(e,s){try{const t=`${s?.subfolder||this.subfolder}/${e.dataset}`;this.datasets[t]||(console.log("LOAD:",t),this.datasets[t]={dataset:this._fetchDataset(e,s),activeFilters:{},filteredRows:null,filterListeners:new Set});let o=await((a,r)=>{const f=new Promise((c,h)=>{setTimeout(()=>{h(new Error(`Operation timed out after ${r}s`))},r*1e3)});return Promise.race([a,f])})(this.datasets[t].dataset,60),{_comments:l,...d}=o,i=l;return e.ignoreColumns&&e.ignoreColumns.forEach(a=>{delete d[a]}),e.useLastRow&&Object.keys(d).forEach(a=>{const r=o[a].values;d[a]=r[r.length-1]}),{allRows:d,comments:i}}catch(t){const n=(""+t).replaceAll("Error: ","");throw console.error(n),Error(n)}}setRowWisePropertyTable(e,s,t){const n=e.substring(e.lastIndexOf("/")+1);let o={dataset:n};return typeof t!="string"&&(o=Object.assign(o,t)),this.datasets[n]={activeFilters:{},filteredRows:null,filterListeners:new Set,dataset:new Promise(l=>{l(s)})},this.datasets[n].dataset}getFeatureCollection(e){return this.featureCollections[e]}async registerFeatures(e,s,t){this.featureCollections[e]=s;const n=s.map(o=>o.properties||{});await this.setFeatureProperties(e,n,t),s.forEach(o=>{o.properties={}})}setFeatureProperties(e,s,t){const n=e.substring(e.lastIndexOf("/")+1),o=`${t?.subfolder||""}/${n}`;let l={dataset:o};return typeof t!="string"&&(l=Object.assign(l,t)),this.datasets[o]={activeFilters:{},filteredRows:null,filterListeners:new Set,dataset:new Promise((d,i)=>{const a=new b;try{a.onmessage=r=>{if(r.data.ready){this.threads.push(a),a.postMessage({config:l,featureProperties:s});return}a.terminate(),r.data.error&&(console.error(r.data.error),i(`Problem loading properties in ${e}`)),d(r.data)}}catch(r){a.terminate(),console.error(r),i(r)}})},this.datasets[o].dataset}setPreloadedDataset(e){this.datasets[e.key]={dataset:new Promise((s,t)=>{s(e.dataTable)}),activeFilters:{},filteredRows:null,filterListeners:new Set}}async getRoadNetwork(e,s,t,n,o){const l=`/${s}/${e}`,d={};return t.projection&&(d.crs=t.projection),this.networks[l]||(this.networks[l]=this._fetchNetwork({subfolder:s,filename:e,cbStatus:n,options:d,extra:o})),await this.networks[l]}async setFilter(e){const{dataset:s,column:t,value:n,invert:o,range:l}=e;if(!this.datasets[s]){console.warn(`${s} doesn't exist yet`),console.warn(Object.keys(this.datasets));return}console.log("> setFilter",s,t,n);const d=Array.isArray(n)?n:[n];this.datasets[s].activeFilters==null&&(this.datasets[s].activeFilters={});const i=this.datasets[s].activeFilters;d.length?i[t]={values:d,invert:o,range:l}:delete i[t],await this._updateFilters(s)}addFilterListener(e,s){try{const t=`${e.subfolder||this.subfolder}/${e.dataset}`;if(!this.datasets[t])throw Error("Can't add listener, no dataset named: "+t);this.datasets[t].filterListeners.add(s)}catch(t){console.error("CANT ADD FILTER LISTENER"+t)}}removeFilterListener(e,s){const t=`${e.subfolder||this.subfolder}/${e.dataset}`;try{this.datasets[t].filterListeners&&this.datasets[t].filterListeners.delete(s)}catch{}}clearCache(){this.kill(),this.datasets={},this.networks={}}async _updateFilters(e){console.log("> updateFilters ",e);const s=this.datasets[e];if(console.log({metaData:s}),!Object.keys(s.activeFilters).length){console.log("no keys"),s.filteredRows=null,this._notifyListeners(e);return}const t=await s.dataset,n=Object.keys(t);let o=[];const l=t[n[0]].values.length,d=new Array(l).fill(!0),i=/^(<|>)/;for(const[a,r]of Object.entries(s.activeFilters)){const f=t[a];if(r.values[0]===void 0||r.values[0]==="")throw Error(e+": filter error");if(i.test(r.values[0]))r.values[0].startsWith("<=")?(r.conditional="<=",r.values[0]=r.values[0].substring(2).trim()):r.values[0].startsWith(">=")?(r.conditional=">=",r.values[0]=r.values[0].substring(2).trim()):r.values[0].startsWith("<")?(r.conditional="<",r.values[0]=r.values[0].substring(1).trim()):r.values[0].startsWith(">")&&(r.conditional=">",r.values[0]=r.values[0].substring(1).trim());else if(r.values.length===1&&typeof r.values[0]=="string"){const c=parseFloat(r.values[0]);Number.isFinite(c)&&r.values.push(c)}for(let c=0;c<l;c++)O(r,f.values[c])||(d[c]=!1)}for(let a=0;a<l;a++)if(d[a]){const r={};n.forEach(f=>r[f]=t[f].values[a]),o.push(r)}s.filteredRows=o,this._notifyListeners(e)}_notifyListeners(e){const s=this.datasets[e];for(const t of s.filterListeners)t(e)}async _fetchDataset(e,s){let t;try{const{files:o}=await new y(this.fileApi).getDirectory(s?.subfolder||this.subfolder);t=o}catch(o){throw console.error("FAIL! "+o),Error(""+o)}let n=t;return new Promise((o,l)=>{const d=new b;try{d.onmessage=i=>{if(i.data.ready){d.postMessage({fileSystemConfig:this.fileApi,subfolder:s?.subfolder||this.subfolder,files:n,config:e,options:s});return}if(d.terminate(),i.data.error){let a=""+(i.data?.error||"Error loading file");a=a.replace("[object Response]","Error loading file"),e?.dataset&&a.indexOf(e.dataset)===-1&&(a+=`: ${e.dataset}`),l(a)}o(i.data)}}catch(i){d.terminate(),console.error(i),l(i)}})}async _getAvroNetwork(e){try{const t=await new y(this.fileApi).getFileBlob(`${e.subfolder}/${e.filename}`),o=(await new Promise(async(a,r)=>{const f=[];A.createBlobDecoder(t).on("metadata",c=>{}).on("data",c=>{f.push(c)}).on("end",()=>{a(f)})}))[0],l=o.linkId.length,d=new Float32Array(2*l),i=new Float32Array(2*l);for(let a=0;a<l;a++){const r=2*o.from[a],f=2*o.to[a];d[2*a]=o.nodeCoordinates[r],d[2*a+1]=o.nodeCoordinates[1+r],i[2*a]=o.nodeCoordinates[f],i[2*a+1]=o.nodeCoordinates[1+f]}return o.source=d,o.dest=i,o}catch(s){return console.error(s),null}}async _getEPSGfromConfig(){try{const e=new y(this.fileApi),{files:s}=await e.getDirectory(this.subfolder),t=s.filter(n=>n.indexOf("config.xml")>-1||n.indexOf("config_reduced.xml")>-1);if(t.length)for(const n of t)try{const l=await(await e.getFileBlob(`${this.subfolder}/${n}`)).arrayBuffer(),d=await P(l),i=new TextDecoder().decode(d);return(await L(i)).config.module.filter(h=>h.$name==="global")[0].param.filter(h=>h.$name==="coordinateSystem")[0].$value}catch{console.warn("Failed parsing",n)}}catch(e){return console.error(""+e),""}}async _fetchNetwork(e){return new Promise(async(s,t)=>{const{subfolder:n,filename:o,cbStatus:l,options:d}=e,i=`/${n}/${o}`;console.log("load network:",i);let a=i.indexOf("/")>-1?i.substring(0,i.lastIndexOf("/")):this.subfolder;try{const{files:c}=await new y(this.fileApi).getDirectory(a);let h=i.indexOf("/")===-1?i:i.substring(i.lastIndexOf("/")+1);S(c,h).length!==1&&t("File not found: "+i)}catch{t("Error reading folder: "+a)}if(o.toLocaleLowerCase().endsWith(".avro")){const c=await this._getAvroNetwork(e);c||t("Problem loading network: "+i),s(c);return}const r=await this._getEPSGfromConfig();if(o.toLocaleLowerCase().endsWith(".xml")||o.toLocaleLowerCase().endsWith(".xml.gz"))try{const h=await new Promise((p,v)=>{const m=new E;m.onmessage=F=>{const w=F.data;if("requestCRS"in w){if(r&&r!=="Atlantis"){w.confirmedCRS=r,m.postMessage({confirmedCRS:r});return}const k=w.requestCRS?'"Atlantis" coordinates found. ':"";let g=prompt(`Enter EPSG projection code.
2
2
 
3
3
  ${k}Enter projection, e.g. EPSG:25832, or cancel to load without a base map.`)||"Atlantis";Number.isInteger(parseInt(g))&&(g=`EPSG:${g}`),m.postMessage({confirmedCRS:g});return}if(w.error&&v(w.error),w.status&&l){l(w.status);return}p(w.network)},m.postMessage({path:i,crs:d.crs||"",fsConfig:this.fileApi,options:d})});s(h)}catch(c){console.error(c),t(c)}finally{return}const f=new $;try{f.onmessage=c=>{if(c.data.promptUserForCRS){let h=prompt('Enter the projection coordinate reference system, e.g. "EPSG:25832", or cancel if unknown')||"Atlantis";Number.isInteger(parseInt(h))&&(h=`EPSG:${h}`),f.postMessage({crs:h});return}if(c.data.status){l&&l(c.data.status);return}f.terminate(),c.data.error&&(console.error(c.data.error),t(c.data.error)),s(c.data.links)},f.postMessage({filePath:i,fileSystem:this.fileApi,options:d,extraColumns:!!e.extra,isFirefox:x})}catch(c){f.terminate(),console.error(c),t(c)}})}_getFileSystem(e){const s=C.state.svnProjects.filter(t=>t.slug===e);if(s.length===0)throw console.error(`DDM: no such project, is slug correct? (${e})`),Error;return s[0]}datasets={}}function O(u,e){const s={"<":()=>e<u.values[0],"<=":()=>e<=u.values[0],">":()=>e>u.values[0],">=":()=>e>=u.values[0]};let t;return u.range?t=e>=u.values[0]&&e<=u.values[1]:u.conditional?t=s[u.conditional]():t=u.values.includes(e),u.invert?!t:t}export{M as D,$ as W,A as a,b,O as c};
@@ -1,4 +1,4 @@
1
- import{h as Ct,a as _e,g as St,m as ye,C as ve,M as be,d as we,n as ke}from"./index-CHe7BiNX.js";import{c as It,G as xe}from"./geojson-layer-ClBV_VpI.js";import{D as Ae}from"./layer-GQvgsG1_.js";import{S as Se}from"./text-layer-Cpq7KRgR.js";var Bt={exports:{}};/*!
1
+ import{h as Ct,a as _e,g as St,m as ye,C as ve,M as be,d as we,n as ke}from"./index-D3p5oi12.js";import{c as It,G as xe}from"./geojson-layer-DTh83Hy1.js";import{D as Ae}from"./layer-GQvgsG1_.js";import{S as Se}from"./text-layer-Cpq7KRgR.js";var Bt={exports:{}};/*!
2
2
 
3
3
  JSZip v3.10.1 - A JavaScript class for generating and reading zip files
4
4
  <http://stuartk.com/jszip>
@@ -1,3 +1,3 @@
1
- import{d as v,g as n,m as b,n as y,R as m,S as h}from"./index-CHe7BiNX.js";import{G as w}from"./lil-gui.esm-D2cLj-mk.js";import{Y as p}from"./index-DFKcNkqO.js";import{w as S,p as k}from"./comlink-CPG-Ccvr.js";import{u as C,H as T}from"./HTTPFileSystem-Cf8G_bcW.js";import{C as D}from"./CollapsiblePanel-GuobHpcZ.js";import{D as z}from"./DrawingTool-CaOc8yNx.js";import{L as M}from"./LegendBox-DCW8O5g7.js";import{L as E}from"./LegendStore-CGgeb9zL.js";import{T as A}from"./TimeSlider-B0kaD6Uf.js";import{I,C as L}from"./moving-icons-vehicles-layer-BKlY97P0.js";import{M as $}from"./mapbox-overlay-BWTNBTi1.js";import{D as F}from"./data-filter-extension-CLr7Gtu_.js";import{Z as R}from"./ZoomButtons-B7tt6RkT.js";import{b as _,p as f}from"./turf.es-BzqbG201.js";import{D as x}from"./DashboardDataManager-DadBWrpd.js";import"./fxp-DjoqftHf.js";import"./geojson-layer-ClBV_VpI.js";import"./text-layer-Cpq7KRgR.js";import"./layer-GQvgsG1_.js";import"./path-layer-BllYebBs.js";import"./layer-extension-CCnGoUTU.js";import"./group-hI8ly2Wr.js";import"./index-_doEQLKC.js";const j="/",O={vehicle:{x:0,y:0,width:256,height:256,mask:!1}},N=v({name:"EventDeckComponent",props:{breakpoints:{type:Array,required:!0},dark:{type:Boolean,required:!0},dotsize:{type:Number,required:!0},eventData:{type:Array,required:!0},mapIsIndependent:{type:Boolean,required:!0},projection:{type:String,required:!0},simulationTime:{type:Number,required:!0},tick:{type:Number,required:!0},viewId:{type:Number,required:!0}},data(){return{mymap:null,deckOverlay:null,globalState:n.state,dataFilter:new F({filterSize:1}),tooltipHTML:"",tooltipStyle:{position:"absolute",padding:"4px 8px",display:"block",top:0,left:0,color:this.dark?"#ccc":"#223",backgroundColor:this.dark?"#2a3c4f":"white",zIndex:2e4}}},watch:{layers(){this.deckOverlay&&this.deckOverlay.setProps({layers:this.layers})},dark(){let e;this.projection=="Atlantis"?e={version:8,sources:{},layers:[]}:e=`/map-styles/${this.globalState.isDarkMode?"dark":"positron"}.json`,this.mymap?.setStyle(e)},"globalState.viewState"(){if(this.mapIsIndependent)return;const e=this.globalState.viewState,t=this.mymap?.getCenter();(e.longitude!==t.lng||e.latitude!==t.lat||e.zoom!==this.mymap?.getZoom()||e.pitch!==this.mymap?.getPitch()||e.bearing!==this.mymap?.getBearing())&&this.mymap?.jumpTo(Object.assign({center:{lng:e.longitude,lat:e.latitude}},e))}},computed:{latitudeCorrectionFactor(){const e=this.globalState.viewState,t=e.latitude||e.center&&e.center[1]||35;return Math.cos(t*Math.PI/180)},layers(){const e=[];return this.eventData.forEach((t,i)=>{const s=this.simulationTime<t.timeRange[0]-5||this.simulationTime>t.timeRange[1]+5;e.push(new I({data:{length:t.data.t0.length,attributes:{getTimeStart:t.data.t0,getTimeEnd:t.data.t1,getPathStart:t.data.p0,getPathEnd:t.data.p1,getColorCode:t.data.colors}},id:"vehicles"+i,iconMoving:"vehicle",iconStill:"vehicle",colorDepiction:L.REL_SPEED,getSize:this.dotsize,opacity:1,latitudeCorrectionFactor:this.latitudeCorrectionFactor,currentTime:this.simulationTime,shadowEnabled:!1,iconAtlas:`${j}images/veh-curvy5.png`,iconMapping:O,sizeScale:1,billboard:!1,positionFormat:"XY",pickable:!1,autoHighlight:!1,highlightColor:[255,255,255,140],parameters:{depthTest:!1},visible:!s}))}),e}},mounted(){let e;this.projection=="Atlantis"?e={version:8,sources:{},layers:[]}:e=`/map-styles/${this.globalState.isDarkMode?"dark":"positron"}.json`;const t=`map-${this.viewId}`,i=this.globalState.viewState.center,s=this.globalState.viewState.zoom||8;this.mymap=new b.Map({container:t,style:e,center:i,zoom:s}),this.mymap.on("move",this.handleMove),this.mymap.on("style.load",()=>{this.deckOverlay=new $({interleaved:!0,layers:this.layers,onClick:this.handleClick}),this.mymap?.addControl(this.deckOverlay)})},beforeDestroy(){this.deckOverlay&&this.mymap?.removeControl(this.deckOverlay),this.mymap?.remove()},methods:{handleMove(){if(this.mapIsIndependent)return;const e=this.mymap?.getCenter(),t={latitude:e.lat,longitude:e.lng,zoom:this.mymap?.getZoom(),bearing:this.mymap?.getBearing(),pitch:this.mymap?.getPitch(),jump:!0};n.commit("setMapCamera",t)},getTooltip(e){this.tooltipHTML=""},handleClick(e,t){this.tooltipStyle.display="none"}}});var P=function(){var t=this,i=t._self._c;return t._self._setupProxy,i("div",{staticClass:"deck-map flex-col"},[i("div",{staticClass:"map-container",attrs:{id:`map-${t.viewId}`}}),t.tooltipHTML?i("div",{staticClass:"deck-tooltip",style:t.tooltipStyle,attrs:{"v-html":t.tooltipHTML}}):t._e()])},Y=[],B=y(N,P,Y,!1,null,null);const q=B.exports;function W(e){return new Worker("/assets/WASMEventStreamer.worker-DBw2EEtK.js",{name:e?.name})}const V={messages:{en:{loading:"Loading data...",sorting:"Sorting into bins...",aggregate:"Summary",maxHeight:"3D Height",showDetails:"Show Details",selection:"Selection",areas:"Areas",count:"Count",promptCRS:`Enter the coordinate reference system, e.g. EPSG:25832
1
+ import{d as y,g as n,m as w,n as b,R as m,S as h}from"./index-D3p5oi12.js";import{G as S}from"./lil-gui.esm-D2cLj-mk.js";import{Y as f}from"./index-DFKcNkqO.js";import{w as k,p as C}from"./comlink-CPG-Ccvr.js";import{u as T,H as D}from"./HTTPFileSystem-WNrn1tPJ.js";import{C as z}from"./CollapsiblePanel-CD6PjB1X.js";import{D as M}from"./DrawingTool-CmcnUtqm.js";import{L as E}from"./LegendBox-DTRNFWoy.js";import{L as A}from"./LegendStore-CGgeb9zL.js";import{T as I}from"./TimeSlider-CW7pH8GJ.js";import{I as L,C as $}from"./moving-icons-vehicles-layer-BKlY97P0.js";import{M as F}from"./mapbox-overlay-BWTNBTi1.js";import{D as R}from"./data-filter-extension-CLr7Gtu_.js";import{Z as _}from"./ZoomButtons-D2uWsuQs.js";import{b as x,p as v}from"./turf.es-BzqbG201.js";import{D as j}from"./DashboardDataManager-CKcv4ndV.js";import"./fxp-DjoqftHf.js";import"./geojson-layer-DTh83Hy1.js";import"./text-layer-Cpq7KRgR.js";import"./layer-GQvgsG1_.js";import"./path-layer-BllYebBs.js";import"./layer-extension-CCnGoUTU.js";import"./group-hI8ly2Wr.js";import"./index-_doEQLKC.js";const g="/",O={vehicle:{x:0,y:0,width:256,height:256,mask:!1}},N=y({name:"EventDeckComponent",props:{breakpoints:{type:Array,required:!0},dark:{type:Boolean,required:!0},dotsize:{type:Number,required:!0},eventData:{type:Array,required:!0},mapIsIndependent:{type:Boolean,required:!0},projection:{type:String,required:!0},simulationTime:{type:Number,required:!0},tick:{type:Number,required:!0},viewId:{type:Number,required:!0}},data(){return{mymap:null,deckOverlay:null,globalState:n.state,dataFilter:new R({filterSize:1}),tooltipHTML:"",tooltipStyle:{position:"absolute",padding:"4px 8px",display:"block",top:0,left:0,color:this.dark?"#ccc":"#223",backgroundColor:this.dark?"#2a3c4f":"white",zIndex:2e4}}},watch:{layers(){this.deckOverlay&&this.deckOverlay.setProps({layers:this.layers})},dark(){let e;this.projection=="Atlantis"?e={version:8,sources:{},layers:[]}:e=`${g}map-styles/${this.globalState.isDarkMode?"dark":"positron"}.json`,this.mymap?.setStyle(e)},"globalState.viewState"(){if(this.mapIsIndependent)return;const e=this.globalState.viewState,t=this.mymap?.getCenter();(e.longitude!==t.lng||e.latitude!==t.lat||e.zoom!==this.mymap?.getZoom()||e.pitch!==this.mymap?.getPitch()||e.bearing!==this.mymap?.getBearing())&&this.mymap?.jumpTo(Object.assign({center:{lng:e.longitude,lat:e.latitude}},e))}},computed:{latitudeCorrectionFactor(){const e=this.globalState.viewState,t=e.latitude||e.center&&e.center[1]||35;return Math.cos(t*Math.PI/180)},layers(){const e=[];return this.eventData.forEach((t,i)=>{const s=this.simulationTime<t.timeRange[0]-5||this.simulationTime>t.timeRange[1]+5;e.push(new L({data:{length:t.data.t0.length,attributes:{getTimeStart:t.data.t0,getTimeEnd:t.data.t1,getPathStart:t.data.p0,getPathEnd:t.data.p1,getColorCode:t.data.colors}},id:"vehicles"+i,iconMoving:"vehicle",iconStill:"vehicle",colorDepiction:$.REL_SPEED,getSize:this.dotsize,opacity:1,latitudeCorrectionFactor:this.latitudeCorrectionFactor,currentTime:this.simulationTime,shadowEnabled:!1,iconAtlas:`${g}images/veh-curvy5.png`,iconMapping:O,sizeScale:1,billboard:!1,positionFormat:"XY",pickable:!1,autoHighlight:!1,highlightColor:[255,255,255,140],parameters:{depthTest:!1},visible:!s}))}),e}},mounted(){let e;this.projection=="Atlantis"?e={version:8,sources:{},layers:[]}:e=`${g}map-styles/${this.globalState.isDarkMode?"dark":"positron"}.json`;const t=`map-${this.viewId}`,i=this.globalState.viewState.center,s=this.globalState.viewState.zoom||8;this.mymap=new w.Map({container:t,style:e,center:i,zoom:s}),this.mymap.on("move",this.handleMove),this.mymap.on("style.load",()=>{this.deckOverlay=new F({interleaved:!0,layers:this.layers,onClick:this.handleClick}),this.mymap?.addControl(this.deckOverlay)})},beforeDestroy(){this.deckOverlay&&this.mymap?.removeControl(this.deckOverlay),this.mymap?.remove()},methods:{handleMove(){if(this.mapIsIndependent)return;const e=this.mymap?.getCenter(),t={latitude:e.lat,longitude:e.lng,zoom:this.mymap?.getZoom(),bearing:this.mymap?.getBearing(),pitch:this.mymap?.getPitch(),jump:!0};n.commit("setMapCamera",t)},getTooltip(e){this.tooltipHTML=""},handleClick(e,t){this.tooltipStyle.display="none"}}});var P=function(){var t=this,i=t._self._c;return t._self._setupProxy,i("div",{staticClass:"deck-map flex-col"},[i("div",{staticClass:"map-container",attrs:{id:`map-${t.viewId}`}}),t.tooltipHTML?i("div",{staticClass:"deck-tooltip",style:t.tooltipStyle,attrs:{"v-html":t.tooltipHTML}}):t._e()])},Y=[],B=b(N,P,Y,!1,null,null);const q=B.exports;function W(e){return new Worker("/assets/WASMEventStreamer.worker-DBw2EEtK.js",{name:e?.name})}const V={messages:{en:{loading:"Loading data...",sorting:"Sorting into bins...",aggregate:"Summary",maxHeight:"3D Height",showDetails:"Show Details",selection:"Selection",areas:"Areas",count:"Count",promptCRS:`Enter the coordinate reference system, e.g. EPSG:25832
2
2
 
3
- These coordinates are not in long/lat format. To fix this permanently, convert them to long/lat or add "# EPSG:xxxx" to your CSV header`},de:{loading:"Dateien laden...",sorting:"Sortieren...",aggregate:"Daten",maxHeight:"3-D Höhe",showDetails:"Details anzeigen",selection:"Ausgewählt",areas:"Orte",count:"Anzahl"}}},H=v({name:"EventViewerPlugin",i18n:V,components:{CollapsiblePanel:D,DrawingTool:z,EventMap:q,LegendBox:M,TimeSlider:A,ZoomButtons:R},props:{root:{type:String,required:!0},subfolder:{type:String,required:!0},yamlConfig:String,config:Object,thumbnail:Boolean,datamanager:{type:Object}},data:()=>({tick:0,myDataManager:null,network:{source:new Float32Array,dest:new Float32Array,linkIds:[],projection:""},linkIdLookup:{},guiConfig:{speed:.1,size:12},viewId:Math.floor(1e12*Math.random()),configId:"gui-config-"+Math.floor(1e12*Math.random()),timeLabels:[0,1],startTime:0,isAnimating:!1,simTime:0,timeFilter:[0,3600],colors:[[128,128,128],[128,128,128]],breakpoints:[0],range:[1/0,-1/0],timeRange:[1/0,-1/0],legendStore:null,standaloneYAMLconfig:{title:"",description:"",file:"",projection:"",thumbnail:"",radius:250,maxHeight:0,center:null,zoom:9},YAMLrequirementsXY:{file:""},columnLookup:[],gzipWorker:null,vizDetails:{title:"",description:"",file:"",projection:"",thumbnail:"",center:null,zoom:9},myState:{statusMessage:"",subfolder:"",yamlConfig:"",thumbnail:!1},eventData:[],isLoaded:!1,animator:null,guiController:null,resizer:null,thumbnailUrl:"url('assets/thumbnail.jpg') no-repeat;",ANIMATE_SPEED:.25,animationElapsedTime:0,animationClockTime:0,prevBearing:0}),computed:{fileApi(){return new T(this.fileSystem,n)},fileSystem(){const e=this.$store.state.svnProjects.filter(t=>t.slug===this.root);if(e.length===0)throw console.log("no such project"),Error;return e[0]},urlThumbnail(){return this.thumbnailUrl},follow(){return this.$route.query?.follow??""},rotate(){return"rotate"in this.$route.query}},watch:{"$store.state.viewState"(){m[this.viewId]&&m[this.viewId]()}},methods:{setupLogoMover(){this.resizer=new ResizeObserver(this.moveLogo);const e=document.getElementById(`id-${this.viewId}`);this.resizer.observe(e)},moveLogo(){const e=document.getElementById(`${this.viewId}`),t=e?.querySelector(".mapboxgl-ctrl-bottom-left");if(t){const i=e.clientWidth>640?"280px":"36px";t.style.right=i}},setupGui(){this.guiController=new w({title:"VIEW SETTINGS",injectStyles:!0,width:200,container:document.getElementById(this.configId)||void 0});const e=this.guiController;e.add(this.guiConfig,"size",4,40,1).onChange(this.setConfig),e.add(this.guiConfig,"speed",[-2,-1,-.5,-.25,-.1,0,.1,.25,.5,1,2],1).onChange(this.setConfig)},async solveProjection(){if(!this.thumbnail){console.log("WHAT PROJECTION:");try{const e=await this.fileApi.getFileText(this.myState.subfolder+"/"+this.myState.yamlConfig);this.vizDetails=p.parse(e)}catch(e){console.error(e),this.$emit("error",""+e)}}},async getVizDetails(){if(this.config){this.validateYAML(),this.vizDetails=Object.assign({},this.config);return}new RegExp(".*(yml|yaml)$").test(this.myState.yamlConfig)?await this.loadStandaloneYAMLConfig():(console.log("NO YAML WTF"),this.setConfigForRawCSV())},setConfigForRawCSV(){let e="";this.vizDetails={title:"EVENTS: "+this.myState.yamlConfig,description:this.myState.yamlConfig,file:this.myState.yamlConfig,projection:e,center:this.vizDetails.center||void 0,zoom:this.vizDetails.zoom},this.$emit("title",this.vizDetails.title||this.vizDetails.file)},async loadStandaloneYAMLConfig(){if(this.fileApi)try{const e=this.myState.yamlConfig.indexOf("/")>-1?this.myState.yamlConfig:this.myState.subfolder+"/"+this.myState.yamlConfig,t=await this.fileApi.getFileText(e);this.standaloneYAMLconfig=Object.assign({},p.parse(t)),this.validateYAML(),this.setVizDetails()}catch{console.log("failed"),this.$emit("error",{type:h.ERROR,msg:"File not found",desc:`Could not find: ${this.myState.subfolder}/${this.myState.yamlConfig}`})}},validateYAML(){const e=new RegExp(".*(yml|yaml)$").test(this.myState.yamlConfig);let t;e?(console.log("has yaml"),t=this.standaloneYAMLconfig):(console.log("no yaml"),t=this.config);for(const i in this.YAMLrequirementsXY)i in t||this.$emit("error",{type:h.ERROR,msg:`EventViewer missing required key: ${i}`,desc:`Required keys: ${Object.keys(this.YAMLrequirementsXY)}`});t.radius==0&&this.$emit("error",{type:h.WARNING,msg:"Radius set to zero",desc:"Radius can not be zero, preset value used instead. "}),(t.zoom<5||t.zoom>20)&&this.$emit("error",{type:h.WARNING,msg:"Zoom is out of the recommended range ",desc:"Zoom levels should be between 5 and 20. "})},setVizDetails(){this.vizDetails=Object.assign({},this.vizDetails,this.standaloneYAMLconfig);const e=this.vizDetails.title?this.vizDetails.title:"EVENTS: "+this.vizDetails.file;this.$emit("title",e)},async buildThumbnail(){if(this.thumbnail&&this.vizDetails.thumbnail)try{const t=await(await this.fileApi.getFileBlob(this.myState.subfolder+"/"+this.vizDetails.thumbnail)).arrayBuffer(),i=C.arrayBufferToBase64(t);i&&(this.thumbnailUrl=`center / cover no-repeat url(data:image/png;base64,${i})`)}catch(e){console.error(e)}},async streamEventFile(e){this.myState.statusMessage="Loading events: "+e,this.gzipWorker&&this.gzipWorker.terminate(),this.gzipWorker=new W;const t=S(this.gzipWorker),i=Object.assign({},this.fileSystem),s=[{viewer:"vehicleViewer"}];t.startStream({filename:e,layers:s,network:this.network,fsConfig:i,follow:this.follow},k(this.receiveDataFromEventStreamer))},async receiveDataFromEventStreamer(e){this.eventData=[...this.eventData,e],this.tick=1,await this.$nextTick(),this.tick=0},setFirstZoom(e,t){const i=.5*(e[0]+e[t*2-2]),s=.5*(e[1]+e[t*2-1]);Number.isFinite(i)&&Number.isFinite(s)&&n.commit("setMapCamera",Object.assign({},n.state.viewState,{longitude:i,latitude:s,zoom:10}))},toggleAnimation(){this.isAnimating=!this.isAnimating,this.isAnimating&&(this.animationElapsedTime=this.timeFilter[0]-this.timeRange[0],this.startTime=Date.now()-this.animationElapsedTime/this.guiConfig.speed,this.animate())},setConfig(){},setLegend(e,t){this.range[1]-this.range[0]!==0&&(this.legendStore=new E,this.legendStore.setLegendSection({section:"Legend",column:"Legend",values:e.map((i,s)=>{const o=t[s==0?s:s-1];let a=""+Math.round(1e6*o)/1e6;return s==0&&(a="< "+a),s==e.length-1&&(a="> "+a),{label:a,value:i}})}))},async loadNetwork(){if(!this.myDataManager)throw Error("event viewer: no datamanager");const{files:e}=await this.fileApi.getDirectory(this.subfolder);let t="";e.indexOf("network.avro")>-1?t="network.avro":t=this.vizDetails.file.replace("events.xml","network.xml"),console.log(t);const i=await this.myDataManager.getRoadNetwork(t,this.myState.subfolder,Object.assign({},this.vizDetails),null,!0);return this.vizDetails.projection=""+i.projection,{network:i}},async loadFiles(){const{network:e}=await this.loadNetwork();if(this.network=e,!this.vizDetails.center){let i=0,s=0,o=0;for(let a=0;a<this.network.source.length;a+=4096)i+=this.network.source[a],s+=this.network.source[a+1],o+=1;this.vizDetails.center=[i/o,s/o],n.commit("setMapCamera",{center:this.vizDetails.center,zoom:9})}let t=`${this.myState.subfolder}/${this.vizDetails.file}`;await this.streamEventFile(t)},handleTimeSliderValues(e){this.animationElapsedTime=e[0],this.simTime=this.animationElapsedTime,this.animationClockTime=this.animationElapsedTime+this.timeRange[0],this.timeFilter=e,this.timeLabels=[this.convertSecondsToClockTimeMinutes(e[0]),this.convertSecondsToClockTimeMinutes(e[1])]},followVehicle(){for(const e of this.eventData)if(!(e.timeRange[1]<this.simTime)&&!(e.timeRange[0]>this.simTime))for(let t=0;t<e.data.vvt0.length;t++){const i=e.data.vvt0[t],s=e.data.vvt1[t];if(i<=this.simTime&&s>=this.simTime){const o=(this.simTime-i)/(s-i),a=[e.data.vvp0[t*2],e.data.vvp0[t*2+1]],c=[e.data.vvp1[t*2],e.data.vvp1[t*2+1]],g=a[0]+(c[0]-a[0])*o,u=a[1]+(c[1]-a[1])*o,r={longitude:g,latitude:u,center:[g,u],zoom:14,jump:!0};if(this.rotate){let l=_(f(a),f(c));const d=l-this.prevBearing;Math.abs(d)>1&&(l=this.prevBearing+2*d/Math.abs(d),this.prevBearing=l),r.bearing=l,r.pitch=45,r.zoom=15}n.commit("setMapCamera",r);break}}},animate(){if(!this.isAnimating)return;this.animationElapsedTime=this.guiConfig.speed*(Date.now()-this.startTime),this.animationClockTime=this.animationElapsedTime+this.timeRange[0],this.animationClockTime>this.timeRange[1]&&(this.startTime=Date.now(),this.animationElapsedTime=0);const e=3600;this.timeFilter=[this.animationClockTime,this.animationClockTime+e],this.simTime=this.animationClockTime,this.follow&&this.followVehicle(),this.animator=window.requestAnimationFrame(this.animate)},convertSecondsToClockTimeMinutes(e){const t=Math.floor(e/3600),i=Math.floor((e-t*3600)/60),s={h:`${t}`,m:`${i}`.padStart(2,"0")};return`${s.h}:${s.m}`}},async mounted(){this.$store.commit("setFullScreen",!this.thumbnail),this.myState.thumbnail=this.thumbnail,this.myState.yamlConfig=this.yamlConfig||"",this.myState.subfolder=this.subfolder,this.myDataManager=this.datamanager||new x(this.root,this.subfolder),await this.getVizDetails(),await this.buildThumbnail(),!this.thumbnail&&(this.setupLogoMover(),this.setupGui(),this.myState.statusMessage=`${this.$i18n.t("loading")}`,this.isLoaded||await this.loadFiles(),this.isLoaded=!0,this.myState.statusMessage="",this.timeRange=[0,86400],this.toggleAnimation())},beforeDestroy(){this.resizer?.disconnect(),m[this.viewId]=void 0,delete m[this.viewId];try{this.gzipWorker&&(this.gzipWorker.postMessage({terminate:!0}),this.gzipWorker.terminate()),this.guiController&&this.guiController.destroy()}catch(e){console.warn(e)}this.animator&&window.cancelAnimationFrame(this.animator),this.$store.commit("setFullScreen",!1)}});var G=function(){var t=this,i=t._self._c;return t._self._setupProxy,i("div",{staticClass:"viz-plugin",attrs:{oncontextmenu:"return false",id:`id-${t.viewId}`}},[t.isLoaded&&!t.thumbnail?i("event-map",{staticClass:"map-layer",attrs:{viewId:t.viewId,eventData:t.eventData,network:t.network,linkIdLookup:t.linkIdLookup,dark:this.$store.state.isDarkMode,colors:this.colors,breakpoints:this.breakpoints,radius:this.guiConfig.radius,mapIsIndependent:!1,simulationTime:t.simTime,projection:t.vizDetails.projection,dotsize:t.guiConfig.size,tick:t.tick}}):t._e(),t.thumbnail?t._e():i("zoom-buttons",{attrs:{corner:"top-left"}}),i("div",{staticClass:"top-right"},[i("div",{staticClass:"gui-config",attrs:{id:t.configId}})]),i("div",{staticClass:"bottom-right"},[t.legendStore?i("div",{staticClass:"legend-area"},[i("legend-box",{attrs:{legendStore:t.legendStore}})],1):t._e()]),t.isLoaded?i("time-slider",{staticClass:"time-slider-area",attrs:{isPointInTime:!0,range:t.timeRange,activeTimeExtent:t.timeFilter,labels:t.timeLabels,isAnimating:t.isAnimating},on:{timeExtent:t.handleTimeSliderValues,toggleAnimation:t.toggleAnimation,drag:function(s){t.isAnimating=!1}}}):t._e(),!t.thumbnail&&t.myState.statusMessage?i("div",{staticClass:"message"},[i("p",{staticClass:"status-message"},[t._v(t._s(t.myState.statusMessage))])]):t._e()],1)},Z=[],U=y(H,G,Z,!1,null,"39e4f547");const wt=U.exports;export{wt as default};
3
+ These coordinates are not in long/lat format. To fix this permanently, convert them to long/lat or add "# EPSG:xxxx" to your CSV header`},de:{loading:"Dateien laden...",sorting:"Sortieren...",aggregate:"Daten",maxHeight:"3-D Höhe",showDetails:"Details anzeigen",selection:"Ausgewählt",areas:"Orte",count:"Anzahl"}}},H=y({name:"EventViewerPlugin",i18n:V,components:{CollapsiblePanel:z,DrawingTool:M,EventMap:q,LegendBox:E,TimeSlider:I,ZoomButtons:_},props:{root:{type:String,required:!0},subfolder:{type:String,required:!0},yamlConfig:String,config:Object,thumbnail:Boolean,datamanager:{type:Object}},data:()=>({tick:0,myDataManager:null,network:{source:new Float32Array,dest:new Float32Array,linkIds:[],projection:""},linkIdLookup:{},guiConfig:{speed:.1,size:12},viewId:Math.floor(1e12*Math.random()),configId:"gui-config-"+Math.floor(1e12*Math.random()),timeLabels:[0,1],startTime:0,isAnimating:!1,simTime:0,timeFilter:[0,3600],colors:[[128,128,128],[128,128,128]],breakpoints:[0],range:[1/0,-1/0],timeRange:[1/0,-1/0],legendStore:null,standaloneYAMLconfig:{title:"",description:"",file:"",projection:"",thumbnail:"",radius:250,maxHeight:0,center:null,zoom:9},YAMLrequirementsXY:{file:""},columnLookup:[],gzipWorker:null,vizDetails:{title:"",description:"",file:"",projection:"",thumbnail:"",center:null,zoom:9},myState:{statusMessage:"",subfolder:"",yamlConfig:"",thumbnail:!1},eventData:[],isLoaded:!1,animator:null,guiController:null,resizer:null,thumbnailUrl:"url('assets/thumbnail.jpg') no-repeat;",ANIMATE_SPEED:.25,animationElapsedTime:0,animationClockTime:0,prevBearing:0}),computed:{fileApi(){return new D(this.fileSystem,n)},fileSystem(){const e=this.$store.state.svnProjects.filter(t=>t.slug===this.root);if(e.length===0)throw console.log("no such project"),Error;return e[0]},urlThumbnail(){return this.thumbnailUrl},follow(){return this.$route.query?.follow??""},rotate(){return"rotate"in this.$route.query}},watch:{"$store.state.viewState"(){m[this.viewId]&&m[this.viewId]()}},methods:{setupLogoMover(){this.resizer=new ResizeObserver(this.moveLogo);const e=document.getElementById(`id-${this.viewId}`);this.resizer.observe(e)},moveLogo(){const e=document.getElementById(`${this.viewId}`),t=e?.querySelector(".mapboxgl-ctrl-bottom-left");if(t){const i=e.clientWidth>640?"280px":"36px";t.style.right=i}},setupGui(){this.guiController=new S({title:"VIEW SETTINGS",injectStyles:!0,width:200,container:document.getElementById(this.configId)||void 0});const e=this.guiController;e.add(this.guiConfig,"size",4,40,1).onChange(this.setConfig),e.add(this.guiConfig,"speed",[-2,-1,-.5,-.25,-.1,0,.1,.25,.5,1,2],1).onChange(this.setConfig)},async solveProjection(){if(!this.thumbnail){console.log("WHAT PROJECTION:");try{const e=await this.fileApi.getFileText(this.myState.subfolder+"/"+this.myState.yamlConfig);this.vizDetails=f.parse(e)}catch(e){console.error(e),this.$emit("error",""+e)}}},async getVizDetails(){if(this.config){this.validateYAML(),this.vizDetails=Object.assign({},this.config);return}new RegExp(".*(yml|yaml)$").test(this.myState.yamlConfig)?await this.loadStandaloneYAMLConfig():(console.log("NO YAML WTF"),this.setConfigForRawCSV())},setConfigForRawCSV(){let e="";this.vizDetails={title:"EVENTS: "+this.myState.yamlConfig,description:this.myState.yamlConfig,file:this.myState.yamlConfig,projection:e,center:this.vizDetails.center||void 0,zoom:this.vizDetails.zoom},this.$emit("title",this.vizDetails.title||this.vizDetails.file)},async loadStandaloneYAMLConfig(){if(this.fileApi)try{const e=this.myState.yamlConfig.indexOf("/")>-1?this.myState.yamlConfig:this.myState.subfolder+"/"+this.myState.yamlConfig,t=await this.fileApi.getFileText(e);this.standaloneYAMLconfig=Object.assign({},f.parse(t)),this.validateYAML(),this.setVizDetails()}catch{console.log("failed"),this.$emit("error",{type:h.ERROR,msg:"File not found",desc:`Could not find: ${this.myState.subfolder}/${this.myState.yamlConfig}`})}},validateYAML(){const e=new RegExp(".*(yml|yaml)$").test(this.myState.yamlConfig);let t;e?(console.log("has yaml"),t=this.standaloneYAMLconfig):(console.log("no yaml"),t=this.config);for(const i in this.YAMLrequirementsXY)i in t||this.$emit("error",{type:h.ERROR,msg:`EventViewer missing required key: ${i}`,desc:`Required keys: ${Object.keys(this.YAMLrequirementsXY)}`});t.radius==0&&this.$emit("error",{type:h.WARNING,msg:"Radius set to zero",desc:"Radius can not be zero, preset value used instead. "}),(t.zoom<5||t.zoom>20)&&this.$emit("error",{type:h.WARNING,msg:"Zoom is out of the recommended range ",desc:"Zoom levels should be between 5 and 20. "})},setVizDetails(){this.vizDetails=Object.assign({},this.vizDetails,this.standaloneYAMLconfig);const e=this.vizDetails.title?this.vizDetails.title:"EVENTS: "+this.vizDetails.file;this.$emit("title",e)},async buildThumbnail(){if(this.thumbnail&&this.vizDetails.thumbnail)try{const t=await(await this.fileApi.getFileBlob(this.myState.subfolder+"/"+this.vizDetails.thumbnail)).arrayBuffer(),i=T.arrayBufferToBase64(t);i&&(this.thumbnailUrl=`center / cover no-repeat url(data:image/png;base64,${i})`)}catch(e){console.error(e)}},async streamEventFile(e){this.myState.statusMessage="Loading events: "+e,this.gzipWorker&&this.gzipWorker.terminate(),this.gzipWorker=new W;const t=k(this.gzipWorker),i=Object.assign({},this.fileSystem),s=[{viewer:"vehicleViewer"}];t.startStream({filename:e,layers:s,network:this.network,fsConfig:i,follow:this.follow},C(this.receiveDataFromEventStreamer))},async receiveDataFromEventStreamer(e){this.eventData=[...this.eventData,e],this.tick=1,await this.$nextTick(),this.tick=0},setFirstZoom(e,t){const i=.5*(e[0]+e[t*2-2]),s=.5*(e[1]+e[t*2-1]);Number.isFinite(i)&&Number.isFinite(s)&&n.commit("setMapCamera",Object.assign({},n.state.viewState,{longitude:i,latitude:s,zoom:10}))},toggleAnimation(){this.isAnimating=!this.isAnimating,this.isAnimating&&(this.animationElapsedTime=this.timeFilter[0]-this.timeRange[0],this.startTime=Date.now()-this.animationElapsedTime/this.guiConfig.speed,this.animate())},setConfig(){},setLegend(e,t){this.range[1]-this.range[0]!==0&&(this.legendStore=new A,this.legendStore.setLegendSection({section:"Legend",column:"Legend",values:e.map((i,s)=>{const o=t[s==0?s:s-1];let a=""+Math.round(1e6*o)/1e6;return s==0&&(a="< "+a),s==e.length-1&&(a="> "+a),{label:a,value:i}})}))},async loadNetwork(){if(!this.myDataManager)throw Error("event viewer: no datamanager");const{files:e}=await this.fileApi.getDirectory(this.subfolder);let t="";e.indexOf("network.avro")>-1?t="network.avro":t=this.vizDetails.file.replace("events.xml","network.xml"),console.log(t);const i=await this.myDataManager.getRoadNetwork(t,this.myState.subfolder,Object.assign({},this.vizDetails),null,!0);return this.vizDetails.projection=""+i.projection,{network:i}},async loadFiles(){const{network:e}=await this.loadNetwork();if(this.network=e,!this.vizDetails.center){let i=0,s=0,o=0;for(let a=0;a<this.network.source.length;a+=4096)i+=this.network.source[a],s+=this.network.source[a+1],o+=1;this.vizDetails.center=[i/o,s/o],n.commit("setMapCamera",{center:this.vizDetails.center,zoom:9})}let t=`${this.myState.subfolder}/${this.vizDetails.file}`;await this.streamEventFile(t)},handleTimeSliderValues(e){this.animationElapsedTime=e[0],this.simTime=this.animationElapsedTime,this.animationClockTime=this.animationElapsedTime+this.timeRange[0],this.timeFilter=e,this.timeLabels=[this.convertSecondsToClockTimeMinutes(e[0]),this.convertSecondsToClockTimeMinutes(e[1])]},followVehicle(){for(const e of this.eventData)if(!(e.timeRange[1]<this.simTime)&&!(e.timeRange[0]>this.simTime))for(let t=0;t<e.data.vvt0.length;t++){const i=e.data.vvt0[t],s=e.data.vvt1[t];if(i<=this.simTime&&s>=this.simTime){const o=(this.simTime-i)/(s-i),a=[e.data.vvp0[t*2],e.data.vvp0[t*2+1]],c=[e.data.vvp1[t*2],e.data.vvp1[t*2+1]],u=a[0]+(c[0]-a[0])*o,p=a[1]+(c[1]-a[1])*o,r={longitude:u,latitude:p,center:[u,p],zoom:14,jump:!0};if(this.rotate){let l=x(v(a),v(c));const d=l-this.prevBearing;Math.abs(d)>1&&(l=this.prevBearing+2*d/Math.abs(d),this.prevBearing=l),r.bearing=l,r.pitch=45,r.zoom=15}n.commit("setMapCamera",r);break}}},animate(){if(!this.isAnimating)return;this.animationElapsedTime=this.guiConfig.speed*(Date.now()-this.startTime),this.animationClockTime=this.animationElapsedTime+this.timeRange[0],this.animationClockTime>this.timeRange[1]&&(this.startTime=Date.now(),this.animationElapsedTime=0);const e=3600;this.timeFilter=[this.animationClockTime,this.animationClockTime+e],this.simTime=this.animationClockTime,this.follow&&this.followVehicle(),this.animator=window.requestAnimationFrame(this.animate)},convertSecondsToClockTimeMinutes(e){const t=Math.floor(e/3600),i=Math.floor((e-t*3600)/60),s={h:`${t}`,m:`${i}`.padStart(2,"0")};return`${s.h}:${s.m}`}},async mounted(){this.$store.commit("setFullScreen",!this.thumbnail),this.myState.thumbnail=this.thumbnail,this.myState.yamlConfig=this.yamlConfig||"",this.myState.subfolder=this.subfolder,this.myDataManager=this.datamanager||new j(this.root,this.subfolder),await this.getVizDetails(),await this.buildThumbnail(),!this.thumbnail&&(this.setupLogoMover(),this.setupGui(),this.myState.statusMessage=`${this.$i18n.t("loading")}`,this.isLoaded||await this.loadFiles(),this.isLoaded=!0,this.myState.statusMessage="",this.timeRange=[0,86400],this.toggleAnimation())},beforeDestroy(){this.resizer?.disconnect(),m[this.viewId]=void 0,delete m[this.viewId];try{this.gzipWorker&&(this.gzipWorker.postMessage({terminate:!0}),this.gzipWorker.terminate()),this.guiController&&this.guiController.destroy()}catch(e){console.warn(e)}this.animator&&window.cancelAnimationFrame(this.animator),this.$store.commit("setFullScreen",!1)}});var G=function(){var t=this,i=t._self._c;return t._self._setupProxy,i("div",{staticClass:"viz-plugin",attrs:{oncontextmenu:"return false",id:`id-${t.viewId}`}},[t.isLoaded&&!t.thumbnail?i("event-map",{staticClass:"map-layer",attrs:{viewId:t.viewId,eventData:t.eventData,network:t.network,linkIdLookup:t.linkIdLookup,dark:this.$store.state.isDarkMode,colors:this.colors,breakpoints:this.breakpoints,radius:this.guiConfig.radius,mapIsIndependent:!1,simulationTime:t.simTime,projection:t.vizDetails.projection,dotsize:t.guiConfig.size,tick:t.tick}}):t._e(),t.thumbnail?t._e():i("zoom-buttons",{attrs:{corner:"top-left"}}),i("div",{staticClass:"top-right"},[i("div",{staticClass:"gui-config",attrs:{id:t.configId}})]),i("div",{staticClass:"bottom-right"},[t.legendStore?i("div",{staticClass:"legend-area"},[i("legend-box",{attrs:{legendStore:t.legendStore}})],1):t._e()]),t.isLoaded?i("time-slider",{staticClass:"time-slider-area",attrs:{isPointInTime:!0,range:t.timeRange,activeTimeExtent:t.timeFilter,labels:t.timeLabels,isAnimating:t.isAnimating},on:{timeExtent:t.handleTimeSliderValues,toggleAnimation:t.toggleAnimation,drag:function(s){t.isAnimating=!1}}}):t._e(),!t.thumbnail&&t.myState.statusMessage?i("div",{staticClass:"message"},[i("p",{staticClass:"status-message"},[t._v(t._s(t.myState.statusMessage))])]):t._e()],1)},Z=[],U=b(H,G,Z,!1,null,"39e4f547");const wt=U.exports;export{wt as default};
@@ -1 +1 @@
1
- import{n as a}from"./index-CHe7BiNX.js";const l={name:"FileSelector",props:{multiple:{type:Boolean,default:!1},isLoading:{type:Boolean,default:!1},acceptExtensions:{type:String,default:""},maxFileSize:{type:Number,default:NaN},height:{type:Number,default:NaN},validateFn:{type:Function,default:()=>!0}},data(){return{isDragEnter:!1}},methods:{startDrag(){this.isDragEnter=!0},handleFilesChange(t){this.preprocessFiles(t.target.files)},handleDrop(t){this.isDragEnter=!1,this.preprocessFiles(t.dataTransfer.files)},checkFileExtensions(t){const e=[...new Set(this.acceptExtensions.toLowerCase().split(",").filter(Boolean))];return Array.from(t).findIndex(s=>{const r=`.${s.name.toLowerCase().split(".").pop()}`;return!e.includes(r)})===-1},checkFileSize(t){return Number.isNaN(this.maxFileSize)?!0:Array.from(t).findIndex(i=>i.size>this.maxFileSize)===-1},validate(t){return!this.multiple&&t.length>1?"MULTIFILES_ERROR":this.checkFileExtensions(t)?this.checkFileSize(t)?this.validateFn(t):"FILE_SIZE_ERROR":"EXTENSION_ERROR"},preprocessFiles(t){const e=this.validate(t);this.$emit("validated",e,t),e===!0&&this.$emit("changed",t),this.$refs.fsFileInput.value=""}}};var o=function(){var e=this,n=e._self._c;return n("div",{staticClass:"fs-file-selector",class:{"fs-drag-enter":e.isDragEnter}},[n("div",{directives:[{name:"show",rawName:"v-show",value:e.isLoading,expression:"isLoading"}],staticClass:"fs-loader"},[e._t("loader",function(){return[e._v(" Loading... ")]})],2),n("div",{ref:"fsDroppable",staticClass:"fs-droppable",class:{isDragEnter:"is-dragging"},style:{height:e.height+"px"},on:{dragenter:function(i){return i.stopPropagation(),i.preventDefault(),e.startDrag()},dragover:function(i){return i.stopPropagation(),i.preventDefault(),e.startDrag()},dragleave:function(i){e.isDragEnter=!1},drop:function(i){return i.stopPropagation(),i.preventDefault(),e.handleDrop.apply(null,arguments)}}},[n("input",{ref:"fsFileInput",attrs:{type:"file",tabindex:"-1",multiple:e.multiple,accept:e.acceptExtensions},on:{change:e.handleFilesChange}}),e._t("top"),n("div",{staticClass:"fs-btn-select",attrs:{href:"#"},on:{click:function(i){return e.$refs.fsFileInput.click()}}},[e._t("default",function(){return[e._v("Select")]})],2),e._t("bottom")],2)])},c=[],d=a(l,o,c,!1,null,"5f37ddf8");const u=d.exports;export{u as F};
1
+ import{n as a}from"./index-D3p5oi12.js";const l={name:"FileSelector",props:{multiple:{type:Boolean,default:!1},isLoading:{type:Boolean,default:!1},acceptExtensions:{type:String,default:""},maxFileSize:{type:Number,default:NaN},height:{type:Number,default:NaN},validateFn:{type:Function,default:()=>!0}},data(){return{isDragEnter:!1}},methods:{startDrag(){this.isDragEnter=!0},handleFilesChange(t){this.preprocessFiles(t.target.files)},handleDrop(t){this.isDragEnter=!1,this.preprocessFiles(t.dataTransfer.files)},checkFileExtensions(t){const e=[...new Set(this.acceptExtensions.toLowerCase().split(",").filter(Boolean))];return Array.from(t).findIndex(s=>{const r=`.${s.name.toLowerCase().split(".").pop()}`;return!e.includes(r)})===-1},checkFileSize(t){return Number.isNaN(this.maxFileSize)?!0:Array.from(t).findIndex(i=>i.size>this.maxFileSize)===-1},validate(t){return!this.multiple&&t.length>1?"MULTIFILES_ERROR":this.checkFileExtensions(t)?this.checkFileSize(t)?this.validateFn(t):"FILE_SIZE_ERROR":"EXTENSION_ERROR"},preprocessFiles(t){const e=this.validate(t);this.$emit("validated",e,t),e===!0&&this.$emit("changed",t),this.$refs.fsFileInput.value=""}}};var o=function(){var e=this,n=e._self._c;return n("div",{staticClass:"fs-file-selector",class:{"fs-drag-enter":e.isDragEnter}},[n("div",{directives:[{name:"show",rawName:"v-show",value:e.isLoading,expression:"isLoading"}],staticClass:"fs-loader"},[e._t("loader",function(){return[e._v(" Loading... ")]})],2),n("div",{ref:"fsDroppable",staticClass:"fs-droppable",class:{isDragEnter:"is-dragging"},style:{height:e.height+"px"},on:{dragenter:function(i){return i.stopPropagation(),i.preventDefault(),e.startDrag()},dragover:function(i){return i.stopPropagation(),i.preventDefault(),e.startDrag()},dragleave:function(i){e.isDragEnter=!1},drop:function(i){return i.stopPropagation(),i.preventDefault(),e.handleDrop.apply(null,arguments)}}},[n("input",{ref:"fsFileInput",attrs:{type:"file",tabindex:"-1",multiple:e.multiple,accept:e.acceptExtensions},on:{change:e.handleFilesChange}}),e._t("top"),n("div",{staticClass:"fs-btn-select",attrs:{href:"#"},on:{click:function(i){return e.$refs.fsFileInput.click()}}},[e._t("default",function(){return[e._v("Select")]})],2),e._t("bottom")],2)])},c=[],d=a(l,o,c,!1,null,"5f37ddf8");const u=d.exports;export{u as F};