simwrapper 4.3.1__tar.gz → 4.3.3__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.
- {simwrapper-4.3.1 → simwrapper-4.3.3}/PKG-INFO +1 -1
- {simwrapper-4.3.1 → simwrapper-4.3.3}/pyproject.toml +1 -1
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/FlaskApp.py +12 -3
- simwrapper-4.3.1/simwrapper/static/assets/AggregateOd-CU69xhkl.js → simwrapper-4.3.3/simwrapper/static/assets/AggregateOd-BsBO-8aU.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/BackgroundLayers-DU3ROBLH.js → simwrapper-4.3.3/simwrapper/static/assets/BackgroundLayers-CUd5LA7y.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/BackgroundMapOnTop-BYiYvmPG.js → simwrapper-4.3.3/simwrapper/static/assets/BackgroundMapOnTop-DQly83Xo.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/CalculationTable-Cs3QMgej.js → simwrapper-4.3.3/simwrapper/static/assets/CalculationTable-D3eIayK6.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/CarrierViewer-0kVYdKpC.js → simwrapper-4.3.3/simwrapper/static/assets/CarrierViewer-WQZBHXFs.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/CollapsiblePanel-DR8lkDrz.js → simwrapper-4.3.3/simwrapper/static/assets/CollapsiblePanel-D7Qg4ara.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/ColorsAndWidths-CPY1BpxV.js → simwrapper-4.3.3/simwrapper/static/assets/ColorsAndWidths-CaSMrknU.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/DashboardDataManager-BxmipbOK.js → simwrapper-4.3.3/simwrapper/static/assets/DashboardDataManager-DOwC_6nC.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/DrawingTool-ClGBsDBZ.js → simwrapper-4.3.3/simwrapper/static/assets/DrawingTool-DQR36Aq1.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/EmbedView-yVMBG3eV.js → simwrapper-4.3.3/simwrapper/static/assets/EmbedView-Bf-3554F.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/ErrorPanel-DurCBoYV.js → simwrapper-4.3.3/simwrapper/static/assets/ErrorPanel-Bv11F2tj.js +3 -3
- simwrapper-4.3.1/simwrapper/static/assets/EventViewer-BZwmn15K.js → simwrapper-4.3.3/simwrapper/static/assets/EventViewer-DX4JSHKb.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/FileSelector-COLytm_n.js → simwrapper-4.3.3/simwrapper/static/assets/FileSelector-ByvkpmD-.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/Flowmap-Cn8kHl2w.js → simwrapper-4.3.3/simwrapper/static/assets/Flowmap-B1ucjn6t.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/GridMap-BtKCMhv6.js → simwrapper-4.3.3/simwrapper/static/assets/GridMap-BMeLOFhE.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/HTTPFileSystem-DVIUrFO_.js → simwrapper-4.3.3/simwrapper/static/assets/HTTPFileSystem-D9FfZC5j.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/ImageView-BJvrUkwd.js → simwrapper-4.3.3/simwrapper/static/assets/ImageView-De__Oe9e.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/LayerMap-Dy05TYva.js → simwrapper-4.3.3/simwrapper/static/assets/LayerMap-C4_ShvTc.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/LayoutManager-HXQf0MU1.js → simwrapper-4.3.3/simwrapper/static/assets/LayoutManager-CqBo335h.js +2 -2
- simwrapper-4.3.1/simwrapper/static/assets/LegendBox-YMonQJ1J.js → simwrapper-4.3.3/simwrapper/static/assets/LegendBox-D8mLazfP.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/LegendColors-C8n4a03Q.js → simwrapper-4.3.3/simwrapper/static/assets/LegendColors-Lm7wrC8N.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/LogisticsViewer-CaLiA_Cp.js → simwrapper-4.3.3/simwrapper/static/assets/LogisticsViewer-c1i74tjN.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/MatrixViewer-BZqWyINh.js → simwrapper-4.3.3/simwrapper/static/assets/MatrixViewer-2Nu5aKBv.js +2 -2
- simwrapper-4.3.1/simwrapper/static/assets/MatrixViewer-Bf6a1tvB.css → simwrapper-4.3.3/simwrapper/static/assets/MatrixViewer-7sSsyOq6.css +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/ModalIdColumnPicker-D3cTMkEC.js → simwrapper-4.3.3/simwrapper/static/assets/ModalIdColumnPicker-BNCiGWd9.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/NetworkLinks-B7UG3yA4.js → simwrapper-4.3.3/simwrapper/static/assets/NetworkLinks-mBBnXj4O.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/PathOffsetLayer-CfPE7UJb.js → simwrapper-4.3.3/simwrapper/static/assets/PathOffsetLayer-CjYw_Iig.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/PathTraceLayer-BBXVHuba.js → simwrapper-4.3.3/simwrapper/static/assets/PathTraceLayer-CObTWAik.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/PieChartDemo-B7th3PKC.js → simwrapper-4.3.3/simwrapper/static/assets/PieChartDemo-woHhH0lR.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/PlotlyDiagram-DzoqbDMY.js → simwrapper-4.3.3/simwrapper/static/assets/PlotlyDiagram-CZ2zD7mi.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/RunConfigurator-EZFpmbBU.js → simwrapper-4.3.3/simwrapper/static/assets/RunConfigurator-au0_ICja.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/SankeyDiagram-JIfABdP0.js → simwrapper-4.3.3/simwrapper/static/assets/SankeyDiagram-lAghCdFK.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/ShapeFile-Bk7LxocP.js → simwrapper-4.3.3/simwrapper/static/assets/ShapeFile-BiIjNTA8.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/TimeSlider-Bq-ahgjU.js → simwrapper-4.3.3/simwrapper/static/assets/TimeSlider-lZrUB05v.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/TopSheet-DIeIChVg.js → simwrapper-4.3.3/simwrapper/static/assets/TopSheet-BbB-TdnX.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/TransitDemand-D7l9OOUz.js → simwrapper-4.3.3/simwrapper/static/assets/TransitDemand-CdptUhFG.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/VegaLite-BYI7xo7p.js → simwrapper-4.3.3/simwrapper/static/assets/VegaLite-D711HWzy.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/VehicleAnimation-CUVn-AZj.js → simwrapper-4.3.3/simwrapper/static/assets/VehicleAnimation-C2ej-aba.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/VehicleAnimation-zyn23XrB.js → simwrapper-4.3.3/simwrapper/static/assets/VehicleAnimation-CZxdvO1S.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/VideoPlayer-DyxDmvw8.js → simwrapper-4.3.3/simwrapper/static/assets/VideoPlayer-DviE_6Oc.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/VizConfigurator-C8C3daPO.js → simwrapper-4.3.3/simwrapper/static/assets/VizConfigurator-C_37ptpH.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/VuePlotly-BXdIH0yY.js → simwrapper-4.3.3/simwrapper/static/assets/VuePlotly-CfpY3a51.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/XmlViewer-CWpIMz2H.js → simwrapper-4.3.3/simwrapper/static/assets/XmlViewer-m8odBvM6.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/XyHexagons-DqEThhUv.js → simwrapper-4.3.3/simwrapper/static/assets/XyHexagons-hrB5kTnS.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/XyTime-BmUm7uVa.js → simwrapper-4.3.3/simwrapper/static/assets/XyTime-w2aUTa89.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/ZoomButtons-D_WYIzIx.js → simwrapper-4.3.3/simwrapper/static/assets/ZoomButtons-PxSjzru1.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/aggregate-od-Djxstb73.js → simwrapper-4.3.3/simwrapper/static/assets/aggregate-od-BHp4xFyz.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/area-OIB04Mgd.js → simwrapper-4.3.3/simwrapper/static/assets/area-DyUWb8Sq.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/area-map-DKM7IbnG.js → simwrapper-4.3.3/simwrapper/static/assets/area-map-DPcAlvIb.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/bar-v72rEOsh.js → simwrapper-4.3.3/simwrapper/static/assets/bar-BscVhbEn.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/bubble-mMhX2mur.js → simwrapper-4.3.3/simwrapper/static/assets/bubble-CfA1go1A.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/carriers-BNT8OO8b.js → simwrapper-4.3.3/simwrapper/static/assets/carriers-vO3D3UrI.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/column-layer-B_DFtWxu.js → simwrapper-4.3.3/simwrapper/static/assets/column-layer-rRDRy-du.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/flowmap-BCdbPIR0.js → simwrapper-4.3.3/simwrapper/static/assets/flowmap-Dd5ilbnu.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/geo-utils-B2AlDn9k.js → simwrapper-4.3.3/simwrapper/static/assets/geo-utils-CCVst3B0.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/geojson-layer-DohWtVq3.js → simwrapper-4.3.3/simwrapper/static/assets/geojson-layer-uU2lasyR.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/gridmap-CBktncOj.js → simwrapper-4.3.3/simwrapper/static/assets/gridmap-Dv5TakL1.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/groups-D8dshnPn.js → simwrapper-4.3.3/simwrapper/static/assets/groups-D-hf2T4c.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/heatmap-BXR8vPhJ.js → simwrapper-4.3.3/simwrapper/static/assets/heatmap-CaWLulgu.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/hexagons-BJRk33uc.js → simwrapper-4.3.3/simwrapper/static/assets/hexagons-C8bVO9z4.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/index-BwIP81FD.js → simwrapper-4.3.3/simwrapper/static/assets/index-BX7jQcoh.js +3 -3
- simwrapper-4.3.1/simwrapper/static/assets/index-CFPivVNZ.js → simwrapper-4.3.3/simwrapper/static/assets/index-BkOEJz5G.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/index-BGlm3aec.js → simwrapper-4.3.3/simwrapper/static/assets/index-DvTjB8jE.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/index-2KlExUzB.js → simwrapper-4.3.3/simwrapper/static/assets/index-lhh_utkZ.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/index-DysAwKxe.js → simwrapper-4.3.3/simwrapper/static/assets/index-rVHiPyL_.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/layermap-DxXVGbAl.js → simwrapper-4.3.3/simwrapper/static/assets/layermap-BacV9tA4.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/line-BXjDY-ZA.js → simwrapper-4.3.3/simwrapper/static/assets/line-v7BjoGSV.js +1 -1
- simwrapper-4.3.3/simwrapper/static/assets/links-DXEVqUC7.js +1 -0
- simwrapper-4.3.1/simwrapper/static/assets/lodash-DEFSK0-A.js → simwrapper-4.3.3/simwrapper/static/assets/lodash-CH54M7xw.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/matrix-BBnuDJoU.js → simwrapper-4.3.3/simwrapper/static/assets/matrix-BfacTfvp.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/nprogress-BmxkcMR8.js → simwrapper-4.3.3/simwrapper/static/assets/nprogress-gEemPHaj.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/papaparse.min-By2F4vzo.js → simwrapper-4.3.3/simwrapper/static/assets/papaparse.min-ClXMzAJ8.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/pie-CWLsXcVB.js → simwrapper-4.3.3/simwrapper/static/assets/pie-2Oqxu0QI.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/plotly-D1aukjVs.js → simwrapper-4.3.3/simwrapper/static/assets/plotly-C_9Xt7ey.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/sankey-CT0zRwE3.js → simwrapper-4.3.3/simwrapper/static/assets/sankey-N5jTSg34.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/scatter-jwbvBLUr.js → simwrapper-4.3.3/simwrapper/static/assets/scatter-DDuv4uUo.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/slideshow-Boksu_1b.js → simwrapper-4.3.3/simwrapper/static/assets/slideshow-BakFt1NI.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/table-BR_ABb0p.js → simwrapper-4.3.3/simwrapper/static/assets/table-Dyurd8gt.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/text-Cs05jPVN.js → simwrapper-4.3.3/simwrapper/static/assets/text-DPt98aC1.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/tile-CRZXrC5Z.js → simwrapper-4.3.3/simwrapper/static/assets/tile-BaAbNKxX.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/transit-ChRmEl9e.js → simwrapper-4.3.3/simwrapper/static/assets/transit-BVoh7E6r.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/vega-BirFO5un.js → simwrapper-4.3.3/simwrapper/static/assets/vega-_IUJCVjB.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/vehicles-D7FqyJcT.js → simwrapper-4.3.3/simwrapper/static/assets/vehicles-DdeKJx4h.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/video-BaNZgtf9.js → simwrapper-4.3.3/simwrapper/static/assets/video-Uv_-X_Kd.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/xml-B1vApfjl.js → simwrapper-4.3.3/simwrapper/static/assets/xml-DIRCuIJd.js +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/xytime-BB413Ovn.js → simwrapper-4.3.3/simwrapper/static/assets/xytime-Bflf1E-7.js +1 -1
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/index.html +1 -1
- {simwrapper-4.3.1 → simwrapper-4.3.3}/uv.lock +1 -1
- simwrapper-4.3.1/simwrapper/static/assets/links-B7U1Xdoh.js +0 -1
- {simwrapper-4.3.1 → simwrapper-4.3.3}/.gitignore +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/CONFIG-EXAMPLE.yaml +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/LICENSE.txt +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/MANIFEST.in +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/Makefile +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/README.md +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/patches/apply_pytables_patch.py +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/patches/pytables-3.10.2.patch +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/GunicornServer.py +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/MiniFileServer.py +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/SimpleH5File.py +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/__init__.py +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/cli.py +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/config/gunicorn_config.py +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/config/nginx.conf +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/config/simwrapper-flask-app.service +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/config/simwrapper-rclone.service +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/config/supervisord.conf +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/sites.py +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/404.html +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/404.html.bak +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/CNAME +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/README.md +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/AggregateDatasetStreamer.worker-BAkFzLI9.js +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/AggregateOd-BWyxbgD3.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/BackgroundMapOnTop-DptOe2tm.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/CalculationTable-ie-f6C8y.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/CarrierViewer-BgfQYLk7.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/CollapsiblePanel-zCvUtCGk.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/CoordinateConverter.worker-BUgBAv_F.js +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/Coords-C-Mhj230.js +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/CsvGzipParser.worker-CmRyigJZ.js +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/DataFetcher.worker-BxRJWgFP.js +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/DrawingTool-Cxz0mWSd.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/EmbedView-DpHMbeVt.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/ErrorPanel-BC8GbRnV.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/EventViewer-BsQLQXFb.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/FileSelector-IeBXTqNi.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/Flowmap-Md2jH-f-.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/GridMap-DW9K_n1a.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/GzipFetcher.worker-cLk5ZI98.js +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/GzipFetcher.worker-om0h2NAp.js +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/H5ProviderWorker.worker-BXzyVnDz.js +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/ImageView-_qbXLBoX.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/LayerMap-QlhjaRQE.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/LayoutManager-CGaecSJn.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/LegendBox-BJxkonIO.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/LegendColors-DwNyh-6y.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/LegendStore-CGgeb9zL.js +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/LineOffsetLayer-BT_eFkEQ.js +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/LogisticsViewer-ByuCoekP.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/MATSimEventStreamer.worker-Dk6wRjLM.js +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/ModalIdColumnPicker-BYwf6hzm.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/NetworkLinks-BJ6Kp_50.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/NewXmlFetcher.worker-DPWerqW9.js +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/NewXmlFetcher.worker-DSJgeOd2.js +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/PathTraceLayer-CrQfpvuS.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/PieChartDemo-BtuA3oXS.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/PlotlyDiagram-CkH80TS4.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/PolygonsLayer.worker-Da8eb_7-.js +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/RoadNetworkLoader.worker-BsIqKwCD.js +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/RunConfigurator-Cka-r30l.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/SW_logo_icon_anim-Cyl7nwZq.gif +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/SW_logo_white-Db4Yi2rP.js +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/SW_logo_white-mbdplT21.png +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/SW_logo_yellow-Btlbhihn.png +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/SankeyDiagram-CACz4sdX.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/ShapeFile-DvcMpC5F.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/TimeSlider-Bvnp9Ymc.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/TopSheet-CMi5Zi0C.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/TopSheetWorker.worker-1BBR3_FY.js +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/TransitDemand-BomSZv4o.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/TransitSupplyHelper.worker-D8crPrmD.js +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/VegaLite-DVfrWt8N.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/VehicleAnimation-B4xTr4qm.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/VehicleAnimation-Dc9Qe3Dk.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/VideoPlayer-CQUHGSke.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/VizConfigurator-BdqEZ4Dv.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/WASMEventStreamer.worker-CcmHvrKr.js +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/WasmXmlNetworkParser.worker-DHMrMYgf.js +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/XmlViewer-BGwZvg3-.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/XyHexagons-B8s4dmQS.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/XyTime-DIy6Bs2z.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/XytDataParser.worker-DDEc0p2H.js +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/ZoomButtons-urPLxqJ5.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/aggregate-od-CxN1rXyi.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/arc-layer-utQsdbjp.js +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/arcs-B-65v31y.png +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/area-B207IVrs.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/area-map-CwgktcLJ.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/bar-BAcPDcUH.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/berlin-C-twquEa.jpg +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/bubble-BkeWQmPX.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/carriers-Bynfqluv.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/comlink-CPG-Ccvr.js +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/cubehelix-BzW-tINw.js +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/data-filter-extension-BJBYmUft.js +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/defaultLocale-Zq5WfVW0.js +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/draw-icon-dm-DbFh91q-.png +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/extent-Ccx1MofX.js +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/flowmap-CvjUZABP.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/fxp-DjoqftHf.js +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/gridmap-f31N4Owr.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/group-hI8ly2Wr.js +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/hcl-DetDTYpa.js +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/heatmap-BxnzdKxM.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/hexagons-CPOSxcyG.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/icon-blue-ramp-D1d4h-6x.png +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/icon-pie-chart-BS7BHQ_l.png +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/icon-stop-triangle-BjEDyLtU.png +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/index-B9fw0f6a.js +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/index-CVL_6l40.js +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/index-CWHgNK9I.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/index-DFKcNkqO.js +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/index-_doEQLKC.js +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/layer-T9N9JmIf.js +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/layer-extension-LbH36Bf-.js +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/layermap-CWKLShno.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/libH5Zblosc-DmbwZN5J.so +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/libH5Zblosc2-C2k_kvFi.so +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/libH5Zbshuf-CAWqoiJv.so +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/libH5Zbz2-YH5bcfd1.so +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/libH5Zlz4-DBxVEC8C.so +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/libH5Zlzf-B37RoVJN.so +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/libH5Zszf-vmQ-rYRm.so +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/libH5Zzfp-CxpSdQww.so +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/libH5Zzstd-BNHjSL5H.so +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/lil-gui.esm-D2cLj-mk.js +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/line-DkJk6MUL.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/line-layer-BJTc6V-8.js +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/links-BdpHH8jO.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/links-BjFLDFnX.png +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/mapbox-overlay-HS93bZkL.js +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/matrix-CwtPS1VI.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/matsim_event_streamer_bg-DwBjm0Hh.wasm +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/min-C6O82vcA.js +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/moving-icons-vehicles-layer-BE4Nsm9T.js +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/pie-CHkxdXB7.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/plotly-DIuHo25J.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/points-CNz3arAg.png +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/polygons-BCSoK5vV.png +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/pow-RbZoge3Z.js +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/precisionRound-CRsIqO1V.js +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/rainbow-DNS2KC2A.js +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/range-OtVwhkKS.js +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/sankey-ChmfM_XB.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/scatter-DxIgg1if.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/sequential-pySAYR1V.js +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/sidebar-BRi9n39r.png +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/slideshow-KikGqlRS.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/sw_minus-B3KtJjJs.jpg +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/sw_minus_dm-BB92PyXK.jpg +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/sw_north_arrow-BuDjRW21.png +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/sw_north_arrow_dm-b3Ne7pdA.png +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/sw_plus-_7XGt7Yq.jpg +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/sw_plus_dm-O9hpaAgy.jpg +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/table-DEhKzzbD.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/table-NNqWMujx.png +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/text-Cz75an8R.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/threshold-CrWFx_nu.js +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/thumbnail-B7gJwb8m.jpg +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/thumbnail-BWla1ZrP.jpg +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/thumbnail-B_QeHA-1.jpg +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/tile-BmkuwpJZ.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/timer-qV2ZeSM_.js +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/transit-J9voF7aH.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/turf.es-BzqbG201.js +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/vega-9UM1ksay.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/vehicles-BEXxPljt.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/video-Bc92MdQ0.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/vsp-2023-logo-kcRNuRsU.png +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/vue-good-table.esm-CI0urkCK.js +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/xml-DR8CGo6Q.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/xytime-BdF5XbHJ.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/assets/year-Cg8DRz0f.js +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/colors/scale-bluered.png +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/colors/scale-inferno.png +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/colors/scale-picnic.png +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/colors/scale-salinity.png +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/colors/scale-viridis.png +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/css/font-awesome-5.7.1.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/css/materialdesignicons.min.css +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/data/build-index.js +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/data/index.html +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/icon-atlas.png +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/images/SW_favicon.png +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/images/SW_logo_icon_white.png +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/images/SW_logo_icon_yellow.png +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/images/draw-icon.svg +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/images/icon-atlas-2.svg +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/images/icon-atlas-3.png +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/images/icon-atlas-3.xcf +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/images/icon-atlas-vehicles-leftside.png +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/images/icon-atlas-vehicles.png +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/images/icon-atlas.png +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/images/icon-atlas.svg +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/images/logos/arc.png +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/images/logos/bmbf-logo.png +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/images/logos/dfg.jpg +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/images/logos/matsim-logo-blue.png +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/images/logos/matsim-logo-white.png +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/images/logos/metcouncil.png +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/images/logos/mtc.png +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/images/logos/mwcog.png +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/images/logos/ohiodot.png +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/images/logos/oregondot.png +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/images/logos/psrc.png +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/images/logos/sandag.jpg +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/images/logos/semcog.jpg +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/images/logos/sfcta-old.png +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/images/logos/sfcta.png +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/images/logos/tu-logo.png +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/images/logos/vsp-logo-300dpi.png +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/images/tile-icons/departure_board.svg +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/images/tile-icons/directions_bike.svg +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/images/tile-icons/directions_boat.svg +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/images/tile-icons/directions_bus.svg +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/images/tile-icons/directions_car.svg +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/images/tile-icons/directions_subway.svg +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/images/tile-icons/electric_car.svg +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/images/tile-icons/electric_rickshaw.svg +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/images/tile-icons/emoji_transportation.svg +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/images/tile-icons/ev_station.svg +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/images/tile-icons/group.svg +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/images/tile-icons/groups.svg +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/images/tile-icons/info.txt +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/images/tile-icons/local_gas_station.svg +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/images/tile-icons/local_parking.svg +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/images/tile-icons/local_shipping.svg +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/images/tile-icons/local_taxi.svg +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/images/tile-icons/motorcycle.svg +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/images/tile-icons/person.svg +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/images/tile-icons/route.svg +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/images/tile-icons/subway.svg +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/images/tile-icons/train.svg +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/images/tile-icons/transportation.svg +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/images/tile-icons/two_wheeler.svg +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/images/veh-curvy.png +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/images/veh-curvy2.png +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/images/veh-curvy3.png +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/images/veh-curvy5.png +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/map-styles/dark.json +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/map-styles/positron.json +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/sax-wasm.wasm +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/sql-wasm.wasm +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/tu-logo-circle.jpg +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/tu-logo-circle.png +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/tu-logo.png +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/webfonts/Firava.ttf +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/webfonts/fa-regular-400.eot +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/webfonts/fa-regular-400.svg +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/webfonts/fa-regular-400.ttf +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/webfonts/fa-regular-400.woff +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/webfonts/fa-regular-400.woff2 +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/webfonts/fa-solid-900.eot +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/webfonts/fa-solid-900.svg +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/webfonts/fa-solid-900.ttf +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/webfonts/fa-solid-900.woff +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/webfonts/fa-solid-900.woff2 +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/webfonts/figtree-italic-var.ttf +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/webfonts/figtree-var.ttf +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/zones/sandag.geojson.gz +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/simwrapper/static/zones/zones.yaml +0 -0
- {simwrapper-4.3.1 → simwrapper-4.3.3}/tests/__init__.py +0 -0
|
@@ -67,7 +67,10 @@ class FilesList(Resource):
|
|
|
67
67
|
# prefix must end with a slash
|
|
68
68
|
if not prefix.endswith('/'): prefix += '/'
|
|
69
69
|
|
|
70
|
-
|
|
70
|
+
base = STORAGE[server_id]
|
|
71
|
+
if not base.endswith('/'): base += '/'
|
|
72
|
+
|
|
73
|
+
path = f"{base}{prefix}"
|
|
71
74
|
if sys.platform.startswith("win"): path = path.replace("/", "\\")
|
|
72
75
|
|
|
73
76
|
content = {"files": [], "dirs": [], "handles": {}}
|
|
@@ -95,8 +98,12 @@ class File(Resource):
|
|
|
95
98
|
|
|
96
99
|
logger.debug(f'GET {server_id} {request.args["prefix"]}')
|
|
97
100
|
|
|
101
|
+
base = STORAGE[server_id]
|
|
102
|
+
if not base.endswith('/'): base += '/'
|
|
103
|
+
|
|
98
104
|
prefix = request.args['prefix']
|
|
99
|
-
path = f"{
|
|
105
|
+
path = f"{base}{prefix}"
|
|
106
|
+
|
|
100
107
|
if sys.platform.startswith("win"): path = path.replace("/", "\\")
|
|
101
108
|
try:
|
|
102
109
|
if not os.path.isfile(path):
|
|
@@ -155,7 +162,9 @@ class Omx(Resource):
|
|
|
155
162
|
# We need the prefix # and the personal-access-token
|
|
156
163
|
prefix = request.args["prefix"]
|
|
157
164
|
server = STORAGE[server_id]
|
|
158
|
-
|
|
165
|
+
if not server.endswith('/'): server += '/'
|
|
166
|
+
|
|
167
|
+
path = f"{server}{prefix}"
|
|
159
168
|
if sys.platform.startswith("win"): path = path.replace("/", "\\")
|
|
160
169
|
|
|
161
170
|
# 1. Open the OMX file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as c,n as h,g as d,C as f,S as y,m as g}from"./index-BwIP81FD.js";import{p as b,C as w,r as F}from"./Coords-C-Mhj230.js";import{l as L,c as x}from"./turf.es-BzqbG201.js";import{d as u}from"./index-2KlExUzB.js";import{n as v}from"./nprogress-BmxkcMR8.js";import{r as _}from"./index-BGlm3aec.js";import{Y as k}from"./index-DFKcNkqO.js";import{C as M}from"./CollapsiblePanel-DR8lkDrz.js";import{Z as T}from"./ZoomButtons-D_WYIzIx.js";import{f as D,H as $}from"./HTTPFileSystem-DVIUrFO_.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",v.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()),v.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=x(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 F(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=w.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=b(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(b(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 L(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 we=he.exports;export{we as default};
|
|
1
|
+
import{d as c,n as h,g as d,C as f,S as y,m as g}from"./index-BX7jQcoh.js";import{p as b,C as w,r as F}from"./Coords-C-Mhj230.js";import{l as L,c as x}from"./turf.es-BzqbG201.js";import{d as u}from"./index-lhh_utkZ.js";import{n as v}from"./nprogress-gEemPHaj.js";import{r as _}from"./index-DvTjB8jE.js";import{Y as k}from"./index-DFKcNkqO.js";import{C as M}from"./CollapsiblePanel-D7Qg4ara.js";import{Z as T}from"./ZoomButtons-PxSjzru1.js";import{f as D,H as $}from"./HTTPFileSystem-D9FfZC5j.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",v.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()),v.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=x(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 F(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=w.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=b(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(b(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 L(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 we=he.exports;export{we as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as C,C as L}from"./Coords-C-Mhj230.js";import{c as D}from"./turf.es-BzqbG201.js";import{N as y,b as w}from"./ColorsAndWidths-
|
|
1
|
+
import{r as C,C as L}from"./Coords-C-Mhj230.js";import{c as D}from"./turf.es-BzqbG201.js";import{N as y,b as w}from"./ColorsAndWidths-CaSMrknU.js";import{r as v,G as A}from"./geo-utils-CCVst3B0.js";import{D as B}from"./index-BX7jQcoh.js";import{G as F}from"./geojson-layer-uU2lasyR.js";import{s as T}from"./sequential-pySAYR1V.js";import{o as k}from"./threshold-CrWFx_nu.js";import{r as W}from"./cubehelix-BzW-tINw.js";class R{bgLayers={};fileApi;subfolder;vizDetails;constructor(s){this.vizDetails=s.vizDetails,this.subfolder=s.subfolder,this.fileApi=s.fileApi}layers(){const s=[],e=[];for(const i of Object.keys(this.bgLayers).reverse()){const r=this.bgLayers[i],f=new F({id:`background-layer-${i}`,beforeId:r.onTop?void 0:"water",data:r.features,getFillColor:o=>o.properties.__fill__,getLineColor:r.borderColor,getLineWidth:r.borderWidth,getText:o=>o.properties.label,getTextSize:12,getTextColor:[255,255,255,255],getTextBackgroundColor:[0,0,0,255],pointType:"circle+text",textFontWeight:"bold",lineWidthUnits:"pixels",autohighlight:!1,opacity:r.opacity,pickable:!1,stroked:!!r.borderWidth,fp64:!1,parameters:{depthTest:!1},visible:r.visible});r.onTop?e.push(f):s.push(f)}return{layersBelow:s,layersOnTop:e}}async loadShapefileFeatures(s){console.log("loading",s);const e=`${this.subfolder}/${s}`;let i,r,f,o={};try{i=await this.fileApi.getFileBlob(e)}catch{throw Error("Error loading "+e)}try{let t=e;t.endsWith(".shp")&&(t=t.slice(0,-4)+".dbf"),t.endsWith(".SHP")&&(t=t.slice(0,-4)+".DBF"),t.endsWith(".Shp")&&(t=t.slice(0,-4)+".Dbf"),r=await this.fileApi.getFileBlob(t),f=await(await r)?.arrayBuffer()}catch{}try{const t=await(await i)?.arrayBuffer();if(!t)return[];o=await C(t,f),o.features=o.features.filter(g=>!!g.geometry)}catch(t){throw console.error(t),Error(`Error loading shapefile ${e}`)}let h=B,l=e;l.endsWith(".shp")&&(l=l.slice(0,-4)+".prj"),l.endsWith(".SHP")&&(l=l.slice(0,-4)+".PRJ"),l.endsWith(".Shp")&&(l=l.slice(0,-4)+".Prj");try{h=await this.fileApi.getFileText(l)}catch(t){console.error(""+t)}const d=this.vizDetails.projection||L.guessProjection(h);d&&(o=v.toWgs84(o,d,L.allEPSGs));function b(t){return Array.isArray(t[0])?b(t[0]):[t[0],t[1]]}const p=b(o.features[0].geometry.coordinates);if(Math.abs(p[0])>180||Math.abs(p[1])>90)throw Error("Coordinates not lon/lat. Try adding projection to YAML, or provide a .prj file");return o.features}async loadGeoPackage(s){console.log("loading",s);const e=`${this.subfolder}/${s}`,r=await(await this.fileApi.getFileBlob(e)).arrayBuffer();return A.loadGeoPackageFromBuffer(r)}async initialLoad(){if(this.bgLayers={},!this.vizDetails.backgroundLayers){this.vizDetails.backgroundLayers={};return}for(const s of Object.keys(this.vizDetails.backgroundLayers)){console.log("LOADING",s);const e=this.vizDetails.backgroundLayers[s];if(!e.shapes)continue;let i=[];const r=e.shapes;r.startsWith("http")?i=(await fetch(r).then(async a=>await a.json())).features:r.toLocaleLowerCase().endsWith(".gpkg")?i=await this.loadGeoPackage(r):r.toLocaleLowerCase().endsWith(".shp")?i=await this.loadShapefileFeatures(r):i=(await this.fileApi.getFileJson(`${this.subfolder}/${r}`)).features;let f=null,o;if(e.fill&&!e.fill.startsWith("#")){let a=!1;if(e.fill.startsWith("scheme")&&(a=!0),o=y[e.fill],o||(o=y[`interpolate${e.fill}`]),o||(o=y[`scheme${e.fill}`],o&&(a=!0)),o){let n=T(o);n||(n=k(o)),f=Array.from({length:i.length},(c,m)=>{const u=a?W(o[m%o.length]):W(n(m/(i.length-1)));return[u.r,u.g,u.b]})}}let h;o||(h=w([e.fill])[0]);for(let a=0;a<i.length;a++){const n=i[a];let c=[64,64,192,64];e.fill&&(c=h||f[a]),n.properties.__fill__=c}if(e.label){const a=[];for(const n of i){const c=D(n);c.properties||(c.properties={}),c.properties.label=n.properties[e.label],a.push(c)}i=i.concat(a)}const l=e.borderColor?w([e.borderColor])[0]:[255,255,255];let d="borderWidth"in e?parseFloat(e.borderWidth):0;const b=e.opacity||1;let p=!0;"visible"in e&&(p=e.visible);let t=!1;"onTop"in e&&(t=!!e.onTop),"ontop"in e&&(t=!!e.ontop);const g={features:i,opacity:b,borderWidth:d,borderColor:l,visible:p,onTop:t};this.bgLayers[s]=g,this.bgLayers={...this.bgLayers},console.log("LOADED BG LAYERS")}}}export{R as B};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as m,C as n,g as r,m as p,n as l}from"./index-
|
|
1
|
+
import{d as m,C as n,g as r,m as p,n as l}from"./index-BX7jQcoh.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-
|
|
1
|
+
import{d as l,g as s,n as a}from"./index-BX7jQcoh.js";import{Y as o}from"./index-DFKcNkqO.js";import{H as r}from"./HTTPFileSystem-D9FfZC5j.js";import{T as n}from"./TopSheet-BbB-TdnX.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 +1 @@
|
|
|
1
|
-
import{d as k,n as S,g as p,m as z,C as w,R as _}from"./index-BwIP81FD.js";import{d as A}from"./index-CVL_6l40.js";import{r as M}from"./index-BGlm3aec.js";import{Y as P}from"./index-DFKcNkqO.js";import{f as O,g as j,p as E,n as u,a as F,H as B}from"./HTTPFileSystem-DVIUrFO_.js";import{c as R}from"./index-CFPivVNZ.js";import{P as W,L as H}from"./LegendColors-C8n4a03Q.js";import{Z as N}from"./ZoomButtons-D_WYIzIx.js";import{W as U,D as X}from"./DashboardDataManager-BxmipbOK.js";import{P as C}from"./PathOffsetLayer-CfPE7UJb.js";import{M as Y}from"./mapbox-overlay-HS93bZkL.js";import{A as D}from"./arc-layer-utQsdbjp.js";import{T as I,S as f}from"./geojson-layer-DohWtVq3.js";import{B as q}from"./BackgroundLayers-DU3ROBLH.js";import"./fxp-DjoqftHf.js";import"./layer-extension-LbH36Bf-.js";import"./layer-T9N9JmIf.js";import"./group-hI8ly2Wr.js";import"./index-_doEQLKC.js";import"./Coords-C-Mhj230.js";import"./turf.es-BzqbG201.js";import"./ColorsAndWidths-CPY1BpxV.js";import"./cubehelix-BzW-tINw.js";import"./threshold-CrWFx_nu.js";import"./rainbow-DNS2KC2A.js";import"./geo-utils-B2AlDn9k.js";import"./sequential-pySAYR1V.js";import"./pow-RbZoge3Z.js";import"./precisionRound-CRsIqO1V.js";const G=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 V=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()},J=[],Z=S(G,V,J,!1,null,null);const K=Z.exports,x="/",y={pickup:[0,150,255],delivery:[240,0,60]},Q=k({name:"MyDeckComponent",components:{MapTooltip:K},props:{activeTab:{type:String,required:!0},bgLayers:{type:Object},dark:{type:Boolean,required:!0},depots:{type:Array},legs:{type:Array,required:!0},mapIsIndependent:{type:Boolean},numSelectedTours:{type:Number,required:!0},onClick:{type:Function},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=[],t=this.bgLayers?.layers();if(t&&s.push(...t.layersBelow),this.activeTab=="tours"&&(s.push(new C({id:"shipmentLocationDashedLine",data:this.stopActivities,getPath:e=>[e.ptFrom,e.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 W({dash:!0})]})),this.settings.simplifyTours?s.push(new D({id:"leg-arcs",data:this.legs,getSourcePosition:e=>e.points[0],getTargetPosition:e=>e.points[e.points.length-1],getSourceColor:e=>e.color,getTargetColor:e=>e.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:e=>e.points,getColor:e=>e.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 I({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:e=>{const i=e.visits.reduce((r,n)=>r+n.pickup.length,0),o=e.visits.reduce((r,n)=>r+n.delivery.length,0);return i&&o?[0,0,255]:i?y.pickup:o?y.delivery:[240,130,0]},getPosition:e=>e.midpoint,getText:e=>e.label=="Depot"?e.label:this.numSelectedTours!==1?" ":`${e.label}`,getSize:e=>e.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:i=>i.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:i=>i.coord,getFillColor:y.pickup,getRadius:2,opacity:.9,parameters:{depthTest:!1},pickable:!0,radiusUnits:"pixels",onHover:this.getTooltip}));const e=this.shipments.length>1?32:255;this.services?s.push(new f({id:"services",data:this.shipments,getPosition:i=>[i.toX,i.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:"shipments",data:this.shipments,getSourcePosition:i=>[i.fromX,i.fromY],getTargetPosition:i=>[i.toX,i.toY],getSourceColor:[0,228,255,e],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: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:"depots",data:this.depots,background:!0,backgroundPadding:[3,2,3,1],getColor:[255,255,255],getBackgroundColor:[0,150,240],getPosition:e=>e.midpoint,getText:e=>"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})),t&&s.push(...t.layersOnTop),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 z.Map({center:e,zoom:i,container:t,style:s}),this.mymap.on("style.load",()=>{this.deckOverlay=new Y({layers:this.layers,interleaved:!0,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 tt=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)},et=[],st=S(Q,tt,et,!1,null,null);const it=st.exports,ot={messages:{en:{carriers:"Carriers",vehicles:"VEHICLES",services:"SERVICES",shipments:"JOBS",jobs:"JOBS",tours:"TOURS",pickup:"Pickup",delivery:"Delivery",flatten:"Simple tours",shipmentDots:"Show shipments",scaleSize:"Widths",scaleFactor:"Width",service:"Service"},de:{carriers:"Unternehmen",vehicles:"FAHRZEUGE",services:"BETRIEBE",shipments:"AUFTRÄGE",jobs:"JOBS",tours:"TOUREN",pickup:"Abholung",delivery:"Lieferung",flatten:"Simple tours",shipmentDots:"Show shipments",scaleSize:"Widths",scaleFactor:"Width",service:"Betrieb"}}};u.insensitive=!0;const rt=k({name:"CarrierPlugin",i18n:ot,components:{DeckMapComponent:it,LegendColors:H,ToggleButton:A.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:[]},isDraggingDivider:0,dragStartWidth:250,legendSectionWidth:275,myDataManager:this.datamanager||new X(this.root,this.subfolder),searchTerm:"",searchEnabled:!1,backgroundLayers:null,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"(){_[this.linkLayerId]&&_[this.linkLayerId]()},"globalState.isDarkMode"(){this.updateLegendColors()},async"globalState.authAttempts"(){console.log("AUTH CHANGED - Reload"),this.yamlConfig||this.buildRouteFromUrl(),await this.getVizDetails()}},methods:{dividerDragStart(s){this.isDraggingDivider=s.clientX,this.dragStartWidth=this.legendSectionWidth},dividerDragEnd(s){this.isDraggingDivider=0},dividerDragging(s){if(!this.isDraggingDivider)return;const t=this.isDraggingDivider-s.clientX;this.legendSectionWidth=Math.max(0,this.dragStartWidth+t)},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]],v=[this.links[c][2],this.links[c][3]],$=[.5*(m[0]+v[0]),.5*(m[1]+v[1])],L=this.$t(l.$type),{from:ct,fromX:ht,fromY:pt,to:dt,toX:ut,toY:mt,id:gt,...T}=a,b={id:a.$id,type:L,count:e++,link:c,midpoint:$,label:"",tour:s,details:T,ptFrom:m,ptTo:v};if(c==h)i[`L${c}`].visits[i[`L${c}`].visits.length-1][l.$type].push(b);else if(`L${c}`in i){const g={pickup:[],delivery:[],service:[]};g[l.$type].push(b),i[`L${c}`].visits.push(g)}else{const g={pickup:[],delivery:[],service:[]};g[l.$type].push(b),i[`L${c}`]={link:c,midpoint:$,label:"",tour:s,details:T,ptFrom:m,ptTo:v,visits:[g]}}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}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=F(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 E(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?w.DarkMode:w.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(){if(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]);try{this.backgroundLayers=new q({vizDetails:this.vizDetails,fileApi:this.fileApi,subfolder:this.subfolder}),await this.backgroundLayers.initialLoad()}catch{this.$emit("error","Error loading background layers")}}},beforeDestroy(){this.myState.isRunning=!1,p.commit("setFullScreen",!1),this.$store.commit("setFullScreen",!1)}});var at=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",on:{mousemove:t.dividerDragging,mouseup:t.dividerDragEnd}},[e("div",{staticClass:"main-panel"},[t.thumbnail?t._e():e("DeckMapComponent",{staticClass:"anim",attrs:{activeTab:t.activeTab,bgLayers:t.backgroundLayers,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||!1}}),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),e("div",{staticClass:"dragger",on:{mousedown:t.dividerDragStart,mouseup:t.dividerDragEnd,mousemove:function(i){return i.stopPropagation(),t.dividerDragging.apply(null,arguments)}}}),e("div",{staticClass:"right-panel",style:{width:`${t.legendSectionWidth}px`},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)])])},nt=[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"})])}],lt=S(rt,at,nt,!1,null,"72db1728");const Xt=lt.exports;export{Xt as default};
|
|
1
|
+
import{d as k,n as S,g as p,m as z,C as w,R as _}from"./index-BX7jQcoh.js";import{d as A}from"./index-CVL_6l40.js";import{r as M}from"./index-DvTjB8jE.js";import{Y as P}from"./index-DFKcNkqO.js";import{f as O,g as j,p as E,n as u,a as F,H as B}from"./HTTPFileSystem-D9FfZC5j.js";import{c as R}from"./index-BkOEJz5G.js";import{P as W,L as H}from"./LegendColors-Lm7wrC8N.js";import{Z as N}from"./ZoomButtons-PxSjzru1.js";import{W as U,D as X}from"./DashboardDataManager-DOwC_6nC.js";import{P as C}from"./PathOffsetLayer-CjYw_Iig.js";import{M as Y}from"./mapbox-overlay-HS93bZkL.js";import{A as D}from"./arc-layer-utQsdbjp.js";import{T as I,S as f}from"./geojson-layer-uU2lasyR.js";import{B as q}from"./BackgroundLayers-CUd5LA7y.js";import"./fxp-DjoqftHf.js";import"./layer-extension-LbH36Bf-.js";import"./layer-T9N9JmIf.js";import"./group-hI8ly2Wr.js";import"./index-_doEQLKC.js";import"./Coords-C-Mhj230.js";import"./turf.es-BzqbG201.js";import"./ColorsAndWidths-CaSMrknU.js";import"./cubehelix-BzW-tINw.js";import"./threshold-CrWFx_nu.js";import"./rainbow-DNS2KC2A.js";import"./geo-utils-CCVst3B0.js";import"./sequential-pySAYR1V.js";import"./pow-RbZoge3Z.js";import"./precisionRound-CRsIqO1V.js";const G=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 V=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()},J=[],Z=S(G,V,J,!1,null,null);const K=Z.exports,x="/",y={pickup:[0,150,255],delivery:[240,0,60]},Q=k({name:"MyDeckComponent",components:{MapTooltip:K},props:{activeTab:{type:String,required:!0},bgLayers:{type:Object},dark:{type:Boolean,required:!0},depots:{type:Array},legs:{type:Array,required:!0},mapIsIndependent:{type:Boolean},numSelectedTours:{type:Number,required:!0},onClick:{type:Function},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=[],t=this.bgLayers?.layers();if(t&&s.push(...t.layersBelow),this.activeTab=="tours"&&(s.push(new C({id:"shipmentLocationDashedLine",data:this.stopActivities,getPath:e=>[e.ptFrom,e.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 W({dash:!0})]})),this.settings.simplifyTours?s.push(new D({id:"leg-arcs",data:this.legs,getSourcePosition:e=>e.points[0],getTargetPosition:e=>e.points[e.points.length-1],getSourceColor:e=>e.color,getTargetColor:e=>e.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:e=>e.points,getColor:e=>e.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 I({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:e=>{const i=e.visits.reduce((r,n)=>r+n.pickup.length,0),o=e.visits.reduce((r,n)=>r+n.delivery.length,0);return i&&o?[0,0,255]:i?y.pickup:o?y.delivery:[240,130,0]},getPosition:e=>e.midpoint,getText:e=>e.label=="Depot"?e.label:this.numSelectedTours!==1?" ":`${e.label}`,getSize:e=>e.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:i=>i.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:i=>i.coord,getFillColor:y.pickup,getRadius:2,opacity:.9,parameters:{depthTest:!1},pickable:!0,radiusUnits:"pixels",onHover:this.getTooltip}));const e=this.shipments.length>1?32:255;this.services?s.push(new f({id:"services",data:this.shipments,getPosition:i=>[i.toX,i.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:"shipments",data:this.shipments,getSourcePosition:i=>[i.fromX,i.fromY],getTargetPosition:i=>[i.toX,i.toY],getSourceColor:[0,228,255,e],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: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:"depots",data:this.depots,background:!0,backgroundPadding:[3,2,3,1],getColor:[255,255,255],getBackgroundColor:[0,150,240],getPosition:e=>e.midpoint,getText:e=>"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})),t&&s.push(...t.layersOnTop),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 z.Map({center:e,zoom:i,container:t,style:s}),this.mymap.on("style.load",()=>{this.deckOverlay=new Y({layers:this.layers,interleaved:!0,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 tt=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)},et=[],st=S(Q,tt,et,!1,null,null);const it=st.exports,ot={messages:{en:{carriers:"Carriers",vehicles:"VEHICLES",services:"SERVICES",shipments:"JOBS",jobs:"JOBS",tours:"TOURS",pickup:"Pickup",delivery:"Delivery",flatten:"Simple tours",shipmentDots:"Show shipments",scaleSize:"Widths",scaleFactor:"Width",service:"Service"},de:{carriers:"Unternehmen",vehicles:"FAHRZEUGE",services:"BETRIEBE",shipments:"AUFTRÄGE",jobs:"JOBS",tours:"TOUREN",pickup:"Abholung",delivery:"Lieferung",flatten:"Simple tours",shipmentDots:"Show shipments",scaleSize:"Widths",scaleFactor:"Width",service:"Betrieb"}}};u.insensitive=!0;const rt=k({name:"CarrierPlugin",i18n:ot,components:{DeckMapComponent:it,LegendColors:H,ToggleButton:A.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:[]},isDraggingDivider:0,dragStartWidth:250,legendSectionWidth:275,myDataManager:this.datamanager||new X(this.root,this.subfolder),searchTerm:"",searchEnabled:!1,backgroundLayers:null,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"(){_[this.linkLayerId]&&_[this.linkLayerId]()},"globalState.isDarkMode"(){this.updateLegendColors()},async"globalState.authAttempts"(){console.log("AUTH CHANGED - Reload"),this.yamlConfig||this.buildRouteFromUrl(),await this.getVizDetails()}},methods:{dividerDragStart(s){this.isDraggingDivider=s.clientX,this.dragStartWidth=this.legendSectionWidth},dividerDragEnd(s){this.isDraggingDivider=0},dividerDragging(s){if(!this.isDraggingDivider)return;const t=this.isDraggingDivider-s.clientX;this.legendSectionWidth=Math.max(0,this.dragStartWidth+t)},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]],v=[this.links[c][2],this.links[c][3]],$=[.5*(m[0]+v[0]),.5*(m[1]+v[1])],L=this.$t(l.$type),{from:ct,fromX:ht,fromY:pt,to:dt,toX:ut,toY:mt,id:gt,...T}=a,b={id:a.$id,type:L,count:e++,link:c,midpoint:$,label:"",tour:s,details:T,ptFrom:m,ptTo:v};if(c==h)i[`L${c}`].visits[i[`L${c}`].visits.length-1][l.$type].push(b);else if(`L${c}`in i){const g={pickup:[],delivery:[],service:[]};g[l.$type].push(b),i[`L${c}`].visits.push(g)}else{const g={pickup:[],delivery:[],service:[]};g[l.$type].push(b),i[`L${c}`]={link:c,midpoint:$,label:"",tour:s,details:T,ptFrom:m,ptTo:v,visits:[g]}}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}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=F(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 E(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?w.DarkMode:w.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(){if(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]);try{this.backgroundLayers=new q({vizDetails:this.vizDetails,fileApi:this.fileApi,subfolder:this.subfolder}),await this.backgroundLayers.initialLoad()}catch{this.$emit("error","Error loading background layers")}}},beforeDestroy(){this.myState.isRunning=!1,p.commit("setFullScreen",!1),this.$store.commit("setFullScreen",!1)}});var at=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",on:{mousemove:t.dividerDragging,mouseup:t.dividerDragEnd}},[e("div",{staticClass:"main-panel"},[t.thumbnail?t._e():e("DeckMapComponent",{staticClass:"anim",attrs:{activeTab:t.activeTab,bgLayers:t.backgroundLayers,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||!1}}),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),e("div",{staticClass:"dragger",on:{mousedown:t.dividerDragStart,mouseup:t.dividerDragEnd,mousemove:function(i){return i.stopPropagation(),t.dividerDragging.apply(null,arguments)}}}),e("div",{staticClass:"right-panel",style:{width:`${t.legendSectionWidth}px`},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)])])},nt=[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"})])}],lt=S(rt,at,nt,!1,null,"72db1728");const Xt=lt.exports;export{Xt as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as l,n as s}from"./index-
|
|
1
|
+
import{d as l,n as s}from"./index-BX7jQcoh.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};
|