@expofp/floorplan 3.0.0-alpha.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/Debug-BGF41rXu.js +31 -0
- package/dist/browser/Demo-BrPx_J5D.js +38 -0
- package/dist/browser/Free-CKUe-HME.js +42 -0
- package/dist/browser/Gallery-DObanysV.js +279 -0
- package/dist/browser/GpsLoader-DG4eTFey.js +131 -0
- package/dist/browser/KioskStore-BG54vG5v.js +216 -0
- package/dist/browser/Mapbox-DYPXhDbE.js +109 -0
- package/dist/browser/SetKioskMode-CVHaNTJA.js +240 -0
- package/dist/browser/ShowKiosk-DWrKae-X.js +26 -0
- package/dist/browser/ThreeComponent-BHyMRhbK.js +1586 -0
- package/dist/browser/boolean-editor-CAqnfiK8.js +148 -0
- package/dist/browser/bundle.json +257 -0
- package/dist/browser/client-BD3CUDfs.js +10002 -0
- package/dist/browser/data-BybaFPM_.js +22116 -0
- package/dist/browser/debug-overlay-B7Y95oUy.js +3666 -0
- package/dist/browser/debug-ui-LqMFZltk.js +58 -0
- package/dist/browser/expofp-overlay.png +0 -0
- package/dist/browser/favicon-DalyEhbd.js +4 -0
- package/dist/browser/fetch-retry.umd-B-1h1K-1.js +114 -0
- package/dist/browser/flex-D6Z-8vET.js +391 -0
- package/dist/browser/floorplan.ready-BKm4W0PM.js +58981 -0
- package/dist/browser/fonts/efp-symbols.woff +0 -0
- package/dist/browser/fonts/inter-400.woff2 +0 -0
- package/dist/browser/fonts/inter-500.woff2 +0 -0
- package/dist/browser/fonts/inter-600.woff2 +0 -0
- package/dist/browser/fonts/oswald-v17-cyrillic_latin-300.woff +0 -0
- package/dist/browser/fonts/oswald-v17-cyrillic_latin-500.woff +0 -0
- package/dist/browser/icons/accessible.svg +5 -0
- package/dist/browser/icons/arrow-down.svg +3 -0
- package/dist/browser/icons/bus-white.svg +3 -0
- package/dist/browser/icons/check.svg +3 -0
- package/dist/browser/icons/clear.svg +4 -0
- package/dist/browser/icons/departure.svg +5 -0
- package/dist/browser/icons/destination.svg +5 -0
- package/dist/browser/icons/direction.svg +54 -0
- package/dist/browser/icons/dots.svg +4 -0
- package/dist/browser/icons/dragdrop-solid.svg +11 -0
- package/dist/browser/icons/facebook.svg +4 -0
- package/dist/browser/icons/from.svg +4 -0
- package/dist/browser/icons/kiosk.svg +1 -0
- package/dist/browser/icons/linkedin.svg +3 -0
- package/dist/browser/icons/rotate.svg +5 -0
- package/dist/browser/icons/tap.svg +5 -0
- package/dist/browser/icons/to.svg +4 -0
- package/dist/browser/icons/transition.svg +7 -0
- package/dist/browser/icons/transition_down.svg +15 -0
- package/dist/browser/icons/transition_up.svg +15 -0
- package/dist/browser/icons/twitter.svg +3 -0
- package/dist/browser/icons/yah.svg +17 -0
- package/dist/browser/index-B3N1nXdW.js +3235 -0
- package/dist/browser/index-BejLpHKw.js +83 -0
- package/dist/browser/index-BlQ8_wWj.js +45 -0
- package/dist/browser/index-D0rE2o5K.js +152 -0
- package/dist/browser/index-DBxr4rdm.js +12530 -0
- package/dist/browser/index-DZpYGOZi.js +48 -0
- package/dist/browser/index-Ft1QAc66.js +873 -0
- package/dist/browser/index.html +16 -0
- package/dist/browser/index.js +4 -0
- package/dist/browser/jsx-runtime-jIxVPx5o.js +31 -0
- package/dist/browser/locales/ar.json +126 -0
- package/dist/browser/locales/de.json +126 -0
- package/dist/browser/locales/es.json +126 -0
- package/dist/browser/locales/fr.json +126 -0
- package/dist/browser/locales/he.json +126 -0
- package/dist/browser/locales/it.json +126 -0
- package/dist/browser/locales/kk.json +126 -0
- package/dist/browser/locales/ko.json +126 -0
- package/dist/browser/locales/mn.json +126 -0
- package/dist/browser/locales/nl.json +126 -0
- package/dist/browser/locales/pl.json +126 -0
- package/dist/browser/locales/pt.json +126 -0
- package/dist/browser/locales/ru.json +126 -0
- package/dist/browser/locales/sv.json +126 -0
- package/dist/browser/locales/th.json +126 -0
- package/dist/browser/locales/tr.json +126 -0
- package/dist/browser/locales/uk.json +126 -0
- package/dist/browser/locales/vi.json +126 -0
- package/dist/browser/locales/zh.json +126 -0
- package/dist/browser/main-CD9JioNt.js +350 -0
- package/dist/browser/particles.min-BJIwccE3.js +134 -0
- package/dist/browser/sw.js +2 -0
- package/dist/browser/template.html +113 -0
- package/dist/browser/vendor/mapbox/mapbox-gl.css +1 -0
- package/dist/browser/vendor/perfect-scrollbar/css/perfect-scrollbar.css +1 -0
- package/dist/browser/vendor/sanitize-css/sanitize.css +1 -0
- package/dist/browser/warning.png +0 -0
- package/dist/esm/RouteCutIn.d.ts +24 -0
- package/dist/esm/RouteCutIn.js +1 -0
- package/dist/esm/_NEW_types.d.ts +6 -0
- package/dist/esm/_NEW_types.js +1 -0
- package/dist/esm/_misc_to_move/initHtmlHead.d.ts +2 -0
- package/dist/esm/_misc_to_move/initHtmlHead.js +1 -0
- package/dist/esm/_misc_to_move/logBuildInfo.d.ts +2 -0
- package/dist/esm/_misc_to_move/logBuildInfo.js +1 -0
- package/dist/esm/_misc_to_move/logBuildInfoImpl.d.ts +2 -0
- package/dist/esm/_misc_to_move/logBuildInfoImpl.js +1 -0
- package/dist/esm/components/Alert.d.ts +18 -0
- package/dist/esm/components/Alert.js +1 -0
- package/dist/esm/components/Autocomplete.d.ts +16 -0
- package/dist/esm/components/Autocomplete.js +1 -0
- package/dist/esm/components/Badge.d.ts +14 -0
- package/dist/esm/components/Badge.js +1 -0
- package/dist/esm/components/BaseFilterModal.d.ts +11 -0
- package/dist/esm/components/BaseFilterModal.js +1 -0
- package/dist/esm/components/BookmarkSvg.d.ts +3 -0
- package/dist/esm/components/BookmarkSvg.js +1 -0
- package/dist/esm/components/Bookmarks.d.ts +4 -0
- package/dist/esm/components/Bookmarks.js +1 -0
- package/dist/esm/components/Booth/Booth.d.ts +5 -0
- package/dist/esm/components/Booth/Booth.js +1 -0
- package/dist/esm/components/Booth/BoothOnHold.d.ts +13 -0
- package/dist/esm/components/Booth/BoothOnHold.js +1 -0
- package/dist/esm/components/Booth/BoothReserved.d.ts +2 -0
- package/dist/esm/components/Booth/BoothReserved.js +1 -0
- package/dist/esm/components/Booth/BoothSpecial.d.ts +8 -0
- package/dist/esm/components/Booth/BoothSpecial.js +1 -0
- package/dist/esm/components/Booth/BoothWithoutExhibitor.d.ts +13 -0
- package/dist/esm/components/Booth/BoothWithoutExhibitor.js +1 -0
- package/dist/esm/components/Button.d.ts +25 -0
- package/dist/esm/components/Button.js +1 -0
- package/dist/esm/components/Category.d.ts +4 -0
- package/dist/esm/components/Category.js +1 -0
- package/dist/esm/components/CategoryFilterModal.d.ts +3 -0
- package/dist/esm/components/CategoryFilterModal.js +1 -0
- package/dist/esm/components/Checkbox.d.ts +13 -0
- package/dist/esm/components/Checkbox.js +1 -0
- package/dist/esm/components/CheckboxButton.d.ts +11 -0
- package/dist/esm/components/CheckboxButton.js +1 -0
- package/dist/esm/components/Controls.d.ts +2 -0
- package/dist/esm/components/Controls.js +1 -0
- package/dist/esm/components/CookieConsent.d.ts +9 -0
- package/dist/esm/components/CookieConsent.js +1 -0
- package/dist/esm/components/Debug.d.ts +4 -0
- package/dist/esm/components/Debug.js +1 -0
- package/dist/esm/components/Demo.d.ts +3 -0
- package/dist/esm/components/Demo.js +1 -0
- package/dist/esm/components/Draggable.d.ts +10 -0
- package/dist/esm/components/Draggable.js +1 -0
- package/dist/esm/components/EntityItem.d.ts +43 -0
- package/dist/esm/components/EntityItem.js +1 -0
- package/dist/esm/components/EntityList.d.ts +9 -0
- package/dist/esm/components/EntityList.js +1 -0
- package/dist/esm/components/EntityListRow.d.ts +12 -0
- package/dist/esm/components/EntityListRow.js +1 -0
- package/dist/esm/components/ErrorBoundary.d.ts +15 -0
- package/dist/esm/components/ErrorBoundary.js +1 -0
- package/dist/esm/components/Event.d.ts +5 -0
- package/dist/esm/components/Event.js +1 -0
- package/dist/esm/components/EventBadge.d.ts +10 -0
- package/dist/esm/components/EventBadge.js +1 -0
- package/dist/esm/components/Exhibitor.d.ts +4 -0
- package/dist/esm/components/Exhibitor.js +1 -0
- package/dist/esm/components/Filter.d.ts +3 -0
- package/dist/esm/components/Filter.js +1 -0
- package/dist/esm/components/Free.d.ts +3 -0
- package/dist/esm/components/Free.js +1 -0
- package/dist/esm/components/Gallery/Gallery.d.ts +13 -0
- package/dist/esm/components/Gallery/Gallery.js +1 -0
- package/dist/esm/components/Gallery/GalleryBadges/GalleryBadges.d.ts +8 -0
- package/dist/esm/components/Gallery/GalleryBadges/GalleryBadges.js +1 -0
- package/dist/esm/components/Gallery/GalleryControls/GalleryControls.d.ts +9 -0
- package/dist/esm/components/Gallery/GalleryControls/GalleryControls.js +1 -0
- package/dist/esm/components/Gallery/GalleryImg/GalleryImg.d.ts +14 -0
- package/dist/esm/components/Gallery/GalleryImg/GalleryImg.js +1 -0
- package/dist/esm/components/Gallery/GalleryItem/GalleryItem.d.ts +13 -0
- package/dist/esm/components/Gallery/GalleryItem/GalleryItem.js +1 -0
- package/dist/esm/components/Gallery/GalleryModal/GalleryModal.d.ts +12 -0
- package/dist/esm/components/Gallery/GalleryModal/GalleryModal.js +1 -0
- package/dist/esm/components/Gallery/GalleryPreLoader.d.ts +7 -0
- package/dist/esm/components/Gallery/GalleryPreLoader.js +1 -0
- package/dist/esm/components/Gallery/TransformImg/TransformImg.d.ts +10 -0
- package/dist/esm/components/Gallery/TransformImg/TransformImg.js +1 -0
- package/dist/esm/components/GlobalErrorMessage.d.ts +4 -0
- package/dist/esm/components/GlobalErrorMessage.js +1 -0
- package/dist/esm/components/GpsLoader.d.ts +4 -0
- package/dist/esm/components/GpsLoader.js +1 -0
- package/dist/esm/components/HeatmapLegend.d.ts +12 -0
- package/dist/esm/components/HeatmapLegend.js +1 -0
- package/dist/esm/components/HighlightText.d.ts +6 -0
- package/dist/esm/components/HighlightText.js +1 -0
- package/dist/esm/components/Kiosk/KioskStore.d.ts +32 -0
- package/dist/esm/components/Kiosk/KioskStore.js +1 -0
- package/dist/esm/components/Kiosk/SetKiosk/Confirm/ConfirmDialog.d.ts +4 -0
- package/dist/esm/components/Kiosk/SetKiosk/Confirm/ConfirmDialog.js +1 -0
- package/dist/esm/components/Kiosk/SetKiosk/FormInput/RangeInput.d.ts +4 -0
- package/dist/esm/components/Kiosk/SetKiosk/FormInput/RangeInput.js +1 -0
- package/dist/esm/components/Kiosk/SetKiosk/Message/InfoMessage.d.ts +4 -0
- package/dist/esm/components/Kiosk/SetKiosk/Message/InfoMessage.js +1 -0
- package/dist/esm/components/Kiosk/SetKiosk/SetKioskComponent.d.ts +4 -0
- package/dist/esm/components/Kiosk/SetKiosk/SetKioskComponent.js +1 -0
- package/dist/esm/components/Kiosk/SetKiosk/SetKioskForm.d.ts +4 -0
- package/dist/esm/components/Kiosk/SetKiosk/SetKioskForm.js +1 -0
- package/dist/esm/components/Kiosk/SetKiosk/SetKioskStatusMessages.d.ts +4 -0
- package/dist/esm/components/Kiosk/SetKiosk/SetKioskStatusMessages.js +1 -0
- package/dist/esm/components/Kiosk/SetKiosk/constants.d.ts +5 -0
- package/dist/esm/components/Kiosk/SetKiosk/constants.js +1 -0
- package/dist/esm/components/Kiosk/SetKiosk/getKioskUrlParamKey.d.ts +2 -0
- package/dist/esm/components/Kiosk/SetKiosk/getKioskUrlParamKey.js +1 -0
- package/dist/esm/components/Kiosk/SetKiosk/getName.d.ts +2 -0
- package/dist/esm/components/Kiosk/SetKiosk/getName.js +1 -0
- package/dist/esm/components/Kiosk/SetKiosk/getSlug.d.ts +2 -0
- package/dist/esm/components/Kiosk/SetKiosk/getSlug.js +1 -0
- package/dist/esm/components/Kiosk/SetKiosk/index.d.ts +7 -0
- package/dist/esm/components/Kiosk/SetKiosk/index.js +1 -0
- package/dist/esm/components/Kiosk/SetKiosk/storage.d.ts +5 -0
- package/dist/esm/components/Kiosk/SetKiosk/storage.js +1 -0
- package/dist/esm/components/Kiosk/SetKiosk/types.d.ts +106 -0
- package/dist/esm/components/Kiosk/SetKiosk/types.js +1 -0
- package/dist/esm/components/Kiosk/SetKioskMode.d.ts +4 -0
- package/dist/esm/components/Kiosk/SetKioskMode.js +1 -0
- package/dist/esm/components/Kiosk/ShowKiosk.d.ts +4 -0
- package/dist/esm/components/Kiosk/ShowKiosk.js +1 -0
- package/dist/esm/components/Kiosk/integrateKiosk.d.ts +4 -0
- package/dist/esm/components/Kiosk/integrateKiosk.js +1 -0
- package/dist/esm/components/Kiosk/kioskUrlParam.d.ts +4 -0
- package/dist/esm/components/Kiosk/kioskUrlParam.js +1 -0
- package/dist/esm/components/Kiosk/recoverKioskFromUrlPrams.d.ts +2 -0
- package/dist/esm/components/Kiosk/recoverKioskFromUrlPrams.js +1 -0
- package/dist/esm/components/Kiosk/requestKioskKey.d.ts +3 -0
- package/dist/esm/components/Kiosk/requestKioskKey.js +1 -0
- package/dist/esm/components/Language.d.ts +4 -0
- package/dist/esm/components/Language.js +1 -0
- package/dist/esm/components/LanguageRow.d.ts +8 -0
- package/dist/esm/components/LanguageRow.js +1 -0
- package/dist/esm/components/LargeMessage.d.ts +3 -0
- package/dist/esm/components/LargeMessage.js +1 -0
- package/dist/esm/components/LayersLoading.d.ts +9 -0
- package/dist/esm/components/LayersLoading.js +1 -0
- package/dist/esm/components/Layout.d.ts +10 -0
- package/dist/esm/components/Layout.js +1 -0
- package/dist/esm/components/LevelBadge.d.ts +8 -0
- package/dist/esm/components/LevelBadge.js +1 -0
- package/dist/esm/components/LevelSelector.d.ts +3 -0
- package/dist/esm/components/LevelSelector.js +1 -0
- package/dist/esm/components/List.d.ts +9 -0
- package/dist/esm/components/List.js +1 -0
- package/dist/esm/components/LogoOverlay.d.ts +4 -0
- package/dist/esm/components/LogoOverlay.js +1 -0
- package/dist/esm/components/Map/Map.d.ts +25 -0
- package/dist/esm/components/Map/Map.js +1 -0
- package/dist/esm/components/Map/booth-by-xy.d.ts +3 -0
- package/dist/esm/components/Map/booth-by-xy.js +1 -0
- package/dist/esm/components/Map/drawing/config/BoothDrawerBase.d.ts +8 -0
- package/dist/esm/components/Map/drawing/config/BoothDrawerBase.js +1 -0
- package/dist/esm/components/Map/drawing/config/BoothShape.d.ts +8 -0
- package/dist/esm/components/Map/drawing/config/BoothShape.js +1 -0
- package/dist/esm/components/Map/drawing/config/Rect.d.ts +7 -0
- package/dist/esm/components/Map/drawing/config/Rect.js +1 -0
- package/dist/esm/components/Map/drawing/config/TextFitter.d.ts +11 -0
- package/dist/esm/components/Map/drawing/config/TextFitter.js +1 -0
- package/dist/esm/components/Map/drawing/config/canvases.d.ts +8 -0
- package/dist/esm/components/Map/drawing/config/canvases.js +1 -0
- package/dist/esm/components/Map/drawing/config/config-all.d.ts +5 -0
- package/dist/esm/components/Map/drawing/config/config-all.js +1 -0
- package/dist/esm/components/Map/drawing/config/config-bg.d.ts +9 -0
- package/dist/esm/components/Map/drawing/config/config-bg.js +1 -0
- package/dist/esm/components/Map/drawing/config/config-booth-bg.d.ts +20 -0
- package/dist/esm/components/Map/drawing/config/config-booth-bg.js +1 -0
- package/dist/esm/components/Map/drawing/config/config-booth-bookmark.d.ts +20 -0
- package/dist/esm/components/Map/drawing/config/config-booth-bookmark.js +1 -0
- package/dist/esm/components/Map/drawing/config/config-booth-border.d.ts +12 -0
- package/dist/esm/components/Map/drawing/config/config-booth-border.js +1 -0
- package/dist/esm/components/Map/drawing/config/config-booth-labels-special.d.ts +17 -0
- package/dist/esm/components/Map/drawing/config/config-booth-labels-special.js +2 -0
- package/dist/esm/components/Map/drawing/config/config-booth-labels.d.ts +42 -0
- package/dist/esm/components/Map/drawing/config/config-booth-labels.js +1 -0
- package/dist/esm/components/Map/drawing/config/config-booth-scaled.d.ts +14 -0
- package/dist/esm/components/Map/drawing/config/config-booth-scaled.js +1 -0
- package/dist/esm/components/Map/drawing/config/config-booths.d.ts +6 -0
- package/dist/esm/components/Map/drawing/config/config-booths.js +1 -0
- package/dist/esm/components/Map/drawing/config/config-load-layer.d.ts +5 -0
- package/dist/esm/components/Map/drawing/config/config-load-layer.js +1 -0
- package/dist/esm/components/Map/drawing/config/config-markers.d.ts +6 -0
- package/dist/esm/components/Map/drawing/config/config-markers.js +1 -0
- package/dist/esm/components/Map/drawing/config/config-wf.d.ts +11 -0
- package/dist/esm/components/Map/drawing/config/config-wf.js +1 -0
- package/dist/esm/components/Map/drawing/config/config-yah.d.ts +2 -0
- package/dist/esm/components/Map/drawing/config/config-yah.js +1 -0
- package/dist/esm/components/Map/drawing/config/engine-core/animation.d.ts +7 -0
- package/dist/esm/components/Map/drawing/config/engine-core/animation.js +1 -0
- package/dist/esm/components/Map/drawing/config/engine-core/canvases.d.ts +5 -0
- package/dist/esm/components/Map/drawing/config/engine-core/canvases.js +1 -0
- package/dist/esm/components/Map/drawing/config/engine-core/defs.d.ts +15 -0
- package/dist/esm/components/Map/drawing/config/engine-core/defs.js +3 -0
- package/dist/esm/components/Map/drawing/config/engine-core/fonts.d.ts +9 -0
- package/dist/esm/components/Map/drawing/config/engine-core/fonts.js +1 -0
- package/dist/esm/components/Map/drawing/config/engine-core/index.d.ts +19 -0
- package/dist/esm/components/Map/drawing/config/engine-core/index.js +1 -0
- package/dist/esm/components/Map/drawing/config/engine-core/renderer.d.ts +4 -0
- package/dist/esm/components/Map/drawing/config/engine-core/renderer.js +1 -0
- package/dist/esm/components/Map/drawing/config/engine-core/settings.d.ts +4 -0
- package/dist/esm/components/Map/drawing/config/engine-core/settings.js +1 -0
- package/dist/esm/components/Map/drawing/config/engine-core/types.d.ts +39 -0
- package/dist/esm/components/Map/drawing/config/engine-core/types.js +1 -0
- package/dist/esm/components/Map/drawing/config/engine-core/update-def.d.ts +11 -0
- package/dist/esm/components/Map/drawing/config/engine-core/update-def.js +1 -0
- package/dist/esm/components/Map/drawing/config/engine-core/utils/rotation.d.ts +5 -0
- package/dist/esm/components/Map/drawing/config/engine-core/utils/rotation.js +1 -0
- package/dist/esm/components/Map/drawing/config/loadBoothsImages.d.ts +12 -0
- package/dist/esm/components/Map/drawing/config/loadBoothsImages.js +1 -0
- package/dist/esm/components/Map/drawing/config/route-snapping/index.d.ts +5 -0
- package/dist/esm/components/Map/drawing/config/route-snapping/index.js +1 -0
- package/dist/esm/components/Map/drawing/config/route-snapping/snapPositionToRoute.d.ts +21 -0
- package/dist/esm/components/Map/drawing/config/route-snapping/snapPositionToRoute.js +1 -0
- package/dist/esm/components/Map/drawing/config/route-snapping/splitRouteByPoint.d.ts +6 -0
- package/dist/esm/components/Map/drawing/config/route-snapping/splitRouteByPoint.js +1 -0
- package/dist/esm/components/Map/drawing/config/route-snapping/types.d.ts +18 -0
- package/dist/esm/components/Map/drawing/config/route-snapping/types.js +1 -0
- package/dist/esm/components/Map/drawing/config/route-snapping/utils.d.ts +29 -0
- package/dist/esm/components/Map/drawing/config/route-snapping/utils.js +1 -0
- package/dist/esm/components/Map/traffic/UpdateQueue.d.ts +13 -0
- package/dist/esm/components/Map/traffic/UpdateQueue.js +1 -0
- package/dist/esm/components/Map/traffic/trafficLayers.d.ts +17 -0
- package/dist/esm/components/Map/traffic/trafficLayers.js +1 -0
- package/dist/esm/components/Map/traffic/useBuildRoute.d.ts +10 -0
- package/dist/esm/components/Map/traffic/useBuildRoute.js +7 -0
- package/dist/esm/components/Map/traffic/useManageTraffic.d.ts +11 -0
- package/dist/esm/components/Map/traffic/useManageTraffic.js +1 -0
- package/dist/esm/components/Map/visibleArea.d.ts +15 -0
- package/dist/esm/components/Map/visibleArea.js +1 -0
- package/dist/esm/components/MapControls.d.ts +28 -0
- package/dist/esm/components/MapControls.js +1 -0
- package/dist/esm/components/Mapbox/Button.d.ts +10 -0
- package/dist/esm/components/Mapbox/Button.js +1 -0
- package/dist/esm/components/Mapbox/Dot.d.ts +10 -0
- package/dist/esm/components/Mapbox/Dot.js +1 -0
- package/dist/esm/components/Mapbox/MapLoader.d.ts +3 -0
- package/dist/esm/components/Mapbox/MapLoader.js +1 -0
- package/dist/esm/components/Mapbox/Mapbox.d.ts +3 -0
- package/dist/esm/components/Mapbox/Mapbox.js +1 -0
- package/dist/esm/components/Mapbox/utils/data.d.ts +40 -0
- package/dist/esm/components/Mapbox/utils/data.js +1 -0
- package/dist/esm/components/Mapbox/utils/fpGeo.d.ts +13 -0
- package/dist/esm/components/Mapbox/utils/fpGeo.js +1 -0
- package/dist/esm/components/MarketMaterialList.d.ts +9 -0
- package/dist/esm/components/MarketMaterialList.js +1 -0
- package/dist/esm/components/Menu.d.ts +9 -0
- package/dist/esm/components/Menu.js +2 -0
- package/dist/esm/components/MobileToggleButton.d.ts +4 -0
- package/dist/esm/components/MobileToggleButton.js +1 -0
- package/dist/esm/components/Modal.d.ts +37 -0
- package/dist/esm/components/Modal.js +1 -0
- package/dist/esm/components/MultiSelectGroups.d.ts +33 -0
- package/dist/esm/components/MultiSelectGroups.js +1 -0
- package/dist/esm/components/Overlay.d.ts +21 -0
- package/dist/esm/components/Overlay.js +1 -0
- package/dist/esm/components/OverlayContainer.d.ts +8 -0
- package/dist/esm/components/OverlayContainer.js +1 -0
- package/dist/esm/components/OverlayGrip.d.ts +6 -0
- package/dist/esm/components/OverlayGrip.js +1 -0
- package/dist/esm/components/OverlayParticles.d.ts +5 -0
- package/dist/esm/components/OverlayParticles.js +1 -0
- package/dist/esm/components/PermissionNotice/PermissionNotice.d.ts +13 -0
- package/dist/esm/components/PermissionNotice/PermissionNotice.js +1 -0
- package/dist/esm/components/QrCode.d.ts +46 -0
- package/dist/esm/components/QrCode.js +1 -0
- package/dist/esm/components/Radio.d.ts +12 -0
- package/dist/esm/components/Radio.js +1 -0
- package/dist/esm/components/RebookingNotes.d.ts +12 -0
- package/dist/esm/components/RebookingNotes.js +1 -0
- package/dist/esm/components/RebookingRadioGroup.d.ts +24 -0
- package/dist/esm/components/RebookingRadioGroup.js +1 -0
- package/dist/esm/components/RoutePlanner/RoutePlanner.d.ts +4 -0
- package/dist/esm/components/RoutePlanner/RoutePlanner.js +1 -0
- package/dist/esm/components/RoutePlanner/RoutePlannerHeader.d.ts +4 -0
- package/dist/esm/components/RoutePlanner/RoutePlannerHeader.js +1 -0
- package/dist/esm/components/RoutePlanner/RoutePlannerStartPoint.d.ts +9 -0
- package/dist/esm/components/RoutePlanner/RoutePlannerStartPoint.js +1 -0
- package/dist/esm/components/RoutePlanner/RoutePlannerStopItem.d.ts +9 -0
- package/dist/esm/components/RoutePlanner/RoutePlannerStopItem.js +1 -0
- package/dist/esm/components/RouteQR.d.ts +8 -0
- package/dist/esm/components/RouteQR.js +1 -0
- package/dist/esm/components/Schedule.d.ts +14 -0
- package/dist/esm/components/Schedule.js +1 -0
- package/dist/esm/components/ScrollableRow.d.ts +21 -0
- package/dist/esm/components/ScrollableRow.js +1 -0
- package/dist/esm/components/Search.d.ts +4 -0
- package/dist/esm/components/Search.js +1 -0
- package/dist/esm/components/SearchBox.d.ts +7 -0
- package/dist/esm/components/SearchBox.js +1 -0
- package/dist/esm/components/SearchButtons/SearchButton.d.ts +20 -0
- package/dist/esm/components/SearchButtons/SearchButton.js +1 -0
- package/dist/esm/components/SearchButtons/SearchButtons.d.ts +5 -0
- package/dist/esm/components/SearchButtons/SearchButtons.js +1 -0
- package/dist/esm/components/SearchButtons/SearchSubButton.d.ts +14 -0
- package/dist/esm/components/SearchButtons/SearchSubButton.js +1 -0
- package/dist/esm/components/SearchButtons/SearchSubButtons.d.ts +5 -0
- package/dist/esm/components/SearchButtons/SearchSubButtons.js +1 -0
- package/dist/esm/components/SearchButtons/index.d.ts +7 -0
- package/dist/esm/components/SearchButtons/index.js +1 -0
- package/dist/esm/components/Sessions.d.ts +8 -0
- package/dist/esm/components/Sessions.js +1 -0
- package/dist/esm/components/SessionsFiltersModal.d.ts +11 -0
- package/dist/esm/components/SessionsFiltersModal.js +1 -0
- package/dist/esm/components/Share.d.ts +9 -0
- package/dist/esm/components/Share.js +1 -0
- package/dist/esm/components/Shortcuts/ShortcutButton.d.ts +9 -0
- package/dist/esm/components/Shortcuts/ShortcutButton.js +1 -0
- package/dist/esm/components/Shortcuts/ShortcutsFiltersButton.d.ts +9 -0
- package/dist/esm/components/Shortcuts/ShortcutsFiltersButton.js +1 -0
- package/dist/esm/components/Shortcuts/ShortcutsToolbar.d.ts +10 -0
- package/dist/esm/components/Shortcuts/ShortcutsToolbar.js +1 -0
- package/dist/esm/components/Shortcuts/index.d.ts +4 -0
- package/dist/esm/components/Shortcuts/index.js +1 -0
- package/dist/esm/components/SidebarActions.d.ts +17 -0
- package/dist/esm/components/SidebarActions.js +1 -0
- package/dist/esm/components/SimpleRow.d.ts +17 -0
- package/dist/esm/components/SimpleRow.js +1 -0
- package/dist/esm/components/Speaker.d.ts +5 -0
- package/dist/esm/components/Speaker.js +1 -0
- package/dist/esm/components/Speakers.d.ts +8 -0
- package/dist/esm/components/Speakers.js +1 -0
- package/dist/esm/components/SpeakersFiltersModal.d.ts +11 -0
- package/dist/esm/components/SpeakersFiltersModal.js +1 -0
- package/dist/esm/components/Threejs/ThreeComponent.d.ts +6 -0
- package/dist/esm/components/Threejs/ThreeComponent.js +1 -0
- package/dist/esm/components/Threejs/UIManager.d.ts +28 -0
- package/dist/esm/components/Threejs/UIManager.js +1 -0
- package/dist/esm/components/Threejs/common/BoothMesh.d.ts +20 -0
- package/dist/esm/components/Threejs/common/BoothMesh.js +1 -0
- package/dist/esm/components/Threejs/common/Scene.d.ts +13 -0
- package/dist/esm/components/Threejs/common/Scene.js +1 -0
- package/dist/esm/components/Threejs/common/SpriteMesh.d.ts +5 -0
- package/dist/esm/components/Threejs/common/SpriteMesh.js +1 -0
- package/dist/esm/components/Threejs/common/dataLoader.d.ts +31 -0
- package/dist/esm/components/Threejs/common/dataLoader.js +1 -0
- package/dist/esm/components/Threejs/common/modelLoader.d.ts +3 -0
- package/dist/esm/components/Threejs/common/modelLoader.js +1 -0
- package/dist/esm/components/Threejs/common/sceneLoader.d.ts +7 -0
- package/dist/esm/components/Threejs/common/sceneLoader.js +1 -0
- package/dist/esm/components/Threejs/index.d.ts +4 -0
- package/dist/esm/components/Threejs/index.js +1 -0
- package/dist/esm/components/Threejs/mapbox/configureWebGLForMapbox.d.ts +2 -0
- package/dist/esm/components/Threejs/mapbox/configureWebGLForMapbox.js +1 -0
- package/dist/esm/components/Threejs/mapbox/index_mapbox.d.ts +4 -0
- package/dist/esm/components/Threejs/mapbox/index_mapbox.js +1 -0
- package/dist/esm/components/Threejs/mapbox/init-mapbox.d.ts +3 -0
- package/dist/esm/components/Threejs/mapbox/init-mapbox.js +1 -0
- package/dist/esm/components/Threejs/utils/canvasFromText.d.ts +2 -0
- package/dist/esm/components/Threejs/utils/canvasFromText.js +1 -0
- package/dist/esm/components/Threejs/utils/textureMerger.d.ts +60 -0
- package/dist/esm/components/Threejs/utils/textureMerger.js +1 -0
- package/dist/esm/components/Toast/ToastContainer.d.ts +11 -0
- package/dist/esm/components/Toast/ToastContainer.js +1 -0
- package/dist/esm/components/Toast/ToastContext.d.ts +2 -0
- package/dist/esm/components/Toast/ToastContext.js +1 -0
- package/dist/esm/components/Toast/ToastProvider.d.ts +5 -0
- package/dist/esm/components/Toast/ToastProvider.js +1 -0
- package/dist/esm/components/Toast/index.d.ts +2 -0
- package/dist/esm/components/Toast/index.js +1 -0
- package/dist/esm/components/ToggleButton.d.ts +11 -0
- package/dist/esm/components/ToggleButton.js +1 -0
- package/dist/esm/components/ToggleSwitch.d.ts +12 -0
- package/dist/esm/components/ToggleSwitch.js +1 -0
- package/dist/esm/components/TouchHand.d.ts +4 -0
- package/dist/esm/components/TouchHand.js +1 -0
- package/dist/esm/components/TourPoints.d.ts +3 -0
- package/dist/esm/components/TourPoints.js +1 -0
- package/dist/esm/components/Tours.d.ts +9 -0
- package/dist/esm/components/Tours.js +1 -0
- package/dist/esm/components/ToursList.d.ts +10 -0
- package/dist/esm/components/ToursList.js +1 -0
- package/dist/esm/components/Visited.d.ts +3 -0
- package/dist/esm/components/Visited.js +1 -0
- package/dist/esm/components/WayInformation.d.ts +14 -0
- package/dist/esm/components/WayInformation.js +1 -0
- package/dist/esm/components/Wayfinding.d.ts +4 -0
- package/dist/esm/components/Wayfinding.js +1 -0
- package/dist/esm/components/WayfindingFloorSelector.d.ts +21 -0
- package/dist/esm/components/WayfindingFloorSelector.js +1 -0
- package/dist/esm/components/WayfindingTemplate.d.ts +40 -0
- package/dist/esm/components/WayfindingTemplate.js +1 -0
- package/dist/esm/components/Ws.d.ts +4 -0
- package/dist/esm/components/Ws.js +1 -0
- package/dist/esm/components/YahRow.d.ts +8 -0
- package/dist/esm/components/YahRow.js +1 -0
- package/dist/esm/components/gps/GpsManager.d.ts +12 -0
- package/dist/esm/components/gps/GpsManager.js +1 -0
- package/dist/esm/components/gps/GpsPermissionRequest.d.ts +6 -0
- package/dist/esm/components/gps/GpsPermissionRequest.js +1 -0
- package/dist/esm/components/gps/index.d.ts +5 -0
- package/dist/esm/components/gps/index.js +1 -0
- package/dist/esm/components/gps/types.d.ts +7 -0
- package/dist/esm/components/gps/types.js +1 -0
- package/dist/esm/components/gps/useUserLocationAndHeading.d.ts +8 -0
- package/dist/esm/components/gps/useUserLocationAndHeading.js +1 -0
- package/dist/esm/components/gps/utils.d.ts +5 -0
- package/dist/esm/components/gps/utils.js +1 -0
- package/dist/esm/components/index.d.ts +106 -0
- package/dist/esm/components/index.js +1 -0
- package/dist/esm/components/stories/Alert.stories.d.ts +6 -0
- package/dist/esm/components/stories/Alert.stories.js +1 -0
- package/dist/esm/components/stories/Autocomplete.stories.d.ts +6 -0
- package/dist/esm/components/stories/Autocomplete.stories.js +1 -0
- package/dist/esm/components/stories/Badge.stories.d.ts +5 -0
- package/dist/esm/components/stories/Badge.stories.js +1 -0
- package/dist/esm/components/stories/Button.stories.d.ts +5 -0
- package/dist/esm/components/stories/Button.stories.js +1 -0
- package/dist/esm/components/stories/Checkbox.stories.d.ts +5 -0
- package/dist/esm/components/stories/Checkbox.stories.js +1 -0
- package/dist/esm/components/stories/CheckboxButton.stories.d.ts +5 -0
- package/dist/esm/components/stories/CheckboxButton.stories.js +1 -0
- package/dist/esm/components/stories/CookieConsent.stories.d.ts +5 -0
- package/dist/esm/components/stories/CookieConsent.stories.js +1 -0
- package/dist/esm/components/stories/EntityItem.stories.d.ts +8 -0
- package/dist/esm/components/stories/EntityItem.stories.js +1 -0
- package/dist/esm/components/stories/Gallery.stories.d.ts +5 -0
- package/dist/esm/components/stories/Gallery.stories.js +1 -0
- package/dist/esm/components/stories/Loading.stories.d.ts +5 -0
- package/dist/esm/components/stories/Loading.stories.js +1 -0
- package/dist/esm/components/stories/MapControls.stories.d.ts +5 -0
- package/dist/esm/components/stories/MapControls.stories.js +1 -0
- package/dist/esm/components/stories/MarketMaterialList.stories.d.ts +5 -0
- package/dist/esm/components/stories/MarketMaterialList.stories.js +1 -0
- package/dist/esm/components/stories/Modal.storiesss.d.ts +5 -0
- package/dist/esm/components/stories/Modal.storiesss.js +1 -0
- package/dist/esm/components/stories/Overlay.stories.d.ts +8 -0
- package/dist/esm/components/stories/Overlay.stories.js +1 -0
- package/dist/esm/components/stories/Radio.stories.d.ts +10 -0
- package/dist/esm/components/stories/Radio.stories.js +1 -0
- package/dist/esm/components/stories/RebookingNotes.stories.d.ts +5 -0
- package/dist/esm/components/stories/RebookingNotes.stories.js +1 -0
- package/dist/esm/components/stories/RebookingRadioGroup.stories.d.ts +5 -0
- package/dist/esm/components/stories/RebookingRadioGroup.stories.js +1 -0
- package/dist/esm/components/stories/RouteQR.stories.d.ts +7 -0
- package/dist/esm/components/stories/RouteQR.stories.js +1 -0
- package/dist/esm/components/stories/Share.storiesSS.d.ts +5 -0
- package/dist/esm/components/stories/Share.storiesSS.js +1 -0
- package/dist/esm/components/stories/SidebarActions.stories.d.ts +5 -0
- package/dist/esm/components/stories/SidebarActions.stories.js +1 -0
- package/dist/esm/components/stories/Toast.stories.d.ts +5 -0
- package/dist/esm/components/stories/Toast.stories.js +1 -0
- package/dist/esm/components/stories/ToggleButton.stories.d.ts +5 -0
- package/dist/esm/components/stories/ToggleButton.stories.js +1 -0
- package/dist/esm/components/stories/ToggleSwitch.stories.d.ts +5 -0
- package/dist/esm/components/stories/ToggleSwitch.stories.js +1 -0
- package/dist/esm/components/stories/TouchHand.stories.d.ts +5 -0
- package/dist/esm/components/stories/TouchHand.stories.js +1 -0
- package/dist/esm/components/stories/WayInformation.storiesss.d.ts +5 -0
- package/dist/esm/components/stories/WayInformation.storiesss.js +1 -0
- package/dist/esm/components/stories/WayfindingFloorSelector.storiesss.d.ts +5 -0
- package/dist/esm/components/stories/WayfindingFloorSelector.storiesss.js +1 -0
- package/dist/esm/components/stories/WayfindingTemplate.storiesss.d.ts +5 -0
- package/dist/esm/components/stories/WayfindingTemplate.storiesss.js +1 -0
- package/dist/esm/constants.d.ts +35 -0
- package/dist/esm/constants.js +1 -0
- package/dist/esm/core/Line.d.ts +12 -0
- package/dist/esm/core/Line.js +1 -0
- package/dist/esm/core/Polygon.d.ts +16 -0
- package/dist/esm/core/Polygon.js +1 -0
- package/dist/esm/core/Rect.d.ts +36 -0
- package/dist/esm/core/Rect.js +1 -0
- package/dist/esm/core/Size.d.ts +7 -0
- package/dist/esm/core/Size.js +1 -0
- package/dist/esm/data/index.d.ts +4 -0
- package/dist/esm/data/index.js +1 -0
- package/dist/esm/data/svg.d.ts +13 -0
- package/dist/esm/data/svg.js +1 -0
- package/dist/esm/data/tours.json +148 -0
- package/dist/esm/data/validate-data.d.ts +3 -0
- package/dist/esm/data/validate-data.js +1 -0
- package/dist/esm/expofp-debug.d.ts +5 -0
- package/dist/esm/expofp-debug.js +1 -0
- package/dist/esm/floorplan.loader.d.ts +102 -0
- package/dist/esm/floorplan.loader.js +1 -0
- package/dist/esm/floorplan.ready.d.ts +84 -0
- package/dist/esm/floorplan.ready.js +1 -0
- package/dist/esm/hooks/useDragGesture.d.ts +19 -0
- package/dist/esm/hooks/useDragGesture.js +1 -0
- package/dist/esm/hooks/useURLFilters.d.ts +15 -0
- package/dist/esm/hooks/useURLFilters.js +1 -0
- package/dist/esm/hooks/useWindowSize.d.ts +5 -0
- package/dist/esm/hooks/useWindowSize.js +1 -0
- package/dist/esm/index.d.ts +5 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/load.d.ts +10 -0
- package/dist/esm/load.js +56 -0
- package/dist/esm/locales.d.ts +24 -0
- package/dist/esm/locales.js +1 -0
- package/dist/esm/offline/constants.d.ts +5 -0
- package/dist/esm/offline/constants.js +1 -0
- package/dist/esm/offline/offlineManager.d.ts +2 -0
- package/dist/esm/offline/offlineManager.js +1 -0
- package/dist/esm/offline/sw.d.ts +2 -0
- package/dist/esm/offline/sw.js +1 -0
- package/dist/esm/schemas/sdk.schemas.d.ts +25 -0
- package/dist/esm/schemas/sdk.schemas.js +1 -0
- package/dist/esm/services/URLFilterManager.d.ts +24 -0
- package/dist/esm/services/URLFilterManager.js +1 -0
- package/dist/esm/services/routing.d.ts +7 -0
- package/dist/esm/services/routing.js +1 -0
- package/dist/esm/store/BaseFilterStore.d.ts +17 -0
- package/dist/esm/store/BaseFilterStore.js +1 -0
- package/dist/esm/store/BoothStore.d.ts +79 -0
- package/dist/esm/store/BoothStore.js +1 -0
- package/dist/esm/store/CategoryFilterStore.d.ts +13 -0
- package/dist/esm/store/CategoryFilterStore.js +1 -0
- package/dist/esm/store/CategoryStore.d.ts +21 -0
- package/dist/esm/store/CategoryStore.js +1 -0
- package/dist/esm/store/EventStore.d.ts +56 -0
- package/dist/esm/store/EventStore.js +1 -0
- package/dist/esm/store/ExhibitorStore.d.ts +77 -0
- package/dist/esm/store/ExhibitorStore.js +1 -0
- package/dist/esm/store/FuzzySearchEngineStore.d.ts +11 -0
- package/dist/esm/store/FuzzySearchEngineStore.js +1 -0
- package/dist/esm/store/HeatmapStore.d.ts +42 -0
- package/dist/esm/store/HeatmapStore.js +1 -0
- package/dist/esm/store/LanguageStore.d.ts +19 -0
- package/dist/esm/store/LanguageStore.js +1 -0
- package/dist/esm/store/LayerStore.d.ts +52 -0
- package/dist/esm/store/LayerStore.js +1 -0
- package/dist/esm/store/MapboxStore.d.ts +13 -0
- package/dist/esm/store/MapboxStore.js +1 -0
- package/dist/esm/store/PoiTypeStore.d.ts +8 -0
- package/dist/esm/store/PoiTypeStore.js +1 -0
- package/dist/esm/store/RootStore.d.ts +99 -0
- package/dist/esm/store/RootStore.js +1 -0
- package/dist/esm/store/RoutePlannerStore.d.ts +42 -0
- package/dist/esm/store/RoutePlannerStore.js +1 -0
- package/dist/esm/store/RouteStore.d.ts +98 -0
- package/dist/esm/store/RouteStore.js +1 -0
- package/dist/esm/store/SearchButtonsStore.d.ts +2 -0
- package/dist/esm/store/SearchButtonsStore.js +1 -0
- package/dist/esm/store/SearchStore.d.ts +72 -0
- package/dist/esm/store/SearchStore.js +1 -0
- package/dist/esm/store/SessionsFilterStore.d.ts +50 -0
- package/dist/esm/store/SessionsFilterStore.js +1 -0
- package/dist/esm/store/ShortcutProvider.d.ts +26 -0
- package/dist/esm/store/ShortcutProvider.js +1 -0
- package/dist/esm/store/ShortcutRegistry.d.ts +19 -0
- package/dist/esm/store/ShortcutRegistry.js +1 -0
- package/dist/esm/store/SpeakerFilterStore.d.ts +39 -0
- package/dist/esm/store/SpeakerFilterStore.js +1 -0
- package/dist/esm/store/SpeakerStore.d.ts +45 -0
- package/dist/esm/store/SpeakerStore.js +1 -0
- package/dist/esm/store/SubButtonProvider.d.ts +16 -0
- package/dist/esm/store/SubButtonProvider.js +1 -0
- package/dist/esm/store/SubButtonRegistry.d.ts +16 -0
- package/dist/esm/store/SubButtonRegistry.js +1 -0
- package/dist/esm/store/ToursStore.d.ts +30 -0
- package/dist/esm/store/ToursStore.js +1 -0
- package/dist/esm/store/UIState.d.ts +252 -0
- package/dist/esm/store/UIState.js +1 -0
- package/dist/esm/store/index.d.ts +12 -0
- package/dist/esm/store/index.js +1 -0
- package/dist/esm/store/init/index.d.ts +3 -0
- package/dist/esm/store/init/index.js +1 -0
- package/dist/esm/store/init/init-booths.d.ts +6 -0
- package/dist/esm/store/init/init-booths.js +1 -0
- package/dist/esm/store/init/init-categories.d.ts +3 -0
- package/dist/esm/store/init/init-categories.js +1 -0
- package/dist/esm/store/init/init-events.d.ts +3 -0
- package/dist/esm/store/init/init-events.js +1 -0
- package/dist/esm/store/init/init-exhibitors.d.ts +3 -0
- package/dist/esm/store/init/init-exhibitors.js +1 -0
- package/dist/esm/store/init/init-heatmap.d.ts +3 -0
- package/dist/esm/store/init/init-heatmap.js +1 -0
- package/dist/esm/store/init/init-language.d.ts +3 -0
- package/dist/esm/store/init/init-language.js +1 -0
- package/dist/esm/store/init/init-layers.d.ts +8 -0
- package/dist/esm/store/init/init-layers.js +1 -0
- package/dist/esm/store/init/init-poiTypes.d.ts +3 -0
- package/dist/esm/store/init/init-poiTypes.js +1 -0
- package/dist/esm/store/init/init-speakers.d.ts +3 -0
- package/dist/esm/store/init/init-speakers.js +1 -0
- package/dist/esm/store/init/init-ui.d.ts +4 -0
- package/dist/esm/store/init/init-ui.js +5 -0
- package/dist/esm/store/providers/SearchShortcutProvider.d.ts +14 -0
- package/dist/esm/store/providers/SearchShortcutProvider.js +1 -0
- package/dist/esm/store/providers/SessionsShortcutProvider.d.ts +19 -0
- package/dist/esm/store/providers/SessionsShortcutProvider.js +1 -0
- package/dist/esm/store/providers/SessionsSubButtonProvider.d.ts +15 -0
- package/dist/esm/store/providers/SessionsSubButtonProvider.js +1 -0
- package/dist/esm/store/providers/SpeakerShortcutProvider.d.ts +13 -0
- package/dist/esm/store/providers/SpeakerShortcutProvider.js +1 -0
- package/dist/esm/store/search-buttons/SearchButtonsActions.d.ts +33 -0
- package/dist/esm/store/search-buttons/SearchButtonsActions.js +1 -0
- package/dist/esm/store/search-buttons/SearchButtonsFactory.d.ts +36 -0
- package/dist/esm/store/search-buttons/SearchButtonsFactory.js +1 -0
- package/dist/esm/store/search-buttons/SearchButtonsFilters.d.ts +20 -0
- package/dist/esm/store/search-buttons/SearchButtonsFilters.js +1 -0
- package/dist/esm/store/search-buttons/SearchButtonsState.d.ts +24 -0
- package/dist/esm/store/search-buttons/SearchButtonsState.js +1 -0
- package/dist/esm/store/search-buttons/SearchButtonsStore.d.ts +58 -0
- package/dist/esm/store/search-buttons/SearchButtonsStore.js +1 -0
- package/dist/esm/store/search-buttons/constants.d.ts +24 -0
- package/dist/esm/store/search-buttons/constants.js +1 -0
- package/dist/esm/store/search-buttons/index.d.ts +8 -0
- package/dist/esm/store/search-buttons/index.js +1 -0
- package/dist/esm/store/search-buttons/utils.d.ts +6 -0
- package/dist/esm/store/search-buttons/utils.js +1 -0
- package/dist/esm/store/types.d.ts +181 -0
- package/dist/esm/store/types.js +1 -0
- package/dist/esm/storybook/contexts/ResponsiveClassContext.d.ts +3 -0
- package/dist/esm/storybook/contexts/ResponsiveClassContext.js +1 -0
- package/dist/esm/storybook/decorators/StoryWrapper.d.ts +5 -0
- package/dist/esm/storybook/decorators/StoryWrapper.js +1 -0
- package/dist/esm/storybook/decorators/WithResize.d.ts +3 -0
- package/dist/esm/storybook/decorators/WithResize.js +1 -0
- package/dist/esm/storybook/store/index.stub.d.ts +20 -0
- package/dist/esm/storybook/store/index.stub.js +1 -0
- package/dist/esm/tools/Color.d.ts +2 -0
- package/dist/esm/tools/Color.js +1 -0
- package/dist/esm/tools/base-runtime-url.d.ts +3 -0
- package/dist/esm/tools/base-runtime-url.js +1 -0
- package/dist/esm/tools/debounce.d.ts +2 -0
- package/dist/esm/tools/debounce.js +1 -0
- package/dist/esm/tools/debugCanvases.d.ts +3 -0
- package/dist/esm/tools/debugCanvases.js +1 -0
- package/dist/esm/tools/gtag.d.ts +30 -0
- package/dist/esm/tools/gtag.js +1 -0
- package/dist/esm/tools/handleDebugMode.d.ts +2 -0
- package/dist/esm/tools/handleDebugMode.js +1 -0
- package/dist/esm/tools/id.d.ts +2 -0
- package/dist/esm/tools/id.js +1 -0
- package/dist/esm/tools/loaders.d.ts +7 -0
- package/dist/esm/tools/loaders.js +1 -0
- package/dist/esm/tools/logger.d.ts +38 -0
- package/dist/esm/tools/logger.js +1 -0
- package/dist/esm/tools/rebookingUrl.d.ts +11 -0
- package/dist/esm/tools/rebookingUrl.js +1 -0
- package/dist/esm/tools/report-error.d.ts +2 -0
- package/dist/esm/tools/report-error.js +3 -0
- package/dist/esm/tools/reset.d.ts +2 -0
- package/dist/esm/tools/reset.js +1 -0
- package/dist/esm/tools/sentry.d.ts +7 -0
- package/dist/esm/tools/sentry.js +1 -0
- package/dist/esm/tools/settings.d.ts +31 -0
- package/dist/esm/tools/settings.js +1 -0
- package/dist/esm/tools/slug.d.ts +2 -0
- package/dist/esm/tools/slug.js +1 -0
- package/dist/esm/tools/track-event.d.ts +2 -0
- package/dist/esm/tools/track-event.js +1 -0
- package/dist/esm/tools/webgl-logger.d.ts +2 -0
- package/dist/esm/tools/webgl-logger.js +1 -0
- package/dist/esm/types/sdk.types.d.ts +49 -0
- package/dist/esm/types/sdk.types.js +1 -0
- package/dist/esm/types.d.ts +300 -0
- package/dist/esm/types.js +1 -0
- package/dist/esm/utils/_OLD_gpu-info.d.ts +6 -0
- package/dist/esm/utils/_OLD_gpu-info.js +1 -0
- package/dist/esm/utils/_OLD_should-use-backdrop.d.ts +3 -0
- package/dist/esm/utils/_OLD_should-use-backdrop.js +1 -0
- package/dist/esm/utils/areLayersEnabled.d.ts +2 -0
- package/dist/esm/utils/areLayersEnabled.js +1 -0
- package/dist/esm/utils/browser.d.ts +4 -0
- package/dist/esm/utils/browser.js +1 -0
- package/dist/esm/utils/buildOptimizedRoute.d.ts +11 -0
- package/dist/esm/utils/buildOptimizedRoute.js +1 -0
- package/dist/esm/utils/calcSpeed.d.ts +2 -0
- package/dist/esm/utils/calcSpeed.js +1 -0
- package/dist/esm/utils/calcTravelTime.d.ts +2 -0
- package/dist/esm/utils/calcTravelTime.js +1 -0
- package/dist/esm/utils/customCommands.d.ts +2 -0
- package/dist/esm/utils/customCommands.js +1 -0
- package/dist/esm/utils/detectLimitedModeViaImage.d.ts +2 -0
- package/dist/esm/utils/detectLimitedModeViaImage.js +1 -0
- package/dist/esm/utils/entity-storage.d.ts +14 -0
- package/dist/esm/utils/entity-storage.js +1 -0
- package/dist/esm/utils/eventFullBadge.d.ts +3 -0
- package/dist/esm/utils/eventFullBadge.js +1 -0
- package/dist/esm/utils/eventTime.d.ts +14 -0
- package/dist/esm/utils/eventTime.js +1 -0
- package/dist/esm/utils/extractMetaFromString.d.ts +5 -0
- package/dist/esm/utils/extractMetaFromString.js +1 -0
- package/dist/esm/utils/getContrastTextColor.d.ts +2 -0
- package/dist/esm/utils/getContrastTextColor.js +1 -0
- package/dist/esm/utils/getLogoUrl.d.ts +2 -0
- package/dist/esm/utils/getLogoUrl.js +1 -0
- package/dist/esm/utils/getMostFrequent.d.ts +2 -0
- package/dist/esm/utils/getMostFrequent.js +1 -0
- package/dist/esm/utils/getRenderTargetFromRoot.d.ts +2 -0
- package/dist/esm/utils/getRenderTargetFromRoot.js +1 -0
- package/dist/esm/utils/gps.d.ts +33 -0
- package/dist/esm/utils/gps.js +1 -0
- package/dist/esm/utils/i18n.d.ts +7 -0
- package/dist/esm/utils/i18n.js +1 -0
- package/dist/esm/utils/imageloader.d.ts +17 -0
- package/dist/esm/utils/imageloader.js +1 -0
- package/dist/esm/utils/index.d.ts +10 -0
- package/dist/esm/utils/index.js +1 -0
- package/dist/esm/utils/is-debug.d.ts +3 -0
- package/dist/esm/utils/is-debug.js +1 -0
- package/dist/esm/utils/is-from-designer.d.ts +3 -0
- package/dist/esm/utils/is-from-designer.js +1 -0
- package/dist/esm/utils/is-iframe.d.ts +3 -0
- package/dist/esm/utils/is-iframe.js +1 -0
- package/dist/esm/utils/is-localhost.d.ts +3 -0
- package/dist/esm/utils/is-localhost.js +1 -0
- package/dist/esm/utils/is-mac.d.ts +3 -0
- package/dist/esm/utils/is-mac.js +1 -0
- package/dist/esm/utils/is-mobile.d.ts +3 -0
- package/dist/esm/utils/is-mobile.js +1 -0
- package/dist/esm/utils/is-scroll-ugly.d.ts +3 -0
- package/dist/esm/utils/is-scroll-ugly.js +3 -0
- package/dist/esm/utils/is-webview.d.ts +3 -0
- package/dist/esm/utils/is-webview.js +1 -0
- package/dist/esm/utils/loadCustomCss.d.ts +3 -0
- package/dist/esm/utils/loadCustomCss.js +1 -0
- package/dist/esm/utils/loadIcons.d.ts +3 -0
- package/dist/esm/utils/loadIcons.js +1 -0
- package/dist/esm/utils/loadImage.d.ts +2 -0
- package/dist/esm/utils/loadImage.js +1 -0
- package/dist/esm/utils/loadImagesInBatches.d.ts +7 -0
- package/dist/esm/utils/loadImagesInBatches.js +1 -0
- package/dist/esm/utils/localStorage.d.ts +2 -0
- package/dist/esm/utils/localStorage.js +1 -0
- package/dist/esm/utils/lz-utils.d.ts +8 -0
- package/dist/esm/utils/lz-utils.js +1 -0
- package/dist/esm/utils/mapEntity.d.ts +2 -0
- package/dist/esm/utils/mapEntity.js +1 -0
- package/dist/esm/utils/mergeExhibitors.d.ts +3 -0
- package/dist/esm/utils/mergeExhibitors.js +1 -0
- package/dist/esm/utils/mobx.d.ts +6 -0
- package/dist/esm/utils/mobx.js +1 -0
- package/dist/esm/utils/preview-exhibitor.d.ts +4 -0
- package/dist/esm/utils/preview-exhibitor.js +1 -0
- package/dist/esm/utils/responsiveClass.d.ts +2 -0
- package/dist/esm/utils/responsiveClass.js +1 -0
- package/dist/esm/utils/rtl.d.ts +2 -0
- package/dist/esm/utils/rtl.js +1 -0
- package/dist/esm/utils/sanitizeHtml.d.ts +3 -0
- package/dist/esm/utils/sanitizeHtml.js +1 -0
- package/dist/esm/utils/sanitizeText.d.ts +9 -0
- package/dist/esm/utils/sanitizeText.js +1 -0
- package/dist/esm/utils/shortenName.d.ts +2 -0
- package/dist/esm/utils/shortenName.js +1 -0
- package/dist/esm/utils/strEqual.d.ts +2 -0
- package/dist/esm/utils/strEqual.js +1 -0
- package/dist/esm/utils/toRadians.d.ts +3 -0
- package/dist/esm/utils/toRadians.js +1 -0
- package/dist/esm/utils/urlEncoding.d.ts +7 -0
- package/dist/esm/utils/urlEncoding.js +1 -0
- package/dist/esm/utils/use-shadow.d.ts +3 -0
- package/dist/esm/utils/use-shadow.js +1 -0
- package/dist/esm/utils/useHeatmapData.d.ts +10 -0
- package/dist/esm/utils/useHeatmapData.js +1 -0
- package/dist/esm/utils/useHeatmapOverlay.d.ts +8 -0
- package/dist/esm/utils/useHeatmapOverlay.js +1 -0
- package/dist/esm/utils/useOnClickOutside.d.ts +3 -0
- package/dist/esm/utils/useOnClickOutside.js +1 -0
- package/dist/esm/utils/useRenderTarget.d.ts +2 -0
- package/dist/esm/utils/useRenderTarget.js +1 -0
- package/dist/esm/utils/useTimeout.d.ts +2 -0
- package/dist/esm/utils/useTimeout.js +1 -0
- package/dist/esm/utils/wayfinding.d.ts +26 -0
- package/dist/esm/utils/wayfinding.js +1 -0
- package/dist/esm/utils/yah.d.ts +8 -0
- package/dist/esm/utils/yah.js +1 -0
- package/dist/esm/utils/yah_icon.d.ts +6 -0
- package/dist/esm/utils/yah_icon.js +1 -0
- package/dist/stats.html +4950 -0
- package/package.json +118 -0
|
@@ -0,0 +1,1586 @@
|
|
|
1
|
+
import { j as gt } from "./jsx-runtime-jIxVPx5o.js";
|
|
2
|
+
import { y as bt } from "./index-BlQ8_wWj.js";
|
|
3
|
+
import { C as Qt, V as E, M as U, T as N, Q as yt, S as vt, g as x, h as Jt, P as _t, i as $t, L as Nt, j as te, F as Vt, k as ee, l as se, m as et, n as B, o as F, p as W, D as ie, q as Bt, G as Wt, B as wt, r as H, t as st, v as Pt, w as J, x as Tt, y as it, z as X, A as oe, E as ae, H as Et, N as Mt, I as ne, J as Ht, K as ct, O as Ft, U as re, W as K, X as he, Y as le, Z as ce, _ as Ae, $ as qt, a0 as ot, a1 as z, a2 as Kt, s as P, a3 as de, a4 as pe, a5 as ue, f as At, a as b, a6 as fe, a7 as St, u as me, e as Z, R as Lt, c as ge } from "./floorplan.ready-BKm4W0PM.js";
|
|
4
|
+
import { ah as dt, r as Rt } from "./index-DBxr4rdm.js";
|
|
5
|
+
import { j as be, m as q, s as ye, k as ve, h as xt, z as we, a as at, i as Pe } from "./data-BybaFPM_.js";
|
|
6
|
+
const Dt = { type: "change" }, pt = { type: "start" }, zt = { type: "end" }, _ = new Jt(), kt = new _t(), Te = Math.cos(70 * $t.DEG2RAD), S = new E(), R = 2 * Math.PI, w = {
|
|
7
|
+
NONE: -1,
|
|
8
|
+
ROTATE: 0,
|
|
9
|
+
DOLLY: 1,
|
|
10
|
+
PAN: 2,
|
|
11
|
+
TOUCH_ROTATE: 3,
|
|
12
|
+
TOUCH_PAN: 4,
|
|
13
|
+
TOUCH_DOLLY_PAN: 5,
|
|
14
|
+
TOUCH_DOLLY_ROTATE: 6
|
|
15
|
+
}, nt = 1e-6;
|
|
16
|
+
class Ee extends Qt {
|
|
17
|
+
constructor(t, e = null) {
|
|
18
|
+
super(t, e), this.state = w.NONE, this.enabled = !0, this.target = new E(), this.cursor = new E(), this.minDistance = 0, this.maxDistance = 1 / 0, this.minZoom = 0, this.maxZoom = 1 / 0, this.minTargetRadius = 0, this.maxTargetRadius = 1 / 0, this.minPolarAngle = 0, this.maxPolarAngle = Math.PI, this.minAzimuthAngle = -1 / 0, this.maxAzimuthAngle = 1 / 0, this.enableDamping = !1, this.dampingFactor = 0.05, this.enableZoom = !0, this.zoomSpeed = 1, this.enableRotate = !0, this.rotateSpeed = 1, this.keyRotateSpeed = 1, this.enablePan = !0, this.panSpeed = 1, this.screenSpacePanning = !0, this.keyPanSpeed = 7, this.zoomToCursor = !1, this.autoRotate = !1, this.autoRotateSpeed = 2, this.keys = { LEFT: "ArrowLeft", UP: "ArrowUp", RIGHT: "ArrowRight", BOTTOM: "ArrowDown" }, this.mouseButtons = { LEFT: U.ROTATE, MIDDLE: U.DOLLY, RIGHT: U.PAN }, this.touches = { ONE: N.ROTATE, TWO: N.DOLLY_PAN }, this.target0 = this.target.clone(), this.position0 = this.object.position.clone(), this.zoom0 = this.object.zoom, this._domElementKeyEvents = null, this._lastPosition = new E(), this._lastQuaternion = new yt(), this._lastTargetPosition = new E(), this._quat = new yt().setFromUnitVectors(t.up, new E(0, 1, 0)), this._quatInverse = this._quat.clone().invert(), this._spherical = new vt(), this._sphericalDelta = new vt(), this._scale = 1, this._panOffset = new E(), this._rotateStart = new x(), this._rotateEnd = new x(), this._rotateDelta = new x(), this._panStart = new x(), this._panEnd = new x(), this._panDelta = new x(), this._dollyStart = new x(), this._dollyEnd = new x(), this._dollyDelta = new x(), this._dollyDirection = new E(), this._mouse = new x(), this._performCursorZoom = !1, this._pointers = [], this._pointerPositions = {}, this._controlActive = !1, this._onPointerMove = Se.bind(this), this._onPointerDown = Me.bind(this), this._onPointerUp = Le.bind(this), this._onContextMenu = Ce.bind(this), this._onMouseWheel = De.bind(this), this._onKeyDown = ke.bind(this), this._onTouchStart = Oe.bind(this), this._onTouchMove = Ze.bind(this), this._onMouseDown = Re.bind(this), this._onMouseMove = xe.bind(this), this._interceptControlDown = Ie.bind(this), this._interceptControlUp = Ue.bind(this), this.domElement !== null && this.connect(), this.update();
|
|
19
|
+
}
|
|
20
|
+
connect() {
|
|
21
|
+
this.domElement.addEventListener("pointerdown", this._onPointerDown), this.domElement.addEventListener("pointercancel", this._onPointerUp), this.domElement.addEventListener("contextmenu", this._onContextMenu), this.domElement.addEventListener("wheel", this._onMouseWheel, { passive: !1 }), this.domElement.getRootNode().addEventListener("keydown", this._interceptControlDown, { passive: !0, capture: !0 }), this.domElement.style.touchAction = "none";
|
|
22
|
+
}
|
|
23
|
+
disconnect() {
|
|
24
|
+
this.domElement.removeEventListener("pointerdown", this._onPointerDown), this.domElement.removeEventListener("pointermove", this._onPointerMove), this.domElement.removeEventListener("pointerup", this._onPointerUp), this.domElement.removeEventListener("pointercancel", this._onPointerUp), this.domElement.removeEventListener("wheel", this._onMouseWheel), this.domElement.removeEventListener("contextmenu", this._onContextMenu), this.stopListenToKeyEvents(), this.domElement.getRootNode().removeEventListener("keydown", this._interceptControlDown, { capture: !0 }), this.domElement.style.touchAction = "auto";
|
|
25
|
+
}
|
|
26
|
+
dispose() {
|
|
27
|
+
this.disconnect();
|
|
28
|
+
}
|
|
29
|
+
getPolarAngle() {
|
|
30
|
+
return this._spherical.phi;
|
|
31
|
+
}
|
|
32
|
+
getAzimuthalAngle() {
|
|
33
|
+
return this._spherical.theta;
|
|
34
|
+
}
|
|
35
|
+
getDistance() {
|
|
36
|
+
return this.object.position.distanceTo(this.target);
|
|
37
|
+
}
|
|
38
|
+
listenToKeyEvents(t) {
|
|
39
|
+
t.addEventListener("keydown", this._onKeyDown), this._domElementKeyEvents = t;
|
|
40
|
+
}
|
|
41
|
+
stopListenToKeyEvents() {
|
|
42
|
+
this._domElementKeyEvents !== null && (this._domElementKeyEvents.removeEventListener("keydown", this._onKeyDown), this._domElementKeyEvents = null);
|
|
43
|
+
}
|
|
44
|
+
saveState() {
|
|
45
|
+
this.target0.copy(this.target), this.position0.copy(this.object.position), this.zoom0 = this.object.zoom;
|
|
46
|
+
}
|
|
47
|
+
reset() {
|
|
48
|
+
this.target.copy(this.target0), this.object.position.copy(this.position0), this.object.zoom = this.zoom0, this.object.updateProjectionMatrix(), this.dispatchEvent(Dt), this.update(), this.state = w.NONE;
|
|
49
|
+
}
|
|
50
|
+
update(t = null) {
|
|
51
|
+
const e = this.object.position;
|
|
52
|
+
S.copy(e).sub(this.target), S.applyQuaternion(this._quat), this._spherical.setFromVector3(S), this.autoRotate && this.state === w.NONE && this._rotateLeft(this._getAutoRotationAngle(t)), this.enableDamping ? (this._spherical.theta += this._sphericalDelta.theta * this.dampingFactor, this._spherical.phi += this._sphericalDelta.phi * this.dampingFactor) : (this._spherical.theta += this._sphericalDelta.theta, this._spherical.phi += this._sphericalDelta.phi);
|
|
53
|
+
let i = this.minAzimuthAngle, s = this.maxAzimuthAngle;
|
|
54
|
+
isFinite(i) && isFinite(s) && (i < -Math.PI ? i += R : i > Math.PI && (i -= R), s < -Math.PI ? s += R : s > Math.PI && (s -= R), i <= s ? this._spherical.theta = Math.max(i, Math.min(s, this._spherical.theta)) : this._spherical.theta = this._spherical.theta > (i + s) / 2 ? Math.max(i, this._spherical.theta) : Math.min(s, this._spherical.theta)), this._spherical.phi = Math.max(this.minPolarAngle, Math.min(this.maxPolarAngle, this._spherical.phi)), this._spherical.makeSafe(), this.enableDamping === !0 ? this.target.addScaledVector(this._panOffset, this.dampingFactor) : this.target.add(this._panOffset), this.target.sub(this.cursor), this.target.clampLength(this.minTargetRadius, this.maxTargetRadius), this.target.add(this.cursor);
|
|
55
|
+
let o = !1;
|
|
56
|
+
if (this.zoomToCursor && this._performCursorZoom || this.object.isOrthographicCamera)
|
|
57
|
+
this._spherical.radius = this._clampDistance(this._spherical.radius);
|
|
58
|
+
else {
|
|
59
|
+
const a = this._spherical.radius;
|
|
60
|
+
this._spherical.radius = this._clampDistance(this._spherical.radius * this._scale), o = a != this._spherical.radius;
|
|
61
|
+
}
|
|
62
|
+
if (S.setFromSpherical(this._spherical), S.applyQuaternion(this._quatInverse), e.copy(this.target).add(S), this.object.lookAt(this.target), this.enableDamping === !0 ? (this._sphericalDelta.theta *= 1 - this.dampingFactor, this._sphericalDelta.phi *= 1 - this.dampingFactor, this._panOffset.multiplyScalar(1 - this.dampingFactor)) : (this._sphericalDelta.set(0, 0, 0), this._panOffset.set(0, 0, 0)), this.zoomToCursor && this._performCursorZoom) {
|
|
63
|
+
let a = null;
|
|
64
|
+
if (this.object.isPerspectiveCamera) {
|
|
65
|
+
const n = S.length();
|
|
66
|
+
a = this._clampDistance(n * this._scale);
|
|
67
|
+
const r = n - a;
|
|
68
|
+
this.object.position.addScaledVector(this._dollyDirection, r), this.object.updateMatrixWorld(), o = !!r;
|
|
69
|
+
} else if (this.object.isOrthographicCamera) {
|
|
70
|
+
const n = new E(this._mouse.x, this._mouse.y, 0);
|
|
71
|
+
n.unproject(this.object);
|
|
72
|
+
const r = this.object.zoom;
|
|
73
|
+
this.object.zoom = Math.max(this.minZoom, Math.min(this.maxZoom, this.object.zoom / this._scale)), this.object.updateProjectionMatrix(), o = r !== this.object.zoom;
|
|
74
|
+
const h = new E(this._mouse.x, this._mouse.y, 0);
|
|
75
|
+
h.unproject(this.object), this.object.position.sub(h).add(n), this.object.updateMatrixWorld(), a = S.length();
|
|
76
|
+
} else
|
|
77
|
+
console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."), this.zoomToCursor = !1;
|
|
78
|
+
a !== null && (this.screenSpacePanning ? this.target.set(0, 0, -1).transformDirection(this.object.matrix).multiplyScalar(a).add(this.object.position) : (_.origin.copy(this.object.position), _.direction.set(0, 0, -1).transformDirection(this.object.matrix), Math.abs(this.object.up.dot(_.direction)) < Te ? this.object.lookAt(this.target) : (kt.setFromNormalAndCoplanarPoint(this.object.up, this.target), _.intersectPlane(kt, this.target))));
|
|
79
|
+
} else if (this.object.isOrthographicCamera) {
|
|
80
|
+
const a = this.object.zoom;
|
|
81
|
+
this.object.zoom = Math.max(this.minZoom, Math.min(this.maxZoom, this.object.zoom / this._scale)), a !== this.object.zoom && (this.object.updateProjectionMatrix(), o = !0);
|
|
82
|
+
}
|
|
83
|
+
return this._scale = 1, this._performCursorZoom = !1, o || this._lastPosition.distanceToSquared(this.object.position) > nt || 8 * (1 - this._lastQuaternion.dot(this.object.quaternion)) > nt || this._lastTargetPosition.distanceToSquared(this.target) > nt ? (this.dispatchEvent(Dt), this._lastPosition.copy(this.object.position), this._lastQuaternion.copy(this.object.quaternion), this._lastTargetPosition.copy(this.target), !0) : !1;
|
|
84
|
+
}
|
|
85
|
+
_getAutoRotationAngle(t) {
|
|
86
|
+
return t !== null ? R / 60 * this.autoRotateSpeed * t : R / 60 / 60 * this.autoRotateSpeed;
|
|
87
|
+
}
|
|
88
|
+
_getZoomScale(t) {
|
|
89
|
+
const e = Math.abs(t * 0.01);
|
|
90
|
+
return Math.pow(0.95, this.zoomSpeed * e);
|
|
91
|
+
}
|
|
92
|
+
_rotateLeft(t) {
|
|
93
|
+
this._sphericalDelta.theta -= t;
|
|
94
|
+
}
|
|
95
|
+
_rotateUp(t) {
|
|
96
|
+
this._sphericalDelta.phi -= t;
|
|
97
|
+
}
|
|
98
|
+
_panLeft(t, e) {
|
|
99
|
+
S.setFromMatrixColumn(e, 0), S.multiplyScalar(-t), this._panOffset.add(S);
|
|
100
|
+
}
|
|
101
|
+
_panUp(t, e) {
|
|
102
|
+
this.screenSpacePanning === !0 ? S.setFromMatrixColumn(e, 1) : (S.setFromMatrixColumn(e, 0), S.crossVectors(this.object.up, S)), S.multiplyScalar(t), this._panOffset.add(S);
|
|
103
|
+
}
|
|
104
|
+
// deltaX and deltaY are in pixels; right and down are positive
|
|
105
|
+
_pan(t, e) {
|
|
106
|
+
const i = this.domElement;
|
|
107
|
+
if (this.object.isPerspectiveCamera) {
|
|
108
|
+
const s = this.object.position;
|
|
109
|
+
S.copy(s).sub(this.target);
|
|
110
|
+
let o = S.length();
|
|
111
|
+
o *= Math.tan(this.object.fov / 2 * Math.PI / 180), this._panLeft(2 * t * o / i.clientHeight, this.object.matrix), this._panUp(2 * e * o / i.clientHeight, this.object.matrix);
|
|
112
|
+
} else this.object.isOrthographicCamera ? (this._panLeft(t * (this.object.right - this.object.left) / this.object.zoom / i.clientWidth, this.object.matrix), this._panUp(e * (this.object.top - this.object.bottom) / this.object.zoom / i.clientHeight, this.object.matrix)) : (console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."), this.enablePan = !1);
|
|
113
|
+
}
|
|
114
|
+
_dollyOut(t) {
|
|
115
|
+
this.object.isPerspectiveCamera || this.object.isOrthographicCamera ? this._scale /= t : (console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."), this.enableZoom = !1);
|
|
116
|
+
}
|
|
117
|
+
_dollyIn(t) {
|
|
118
|
+
this.object.isPerspectiveCamera || this.object.isOrthographicCamera ? this._scale *= t : (console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."), this.enableZoom = !1);
|
|
119
|
+
}
|
|
120
|
+
_updateZoomParameters(t, e) {
|
|
121
|
+
if (!this.zoomToCursor)
|
|
122
|
+
return;
|
|
123
|
+
this._performCursorZoom = !0;
|
|
124
|
+
const i = this.domElement.getBoundingClientRect(), s = t - i.left, o = e - i.top, a = i.width, n = i.height;
|
|
125
|
+
this._mouse.x = s / a * 2 - 1, this._mouse.y = -(o / n) * 2 + 1, this._dollyDirection.set(this._mouse.x, this._mouse.y, 1).unproject(this.object).sub(this.object.position).normalize();
|
|
126
|
+
}
|
|
127
|
+
_clampDistance(t) {
|
|
128
|
+
return Math.max(this.minDistance, Math.min(this.maxDistance, t));
|
|
129
|
+
}
|
|
130
|
+
//
|
|
131
|
+
// event callbacks - update the object state
|
|
132
|
+
//
|
|
133
|
+
_handleMouseDownRotate(t) {
|
|
134
|
+
this._rotateStart.set(t.clientX, t.clientY);
|
|
135
|
+
}
|
|
136
|
+
_handleMouseDownDolly(t) {
|
|
137
|
+
this._updateZoomParameters(t.clientX, t.clientX), this._dollyStart.set(t.clientX, t.clientY);
|
|
138
|
+
}
|
|
139
|
+
_handleMouseDownPan(t) {
|
|
140
|
+
this._panStart.set(t.clientX, t.clientY);
|
|
141
|
+
}
|
|
142
|
+
_handleMouseMoveRotate(t) {
|
|
143
|
+
this._rotateEnd.set(t.clientX, t.clientY), this._rotateDelta.subVectors(this._rotateEnd, this._rotateStart).multiplyScalar(this.rotateSpeed);
|
|
144
|
+
const e = this.domElement;
|
|
145
|
+
this._rotateLeft(R * this._rotateDelta.x / e.clientHeight), this._rotateUp(R * this._rotateDelta.y / e.clientHeight), this._rotateStart.copy(this._rotateEnd), this.update();
|
|
146
|
+
}
|
|
147
|
+
_handleMouseMoveDolly(t) {
|
|
148
|
+
this._dollyEnd.set(t.clientX, t.clientY), this._dollyDelta.subVectors(this._dollyEnd, this._dollyStart), this._dollyDelta.y > 0 ? this._dollyOut(this._getZoomScale(this._dollyDelta.y)) : this._dollyDelta.y < 0 && this._dollyIn(this._getZoomScale(this._dollyDelta.y)), this._dollyStart.copy(this._dollyEnd), this.update();
|
|
149
|
+
}
|
|
150
|
+
_handleMouseMovePan(t) {
|
|
151
|
+
this._panEnd.set(t.clientX, t.clientY), this._panDelta.subVectors(this._panEnd, this._panStart).multiplyScalar(this.panSpeed), this._pan(this._panDelta.x, this._panDelta.y), this._panStart.copy(this._panEnd), this.update();
|
|
152
|
+
}
|
|
153
|
+
_handleMouseWheel(t) {
|
|
154
|
+
this._updateZoomParameters(t.clientX, t.clientY), t.deltaY < 0 ? this._dollyIn(this._getZoomScale(t.deltaY)) : t.deltaY > 0 && this._dollyOut(this._getZoomScale(t.deltaY)), this.update();
|
|
155
|
+
}
|
|
156
|
+
_handleKeyDown(t) {
|
|
157
|
+
let e = !1;
|
|
158
|
+
switch (t.code) {
|
|
159
|
+
case this.keys.UP:
|
|
160
|
+
t.ctrlKey || t.metaKey || t.shiftKey ? this.enableRotate && this._rotateUp(R * this.keyRotateSpeed / this.domElement.clientHeight) : this.enablePan && this._pan(0, this.keyPanSpeed), e = !0;
|
|
161
|
+
break;
|
|
162
|
+
case this.keys.BOTTOM:
|
|
163
|
+
t.ctrlKey || t.metaKey || t.shiftKey ? this.enableRotate && this._rotateUp(-R * this.keyRotateSpeed / this.domElement.clientHeight) : this.enablePan && this._pan(0, -this.keyPanSpeed), e = !0;
|
|
164
|
+
break;
|
|
165
|
+
case this.keys.LEFT:
|
|
166
|
+
t.ctrlKey || t.metaKey || t.shiftKey ? this.enableRotate && this._rotateLeft(R * this.keyRotateSpeed / this.domElement.clientHeight) : this.enablePan && this._pan(this.keyPanSpeed, 0), e = !0;
|
|
167
|
+
break;
|
|
168
|
+
case this.keys.RIGHT:
|
|
169
|
+
t.ctrlKey || t.metaKey || t.shiftKey ? this.enableRotate && this._rotateLeft(-R * this.keyRotateSpeed / this.domElement.clientHeight) : this.enablePan && this._pan(-this.keyPanSpeed, 0), e = !0;
|
|
170
|
+
break;
|
|
171
|
+
}
|
|
172
|
+
e && (t.preventDefault(), this.update());
|
|
173
|
+
}
|
|
174
|
+
_handleTouchStartRotate(t) {
|
|
175
|
+
if (this._pointers.length === 1)
|
|
176
|
+
this._rotateStart.set(t.pageX, t.pageY);
|
|
177
|
+
else {
|
|
178
|
+
const e = this._getSecondPointerPosition(t), i = 0.5 * (t.pageX + e.x), s = 0.5 * (t.pageY + e.y);
|
|
179
|
+
this._rotateStart.set(i, s);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
_handleTouchStartPan(t) {
|
|
183
|
+
if (this._pointers.length === 1)
|
|
184
|
+
this._panStart.set(t.pageX, t.pageY);
|
|
185
|
+
else {
|
|
186
|
+
const e = this._getSecondPointerPosition(t), i = 0.5 * (t.pageX + e.x), s = 0.5 * (t.pageY + e.y);
|
|
187
|
+
this._panStart.set(i, s);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
_handleTouchStartDolly(t) {
|
|
191
|
+
const e = this._getSecondPointerPosition(t), i = t.pageX - e.x, s = t.pageY - e.y, o = Math.sqrt(i * i + s * s);
|
|
192
|
+
this._dollyStart.set(0, o);
|
|
193
|
+
}
|
|
194
|
+
_handleTouchStartDollyPan(t) {
|
|
195
|
+
this.enableZoom && this._handleTouchStartDolly(t), this.enablePan && this._handleTouchStartPan(t);
|
|
196
|
+
}
|
|
197
|
+
_handleTouchStartDollyRotate(t) {
|
|
198
|
+
this.enableZoom && this._handleTouchStartDolly(t), this.enableRotate && this._handleTouchStartRotate(t);
|
|
199
|
+
}
|
|
200
|
+
_handleTouchMoveRotate(t) {
|
|
201
|
+
if (this._pointers.length == 1)
|
|
202
|
+
this._rotateEnd.set(t.pageX, t.pageY);
|
|
203
|
+
else {
|
|
204
|
+
const i = this._getSecondPointerPosition(t), s = 0.5 * (t.pageX + i.x), o = 0.5 * (t.pageY + i.y);
|
|
205
|
+
this._rotateEnd.set(s, o);
|
|
206
|
+
}
|
|
207
|
+
this._rotateDelta.subVectors(this._rotateEnd, this._rotateStart).multiplyScalar(this.rotateSpeed);
|
|
208
|
+
const e = this.domElement;
|
|
209
|
+
this._rotateLeft(R * this._rotateDelta.x / e.clientHeight), this._rotateUp(R * this._rotateDelta.y / e.clientHeight), this._rotateStart.copy(this._rotateEnd);
|
|
210
|
+
}
|
|
211
|
+
_handleTouchMovePan(t) {
|
|
212
|
+
if (this._pointers.length === 1)
|
|
213
|
+
this._panEnd.set(t.pageX, t.pageY);
|
|
214
|
+
else {
|
|
215
|
+
const e = this._getSecondPointerPosition(t), i = 0.5 * (t.pageX + e.x), s = 0.5 * (t.pageY + e.y);
|
|
216
|
+
this._panEnd.set(i, s);
|
|
217
|
+
}
|
|
218
|
+
this._panDelta.subVectors(this._panEnd, this._panStart).multiplyScalar(this.panSpeed), this._pan(this._panDelta.x, this._panDelta.y), this._panStart.copy(this._panEnd);
|
|
219
|
+
}
|
|
220
|
+
_handleTouchMoveDolly(t) {
|
|
221
|
+
const e = this._getSecondPointerPosition(t), i = t.pageX - e.x, s = t.pageY - e.y, o = Math.sqrt(i * i + s * s);
|
|
222
|
+
this._dollyEnd.set(0, o), this._dollyDelta.set(0, Math.pow(this._dollyEnd.y / this._dollyStart.y, this.zoomSpeed)), this._dollyOut(this._dollyDelta.y), this._dollyStart.copy(this._dollyEnd);
|
|
223
|
+
const a = (t.pageX + e.x) * 0.5, n = (t.pageY + e.y) * 0.5;
|
|
224
|
+
this._updateZoomParameters(a, n);
|
|
225
|
+
}
|
|
226
|
+
_handleTouchMoveDollyPan(t) {
|
|
227
|
+
this.enableZoom && this._handleTouchMoveDolly(t), this.enablePan && this._handleTouchMovePan(t);
|
|
228
|
+
}
|
|
229
|
+
_handleTouchMoveDollyRotate(t) {
|
|
230
|
+
this.enableZoom && this._handleTouchMoveDolly(t), this.enableRotate && this._handleTouchMoveRotate(t);
|
|
231
|
+
}
|
|
232
|
+
// pointers
|
|
233
|
+
_addPointer(t) {
|
|
234
|
+
this._pointers.push(t.pointerId);
|
|
235
|
+
}
|
|
236
|
+
_removePointer(t) {
|
|
237
|
+
delete this._pointerPositions[t.pointerId];
|
|
238
|
+
for (let e = 0; e < this._pointers.length; e++)
|
|
239
|
+
if (this._pointers[e] == t.pointerId) {
|
|
240
|
+
this._pointers.splice(e, 1);
|
|
241
|
+
return;
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
_isTrackingPointer(t) {
|
|
245
|
+
for (let e = 0; e < this._pointers.length; e++)
|
|
246
|
+
if (this._pointers[e] == t.pointerId) return !0;
|
|
247
|
+
return !1;
|
|
248
|
+
}
|
|
249
|
+
_trackPointer(t) {
|
|
250
|
+
let e = this._pointerPositions[t.pointerId];
|
|
251
|
+
e === void 0 && (e = new x(), this._pointerPositions[t.pointerId] = e), e.set(t.pageX, t.pageY);
|
|
252
|
+
}
|
|
253
|
+
_getSecondPointerPosition(t) {
|
|
254
|
+
const e = t.pointerId === this._pointers[0] ? this._pointers[1] : this._pointers[0];
|
|
255
|
+
return this._pointerPositions[e];
|
|
256
|
+
}
|
|
257
|
+
//
|
|
258
|
+
_customWheelEvent(t) {
|
|
259
|
+
const e = t.deltaMode, i = {
|
|
260
|
+
clientX: t.clientX,
|
|
261
|
+
clientY: t.clientY,
|
|
262
|
+
deltaY: t.deltaY
|
|
263
|
+
};
|
|
264
|
+
switch (e) {
|
|
265
|
+
case 1:
|
|
266
|
+
i.deltaY *= 16;
|
|
267
|
+
break;
|
|
268
|
+
case 2:
|
|
269
|
+
i.deltaY *= 100;
|
|
270
|
+
break;
|
|
271
|
+
}
|
|
272
|
+
return t.ctrlKey && !this._controlActive && (i.deltaY *= 10), i;
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
function Me(l) {
|
|
276
|
+
this.enabled !== !1 && (this._pointers.length === 0 && (this.domElement.setPointerCapture(l.pointerId), this.domElement.addEventListener("pointermove", this._onPointerMove), this.domElement.addEventListener("pointerup", this._onPointerUp)), !this._isTrackingPointer(l) && (this._addPointer(l), l.pointerType === "touch" ? this._onTouchStart(l) : this._onMouseDown(l)));
|
|
277
|
+
}
|
|
278
|
+
function Se(l) {
|
|
279
|
+
this.enabled !== !1 && (l.pointerType === "touch" ? this._onTouchMove(l) : this._onMouseMove(l));
|
|
280
|
+
}
|
|
281
|
+
function Le(l) {
|
|
282
|
+
switch (this._removePointer(l), this._pointers.length) {
|
|
283
|
+
case 0:
|
|
284
|
+
this.domElement.releasePointerCapture(l.pointerId), this.domElement.removeEventListener("pointermove", this._onPointerMove), this.domElement.removeEventListener("pointerup", this._onPointerUp), this.dispatchEvent(zt), this.state = w.NONE;
|
|
285
|
+
break;
|
|
286
|
+
case 1:
|
|
287
|
+
const t = this._pointers[0], e = this._pointerPositions[t];
|
|
288
|
+
this._onTouchStart({ pointerId: t, pageX: e.x, pageY: e.y });
|
|
289
|
+
break;
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
function Re(l) {
|
|
293
|
+
let t;
|
|
294
|
+
switch (l.button) {
|
|
295
|
+
case 0:
|
|
296
|
+
t = this.mouseButtons.LEFT;
|
|
297
|
+
break;
|
|
298
|
+
case 1:
|
|
299
|
+
t = this.mouseButtons.MIDDLE;
|
|
300
|
+
break;
|
|
301
|
+
case 2:
|
|
302
|
+
t = this.mouseButtons.RIGHT;
|
|
303
|
+
break;
|
|
304
|
+
default:
|
|
305
|
+
t = -1;
|
|
306
|
+
}
|
|
307
|
+
switch (t) {
|
|
308
|
+
case U.DOLLY:
|
|
309
|
+
if (this.enableZoom === !1) return;
|
|
310
|
+
this._handleMouseDownDolly(l), this.state = w.DOLLY;
|
|
311
|
+
break;
|
|
312
|
+
case U.ROTATE:
|
|
313
|
+
if (l.ctrlKey || l.metaKey || l.shiftKey) {
|
|
314
|
+
if (this.enablePan === !1) return;
|
|
315
|
+
this._handleMouseDownPan(l), this.state = w.PAN;
|
|
316
|
+
} else {
|
|
317
|
+
if (this.enableRotate === !1) return;
|
|
318
|
+
this._handleMouseDownRotate(l), this.state = w.ROTATE;
|
|
319
|
+
}
|
|
320
|
+
break;
|
|
321
|
+
case U.PAN:
|
|
322
|
+
if (l.ctrlKey || l.metaKey || l.shiftKey) {
|
|
323
|
+
if (this.enableRotate === !1) return;
|
|
324
|
+
this._handleMouseDownRotate(l), this.state = w.ROTATE;
|
|
325
|
+
} else {
|
|
326
|
+
if (this.enablePan === !1) return;
|
|
327
|
+
this._handleMouseDownPan(l), this.state = w.PAN;
|
|
328
|
+
}
|
|
329
|
+
break;
|
|
330
|
+
default:
|
|
331
|
+
this.state = w.NONE;
|
|
332
|
+
}
|
|
333
|
+
this.state !== w.NONE && this.dispatchEvent(pt);
|
|
334
|
+
}
|
|
335
|
+
function xe(l) {
|
|
336
|
+
switch (this.state) {
|
|
337
|
+
case w.ROTATE:
|
|
338
|
+
if (this.enableRotate === !1) return;
|
|
339
|
+
this._handleMouseMoveRotate(l);
|
|
340
|
+
break;
|
|
341
|
+
case w.DOLLY:
|
|
342
|
+
if (this.enableZoom === !1) return;
|
|
343
|
+
this._handleMouseMoveDolly(l);
|
|
344
|
+
break;
|
|
345
|
+
case w.PAN:
|
|
346
|
+
if (this.enablePan === !1) return;
|
|
347
|
+
this._handleMouseMovePan(l);
|
|
348
|
+
break;
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
function De(l) {
|
|
352
|
+
this.enabled === !1 || this.enableZoom === !1 || this.state !== w.NONE || (l.preventDefault(), this.dispatchEvent(pt), this._handleMouseWheel(this._customWheelEvent(l)), this.dispatchEvent(zt));
|
|
353
|
+
}
|
|
354
|
+
function ke(l) {
|
|
355
|
+
this.enabled !== !1 && this._handleKeyDown(l);
|
|
356
|
+
}
|
|
357
|
+
function Oe(l) {
|
|
358
|
+
switch (this._trackPointer(l), this._pointers.length) {
|
|
359
|
+
case 1:
|
|
360
|
+
switch (this.touches.ONE) {
|
|
361
|
+
case N.ROTATE:
|
|
362
|
+
if (this.enableRotate === !1) return;
|
|
363
|
+
this._handleTouchStartRotate(l), this.state = w.TOUCH_ROTATE;
|
|
364
|
+
break;
|
|
365
|
+
case N.PAN:
|
|
366
|
+
if (this.enablePan === !1) return;
|
|
367
|
+
this._handleTouchStartPan(l), this.state = w.TOUCH_PAN;
|
|
368
|
+
break;
|
|
369
|
+
default:
|
|
370
|
+
this.state = w.NONE;
|
|
371
|
+
}
|
|
372
|
+
break;
|
|
373
|
+
case 2:
|
|
374
|
+
switch (this.touches.TWO) {
|
|
375
|
+
case N.DOLLY_PAN:
|
|
376
|
+
if (this.enableZoom === !1 && this.enablePan === !1) return;
|
|
377
|
+
this._handleTouchStartDollyPan(l), this.state = w.TOUCH_DOLLY_PAN;
|
|
378
|
+
break;
|
|
379
|
+
case N.DOLLY_ROTATE:
|
|
380
|
+
if (this.enableZoom === !1 && this.enableRotate === !1) return;
|
|
381
|
+
this._handleTouchStartDollyRotate(l), this.state = w.TOUCH_DOLLY_ROTATE;
|
|
382
|
+
break;
|
|
383
|
+
default:
|
|
384
|
+
this.state = w.NONE;
|
|
385
|
+
}
|
|
386
|
+
break;
|
|
387
|
+
default:
|
|
388
|
+
this.state = w.NONE;
|
|
389
|
+
}
|
|
390
|
+
this.state !== w.NONE && this.dispatchEvent(pt);
|
|
391
|
+
}
|
|
392
|
+
function Ze(l) {
|
|
393
|
+
switch (this._trackPointer(l), this.state) {
|
|
394
|
+
case w.TOUCH_ROTATE:
|
|
395
|
+
if (this.enableRotate === !1) return;
|
|
396
|
+
this._handleTouchMoveRotate(l), this.update();
|
|
397
|
+
break;
|
|
398
|
+
case w.TOUCH_PAN:
|
|
399
|
+
if (this.enablePan === !1) return;
|
|
400
|
+
this._handleTouchMovePan(l), this.update();
|
|
401
|
+
break;
|
|
402
|
+
case w.TOUCH_DOLLY_PAN:
|
|
403
|
+
if (this.enableZoom === !1 && this.enablePan === !1) return;
|
|
404
|
+
this._handleTouchMoveDollyPan(l), this.update();
|
|
405
|
+
break;
|
|
406
|
+
case w.TOUCH_DOLLY_ROTATE:
|
|
407
|
+
if (this.enableZoom === !1 && this.enableRotate === !1) return;
|
|
408
|
+
this._handleTouchMoveDollyRotate(l), this.update();
|
|
409
|
+
break;
|
|
410
|
+
default:
|
|
411
|
+
this.state = w.NONE;
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
function Ce(l) {
|
|
415
|
+
this.enabled !== !1 && l.preventDefault();
|
|
416
|
+
}
|
|
417
|
+
function Ie(l) {
|
|
418
|
+
l.key === "Control" && (this._controlActive = !0, this.domElement.getRootNode().addEventListener("keyup", this._interceptControlUp, { passive: !0, capture: !0 }));
|
|
419
|
+
}
|
|
420
|
+
function Ue(l) {
|
|
421
|
+
l.key === "Control" && (this._controlActive = !1, this.domElement.getRootNode().removeEventListener("keyup", this._interceptControlUp, { passive: !0, capture: !0 }));
|
|
422
|
+
}
|
|
423
|
+
class je extends Nt {
|
|
424
|
+
constructor(t) {
|
|
425
|
+
super(t);
|
|
426
|
+
}
|
|
427
|
+
/**
|
|
428
|
+
* Loads and parses a MTL asset from a URL.
|
|
429
|
+
*
|
|
430
|
+
* @param {string} url - URL to the MTL file.
|
|
431
|
+
* @param {Function} [onLoad] - Callback invoked with the loaded object.
|
|
432
|
+
* @param {Function} [onProgress] - Callback for download progress.
|
|
433
|
+
* @param {Function} [onError] - Callback for download errors.
|
|
434
|
+
*
|
|
435
|
+
* @see {@link FileLoader#setPath} {@link FileLoader#setResourcePath}
|
|
436
|
+
*
|
|
437
|
+
* @note In order for relative texture references to resolve correctly
|
|
438
|
+
* you must call setResourcePath() explicitly prior to load.
|
|
439
|
+
*/
|
|
440
|
+
load(t, e, i, s) {
|
|
441
|
+
const o = this, a = this.path === "" ? te.extractUrlBase(t) : this.path, n = new Vt(this.manager);
|
|
442
|
+
n.setPath(this.path), n.setRequestHeader(this.requestHeader), n.setWithCredentials(this.withCredentials), n.load(t, function(r) {
|
|
443
|
+
try {
|
|
444
|
+
e(o.parse(r, a));
|
|
445
|
+
} catch (h) {
|
|
446
|
+
s ? s(h) : console.error(h), o.manager.itemError(t);
|
|
447
|
+
}
|
|
448
|
+
}, i, s);
|
|
449
|
+
}
|
|
450
|
+
setMaterialOptions(t) {
|
|
451
|
+
return this.materialOptions = t, this;
|
|
452
|
+
}
|
|
453
|
+
/**
|
|
454
|
+
* Parses a MTL file.
|
|
455
|
+
*
|
|
456
|
+
* @param {string} text - Content of MTL file
|
|
457
|
+
* @param {string} path
|
|
458
|
+
* @return {MaterialCreator}
|
|
459
|
+
*
|
|
460
|
+
* @see {@link FileLoader#setPath} {@link FileLoader#setResourcePath}
|
|
461
|
+
*
|
|
462
|
+
* @note In order for relative texture references to resolve correctly
|
|
463
|
+
* you must call setResourcePath() explicitly prior to parse.
|
|
464
|
+
*/
|
|
465
|
+
parse(t, e) {
|
|
466
|
+
const i = t.split(`
|
|
467
|
+
`);
|
|
468
|
+
let s = {};
|
|
469
|
+
const o = /\s+/, a = {};
|
|
470
|
+
for (let r = 0; r < i.length; r++) {
|
|
471
|
+
let h = i[r];
|
|
472
|
+
if (h = h.trim(), h.length === 0 || h.charAt(0) === "#")
|
|
473
|
+
continue;
|
|
474
|
+
const c = h.indexOf(" ");
|
|
475
|
+
let A = c >= 0 ? h.substring(0, c) : h;
|
|
476
|
+
A = A.toLowerCase();
|
|
477
|
+
let d = c >= 0 ? h.substring(c + 1) : "";
|
|
478
|
+
if (d = d.trim(), A === "newmtl")
|
|
479
|
+
s = { name: d }, a[d] = s;
|
|
480
|
+
else if (A === "ka" || A === "kd" || A === "ks" || A === "ke") {
|
|
481
|
+
const p = d.split(o, 3);
|
|
482
|
+
s[A] = [parseFloat(p[0]), parseFloat(p[1]), parseFloat(p[2])];
|
|
483
|
+
} else
|
|
484
|
+
s[A] = d;
|
|
485
|
+
}
|
|
486
|
+
const n = new Ne(this.resourcePath || e, this.materialOptions);
|
|
487
|
+
return n.setCrossOrigin(this.crossOrigin), n.setManager(this.manager), n.setMaterials(a), n;
|
|
488
|
+
}
|
|
489
|
+
}
|
|
490
|
+
class Ne {
|
|
491
|
+
constructor(t = "", e = {}) {
|
|
492
|
+
this.baseUrl = t, this.options = e, this.materialsInfo = {}, this.materials = {}, this.materialsArray = [], this.nameLookup = {}, this.crossOrigin = "anonymous", this.side = this.options.side !== void 0 ? this.options.side : ee, this.wrap = this.options.wrap !== void 0 ? this.options.wrap : se;
|
|
493
|
+
}
|
|
494
|
+
setCrossOrigin(t) {
|
|
495
|
+
return this.crossOrigin = t, this;
|
|
496
|
+
}
|
|
497
|
+
setManager(t) {
|
|
498
|
+
this.manager = t;
|
|
499
|
+
}
|
|
500
|
+
setMaterials(t) {
|
|
501
|
+
this.materialsInfo = this.convert(t), this.materials = {}, this.materialsArray = [], this.nameLookup = {};
|
|
502
|
+
}
|
|
503
|
+
convert(t) {
|
|
504
|
+
if (!this.options) return t;
|
|
505
|
+
const e = {};
|
|
506
|
+
for (const i in t) {
|
|
507
|
+
const s = t[i], o = {};
|
|
508
|
+
e[i] = o;
|
|
509
|
+
for (const a in s) {
|
|
510
|
+
let n = !0, r = s[a];
|
|
511
|
+
const h = a.toLowerCase();
|
|
512
|
+
switch (h) {
|
|
513
|
+
case "kd":
|
|
514
|
+
case "ka":
|
|
515
|
+
case "ks":
|
|
516
|
+
this.options && this.options.normalizeRGB && (r = [r[0] / 255, r[1] / 255, r[2] / 255]), this.options && this.options.ignoreZeroRGBs && r[0] === 0 && r[1] === 0 && r[2] === 0 && (n = !1);
|
|
517
|
+
break;
|
|
518
|
+
}
|
|
519
|
+
n && (o[h] = r);
|
|
520
|
+
}
|
|
521
|
+
}
|
|
522
|
+
return e;
|
|
523
|
+
}
|
|
524
|
+
preload() {
|
|
525
|
+
for (const t in this.materialsInfo)
|
|
526
|
+
this.create(t);
|
|
527
|
+
}
|
|
528
|
+
getIndex(t) {
|
|
529
|
+
return this.nameLookup[t];
|
|
530
|
+
}
|
|
531
|
+
getAsArray() {
|
|
532
|
+
let t = 0;
|
|
533
|
+
for (const e in this.materialsInfo)
|
|
534
|
+
this.materialsArray[t] = this.create(e), this.nameLookup[e] = t, t++;
|
|
535
|
+
return this.materialsArray;
|
|
536
|
+
}
|
|
537
|
+
create(t) {
|
|
538
|
+
return this.materials[t] === void 0 && this.createMaterial_(t), this.materials[t];
|
|
539
|
+
}
|
|
540
|
+
createMaterial_(t) {
|
|
541
|
+
const e = this, i = this.materialsInfo[t], s = {
|
|
542
|
+
name: t,
|
|
543
|
+
side: this.side
|
|
544
|
+
};
|
|
545
|
+
function o(n, r) {
|
|
546
|
+
return typeof r != "string" || r === "" ? "" : /^https?:\/\//i.test(r) ? r : n + r;
|
|
547
|
+
}
|
|
548
|
+
function a(n, r) {
|
|
549
|
+
if (s[n]) return;
|
|
550
|
+
const h = e.getTextureParams(r, s), c = e.loadTexture(o(e.baseUrl, h.url));
|
|
551
|
+
c.repeat.copy(h.scale), c.offset.copy(h.offset), c.wrapS = e.wrap, c.wrapT = e.wrap, (n === "map" || n === "emissiveMap") && (c.colorSpace = F), s[n] = c;
|
|
552
|
+
}
|
|
553
|
+
for (const n in i) {
|
|
554
|
+
const r = i[n];
|
|
555
|
+
let h;
|
|
556
|
+
if (r !== "")
|
|
557
|
+
switch (n.toLowerCase()) {
|
|
558
|
+
// Ns is material specular exponent
|
|
559
|
+
case "kd":
|
|
560
|
+
s.color = et.toWorkingColorSpace(new B().fromArray(r), F);
|
|
561
|
+
break;
|
|
562
|
+
case "ks":
|
|
563
|
+
s.specular = et.toWorkingColorSpace(new B().fromArray(r), F);
|
|
564
|
+
break;
|
|
565
|
+
case "ke":
|
|
566
|
+
s.emissive = et.toWorkingColorSpace(new B().fromArray(r), F);
|
|
567
|
+
break;
|
|
568
|
+
case "map_kd":
|
|
569
|
+
a("map", r);
|
|
570
|
+
break;
|
|
571
|
+
case "map_ks":
|
|
572
|
+
a("specularMap", r);
|
|
573
|
+
break;
|
|
574
|
+
case "map_ke":
|
|
575
|
+
a("emissiveMap", r);
|
|
576
|
+
break;
|
|
577
|
+
case "norm":
|
|
578
|
+
a("normalMap", r);
|
|
579
|
+
break;
|
|
580
|
+
case "map_bump":
|
|
581
|
+
case "bump":
|
|
582
|
+
a("bumpMap", r);
|
|
583
|
+
break;
|
|
584
|
+
case "disp":
|
|
585
|
+
a("displacementMap", r);
|
|
586
|
+
break;
|
|
587
|
+
case "map_d":
|
|
588
|
+
a("alphaMap", r), s.transparent = !0;
|
|
589
|
+
break;
|
|
590
|
+
case "ns":
|
|
591
|
+
s.shininess = parseFloat(r);
|
|
592
|
+
break;
|
|
593
|
+
case "d":
|
|
594
|
+
h = parseFloat(r), h < 1 && (s.opacity = h, s.transparent = !0);
|
|
595
|
+
break;
|
|
596
|
+
case "tr":
|
|
597
|
+
h = parseFloat(r), this.options && this.options.invertTrProperty && (h = 1 - h), h > 0 && (s.opacity = 1 - h, s.transparent = !0);
|
|
598
|
+
break;
|
|
599
|
+
}
|
|
600
|
+
}
|
|
601
|
+
return this.materials[t] = new W(s), this.materials[t];
|
|
602
|
+
}
|
|
603
|
+
getTextureParams(t, e) {
|
|
604
|
+
const i = {
|
|
605
|
+
scale: new x(1, 1),
|
|
606
|
+
offset: new x(0, 0)
|
|
607
|
+
}, s = t.split(/\s+/);
|
|
608
|
+
let o;
|
|
609
|
+
return o = s.indexOf("-bm"), o >= 0 && (e.bumpScale = parseFloat(s[o + 1]), s.splice(o, 2)), o = s.indexOf("-mm"), o >= 0 && (e.displacementBias = parseFloat(s[o + 1]), e.displacementScale = parseFloat(s[o + 2]), s.splice(o, 3)), o = s.indexOf("-s"), o >= 0 && (i.scale.set(parseFloat(s[o + 1]), parseFloat(s[o + 2])), s.splice(o, 4)), o = s.indexOf("-o"), o >= 0 && (i.offset.set(parseFloat(s[o + 1]), parseFloat(s[o + 2])), s.splice(o, 4)), i.url = s.join(" ").trim(), i;
|
|
610
|
+
}
|
|
611
|
+
loadTexture(t, e, i, s, o) {
|
|
612
|
+
const a = this.manager !== void 0 ? this.manager : ie;
|
|
613
|
+
let n = a.getHandler(t);
|
|
614
|
+
n === null && (n = new Bt(a)), n.setCrossOrigin && n.setCrossOrigin(this.crossOrigin);
|
|
615
|
+
const r = n.load(t, i, s, o);
|
|
616
|
+
return e !== void 0 && (r.mapping = e), r;
|
|
617
|
+
}
|
|
618
|
+
}
|
|
619
|
+
const Ve = /^[og]\s*(.+)?/, Be = /^mtllib /, We = /^usemtl /, He = /^usemap /, Ot = /\s+/, Zt = new E(), rt = new E(), Ct = new E(), It = new E(), O = new E(), $ = new B();
|
|
620
|
+
function Fe() {
|
|
621
|
+
const l = {
|
|
622
|
+
objects: [],
|
|
623
|
+
object: {},
|
|
624
|
+
vertices: [],
|
|
625
|
+
normals: [],
|
|
626
|
+
colors: [],
|
|
627
|
+
uvs: [],
|
|
628
|
+
materials: {},
|
|
629
|
+
materialLibraries: [],
|
|
630
|
+
startObject: function(t, e) {
|
|
631
|
+
if (this.object && this.object.fromDeclaration === !1) {
|
|
632
|
+
this.object.name = t, this.object.fromDeclaration = e !== !1;
|
|
633
|
+
return;
|
|
634
|
+
}
|
|
635
|
+
const i = this.object && typeof this.object.currentMaterial == "function" ? this.object.currentMaterial() : void 0;
|
|
636
|
+
if (this.object && typeof this.object._finalize == "function" && this.object._finalize(!0), this.object = {
|
|
637
|
+
name: t || "",
|
|
638
|
+
fromDeclaration: e !== !1,
|
|
639
|
+
geometry: {
|
|
640
|
+
vertices: [],
|
|
641
|
+
normals: [],
|
|
642
|
+
colors: [],
|
|
643
|
+
uvs: [],
|
|
644
|
+
hasUVIndices: !1
|
|
645
|
+
},
|
|
646
|
+
materials: [],
|
|
647
|
+
smooth: !0,
|
|
648
|
+
startMaterial: function(s, o) {
|
|
649
|
+
const a = this._finalize(!1);
|
|
650
|
+
a && (a.inherited || a.groupCount <= 0) && this.materials.splice(a.index, 1);
|
|
651
|
+
const n = {
|
|
652
|
+
index: this.materials.length,
|
|
653
|
+
name: s || "",
|
|
654
|
+
mtllib: Array.isArray(o) && o.length > 0 ? o[o.length - 1] : "",
|
|
655
|
+
smooth: a !== void 0 ? a.smooth : this.smooth,
|
|
656
|
+
groupStart: a !== void 0 ? a.groupEnd : 0,
|
|
657
|
+
groupEnd: -1,
|
|
658
|
+
groupCount: -1,
|
|
659
|
+
inherited: !1,
|
|
660
|
+
clone: function(r) {
|
|
661
|
+
const h = {
|
|
662
|
+
index: typeof r == "number" ? r : this.index,
|
|
663
|
+
name: this.name,
|
|
664
|
+
mtllib: this.mtllib,
|
|
665
|
+
smooth: this.smooth,
|
|
666
|
+
groupStart: 0,
|
|
667
|
+
groupEnd: -1,
|
|
668
|
+
groupCount: -1,
|
|
669
|
+
inherited: !1
|
|
670
|
+
};
|
|
671
|
+
return h.clone = this.clone.bind(h), h;
|
|
672
|
+
}
|
|
673
|
+
};
|
|
674
|
+
return this.materials.push(n), n;
|
|
675
|
+
},
|
|
676
|
+
currentMaterial: function() {
|
|
677
|
+
if (this.materials.length > 0)
|
|
678
|
+
return this.materials[this.materials.length - 1];
|
|
679
|
+
},
|
|
680
|
+
_finalize: function(s) {
|
|
681
|
+
const o = this.currentMaterial();
|
|
682
|
+
if (o && o.groupEnd === -1 && (o.groupEnd = this.geometry.vertices.length / 3, o.groupCount = o.groupEnd - o.groupStart, o.inherited = !1), s && this.materials.length > 1)
|
|
683
|
+
for (let a = this.materials.length - 1; a >= 0; a--)
|
|
684
|
+
this.materials[a].groupCount <= 0 && this.materials.splice(a, 1);
|
|
685
|
+
return s && this.materials.length === 0 && this.materials.push({
|
|
686
|
+
name: "",
|
|
687
|
+
smooth: this.smooth
|
|
688
|
+
}), o;
|
|
689
|
+
}
|
|
690
|
+
}, i && i.name && typeof i.clone == "function") {
|
|
691
|
+
const s = i.clone(0);
|
|
692
|
+
s.inherited = !0, this.object.materials.push(s);
|
|
693
|
+
}
|
|
694
|
+
this.objects.push(this.object);
|
|
695
|
+
},
|
|
696
|
+
finalize: function() {
|
|
697
|
+
this.object && typeof this.object._finalize == "function" && this.object._finalize(!0);
|
|
698
|
+
},
|
|
699
|
+
parseVertexIndex: function(t, e) {
|
|
700
|
+
const i = parseInt(t, 10);
|
|
701
|
+
return (i >= 0 ? i - 1 : i + e / 3) * 3;
|
|
702
|
+
},
|
|
703
|
+
parseNormalIndex: function(t, e) {
|
|
704
|
+
const i = parseInt(t, 10);
|
|
705
|
+
return (i >= 0 ? i - 1 : i + e / 3) * 3;
|
|
706
|
+
},
|
|
707
|
+
parseUVIndex: function(t, e) {
|
|
708
|
+
const i = parseInt(t, 10);
|
|
709
|
+
return (i >= 0 ? i - 1 : i + e / 2) * 2;
|
|
710
|
+
},
|
|
711
|
+
addVertex: function(t, e, i) {
|
|
712
|
+
const s = this.vertices, o = this.object.geometry.vertices;
|
|
713
|
+
o.push(s[t + 0], s[t + 1], s[t + 2]), o.push(s[e + 0], s[e + 1], s[e + 2]), o.push(s[i + 0], s[i + 1], s[i + 2]);
|
|
714
|
+
},
|
|
715
|
+
addVertexPoint: function(t) {
|
|
716
|
+
const e = this.vertices;
|
|
717
|
+
this.object.geometry.vertices.push(e[t + 0], e[t + 1], e[t + 2]);
|
|
718
|
+
},
|
|
719
|
+
addVertexLine: function(t) {
|
|
720
|
+
const e = this.vertices;
|
|
721
|
+
this.object.geometry.vertices.push(e[t + 0], e[t + 1], e[t + 2]);
|
|
722
|
+
},
|
|
723
|
+
addNormal: function(t, e, i) {
|
|
724
|
+
const s = this.normals, o = this.object.geometry.normals;
|
|
725
|
+
o.push(s[t + 0], s[t + 1], s[t + 2]), o.push(s[e + 0], s[e + 1], s[e + 2]), o.push(s[i + 0], s[i + 1], s[i + 2]);
|
|
726
|
+
},
|
|
727
|
+
addFaceNormal: function(t, e, i) {
|
|
728
|
+
const s = this.vertices, o = this.object.geometry.normals;
|
|
729
|
+
Zt.fromArray(s, t), rt.fromArray(s, e), Ct.fromArray(s, i), O.subVectors(Ct, rt), It.subVectors(Zt, rt), O.cross(It), O.normalize(), o.push(O.x, O.y, O.z), o.push(O.x, O.y, O.z), o.push(O.x, O.y, O.z);
|
|
730
|
+
},
|
|
731
|
+
addColor: function(t, e, i) {
|
|
732
|
+
const s = this.colors, o = this.object.geometry.colors;
|
|
733
|
+
s[t] !== void 0 && o.push(s[t + 0], s[t + 1], s[t + 2]), s[e] !== void 0 && o.push(s[e + 0], s[e + 1], s[e + 2]), s[i] !== void 0 && o.push(s[i + 0], s[i + 1], s[i + 2]);
|
|
734
|
+
},
|
|
735
|
+
addUV: function(t, e, i) {
|
|
736
|
+
const s = this.uvs, o = this.object.geometry.uvs;
|
|
737
|
+
o.push(s[t + 0], s[t + 1]), o.push(s[e + 0], s[e + 1]), o.push(s[i + 0], s[i + 1]);
|
|
738
|
+
},
|
|
739
|
+
addDefaultUV: function() {
|
|
740
|
+
const t = this.object.geometry.uvs;
|
|
741
|
+
t.push(0, 0), t.push(0, 0), t.push(0, 0);
|
|
742
|
+
},
|
|
743
|
+
addUVLine: function(t) {
|
|
744
|
+
const e = this.uvs;
|
|
745
|
+
this.object.geometry.uvs.push(e[t + 0], e[t + 1]);
|
|
746
|
+
},
|
|
747
|
+
addFace: function(t, e, i, s, o, a, n, r, h) {
|
|
748
|
+
const c = this.vertices.length;
|
|
749
|
+
let A = this.parseVertexIndex(t, c), d = this.parseVertexIndex(e, c), p = this.parseVertexIndex(i, c);
|
|
750
|
+
if (this.addVertex(A, d, p), this.addColor(A, d, p), n !== void 0 && n !== "") {
|
|
751
|
+
const f = this.normals.length;
|
|
752
|
+
A = this.parseNormalIndex(n, f), d = this.parseNormalIndex(r, f), p = this.parseNormalIndex(h, f), this.addNormal(A, d, p);
|
|
753
|
+
} else
|
|
754
|
+
this.addFaceNormal(A, d, p);
|
|
755
|
+
if (s !== void 0 && s !== "") {
|
|
756
|
+
const f = this.uvs.length;
|
|
757
|
+
A = this.parseUVIndex(s, f), d = this.parseUVIndex(o, f), p = this.parseUVIndex(a, f), this.addUV(A, d, p), this.object.geometry.hasUVIndices = !0;
|
|
758
|
+
} else
|
|
759
|
+
this.addDefaultUV();
|
|
760
|
+
},
|
|
761
|
+
addPointGeometry: function(t) {
|
|
762
|
+
this.object.geometry.type = "Points";
|
|
763
|
+
const e = this.vertices.length;
|
|
764
|
+
for (let i = 0, s = t.length; i < s; i++) {
|
|
765
|
+
const o = this.parseVertexIndex(t[i], e);
|
|
766
|
+
this.addVertexPoint(o), this.addColor(o);
|
|
767
|
+
}
|
|
768
|
+
},
|
|
769
|
+
addLineGeometry: function(t, e) {
|
|
770
|
+
this.object.geometry.type = "Line";
|
|
771
|
+
const i = this.vertices.length, s = this.uvs.length;
|
|
772
|
+
for (let o = 0, a = t.length; o < a; o++)
|
|
773
|
+
this.addVertexLine(this.parseVertexIndex(t[o], i));
|
|
774
|
+
for (let o = 0, a = e.length; o < a; o++)
|
|
775
|
+
this.addUVLine(this.parseUVIndex(e[o], s));
|
|
776
|
+
}
|
|
777
|
+
};
|
|
778
|
+
return l.startObject("", !1), l;
|
|
779
|
+
}
|
|
780
|
+
class qe extends Nt {
|
|
781
|
+
constructor(t) {
|
|
782
|
+
super(t), this.materials = null;
|
|
783
|
+
}
|
|
784
|
+
load(t, e, i, s) {
|
|
785
|
+
const o = this, a = new Vt(this.manager);
|
|
786
|
+
a.setPath(this.path), a.setRequestHeader(this.requestHeader), a.setWithCredentials(this.withCredentials), a.load(t, function(n) {
|
|
787
|
+
try {
|
|
788
|
+
e(o.parse(n));
|
|
789
|
+
} catch (r) {
|
|
790
|
+
s ? s(r) : console.error(r), o.manager.itemError(t);
|
|
791
|
+
}
|
|
792
|
+
}, i, s);
|
|
793
|
+
}
|
|
794
|
+
setMaterials(t) {
|
|
795
|
+
return this.materials = t, this;
|
|
796
|
+
}
|
|
797
|
+
parse(t) {
|
|
798
|
+
const e = new Fe();
|
|
799
|
+
t.indexOf(`\r
|
|
800
|
+
`) !== -1 && (t = t.replace(/\r\n/g, `
|
|
801
|
+
`)), t.indexOf(`\\
|
|
802
|
+
`) !== -1 && (t = t.replace(/\\\n/g, ""));
|
|
803
|
+
const i = t.split(`
|
|
804
|
+
`);
|
|
805
|
+
let s = [];
|
|
806
|
+
for (let n = 0, r = i.length; n < r; n++) {
|
|
807
|
+
const h = i[n].trimStart();
|
|
808
|
+
if (h.length === 0) continue;
|
|
809
|
+
const c = h.charAt(0);
|
|
810
|
+
if (c !== "#")
|
|
811
|
+
if (c === "v") {
|
|
812
|
+
const A = h.split(Ot);
|
|
813
|
+
switch (A[0]) {
|
|
814
|
+
case "v":
|
|
815
|
+
e.vertices.push(
|
|
816
|
+
parseFloat(A[1]),
|
|
817
|
+
parseFloat(A[2]),
|
|
818
|
+
parseFloat(A[3])
|
|
819
|
+
), A.length >= 7 ? ($.setRGB(
|
|
820
|
+
parseFloat(A[4]),
|
|
821
|
+
parseFloat(A[5]),
|
|
822
|
+
parseFloat(A[6]),
|
|
823
|
+
F
|
|
824
|
+
), e.colors.push($.r, $.g, $.b)) : e.colors.push(void 0, void 0, void 0);
|
|
825
|
+
break;
|
|
826
|
+
case "vn":
|
|
827
|
+
e.normals.push(
|
|
828
|
+
parseFloat(A[1]),
|
|
829
|
+
parseFloat(A[2]),
|
|
830
|
+
parseFloat(A[3])
|
|
831
|
+
);
|
|
832
|
+
break;
|
|
833
|
+
case "vt":
|
|
834
|
+
e.uvs.push(
|
|
835
|
+
parseFloat(A[1]),
|
|
836
|
+
parseFloat(A[2])
|
|
837
|
+
);
|
|
838
|
+
break;
|
|
839
|
+
}
|
|
840
|
+
} else if (c === "f") {
|
|
841
|
+
const d = h.slice(1).trim().split(Ot), p = [];
|
|
842
|
+
for (let u = 0, m = d.length; u < m; u++) {
|
|
843
|
+
const g = d[u];
|
|
844
|
+
if (g.length > 0) {
|
|
845
|
+
const v = g.split("/");
|
|
846
|
+
p.push(v);
|
|
847
|
+
}
|
|
848
|
+
}
|
|
849
|
+
const f = p[0];
|
|
850
|
+
for (let u = 1, m = p.length - 1; u < m; u++) {
|
|
851
|
+
const g = p[u], v = p[u + 1];
|
|
852
|
+
e.addFace(
|
|
853
|
+
f[0],
|
|
854
|
+
g[0],
|
|
855
|
+
v[0],
|
|
856
|
+
f[1],
|
|
857
|
+
g[1],
|
|
858
|
+
v[1],
|
|
859
|
+
f[2],
|
|
860
|
+
g[2],
|
|
861
|
+
v[2]
|
|
862
|
+
);
|
|
863
|
+
}
|
|
864
|
+
} else if (c === "l") {
|
|
865
|
+
const A = h.substring(1).trim().split(" ");
|
|
866
|
+
let d = [];
|
|
867
|
+
const p = [];
|
|
868
|
+
if (h.indexOf("/") === -1)
|
|
869
|
+
d = A;
|
|
870
|
+
else
|
|
871
|
+
for (let f = 0, u = A.length; f < u; f++) {
|
|
872
|
+
const m = A[f].split("/");
|
|
873
|
+
m[0] !== "" && d.push(m[0]), m[1] !== "" && p.push(m[1]);
|
|
874
|
+
}
|
|
875
|
+
e.addLineGeometry(d, p);
|
|
876
|
+
} else if (c === "p") {
|
|
877
|
+
const d = h.slice(1).trim().split(" ");
|
|
878
|
+
e.addPointGeometry(d);
|
|
879
|
+
} else if ((s = Ve.exec(h)) !== null) {
|
|
880
|
+
const A = (" " + s[0].slice(1).trim()).slice(1);
|
|
881
|
+
e.startObject(A);
|
|
882
|
+
} else if (We.test(h))
|
|
883
|
+
e.object.startMaterial(h.substring(7).trim(), e.materialLibraries);
|
|
884
|
+
else if (Be.test(h))
|
|
885
|
+
e.materialLibraries.push(h.substring(7).trim());
|
|
886
|
+
else if (He.test(h))
|
|
887
|
+
console.warn('THREE.OBJLoader: Rendering identifier "usemap" not supported. Textures must be defined in MTL files.');
|
|
888
|
+
else if (c === "s") {
|
|
889
|
+
if (s = h.split(" "), s.length > 1) {
|
|
890
|
+
const d = s[1].trim().toLowerCase();
|
|
891
|
+
e.object.smooth = d !== "0" && d !== "off";
|
|
892
|
+
} else
|
|
893
|
+
e.object.smooth = !0;
|
|
894
|
+
const A = e.object.currentMaterial();
|
|
895
|
+
A && (A.smooth = e.object.smooth);
|
|
896
|
+
} else {
|
|
897
|
+
if (h === "\0") continue;
|
|
898
|
+
console.warn('THREE.OBJLoader: Unexpected line: "' + h + '"');
|
|
899
|
+
}
|
|
900
|
+
}
|
|
901
|
+
e.finalize();
|
|
902
|
+
const o = new Wt();
|
|
903
|
+
if (o.materialLibraries = [].concat(e.materialLibraries), !(e.objects.length === 1 && e.objects[0].geometry.vertices.length === 0) === !0)
|
|
904
|
+
for (let n = 0, r = e.objects.length; n < r; n++) {
|
|
905
|
+
const h = e.objects[n], c = h.geometry, A = h.materials, d = c.type === "Line", p = c.type === "Points";
|
|
906
|
+
let f = !1;
|
|
907
|
+
if (c.vertices.length === 0) continue;
|
|
908
|
+
const u = new wt();
|
|
909
|
+
u.setAttribute("position", new H(c.vertices, 3)), c.normals.length > 0 && u.setAttribute("normal", new H(c.normals, 3)), c.colors.length > 0 && (f = !0, u.setAttribute("color", new H(c.colors, 3))), c.hasUVIndices === !0 && u.setAttribute("uv", new H(c.uvs, 2));
|
|
910
|
+
const m = [];
|
|
911
|
+
for (let v = 0, k = A.length; v < k; v++) {
|
|
912
|
+
const T = A[v], M = T.name + "_" + T.smooth + "_" + f;
|
|
913
|
+
let y = e.materials[M];
|
|
914
|
+
if (this.materials !== null) {
|
|
915
|
+
if (y = this.materials.create(T.name), d && y && !(y instanceof st)) {
|
|
916
|
+
const L = new st();
|
|
917
|
+
Pt.prototype.copy.call(L, y), L.color.copy(y.color), y = L;
|
|
918
|
+
} else if (p && y && !(y instanceof J)) {
|
|
919
|
+
const L = new J({ size: 10, sizeAttenuation: !1 });
|
|
920
|
+
Pt.prototype.copy.call(L, y), L.color.copy(y.color), L.map = y.map, y = L;
|
|
921
|
+
}
|
|
922
|
+
}
|
|
923
|
+
y === void 0 && (d ? y = new st() : p ? y = new J({ size: 1, sizeAttenuation: !1 }) : y = new W(), y.name = T.name, y.flatShading = !T.smooth, y.vertexColors = f, e.materials[M] = y), m.push(y);
|
|
924
|
+
}
|
|
925
|
+
let g;
|
|
926
|
+
if (m.length > 1) {
|
|
927
|
+
for (let v = 0, k = A.length; v < k; v++) {
|
|
928
|
+
const T = A[v];
|
|
929
|
+
u.addGroup(T.groupStart, T.groupCount, v);
|
|
930
|
+
}
|
|
931
|
+
d ? g = new Tt(u, m) : p ? g = new it(u, m) : g = new X(u, m);
|
|
932
|
+
} else
|
|
933
|
+
d ? g = new Tt(u, m[0]) : p ? g = new it(u, m[0]) : g = new X(u, m[0]);
|
|
934
|
+
g.name = h.name, o.add(g);
|
|
935
|
+
}
|
|
936
|
+
else if (e.vertices.length > 0) {
|
|
937
|
+
const n = new J({ size: 1, sizeAttenuation: !1 }), r = new wt();
|
|
938
|
+
r.setAttribute("position", new H(e.vertices, 3)), e.colors.length > 0 && e.colors[0] !== void 0 && (r.setAttribute("color", new H(e.colors, 3)), n.vertexColors = !0);
|
|
939
|
+
const h = new it(r, n);
|
|
940
|
+
o.add(h);
|
|
941
|
+
}
|
|
942
|
+
return o;
|
|
943
|
+
}
|
|
944
|
+
}
|
|
945
|
+
class V {
|
|
946
|
+
constructor(t, e, i, s) {
|
|
947
|
+
this.x = void 0, this.y = void 0, this.width = void 0, this.height = void 0, this.finalX = void 0, this.finalY = void 0, this.x = t, this.y = e, this.width = i, this.height = s, this.finalX = t + i, this.finalY = e + s;
|
|
948
|
+
}
|
|
949
|
+
set(t, e, i, s, o, a) {
|
|
950
|
+
return this.x = t, this.y = e, this.finalX = i, this.finalY = s, this.width = o, this.height = a, this;
|
|
951
|
+
}
|
|
952
|
+
fits(t) {
|
|
953
|
+
var e = t.image.width, i = t.image.height;
|
|
954
|
+
return e <= this.width && i <= this.height;
|
|
955
|
+
}
|
|
956
|
+
fitsPerfectly(t) {
|
|
957
|
+
var e = t.image.width, i = t.image.height;
|
|
958
|
+
return e == this.width && i == this.height;
|
|
959
|
+
}
|
|
960
|
+
overlaps(t) {
|
|
961
|
+
return this.x < t.x + t.width && this.x + this.width > t.x && this.y < t.y + t.height && this.y + this.height > t.y;
|
|
962
|
+
}
|
|
963
|
+
}
|
|
964
|
+
class Ke {
|
|
965
|
+
constructor(t, e, i, s) {
|
|
966
|
+
this.startU = t, this.endU = e, this.startV = i, this.endV = s;
|
|
967
|
+
}
|
|
968
|
+
}
|
|
969
|
+
class G {
|
|
970
|
+
constructor(t, e, i, s) {
|
|
971
|
+
this.children = t, this.rectangle = e, this.textureName = i, this.upperNode = s;
|
|
972
|
+
}
|
|
973
|
+
}
|
|
974
|
+
class ze {
|
|
975
|
+
constructor(t) {
|
|
976
|
+
if (this.MAX_TEXTURE_SIZE = void 0, this.dataURLs = void 0, this.textureCount = void 0, this.maxHeight = void 0, this.maxWidth = void 0, this.canvas = void 0, this.textureCache = void 0, this.node = void 0, this.textureOffsets = void 0, this.allNodes = void 0, this.context = void 0, this.ranges = void 0, this.mergedTexture = void 0, !(!t || !t.size) && (this.MAX_TEXTURE_SIZE = 4096, !!t)) {
|
|
977
|
+
this.dataURLs = /* @__PURE__ */ new Map();
|
|
978
|
+
for (var e of t.keys()) {
|
|
979
|
+
var i = t.get(e);
|
|
980
|
+
if (i instanceof oe)
|
|
981
|
+
throw new Error("CompressedTextures are not supported.");
|
|
982
|
+
if (typeof i.image.toDataURL > "u") {
|
|
983
|
+
var s = document.createElement("canvas");
|
|
984
|
+
s.width = i.image.naturalWidth, s.height = i.image.naturalHeight, s.getContext("2d").drawImage(i.image, 0, 0), this.dataURLs.set(e, s.toDataURL());
|
|
985
|
+
} else
|
|
986
|
+
this.dataURLs.set(e, i.image.toDataURL());
|
|
987
|
+
}
|
|
988
|
+
this.canvas = document.createElement("canvas"), this.textureCount = 0, this.maxWidth = 0, this.maxHeight = 0;
|
|
989
|
+
var o = "";
|
|
990
|
+
for (e of t.keys()) {
|
|
991
|
+
this.textureCount++;
|
|
992
|
+
var a = t.get(e);
|
|
993
|
+
a.userData.area = a.image.width * a.image.height, a.image.width > this.maxWidth && (this.maxWidth = a.image.width), a.image.height > this.maxHeight && (this.maxHeight = a.image.height), o += e + ",";
|
|
994
|
+
}
|
|
995
|
+
o = o.substring(0, o.length - 1), this.textureCache = [], this.node = new G(), this.node.rectangle = new V(0, 0, this.maxWidth * this.textureCount, this.maxHeight * this.textureCount), this.textureOffsets = /* @__PURE__ */ new Map(), this.allNodes = [], this.insert(this.node, this.findNextTexture(t), t), this.ranges = /* @__PURE__ */ new Map();
|
|
996
|
+
var n = this.calculateImageSize(t);
|
|
997
|
+
this.canvas.width = n.width, this.canvas.height = n.height;
|
|
998
|
+
var r = this.canvas.getContext("2d");
|
|
999
|
+
this.context = r;
|
|
1000
|
+
for (e of this.textureOffsets.keys()) {
|
|
1001
|
+
for (var a = t.get(e), h = this.textureOffsets.get(e).x, c = this.textureOffsets.get(e).y, A = a.image.width, d = a.image.height, p = c; p < c + d; p += d)
|
|
1002
|
+
for (var f = h; f < h + A; f += A)
|
|
1003
|
+
r.drawImage(a.image, f, p, A, d);
|
|
1004
|
+
var u = new Ke();
|
|
1005
|
+
u.startU = h / n.width, u.endU = (h + A) / n.width, u.startV = 1 - c / n.height, u.endV = 1 - (c + d) / n.height, this.ranges.set(e, u);
|
|
1006
|
+
}
|
|
1007
|
+
this.makeCanvasPowerOfTwo(), this.mergedTexture = new ae(this.canvas), this.mergedTexture.wrapS = Et, this.mergedTexture.wrapT = Et, this.mergedTexture.minFilter = Mt, this.mergedTexture.magFilter = Mt, this.mergedTexture.needsUpdate = !0;
|
|
1008
|
+
}
|
|
1009
|
+
}
|
|
1010
|
+
isTextureAlreadyInserted(t, e) {
|
|
1011
|
+
var i = e.get(t), s = this.dataURLs.get(t);
|
|
1012
|
+
for (var o of e.keys())
|
|
1013
|
+
if (o != t) {
|
|
1014
|
+
var a = e.get(o), n = this.dataURLs.get(o);
|
|
1015
|
+
if (s == n && a.offset.x == i.offset.x && a.offset.y == i.offset.y && //txt.offset.z == texture.offset.z &&
|
|
1016
|
+
a.repeat.x == i.repeat.x && a.repeat.y == i.repeat.y && //txt.flipY.flipX == texture.flipX &&
|
|
1017
|
+
a.flipY == i.flipY && a.wrapS == i.wrapS && a.wrapT == i.wrapT && this.textureOffsets.get(o))
|
|
1018
|
+
return this.textureOffsets.get(o);
|
|
1019
|
+
}
|
|
1020
|
+
return null;
|
|
1021
|
+
}
|
|
1022
|
+
insert(t, e, i) {
|
|
1023
|
+
var s = i.get(e), o = this.isTextureAlreadyInserted(e, i);
|
|
1024
|
+
if (o) {
|
|
1025
|
+
this.textureOffsets.set(e, o);
|
|
1026
|
+
var a = this.findNextTexture(i);
|
|
1027
|
+
a != null && this.insert(t, a, i);
|
|
1028
|
+
return;
|
|
1029
|
+
}
|
|
1030
|
+
var n = s.image.width, r = s.image.height;
|
|
1031
|
+
if (t.upperNode) {
|
|
1032
|
+
for (var h = this.maxWidth * this.textureCount + this.maxHeight * this.textureCount, c, A = !1, d = 0; d < this.allNodes.length; d++) {
|
|
1033
|
+
var p = this.allNodes[d];
|
|
1034
|
+
if (!p.textureName && p.rectangle.fits(s)) {
|
|
1035
|
+
this.textureOffsets.set(e, {
|
|
1036
|
+
x: p.rectangle.x,
|
|
1037
|
+
y: p.rectangle.y
|
|
1038
|
+
});
|
|
1039
|
+
var f = this.calculateImageSize(i), u = f.width + f.height;
|
|
1040
|
+
if (u < h && f.width <= this.MAX_TEXTURE_SIZE && f.height <= this.MAX_TEXTURE_SIZE) {
|
|
1041
|
+
var m = !1;
|
|
1042
|
+
for (var g of this.textureOffsets.keys())
|
|
1043
|
+
if (g != e) {
|
|
1044
|
+
var v = p.rectangle, {
|
|
1045
|
+
x: k,
|
|
1046
|
+
y: T
|
|
1047
|
+
} = this.textureOffsets.get(g), M = i.get(g).image, y = new V(v.x, v.y, n, r), L = new V(k, T, M.width, M.height);
|
|
1048
|
+
y.overlaps(L) && (m = !0);
|
|
1049
|
+
}
|
|
1050
|
+
m || (h = u, c = this.allNodes[d], A = !0);
|
|
1051
|
+
}
|
|
1052
|
+
this.textureOffsets.delete(e);
|
|
1053
|
+
}
|
|
1054
|
+
}
|
|
1055
|
+
if (A) {
|
|
1056
|
+
if (this.textureOffsets.set(e, {
|
|
1057
|
+
x: c.rectangle.x,
|
|
1058
|
+
y: c.rectangle.y
|
|
1059
|
+
}), c.textureName = e, !c.children) {
|
|
1060
|
+
var D = new G(), C = new G();
|
|
1061
|
+
D.upperNode = c, C.upperNode = c, c.children = [D, C];
|
|
1062
|
+
var Y = c.rectangle.x, Q = c.rectangle.y, ut = this.maxWidth * this.textureCount, ft = this.maxHeight * this.textureCount;
|
|
1063
|
+
D.rectangle = new V(Y + n, Q, ut - (Y + n), ft - Q), C.rectangle = new V(Y, Q + r, ut - Y, ft - (Q + r)), this.allNodes.push(D), this.allNodes.push(C);
|
|
1064
|
+
}
|
|
1065
|
+
var a = this.findNextTexture(i);
|
|
1066
|
+
a != null && this.insert(t, a, i);
|
|
1067
|
+
} else
|
|
1068
|
+
console.info(n, r, e);
|
|
1069
|
+
} else {
|
|
1070
|
+
var mt = t.rectangle.width, Xt = t.rectangle.height;
|
|
1071
|
+
t.textureName = e;
|
|
1072
|
+
var D = new G(), C = new G();
|
|
1073
|
+
D.upperNode = t, C.upperNode = t, t.children = [D, C], D.rectangle = new V(n, 0, mt - n, r), C.rectangle = new V(0, r, mt, Xt - r), this.textureOffsets.set(e, {
|
|
1074
|
+
x: t.rectangle.x,
|
|
1075
|
+
y: t.rectangle.y
|
|
1076
|
+
});
|
|
1077
|
+
var Yt = t.children[0];
|
|
1078
|
+
this.allNodes = [t, D, C];
|
|
1079
|
+
var a = this.findNextTexture(i);
|
|
1080
|
+
a != null && this.insert(Yt, a, i);
|
|
1081
|
+
}
|
|
1082
|
+
}
|
|
1083
|
+
makeCanvasPowerOfTwo(t) {
|
|
1084
|
+
var e = !1;
|
|
1085
|
+
t || (t = this.canvas, e = !0);
|
|
1086
|
+
var i = t.width, s = t.height, o = Math.pow(2, Math.round(Math.log(i) / Math.log(2))), a = Math.pow(2, Math.round(Math.log(s) / Math.log(2))), n = document.createElement("canvas");
|
|
1087
|
+
n.width = o, n.height = a, n.getContext("2d").drawImage(t, 0, 0, o, a), e && (this.canvas = n);
|
|
1088
|
+
}
|
|
1089
|
+
calculateImageSize(t) {
|
|
1090
|
+
var e = 0, i = 0;
|
|
1091
|
+
for (var s of this.textureOffsets.keys()) {
|
|
1092
|
+
var o = t.get(s), a = o.image.width, n = o.image.height, {
|
|
1093
|
+
x: r,
|
|
1094
|
+
y: h
|
|
1095
|
+
} = this.textureOffsets.get(s);
|
|
1096
|
+
r + a > e && (e = r + a), h + n > i && (i = h + n);
|
|
1097
|
+
}
|
|
1098
|
+
return {
|
|
1099
|
+
width: e,
|
|
1100
|
+
height: i
|
|
1101
|
+
};
|
|
1102
|
+
}
|
|
1103
|
+
findNextTexture(t) {
|
|
1104
|
+
var e = -1, i = "";
|
|
1105
|
+
for (var s of t.keys()) {
|
|
1106
|
+
var o = t.get(s);
|
|
1107
|
+
this.textureCache.indexOf(s) == -1 && o.userData.area > e && (e = o.userData.area, i = s);
|
|
1108
|
+
}
|
|
1109
|
+
return e == -1 ? null : (this.textureCache.push(i), i);
|
|
1110
|
+
}
|
|
1111
|
+
rescale(t, e) {
|
|
1112
|
+
var i = document.createElement("canvas");
|
|
1113
|
+
i.width = t.width * e, i.height = t.height * e;
|
|
1114
|
+
var s = i.getContext("2d");
|
|
1115
|
+
return s.drawImage(t, 0, 0, t.width, t.height, 0, 0, i.width, i.height), i;
|
|
1116
|
+
}
|
|
1117
|
+
}
|
|
1118
|
+
function Ge(l, t) {
|
|
1119
|
+
const e = l.geometry.attributes.uv.array;
|
|
1120
|
+
for (let i = 0; i < e.length; i += 2)
|
|
1121
|
+
e[i] = e[i] * (t.endU - t.startU) + t.startU, e[i + 1] = e[i + 1] * (t.startV - t.endV) + t.endV;
|
|
1122
|
+
l.geometry.attributes.uv.needsUpdate = !0;
|
|
1123
|
+
}
|
|
1124
|
+
new W({
|
|
1125
|
+
color: 16711680,
|
|
1126
|
+
side: K,
|
|
1127
|
+
name: "selected"
|
|
1128
|
+
});
|
|
1129
|
+
const Ut = new re({
|
|
1130
|
+
metalness: 0,
|
|
1131
|
+
roughness: 1,
|
|
1132
|
+
//envMapIntensity: 0.5,
|
|
1133
|
+
clearcoat: 0.5,
|
|
1134
|
+
transparent: !0,
|
|
1135
|
+
//transmission: 0.85,
|
|
1136
|
+
opacity: 0.5,
|
|
1137
|
+
//reflectivity: 0.2,
|
|
1138
|
+
side: K,
|
|
1139
|
+
depthWrite: !0,
|
|
1140
|
+
depthTest: !0
|
|
1141
|
+
}), Xe = new W({
|
|
1142
|
+
color: 16734003,
|
|
1143
|
+
side: K,
|
|
1144
|
+
name: "hovered"
|
|
1145
|
+
});
|
|
1146
|
+
class Ye extends Wt {
|
|
1147
|
+
constructor(t, e, i, s, o, a) {
|
|
1148
|
+
super(), this.efpBooth = t, this.threeBooth = e, this.boothMesh = i, this.name = s, this.threeLayer = o, this.z = a, this.material = void 0, this.name = s, i.name = s, this.material = i.material, this.children.push(i), this.layers.set(o);
|
|
1149
|
+
}
|
|
1150
|
+
setText() {
|
|
1151
|
+
const t = new ne();
|
|
1152
|
+
if (t.text = be(this.efpBooth), !t.text) return;
|
|
1153
|
+
t.color = this.efpBooth.labelColor || Ht.boothLabelColor, t.anchorX = "center", t.anchorY = "middle", t.textAlign = "center";
|
|
1154
|
+
const e = t.text.split(" "), i = Math.max(...e.map((h) => h.length)), {
|
|
1155
|
+
rect: s
|
|
1156
|
+
} = this.threeBooth;
|
|
1157
|
+
let o = Math.max(s.width, s.height), a = Math.min(s.width, s.height);
|
|
1158
|
+
t.fontSize = a, t.fontSize * t.text.length > o && (t.fontSize *= 1.1 * o / (t.fontSize * t.text.length)), t.fontSize / a < 0.15 && (t.maxWidth = 0.1, t.fontSize *= e.length, t.fontSize * e.length > a && (t.fontSize *= 0.9 * a / (t.fontSize * e.length)), t.fontSize * i > o && (t.fontSize *= o / (t.fontSize * i)));
|
|
1159
|
+
let n = t;
|
|
1160
|
+
var r = ct.lineAngle(this.threeBooth.rect.p0, this.threeBooth.rect.p1) || 0;
|
|
1161
|
+
return 1.5 * s.width < s.height && (r += 90), n.rotateZ(r * Math.PI / 180), n.position.x = s.center.x, n.position.y = s.center.y, n.position.z = this.z + 0.01, n.scale.y = -1, n.name = this.name, n.layers.set(this.threeLayer), t;
|
|
1162
|
+
}
|
|
1163
|
+
setLogo(t, e, i) {
|
|
1164
|
+
const s = this.threeBooth.rect, o = s.width / s.height;
|
|
1165
|
+
let a = 0, n = 0, r = 0;
|
|
1166
|
+
if (o > e ? (n = s.height * 0.9, a = n * e) : (a = s.width * 0.9, n = a / e), e >= 2 && !this.efpBooth.rotate && s.height >= s.width * 2) {
|
|
1167
|
+
let A = s.width * 0.9, d = A * e;
|
|
1168
|
+
for (; d > s.height - 0.02; )
|
|
1169
|
+
A -= 0.01, d = A * e;
|
|
1170
|
+
n = A, a = d, r = -90;
|
|
1171
|
+
} else
|
|
1172
|
+
r = -this.efpBooth.rotate * 180 / Math.PI;
|
|
1173
|
+
const h = t.ranges.get(this.efpBooth.slug + "_logo");
|
|
1174
|
+
if (!h) return null;
|
|
1175
|
+
var c = new X(new Ft(a, n), i);
|
|
1176
|
+
return c.layers.set(this.threeLayer), Ge(c, h), c.rotateZ((r || 0) * Math.PI / 180), c.position.x = s.center.x, c.position.y = s.center.y, c.position.z = this.z + 0.01 * this.z, c.scale.y = -1, c.material.map = t.mergedTexture, c.name = this.efpBooth.name, c;
|
|
1177
|
+
}
|
|
1178
|
+
dimmed(t) {
|
|
1179
|
+
this.boothMesh.material = t ? Ut : this.material, this.boothMesh.userData.dimmed = t;
|
|
1180
|
+
}
|
|
1181
|
+
hovered(t) {
|
|
1182
|
+
t ? this.boothMesh.material = Xe : this.boothMesh.userData.dimmed ? this.boothMesh.material = Ut : this.boothMesh.userData.selected ? this.boothMesh.material = this.material : this.boothMesh.material = this.material;
|
|
1183
|
+
}
|
|
1184
|
+
// public selected(value: boolean) {
|
|
1185
|
+
// this.boothMesh.material = value ? this.material : dimmedMaterial;
|
|
1186
|
+
// this.boothMesh.userData.selected = value;
|
|
1187
|
+
// }
|
|
1188
|
+
}
|
|
1189
|
+
async function Qe(l) {
|
|
1190
|
+
return new Promise(async (t, e) => {
|
|
1191
|
+
const i = `https://${l}.expofp.com/data/threejs`;
|
|
1192
|
+
let o = await (await fetch(dt(`${i}/model.json`))).json();
|
|
1193
|
+
t(o);
|
|
1194
|
+
});
|
|
1195
|
+
}
|
|
1196
|
+
async function Je(l, t) {
|
|
1197
|
+
return new Promise(async (e, i) => {
|
|
1198
|
+
var s = await _e(t);
|
|
1199
|
+
s.getAsArray().forEach((a) => {
|
|
1200
|
+
a.name.indexOf(".webp") > -1 && (a.alphaTest = 0.6, a.transparent = !0), a.name === "0xB1C6CE" && (a.alphaTest = 0.1, a.transparent = !0, a.opacity = 0.3, a.side = 2, a.depthWrite = !1, a.depthTest = !1);
|
|
1201
|
+
});
|
|
1202
|
+
const o = new qe();
|
|
1203
|
+
o.setMaterials(s), o.load(l, async (a) => {
|
|
1204
|
+
a.children.forEach((n) => {
|
|
1205
|
+
n.name === "building" ? n.renderOrder = 0.1 : n.renderOrder = 1;
|
|
1206
|
+
}), e(a);
|
|
1207
|
+
}, void 0, (a) => i(a));
|
|
1208
|
+
});
|
|
1209
|
+
}
|
|
1210
|
+
async function _e(l) {
|
|
1211
|
+
return new Promise((t, e) => {
|
|
1212
|
+
const i = new je();
|
|
1213
|
+
i.setMaterialOptions({
|
|
1214
|
+
side: 2
|
|
1215
|
+
}), i.load(l, (s) => {
|
|
1216
|
+
t(s);
|
|
1217
|
+
}, void 0, (s) => {
|
|
1218
|
+
e(s);
|
|
1219
|
+
});
|
|
1220
|
+
});
|
|
1221
|
+
}
|
|
1222
|
+
class $e extends he {
|
|
1223
|
+
constructor() {
|
|
1224
|
+
super(), this.camera = void 0, this.raycaster = void 0, this.objLayers = /* @__PURE__ */ new Map(), this.layerCounter = 1, this.onClickCallbacks = [];
|
|
1225
|
+
}
|
|
1226
|
+
addLayer(t) {
|
|
1227
|
+
return this.objLayers.has(t) || (this.objLayers.set(t, this.layerCounter), this.camera.layers.enable(this.layerCounter), this.layerCounter++), this.layerCounter - 1;
|
|
1228
|
+
}
|
|
1229
|
+
getlayer(t) {
|
|
1230
|
+
return this.objLayers.get(t);
|
|
1231
|
+
}
|
|
1232
|
+
}
|
|
1233
|
+
async function Gt(l, t, e, i, s, o) {
|
|
1234
|
+
const a = new le(), n = new $e();
|
|
1235
|
+
n.raycaster = a, n.camera = i, i.near = 0.1, i.far = 1e4, i.aspect = e.clientWidth / e.clientHeight, i.updateProjectionMatrix();
|
|
1236
|
+
const r = new ce(16777215, 10, Math.PI);
|
|
1237
|
+
r.castShadow = !0, r.position.set(0, 0, 100), n.add(r);
|
|
1238
|
+
const h = new Ae({
|
|
1239
|
+
canvas: l || void 0,
|
|
1240
|
+
context: t || void 0,
|
|
1241
|
+
antialias: !0,
|
|
1242
|
+
precision: "highp",
|
|
1243
|
+
premultipliedAlpha: !0
|
|
1244
|
+
});
|
|
1245
|
+
h.outputColorSpace = F, !l && !t && (h.setSize(e.clientWidth, e.clientHeight), e.appendChild(h.domElement)), h.autoClear = !1, e.addEventListener("resize", () => {
|
|
1246
|
+
i.aspect = e.clientWidth / e.clientHeight, i.updateProjectionMatrix(), h.setSize(e.clientWidth, e.clientHeight), c();
|
|
1247
|
+
}, !1);
|
|
1248
|
+
function c() {
|
|
1249
|
+
h.resetState(), o(), !l && !t && h.render(n, i);
|
|
1250
|
+
}
|
|
1251
|
+
function A() {
|
|
1252
|
+
requestAnimationFrame(A), c();
|
|
1253
|
+
}
|
|
1254
|
+
A(), a.layers.enableAll();
|
|
1255
|
+
let d = !1;
|
|
1256
|
+
e.addEventListener("mousedown", () => {
|
|
1257
|
+
d = !0;
|
|
1258
|
+
}), e.addEventListener("mousemove", () => {
|
|
1259
|
+
d = !1;
|
|
1260
|
+
}), e.addEventListener("mouseup", (f) => {
|
|
1261
|
+
d && p(f.clientX - e.parentElement.offsetLeft, f.clientY - e.parentElement.offsetTop), d = !1;
|
|
1262
|
+
});
|
|
1263
|
+
function p(f, u) {
|
|
1264
|
+
s(f, u, a);
|
|
1265
|
+
const m = a.intersectObjects(n.children).filter((g) => g.object.material.visible).sort((g, v) => g.distance - v.distance);
|
|
1266
|
+
n.onClickCallbacks.forEach((g) => g(m));
|
|
1267
|
+
}
|
|
1268
|
+
return n.scale.x = -1, {
|
|
1269
|
+
scene: n,
|
|
1270
|
+
renderer: h
|
|
1271
|
+
};
|
|
1272
|
+
}
|
|
1273
|
+
function ts(l, t) {
|
|
1274
|
+
return new Promise(async (e, i) => {
|
|
1275
|
+
const s = new qt(50, l.clientWidth / l.clientHeight, 0.1, 1e3);
|
|
1276
|
+
var {
|
|
1277
|
+
x: o,
|
|
1278
|
+
y: a
|
|
1279
|
+
} = t.viewbox.center;
|
|
1280
|
+
s.position.x = o + t.area.width * 0.2, s.position.y = a + t.area.height, s.position.z = t.objLayers[t.objLayers.length - 1].z * Math.max(t.area.height, t.area.width) * 0.15 || Math.min(t.area.height, t.area.width), s.up.set(0, 0, 1);
|
|
1281
|
+
let n;
|
|
1282
|
+
const r = await Gt(null, null, l, s, (h, c, A) => {
|
|
1283
|
+
const d = new x();
|
|
1284
|
+
d.x = h / l.clientWidth * 2 - 1, d.y = -(c / l.clientHeight) * 2 + 1, A.setFromCamera(d, s);
|
|
1285
|
+
}, () => {
|
|
1286
|
+
n == null || n.update();
|
|
1287
|
+
});
|
|
1288
|
+
n = new Ee(s, r.renderer.domElement), n.enableRotate = !0, n.enablePan = !0, n.enableZoom = !0, n.enableDamping = !0, n.zoomSpeed = 0.7, n.rotateSpeed = 1.5, n.panSpeed = 0.7, n.target.set(o, a, 0), n.mouseButtons = {
|
|
1289
|
+
LEFT: U.PAN,
|
|
1290
|
+
RIGHT: U.ROTATE,
|
|
1291
|
+
MIDDLE: U.DOLLY
|
|
1292
|
+
}, n.touches.ONE = N.PAN, n.touches.TWO = N.DOLLY_ROTATE, r.scene.background = new B(12895428), e(r.scene);
|
|
1293
|
+
});
|
|
1294
|
+
}
|
|
1295
|
+
function es() {
|
|
1296
|
+
if (q.Map.prototype._setupPainter.toString().indexOf("webgl2") > -1) {
|
|
1297
|
+
const l = q.Map.prototype._setupPainter;
|
|
1298
|
+
q.Map.prototype._setupPainter = function() {
|
|
1299
|
+
const t = this._canvas.getContext;
|
|
1300
|
+
this._canvas.getContext = function(e, i) {
|
|
1301
|
+
return t.apply(this, ["webgl2", i]) || t.apply(this, ["webgl", i]) || t.apply(this, ["experimental-webgl", i]);
|
|
1302
|
+
}, l.apply(this), this._canvas.getContext = t;
|
|
1303
|
+
};
|
|
1304
|
+
}
|
|
1305
|
+
}
|
|
1306
|
+
function ss(l, t) {
|
|
1307
|
+
return new Promise((e, i) => {
|
|
1308
|
+
es(), q.accessToken = "pk.eyJ1Ijoicm9kaW9ubmlrb2xhZXYiLCJhIjoiY2wwanE5aXB4MDM2NTNibGExd3k4bHhsaiJ9.wdpy8dJ1qktQXGtZYDNH3w";
|
|
1309
|
+
const s = new q.Map({
|
|
1310
|
+
container: l,
|
|
1311
|
+
//style: `mapbox://styles/mapbox/${"light-v11"}`,
|
|
1312
|
+
style: "mapbox://styles/mapbox/" + t.replace("v10", "v11"),
|
|
1313
|
+
antialias: !0,
|
|
1314
|
+
pitch: 30,
|
|
1315
|
+
maxPitch: 70,
|
|
1316
|
+
minZoom: 14
|
|
1317
|
+
});
|
|
1318
|
+
s.on("load", () => e(s));
|
|
1319
|
+
});
|
|
1320
|
+
}
|
|
1321
|
+
async function is(l, t) {
|
|
1322
|
+
return new Promise(async (e, i) => {
|
|
1323
|
+
var {
|
|
1324
|
+
geoConfig: s
|
|
1325
|
+
} = t;
|
|
1326
|
+
const o = await ss(l, s.style);
|
|
1327
|
+
ye(o);
|
|
1328
|
+
let a, n, r, h;
|
|
1329
|
+
o.setBearing(s.bearing - 30), o.setCenter(s.center), o.setZoom(16);
|
|
1330
|
+
const c = 1, A = [0, 0, (180 - s.bearing) * Math.PI / 180], d = q.MercatorCoordinate.fromLngLat(s.center, c), p = {
|
|
1331
|
+
translateX: d.x,
|
|
1332
|
+
translateY: d.y,
|
|
1333
|
+
translateZ: d.z,
|
|
1334
|
+
rotateX: A[0],
|
|
1335
|
+
rotateY: A[1],
|
|
1336
|
+
rotateZ: A[2],
|
|
1337
|
+
scale: 10 * d.meterInMercatorCoordinateUnits()
|
|
1338
|
+
}, f = {
|
|
1339
|
+
id: "3d-expofp",
|
|
1340
|
+
type: "custom",
|
|
1341
|
+
renderingMode: "3d",
|
|
1342
|
+
onAdd: async function(u, m) {
|
|
1343
|
+
a = new qt();
|
|
1344
|
+
var g = await Gt(u.getCanvas(), m, l, a, (v, k, T) => {
|
|
1345
|
+
const M = u.getFreeCameraOptions();
|
|
1346
|
+
let y = new ot(M.position.x, M.position.y, M.position.z, 1);
|
|
1347
|
+
const L = new ot(-1e3, -1e3, 1, 1);
|
|
1348
|
+
L.x = v / l.clientWidth * 2 - 1, L.y = -(k / l.clientHeight) * 2 + 1, y.applyMatrix4(h.invert());
|
|
1349
|
+
let D = L.clone().applyMatrix4(a.projectionMatrix.clone().invert());
|
|
1350
|
+
return D.divideScalar(D.w), T.set(y, D.sub(y).normalize()), T;
|
|
1351
|
+
}, () => {
|
|
1352
|
+
});
|
|
1353
|
+
n = g.scene, r = g.renderer, e(n);
|
|
1354
|
+
},
|
|
1355
|
+
render: function(u, m) {
|
|
1356
|
+
if (!r) return;
|
|
1357
|
+
const g = new z().makeRotationAxis(new E(1, 0, 0), p.rotateX), v = new z().makeRotationAxis(new E(0, 1, 0), p.rotateY), k = new z().makeRotationAxis(new E(0, 0, 1), p.rotateZ), T = new z().fromArray(m);
|
|
1358
|
+
h = new z().makeTranslation(p.translateX, p.translateY, p.translateZ).scale(new E(p.scale, -p.scale, p.scale)).multiply(g).multiply(v).multiply(k), a.projectionMatrix = T.multiply(h);
|
|
1359
|
+
const M = o.getFreeCameraOptions();
|
|
1360
|
+
let y = new ot(M.position.x, M.position.y, M.position.z, 1).applyMatrix4(h.clone().invert());
|
|
1361
|
+
a.userData.position = y, r.render(n, a), o.triggerRepaint();
|
|
1362
|
+
}
|
|
1363
|
+
};
|
|
1364
|
+
o.addLayer(f);
|
|
1365
|
+
});
|
|
1366
|
+
}
|
|
1367
|
+
class tt extends X {
|
|
1368
|
+
constructor(t, e) {
|
|
1369
|
+
const i = new Ft(1, 1), s = new Kt({
|
|
1370
|
+
transparent: !0,
|
|
1371
|
+
side: K,
|
|
1372
|
+
alphaTest: 0.8,
|
|
1373
|
+
toneMapped: !0,
|
|
1374
|
+
precision: "highp"
|
|
1375
|
+
});
|
|
1376
|
+
var o = 0;
|
|
1377
|
+
new Bt().load(t, (a) => {
|
|
1378
|
+
s.map = a;
|
|
1379
|
+
var n = e / a.image.height;
|
|
1380
|
+
i.scale(a.image.width * n, a.image.height * n, 1), i.translate(0, a.image.height * n / 2, 0), i.rotateX(Math.PI / 2), s.needsUpdate = !0;
|
|
1381
|
+
}), super(i, s), this.onBeforeRender = (a, n, r, h, c, A) => {
|
|
1382
|
+
let d = r.position.x && r.position.y && r.position.z ? r.position : r.userData.position;
|
|
1383
|
+
const p = ct.round((ct.lineAngle({
|
|
1384
|
+
x: 0,
|
|
1385
|
+
y: 0
|
|
1386
|
+
}, d) - 90) * Math.PI / 180, 2);
|
|
1387
|
+
this.rotateZ(-1 * (p - o)), o = p;
|
|
1388
|
+
};
|
|
1389
|
+
}
|
|
1390
|
+
}
|
|
1391
|
+
function os(l) {
|
|
1392
|
+
const t = document.createElement("canvas"), e = t.getContext("2d");
|
|
1393
|
+
return e.font = "30px Arial", e.fillText(l, 0, 0), t;
|
|
1394
|
+
}
|
|
1395
|
+
const as = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAHCCAMAAABi7QS1AAADAFBMVEX///8AAACzqqSyqaOyopmyjnuymIuyk4Gyi3cARoiyoJOypp2yloWyiHCynI+ygWayhGoAcABzAFwAcgBcAGMAYwBtAG8AcABuAG8AZQB0AG4AcwBUAFwAaABlAHIAZQBzAGoAXABzAGEAcwB0AGUAcwBmAFwAcgBtAG8ALgBuAHAAZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAsAAB12foAAAAAAAB4AAABWuwAAAEAAAAAAAAAAABa7QhwLwEBd2cAAADZ+ixxHnUAd2cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAB3ZwXq30gAAAgAAZQAAAAAAAAAAAAAAAAAAAAAAAAAZAAcAAAAKgDg6dAAAAgqAAAAAAAAAADKGABHCOoI6t/q30jpwAgACOABlABa7WjtJAE2AVp3YvBkBOkAAHcAAAAAAAAAAAAAAAAAAAAAAABDtSnrUqbIdcgBWu3I660At3UAAAAAAAAAAADsIsBgdcgAAAAAAAUAgACAAADAEAAAAAAAAABcAAAAAAYAAAAAAwByAAAAdADq30jt8AgAAVoAAAAAAADfSAAACOoAAACiG8wAAHYAAAAAAAAAAAAAAAAYAAAAAAAAAADtaABAAVoAAAAAAADtuAAJAVoABgDVXQgADAgCAAAAAAAAAQE9eABQ8mXNAAAAAXRSTlMAQObYZgAAAAFiS0dEi/JvR+AAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAzzSURBVHja7Z3blqu6DkR72Nwhgf//2jP2Wel07rFBJUuy/NgPaZhUCdnY0s+PDx8+fPjwAR7xvxGexn9/dThXRiFp1I0spmKqHNkeTFUC+wqqaf8bXfXA3oHqh/HzaKfKgL0C1bVjxniWm01eT6S6cedon4DZJrUb1O8YZqO8HkgtI9E4Ndb8eB/RzyPxmAzJC0vqmZdieUU8qX/jrF1et/6Dkvo3GsW4bkhNI8/olOKKhElCxlhnfbhuUA0j8zjrwvWHal7HAuOkCFfkDlV6ccUSoUonrsiYKqTiisJRNaOEIRrXldUoZfRScV1RnUZBYxJJK1Ivv1ANeeKKxbOF716Mwlito8ghyYuSZXXvxeiyylmQiC6rlPUIAbRUyOpucTCWZjWNGsZQVlwXVtuoZMzlaEVps5vvYylFK0qaNGcmEbEMq2UcNdIKHq6EvhWjunD1lKCy0VIZrq6jZaWlNFwVCfPqWf1mXJGL1TCOTisxtCtnxUMrqpk4p6UQ0VmJoKU5vXq33ByxsX20Ms5IWsZYQWmZY/U79YmogDXaGiBtmWQFeidGeRsZKLNTAKt2NDjIVwOjgN18WFqRmNV5HJ1WYtLQjKPTShTWbJfVZVtS9KQhY5roSUNGAhGJAlY3Gh80RjQfsP6NEwWtCgLW7ZzaWWXMEuPhgNVXAetw2Ip69qpR0XITZixuxUMmHOsZR4wYTU+faY0YaxPWJX+Iu024VgVrtxHrehMeM2KFJtxvRK17RkusP0Tji6OkRqzThNeFwJgtrKFKWNnSivUK63JoJWbCOlUKK1NalayOvhunLGnVbMLc9KGgsNa2XW4qLA8FjRgFC6ud35acXla50mKfFK5NQlXzXqa0eIU1pFeBP8uTVmT8qDrkVs1vhEmLT1jNU1+PF48uktewJpRWZDry1eZUdb8nNouRFo+wlvx6yJEX15yQxrO8CvfWqo2cuBKuLuKF1R6psR3ZYn2CtPBP7WhVzMgV6r9eI1xYDUFdub9wP8CfasHwvlKV4IsMXvy2rgVexyIsKHcV11rMh1hh0dZkwtc5+xzioQkpfVlHeJ2lj5eLDO8ToPLEL62tRIgH5g2gQl/YYkufQjwuvK8Be2QUFbi+wdLFClz07EOIR/3TFVsoJ+Imi+vb646gtGUILOUmZlYfglw44AvH4Wi99SEmUK4cRfZgtLY30gIJi6cgYURF+TewMMkwV/FG1MnkNz6ErBDxFboEnXkfXkoL4sKZsSgo6BApG6yOtcglZlPZSx8CXicn5vKpEFrDO1gnQMDirGMMeSW+uAmAC2f2ms8RsTDPAmvhr/gMMWLzfBv0WUq5YuINfeQFT6LnMmXqAUZ8uhFyFy6FGiAAjPh0J+T/okDAQm3WeMq0qBeyp3J9SMife/sK1mpBWIi91g8PnjpkzSX7AZF/d8HC2or2TiKP8Q9Bi/jnZwGNpk7Eb3ZYSlq6hVkAGAU1i57LRXdMCL57+MQ/Xr6TIPELEQhrEtJ2UQUsCR09adP4u7hCOlUfJMCiffzLI6yeUljhRwKsDfI6JH0ZyuirSxvib++JUrOdBGEBwzDpDwdBsHoNsCT0Ag+gm6KEtcgQFk4BlL8bRMFa6e+KGpYEF9Imj+c/WIT23uTAopRAfw+LaIGmkeJCWline1i9NRfSptr3sE42YZ0hsFZ7sDDvLTpYg5yQJR9W47B0uvDffW0OKx1W77DY15bvYY1GYQXZsMSwoozwAFgnh5U+Woe1a3LusDKWfRyWwyKENcmC9SMaVqgE1uqwmGHNDkttgHdYEt6GJLA6h+XTnUdYm8NKh9VS/OTqsNQu/jmszMxhdljpsDoErLNRWAMClsWZNOQjK10gXOx/kab71dUyLOAr1tTL8FQFLKKv9z0MlsFtkrfLKXTbTRabsMIDrNaaDwNowzrh7ktZsHoQLKKH0Fg/jkL5w2JODWiAJepUWEMJC/EUZkHnDVfpsE5yjv2SufCEgiXojDRZwZj7rVSEiZaM3SG0R6SbJ1iNJWkFYFkPa0fKI6VVoLAGGYV7YJWI6KsglC8JRVfv8fH4Fmkp1KW0tIiLHE0vYDVWpEVdqvTxdmifRVdWWgFZmO0HUp0rWBEWGlbRqEUtrOdDNsTFrktXwKUsfdy9hDURP41YjBW4pjaiWmURWvQNZZ7vJBqpcQ5oNcAAq0yMB9TOf7UlgXbqORYqsBzIb+Plp1D6JkUFwlYEtFp6FU/oe8l07GEL0tLp1SOPoI41gZvVxgDrB9CPmdmIkKZ9r3dvoCTMRgvTPPO1OyKqhRsTrYBr/fmmz+iKEDELLRCr9QMschWfmWhhOkG+PxWIaffbsNDCvAg/fNcD9UaeGWgFRGPDzx9B6acKTLRwrN7X5UP1RAc7MeJYfdgTBPLhL60AZbUhLvzDVgQYrF9aEcdqHZlhYZqU30yqAbQiKL/6NNfBzXhuF+XJrXhBNYNYfVzujcCHNAZ6cV1YTSPymuOnd3CH+s/zhVakRUXXqeJpbF9hwaT1G7hoxPWLCne53zYTR/B/D2S4fll1I/hy4+dc+Az89x0NLg5ZfT8Agb+CcBhXvKJaoFf6dUt/hMO6LAjuxnUlBXwJprkQ78M7L2bz+hMVLre6f6rxp6y0rguouZnEHykGVCkHa3hgXQ4tZOjrRlM8qJL283P48CF2fVHYHSeOWJXqQj5p/S3Q3yOLHzDhlmJ2uZAX1jiuTcgZy8g3kuIDmw9fvBw/jfnEeVGJ50R4pXXJlb8Aa9qRe6QtKEXyfYapS17t9IJT345FRuJbmu/lLHik1nos4UNxI+TAOjustLlYcGml1/IoFuIVCstDfNa+9OpDfM5Xu+pDfNZSW+UhPq9ETOUhPnMNt+oQn3vsqOoQn7spo+YQv2Z/Sak4xOdXAKs4xO/4RFdtiN9TlKLaEL9rz12l0tpXN6BSae3bzBkZP2jqDu/VZg97K4dG7s+aioVVpbSmY/vGBheWS4tYWBdpbZUJa/chkMoS02P1cypLTA+eLqpKWkcrpFUlraPH1mqa8xwvvVdR9nC8R0JF0iI4gVWNtCiab1QjLZKjfZVIi6ZEYSXSIjpiW4W0qGpfViEtsrPbFUiLrg+VfWlR1s02Ly3KYibWpUVbkN24tGir5NiWFnWlf9PSoi6/ZFla9C0kDEuLvq5XNLsaj+hNYlZaiNqN0SgtTK8No1tyMUVBbUprApUENblfC1Zt1qC0cP1uIrzInt41vwqkhayQbW3Sg+2VZ0xa2L5AtiY96N5vprYgoRtOWcpMJ3hvDUOTHoZOZmakxdF/0cqkZ2NpnmREWjydpmxkpj1TDzMT0uLqU2khfZjYWglGUJ8sg8KyYETOjp7aY3zL2itWubR4uxDrXn2YmLuBB81TRO5m4JrTh5m9zbzeKeLAzkpxjOc2oeb0YSogLLXSKiEsrTF+LiIsnTG+L8RKpRFDMVj/l1ajiVVTjNVFWqseVluZ6K4zxoeCwtIW489FWSmL8SVNqG2tZi4sLE2f8/virBTF+NIm1DShbsoLS02M3yQIS0uMDyKEpSPZOgthpcKIMkyow4izGGHJ3/ywCGIlPtmSY0L5K1uSTHiN8ZubUL0RgzRYgmc9szhWcpOtXlZ0l23EIFBYUs+5ziJZyTRiK9GEUmc9QaiwLrR6N6FOIw5STSjRiEGwsC7SErP80IhmJSvZaiWbUJoRZZtQlhFn8azkGLGXbkJJRpRvwqsRBzehHiMuGkwoZUFehwllGHFWw6q8ETstJpRgRD0mLG9EXazKGvGsyYSlU1NtrErOEZWZsKgRO32syhlRnwmvRuzdhHKNOOlkVcSIm04TXo24uAllGrHRy4rdiK1eE15pdW7CjLDli1jiwtaindWF1tlT9wwjrh6wJBnxbIEV06bvzYIJudaYgw1hsRixscKKIZFvrZiQY2kr2BEW3IizJVZgI3aWTIhe2rLGCmnEYMuEUFqTPVawGfXJnAmBS1vBorBARpxtsoIYsbdpQszSVrAqLIARDbMi3z55tsyKeNfWajdg0Rsx2BYW6Yy6sc6KcEbdGjchaSIf7AuLLGzNNbAiSuS7GkxIlcjXworCiKEOE15pHflGPdXD6vA36qEaExIYMdQkrIOJ/FwXq0PfqPuqTHjQiKE2YR2gVSGr3Yn8uUZWO2fUa3UB64ARQ53C2pXIN7Wy2tGMuq3UhLuMGOoVVnYiP9fMKvPTWF+xCbONGOoWVpYR59pZZXwa6yo3YZYRnVU6reAmvNLqfP5MNqNe3YTpRnQTps+oJ2f1YMS1tr3uGCO6CdON2DirF0bc/PvzUSO6CV/TatyEGUYc3IRHjOgmTDeimzDdiG7CDCO6CdON6CZMN6LPCTOM6CZMnyP66mjGHNFNmG5E/06YbsTWWSUa0aN7lhF92T2Dlkf3DCO6sPKk5awyaAm8sv8B9SR61I4cc64AAAAASUVORK5CYII=", ns = "data:image/png;base64,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", jt = "data:image/png;base64,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", I = [], ht = new W({
|
|
1396
|
+
color: 3190763
|
|
1397
|
+
}), rs = new W({
|
|
1398
|
+
color: 16711680
|
|
1399
|
+
});
|
|
1400
|
+
let j = 0;
|
|
1401
|
+
const lt = [], hs = (l) => Ht.EXPO == "glf24" ? 0.1 : 1 * (l.area.width + l.area.height) / 1200;
|
|
1402
|
+
class ls {
|
|
1403
|
+
constructor(t, e, i) {
|
|
1404
|
+
this.expo = void 0, this.isMapbox = void 0, this.scene = void 0, this.data = void 0, this.container = void 0, this.isInit = !1, this.expo = t, this.isMapbox = e, this.container = i, setInterval(() => {
|
|
1405
|
+
if (!I.length) {
|
|
1406
|
+
j = 0;
|
|
1407
|
+
return;
|
|
1408
|
+
}
|
|
1409
|
+
I[j].material = rs, j > 0 && (I[j - 1].material = ht), j < I.length - 1 ? j++ : (I[j - 1].material = ht, j = 0);
|
|
1410
|
+
}, 50);
|
|
1411
|
+
}
|
|
1412
|
+
async init() {
|
|
1413
|
+
return new Promise(async (t, e) => {
|
|
1414
|
+
this.data = await Qe(this.expo);
|
|
1415
|
+
const i = `https://${this.expo}.expofp.com/data/threejs`, s = await (this.isMapbox ? is(this.container, this.data) : ts(this.container, this.data)), o = await Je(dt(`${i}/model.obj`), dt(`${i}/model.mtl`));
|
|
1416
|
+
this.isInit = !0, this.scene = s, s.onClickCallbacks.push(this.onClickCallback.bind(this)), s.onBeforeRender = this.onBeforeRender.bind(this), await this.initBooths(s, o), t();
|
|
1417
|
+
});
|
|
1418
|
+
}
|
|
1419
|
+
changeLayerVisibility(t, e) {
|
|
1420
|
+
if (!this.isInit) return;
|
|
1421
|
+
const i = this.scene.getlayer(t);
|
|
1422
|
+
i != null && (e ? (this.scene.camera.layers.enable(i), this.scene.raycaster.layers.enable(i)) : (this.scene.camera.layers.disable(i), this.scene.raycaster.layers.disable(i)));
|
|
1423
|
+
}
|
|
1424
|
+
hoverBooths(t) {
|
|
1425
|
+
lt.forEach((e) => e.hovered(t.length && !!t.find((i) => i.name === e.name)));
|
|
1426
|
+
}
|
|
1427
|
+
selectBooths(t) {
|
|
1428
|
+
lt.forEach((e) => e.dimmed(t.length && !t.find((i) => i.name === e.name)));
|
|
1429
|
+
}
|
|
1430
|
+
setMarker(t, e, i, s, o = !1, a = 1) {
|
|
1431
|
+
const n = `{sprite_${t}}`;
|
|
1432
|
+
let r = this.scene.children.find((h) => h.name === n);
|
|
1433
|
+
if (e != null && i != null) {
|
|
1434
|
+
const h = o ? {
|
|
1435
|
+
x: e,
|
|
1436
|
+
y: i
|
|
1437
|
+
} : this.convertPoint(e, i, 0);
|
|
1438
|
+
let c = this.data.objLayers.find((A) => {
|
|
1439
|
+
var d;
|
|
1440
|
+
return A.name === ((d = P.layerStore.findLayer(s)) == null ? void 0 : d.name);
|
|
1441
|
+
}) || this.data.objLayers[0];
|
|
1442
|
+
r || (t === "from" ? r = new tt(as, c.height * a * 2) : t === "to" ? r = new tt(ns, c.height * a * 2) : t === "yah" ? r = new tt(jt, c.height * a * 2) : t === "cp" && (r = new tt(jt, c.height * a)), r.name = n, this.scene.add(r)), r.position.set(h.x, h.y, c.z + (t === "from" || t === "to" ? c.height : 0));
|
|
1443
|
+
} else r && this.scene.remove(r);
|
|
1444
|
+
}
|
|
1445
|
+
interpolateColors(t, e, i) {
|
|
1446
|
+
for (var s = 1 / (i - 1), o = [], a = new B(t), n = new B(e), r = 0; r < i; r++)
|
|
1447
|
+
o.push(a.clone().lerp(n, s * r).getHex());
|
|
1448
|
+
return o;
|
|
1449
|
+
}
|
|
1450
|
+
updateRouteLines(t) {
|
|
1451
|
+
if (!this.isInit) return;
|
|
1452
|
+
var e = t.routeLines.filter((a) => {
|
|
1453
|
+
var r, h;
|
|
1454
|
+
let n = (h = (r = P.layerStore.layers.find((c) => c.name === a.p0.layer)) == null ? void 0 : r.visible) != null ? h : !0;
|
|
1455
|
+
return !a.virtual && n;
|
|
1456
|
+
});
|
|
1457
|
+
if (I.forEach((a) => this.scene.remove(a)), I.splice(0, I.length), !e.length) {
|
|
1458
|
+
this.setMarker("from", null, null, null), this.setMarker("to", null, null, null);
|
|
1459
|
+
return;
|
|
1460
|
+
}
|
|
1461
|
+
const i = this.linesToPoints(e), {
|
|
1462
|
+
z: s
|
|
1463
|
+
} = this.data.objLayers.find((a) => a.name === (de.mode === pe.Default ? "Default" : e[0].p0.layer)), o = hs(this.data);
|
|
1464
|
+
[].concat(i).reverse().forEach((a, n) => {
|
|
1465
|
+
const r = new ue(o), h = new X(r, ht);
|
|
1466
|
+
h.position.set(a.x, a.y, s + 0.02), I.push(h), this.scene.add(h);
|
|
1467
|
+
}), this.setMarker("to", e[0].p0.x, e[0].p0.y, e[0].p0.layer), this.setMarker("from", e[e.length - 1].p1.x, e[e.length - 1].p1.y, e[e.length - 1].p1.layer);
|
|
1468
|
+
}
|
|
1469
|
+
onBeforeRender(t, e, i, s, o, a) {
|
|
1470
|
+
i.userData.position || i.position;
|
|
1471
|
+
}
|
|
1472
|
+
onClickCallback(t) {
|
|
1473
|
+
var o;
|
|
1474
|
+
const e = t.filter((a) => a.object.name !== "building")[0];
|
|
1475
|
+
let i = (o = e == null ? void 0 : e.object) == null ? void 0 : o.name, s = At.booths.find((a) => a.name === i);
|
|
1476
|
+
s ? P.clickBooth(s) : b.details = null;
|
|
1477
|
+
}
|
|
1478
|
+
async initBooths(t, e) {
|
|
1479
|
+
const i = (await fe(At.booths)).filter((n) => !!n);
|
|
1480
|
+
var s = /* @__PURE__ */ new Map();
|
|
1481
|
+
i.forEach((n) => s.set(n.name + "_logo", new St(n.htmlImage))), P.boothStore.booths.forEach((n) => {
|
|
1482
|
+
s.set(n.slug, new St(os(n.name)));
|
|
1483
|
+
});
|
|
1484
|
+
var o = new ze(s), a = new Kt();
|
|
1485
|
+
a.side = K, a.transparent = !0, e.children.forEach((n, r) => {
|
|
1486
|
+
var f;
|
|
1487
|
+
var [h, c] = n.name.split(/ (.*)/s);
|
|
1488
|
+
const A = t.addLayer(h);
|
|
1489
|
+
n.layers.set(A), n.name = c;
|
|
1490
|
+
const d = P.boothStore.booths.find((u) => c && c[0] === "b" && u.name === (c == null ? void 0 : c.substring(1)));
|
|
1491
|
+
if (d) {
|
|
1492
|
+
n.material = new W({
|
|
1493
|
+
color: ve(d),
|
|
1494
|
+
side: K,
|
|
1495
|
+
name: n.name
|
|
1496
|
+
});
|
|
1497
|
+
let u = this.data.objLayers.find((T) => {
|
|
1498
|
+
var M;
|
|
1499
|
+
return T.name === (((M = d.layer) == null ? void 0 : M.name) || "Default");
|
|
1500
|
+
}), m = this.data.booths.find((T) => T.name === d.name);
|
|
1501
|
+
m.zScale = m.zScale || 1;
|
|
1502
|
+
let g = u.z + m.zScale * u.height + (u.z + m.zScale * u.height) * 1e-3;
|
|
1503
|
+
const v = new Ye(d, m, n, c.substring(1), A, g);
|
|
1504
|
+
let k = v.setText();
|
|
1505
|
+
k && t.add(k);
|
|
1506
|
+
var p = (f = d == null ? void 0 : d.exhibitors) == null ? void 0 : f.find((T) => !!T.logo && T.logoInBooth);
|
|
1507
|
+
if (p) {
|
|
1508
|
+
const T = i.find((y) => y.booth.name === c.substring(1)), M = v.setLogo(o, T.htmlImage.width / T.htmlImage.height, a);
|
|
1509
|
+
M && t.add(M);
|
|
1510
|
+
}
|
|
1511
|
+
e.children[r] = v, lt.push(v);
|
|
1512
|
+
}
|
|
1513
|
+
}), t.add(e);
|
|
1514
|
+
}
|
|
1515
|
+
convertPoint(t, e, i) {
|
|
1516
|
+
var s = this.data.matrix;
|
|
1517
|
+
return t += s[0], e += s[1], t *= s[2], e *= s[3], t += s[4], e += s[5], new E(t, e, i);
|
|
1518
|
+
}
|
|
1519
|
+
linesToPoints(t) {
|
|
1520
|
+
var s, o;
|
|
1521
|
+
let e = [], i = [];
|
|
1522
|
+
for (let a = 0; a < t.length; a++) {
|
|
1523
|
+
let n = t[a], r = (o = (s = P.layerStore.layers.find((h) => h.name === n.p0.layer)) == null ? void 0 : s.visible) != null ? o : !0;
|
|
1524
|
+
!n.virtual && r && i.push(n), (n.virtual || !r || a === t.length - 1) && i.length && (i = []);
|
|
1525
|
+
}
|
|
1526
|
+
return e.map((a) => this.convertPoint(a.x, a.y, a.z));
|
|
1527
|
+
}
|
|
1528
|
+
}
|
|
1529
|
+
function fs({
|
|
1530
|
+
isMapbox: l,
|
|
1531
|
+
expo: t
|
|
1532
|
+
}) {
|
|
1533
|
+
const e = Rt.useRef(null);
|
|
1534
|
+
let i = null;
|
|
1535
|
+
Rt.useEffect(() => {
|
|
1536
|
+
i = new ls(t, l, e.current), i.init().then(() => {
|
|
1537
|
+
P.layerStore.layers.forEach((o) => i.changeLayerVisibility(o.name, o.visible)), i.selectBooths([...b.selectedBooths]), i.updateRouteLines(P.routeStore), xt(!0);
|
|
1538
|
+
});
|
|
1539
|
+
}, []);
|
|
1540
|
+
const s = me(() => ({
|
|
1541
|
+
get initselected() {
|
|
1542
|
+
return ![...b.selectedBooths].filter((o) => o.rect);
|
|
1543
|
+
},
|
|
1544
|
+
get actualCurrentPosition() {
|
|
1545
|
+
const o = P.routeStore.currentPosition;
|
|
1546
|
+
return !(o != null && o.z) || P.layerStore.visible.indexOf(P.layerStore.findLayer(o.z)) > -1 ? o : null;
|
|
1547
|
+
},
|
|
1548
|
+
get style() {
|
|
1549
|
+
return {
|
|
1550
|
+
left: 0
|
|
1551
|
+
};
|
|
1552
|
+
}
|
|
1553
|
+
}));
|
|
1554
|
+
return Z(() => b.zoomBy, () => {
|
|
1555
|
+
if (!b.zoomBy || !P.mapboxStore.showMapbox) return;
|
|
1556
|
+
const o = b.zoomBy;
|
|
1557
|
+
b.zoomBy = null, we(o > 1);
|
|
1558
|
+
}), Z(() => [P.layerStore.loaded, P.layerStore.visible, b.selectedRoute], () => {
|
|
1559
|
+
P.layerStore.layers.length === P.layerStore.layers.filter((o) => o.loaded).length && P.layerStore.layers.forEach((o) => i.changeLayerVisibility(o.name, o.visible));
|
|
1560
|
+
}), Z(() => b.hoveredBooths, () => {
|
|
1561
|
+
i.hoverBooths([...b.hoveredBooths]);
|
|
1562
|
+
}), Z(() => [b.selectedBooths, b.listBooths], () => {
|
|
1563
|
+
var o = [];
|
|
1564
|
+
b.selectedBooths.size ? o = [...b.selectedBooths] : b.listBooths.size && (b.activeListIndex === 0 || b.list.type === "bookmarks" || b.list.type === "category") && (o = [...b.listBooths]), i.selectBooths(o);
|
|
1565
|
+
}), Z(() => P.mapboxStore.showMapbox, () => {
|
|
1566
|
+
xt(P.mapboxStore.showMapbox);
|
|
1567
|
+
}), Z(() => b.moveToBooths, () => {
|
|
1568
|
+
if (!b.moveToBooths || !P.mapboxStore.showMapbox) return;
|
|
1569
|
+
const o = b.moveToBooths.filter((n) => n.rect).map((n) => n.rect), a = Lt.fromMultiple(o);
|
|
1570
|
+
o.length && at(a), b.moveToBooths = null;
|
|
1571
|
+
}), Z(() => b.moveToRect, () => {
|
|
1572
|
+
!b.moveToRect || !P.mapboxStore.showMapbox || (at(b.moveToRect, 15), b.moveToRect = null);
|
|
1573
|
+
}), Z(() => b.moveToLocation, () => {
|
|
1574
|
+
!b.moveToLocation || !P.mapboxStore.showMapbox || Pe();
|
|
1575
|
+
}), Z(() => b.centerMap, () => {
|
|
1576
|
+
!b.centerMap || !P.mapboxStore.showMapbox || (at(Lt.fromMultiple(At.booths.map((o) => o.rect)), 15), b.centerMap = !1);
|
|
1577
|
+
}), Z(() => P.routeStore.routeLines, () => i.updateRouteLines(P.routeStore)), Z(() => s.actualCurrentPosition, () => {
|
|
1578
|
+
var o, a, n;
|
|
1579
|
+
return i.setMarker("cp", (o = s.actualCurrentPosition) == null ? void 0 : o.x, (a = s.actualCurrentPosition) == null ? void 0 : a.y, (n = s.actualCurrentPosition) == null ? void 0 : n.z);
|
|
1580
|
+
}), ge(() => /* @__PURE__ */ gt.jsx("div", { style: s.style, className: bt("map-container", {
|
|
1581
|
+
hidden: !P.mapboxStore.showMapbox
|
|
1582
|
+
}), children: /* @__PURE__ */ gt.jsx("div", { ref: e, className: bt("map-wrapper", "mapboxgl-map") }) }));
|
|
1583
|
+
}
|
|
1584
|
+
export {
|
|
1585
|
+
fs as default
|
|
1586
|
+
};
|