From 99d019717636154ad1cbf6960ba2d721b7c6f81d Mon Sep 17 00:00:00 2001 From: Anthony Thompson Date: Tue, 3 Sep 2024 11:37:04 -0600 Subject: [PATCH] Manually update docs/examples --- .gitignore | 1 + assets/navigation.js | 2 +- assets/search.js | 2 +- classes/API.html | 34 +- ...d indicates the current floor (failed).png | Bin 0 -> 216572 bytes ...I that allows changing floors (failed).png | Bin 0 -> 211188 bytes ...ould work for all label modes (failed).png | Bin 0 -> 264551 bytes ...nd select a tag when clicking (failed).png | Bin 0 -> 178781 bytes dist/files/placemarks/aed.svg | 1 + dist/files/placemarks/amusement_park.svg | 1 + dist/files/placemarks/atm.svg | 1 + dist/files/placemarks/attraction.svg | 1 + dist/files/placemarks/baggage.svg | 1 + dist/files/placemarks/baggage_carts.svg | 1 + dist/files/placemarks/bank.svg | 1 + dist/files/placemarks/bar.svg | 1 + dist/files/placemarks/bike.svg | 3 + dist/files/placemarks/bus.svg | 1 + dist/files/placemarks/cafe.svg | 1 + dist/files/placemarks/cafeteria.svg | 1 + dist/files/placemarks/cashier.svg | 1 + dist/files/placemarks/changing_room.svg | 1 + dist/files/placemarks/changing_station.svg | 1 + dist/files/placemarks/charging_station.svg | 1 + dist/files/placemarks/clinic.svg | 1 + dist/files/placemarks/club.svg | 1 + dist/files/placemarks/coat_check.svg | 1 + dist/files/placemarks/conference_room.svg | 1 + dist/files/placemarks/currency_exchange.svg | 1 + dist/files/placemarks/customer_service.svg | 1 + dist/files/placemarks/desk.svg | 1 + dist/files/placemarks/device_charging.svg | 1 + dist/files/placemarks/elevator.svg | 1 + dist/files/placemarks/emergency_dept.svg | 1 + dist/files/placemarks/escalator.svg | 1 + dist/files/placemarks/exclusion_area.svg | 1 + dist/files/placemarks/exhibit.svg | 1 + dist/files/placemarks/exit.svg | 1 + dist/files/placemarks/fire_extinguisher.svg | 3 + dist/files/placemarks/first_aid.svg | 1 + dist/files/placemarks/fitness_center.svg | 1 + dist/files/placemarks/fountain.svg | 1 + dist/files/placemarks/gallery.svg | 1 + dist/files/placemarks/gaming.svg | 1 + dist/files/placemarks/garden.svg | 1 + dist/files/placemarks/gate.svg | 1 + dist/files/placemarks/generic.svg | 1 + dist/files/placemarks/global_entry_office.svg | 1 + dist/files/placemarks/handicap.svg | 1 + dist/files/placemarks/information.svg | 1 + dist/files/placemarks/kiosk.svg | 1 + dist/files/placemarks/lab.svg | 1 + dist/files/placemarks/laptop_lounge.svg | 1 + dist/files/placemarks/lost_found.svg | 1 + dist/files/placemarks/lounge.svg | 1 + dist/files/placemarks/mailbox.svg | 1 + dist/files/placemarks/museum.svg | 1 + dist/files/placemarks/nursing_station.svg | 1 + dist/files/placemarks/operating_room.svg | 1 + dist/files/placemarks/outdoor_area.svg | 1 + dist/files/placemarks/paging_phone.svg | 1 + dist/files/placemarks/parking.svg | 1 + dist/files/placemarks/pet_relief.svg | 1 + dist/files/placemarks/pharmacy.svg | 1 + dist/files/placemarks/phone.svg | 1 + dist/files/placemarks/play_area.svg | 1 + dist/files/placemarks/printer.svg | 1 + dist/files/placemarks/registration.svg | 1 + dist/files/placemarks/rental_cars.svg | 1 + dist/files/placemarks/restaurant.svg | 1 + dist/files/placemarks/restroom.svg | 1 + dist/files/placemarks/restroom_ada.svg | 1 + dist/files/placemarks/restroom_family.svg | 1 + dist/files/placemarks/restroom_men.svg | 1 + dist/files/placemarks/restroom_men_ada.svg | 1 + dist/files/placemarks/restroom_women.svg | 1 + dist/files/placemarks/restroom_women_ada.svg | 1 + dist/files/placemarks/rewards.svg | 1 + dist/files/placemarks/security.svg | 1 + dist/files/placemarks/security_checkpoint.svg | 1 + dist/files/placemarks/shoe_shine.svg | 1 + dist/files/placemarks/shop.svg | 1 + dist/files/placemarks/spa.svg | 1 + dist/files/placemarks/stadium.svg | 1 + dist/files/placemarks/stairs.svg | 1 + dist/files/placemarks/swimming_pool.svg | 1 + dist/files/placemarks/taxi.svg | 1 + dist/files/placemarks/theater.svg | 1 + dist/files/placemarks/ticketing.svg | 1 + dist/files/placemarks/tours.svg | 1 + dist/files/placemarks/train.svg | 1 + dist/files/placemarks/training.svg | 1 + dist/files/placemarks/valet.svg | 1 + dist/files/placemarks/vending_machines.svg | 1 + dist/files/placemarks/water_fountain.svg | 1 + dist/files/placemarks/wedding.svg | 1 + dist/files/tags/generic.png | Bin 0 -> 4219 bytes dist/meridian-sdk.js | 2 + dist/meridian-sdk.js.LICENSE.txt | 37 + dist/src/AnnotationLayer.d.ts | 8 + dist/src/AnnotationPoint.d.ts | 7 + dist/src/AssetListOverlay.d.ts | 36 + dist/src/DetailsOverlay.d.ts | 10 + dist/src/ErrorOverlay.d.ts | 8 + dist/src/FloorAndSearchControls.d.ts | 10 + dist/src/FloorLabel.d.ts | 7 + dist/src/FloorOverlay.d.ts | 23 + dist/src/IconClose.d.ts | 3 + dist/src/IconSpinner.d.ts | 3 + dist/src/LabelList.d.ts | 8 + dist/src/LoadingSpinner.d.ts | 3 + dist/src/MapComponent.d.ts | 136 ++ dist/src/Overlay.d.ts | 7 + dist/src/OverlayCircle.d.ts | 7 + dist/src/OverlayImage.d.ts | 7 + dist/src/OverlayLayer.d.ts | 8 + dist/src/OverlayMarker.d.ts | 7 + dist/src/OverlayPath.d.ts | 7 + dist/src/OverlayPolygon.d.ts | 7 + dist/src/OverlayPolyline.d.ts | 7 + dist/src/OverlaySearchBar.d.ts | 12 + dist/src/OverlayUse.d.ts | 7 + dist/src/Placemark.d.ts | 13 + dist/src/PlacemarkLayer.d.ts | 33 + dist/src/Tag.d.ts | 11 + dist/src/TagLayer.d.ts | 45 + dist/src/Translations.d.ts | 228 +++ dist/src/ZoomControls.d.ts | 7 + dist/src/analytics.d.ts | 14 + dist/src/style.d.ts | 52 + dist/src/util.d.ts | 23 + dist/src/web-sdk.d.ts | 915 +++++++++++ dist/web-sdk.js | 2 + dist/web-sdk.js.LICENSE.txt | 22 + docs/.nojekyll | 1 + docs/assets/highlight.css | 141 ++ docs/assets/icons.js | 15 + docs/assets/icons.svg | 1 + docs/assets/main.js | 59 + docs/assets/navigation.js | 1 + docs/assets/search.js | 1 + docs/assets/style.css | 1412 +++++++++++++++++ docs/classes/API.html | 73 + docs/examples/advanced-styling/index.html | 115 ++ docs/examples/annotation-kiosk/index.html | 78 + docs/examples/annotation-point/index.html | 118 ++ docs/examples/api-as-option/index.html | 48 + docs/examples/basic/index.html | 68 + docs/examples/center-map/index.html | 106 ++ docs/examples/container-styling/index.html | 49 + .../cypress/annotation-point/index.html | 122 ++ docs/examples/cypress/basic/index.html | 39 + docs/examples/cypress/control-tags/index.html | 42 + .../examples/cypress/disable-click/index.html | 42 + docs/examples/cypress/filter-by-id/index.html | 47 + .../cypress/filter-by-name/index.html | 46 + .../cypress/filter-by-tag-label/index.html | 46 + .../examples/cypress/filter-update/index.html | 42 + .../cypress/hidden-placemarks/index.html | 40 + .../cypress/lat-lng-to-map-point/index.html | 115 ++ .../cypress/load-placemarks/index.html | 40 + docs/examples/cypress/load-tags/index.html | 40 + .../cypress/map-point-lat-lng/index.html | 78 + docs/examples/cypress/polygon/index.html | 57 + docs/examples/cypress/polyline/index.html | 53 + docs/examples/cypress/tag-search/index.html | 39 + .../examples/cypress/utils/mock-all-assets.js | 204 +++ docs/examples/cypress/utils/mock-api.js | 128 ++ .../cypress/utils/mock-floor-assets.js | 3 + docs/examples/cypress/utils/mock-maps.js | 75 + .../examples/cypress/utils/mock-placemarks.js | 1390 ++++++++++++++++ docs/examples/cypress/utils/mock-svg.js | 40 + docs/examples/dark-theme/index.html | 104 ++ .../arrow-left-hard.png | Bin 0 -> 1453 bytes .../arrow-left-soft.png | Bin 0 -> 1557 bytes .../arrow-left.png | Bin 0 -> 1532 bytes .../arrow-right-hard.png | Bin 0 -> 1463 bytes .../arrow-right-soft.png | Bin 0 -> 1520 bytes .../arrow-right.png | Bin 0 -> 1509 bytes .../arrow-straight.png | Bin 0 -> 1064 bytes .../directions-arrived.png | Bin 0 -> 1702 bytes .../directions-overview-multifloor/index.html | 707 +++++++++ .../directions-arrived.png | Bin 0 -> 1702 bytes docs/examples/directions-overview/index.html | 325 ++++ docs/examples/floor-control/index.html | 64 + docs/examples/full-page/index.html | 59 + docs/examples/index.html | 318 ++++ docs/examples/lat-lng-to-map-point/index.html | 252 +++ docs/examples/load-tags/index.html | 69 + docs/examples/location-viewer/index.html | 141 ++ docs/examples/map-point-lat-lng/index.html | 166 ++ .../marker-click-prevent-default/index.html | 57 + .../marker-click-unique-behavior/index.html | 83 + .../placemark.svg | 1 + .../marker-click-unique-behavior/style.css | 62 + docs/examples/marker-click/index.html | 61 + docs/examples/max-zoom/index.html | 73 + docs/examples/meridian-sdk.js | 2 + docs/examples/min-zoom/index.html | 73 + docs/examples/openStream/index.html | 72 + docs/examples/openStreamLocation/index.html | 69 + docs/examples/openStreamTag/index.html | 66 + docs/examples/openStreamTagLabel/index.html | 66 + docs/examples/openStreamZone/index.html | 66 + docs/examples/option-toggles/index.html | 320 ++++ docs/examples/option-toggles/style.css | 78 + docs/examples/overlay-area/index.html | 73 + .../overlay-path-image-circle/car.png | Bin 0 -> 1109 bytes .../overlay-path-image-circle/index.html | 97 ++ docs/examples/overlay-polygon/index.html | 120 ++ docs/examples/overlay-polyline/index.html | 76 + .../placemark-customization/heart.png | Bin 0 -> 208 bytes .../placemark-customization/index.html | 140 ++ .../placemark-label-zoom-level/index.html | 58 + docs/examples/restricted-pan-zoom/index.html | 177 +++ docs/examples/search-control/index.html | 63 + docs/examples/shared.css | 197 +++ docs/examples/shared.js | 76 + docs/examples/tag-customization/index.html | 144 ++ docs/examples/tag-label/index.html | 138 ++ docs/examples/tag-labels/index.html | 145 ++ docs/examples/tag-labels/style.css | 64 + docs/examples/tag-name/index.html | 146 ++ docs/examples/zoom-to-default/index.html | 106 ++ docs/examples/zoom-to-point/index.html | 106 ++ docs/functions/createAPI.html | 3 + docs/functions/createMap.html | 6 + docs/functions/init.html | 6 + docs/functions/latLngToMapPoint.html | 5 + docs/functions/mapPointToLatLng.html | 5 + docs/functions/placemarkIconURL.html | 4 + docs/functions/pointsFromArea.html | 2 + docs/functions/restrictedPanZoom.html | 9 + docs/index.html | 51 + docs/interfaces/APIOptions.html | 7 + docs/interfaces/CreateMapOptions.html | 70 + .../CreateMapPlacemarksOptions.html | 18 + docs/interfaces/CreateMapTagsOptions.html | 10 + docs/interfaces/CustomAnnotationPoint.html | 13 + docs/interfaces/CustomOverlayCircle.html | 29 + docs/interfaces/CustomOverlayImage.html | 21 + docs/interfaces/CustomOverlayMarker.html | 27 + docs/interfaces/CustomOverlayPath.html | 25 + docs/interfaces/CustomOverlayPolygon.html | 26 + docs/interfaces/CustomOverlayPolyline.html | 24 + docs/interfaces/CustomOverlayUse.html | 26 + docs/interfaces/FloorData.html | 4 + docs/interfaces/LocationData.html | 4 + docs/interfaces/MeridianEvent.html | 4 + docs/interfaces/MeridianMap.html | 19 + docs/interfaces/OpenStreamOptions.html | 22 + docs/interfaces/PlacemarkData.html | 4 + docs/interfaces/Stream.html | 5 + docs/interfaces/TagData.html | 4 + docs/interfaces/getDirectionsOptions.html | 12 + docs/interfaces/placemarkSearchOptions.html | 12 + docs/modules.html | 36 + docs/types/CustomAnnotation.html | 2 + docs/types/CustomOverlay.html | 2 + docs/types/EnvOptions.html | 2 + docs/variables/version.html | 5 + functions/createAPI.html | 2 +- functions/createMap.html | 2 +- functions/init.html | 2 +- functions/latLngToMapPoint.html | 2 +- functions/mapPointToLatLng.html | 2 +- functions/placemarkIconURL.html | 2 +- functions/pointsFromArea.html | 2 +- functions/restrictedPanZoom.html | 2 +- gcs-files/1.22.7/files/placemarks/aed.svg | 1 + .../files/placemarks/amusement_park.svg | 1 + gcs-files/1.22.7/files/placemarks/atm.svg | 1 + .../1.22.7/files/placemarks/attraction.svg | 1 + gcs-files/1.22.7/files/placemarks/baggage.svg | 1 + .../1.22.7/files/placemarks/baggage_carts.svg | 1 + gcs-files/1.22.7/files/placemarks/bank.svg | 1 + gcs-files/1.22.7/files/placemarks/bar.svg | 1 + gcs-files/1.22.7/files/placemarks/bike.svg | 3 + gcs-files/1.22.7/files/placemarks/bus.svg | 1 + gcs-files/1.22.7/files/placemarks/cafe.svg | 1 + .../1.22.7/files/placemarks/cafeteria.svg | 1 + gcs-files/1.22.7/files/placemarks/cashier.svg | 1 + .../1.22.7/files/placemarks/changing_room.svg | 1 + .../files/placemarks/changing_station.svg | 1 + .../files/placemarks/charging_station.svg | 1 + gcs-files/1.22.7/files/placemarks/clinic.svg | 1 + gcs-files/1.22.7/files/placemarks/club.svg | 1 + .../1.22.7/files/placemarks/coat_check.svg | 1 + .../files/placemarks/conference_room.svg | 1 + .../files/placemarks/currency_exchange.svg | 1 + .../files/placemarks/customer_service.svg | 1 + gcs-files/1.22.7/files/placemarks/desk.svg | 1 + .../files/placemarks/device_charging.svg | 1 + .../1.22.7/files/placemarks/elevator.svg | 1 + .../files/placemarks/emergency_dept.svg | 1 + .../1.22.7/files/placemarks/escalator.svg | 1 + .../files/placemarks/exclusion_area.svg | 1 + gcs-files/1.22.7/files/placemarks/exhibit.svg | 1 + gcs-files/1.22.7/files/placemarks/exit.svg | 1 + .../files/placemarks/fire_extinguisher.svg | 3 + .../1.22.7/files/placemarks/first_aid.svg | 1 + .../files/placemarks/fitness_center.svg | 1 + .../1.22.7/files/placemarks/fountain.svg | 1 + gcs-files/1.22.7/files/placemarks/gallery.svg | 1 + gcs-files/1.22.7/files/placemarks/gaming.svg | 1 + gcs-files/1.22.7/files/placemarks/garden.svg | 1 + gcs-files/1.22.7/files/placemarks/gate.svg | 1 + gcs-files/1.22.7/files/placemarks/generic.svg | 1 + .../files/placemarks/global_entry_office.svg | 1 + .../1.22.7/files/placemarks/handicap.svg | 1 + .../1.22.7/files/placemarks/information.svg | 1 + gcs-files/1.22.7/files/placemarks/kiosk.svg | 1 + gcs-files/1.22.7/files/placemarks/lab.svg | 1 + .../1.22.7/files/placemarks/laptop_lounge.svg | 1 + .../1.22.7/files/placemarks/lost_found.svg | 1 + gcs-files/1.22.7/files/placemarks/lounge.svg | 1 + gcs-files/1.22.7/files/placemarks/mailbox.svg | 1 + gcs-files/1.22.7/files/placemarks/museum.svg | 1 + .../files/placemarks/nursing_station.svg | 1 + .../files/placemarks/operating_room.svg | 1 + .../1.22.7/files/placemarks/outdoor_area.svg | 1 + .../1.22.7/files/placemarks/paging_phone.svg | 1 + gcs-files/1.22.7/files/placemarks/parking.svg | 1 + .../1.22.7/files/placemarks/pet_relief.svg | 1 + .../1.22.7/files/placemarks/pharmacy.svg | 1 + gcs-files/1.22.7/files/placemarks/phone.svg | 1 + .../1.22.7/files/placemarks/play_area.svg | 1 + gcs-files/1.22.7/files/placemarks/printer.svg | 1 + .../1.22.7/files/placemarks/registration.svg | 1 + .../1.22.7/files/placemarks/rental_cars.svg | 1 + .../1.22.7/files/placemarks/restaurant.svg | 1 + .../1.22.7/files/placemarks/restroom.svg | 1 + .../1.22.7/files/placemarks/restroom_ada.svg | 1 + .../files/placemarks/restroom_family.svg | 1 + .../1.22.7/files/placemarks/restroom_men.svg | 1 + .../files/placemarks/restroom_men_ada.svg | 1 + .../files/placemarks/restroom_women.svg | 1 + .../files/placemarks/restroom_women_ada.svg | 1 + gcs-files/1.22.7/files/placemarks/rewards.svg | 1 + .../1.22.7/files/placemarks/security.svg | 1 + .../files/placemarks/security_checkpoint.svg | 1 + .../1.22.7/files/placemarks/shoe_shine.svg | 1 + gcs-files/1.22.7/files/placemarks/shop.svg | 1 + gcs-files/1.22.7/files/placemarks/spa.svg | 1 + gcs-files/1.22.7/files/placemarks/stadium.svg | 1 + gcs-files/1.22.7/files/placemarks/stairs.svg | 1 + .../1.22.7/files/placemarks/swimming_pool.svg | 1 + gcs-files/1.22.7/files/placemarks/taxi.svg | 1 + gcs-files/1.22.7/files/placemarks/theater.svg | 1 + .../1.22.7/files/placemarks/ticketing.svg | 1 + gcs-files/1.22.7/files/placemarks/tours.svg | 1 + gcs-files/1.22.7/files/placemarks/train.svg | 1 + .../1.22.7/files/placemarks/training.svg | 1 + gcs-files/1.22.7/files/placemarks/valet.svg | 1 + .../files/placemarks/vending_machines.svg | 1 + .../files/placemarks/water_fountain.svg | 1 + gcs-files/1.22.7/files/placemarks/wedding.svg | 1 + gcs-files/1.22.7/files/tags/generic.png | Bin 0 -> 4219 bytes gcs-files/1.22.7/meridian-sdk.js | 2 + gcs-files/1.22.7/meridian-sdk.js.LICENSE.txt | 37 + gcs-files/1.22.7/src/AnnotationLayer.d.ts | 8 + gcs-files/1.22.7/src/AnnotationPoint.d.ts | 7 + gcs-files/1.22.7/src/AssetListOverlay.d.ts | 36 + gcs-files/1.22.7/src/DetailsOverlay.d.ts | 10 + gcs-files/1.22.7/src/ErrorOverlay.d.ts | 8 + .../1.22.7/src/FloorAndSearchControls.d.ts | 10 + gcs-files/1.22.7/src/FloorLabel.d.ts | 7 + gcs-files/1.22.7/src/FloorOverlay.d.ts | 23 + gcs-files/1.22.7/src/IconClose.d.ts | 3 + gcs-files/1.22.7/src/IconSpinner.d.ts | 3 + gcs-files/1.22.7/src/LabelList.d.ts | 8 + gcs-files/1.22.7/src/LoadingSpinner.d.ts | 3 + gcs-files/1.22.7/src/MapComponent.d.ts | 136 ++ gcs-files/1.22.7/src/Overlay.d.ts | 7 + gcs-files/1.22.7/src/OverlayCircle.d.ts | 7 + gcs-files/1.22.7/src/OverlayImage.d.ts | 7 + gcs-files/1.22.7/src/OverlayLayer.d.ts | 8 + gcs-files/1.22.7/src/OverlayMarker.d.ts | 7 + gcs-files/1.22.7/src/OverlayPath.d.ts | 7 + gcs-files/1.22.7/src/OverlayPolygon.d.ts | 7 + gcs-files/1.22.7/src/OverlayPolyline.d.ts | 7 + gcs-files/1.22.7/src/OverlaySearchBar.d.ts | 12 + gcs-files/1.22.7/src/OverlayUse.d.ts | 7 + gcs-files/1.22.7/src/Placemark.d.ts | 13 + gcs-files/1.22.7/src/PlacemarkLayer.d.ts | 33 + gcs-files/1.22.7/src/Tag.d.ts | 11 + gcs-files/1.22.7/src/TagLayer.d.ts | 45 + gcs-files/1.22.7/src/Translations.d.ts | 228 +++ gcs-files/1.22.7/src/ZoomControls.d.ts | 7 + gcs-files/1.22.7/src/analytics.d.ts | 14 + gcs-files/1.22.7/src/style.d.ts | 52 + gcs-files/1.22.7/src/util.d.ts | 23 + gcs-files/1.22.7/src/web-sdk.d.ts | 915 +++++++++++ gcs-files/1.22.7/web-sdk.js | 2 + gcs-files/1.22.7/web-sdk.js.LICENSE.txt | 22 + interfaces/APIOptions.html | 4 +- interfaces/CreateMapOptions.html | 54 +- interfaces/CreateMapPlacemarksOptions.html | 12 +- interfaces/CreateMapTagsOptions.html | 10 +- interfaces/CustomAnnotationPoint.html | 6 +- interfaces/CustomOverlayCircle.html | 8 +- interfaces/CustomOverlayImage.html | 8 +- interfaces/CustomOverlayMarker.html | 6 +- interfaces/CustomOverlayPath.html | 6 +- interfaces/CustomOverlayPolygon.html | 8 +- interfaces/CustomOverlayPolyline.html | 6 +- interfaces/CustomOverlayUse.html | 6 +- interfaces/FloorData.html | 4 +- interfaces/LocationData.html | 4 +- interfaces/MeridianEvent.html | 4 +- interfaces/MeridianMap.html | 14 +- interfaces/OpenStreamOptions.html | 20 +- interfaces/PlacemarkData.html | 4 +- interfaces/Stream.html | 4 +- interfaces/TagData.html | 4 +- interfaces/getDirectionsOptions.html | 12 +- interfaces/placemarkSearchOptions.html | 10 +- types/CustomAnnotation.html | 2 +- types/CustomOverlay.html | 2 +- types/EnvOptions.html | 2 +- variables/version.html | 2 +- 421 files changed, 14625 insertions(+), 138 deletions(-) create mode 100644 .gitignore create mode 100644 cypress/screenshots/basic.cy.ts/Basic -- should have floor a selection UI that provides filtering and indicates the current floor (failed).png create mode 100644 cypress/screenshots/basic.cy.ts/Basic -- should have floor selection UI that allows changing floors (failed).png create mode 100644 cypress/screenshots/placemark-label-mode.cy.ts/Placemark Label Mode -- should work for all label modes (failed).png create mode 100644 cypress/screenshots/tag-search.cy.ts/Tag Search -- should filter the tag list when searching, and select a tag when clicking (failed).png create mode 100644 dist/files/placemarks/aed.svg create mode 100644 dist/files/placemarks/amusement_park.svg create mode 100644 dist/files/placemarks/atm.svg create mode 100644 dist/files/placemarks/attraction.svg create mode 100644 dist/files/placemarks/baggage.svg create mode 100644 dist/files/placemarks/baggage_carts.svg create mode 100644 dist/files/placemarks/bank.svg create mode 100644 dist/files/placemarks/bar.svg create mode 100644 dist/files/placemarks/bike.svg create mode 100644 dist/files/placemarks/bus.svg create mode 100644 dist/files/placemarks/cafe.svg create mode 100644 dist/files/placemarks/cafeteria.svg create mode 100644 dist/files/placemarks/cashier.svg create mode 100644 dist/files/placemarks/changing_room.svg create mode 100644 dist/files/placemarks/changing_station.svg create mode 100644 dist/files/placemarks/charging_station.svg create mode 100644 dist/files/placemarks/clinic.svg create mode 100644 dist/files/placemarks/club.svg create mode 100644 dist/files/placemarks/coat_check.svg create mode 100644 dist/files/placemarks/conference_room.svg create mode 100644 dist/files/placemarks/currency_exchange.svg create mode 100644 dist/files/placemarks/customer_service.svg create mode 100644 dist/files/placemarks/desk.svg create mode 100644 dist/files/placemarks/device_charging.svg create mode 100644 dist/files/placemarks/elevator.svg create mode 100644 dist/files/placemarks/emergency_dept.svg create mode 100644 dist/files/placemarks/escalator.svg create mode 100644 dist/files/placemarks/exclusion_area.svg create mode 100644 dist/files/placemarks/exhibit.svg create mode 100644 dist/files/placemarks/exit.svg create mode 100644 dist/files/placemarks/fire_extinguisher.svg create mode 100644 dist/files/placemarks/first_aid.svg create mode 100644 dist/files/placemarks/fitness_center.svg create mode 100644 dist/files/placemarks/fountain.svg create mode 100644 dist/files/placemarks/gallery.svg create mode 100644 dist/files/placemarks/gaming.svg create mode 100644 dist/files/placemarks/garden.svg create mode 100644 dist/files/placemarks/gate.svg create mode 100644 dist/files/placemarks/generic.svg create mode 100644 dist/files/placemarks/global_entry_office.svg create mode 100644 dist/files/placemarks/handicap.svg create mode 100644 dist/files/placemarks/information.svg create mode 100644 dist/files/placemarks/kiosk.svg create mode 100644 dist/files/placemarks/lab.svg create mode 100644 dist/files/placemarks/laptop_lounge.svg create mode 100644 dist/files/placemarks/lost_found.svg create mode 100644 dist/files/placemarks/lounge.svg create mode 100644 dist/files/placemarks/mailbox.svg create mode 100644 dist/files/placemarks/museum.svg create mode 100644 dist/files/placemarks/nursing_station.svg create mode 100644 dist/files/placemarks/operating_room.svg create mode 100644 dist/files/placemarks/outdoor_area.svg create mode 100644 dist/files/placemarks/paging_phone.svg create mode 100644 dist/files/placemarks/parking.svg create mode 100644 dist/files/placemarks/pet_relief.svg create mode 100644 dist/files/placemarks/pharmacy.svg create mode 100644 dist/files/placemarks/phone.svg create mode 100644 dist/files/placemarks/play_area.svg create mode 100644 dist/files/placemarks/printer.svg create mode 100644 dist/files/placemarks/registration.svg create mode 100644 dist/files/placemarks/rental_cars.svg create mode 100644 dist/files/placemarks/restaurant.svg create mode 100644 dist/files/placemarks/restroom.svg create mode 100644 dist/files/placemarks/restroom_ada.svg create mode 100644 dist/files/placemarks/restroom_family.svg create mode 100644 dist/files/placemarks/restroom_men.svg create mode 100644 dist/files/placemarks/restroom_men_ada.svg create mode 100644 dist/files/placemarks/restroom_women.svg create mode 100644 dist/files/placemarks/restroom_women_ada.svg create mode 100644 dist/files/placemarks/rewards.svg create mode 100644 dist/files/placemarks/security.svg create mode 100644 dist/files/placemarks/security_checkpoint.svg create mode 100644 dist/files/placemarks/shoe_shine.svg create mode 100644 dist/files/placemarks/shop.svg create mode 100644 dist/files/placemarks/spa.svg create mode 100644 dist/files/placemarks/stadium.svg create mode 100644 dist/files/placemarks/stairs.svg create mode 100644 dist/files/placemarks/swimming_pool.svg create mode 100644 dist/files/placemarks/taxi.svg create mode 100644 dist/files/placemarks/theater.svg create mode 100644 dist/files/placemarks/ticketing.svg create mode 100644 dist/files/placemarks/tours.svg create mode 100644 dist/files/placemarks/train.svg create mode 100644 dist/files/placemarks/training.svg create mode 100644 dist/files/placemarks/valet.svg create mode 100644 dist/files/placemarks/vending_machines.svg create mode 100644 dist/files/placemarks/water_fountain.svg create mode 100644 dist/files/placemarks/wedding.svg create mode 100644 dist/files/tags/generic.png create mode 100644 dist/meridian-sdk.js create mode 100644 dist/meridian-sdk.js.LICENSE.txt create mode 100644 dist/src/AnnotationLayer.d.ts create mode 100644 dist/src/AnnotationPoint.d.ts create mode 100644 dist/src/AssetListOverlay.d.ts create mode 100644 dist/src/DetailsOverlay.d.ts create mode 100644 dist/src/ErrorOverlay.d.ts create mode 100644 dist/src/FloorAndSearchControls.d.ts create mode 100644 dist/src/FloorLabel.d.ts create mode 100644 dist/src/FloorOverlay.d.ts create mode 100644 dist/src/IconClose.d.ts create mode 100644 dist/src/IconSpinner.d.ts create mode 100644 dist/src/LabelList.d.ts create mode 100644 dist/src/LoadingSpinner.d.ts create mode 100644 dist/src/MapComponent.d.ts create mode 100644 dist/src/Overlay.d.ts create mode 100644 dist/src/OverlayCircle.d.ts create mode 100644 dist/src/OverlayImage.d.ts create mode 100644 dist/src/OverlayLayer.d.ts create mode 100644 dist/src/OverlayMarker.d.ts create mode 100644 dist/src/OverlayPath.d.ts create mode 100644 dist/src/OverlayPolygon.d.ts create mode 100644 dist/src/OverlayPolyline.d.ts create mode 100644 dist/src/OverlaySearchBar.d.ts create mode 100644 dist/src/OverlayUse.d.ts create mode 100644 dist/src/Placemark.d.ts create mode 100644 dist/src/PlacemarkLayer.d.ts create mode 100644 dist/src/Tag.d.ts create mode 100644 dist/src/TagLayer.d.ts create mode 100644 dist/src/Translations.d.ts create mode 100644 dist/src/ZoomControls.d.ts create mode 100644 dist/src/analytics.d.ts create mode 100644 dist/src/style.d.ts create mode 100644 dist/src/util.d.ts create mode 100644 dist/src/web-sdk.d.ts create mode 100644 dist/web-sdk.js create mode 100644 dist/web-sdk.js.LICENSE.txt create mode 100644 docs/.nojekyll create mode 100644 docs/assets/highlight.css create mode 100644 docs/assets/icons.js create mode 100644 docs/assets/icons.svg create mode 100644 docs/assets/main.js create mode 100644 docs/assets/navigation.js create mode 100644 docs/assets/search.js create mode 100644 docs/assets/style.css create mode 100644 docs/classes/API.html create mode 100644 docs/examples/advanced-styling/index.html create mode 100644 docs/examples/annotation-kiosk/index.html create mode 100644 docs/examples/annotation-point/index.html create mode 100644 docs/examples/api-as-option/index.html create mode 100644 docs/examples/basic/index.html create mode 100644 docs/examples/center-map/index.html create mode 100644 docs/examples/container-styling/index.html create mode 100644 docs/examples/cypress/annotation-point/index.html create mode 100644 docs/examples/cypress/basic/index.html create mode 100644 docs/examples/cypress/control-tags/index.html create mode 100644 docs/examples/cypress/disable-click/index.html create mode 100644 docs/examples/cypress/filter-by-id/index.html create mode 100644 docs/examples/cypress/filter-by-name/index.html create mode 100644 docs/examples/cypress/filter-by-tag-label/index.html create mode 100644 docs/examples/cypress/filter-update/index.html create mode 100644 docs/examples/cypress/hidden-placemarks/index.html create mode 100644 docs/examples/cypress/lat-lng-to-map-point/index.html create mode 100644 docs/examples/cypress/load-placemarks/index.html create mode 100644 docs/examples/cypress/load-tags/index.html create mode 100644 docs/examples/cypress/map-point-lat-lng/index.html create mode 100644 docs/examples/cypress/polygon/index.html create mode 100644 docs/examples/cypress/polyline/index.html create mode 100644 docs/examples/cypress/tag-search/index.html create mode 100644 docs/examples/cypress/utils/mock-all-assets.js create mode 100644 docs/examples/cypress/utils/mock-api.js create mode 100644 docs/examples/cypress/utils/mock-floor-assets.js create mode 100644 docs/examples/cypress/utils/mock-maps.js create mode 100644 docs/examples/cypress/utils/mock-placemarks.js create mode 100644 docs/examples/cypress/utils/mock-svg.js create mode 100644 docs/examples/dark-theme/index.html create mode 100644 docs/examples/directions-overview-multifloor/arrow-left-hard.png create mode 100644 docs/examples/directions-overview-multifloor/arrow-left-soft.png create mode 100644 docs/examples/directions-overview-multifloor/arrow-left.png create mode 100644 docs/examples/directions-overview-multifloor/arrow-right-hard.png create mode 100644 docs/examples/directions-overview-multifloor/arrow-right-soft.png create mode 100644 docs/examples/directions-overview-multifloor/arrow-right.png create mode 100644 docs/examples/directions-overview-multifloor/arrow-straight.png create mode 100644 docs/examples/directions-overview-multifloor/directions-arrived.png create mode 100644 docs/examples/directions-overview-multifloor/index.html create mode 100644 docs/examples/directions-overview/directions-arrived.png create mode 100644 docs/examples/directions-overview/index.html create mode 100644 docs/examples/floor-control/index.html create mode 100644 docs/examples/full-page/index.html create mode 100644 docs/examples/index.html create mode 100644 docs/examples/lat-lng-to-map-point/index.html create mode 100644 docs/examples/load-tags/index.html create mode 100644 docs/examples/location-viewer/index.html create mode 100644 docs/examples/map-point-lat-lng/index.html create mode 100644 docs/examples/marker-click-prevent-default/index.html create mode 100644 docs/examples/marker-click-unique-behavior/index.html create mode 100644 docs/examples/marker-click-unique-behavior/placemark.svg create mode 100644 docs/examples/marker-click-unique-behavior/style.css create mode 100644 docs/examples/marker-click/index.html create mode 100644 docs/examples/max-zoom/index.html create mode 100644 docs/examples/meridian-sdk.js create mode 100644 docs/examples/min-zoom/index.html create mode 100644 docs/examples/openStream/index.html create mode 100644 docs/examples/openStreamLocation/index.html create mode 100644 docs/examples/openStreamTag/index.html create mode 100644 docs/examples/openStreamTagLabel/index.html create mode 100644 docs/examples/openStreamZone/index.html create mode 100644 docs/examples/option-toggles/index.html create mode 100644 docs/examples/option-toggles/style.css create mode 100644 docs/examples/overlay-area/index.html create mode 100644 docs/examples/overlay-path-image-circle/car.png create mode 100644 docs/examples/overlay-path-image-circle/index.html create mode 100644 docs/examples/overlay-polygon/index.html create mode 100644 docs/examples/overlay-polyline/index.html create mode 100644 docs/examples/placemark-customization/heart.png create mode 100644 docs/examples/placemark-customization/index.html create mode 100644 docs/examples/placemark-label-zoom-level/index.html create mode 100644 docs/examples/restricted-pan-zoom/index.html create mode 100644 docs/examples/search-control/index.html create mode 100644 docs/examples/shared.css create mode 100644 docs/examples/shared.js create mode 100644 docs/examples/tag-customization/index.html create mode 100644 docs/examples/tag-label/index.html create mode 100644 docs/examples/tag-labels/index.html create mode 100644 docs/examples/tag-labels/style.css create mode 100644 docs/examples/tag-name/index.html create mode 100644 docs/examples/zoom-to-default/index.html create mode 100644 docs/examples/zoom-to-point/index.html create mode 100644 docs/functions/createAPI.html create mode 100644 docs/functions/createMap.html create mode 100644 docs/functions/init.html create mode 100644 docs/functions/latLngToMapPoint.html create mode 100644 docs/functions/mapPointToLatLng.html create mode 100644 docs/functions/placemarkIconURL.html create mode 100644 docs/functions/pointsFromArea.html create mode 100644 docs/functions/restrictedPanZoom.html create mode 100644 docs/index.html create mode 100644 docs/interfaces/APIOptions.html create mode 100644 docs/interfaces/CreateMapOptions.html create mode 100644 docs/interfaces/CreateMapPlacemarksOptions.html create mode 100644 docs/interfaces/CreateMapTagsOptions.html create mode 100644 docs/interfaces/CustomAnnotationPoint.html create mode 100644 docs/interfaces/CustomOverlayCircle.html create mode 100644 docs/interfaces/CustomOverlayImage.html create mode 100644 docs/interfaces/CustomOverlayMarker.html create mode 100644 docs/interfaces/CustomOverlayPath.html create mode 100644 docs/interfaces/CustomOverlayPolygon.html create mode 100644 docs/interfaces/CustomOverlayPolyline.html create mode 100644 docs/interfaces/CustomOverlayUse.html create mode 100644 docs/interfaces/FloorData.html create mode 100644 docs/interfaces/LocationData.html create mode 100644 docs/interfaces/MeridianEvent.html create mode 100644 docs/interfaces/MeridianMap.html create mode 100644 docs/interfaces/OpenStreamOptions.html create mode 100644 docs/interfaces/PlacemarkData.html create mode 100644 docs/interfaces/Stream.html create mode 100644 docs/interfaces/TagData.html create mode 100644 docs/interfaces/getDirectionsOptions.html create mode 100644 docs/interfaces/placemarkSearchOptions.html create mode 100644 docs/modules.html create mode 100644 docs/types/CustomAnnotation.html create mode 100644 docs/types/CustomOverlay.html create mode 100644 docs/types/EnvOptions.html create mode 100644 docs/variables/version.html create mode 100644 gcs-files/1.22.7/files/placemarks/aed.svg create mode 100644 gcs-files/1.22.7/files/placemarks/amusement_park.svg create mode 100644 gcs-files/1.22.7/files/placemarks/atm.svg create mode 100644 gcs-files/1.22.7/files/placemarks/attraction.svg create mode 100644 gcs-files/1.22.7/files/placemarks/baggage.svg create mode 100644 gcs-files/1.22.7/files/placemarks/baggage_carts.svg create mode 100644 gcs-files/1.22.7/files/placemarks/bank.svg create mode 100644 gcs-files/1.22.7/files/placemarks/bar.svg create mode 100644 gcs-files/1.22.7/files/placemarks/bike.svg create mode 100644 gcs-files/1.22.7/files/placemarks/bus.svg create mode 100644 gcs-files/1.22.7/files/placemarks/cafe.svg create mode 100644 gcs-files/1.22.7/files/placemarks/cafeteria.svg create mode 100644 gcs-files/1.22.7/files/placemarks/cashier.svg create mode 100644 gcs-files/1.22.7/files/placemarks/changing_room.svg create mode 100644 gcs-files/1.22.7/files/placemarks/changing_station.svg create mode 100644 gcs-files/1.22.7/files/placemarks/charging_station.svg create mode 100644 gcs-files/1.22.7/files/placemarks/clinic.svg create mode 100644 gcs-files/1.22.7/files/placemarks/club.svg create mode 100644 gcs-files/1.22.7/files/placemarks/coat_check.svg create mode 100644 gcs-files/1.22.7/files/placemarks/conference_room.svg create mode 100644 gcs-files/1.22.7/files/placemarks/currency_exchange.svg create mode 100644 gcs-files/1.22.7/files/placemarks/customer_service.svg create mode 100644 gcs-files/1.22.7/files/placemarks/desk.svg create mode 100644 gcs-files/1.22.7/files/placemarks/device_charging.svg create mode 100644 gcs-files/1.22.7/files/placemarks/elevator.svg create mode 100644 gcs-files/1.22.7/files/placemarks/emergency_dept.svg create mode 100644 gcs-files/1.22.7/files/placemarks/escalator.svg create mode 100644 gcs-files/1.22.7/files/placemarks/exclusion_area.svg create mode 100644 gcs-files/1.22.7/files/placemarks/exhibit.svg create mode 100644 gcs-files/1.22.7/files/placemarks/exit.svg create mode 100644 gcs-files/1.22.7/files/placemarks/fire_extinguisher.svg create mode 100644 gcs-files/1.22.7/files/placemarks/first_aid.svg create mode 100644 gcs-files/1.22.7/files/placemarks/fitness_center.svg create mode 100644 gcs-files/1.22.7/files/placemarks/fountain.svg create mode 100644 gcs-files/1.22.7/files/placemarks/gallery.svg create mode 100644 gcs-files/1.22.7/files/placemarks/gaming.svg create mode 100644 gcs-files/1.22.7/files/placemarks/garden.svg create mode 100644 gcs-files/1.22.7/files/placemarks/gate.svg create mode 100644 gcs-files/1.22.7/files/placemarks/generic.svg create mode 100644 gcs-files/1.22.7/files/placemarks/global_entry_office.svg create mode 100644 gcs-files/1.22.7/files/placemarks/handicap.svg create mode 100644 gcs-files/1.22.7/files/placemarks/information.svg create mode 100644 gcs-files/1.22.7/files/placemarks/kiosk.svg create mode 100644 gcs-files/1.22.7/files/placemarks/lab.svg create mode 100644 gcs-files/1.22.7/files/placemarks/laptop_lounge.svg create mode 100644 gcs-files/1.22.7/files/placemarks/lost_found.svg create mode 100644 gcs-files/1.22.7/files/placemarks/lounge.svg create mode 100644 gcs-files/1.22.7/files/placemarks/mailbox.svg create mode 100644 gcs-files/1.22.7/files/placemarks/museum.svg create mode 100644 gcs-files/1.22.7/files/placemarks/nursing_station.svg create mode 100644 gcs-files/1.22.7/files/placemarks/operating_room.svg create mode 100644 gcs-files/1.22.7/files/placemarks/outdoor_area.svg create mode 100644 gcs-files/1.22.7/files/placemarks/paging_phone.svg create mode 100644 gcs-files/1.22.7/files/placemarks/parking.svg create mode 100644 gcs-files/1.22.7/files/placemarks/pet_relief.svg create mode 100644 gcs-files/1.22.7/files/placemarks/pharmacy.svg create mode 100644 gcs-files/1.22.7/files/placemarks/phone.svg create mode 100644 gcs-files/1.22.7/files/placemarks/play_area.svg create mode 100644 gcs-files/1.22.7/files/placemarks/printer.svg create mode 100644 gcs-files/1.22.7/files/placemarks/registration.svg create mode 100644 gcs-files/1.22.7/files/placemarks/rental_cars.svg create mode 100644 gcs-files/1.22.7/files/placemarks/restaurant.svg create mode 100644 gcs-files/1.22.7/files/placemarks/restroom.svg create mode 100644 gcs-files/1.22.7/files/placemarks/restroom_ada.svg create mode 100644 gcs-files/1.22.7/files/placemarks/restroom_family.svg create mode 100644 gcs-files/1.22.7/files/placemarks/restroom_men.svg create mode 100644 gcs-files/1.22.7/files/placemarks/restroom_men_ada.svg create mode 100644 gcs-files/1.22.7/files/placemarks/restroom_women.svg create mode 100644 gcs-files/1.22.7/files/placemarks/restroom_women_ada.svg create mode 100644 gcs-files/1.22.7/files/placemarks/rewards.svg create mode 100644 gcs-files/1.22.7/files/placemarks/security.svg create mode 100644 gcs-files/1.22.7/files/placemarks/security_checkpoint.svg create mode 100644 gcs-files/1.22.7/files/placemarks/shoe_shine.svg create mode 100644 gcs-files/1.22.7/files/placemarks/shop.svg create mode 100644 gcs-files/1.22.7/files/placemarks/spa.svg create mode 100644 gcs-files/1.22.7/files/placemarks/stadium.svg create mode 100644 gcs-files/1.22.7/files/placemarks/stairs.svg create mode 100644 gcs-files/1.22.7/files/placemarks/swimming_pool.svg create mode 100644 gcs-files/1.22.7/files/placemarks/taxi.svg create mode 100644 gcs-files/1.22.7/files/placemarks/theater.svg create mode 100644 gcs-files/1.22.7/files/placemarks/ticketing.svg create mode 100644 gcs-files/1.22.7/files/placemarks/tours.svg create mode 100644 gcs-files/1.22.7/files/placemarks/train.svg create mode 100644 gcs-files/1.22.7/files/placemarks/training.svg create mode 100644 gcs-files/1.22.7/files/placemarks/valet.svg create mode 100644 gcs-files/1.22.7/files/placemarks/vending_machines.svg create mode 100644 gcs-files/1.22.7/files/placemarks/water_fountain.svg create mode 100644 gcs-files/1.22.7/files/placemarks/wedding.svg create mode 100644 gcs-files/1.22.7/files/tags/generic.png create mode 100644 gcs-files/1.22.7/meridian-sdk.js create mode 100644 gcs-files/1.22.7/meridian-sdk.js.LICENSE.txt create mode 100644 gcs-files/1.22.7/src/AnnotationLayer.d.ts create mode 100644 gcs-files/1.22.7/src/AnnotationPoint.d.ts create mode 100644 gcs-files/1.22.7/src/AssetListOverlay.d.ts create mode 100644 gcs-files/1.22.7/src/DetailsOverlay.d.ts create mode 100644 gcs-files/1.22.7/src/ErrorOverlay.d.ts create mode 100644 gcs-files/1.22.7/src/FloorAndSearchControls.d.ts create mode 100644 gcs-files/1.22.7/src/FloorLabel.d.ts create mode 100644 gcs-files/1.22.7/src/FloorOverlay.d.ts create mode 100644 gcs-files/1.22.7/src/IconClose.d.ts create mode 100644 gcs-files/1.22.7/src/IconSpinner.d.ts create mode 100644 gcs-files/1.22.7/src/LabelList.d.ts create mode 100644 gcs-files/1.22.7/src/LoadingSpinner.d.ts create mode 100644 gcs-files/1.22.7/src/MapComponent.d.ts create mode 100644 gcs-files/1.22.7/src/Overlay.d.ts create mode 100644 gcs-files/1.22.7/src/OverlayCircle.d.ts create mode 100644 gcs-files/1.22.7/src/OverlayImage.d.ts create mode 100644 gcs-files/1.22.7/src/OverlayLayer.d.ts create mode 100644 gcs-files/1.22.7/src/OverlayMarker.d.ts create mode 100644 gcs-files/1.22.7/src/OverlayPath.d.ts create mode 100644 gcs-files/1.22.7/src/OverlayPolygon.d.ts create mode 100644 gcs-files/1.22.7/src/OverlayPolyline.d.ts create mode 100644 gcs-files/1.22.7/src/OverlaySearchBar.d.ts create mode 100644 gcs-files/1.22.7/src/OverlayUse.d.ts create mode 100644 gcs-files/1.22.7/src/Placemark.d.ts create mode 100644 gcs-files/1.22.7/src/PlacemarkLayer.d.ts create mode 100644 gcs-files/1.22.7/src/Tag.d.ts create mode 100644 gcs-files/1.22.7/src/TagLayer.d.ts create mode 100644 gcs-files/1.22.7/src/Translations.d.ts create mode 100644 gcs-files/1.22.7/src/ZoomControls.d.ts create mode 100644 gcs-files/1.22.7/src/analytics.d.ts create mode 100644 gcs-files/1.22.7/src/style.d.ts create mode 100644 gcs-files/1.22.7/src/util.d.ts create mode 100644 gcs-files/1.22.7/src/web-sdk.d.ts create mode 100644 gcs-files/1.22.7/web-sdk.js create mode 100644 gcs-files/1.22.7/web-sdk.js.LICENSE.txt diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..3c3629e6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +node_modules diff --git a/assets/navigation.js b/assets/navigation.js index d86415bd..4bb7df80 100644 --- a/assets/navigation.js +++ b/assets/navigation.js @@ -1 +1 @@ -window.navigationData = "data:application/octet-stream;base64,H4sIAAAAAAAAA5XWTY/aMBAG4P/iMypduktbbmg/JCQioi5cWu1h6swGi8SObG9UVPW/V/lYiBNn4r0y7zzGTuz4119m8Y9lK7aON2zGCrBHtmI8A2PQzNfx5tPR5hmbsZOQCVvdLL79m3V7doUVSpprq5AW9Svwprstu8jibtlB7jWCxQgKiuqHgsA4A4456JMJogfxoEH2kIbxnSAJvxmr8rWUykIVjpWQ1i/7ktP0rkSdwfleaJ4hATu5YHaTQxqg1rFgNAJ9Qj2tNrlgNq60SbRKhZMqO6dKBqhN8ENwJmTA0r4ng+mDCVAPhgSfMqX0A1jwSpcqRWwVr1/jUaUboKAItUgEyMcSR3aOkwihIihIKIKCYnYFymerEXLqpBikKPJyWI0ul5OgqGZMr9GUqOY9pKP/oK1R7SnaB6GR1/OlFscXpODiffbPCJofKdof/cgZfWXtufCczD3r8/evN3eLse3ox9rilPQoy8FUG+ZamTJK1MaZVAlawO8MzbwtucKXbjOvP3fOZeL1TTaPbX4pusDydtbcONiKJVho5GAxYQPV2YV9dbAFl7cdQEhhfb3V70RbBnYr072qbgfud/hK9DMEl7eRvdrWTT6unyG4y4u74Uoefmx9XD9DcdWw5kmrfK0RvJiTICiNxmrBLSYxyJ9K5T5tEBqAL/8BjVb0Rp8KAAA=" \ No newline at end of file +window.navigationData = "data:application/octet-stream;base64,H4sIAAAAAAAAE5XWTY/aMBAG4P/iMypduktbbmg/JCQioi5cWu1h6swGi8SObG9UVPW/V/lYiBNn4r0y7zzGTuz4119m8Y9lK7aON2zGCrBHtmI8A2PQzNfx5tPR5hmbsZOQCVvdLL79m3V7doUVSpprq5AW9Svwprstu8jibtlB7jWCxQgKiuqHgsA4A4456JMJogfxoEH2kIbxnSAJvxmr8rWUykIVjpWQ1i/7ktP0rkSdwfleaJ4hATu5YHaTQxqg1rFgNAJ9Qj2tNrlgNq60SbRKhZMqO6dKBqhN8ENwJmTA0r4ng+mDCVAPhgSfMqX0A1jwSpcqRWwVr1/jUaUboKAItUgEyMcSR3aOkwihIihIKIKCYnYFymerEXLqpBikKPJyWI0ul5OgqGZMr9GUqOY9pKP/oK1R7SnaB6GR1/OlFscXpODiffbPCJofKdof/cgZfWXtufCczD3r8/evN3eLse3ox9rilPQoy8FUG+ZamTJK1MaZVAlawO8MzbwtucKXbjOvP3fOZeL1TTaPbX4pusDydtbcONiKJVho5GAxYQPV2YV9dbAFl7cdQEhhfb3V70RbBnYr072qbgfud/hK9DMEl7eRvdrWTT6unyG4y4u74Uoefmx9XD9DcdWw5kmrfK0RvJiTICiNxmrBLSYxyJ9K5T5tEBqAL/8BjVb0Rp8KAAA=" \ No newline at end of file diff --git a/assets/search.js b/assets/search.js index e5ac9011..526a6fae 100644 --- a/assets/search.js +++ b/assets/search.js @@ -1 +1 @@ -window.searchData = "data:application/octet-stream;base64,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"; \ No newline at end of file +window.searchData = "data:application/octet-stream;base64,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"; \ No newline at end of file diff --git a/classes/API.html b/classes/API.html index 2e1695b7..488505b0 100644 --- a/classes/API.html +++ b/classes/API.html @@ -4,7 +4,7 @@ to show data from multiple locations or organizations on a single page).

Example

// Basic usage
const api = new MeridianSDK.API({
token: "<TOKEN GOES HERE>"
});

// Multiple APIs at once
const apiOrg1 = new MeridianSDK.API({
token: "Insert Org 1 token here"
});
MeridianSDK.createMap(elementOrg1, {
api: apiOrg1,
locationID: "Insert Org 1 location ID here",
floorID: "Insert Org 1 floor ID here"
});

const apiOrg2 = new MeridianSDK.API({
token: "Insert Org 2 token here"
});
MeridianSDK.createMap(elementOrg2, {
api: apiOrg2,
locationID: "Insert Org 2 location ID here",
floorID: "Insert Org 2 floor ID here"
});
-

Constructors

Constructors

Properties

debouncedPlacemarkSearchBeta: ((options) => Promise<null | Record<string, any>[]>) = ...

[async] Returns an array of results or null when a request is cancelled +

Parameters

Returns API

Properties

debouncedPlacemarkSearchBeta: ((options) => Promise<null | Record<string, any>[]>) = ...

[async] Returns an array of results or null when a request is cancelled or debounced. Cancellation happens when a new request is made before the previous request completes. The Debounce wait time is 6ms and the function is invoked with the last arguments provided.

@@ -37,37 +37,37 @@ calls simultaneously, each will need a unique API instance like shown below.

// Search Widget One API Instance.
const apiInstance1 = new MeridianSDK.API({
token: "<TOKEN GOES HERE>"
});

// Search Widget Two API Instance
const apiInstance2 = new MeridianSDK.API({
token: "<TOKEN GOES HERE>"
});
-

Type declaration

    • (options): Promise<null | Record<string, any>[]>
    • Parameters

      Returns Promise<null | Record<string, any>[]>

environment: EnvOptions

Meridian environment ("production" or "eu"). Defaults to +

Type declaration

    • (options): Promise<null | Record<string, any>[]>
    • Parameters

      Returns Promise<null | Record<string, any>[]>

environment: EnvOptions

Meridian environment ("production" or "eu"). Defaults to "production".

-
language: undefined | "no" | "en" | "ar" | "ca" | "es" | "cs" | "de" | "fr" | "it" | "iw" | "ja" | "ko" | "nl" | "pt" | "ru" | "sv" | "uk" | "vi" | "zh-cn" | "zh-tw"

Language code that matches a supported language for this location. +

language: undefined | "no" | "en" | "ar" | "ca" | "es" | "cs" | "de" | "fr" | "it" | "iw" | "ja" | "ko" | "nl" | "pt" | "ru" | "sv" | "uk" | "vi" | "zh-cn" | "zh-tw"

Language code that matches a supported language for this location. Note: The LanguageCodes Type includes all possible language codes. See "Translations" in Meridian Editor to learn exactly what languages are supported for this location.

-
token: string

Meridian API token. Make sure to create a READ ONLY token for security. +

token: string

Meridian API token. Make sure to create a READ ONLY token for security. Otherwise anyone using your page could take your token and modify all of your Meridian data.

-

Accessors

  • get axios(): AxiosInstance
  • Returns AxiosInstance

    Deprecated

    Use the fetch methods instead

    -

Methods

  • [async] Returns the data of specified floor

    -

    Parameters

    • locationID: string
    • floorID: string

    Returns Promise<FloorData>

  • [async] Returns an array of all floors at the specified location

    -

    Parameters

    • locationID: string

    Returns Promise<LocationData[]>

  • [async] Returns an array of all placemarks on the specified location and +

Accessors

  • get axios(): AxiosInstance
  • Returns AxiosInstance

    Deprecated

    Use the fetch methods instead

    +

Methods

  • [async] Returns the data of specified floor

    +

    Parameters

    • locationID: string
    • floorID: string

    Returns Promise<FloorData>

  • [async] Returns an array of all floors at the specified location

    +

    Parameters

    • locationID: string

    Returns Promise<LocationData[]>

  • [async] Returns an array of all placemarks on the specified location and floor

    -

    Parameters

    • locationID: string
    • floorID: string

    Returns Promise<FloorData[]>

  • [async] Returns an array of all placemarks at the specified location

    -

    Parameters

    • locationID: string

    Returns Promise<FloorData[]>

  • [async] Returns an object URL for the given SVG URL

    +

    Parameters

    • locationID: string
    • floorID: string

    Returns Promise<FloorData[]>

  • [async] Returns an array of all placemarks at the specified location

    +

    Parameters

    • locationID: string

    Returns Promise<FloorData[]>

  • [async] Returns an object URL for the given SVG URL

    This object URL can be used as the src for an img tag.

    This method fetches the SVG URL using your API token, since img tags can't pass API tokens. The SVG URL can be obtained from the svg_url property on a floor. When you're finished using this URL, you should call URL.revokeObjectURL with the URL, so the browser can save memory by releasing the data.

    -

    Parameters

    • svgURL: string

    Returns Promise<string>

  • [async] Returns dynamicly updated data for a specific tag.

    -

    Parameters

    • mac: string

    Returns Promise<TagData>

  • [async] Returns an array of all tags on the specified location and floor

    -

    Parameters

    • locationID: string
    • floorID: string

    Returns Promise<TagData[]>

  • [async] Returns an array of all tags at the specified location

    -

    Parameters

    • locationID: string

    Returns Promise<TagData[]>

  • [async] Returns an Object with routes to the destination (endPlacemarkID)

    -

    Parameters

    Returns Promise<Record<string, any>>

  • Opens a tag stream for a given location and floor. onInitialTags is +

    Parameters

    • svgURL: string

    Returns Promise<string>

  • [async] Returns dynamicly updated data for a specific tag.

    +

    Parameters

    • mac: string

    Returns Promise<TagData>

  • [async] Returns an array of all tags on the specified location and floor

    +

    Parameters

    • locationID: string
    • floorID: string

    Returns Promise<TagData[]>

  • [async] Returns an array of all tags at the specified location

    +

    Parameters

    • locationID: string

    Returns Promise<TagData[]>

  • [async] Returns an Object with routes to the destination (endPlacemarkID)

    +

    Parameters

    Returns Promise<Record<string, any>>

  • Opens a tag stream for a given location and floor. onInitialTags is called with the full list of tags for that floor.

    Note: When resourceType is set to "ZONE", onTagUpdate is called when a tag/resource exits or enters the zone. Otherwise, onTagUpdate is called every time a tag/resource is updated.

    Parameters

    Returns Stream

    Example

    const api = new MeridianSDK.API({
    token: token,
    environment: "production"
    });

    const stream = api.openStream({
    locationID: locationID,
    floorID: floorID,
    onInitialTags: (tags) => {
    console.log("tags", tags);
    },
    onTagUpdate: (tag) => {
    console.log("update", tag);
    }
    });

    // Tag Zones

    const stream = api.openStream({
    locationID: locationID,
    floorID: floorID,
    resourceIDs: ["1218"],
    resourceType: "ZONE",
    onTagUpdate: (tag) => {
    console.log("update", tag);
    }
    });

    // call `stream.close()` when switching pages to avoid leaving the stream
    // open and wasting bandwidth in the background
    -
\ No newline at end of file +
\ No newline at end of file diff --git a/cypress/screenshots/basic.cy.ts/Basic -- should have floor a selection UI that provides filtering and indicates the current floor (failed).png b/cypress/screenshots/basic.cy.ts/Basic -- should have floor a selection UI that provides filtering and indicates the current floor (failed).png new file mode 100644 index 0000000000000000000000000000000000000000..18f14a70bdd6b372f3c3ee126bdb30c3aed59d87 GIT binary patch literal 216572 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
r4Fiq=};76#&tFcX+F8?#bILaH>Z|nJknr^ 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±Kk{<0LqR`ISmxd> z$#C+SS+jad2W0oJUs;=>|oyi`Gk;|+>y<|6E3-F6B$5YdmrOY6<C4R}a@aT)}|JE8<$>0$6Cs!xY7jVjPWEjY*Z8I{t!LD#L zKi^n#z3ko{i&sw$lJ76jO$dRkA}TH=I>N%LYL1INRp%j_)kiZw<<-AWbid3W3dq-2az zCZM$YQWLYBisBPxhT7cf>hycN^5DYchkp`)M1AWKs&5XzQou6-G)r|0gs_oK)(jM_ zd%@)SKbi9x?f2gC%pSeHl{8_BZCj#+{FvLPycz`XAwJ>?>zLQO=#MT3{m>hwuYJ0U zx#mLF>*_F6@QBeB70VG`=Fs1cyug`l>#<-?EN?f@ll^r#m|fMbS-3N^2oIVl{grlG zTkZymSfAz<&JTO0bAc^`hr|forSL#-1s}^3Leh{*`%>*$>^vSlZVincW)SYj(e+qKfTgoiT61a>IXpR)r(Q6f&u&F64 zVFDa5^wHu}-csKEp+GN{ZNSQugZqXns#9OHE^xF0A3)N2IKSjmrlbr}|99d5S0w~K z%vGVX-OND74EIV+nIQFMyN(VV<0IdjY`cs(aw6A=iXue^9`kWOe{D(dz6UvL=R7Q7 zV7xGsm!96&!Z#(!X!3XgQwh^s7_BI&{t#%uO`Se6GCn5rIn;3@(Pv2_`Vc#*oZ7V4 znl1M}RG9JU2b9p~P-~9UCgNSdPP>ZNp9CTxZLeRu9$o?>sLywiu*({B00~329Qp!f zC4EkHKic_N_};qb1m)KiEvQJrw2Xc;(oIykNzX=4d@+1=lZMLAu_KK?Is~*3KTTo5 zVo{QIukih=+ek}6b@63X46?bgTPH&)2;S?#0pDHs$(ooXxN<7;C2_VCU5yP33x zMMASD*2I8IsiBA4go&6eN-Ju(rKJa*M2pS}B|uJQq5I^DM@>O6M_5R9m~a8Aamb26 zPZ$vP%r@u@*m%djELH5pARiSQ)?}UXrH972*}VJ=a*|pbAw^3Ig5;0&%|%;$^MfIZ z+0MqqW>4$1+iq4Iifj4_3H1Q*sK56w0x3=$d6!giEMF6es$HeBqK1Yx0A3DE|9eT^H9ks-kys~kTtU{xQmW{XxB{1 zSF)_T!v=u#JGvQ4N(ocj>lf)eDk135?buh9&Pzov4~^_0l(1voTxJkB*-wa8^Sh-` z4z2c}M_fqMz7<8BlDs>3?=|tIo#Xi7b4_;*-4m(uHqec4;OZhF(uv0K(i8VV&G!ive549@ z);p!8l6mBsj^|>a0-L$^4v*`!>zlAC!3hC8yV1T(zkNN;TqF&9L4G8Zl z0xbabksu%?6dK7=U;7L)L!iwsW>C?hys~>$fDTc7u*Jp`r?li3HUzy&4nMQeKB#5D zQVgYR9&zD^=lAih$8Uk`su>k@3h@Vgv3GPYgw=Z|?SyM?1;?FE#0 z|0$8$W(W%So-b^+4)CqRbjrwl!ZQ zga09YNB2g2NIAhWavrB28)GTx3Nrkabxfic5!t(d@t?OM8{|F33;QTo`{jO~SqOx` zo(=C1n1b1iPjKefuaoR5re^+czb?xB*LtJm z01MFgkPR^BNq9!ppQgE)tS%G(=o@;IQ6>28pCtKDi~pai{@*>+*0@PQKWzV}GB$1G z#n_`VLqn;&;frp9jZck z*VH60DJc=h^a@W%{V9zcP`!xPYAPC;+U6kt0(O=067N5?fq_kDSc|MiWE}s`^kmAr bnqN7GK3K$9RP6dCLx8C$X(;ABFnjwS5+y0F literal 0 HcmV?d00001 diff --git a/cypress/screenshots/basic.cy.ts/Basic -- should have floor selection UI that allows changing floors (failed).png b/cypress/screenshots/basic.cy.ts/Basic -- should have floor selection UI that allows changing floors (failed).png new file mode 100644 index 0000000000000000000000000000000000000000..39342347520bf070204b44f97a340cbe0e579864 GIT binary patch literal 211188 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%0D$DB(ewWWTuRDMr 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 Q>ur#zr>mdKI;Vst0E_CclmGw# literal 0 HcmV?d00001 diff --git a/cypress/screenshots/placemark-label-mode.cy.ts/Placemark Label Mode -- should work for all label modes (failed).png b/cypress/screenshots/placemark-label-mode.cy.ts/Placemark Label Mode -- should work for all label modes (failed).png new file mode 100644 index 0000000000000000000000000000000000000000..1981419b1ab4d6a416f3a9b09ab2d784058febc8 GIT binary patch literal 264551 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

oQA5dVG8kC2=YW|Np) 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

wj!*b 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

R$Ou`(*YiCB#@*>B!4+j3|W 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 literal 0 HcmV?d00001 diff --git a/dist/files/placemarks/aed.svg b/dist/files/placemarks/aed.svg new file mode 100644 index 00000000..9502e372 --- /dev/null +++ b/dist/files/placemarks/aed.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/amusement_park.svg b/dist/files/placemarks/amusement_park.svg new file mode 100644 index 00000000..f435f28e --- /dev/null +++ b/dist/files/placemarks/amusement_park.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/atm.svg b/dist/files/placemarks/atm.svg new file mode 100644 index 00000000..462a9e75 --- /dev/null +++ b/dist/files/placemarks/atm.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/attraction.svg b/dist/files/placemarks/attraction.svg new file mode 100644 index 00000000..dbdaa090 --- /dev/null +++ b/dist/files/placemarks/attraction.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/baggage.svg b/dist/files/placemarks/baggage.svg new file mode 100644 index 00000000..dd5f0a3f --- /dev/null +++ b/dist/files/placemarks/baggage.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/baggage_carts.svg b/dist/files/placemarks/baggage_carts.svg new file mode 100644 index 00000000..5e1d02b4 --- /dev/null +++ b/dist/files/placemarks/baggage_carts.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/bank.svg b/dist/files/placemarks/bank.svg new file mode 100644 index 00000000..bc0fc458 --- /dev/null +++ b/dist/files/placemarks/bank.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/bar.svg b/dist/files/placemarks/bar.svg new file mode 100644 index 00000000..19f12c46 --- /dev/null +++ b/dist/files/placemarks/bar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/bike.svg b/dist/files/placemarks/bike.svg new file mode 100644 index 00000000..7e9ea53f --- /dev/null +++ b/dist/files/placemarks/bike.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/files/placemarks/bus.svg b/dist/files/placemarks/bus.svg new file mode 100644 index 00000000..707050e0 --- /dev/null +++ b/dist/files/placemarks/bus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/cafe.svg b/dist/files/placemarks/cafe.svg new file mode 100644 index 00000000..29ee308a --- /dev/null +++ b/dist/files/placemarks/cafe.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/cafeteria.svg b/dist/files/placemarks/cafeteria.svg new file mode 100644 index 00000000..29ee308a --- /dev/null +++ b/dist/files/placemarks/cafeteria.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/cashier.svg b/dist/files/placemarks/cashier.svg new file mode 100644 index 00000000..0af9d48d --- /dev/null +++ b/dist/files/placemarks/cashier.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/changing_room.svg b/dist/files/placemarks/changing_room.svg new file mode 100644 index 00000000..31bd97de --- /dev/null +++ b/dist/files/placemarks/changing_room.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/changing_station.svg b/dist/files/placemarks/changing_station.svg new file mode 100644 index 00000000..17dc4212 --- /dev/null +++ b/dist/files/placemarks/changing_station.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/charging_station.svg b/dist/files/placemarks/charging_station.svg new file mode 100644 index 00000000..5b8c35ed --- /dev/null +++ b/dist/files/placemarks/charging_station.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/clinic.svg b/dist/files/placemarks/clinic.svg new file mode 100644 index 00000000..8e9be979 --- /dev/null +++ b/dist/files/placemarks/clinic.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/club.svg b/dist/files/placemarks/club.svg new file mode 100644 index 00000000..19f12c46 --- /dev/null +++ b/dist/files/placemarks/club.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/coat_check.svg b/dist/files/placemarks/coat_check.svg new file mode 100644 index 00000000..2856c9c2 --- /dev/null +++ b/dist/files/placemarks/coat_check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/conference_room.svg b/dist/files/placemarks/conference_room.svg new file mode 100644 index 00000000..bcd50948 --- /dev/null +++ b/dist/files/placemarks/conference_room.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/currency_exchange.svg b/dist/files/placemarks/currency_exchange.svg new file mode 100644 index 00000000..6994376a --- /dev/null +++ b/dist/files/placemarks/currency_exchange.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/customer_service.svg b/dist/files/placemarks/customer_service.svg new file mode 100644 index 00000000..ede6197a --- /dev/null +++ b/dist/files/placemarks/customer_service.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/desk.svg b/dist/files/placemarks/desk.svg new file mode 100644 index 00000000..8595eaa9 --- /dev/null +++ b/dist/files/placemarks/desk.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/device_charging.svg b/dist/files/placemarks/device_charging.svg new file mode 100644 index 00000000..954e41a8 --- /dev/null +++ b/dist/files/placemarks/device_charging.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/elevator.svg b/dist/files/placemarks/elevator.svg new file mode 100644 index 00000000..4585370d --- /dev/null +++ b/dist/files/placemarks/elevator.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/emergency_dept.svg b/dist/files/placemarks/emergency_dept.svg new file mode 100644 index 00000000..bdcde034 --- /dev/null +++ b/dist/files/placemarks/emergency_dept.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/escalator.svg b/dist/files/placemarks/escalator.svg new file mode 100644 index 00000000..097f61d2 --- /dev/null +++ b/dist/files/placemarks/escalator.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/exclusion_area.svg b/dist/files/placemarks/exclusion_area.svg new file mode 100644 index 00000000..83bf512d --- /dev/null +++ b/dist/files/placemarks/exclusion_area.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/exhibit.svg b/dist/files/placemarks/exhibit.svg new file mode 100644 index 00000000..dbdaa090 --- /dev/null +++ b/dist/files/placemarks/exhibit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/exit.svg b/dist/files/placemarks/exit.svg new file mode 100644 index 00000000..bcb8eded --- /dev/null +++ b/dist/files/placemarks/exit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/fire_extinguisher.svg b/dist/files/placemarks/fire_extinguisher.svg new file mode 100644 index 00000000..c8f96de4 --- /dev/null +++ b/dist/files/placemarks/fire_extinguisher.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/files/placemarks/first_aid.svg b/dist/files/placemarks/first_aid.svg new file mode 100644 index 00000000..ca8c3840 --- /dev/null +++ b/dist/files/placemarks/first_aid.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/fitness_center.svg b/dist/files/placemarks/fitness_center.svg new file mode 100644 index 00000000..632789d5 --- /dev/null +++ b/dist/files/placemarks/fitness_center.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/fountain.svg b/dist/files/placemarks/fountain.svg new file mode 100644 index 00000000..763bc25a --- /dev/null +++ b/dist/files/placemarks/fountain.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/gallery.svg b/dist/files/placemarks/gallery.svg new file mode 100644 index 00000000..e16c25b8 --- /dev/null +++ b/dist/files/placemarks/gallery.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/gaming.svg b/dist/files/placemarks/gaming.svg new file mode 100644 index 00000000..cb5050e2 --- /dev/null +++ b/dist/files/placemarks/gaming.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/garden.svg b/dist/files/placemarks/garden.svg new file mode 100644 index 00000000..c515c1ed --- /dev/null +++ b/dist/files/placemarks/garden.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/gate.svg b/dist/files/placemarks/gate.svg new file mode 100644 index 00000000..40600a40 --- /dev/null +++ b/dist/files/placemarks/gate.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/generic.svg b/dist/files/placemarks/generic.svg new file mode 100644 index 00000000..d1c4ba30 --- /dev/null +++ b/dist/files/placemarks/generic.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/global_entry_office.svg b/dist/files/placemarks/global_entry_office.svg new file mode 100644 index 00000000..947d47a8 --- /dev/null +++ b/dist/files/placemarks/global_entry_office.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/handicap.svg b/dist/files/placemarks/handicap.svg new file mode 100644 index 00000000..b48336da --- /dev/null +++ b/dist/files/placemarks/handicap.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/information.svg b/dist/files/placemarks/information.svg new file mode 100644 index 00000000..ede6197a --- /dev/null +++ b/dist/files/placemarks/information.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/kiosk.svg b/dist/files/placemarks/kiosk.svg new file mode 100644 index 00000000..f6259138 --- /dev/null +++ b/dist/files/placemarks/kiosk.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/lab.svg b/dist/files/placemarks/lab.svg new file mode 100644 index 00000000..c64ab074 --- /dev/null +++ b/dist/files/placemarks/lab.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/laptop_lounge.svg b/dist/files/placemarks/laptop_lounge.svg new file mode 100644 index 00000000..600ba36d --- /dev/null +++ b/dist/files/placemarks/laptop_lounge.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/lost_found.svg b/dist/files/placemarks/lost_found.svg new file mode 100644 index 00000000..b96085ac --- /dev/null +++ b/dist/files/placemarks/lost_found.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/lounge.svg b/dist/files/placemarks/lounge.svg new file mode 100644 index 00000000..046f0efb --- /dev/null +++ b/dist/files/placemarks/lounge.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/mailbox.svg b/dist/files/placemarks/mailbox.svg new file mode 100644 index 00000000..201da239 --- /dev/null +++ b/dist/files/placemarks/mailbox.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/museum.svg b/dist/files/placemarks/museum.svg new file mode 100644 index 00000000..bc0fc458 --- /dev/null +++ b/dist/files/placemarks/museum.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/nursing_station.svg b/dist/files/placemarks/nursing_station.svg new file mode 100644 index 00000000..d155d367 --- /dev/null +++ b/dist/files/placemarks/nursing_station.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/operating_room.svg b/dist/files/placemarks/operating_room.svg new file mode 100644 index 00000000..b8613a6e --- /dev/null +++ b/dist/files/placemarks/operating_room.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/outdoor_area.svg b/dist/files/placemarks/outdoor_area.svg new file mode 100644 index 00000000..83bf512d --- /dev/null +++ b/dist/files/placemarks/outdoor_area.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/paging_phone.svg b/dist/files/placemarks/paging_phone.svg new file mode 100644 index 00000000..47ea2ac2 --- /dev/null +++ b/dist/files/placemarks/paging_phone.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/parking.svg b/dist/files/placemarks/parking.svg new file mode 100644 index 00000000..5ef9e6f2 --- /dev/null +++ b/dist/files/placemarks/parking.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/pet_relief.svg b/dist/files/placemarks/pet_relief.svg new file mode 100644 index 00000000..9e8efc7f --- /dev/null +++ b/dist/files/placemarks/pet_relief.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/pharmacy.svg b/dist/files/placemarks/pharmacy.svg new file mode 100644 index 00000000..a15ba43e --- /dev/null +++ b/dist/files/placemarks/pharmacy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/phone.svg b/dist/files/placemarks/phone.svg new file mode 100644 index 00000000..47ea2ac2 --- /dev/null +++ b/dist/files/placemarks/phone.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/play_area.svg b/dist/files/placemarks/play_area.svg new file mode 100644 index 00000000..f7c2023d --- /dev/null +++ b/dist/files/placemarks/play_area.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/printer.svg b/dist/files/placemarks/printer.svg new file mode 100644 index 00000000..505a3148 --- /dev/null +++ b/dist/files/placemarks/printer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/registration.svg b/dist/files/placemarks/registration.svg new file mode 100644 index 00000000..2b56d9fe --- /dev/null +++ b/dist/files/placemarks/registration.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/rental_cars.svg b/dist/files/placemarks/rental_cars.svg new file mode 100644 index 00000000..b1612e23 --- /dev/null +++ b/dist/files/placemarks/rental_cars.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/restaurant.svg b/dist/files/placemarks/restaurant.svg new file mode 100644 index 00000000..29ee308a --- /dev/null +++ b/dist/files/placemarks/restaurant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/restroom.svg b/dist/files/placemarks/restroom.svg new file mode 100644 index 00000000..fc0b1e09 --- /dev/null +++ b/dist/files/placemarks/restroom.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/restroom_ada.svg b/dist/files/placemarks/restroom_ada.svg new file mode 100644 index 00000000..03b3ab84 --- /dev/null +++ b/dist/files/placemarks/restroom_ada.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/restroom_family.svg b/dist/files/placemarks/restroom_family.svg new file mode 100644 index 00000000..0c9bc261 --- /dev/null +++ b/dist/files/placemarks/restroom_family.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/restroom_men.svg b/dist/files/placemarks/restroom_men.svg new file mode 100644 index 00000000..678843d3 --- /dev/null +++ b/dist/files/placemarks/restroom_men.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/restroom_men_ada.svg b/dist/files/placemarks/restroom_men_ada.svg new file mode 100644 index 00000000..93fc4e66 --- /dev/null +++ b/dist/files/placemarks/restroom_men_ada.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/restroom_women.svg b/dist/files/placemarks/restroom_women.svg new file mode 100644 index 00000000..33ffdfff --- /dev/null +++ b/dist/files/placemarks/restroom_women.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/restroom_women_ada.svg b/dist/files/placemarks/restroom_women_ada.svg new file mode 100644 index 00000000..744dff3f --- /dev/null +++ b/dist/files/placemarks/restroom_women_ada.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/rewards.svg b/dist/files/placemarks/rewards.svg new file mode 100644 index 00000000..226387a2 --- /dev/null +++ b/dist/files/placemarks/rewards.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/security.svg b/dist/files/placemarks/security.svg new file mode 100644 index 00000000..fbf45c02 --- /dev/null +++ b/dist/files/placemarks/security.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/security_checkpoint.svg b/dist/files/placemarks/security_checkpoint.svg new file mode 100644 index 00000000..c20eb358 --- /dev/null +++ b/dist/files/placemarks/security_checkpoint.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/shoe_shine.svg b/dist/files/placemarks/shoe_shine.svg new file mode 100644 index 00000000..a8af224f --- /dev/null +++ b/dist/files/placemarks/shoe_shine.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/shop.svg b/dist/files/placemarks/shop.svg new file mode 100644 index 00000000..6b0c0514 --- /dev/null +++ b/dist/files/placemarks/shop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/spa.svg b/dist/files/placemarks/spa.svg new file mode 100644 index 00000000..ed2c3294 --- /dev/null +++ b/dist/files/placemarks/spa.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/stadium.svg b/dist/files/placemarks/stadium.svg new file mode 100644 index 00000000..a6989e5b --- /dev/null +++ b/dist/files/placemarks/stadium.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/stairs.svg b/dist/files/placemarks/stairs.svg new file mode 100644 index 00000000..0916a4df --- /dev/null +++ b/dist/files/placemarks/stairs.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/swimming_pool.svg b/dist/files/placemarks/swimming_pool.svg new file mode 100644 index 00000000..bf220e2c --- /dev/null +++ b/dist/files/placemarks/swimming_pool.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/taxi.svg b/dist/files/placemarks/taxi.svg new file mode 100644 index 00000000..034ddc45 --- /dev/null +++ b/dist/files/placemarks/taxi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/theater.svg b/dist/files/placemarks/theater.svg new file mode 100644 index 00000000..afffd302 --- /dev/null +++ b/dist/files/placemarks/theater.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/ticketing.svg b/dist/files/placemarks/ticketing.svg new file mode 100644 index 00000000..5a9022a3 --- /dev/null +++ b/dist/files/placemarks/ticketing.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/tours.svg b/dist/files/placemarks/tours.svg new file mode 100644 index 00000000..957fae4d --- /dev/null +++ b/dist/files/placemarks/tours.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/train.svg b/dist/files/placemarks/train.svg new file mode 100644 index 00000000..c103a180 --- /dev/null +++ b/dist/files/placemarks/train.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/training.svg b/dist/files/placemarks/training.svg new file mode 100644 index 00000000..af3fc87f --- /dev/null +++ b/dist/files/placemarks/training.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/valet.svg b/dist/files/placemarks/valet.svg new file mode 100644 index 00000000..2f7c2632 --- /dev/null +++ b/dist/files/placemarks/valet.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/vending_machines.svg b/dist/files/placemarks/vending_machines.svg new file mode 100644 index 00000000..82c78f22 --- /dev/null +++ b/dist/files/placemarks/vending_machines.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/water_fountain.svg b/dist/files/placemarks/water_fountain.svg new file mode 100644 index 00000000..f21b39fd --- /dev/null +++ b/dist/files/placemarks/water_fountain.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/placemarks/wedding.svg b/dist/files/placemarks/wedding.svg new file mode 100644 index 00000000..7b9f8030 --- /dev/null +++ b/dist/files/placemarks/wedding.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/files/tags/generic.png b/dist/files/tags/generic.png new file mode 100644 index 0000000000000000000000000000000000000000..74d341ffada72a764e3c0069c0e49174ccbe2086 GIT binary patch literal 4219 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 aWWgVAz1w=SC2{LN0~13tbh*A$*na>%*%yld literal 0 HcmV?d00001 diff --git a/dist/meridian-sdk.js b/dist/meridian-sdk.js new file mode 100644 index 00000000..53273127 --- /dev/null +++ b/dist/meridian-sdk.js @@ -0,0 +1,2 @@ +/*! For license information please see meridian-sdk.js.LICENSE.txt */ +var MeridianSDK;!function(){var e={323:function(e,t,n){var r={"./aed.svg":852,"./amusement_park.svg":1968,"./atm.svg":5150,"./attraction.svg":1541,"./baggage.svg":3412,"./baggage_carts.svg":2096,"./bank.svg":136,"./bar.svg":5861,"./bike.svg":8113,"./bus.svg":7536,"./cafe.svg":2873,"./cafeteria.svg":3884,"./cashier.svg":9005,"./changing_room.svg":8327,"./changing_station.svg":7126,"./charging_station.svg":6906,"./clinic.svg":9138,"./club.svg":1174,"./coat_check.svg":3826,"./conference_room.svg":1606,"./currency_exchange.svg":7501,"./customer_service.svg":5738,"./desk.svg":9477,"./device_charging.svg":2630,"./elevator.svg":4,"./emergency_dept.svg":2053,"./escalator.svg":4266,"./exclusion_area.svg":2890,"./exhibit.svg":1641,"./exit.svg":9458,"./fire_extinguisher.svg":6624,"./first_aid.svg":1535,"./fitness_center.svg":1902,"./fountain.svg":3614,"./gallery.svg":6848,"./gaming.svg":5781,"./garden.svg":1841,"./gate.svg":5995,"./generic.svg":9101,"./global_entry_office.svg":1393,"./handicap.svg":2914,"./information.svg":8208,"./kiosk.svg":6175,"./lab.svg":7903,"./laptop_lounge.svg":4067,"./lost_found.svg":1833,"./lounge.svg":1900,"./mailbox.svg":2086,"./museum.svg":2002,"./nursing_station.svg":1565,"./operating_room.svg":2515,"./outdoor_area.svg":4525,"./paging_phone.svg":9563,"./parking.svg":8854,"./pet_relief.svg":4975,"./pharmacy.svg":593,"./phone.svg":9338,"./play_area.svg":9484,"./printer.svg":7774,"./registration.svg":9333,"./rental_cars.svg":3622,"./restaurant.svg":2311,"./restroom.svg":4965,"./restroom_ada.svg":2804,"./restroom_family.svg":504,"./restroom_men.svg":5584,"./restroom_men_ada.svg":7073,"./restroom_women.svg":8098,"./restroom_women_ada.svg":3303,"./rewards.svg":8850,"./security.svg":9456,"./security_checkpoint.svg":2453,"./shoe_shine.svg":9519,"./shop.svg":5758,"./spa.svg":7244,"./stadium.svg":1915,"./stairs.svg":2208,"./swimming_pool.svg":646,"./taxi.svg":7342,"./theater.svg":2925,"./ticketing.svg":8034,"./tours.svg":3187,"./train.svg":4340,"./training.svg":6740,"./valet.svg":1644,"./vending_machines.svg":4810,"./water_fountain.svg":9922,"./wedding.svg":2994};function o(e){var t=i(e);return n(t)}function i(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=i,e.exports=o,o.id=323},129:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return be}});var r=function(){function e(e){var t=this;this._insertTag=function(e){var n;n=0===t.tags.length?t.insertionPoint?t.insertionPoint.nextSibling:t.prepend?t.container.firstChild:t.before:t.tags[t.tags.length-1].nextSibling,t.container.insertBefore(e,n),t.tags.push(e)},this.isSpeedy=void 0===e.speedy||e.speedy,this.tags=[],this.ctr=0,this.nonce=e.nonce,this.key=e.key,this.container=e.container,this.prepend=e.prepend,this.insertionPoint=e.insertionPoint,this.before=null}var t=e.prototype;return t.hydrate=function(e){e.forEach(this._insertTag)},t.insert=function(e){this.ctr%(this.isSpeedy?65e3:1)==0&&this._insertTag(function(e){var t=document.createElement("style");return t.setAttribute("data-emotion",e.key),void 0!==e.nonce&&t.setAttribute("nonce",e.nonce),t.appendChild(document.createTextNode("")),t.setAttribute("data-s",""),t}(this));var t=this.tags[this.tags.length-1];if(this.isSpeedy){var n=function(e){if(e.sheet)return e.sheet;for(var t=0;t0?u(b,--y):0,g--,10===_&&(g=1,m--),_}function O(){return _=y2||E(_)>3?"":" "}function M(e,t){for(;--t&&O()&&!(_<48||_>102||_>57&&_<65||_>70&&_<97););return A(e,C()+(t<6&&32==S()&&32==O()))}function R(e){for(;O();)switch(_){case e:return y;case 34:case 39:34!==e&&39!==e&&R(_);break;case 40:41===e&&R(e);break;case 92:O()}return y}function L(e,t){for(;O()&&e+_!==57&&(e+_!==84||47!==S()););return"/*"+A(t,y-1)+"*"+i(47===e?e:O())}function N(e){for(;!E(S());)O();return A(e,y)}var I="-ms-",z="-moz-",F="-webkit-",B="comm",U="rule",$="decl",q="@keyframes";function W(e,t){for(var n="",r=p(e),o=0;o0&&h(z)-v&&d(_>32?J(z+";",r,n,v-1):J(l(z," ","")+";",r,n,v-2),p);break;case 59:z+=";";default:if(d(I=V(z,t,n,m,g,o,f,T,P=[],R=[],v),a),123===E)if(0===g)G(z,t,I,I,P,a,v,f,R);else switch(99===y&&110===u(z,3)?100:y){case 100:case 108:case 109:case 115:G(e,I,I,r&&d(V(e,I,I,0,0,o,f,T,o,P=[],v),R),o,R,v,f,r?P:R);break;default:G(z,I,I,I,[""],R,0,f,R)}}m=g=_=0,w=A=1,T=z="",v=s;break;case 58:v=1+h(z),_=b;default:if(w<1)if(123==E)--w;else if(125==E&&0==w++&&125==x())continue;switch(z+=i(E),E*w){case 38:A=g>0?1:(z+="\f",-1);break;case 44:f[m++]=(h(z)-1)*A,A=1;break;case 64:45===S()&&(z+=D(O())),y=S(),g=v=h(T=z+=N(C())),E++;break;case 45:45===b&&2==h(z)&&(w=0)}}return a}function V(e,t,n,r,i,a,c,u,h,d,m){for(var g=i-1,v=0===i?a:[""],y=p(v),_=0,b=0,k=0;_0?v[x]+" "+O:l(O,/&\f/g,v[x])))&&(h[k++]=S);return w(e,t,n,0===i?U:u,h,d,m)}function X(e,t,n){return w(e,t,n,B,i(_),f(e,2,-2),0)}function J(e,t,n,r){return w(e,t,n,$,f(e,0,r),f(e,r+1,-1),r)}var Y=function(e,t,n){for(var r=0,o=0;r=o,o=S(),38===r&&12===o&&(t[n]=1),!E(o);)O();return A(e,y)},K=new WeakMap,Q=function(e){if("rule"===e.type&&e.parent&&!(e.length<1)){for(var t=e.value,n=e.parent,r=e.column===n.column&&e.line===n.line;"rule"!==n.type;)if(!(n=n.parent))return;if((1!==e.props.length||58===t.charCodeAt(0)||K.get(n))&&!r){K.set(e,!0);for(var o=[],a=function(e,t){return P(function(e,t){var n=-1,r=44;do{switch(E(r)){case 0:38===r&&12===S()&&(t[n]=1),e[n]+=Y(y-1,t,n);break;case 2:e[n]+=D(r);break;case 4:if(44===r){e[++n]=58===S()?"&\f":"",t[n]=e[n].length;break}default:e[n]+=i(r)}}while(r=O());return e}(T(e),t))}(t,o),s=n.props,l=0,c=0;l6)switch(u(e,t+1)){case 109:if(45!==u(e,t+4))break;case 102:return l(e,/(.+:)(.+)-([^]+)/,"$1"+F+"$2-$3$1"+z+(108==u(e,t+3)?"$3":"$2-$3"))+e;case 115:return~c(e,"stretch")?te(l(e,"stretch","fill-available"),t)+e:e}break;case 4949:if(115!==u(e,t+1))break;case 6444:switch(u(e,h(e)-3-(~c(e,"!important")&&10))){case 107:return l(e,":",":"+F)+e;case 101:return l(e,/(.+:)([^;!]+)(;|!.+)?/,"$1"+F+(45===u(e,14)?"inline-":"")+"box$3$1"+F+"$2$3$1"+I+"$2box$3")+e}break;case 5936:switch(u(e,t+11)){case 114:return F+e+I+l(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return F+e+I+l(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return F+e+I+l(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return F+e+I+e+e}return e}var ne=[function(e,t,n,r){if(e.length>-1&&!e.return)switch(e.type){case $:e.return=te(e.value,e.length);break;case q:return W([k(e,{value:l(e.value,"@","@"+F)})],r);case U:if(e.length)return function(e,t){return e.map(t).join("")}(e.props,(function(t){switch(function(e,t){return(e=/(::plac\w+|:read-\w+)/.exec(e))?e[0]:e}(t)){case":read-only":case":read-write":return W([k(e,{props:[l(t,/:(read-\w+)/,":-moz-$1")]})],r);case"::placeholder":return W([k(e,{props:[l(t,/:(plac\w+)/,":"+F+"input-$1")]}),k(e,{props:[l(t,/:(plac\w+)/,":-moz-$1")]}),k(e,{props:[l(t,/:(plac\w+)/,I+"input-$1")]})],r)}return""}))}}],re={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1};function oe(e){var t=Object.create(null);return function(n){return void 0===t[n]&&(t[n]=e(n)),t[n]}}var ie=!1,ae=/[A-Z]|^ms/g,se=/_EMO_([^_]+?)_([^]*?)_EMO_/g,le=function(e){return 45===e.charCodeAt(1)},ce=function(e){return null!=e&&"boolean"!=typeof e},ue=oe((function(e){return le(e)?e:e.replace(ae,"-$&").toLowerCase()})),fe=function(e,t){switch(e){case"animation":case"animationName":if("string"==typeof t)return t.replace(se,(function(e,t,n){return de={name:t,styles:n,next:de},t}))}return 1===re[e]||le(e)||"number"!=typeof t||0===t?t:t+"px"},he="Component selectors can only be used in conjunction with @emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware compiler transform.";function pe(e,t,n){if(null==n)return"";var r=n;if(void 0!==r.__emotion_styles)return r;switch(typeof n){case"boolean":return"";case"object":var o=n;if(1===o.anim)return de={name:o.name,styles:o.styles,next:de},o.name;var i=n;if(void 0!==i.styles){var a=i.next;if(void 0!==a)for(;void 0!==a;)de={name:a.name,styles:a.styles,next:de},a=a.next;return i.styles+";"}return function(e,t,n){var r="";if(Array.isArray(n))for(var o=0;o=4;++r,o-=4)t=1540483477*(65535&(t=255&e.charCodeAt(r)|(255&e.charCodeAt(++r))<<8|(255&e.charCodeAt(++r))<<16|(255&e.charCodeAt(++r))<<24))+(59797*(t>>>16)<<16),n=1540483477*(65535&(t^=t>>>24))+(59797*(t>>>16)<<16)^1540483477*(65535&n)+(59797*(n>>>16)<<16);switch(o){case 3:n^=(255&e.charCodeAt(r+2))<<16;case 2:n^=(255&e.charCodeAt(r+1))<<8;case 1:n=1540483477*(65535&(n^=255&e.charCodeAt(r)))+(59797*(n>>>16)<<16)}return(((n=1540483477*(65535&(n^=n>>>13))+(59797*(n>>>16)<<16))^n>>>15)>>>0).toString(36)}(o)+l;return{name:c,styles:o,next:de}}function ve(e,t,n){var r="";return n.split(" ").forEach((function(n){void 0!==e[n]?t.push(e[n]+";"):r+=n+" "})),r}function ye(e,t){if(void 0===e.inserted[t.name])return e.insert("",t,e.sheet,!0)}function _e(e,t,n){var r=[],o=ve(e,r,n);return r.length<2?n:o+t(r)}var be=function(e){var t=function(e){var t=e.key;if("css"===t){var n=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(n,(function(e){-1!==e.getAttribute("data-emotion").indexOf(" ")&&(document.head.appendChild(e),e.setAttribute("data-s",""))}))}var o,i,a=e.stylisPlugins||ne,s={},l=[];o=e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+t+' "]'),(function(e){for(var t=e.getAttribute("data-emotion").split(" "),n=1;n=0&&(t=e.slice(n+1),e=e.slice(0,n)),e&&!r.hasOwnProperty(e))throw new Error("unknown type: "+e);return{type:e,name:t}}))),l=-1,c=s.length;if(!(arguments.length<2)){if(null!=t&&"function"!=typeof t)throw new Error("invalid callback: "+t);for(;++l0)for(var n,r,o=new Array(n),i=0;i=t||n<0||f&&e-c>=i}function b(){var e=d();if(_(e))return w(e);s=setTimeout(b,function(e){var n=t-(e-l);return f?p(n,i-(e-c)):n}(e))}function w(e){return s=void 0,v&&r?y(e):(r=o=void 0,a)}function k(){var e=d(),n=_(e);if(r=arguments,o=this,l=e,n){if(void 0===s)return function(e){return c=e,s=setTimeout(b,t),u?y(e):a}(l);if(f)return s=setTimeout(b,t),y(l)}return void 0===s&&(s=setTimeout(b,t)),a}return t=g(t)||0,m(n)&&(u=!!n.leading,i=(f="maxWait"in n)?h(g(n.maxWait)||0,t):i,v="trailing"in n?!!n.trailing:v),k.cancel=function(){void 0!==s&&clearTimeout(s),c=0,r=l=o=s=void 0},k.flush=function(){return void 0===s?a:w(d())},k}},1324:function(e,t,n){e=n.nmd(e);var r="__lodash_hash_undefined__",o=1,i=2,a=1/0,s=9007199254740991,l="[object Arguments]",c="[object Array]",u="[object Boolean]",f="[object Date]",h="[object Error]",p="[object Function]",d="[object GeneratorFunction]",m="[object Map]",g="[object Number]",v="[object Object]",y="[object Promise]",_="[object RegExp]",b="[object Set]",w="[object String]",k="[object Symbol]",x="[object WeakMap]",O="[object ArrayBuffer]",S="[object DataView]",C=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,A=/^\w*$/,E=/^\./,T=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,P=/\\(\\)?/g,D=/^\[object .+?Constructor\]$/,j=/^(?:0|[1-9]\d*)$/,M={};M["[object Float32Array]"]=M["[object Float64Array]"]=M["[object Int8Array]"]=M["[object Int16Array]"]=M["[object Int32Array]"]=M["[object Uint8Array]"]=M["[object Uint8ClampedArray]"]=M["[object Uint16Array]"]=M["[object Uint32Array]"]=!0,M[l]=M[c]=M[O]=M[u]=M[S]=M[f]=M[h]=M[p]=M[m]=M[g]=M[v]=M[_]=M[b]=M[w]=M[x]=!1;var R="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,L="object"==typeof self&&self&&self.Object===Object&&self,N=R||L||Function("return this")(),I=t&&!t.nodeType&&t,z=I&&e&&!e.nodeType&&e,F=z&&z.exports===I&&R.process,B=function(){try{return F&&F.binding("util")}catch(e){}}(),U=B&&B.isTypedArray;function $(e,t,n,r){for(var o=-1,i=e?e.length:0;++o-1},Se.prototype.set=function(e,t){var n=this.__data__,r=Te(n,e);return r<0?n.push([e,t]):n[r][1]=t,this},Ce.prototype.clear=function(){this.__data__={hash:new Oe,map:new(fe||Se),string:new Oe}},Ce.prototype.delete=function(e){return Fe(this,e).delete(e)},Ce.prototype.get=function(e){return Fe(this,e).get(e)},Ce.prototype.has=function(e){return Fe(this,e).has(e)},Ce.prototype.set=function(e,t){return Fe(this,e).set(e,t),this},Ae.prototype.add=Ae.prototype.push=function(e){return this.__data__.set(e,r),this},Ae.prototype.has=function(e){return this.__data__.has(e)},Ee.prototype.clear=function(){this.__data__=new Se},Ee.prototype.delete=function(e){return this.__data__.delete(e)},Ee.prototype.get=function(e){return this.__data__.get(e)},Ee.prototype.has=function(e){return this.__data__.has(e)},Ee.prototype.set=function(e,t){var n=this.__data__;if(n instanceof Se){var r=n.__data__;if(!fe||r.length<199)return r.push([e,t]),this;n=this.__data__=new Ce(r)}return n.set(e,t),this};var De,je=(De=function(e,t){return e&&Me(e,t,lt)},function(e,t){if(null==e)return e;if(!tt(e))return De(e,t);for(var n=e.length,r=-1,o=Object(e);++rc))return!1;var f=s.get(e);if(f&&s.get(t))return f==t;var h=-1,p=!0,d=a&o?new Ae:void 0;for(s.set(e,t),s.set(t,e);++h-1&&e%1==0&&e-1&&e%1==0&&e<=s}function ot(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function it(e){return!!e&&"object"==typeof e}function at(e){return"symbol"==typeof e||it(e)&&re.call(e)==k}var st=U?function(e){return function(t){return e(t)}}(U):function(e){return it(e)&&rt(e.length)&&!!M[re.call(e)]};function lt(e){return tt(e)?function(e,t){var n=et(e)||Qe(e)?function(e,t){for(var n=-1,r=Array(e);++n=t||n<0||h&&e-u>=a}function w(){var e=v();if(b(e))return k(e);l=setTimeout(w,function(e){var n=t-(e-c);return h?g(n,a-(e-u)):n}(e))}function k(e){return l=void 0,p&&o?d(e):(o=i=void 0,s)}function x(){var e=v(),n=b(e);if(o=arguments,i=this,c=e,n){if(void 0===l)return function(e){return u=e,l=setTimeout(w,t),f?d(e):s}(c);if(h)return l=setTimeout(w,t),d(c)}return void 0===l&&(l=setTimeout(w,t)),s}return t=_(t)||0,y(n)&&(f=!!n.leading,a=(h="maxWait"in n)?m(_(n.maxWait)||0,t):a,p="trailing"in n?!!n.trailing:p),x.cancel=function(){void 0!==l&&clearTimeout(l),u=0,o=c=i=l=void 0},x.flush=function(){return void 0===l?s:k(v())},x}(e,t,{leading:o,maxWait:t,trailing:i})}},7975:function(e){"use strict";function t(e){if("string"!=typeof e)throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}function n(e,t){for(var n,r="",o=0,i=-1,a=0,s=0;s<=e.length;++s){if(s2){var l=r.lastIndexOf("/");if(l!==r.length-1){-1===l?(r="",o=0):o=(r=r.slice(0,l)).length-1-r.lastIndexOf("/"),i=s,a=0;continue}}else if(2===r.length||1===r.length){r="",o=0,i=s,a=0;continue}t&&(r.length>0?r+="/..":r="..",o=2)}else r.length>0?r+="/"+e.slice(i+1,s):r=e.slice(i+1,s),o=s-i-1;i=s,a=0}else 46===n&&-1!==a?++a:a=-1}return r}var r={resolve:function(){for(var e,r="",o=!1,i=arguments.length-1;i>=-1&&!o;i--){var a;i>=0?a=arguments[i]:(void 0===e&&(e=process.cwd()),a=e),t(a),0!==a.length&&(r=a+"/"+r,o=47===a.charCodeAt(0))}return r=n(r,!o),o?r.length>0?"/"+r:"/":r.length>0?r:"."},normalize:function(e){if(t(e),0===e.length)return".";var r=47===e.charCodeAt(0),o=47===e.charCodeAt(e.length-1);return 0!==(e=n(e,!r)).length||r||(e="."),e.length>0&&o&&(e+="/"),r?"/"+e:e},isAbsolute:function(e){return t(e),e.length>0&&47===e.charCodeAt(0)},join:function(){if(0===arguments.length)return".";for(var e,n=0;n0&&(void 0===e?e=o:e+="/"+o)}return void 0===e?".":r.normalize(e)},relative:function(e,n){if(t(e),t(n),e===n)return"";if((e=r.resolve(e))===(n=r.resolve(n)))return"";for(var o=1;oc){if(47===n.charCodeAt(s+f))return n.slice(s+f+1);if(0===f)return n.slice(s+f)}else a>c&&(47===e.charCodeAt(o+f)?u=f:0===f&&(u=0));break}var h=e.charCodeAt(o+f);if(h!==n.charCodeAt(s+f))break;47===h&&(u=f)}var p="";for(f=o+u+1;f<=i;++f)f!==i&&47!==e.charCodeAt(f)||(0===p.length?p+="..":p+="/..");return p.length>0?p+n.slice(s+u):(s+=u,47===n.charCodeAt(s)&&++s,n.slice(s))},_makeLong:function(e){return e},dirname:function(e){if(t(e),0===e.length)return".";for(var n=e.charCodeAt(0),r=47===n,o=-1,i=!0,a=e.length-1;a>=1;--a)if(47===(n=e.charCodeAt(a))){if(!i){o=a;break}}else i=!1;return-1===o?r?"/":".":r&&1===o?"//":e.slice(0,o)},basename:function(e,n){if(void 0!==n&&"string"!=typeof n)throw new TypeError('"ext" argument must be a string');t(e);var r,o=0,i=-1,a=!0;if(void 0!==n&&n.length>0&&n.length<=e.length){if(n.length===e.length&&n===e)return"";var s=n.length-1,l=-1;for(r=e.length-1;r>=0;--r){var c=e.charCodeAt(r);if(47===c){if(!a){o=r+1;break}}else-1===l&&(a=!1,l=r+1),s>=0&&(c===n.charCodeAt(s)?-1==--s&&(i=r):(s=-1,i=l))}return o===i?i=l:-1===i&&(i=e.length),e.slice(o,i)}for(r=e.length-1;r>=0;--r)if(47===e.charCodeAt(r)){if(!a){o=r+1;break}}else-1===i&&(a=!1,i=r+1);return-1===i?"":e.slice(o,i)},extname:function(e){t(e);for(var n=-1,r=0,o=-1,i=!0,a=0,s=e.length-1;s>=0;--s){var l=e.charCodeAt(s);if(47!==l)-1===o&&(i=!1,o=s+1),46===l?-1===n?n=s:1!==a&&(a=1):-1!==n&&(a=-1);else if(!i){r=s+1;break}}return-1===n||-1===o||0===a||1===a&&n===o-1&&n===r+1?"":e.slice(n,o)},format:function(e){if(null===e||"object"!=typeof e)throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof e);return function(e,t){var n=t.dir||t.root,r=t.base||(t.name||"")+(t.ext||"");return n?n===t.root?n+r:n+"/"+r:r}(0,e)},parse:function(e){t(e);var n={root:"",dir:"",base:"",ext:"",name:""};if(0===e.length)return n;var r,o=e.charCodeAt(0),i=47===o;i?(n.root="/",r=1):r=0;for(var a=-1,s=0,l=-1,c=!0,u=e.length-1,f=0;u>=r;--u)if(47!==(o=e.charCodeAt(u)))-1===l&&(c=!1,l=u+1),46===o?-1===a?a=u:1!==f&&(f=1):-1!==a&&(f=-1);else if(!c){s=u+1;break}return-1===a||-1===l||0===f||1===f&&a===l-1&&a===s+1?-1!==l&&(n.base=n.name=0===s&&i?e.slice(1,l):e.slice(s,l)):(0===s&&i?(n.name=e.slice(1,a),n.base=e.slice(1,l)):(n.name=e.slice(s,a),n.base=e.slice(s,l)),n.ext=e.slice(a,l)),s>0?n.dir=e.slice(0,s-1):i&&(n.dir="/"),n},sep:"/",delimiter:":",win32:null,posix:null};r.posix=r,e.exports=r},3034:function(e,t,n){"use strict";n.r(t),n.d(t,{resetPropWarnings:function(){return a}});var r,o=n(172);null!=(r="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0)&&r.__PREACT_DEVTOOLS__&&r.__PREACT_DEVTOOLS__.attachPreact("10.23.2",o.options,{Fragment:o.Fragment,Component:o.Component});var i={};function a(){i={}}function s(e){return e.type===o.Fragment?"Fragment":"function"==typeof e.type?e.type.displayName||e.type.name:"string"==typeof e.type?e.type:"#text"}var l=[],c=[];function u(){return l.length>0?l[l.length-1]:null}var f=!0;function h(e){return"function"==typeof e.type&&e.type!=o.Fragment}function p(e){for(var t=[e],n=e;null!=n.__o;)t.push(n.__o),n=n.__o;return t.reduce((function(e,t){e+=" in "+s(t);var n=t.__source;return n?e+=" (at "+n.fileName+":"+n.lineNumber+")":f&&console.warn("Add @babel/plugin-transform-react-jsx-source to get a more detailed component stack. Note that you should not add it to production builds of your App for bundle size reasons."),f=!1,e+"\n"}),"")}var d="function"==typeof WeakMap;function m(e){var t=[];return e.__k?(e.__k.forEach((function(e){e&&"function"==typeof e.type?t.push.apply(t,m(e)):e&&"string"==typeof e.type&&t.push(e.type)})),t):t}function g(e){return e?"function"==typeof e.type?null==e.__?null!=e.__e&&null!=e.__e.parentNode?e.__e.parentNode.localName:"":g(e.__):e.type:""}var v=o.Component.prototype.setState;function y(e){return"table"===e||"tfoot"===e||"tbody"===e||"thead"===e||"td"===e||"tr"===e||"th"===e}o.Component.prototype.setState=function(e,t){return null==this.__v&&null==this.state&&console.warn('Calling "this.setState" inside the constructor of a component is a no-op and might be a bug in your application. Instead, set "this.state = {}" directly.\n\n'+p(u())),v.call(this,e,t)};var _=/^(address|article|aside|blockquote|details|div|dl|fieldset|figcaption|figure|footer|form|h1|h2|h3|h4|h5|h6|header|hgroup|hr|main|menu|nav|ol|p|pre|search|section|table|ul)$/,b=o.Component.prototype.forceUpdate;function w(e){var t=e.props,n=s(e),r="";for(var o in t)if(t.hasOwnProperty(o)&&"children"!==o){var i=t[o];"function"==typeof i&&(i="function "+(i.displayName||i.name)+"() {}"),i=Object(i)!==i||i.toString?i+"":Object.prototype.toString.call(i),r+=" "+o+"="+JSON.stringify(i)}var a=t.children;return"<"+n+r+(a&&a.length?">..":" />")}o.Component.prototype.forceUpdate=function(e){return null==this.__v?console.warn('Calling "this.forceUpdate" inside the constructor of a component is a no-op and might be a bug in your application.\n\n'+p(u())):null==this.__P&&console.warn('Can\'t call "this.forceUpdate" on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in the componentWillUnmount method.\n\n'+p(this.__v)),b.call(this,e)},function(){!function(){var e=o.options.__b,t=o.options.diffed,n=o.options.__,r=o.options.vnode,i=o.options.__r;o.options.diffed=function(e){h(e)&&c.pop(),l.pop(),t&&t(e)},o.options.__b=function(t){h(t)&&l.push(t),e&&e(t)},o.options.__=function(e,t){c=[],n&&n(e,t)},o.options.vnode=function(e){e.__o=c.length>0?c[c.length-1]:null,r&&r(e)},o.options.__r=function(e){h(e)&&c.push(e),i&&i(e)}}();var e=!1,t=o.options.__b,n=o.options.diffed,r=o.options.vnode,a=o.options.__r,u=o.options.__e,f=o.options.__,v=o.options.__h,b=d?{useEffect:new WeakMap,useLayoutEffect:new WeakMap,lazyPropTypes:new WeakMap}:null,k=[];o.options.__e=function(e,t,n,r){if(t&&t.__c&&"function"==typeof e.then){var o=e;e=new Error("Missing Suspense. The throwing component was: "+s(t));for(var i=t;i;i=i.__)if(i.__c&&i.__c.__c){e=o;break}if(e instanceof Error)throw e}try{(r=r||{}).componentStack=p(t),u(e,t,n,r),"function"!=typeof e.then&&setTimeout((function(){throw e}))}catch(e){throw e}},o.options.__=function(e,t){if(!t)throw new Error("Undefined parent passed to render(), this is the second argument.\nCheck if the element is available in the DOM/has the correct id.");var n;switch(t.nodeType){case 1:case 11:case 9:n=!0;break;default:n=!1}if(!n){var r=s(e);throw new Error("Expected a valid HTML node as a second argument to render.\tReceived "+t+" instead: render(<"+r+" />, "+t+");")}f&&f(e,t)},o.options.__b=function(n){var r=n.type;if(e=!0,void 0===r)throw new Error("Undefined component passed to createElement()\n\nYou likely forgot to export your component or might have mixed up default and named imports"+w(n)+"\n\n"+p(n));if(null!=r&&"object"==typeof r){if(void 0!==r.__k&&void 0!==r.__e)throw new Error("Invalid type passed to createElement(): "+r+"\n\nDid you accidentally pass a JSX literal as JSX twice?\n\n let My"+s(n)+" = "+w(r)+";\n let vnode = ;\n\nThis usually happens when you export a JSX literal and not the component.\n\n"+p(n));throw new Error("Invalid type passed to createElement(): "+(Array.isArray(r)?"array":r))}if(void 0!==n.ref&&"function"!=typeof n.ref&&"object"!=typeof n.ref&&!("$$typeof"in n))throw new Error('Component\'s "ref" property should be a function, or an object created by createRef(), but got ['+typeof n.ref+"] instead\n"+w(n)+"\n\n"+p(n));if("string"==typeof n.type)for(var o in n.props)if("o"===o[0]&&"n"===o[1]&&"function"!=typeof n.props[o]&&null!=n.props[o])throw new Error("Component's \""+o+'" property should be a function, but got ['+typeof n.props[o]+"] instead\n"+w(n)+"\n\n"+p(n));if("function"==typeof n.type&&n.type.propTypes){if("Lazy"===n.type.displayName&&b&&!b.lazyPropTypes.has(n.type)){var a="PropTypes are not supported on lazy(). Use propTypes on the wrapped component itself. ";try{var l=n.type();b.lazyPropTypes.set(n.type,!0),console.warn(a+"Component wrapped in lazy() is "+s(l))}catch(e){console.warn(a+"We will log the wrapped component's name once it is loaded.")}}var c=n.props;n.type.__f&&delete(c=function(e,t){for(var n in t)e[n]=t[n];return e}({},c)).ref,function(e,t,n,r,o){Object.keys(e).forEach((function(n){var a;try{a=e[n](t,n,r,"prop",null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(e){a=e}a&&!(a.message in i)&&(i[a.message]=!0,console.error("Failed prop type: "+a.message+(o&&"\n"+o()||"")))}))}(n.type.propTypes,c,0,s(n),(function(){return p(n)}))}t&&t(n)};var x,O=0;o.options.__r=function(t){a&&a(t),e=!0;var n=t.__c;if(n===x?O++:O=1,O>=25)throw new Error("Too many re-renders. This is limited to prevent an infinite loop which may lock up your browser. The component causing this is: "+s(t));x=n},o.options.__h=function(t,n,r){if(!t||!e)throw new Error("Hook can only be invoked from render methods.");v&&v(t,n,r)};var S=function(e,t){return{get:function(){var n="get"+e+t;k&&k.indexOf(n)<0&&(k.push(n),console.warn("getting vnode."+e+" is deprecated, "+t))},set:function(){var n="set"+e+t;k&&k.indexOf(n)<0&&(k.push(n),console.warn("setting vnode."+e+" is not allowed, "+t))}}},C={nodeName:S("nodeName","use vnode.type"),attributes:S("attributes","use vnode.props"),children:S("children","use vnode.props.children")},A=Object.create({},C);o.options.vnode=function(e){var t=e.props;if(null!==e.type&&null!=t&&("__source"in t||"__self"in t)){var n=e.props={};for(var o in t){var i=t[o];"__source"===o?e.__source=i:"__self"===o?e.__self=i:n[o]=i}}e.__proto__=A,r&&r(e)},o.options.diffed=function(t){var r,o=t.type,i=t.__;if(t.__k&&t.__k.forEach((function(e){if("object"==typeof e&&e&&void 0===e.type){var n=Object.keys(e).join(",");throw new Error("Objects are not valid as a child. Encountered an object with the keys {"+n+"}.\n\n"+p(t))}})),t.__c===x&&(O=0),"string"==typeof o&&(y(o)||"p"===o||"a"===o||"button"===o)){var a=g(i);if(""!==a&&y(o))"table"===o&&"td"!==a&&y(a)?(console.log(a,i.__e),console.error("Improper nesting of table. Your should not have a table-node parent."+w(t)+"\n\n"+p(t))):"thead"!==o&&"tfoot"!==o&&"tbody"!==o||"table"===a?"tr"===o&&"thead"!==a&&"tfoot"!==a&&"tbody"!==a?console.error("Improper nesting of table. Your should have a parent."+w(t)+"\n\n"+p(t)):"td"===o&&"tr"!==a?console.error("Improper nesting of table. Your parent."+w(t)+"\n\n"+p(t)):"th"===o&&"tr"!==a&&console.error("Improper nesting of table. Your ."+w(t)+"\n\n"+p(t)):console.error("Improper nesting of table. Your should have a
should have a
should have a
parent."+w(t)+"\n\n"+p(t));else if("p"===o){var l=m(t).filter((function(e){return _.test(e)}));l.length&&console.error("Improper nesting of paragraph. Your

should not have "+l.join(", ")+"as child-elements."+w(t)+"\n\n"+p(t))}else"a"!==o&&"button"!==o||-1!==m(t).indexOf(o)&&console.error("Improper nesting of interactive content. Your <"+o+"> should not have other "+("a"===o?"anchor":"button")+" tags as child-elements."+w(t)+"\n\n"+p(t))}if(e=!1,n&&n(t),null!=t.__k)for(var c=[],u=0;u2&&(s.children=arguments.length>3?r.call(arguments,2):n),"function"==typeof e&&null!=e.defaultProps)for(a in e.defaultProps)void 0===s[a]&&(s[a]=e.defaultProps[a]);return k(e,s,o,i,null)}function k(e,t,n,r,a){var s={type:e,props:t,key:n,ref:r,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:null==a?++i:a,__i:-1,__u:0};return null==a&&null!=o.vnode&&o.vnode(s),s}function x(){return{current:null}}function O(e){return e.children}function S(e,t){this.props=e,this.context=t}function C(e,t){if(null==t)return e.__?C(e.__,e.__i+1):null;for(var n;tt&&s.sort(u));T.__r=0}function P(e,t,n,r,o,i,a,s,l,c,u){var f,h,p,d,v,y=r&&r.__k||g,_=t.length;for(n.__d=l,D(n,t,y),l=n.__d,f=0;f<_;f++)null!=(p=n.__k[f])&&"boolean"!=typeof p&&"function"!=typeof p&&(h=-1===p.__i?m:y[p.__i]||m,p.__i=f,z(e,p,h,o,i,a,s,l,c,u),d=p.__e,p.ref&&h.ref!=p.ref&&(h.ref&&U(h.ref,null,p),u.push(p.ref,p.__c||d,p)),null==v&&null!=d&&(v=d),65536&p.__u||h.__k===p.__k?l=j(p,l,e):"function"==typeof p.type&&void 0!==p.__d?l=p.__d:d&&(l=d.nextSibling),p.__d=void 0,p.__u&=-196609);n.__d=l,n.__e=v}function D(e,t,n){var r,o,i,a,s,l=t.length,c=n.length,u=c,f=0;for(e.__k=[],r=0;r0?k(o.type,o.props,o.key,o.ref?o.ref:null,o.__v):o)?(o.__=e,o.__b=e.__b+1,s=R(o,n,a,u),o.__i=s,i=null,-1!==s&&(u--,(i=n[s])&&(i.__u|=131072)),null==i||null===i.__v?(-1==s&&f--,"function"!=typeof o.type&&(o.__u|=65536)):s!==a&&(s==a-1?f--:s==a+1?f++:s>a?u>l-a?f+=s-a:f--:s(null==l||131072&l.__u?0:1))for(;a>=0||s=0){if((l=t[a])&&!(131072&l.__u)&&o==l.key&&i===l.type)return a;a--}if(s2&&(l.children=arguments.length>3?r.call(arguments,2):n),k(e.type,l,o||e.key,i||e.ref,null)}function G(e,t){var n={__c:t="__cC"+d++,__:e,Consumer:function(e,t){return e.children(t)},Provider:function(e){var n,r;return this.getChildContext||(n=[],(r={})[t]=this,this.getChildContext=function(){return r},this.componentWillUnmount=function(){n=null},this.shouldComponentUpdate=function(e){this.props.value!==e.value&&n.some((function(e){e.__e=!0,E(e)}))},this.sub=function(e){n.push(e);var t=e.componentWillUnmount;e.componentWillUnmount=function(){n&&n.splice(n.indexOf(e),1),t&&t.call(e)}}),e.children}};return n.Provider.__=n.Consumer.contextType=n}r=g.slice,o={__e:function(e,t,n,r){for(var o,i,a;t=t.__;)if((o=t.__c)&&!o.__)try{if((i=o.constructor)&&null!=i.getDerivedStateFromError&&(o.setState(i.getDerivedStateFromError(e)),a=o.__d),null!=o.componentDidCatch&&(o.componentDidCatch(e,r||{}),a=o.__d),a)return o.__E=o}catch(t){e=t}throw e}},i=0,a=function(e){return null!=e&&null==e.constructor},S.prototype.setState=function(e,t){var n;n=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=_({},this.state),"function"==typeof e&&(e=e(_({},n),this.props)),e&&_(n,e),null!=e&&this.__v&&(t&&this._sb.push(t),E(this))},S.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),E(this))},S.prototype.render=O,s=[],c="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,u=function(e,t){return e.__v.__b-t.__v.__b},T.__r=0,f=0,h=I(!1),p=I(!0),d=0},5697:function(e,t,n){"use strict";n.r(t);var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},r(e,t)};function o(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}function i(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a}var a=function(e,t){this.target=t,this.type=e},s=function(e){function t(t,n){var r=e.call(this,"error",n)||this;return r.message=t.message,r.error=t,r}return o(t,e),t}(a),l=function(e){function t(t,n,r){void 0===t&&(t=1e3),void 0===n&&(n="");var o=e.call(this,"close",r)||this;return o.wasClean=!0,o.code=t,o.reason=n,o}return o(t,e),t}(a),c=function(){if("undefined"!=typeof WebSocket)return WebSocket},u={maxReconnectionDelay:1e4,minReconnectionDelay:1e3+4e3*Math.random(),minUptime:5e3,reconnectionDelayGrowFactor:1.3,connectionTimeout:4e3,maxRetries:1/0,maxEnqueuedMessages:1/0,startClosed:!1,debug:!1},f=function(){function e(e,t,n){var r=this;void 0===n&&(n={}),this._listeners={error:[],message:[],open:[],close:[]},this._retryCount=-1,this._shouldReconnect=!0,this._connectLock=!1,this._binaryType="blob",this._closeCalled=!1,this._messageQueue=[],this.onclose=null,this.onerror=null,this.onmessage=null,this.onopen=null,this._handleOpen=function(e){r._debug("open event");var t=r._options.minUptime,n=void 0===t?u.minUptime:t;clearTimeout(r._connectTimeout),r._uptimeTimeout=setTimeout((function(){return r._acceptOpen()}),n),r._ws.binaryType=r._binaryType,r._messageQueue.forEach((function(e){return r._ws.send(e)})),r._messageQueue=[],r.onopen&&r.onopen(e),r._listeners.open.forEach((function(t){return r._callEventListener(e,t)}))},this._handleMessage=function(e){r._debug("message event"),r.onmessage&&r.onmessage(e),r._listeners.message.forEach((function(t){return r._callEventListener(e,t)}))},this._handleError=function(e){r._debug("error event",e.message),r._disconnect(void 0,"TIMEOUT"===e.message?"timeout":void 0),r.onerror&&r.onerror(e),r._debug("exec error listeners"),r._listeners.error.forEach((function(t){return r._callEventListener(e,t)})),r._connect()},this._handleClose=function(e){r._debug("close event"),r._clearTimeouts(),r._shouldReconnect&&r._connect(),r.onclose&&r.onclose(e),r._listeners.close.forEach((function(t){return r._callEventListener(e,t)}))},this._url=e,this._protocols=t,this._options=n,this._options.startClosed&&(this._shouldReconnect=!1),this._connect()}return Object.defineProperty(e,"CONNECTING",{get:function(){return 0},enumerable:!0,configurable:!0}),Object.defineProperty(e,"OPEN",{get:function(){return 1},enumerable:!0,configurable:!0}),Object.defineProperty(e,"CLOSING",{get:function(){return 2},enumerable:!0,configurable:!0}),Object.defineProperty(e,"CLOSED",{get:function(){return 3},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"CONNECTING",{get:function(){return e.CONNECTING},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"OPEN",{get:function(){return e.OPEN},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"CLOSING",{get:function(){return e.CLOSING},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"CLOSED",{get:function(){return e.CLOSED},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"binaryType",{get:function(){return this._ws?this._ws.binaryType:this._binaryType},set:function(e){this._binaryType=e,this._ws&&(this._ws.binaryType=e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"retryCount",{get:function(){return Math.max(this._retryCount,0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"bufferedAmount",{get:function(){return this._messageQueue.reduce((function(e,t){return"string"==typeof t?e+=t.length:t instanceof Blob?e+=t.size:e+=t.byteLength,e}),0)+(this._ws?this._ws.bufferedAmount:0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"extensions",{get:function(){return this._ws?this._ws.extensions:""},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"protocol",{get:function(){return this._ws?this._ws.protocol:""},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"readyState",{get:function(){return this._ws?this._ws.readyState:this._options.startClosed?e.CLOSED:e.CONNECTING},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"url",{get:function(){return this._ws?this._ws.url:""},enumerable:!0,configurable:!0}),e.prototype.close=function(e,t){void 0===e&&(e=1e3),this._closeCalled=!0,this._shouldReconnect=!1,this._clearTimeouts(),this._ws?this._ws.readyState!==this.CLOSED?this._ws.close(e,t):this._debug("close: already closed"):this._debug("close enqueued: no ws instance")},e.prototype.reconnect=function(e,t){this._shouldReconnect=!0,this._closeCalled=!1,this._retryCount=-1,this._ws&&this._ws.readyState!==this.CLOSED?(this._disconnect(e,t),this._connect()):this._connect()},e.prototype.send=function(e){if(this._ws&&this._ws.readyState===this.OPEN)this._debug("send",e),this._ws.send(e);else{var t=this._options.maxEnqueuedMessages,n=void 0===t?u.maxEnqueuedMessages:t;this._messageQueue.length=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}}}(r),i=o.next();!i.done;i=o.next()){var a=i.value;this._callEventListener(e,a)}}catch(e){t={error:e}}finally{try{i&&!i.done&&(n=o.return)&&n.call(o)}finally{if(t)throw t.error}}return!0},e.prototype.removeEventListener=function(e,t){this._listeners[e]&&(this._listeners[e]=this._listeners[e].filter((function(e){return e!==t})))},e.prototype._debug=function(){for(var e=[],t=0;t"],e))},e.prototype._getNextDelay=function(){var e=this._options,t=e.reconnectionDelayGrowFactor,n=void 0===t?u.reconnectionDelayGrowFactor:t,r=e.minReconnectionDelay,o=void 0===r?u.minReconnectionDelay:r,i=e.maxReconnectionDelay,a=void 0===i?u.maxReconnectionDelay:i,s=0;return this._retryCount>0&&(s=o*Math.pow(n,this._retryCount-1))>a&&(s=a),this._debug("next delay",s),s},e.prototype._wait=function(){var e=this;return new Promise((function(t){setTimeout(t,e._getNextDelay())}))},e.prototype._getNextUrl=function(e){if("string"==typeof e)return Promise.resolve(e);if("function"==typeof e){var t=e();if("string"==typeof t)return Promise.resolve(t);if(t.then)return t}throw Error("Invalid URL")},e.prototype._connect=function(){var e=this;if(!this._connectLock&&this._shouldReconnect){this._connectLock=!0;var t=this._options,n=t.maxRetries,r=void 0===n?u.maxRetries:n,o=t.connectionTimeout,i=void 0===o?u.connectionTimeout:o,a=t.WebSocket,s=void 0===a?c():a;if(this._retryCount>=r)this._debug("max retries reached",this._retryCount,">=",r);else{if(this._retryCount++,this._debug("connect",this._retryCount),this._removeListeners(),void 0===(l=s)||!l||2!==l.CLOSING)throw Error("No valid WebSocket class provided");var l;this._wait().then((function(){return e._getNextUrl(e._url)})).then((function(t){e._closeCalled||(e._debug("connect",{url:t,protocols:e._protocols}),e._ws=e._protocols?new s(t,e._protocols):new s(t),e._ws.binaryType=e._binaryType,e._connectLock=!1,e._addListeners(),e._connectTimeout=setTimeout((function(){return e._handleTimeout()}),i))}))}}},e.prototype._handleTimeout=function(){this._debug("timeout event"),this._handleError(new s(Error("TIMEOUT"),this))},e.prototype._disconnect=function(e,t){if(void 0===e&&(e=1e3),this._clearTimeouts(),this._ws){this._removeListeners();try{this._ws.close(e,t),this._handleClose(new l(e,t,this))}catch(e){}}},e.prototype._acceptOpen=function(){this._debug("accept open"),this._retryCount=0},e.prototype._callEventListener=function(e,t){"handleEvent"in t?t.handleEvent(e):t(e)},e.prototype._removeListeners=function(){this._ws&&(this._debug("removeListeners"),this._ws.removeEventListener("open",this._handleOpen),this._ws.removeEventListener("close",this._handleClose),this._ws.removeEventListener("message",this._handleMessage),this._ws.removeEventListener("error",this._handleError))},e.prototype._addListeners=function(){this._ws&&(this._debug("addListeners"),this._ws.addEventListener("open",this._handleOpen),this._ws.addEventListener("close",this._handleClose),this._ws.addEventListener("message",this._handleMessage),this._ws.addEventListener("error",this._handleError))},e.prototype._clearTimeouts=function(){clearTimeout(this._connectTimeout),clearTimeout(this._uptimeTimeout)},e}();t.default=f},78:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=n(172),i=r(n(5843));t.default=({mapZoomFactor:e,annotations:t})=>(0,o.h)("div",{"data-testid":"meridian--private--annotation-layer"},t.map(((t,n)=>"point"===t.type?(0,o.h)(i.default,Object.assign({key:n},t,{mapZoomFactor:e})):null)))},5843:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(172),o=n(2785),i=n(7746),a=({mapZoomFactor:e,x:t,y:n,size:o=24,backgroundColor:a="hsl(207, 65%, 46%)",backgroundSize:c="cover",backgroundImage:u,title:f,onClick:h,data:p={}})=>(0,r.h)("div",{className:s,style:{"--meridian-annotationPoint-x":`${t}px`,"--meridian-annotationPoint-y":`${n}px`,"--meridian-annotationPoint-scale":1/e,"--meridian-annotationPoint-size":`${o}px`,"--meridian-annotationPoint-backgroundColor":a,"--meridian-annotationPoint-backgroundSize":c,"--meridian-annotationPoint-backgroundImage":u?`url('${u}')`:"none",cursor:h?"pointer":"initial"},onClick:h?()=>(0,i.asyncClientCall)(h,p):void 0,"data-testid":"meridian--private--annotation-point"},f?(0,r.h)("div",{className:l,"data-testid":"meridian--private--annotation-point-title"},f):null),s=(0,o.css)({label:"AnnotationPoint",position:"absolute",top:"var(--meridian-annotationPoint-y)",left:"var(--meridian-annotationPoint-x)",transform:"translate(-50%, -50%) scale(var(--meridian-annotationPoint-scale))",width:"var(--meridian-annotationPoint-size)",height:"var(--meridian-annotationPoint-size)",backgroundColor:"var(--meridian-annotationPoint-backgroundColor)",backgroundImage:"var(--meridian-annotationPoint-backgroundImage)",backgroundSize:"var(--meridian-annotationPoint-backgroundSize)",backgroundRepeat:"no-repeat",backgroundPosition:"center",borderRadius:9999,userSelect:"none"}),l=(0,o.css)(o.mixins.textStrokeWhite,{label:"AnnotationPoint-Label",marginLeft:"50%",position:"absolute",minWidth:55,maxWidth:120,fontSize:14,textAlign:"center",marginTop:"var(--meridian-annotationPoint-size)",paddingTop:4,color:"#222",userSelect:"none",transform:"translate(-50%, 0)",fontWeight:"bold"});a.displayName="AnnotationPoint",t.default=a},2150:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=r(n(1324)),i=n(172),a=r(n(2930)),s=r(n(9594)),l=r(n(8828)),c=r(n(6933)),u=n(2785),f=r(n(7866)),h=n(7746);class p extends i.Component{constructor(){super(...arguments),this.state={searchFilter:"",searchType:this.props.showTags?"tags":"placemarks"},this.searchInputRef=(0,i.createRef)(),this.setRadioFilter=e=>{this.setState({searchType:e})}}componentDidMount(){this.searchInputRef.current&&this.searchInputRef.current.focus()}render(){const{floors:e,tagsLoading:t,placemarksLoading:n,toggleAssetListOverlay:r,showTags:a,showPlacemarks:s,language:u}=this.props,p=f.default.lookup("tags",u),g=f.default.lookup("search_tags",u),v=f.default.lookup("placemarks",u),y=f.default.lookup("search_placemarks",u),{searchFilter:_}=this.state,b=(0,h.createSearchMatcher)(_),w=(0,o.default)(e,(e=>e.id)),S={};for(const t of e)S[t.id]=[t.group_name||h.uiText.unnamedBuilding,h.uiText.enDash,t.name].join(" ");return(0,i.h)(l.default,{position:"right",onCloseClicked:()=>{r({open:!1})}},(0,i.h)(c.default,{placeholder:"tags"===this.state.searchType?g:y,value:_,onChange:e=>{this.setState({searchFilter:e})}}),(0,i.h)("div",{className:O(Boolean(a&&s))},a?(0,i.h)(i.Fragment,null,(0,i.h)("input",{type:"radio",name:"searchType",id:"tags",className:x,checked:"tags"===this.state.searchType,onChange:e=>{e.target.checked&&this.setRadioFilter("tags")}}),(0,i.h)("label",{for:"tags",className:k},p)):null,s?(0,i.h)(i.Fragment,null,(0,i.h)("input",{type:"radio",name:"searchType",id:"placemarks",className:x,checked:"placemarks"===this.state.searchType,onChange:e=>{e.target.checked&&this.setRadioFilter("placemarks")}}),(0,i.h)("label",{for:"placemarks",className:k},v)):null),(()=>"tags"===this.state.searchType?(0,i.h)(d,Object.assign({},this.props,{floorToGroup:S,floorsByID:w,match:b,loading:t})):(0,i.h)(m,Object.assign({},this.props,{floorToGroup:S,floorsByID:w,match:b,loading:n})))())}}function d(e){const{currentFloorID:t,updateMap:n,tagOptions:r={},tags:l,loading:c,onTagClick:p,toggleAssetListOverlay:d,match:m,floorsByID:k,floorToGroup:x,language:O}=e,S=f.default.lookup("no_results_found",O),C=l.filter((e=>{const t=k[e.map_id][0];return!t||t.published})).filter((e=>m(e.name||"")||m(e.mac)||(0,h.getTagLabels)(e).some(m))).filter((e=>!0===r.showControlTags||!e.is_control_tag)).sort(((e,t)=>e.namet.name?1:0)),A=(0,o.default)(C,(e=>x[e.map_id])),E=Object.keys(A).sort();return E.forEach(((e,n)=>{if(A[e][0].map_id===t){const[e]=E.splice(n,1);E.unshift(e)}})),c?(0,i.h)("div",{className:w},(0,i.h)(a.default,null)):0===C.length?(0,i.h)("div",{className:w},S,"."):(0,i.h)("div",{className:v},E.map((e=>(0,i.h)("div",{key:e},(0,i.h)("div",{className:g},e),A[e].map((e=>(0,i.h)("button",{key:e.id,"data-testid":`meridian--private--overlay-tag-${e.id}`,className:y,onClick:()=>{n({floorID:e.map_id,tags:Object.assign(Object.assign({},r),{filter:()=>!0})}),p(e),d({open:!1})}},(0,i.h)("div",{className:_},(0,i.h)("div",{className:b},e.name||e.mac),(0,i.h)(s.default,{align:"right",labels:(0,h.getTagLabels)(e),fontSize:u.theme.fontSizeSmallest})))))))))}function m(e){const{currentFloorID:t,updateMap:n,placemarkOptions:r={},toggleAssetListOverlay:s,floorToGroup:l,match:c,placemarks:u,onPlacemarkClick:h,floorsByID:p,loading:d,language:m}=e,_=f.default.lookup("no_results_found",m),k=u.filter((e=>{const t=p[e.map][0];return!t||t.published})).filter((e=>e.is_searchable||null===e.is_searchable||void 0===e.is_searchable)).filter((e=>"exclusion_area"!==e.type&&(!0===r.showHiddenPlacemarks||!e.hide_on_map))).filter((e=>c(e.name||"")||c(e.type_name||""))).sort(((e,t)=>e.namet.name?1:0)),x=(0,o.default)(k,(e=>l[e.map])),O=Object.keys(x).sort();return O.forEach(((e,n)=>{if(x[e][0].map_id===t){const[e]=O.splice(n,1);O.unshift(e)}})),d?(0,i.h)("div",{className:w},(0,i.h)(a.default,null)):0===k.length?(0,i.h)("div",{className:w},_,"."):(0,i.h)("div",{className:v},O.map((e=>(0,i.h)("div",{key:e},(0,i.h)("div",{className:g},e),x[e].map((e=>(0,i.h)("button",{key:e.id,"data-testid":`meridian--private--overlay-tag-${e.id}`,className:y,onClick:()=>{n({floorID:e.map,placemarks:Object.assign(Object.assign({},r),{filter:()=>!0})}),h(e),s({open:!1})}},(0,i.h)("div",{className:b},e.name||e.type_name))))))))}const g=(0,u.css)({label:"overlay-building-name",top:0,position:"sticky",textTransform:"uppercase",fontWeight:"bold",color:u.theme.brandBlue,background:u.theme.almostWhite,fontSize:u.theme.fontSizeSmaller,padding:10}),v=(0,u.css)({label:"asset-list",overflowY:"auto",flex:"1 1 auto"}),y=(0,u.css)(u.mixins.buttonReset,u.mixins.focusRingMenuItem,u.mixins.buttonHoverActive,{label:"overlay-asset-button",minHeight:56,padding:10,paddingLeft:20,display:"block",width:"100%",textAlign:"left"}),_=(0,u.css)(u.mixins.flexRow,{label:"overlay-asset-button-inner",alignItems:"center"}),b=(0,u.css)({label:"overlay-asset-button-name",flex:"1 1 auto"}),w=(0,u.css)({label:"overlay-asset-list-empty",padding:"60px 20px",textAlign:"center",fontSize:u.theme.fontSizeBigger,color:u.theme.textColorBluish}),k=(0,u.css)({label:"overlay-radio-label",color:"white",padding:"2px 10px 0px 4px"}),x=(0,u.css)({label:"overlay-radio-button",WebkitAppearance:"none",position:"relative",boxSizing:"border-box",border:"1px solid rgb(224,224,225)",width:16,height:16,background:"white",borderRadius:9999,cursor:"pointer",boxShadow:"inset 0 2px 2px rgba(0, 0, 0, 0.1)","&:focus":{outline:"none",borderColor:u.theme.searchBarColor,borderWidth:2},"&:checked":{"--circle-color":u.theme.searchBarColor,"--circle-gap":"4px"},"&:checked::after":{content:'" "',position:"absolute",width:"calc(100% - var(--circle-gap))",height:"calc(100% - var(--circle-gap))",left:"calc(var(--circle-gap) / 2)",top:"calc(var(--circle-gap) / 2)",background:"var(--circle-color)",borderRadius:9999},"&:checked:focus":{"--circle-gap":"4px","--circle-color":u.theme.searchBarColor,borderColor:u.theme.searchBarColor,borderWidth:2}}),O=e=>(0,u.css)({label:"overlay-radio-container",display:e?"flex":"none",flexDirection:"row",justifyContent:"baseline",paddingLeft:10,paddingBottom:10,backgroundColor:"rgb(105, 146, 176)",alignItems:"center"});t.default=p},324:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=n(172),i=r(n(9594)),a=r(n(8828)),s=n(2785),l=n(7746),c=n(4221),u=(0,s.css)({label:"overlay-image",width:"100%",backgroundColor:"white",backgroundPosition:"center",backgroundRepeat:"no-repeat",backgroundSize:"cover"}),f=(0,s.css)({label:"overlay-name",fontSize:22}),h=(0,s.css)({label:"overlay-content",padding:"0 20px 15px 20px",overflow:"auto"}),p=(0,s.css)({label:"overlay-tag-data",fontSize:14}),d=(0,s.css)({label:"overlay-placemark-data",fontSize:14});t.default=({kind:e,item:t,toggleDetailsOverlay:n})=>{const r="placemark"===e&&t.image_url?{backgroundImage:`url('${t.image_url}')`,backgroundSize:"contain",height:300,minHeight:220}:"placemark"===e?{backgroundSize:"contain",backgroundImage:`url('${(0,c.placemarkIconURL)(t.type)}')`,backgroundColor:`#${t.color}`,height:300,minHeight:220}:"tag"===e&&t.image_url?{backgroundImage:`url('${t.image_url}')`,height:300}:{background:s.theme.brandBrightBlue,height:300};return(0,o.h)(a.default,{position:"left",onCloseClicked:()=>{n({open:!1})}},(0,o.h)("div",{className:u,style:r}),(0,o.h)("div",{className:(0,s.cx)("meridian-overlay-content",h)},(0,o.h)("p",{className:(0,s.cx)("meridian-overlay-item-name",f)},t.name||t.type_name),"tag"===e?(0,o.h)("div",{className:(0,s.cx)("meridian-overlay-tag-data",p)},(0,o.h)(i.default,{align:"left",labels:(0,l.getTagLabels)(t),fontSize:s.theme.fontSize}),(0,o.h)("p",null,"MAC: ",t.mac)):(0,o.h)("div",{className:(0,s.cx)("meridian-overlay-placemark-description",d),dangerouslySetInnerHTML:function(){if("placemark"===e&&t.description)return{__html:t.description}}()})))}},8812:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=n(172),i=r(n(4145)),a=n(2785),s=(0,a.css)(a.mixins.rounded,{label:"error",position:"absolute",zIndex:4,top:"35%",left:0,right:0,margin:"0 auto",minWidth:300,maxWidth:420,border:"1px solid #dfe1ef",paddingTop:15,paddingRight:20,paddingBottom:15,paddingLeft:25,background:a.theme.white,boxShadow:"0 0 1px rgba(0, 0, 0, 0.15), inset 4px 0 0 #d82e1f"}),l=(0,a.css)(a.mixins.buttonReset,{label:"close",cursor:"pointer",float:"right",width:38,height:38,marginLeft:15,padding:4,fill:"#c3c5c8","&:hover":{fill:a.theme.textColorBluish,cursor:"pointer"},"&:focus":{outline:0}});t.default=({toggleErrorOverlay:e,messages:t=["Unknown"]})=>(0,o.h)("div",{className:s},(0,o.h)("button",{className:l,onClick:()=>{e({open:!1})}},(0,o.h)(i.default,null)),(0,o.h)("p",null,"Sorry, something went wrong. It might be related to:"),(0,o.h)("ul",null,t.map(((e,t)=>(0,o.h)("li",{key:t},e)))))},3169:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(172),o=n(2785),i=(0,o.css)({label:"floor-and-tag-controls",display:"flex",flexDirection:"column",position:"absolute",zIndex:1,right:15,top:15}),a=(0,o.css)(o.mixins.buttonReset,o.mixins.shadow,o.mixins.rounded,o.mixins.buttonHoverActive,o.mixins.focusRing,{label:"control",cursor:"pointer",background:"white",padding:4,width:40,height:40,border:0,fontSize:20,fontWeight:200,fill:o.theme.brandBrightBlue}),s=(0,o.css)(a,{marginTop:10});t.default=({toggleFloorOverlay:e,toggleAssetListOverlay:t,showFloors:n,showSearch:l})=>(0,r.h)("div",{className:i},l?(0,r.h)("button",{className:(0,o.cx)("meridian-tag-control",a),"data-testid":"meridian--private--tag-control",onClick:()=>{t({open:!0})}},(0,r.h)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 36 36"},(0,r.h)("path",{d:"M26.19 25l-4.12-4.12a7.29 7.29 0 001.44-4.35 7.11 7.11 0 00-7-7.2 7.11 7.11 0 00-7 7.2 7.11 7.11 0 007 7.2 6.83 6.83 0 004.16-1.42l4.1 4.1A1 1 0 0026.19 25zm-14.68-8.49a5.11 5.11 0 015-5.2 5.11 5.11 0 015 5.2 5.11 5.11 0 01-5 5.2 5.11 5.11 0 01-5-5.2z"}))):null,n?(0,r.h)("button",{className:(0,o.cx)("meridian-floor-control",n&&l?s:a),"data-testid":"meridian--private--floor-control",onClick:()=>{e({open:!0})}},(0,r.h)("svg",{viewBox:"0 0 36 36"},(0,r.h)("path",{d:"M28.4 14.09a1.84 1.84 0 0 0-.62-.39l-8.48-3.33a3.61 3.61 0 0 0-1.3-.22 3.56 3.56 0 0 0-1.3.22L8.22 13.7a1.83 1.83 0 0 0-.62.39 1.24 1.24 0 0 0 0 1.82 1.85 1.85 0 0 0 .62.39l8.48 3.34a3.92 3.92 0 0 0 2.59 0l8.48-3.34a1.86 1.86 0 0 0 .62-.39 1.24 1.24 0 0 0 0-1.82m-9.83 3.68a2 2 0 0 1-1.13 0l-7-2.77 7-2.77a2 2 0 0 1 1.13 0l7 2.77zm9.83 2.32a1.24 1.24 0 0 1 0 1.82 1.86 1.86 0 0 1-.62.39l-8.47 3.33a3.92 3.92 0 0 1-2.59 0L8.22 22.3a1.85 1.85 0 0 1-.62-.39 1.24 1.24 0 0 1 0-1.82 1.83 1.83 0 0 1 .62-.39L10 19l2.73 1.08-2.34.92 7 2.77a2 2 0 0 0 1.13 0l7-2.77-2.35-.92L26 19l1.79.7a1.84 1.84 0 0 1 .62.39"}))):null)},6670:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(172),o=n(2785),i=n(7746),a=(0,o.css)(o.mixins.buttonReset,o.mixins.rounded,o.mixins.overflowEllipses,{label:"floor-control",background:"rgba(0, 0, 0, 0.4)",color:"white",textShadow:"0 0 2px black",position:"absolute",zIndex:1,bottom:15,left:"50%",transform:"translate(-50%, 0)",textAlign:"center",maxWidth:300,padding:"8px 16px",border:0,fontSize:16});t.default=({buildingName:e,floorName:t})=>(0,r.h)("div",{className:(0,o.cx)("meridian-floor-label",a),"data-testid":"meridian--private--floor-label"},e||i.uiText.unnamedBuilding," ",i.uiText.enDash," ",t)},4144:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=r(n(1324)),i=n(172),a=r(n(8828)),s=r(n(6933)),l=n(2785),c=r(n(7866)),u=n(7746);class f extends i.Component{constructor(){super(...arguments),this.state={searchFilter:""},this.searchInputRef=(0,i.createRef)()}componentDidMount(){this.searchInputRef.current&&this.searchInputRef.current.focus()}render(){const{currentFloorID:e,toggleFloorOverlay:t,selectFloorByID:n,floors:r,language:f}=this.props,y=c.default.lookup("search_floors",f),_=c.default.lookup("no_results_found",f),{searchFilter:b}=this.state,w=(0,u.createSearchMatcher)(b),k=r.filter((e=>e.published&&(w(e.name||"")||w(e.group_name||u.uiText.unnamedBuilding)))),x=(0,o.default)(k,"group_name"),O=Object.keys(x).sort();""===O[0]&&(O.push(O[0]),O.shift());for(const e of O)x[e].sort(((e,t)=>Math.sign(e.level-t.level))),this.props.sortDescending&&x[e].reverse();return(0,i.h)(a.default,{position:"right",onCloseClicked:()=>{t({open:!1})}},(0,i.h)(s.default,{placeholder:y,value:b,onChange:e=>{this.setState({searchFilter:e})}}),0===O.length?(0,i.h)("div",{className:m},_,"."):(0,i.h)("div",{className:p,"data-testid":"meridian--private--floors-list"},O.map((r=>(0,i.h)("div",{key:r},(0,i.h)("div",{className:h},r||u.uiText.unnamedBuilding),x[r].map((r=>(0,i.h)("button",{key:r.name,onClick:()=>{n(r.id),t({open:!1})},className:(0,l.cx)(d,r.id===e?g:void 0),"data-testid":r.id===e?"meridian--private--current-floor":"meridian--private--floor"},r.name,r.id===e?(0,i.h)("svg",{viewBox:"0 0 10 7",className:v},(0,i.h)("path",{d:"M3.9 7C3.7 7 3.4 6.9 3.2 6.7L0.3 3.8C-0.1 3.4 -0.1 2.8 0.3 2.4C0.7 2 1.3 2 1.7 2.4L3.9 4.6L8.2 0.3C8.6 -0.1 9.2 -0.1 9.6 0.3C10 0.7 10 1.3 9.6 1.7L4.6 6.7C4.4 6.9 4.2 7 3.9 7Z"})):null))))))))}}const h=(0,l.css)({label:"overlay-building-name",textTransform:"uppercase",fontWeight:"bold",top:0,position:"sticky",color:l.theme.brandBlue,background:l.theme.almostWhite,fontSize:l.theme.fontSizeSmaller,padding:10}),p=(0,l.css)({label:"floors-list",overflowY:"auto"}),d=(0,l.css)(l.mixins.buttonReset,l.mixins.focusRingMenuItem,l.mixins.buttonHoverActive,{label:"overlay-floor-button",padding:10,paddingLeft:20,display:"block",width:"100%",textAlign:"left"}),m=(0,l.css)({label:"overlay-floor-list-empty",padding:"60px 20px",textAlign:"center",fontSize:l.theme.fontSizeBigger,color:l.theme.textColorBluish}),g=(0,l.css)({label:"overlay-floor-button-curent-floor",color:l.theme.brandBrightBlue,fill:"currentcolor"}),v=(0,l.css)({label:"floor-checkmark",verticalAlign:"middle",marginLeft:"0.5em",width:"0.8em",height:"0.8em"});t.default=f},4145:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(172);t.default=()=>(0,r.h)("svg",{viewBox:"0 0 36 36"},(0,r.h)("path",{d:"M19.41 18l6.36-6.36a1 1 0 0 0-1.41-1.41L18 16.59l-6.36-6.36a1 1 0 0 0-1.41 1.41L16.59 18l-6.36 6.36a1 1 0 1 0 1.41 1.41L18 19.41l6.36 6.36a1 1 0 0 0 1.41-1.41z"}))},2930:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(172),o=n(2785),i=(0,o.keyframes)({from:{transform:"rotate(0turn)"},to:{transform:"rotate(1turn)"}}),a=(0,o.css)({label:"spinner",width:22,height:22,margin:"0 auto",border:"2px rgba(227, 227, 227, 0.9) solid",borderTop:"2px #2e7cbe solid",borderRadius:"50%",animation:`${i} 600ms infinite linear`});t.default=()=>(0,r.h)("div",{className:a})},9594:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(172),o=n(2785),i=(0,o.css)({label:"label-list",fontSize:"var(--meridian-labelList-fontSize)",marginTop:8,marginLeft:3,textAlign:"var(--meridian-labelList-textAlign)",flex:"1 1 auto"}),a=(0,o.css)(o.mixins.maxRounded,{label:"label",display:"inline-block",padding:"3px 8px",marginBottom:8,marginRight:8,background:"rgba(0, 0, 0, 0.035)",border:"1px solid rgba(0, 0, 0, 0.05)",color:"#3b3b3b"});t.default=({align:e,labels:t,fontSize:n=o.theme.fontSize})=>0===t.length?null:(0,r.h)("div",{className:i,style:{"--meridian-labelList-fontSize":n,"--meridian-labelList-textAlign":e}},t.map(((e,t)=>(0,r.h)("div",{key:t,className:a},e))))},4905:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=n(172),i=n(2785),a=r(n(2930)),s=(0,i.css)({label:"loading",position:"absolute",zIndex:1,width:30,left:0,top:"45%",right:0,overflow:"hidden",margin:"0 auto",color:i.theme.textColor,textAlign:"center",pointerEvents:"none"});t.default=()=>(0,o.h)("div",{className:s},(0,o.h)(a.default,null))},529:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=n(9062);n(7662);const i=n(9529),a=n(172),s=r(n(78)),l=r(n(324)),c=r(n(8812)),u=r(n(3169)),f=r(n(6670)),h=r(n(4144)),p=r(n(4905)),d=r(n(6805)),m=r(n(7387)),g=n(2785),v=r(n(8901)),y=r(n(2150)),_=n(7746),b=r(n(5481)),w=r(n(181));class k extends a.Component{constructor(){super(...arguments),this.state={mapImageURL:void 0,isFloorOverlayOpen:!1,isAssetListOverlayOpen:!1,isMapMarkerOverlayOpen:!1,isErrorOverlayOpen:!1,isPanningOrZooming:!1,loadingSources:{},errors:[],mapTransform:"",mapZoomFactor:.5,floors:[],allPlacemarkData:[],svgURL:void 0,tagsConnection:void 0,tagsStatus:"Connecting",selectedItem:void 0,areTagsLoading:Boolean(this.props.showSearchControl&&this.props.loadTags),arePlacemarksLoading:Boolean(this.props.showSearchControl&&this.props.loadPlacemarks),allTagData:[]},this.isMounted=!1,this.isLoaded=!1,this.fetchAllTagsInitialized=!1,this.fetchAllPlacemarksInitialized=!1,this.mapRef=(0,a.createRef)(),this.mapContainerRef=(0,a.createRef)(),this.mapImageref=(0,a.createRef)(),this.debouncedResizeFn=(0,w.default)(this.handleResize.bind(this),250),this.onTagsInit=()=>{this.props.showSearchControl&&this.props.loadTags&&this.fetchAllTags()},this.onPlacemarksInit=()=>{this.props.showSearchControl&&this.props.loadPlacemarks&&this.fetchAllPlacemarks()},this.updateMap=e=>{const{update:t}=this.props;t(e)},this.toggleAssetListOverlay=({open:e})=>{this.isMounted&&this.setState({isAssetListOverlayOpen:e})},this.toggleFloorOverlay=({open:e})=>{this.isMounted&&this.setState({isFloorOverlayOpen:e})},this.toggleErrorOverlay=({open:e,message:t="Unknown"})=>{this.isMounted&&(e?this.setState((e=>({errors:[...e.errors,t],isErrorOverlayOpen:!0}))):this.setState({isErrorOverlayOpen:!1,errors:[]}))},this.toggleLoadingSpinner=({show:e,source:t="unknown"})=>{this.isMounted&&this.setState((n=>({loadingSources:Object.assign(Object.assign({},n.loadingSources),{[t]:e})})))},this.toggleDetailsOverlay=({open:e,selectedItem:t})=>{this.setState({isMapMarkerOverlayOpen:e,selectedItem:t})},this.selectFloorByID=e=>{if(this.updateMap({floorID:e,annotations:[],overlays:[]}),this.props.onFloorChange){const t=this.state.floors.find((t=>t.id===e));t&&(0,_.asyncClientCall)(this.props.onFloorChange,t)}},this.zoomToPoint=(e,t,n)=>{if(!this.mapSelection)throw new Error("mapSelection is not defined");if(!this.zoomD3)throw new Error("zoomD3 is not defined");const{width:r,height:o}=this.getMapRefSize(),a=i.zoomIdentity.translate(-n*e+r/2,-n*t+o/2).scale(n);this.mapSelection.transition().duration(250).call(this.zoomD3.transform,a)},this.zoomBy=e=>{if(!this.mapSelection)throw new Error("mapSelection is not defined");if(!this.zoomD3)throw new Error("zoomD3 is not defined");this.mapSelection.transition().duration(250).call(this.zoomD3.scaleBy,e)},this.zoomIn=()=>{this.zoomBy(1.5)},this.zoomOut=()=>{this.zoomBy(.5)},this.onClick=e=>{var t,n,r;const o=e.target instanceof Element&&((null===(n=null===(t=this.mapRef.current)||void 0===t?void 0:t.isEqualNode)||void 0===n?void 0:n.call(t,e.target))||(null===(r=this.mapImageref.current)||void 0===r?void 0:r.isEqualNode(e.target)));this.props.onMapClick&&o?(0,_.asyncClientCall)(this.props.onMapClick):o&&this.toggleDetailsOverlay({open:!1})},this.onTagClick=async e=>{let t=!0;const{onTagClick:n=(()=>{})}=this.props;try{const r={preventDefault:()=>{t=!1}};await n(e,r)}catch(e){(0,_.logError)(e)}t&&this.toggleDetailsOverlay({open:!0,selectedItem:e})},this.onPlacemarkClick=async e=>{let t=!0;const{onPlacemarkClick:n=(()=>{})}=this.props;try{const r={preventDefault:()=>{t=!1}};await n(e,r)}catch(e){(0,_.logError)(e)}t&&this.toggleDetailsOverlay({open:!0,selectedItem:e})}}componentDidMount(){this.validateFloorID(),this.isMounted=!0;const{api:e,locationID:t}=this.props;(0,_.isEnvOptions)(e.environment)?t?this.loadData():this.toggleErrorOverlay({open:!0,message:'createMap error: "options.locationID" is required'}):this.toggleErrorOverlay({open:!0,message:`API error: "${e.environment}" is not a valid environment`}),this.intervalAutoDestroy=setInterval((()=>{this.isMounted&&this.mapContainerRef.current&&!this.mapContainerRef.current.isConnected&&this.props.destroy()}),1e3),window.addEventListener("resize",this.debouncedResizeFn)}async loadData(){await this.initializeFloors()}componentDidUpdate(e){if(this.props.locationID!==e.locationID)return this.toggleAssetListOverlay({open:!1}),this.toggleErrorOverlay({open:!1}),this.toggleDetailsOverlay({open:!1}),this.toggleFloorOverlay({open:!1}),this.zoomToDefault(),this.freeMapImageURL(),this.setState({mapImageURL:void 0,allPlacemarkData:[]}),void this.loadData();this.props.loadTags&&this.props.showSearchControl&&!e.showSearchControl&&this.fetchAllTags({forceUpdate:!0}),e.floorID!==this.props.floorID?(this.zoomToDefault(),this.validateFloorID(),this.freeMapImageURL(),this.setState({mapImageURL:void 0}),this.fetchMapImageURL()):this.props.loadPlacemarks&&this.props.showSearchControl&&!e.showSearchControl&&this.fetchAllPlacemarks({forceUpdate:!0})}componentWillUnmount(){this.isMounted=!1,this.fetchAllTagsTimeout&&clearTimeout(this.fetchAllTagsTimeout),this.fetchAllPlacemarksTimeout&&clearTimeout(this.fetchAllPlacemarksTimeout),this.freeMapImageURL(),clearInterval(this.intervalAutoDestroy),window.removeEventListener("resize",this.debouncedResizeFn)}handleResize(){const e=this.mapContainerSize,t=this.getMapRefSize(),{width:n,height:r}=e||{},{width:o,height:i}=t;n===o&&r===i||(this.mapContainerSize=t,this.zoomToDefault())}freeMapImageURL(){this.state.mapImageURL&&URL.revokeObjectURL(this.state.mapImageURL)}async fetchMapImageURL(){const{api:e,locationID:t,floorID:n}=this.props,r=this.getMapData();if(!r)return;const o=await e.fetchSVG(r.svg_url);this.isMounted&&(n===this.props.floorID&&t===this.props.locationID?this.setState({mapImageURL:o}):URL.revokeObjectURL(o))}validateFloorID(){const{floorID:e}=this.props;e||this.toggleErrorOverlay({open:!0,message:'createMap error: "options.floorID" is required'})}fetchAllTags(e={forceUpdate:!1}){if(this.fetchAllTagsInitialized&&!e.forceUpdate)return;const t=async()=>{this.fetchAllTagsInitialized=!0;try{this.fetchAllTagsTimeout&&clearTimeout(this.fetchAllTagsTimeout);const{api:e,locationID:n}=this.props;this.setState({areTagsLoading:!0});let r=[];try{r=await e.fetchTagsByLocation(n)}catch(e){return void(0,_.logError)("Failed to load tags; use `loadTags: false` if this location does not have the tags paid feature")}if(!this.isMounted)return;if(n!==this.props.locationID||!this.props.loadTags)return;this.setState({allTagData:r}),this.fetchAllTagsTimeout=setTimeout(t,3e5)}finally{this.setState({areTagsLoading:!1})}};this.props.loadTags&&t()}showLoadingSpinner(){const{loadingSources:e}=this.state,t=Object.keys(e).some((t=>!0===e[t]));return this.props.onLoadingStateChange&&this.isLoaded!==t&&(this.isLoaded=t,(0,_.asyncClientCall)(this.props.onLoadingStateChange,t)),t}fetchAllPlacemarks(e={forceUpdate:!1}){if(this.fetchAllPlacemarksInitialized&&!e.forceUpdate)return;const t=async()=>{this.fetchAllPlacemarksInitialized=!0;try{this.fetchAllPlacemarksTimeout&&clearTimeout(this.fetchAllPlacemarksTimeout);const{locationID:e,api:n}=this.props;let r=[];this.setState({arePlacemarksLoading:!0});try{if(this.props.loadPlacemarks&&(r=await n.fetchPlacemarksByLocation(e)),!this.isMounted)return;this.setState({allPlacemarkData:r})}catch(e){return void(0,_.logError)("Failed to load placemark data")}this.fetchAllPlacemarksTimeout=setTimeout(t,6e5)}finally{this.setState({arePlacemarksLoading:!1})}};this.props.loadPlacemarks&&t()}async getFloors(){const{locationID:e,api:t}=this.props;let n;try{if(n=await t.fetchFloorsByLocation(e),!this.isMounted)return[]}catch(e){e.response&&e.response.data&&e.response.data.detail&&this.toggleErrorOverlay({open:!0,message:e.response.data.detail})}return n&&n.length||this.toggleErrorOverlay({open:!0,message:"Floor data could not be found."}),n}getMapData(){const{floorID:e}=this.props,{floors:t}=this.state;return t.find((t=>t.id===e))}async initializeFloors(){this.toggleLoadingSpinner({show:!0,source:"map"});const{onFloorsUpdate:e=(()=>{}),locationID:t}=this.props,n=await this.getFloors();this.isMounted&&t===this.props.locationID&&(n&&n.length>0&&this.setState({floors:n},(()=>{this.zoomD3||this.addZoomBehavior(),this.zoomToDefault(),(0,_.asyncClientCall)(e,n),this.fetchMapImageURL()})),this.toggleLoadingSpinner({show:!1,source:"map"}))}addZoomBehavior(){if(this.mapRef.current){const e=()=>{if(!this.mapRef.current)return;const{k:e,x:t,y:n}=(0,i.zoomTransform)(this.mapRef.current),r=`translate(${t}px, ${n}px) scale(${e})`;this.setState({mapTransform:r,mapZoomFactor:e,isPanningOrZooming:!0})},t=()=>{this.setState({isPanningOrZooming:!1})};this.zoomD3=(0,i.zoom)().filter((e=>!this.props.shouldMapPanZoom||this.props.shouldMapPanZoom(e))).duration(250).on("zoom",e).on("end.zoom",t),this.mapSelection=(0,o.select)(this.mapRef.current),this.mapSelection.call(this.zoomD3)}}resetExtents(){var e;null===(e=this.zoomD3)||void 0===e||e.scaleExtent([0,1/0]).translateExtent([[-1/0,-1/0],[1/0,1/0]])}setExtents(e,t){var n;const r=this.props.minZoomLevel,o=this.props.maxZoomLevel;if(this.mapRef.current){const{k:a}=(0,i.zoomTransform)(this.mapRef.current),s=this.getMapRefSize(),l=s.width/a/1.5,c=s.height/a/1.5,u=r&&"number"==typeof r?r:a,f=o&&"number"==typeof o?o:8;null===(n=this.zoomD3)||void 0===n||n.scaleExtent([u,f]).translateExtent([[-l,-c],[e+l,t+c]])}}zoomToDefault(){const e=this.getMapData(),t=this.getMapRefSize(),n=null==e?void 0:e.width,r=null==e?void 0:e.height;this.mapContainerSize=t,n&&r&&this.mapSelection&&this.zoomD3&&(this.resetExtents(),this.mapSelection.call(this.zoomD3.translateTo,n/2,r/2),this.mapSelection.call(this.zoomD3.scaleTo,Math.min(.7*t.width/n,.7*t.height/r)),this.setExtents(n,r))}getMapRefSize(){if(!this.mapRef.current)throw new Error("mapRef is not defined");return{width:this.mapRef.current.clientWidth,height:this.mapRef.current.clientHeight}}centerMap(){const e=this.getMapData(),t=null==e?void 0:e.width,n=null==e?void 0:e.height;t&&n&&this.mapSelection&&this.zoomD3&&this.mapSelection.call(this.zoomD3.translateTo,t/2,n/2)}shouldShowFloors(){const{showFloorsControl:e=!0}=this.props,{floors:t}=this.state;return e&&t.length>1}renderFloorLabel(){const e=this.getMapData();return e?(0,a.h)(f.default,{buildingName:e.group_name,floorName:e.name}):null}renderFloorOverlay(){const{floorID:e,api:t}=this.props,{isFloorOverlayOpen:n,floors:r}=this.state;return n?(0,a.h)(h.default,{currentFloorID:e,floors:r,sortDescending:Boolean(this.props.floorsControlSortDescending),toggleFloorOverlay:this.toggleFloorOverlay,selectFloorByID:this.selectFloorByID,language:t.language}):null}renderAssetListOverlay(){var e;const{floorID:t,loadTags:n,loadPlacemarks:r,tags:o,placemarks:i,api:s}=this.props,{isAssetListOverlayOpen:l,floors:c,allTagData:u,areTagsLoading:f,arePlacemarksLoading:h,allPlacemarkData:p}=this.state;return l&&Boolean(r||n)?(0,a.h)(y.default,{onTagClick:this.onTagClick,onPlacemarkClick:this.onPlacemarkClick,showControlTags:Boolean(null!==(e=null==o?void 0:o.showControlTags)&&void 0!==e&&e),floors:c,tagsLoading:f,placemarksLoading:h,tags:u,tagOptions:o,placemarkOptions:i,updateMap:this.updateMap,currentFloorID:t,toggleAssetListOverlay:this.toggleAssetListOverlay,showTags:Boolean(n),showPlacemarks:Boolean(r),placemarks:p,language:s.language}):null}renderDetailsOverlay(){const{isMapMarkerOverlayOpen:e,selectedItem:t}=this.state;return e&&t?(0,a.h)(l.default,{toggleDetailsOverlay:this.toggleDetailsOverlay,kind:"mac"in t?"tag":"placemark",item:t}):null}renderLoadingSpinner(){return this.showLoadingSpinner()?(0,a.h)(p.default,null):null}renderErrorOverlay(){return this.state.isErrorOverlayOpen?(0,a.h)(c.default,{toggleErrorOverlay:this.toggleErrorOverlay,messages:this.state.errors}):null}render(){const e=this.getMapData(),{mapImageURL:t,selectedItem:n,mapTransform:r,mapZoomFactor:o,isPanningOrZooming:i,errors:l}=this.state,{locationID:c,floorID:f,api:h,tags:p,placemarks:y,overlays:_=[],annotations:w=[],width:k="",height:S="",onTagsUpdate:C,onPlacemarksUpdate:A,showSearchControl:E,loadPlacemarks:T,loadTags:P}=this.props;return(0,a.h)("div",{className:(0,g.cx)("meridian-map-container",x),style:{width:k,height:S},"data-testid":"meridian--private--map-container",ref:e=>{this.mapContainerRef.current=e}},(0,a.h)(b.default,{onZoomIn:this.zoomIn,onZoomOut:this.zoomOut}),this.renderErrorOverlay(),this.renderDetailsOverlay(),this.renderFloorOverlay(),this.renderAssetListOverlay(),this.renderLoadingSpinner(),(0,a.h)(u.default,{showFloors:this.shouldShowFloors(),showSearch:Boolean(E&&(T||P)),toggleFloorOverlay:this.toggleFloorOverlay,toggleAssetListOverlay:this.toggleAssetListOverlay}),this.renderFloorLabel(),(0,a.h)("div",{ref:e=>{this.mapRef.current=e},className:(0,g.cx)("meridian-map-background",O),onClick:this.onClick,style:{width:k,height:S}},(0,a.h)("div",{style:{position:"relative",width:0,height:0,transform:r,transformOrigin:"0 0 0"}},(0,a.h)("img",{src:t,ref:this.mapImageref}),0===l.length&&e?(0,a.h)(a.Fragment,null,(0,a.h)(d.default,{mapZoomFactor:o,overlays:_}),this.props.loadPlacemarks?(0,a.h)(m.default,{selectedItem:n,isPanningOrZooming:i,mapZoomFactor:o,locationID:c,floorID:f,api:h,placemarkOptions:y,onPlacemarkClick:this.onPlacemarkClick,onUpdate:A,toggleLoadingSpinner:this.toggleLoadingSpinner,onInit:()=>{this.onPlacemarksInit()}}):null,this.props.loadTags?(0,a.h)(v.default,{selectedItem:n,isPanningOrZooming:i,mapZoomFactor:o,locationID:c,floorID:f,api:h,tagOptions:p,onTagClick:this.onTagClick,onUpdate:C,toggleLoadingSpinner:this.toggleLoadingSpinner,onInit:()=>{this.onTagsInit()}}):null,(0,a.h)(s.default,{mapZoomFactor:o,annotations:w})):null)))}}k.defaultProps={loadTags:!0,loadPlacemarks:!0,showSearchControl:!0,showFloorsControl:!0,floorsControlSortDescending:!1,shouldMapPanZoom:()=>!0,width:"100%",height:"400px",placemarks:{},tags:{},overlays:[],annotations:[],onTagsUpdate:()=>{},onFloorChange:()=>{},onLoadingStateChange:()=>{},onFloorsUpdate:()=>{}};const x=(0,g.css)({label:"map-container",display:"block",position:"relative",borderRadius:"inherit",background:"#fafafa",color:"#000",fontFamily:"inherit",textAlign:"left"}),O=(0,g.css)({label:"map-outer",borderRadius:"inherit",display:"block",overflow:"hidden"});t.default=k},8828:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=n(172),i=r(n(4145)),a=n(2785),s=(0,a.css)(a.mixins.shadow,a.mixins.rounded,{label:"details-overlay",overflow:"hidden",display:"flex",flexDirection:"column",background:a.theme.white,color:a.theme.textColor,fill:"#000",position:"absolute",margin:0,left:15,top:15,right:15,maxHeight:600,zIndex:2,maxWidth:400}),l=(0,a.css)(s,{marginRight:"auto"}),c=(0,a.css)(s,{marginLeft:"auto"}),u=(0,a.css)(a.mixins.buttonReset,a.mixins.buttonHoverActive,a.mixins.focusRing,{label:"details-overlay-close",cursor:"pointer",position:"absolute",zIndex:2,top:10,right:10,padding:4,width:32,height:32,fontSize:11,textAlign:"center",background:a.theme.white,color:a.theme.textColor,borderRadius:"100%",fontWeight:"bold",boxShadow:"0 0 2px rgba(0, 0, 0, 0.4)"});t.default=({position:e,onCloseClicked:t,children:n})=>(0,o.h)("div",{className:(0,a.cx)("meridian-details-overlay","left"===e?l:c),"data-testid":"meridian--private--map-overlay"},(0,o.h)("button",{className:u,onClick:t,"data-testid":"meridian--private--close-overlay"},(0,o.h)(i.default,null)),n)},7096:function(e,t,n){"use strict";var r=this&&this.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o{var{defs:t=!1,id:n,className:a,style:s={},cx:l,cy:c,r:u,pathLength:f,fill:h="black",fillOpacity:p="1",stroke:d="none",strokeWidth:m=4,strokeLineJoin:g,strokeLineCap:v,strokeDasharray:y,strokeDashoffset:_,strokeOpacity:b,animate:w={},animateMotion:k={},mpath:x,data:O={},onClick:S,mapZoomFactor:C}=e,A=r(e,["defs","id","className","style","cx","cy","r","pathLength","fill","fillOpacity","stroke","strokeWidth","strokeLineJoin","strokeLineCap","strokeDasharray","strokeDashoffset","strokeOpacity","animate","animateMotion","mpath","data","onClick","mapZoomFactor"]);const E=1/C;let T=null,P=null;const D=Object.assign({transform:`scale(${E})`},s);Object.keys(k).length&&(P=x?(0,o.h)("animateMotion",Object.assign({},k),(0,o.h)("mpath",{xlinkHref:`#${x}`})):(0,o.h)("animateMotion",Object.assign({},k))),Object.keys(w).length&&(T=(0,o.h)("animate",Object.assign({},w)));const j=(0,o.h)("circle",Object.assign({id:n,className:a,style:D,cx:l,cy:c,r:u,"path-length":f,fill:h,"fill-opacity":p,stroke:d,"stroke-width":m/C,"stroke-linejoin":g,"stroke-linecap":v,"stroke-dasharray":y,"stroke-dashoffset":_,"stroke-opacity":b,onClick:S?()=>(0,i.asyncClientCall)(S,O):void 0,cursor:S?"pointer":void 0,"pointer-events":S?"all":void 0},A),T,P);return t?(0,o.h)("defs",null,j):j};a.displayName="OverlayCircle",t.default=a},2865:function(e,t,n){"use strict";var r=this&&this.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o{var{defs:t=!1,id:n,className:a,style:s={},width:l,height:c,href:u,x:f,y:h,animate:p={},animateMotion:d={},mpath:m,mapZoomFactor:g,onClick:v,data:y={}}=e,_=r(e,["defs","id","className","style","width","height","href","x","y","animate","animateMotion","mpath","mapZoomFactor","onClick","data"]);const b=1/g;let w=null,k=null;const x=Object.assign({transform:`translate(-${l/g/2}px, -${c/g/2}px) scale(${b})`},s);Object.keys(d).length&&(k=m?(0,o.h)("animateMotion",Object.assign({},d),(0,o.h)("mpath",{xlinkHref:`#${m}`})):(0,o.h)("animateMotion",Object.assign({},d))),Object.keys(p).length&&(w=(0,o.h)("animate",Object.assign({},p)));const O=(0,o.h)("image",Object.assign({id:n,className:a,style:x,width:l,height:c,href:u,x:f,y:h,onClick:v?()=>(0,i.asyncClientCall)(v,y):void 0,cursor:v?"pointer":void 0,"pointer-events":v?"all":void 0},_),w,k);return t?(0,o.h)("defs",null,O):O};a.displayName="OverlayImage",t.default=a},6805:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=n(172),i=r(n(7096)),a=r(n(2865)),s=r(n(2578)),l=r(n(3861)),c=r(n(3496)),u=r(n(4012)),f=r(n(9159)),h=(0,n(2785).css)({label:"overlay-layer",position:"absolute",overflow:"visible",top:0,left:0,right:0,bottom:0});t.default=({mapZoomFactor:e,overlays:t})=>(0,o.h)("svg",{className:h,"data-testid":"meridian--private--overlay-layer"},t.map(((t,n)=>{switch(t.type){case"polygon":return(0,o.h)(c.default,Object.assign({key:n},t,{mapZoomFactor:e}));case"polyline":return(0,o.h)(u.default,Object.assign({key:n},t,{mapZoomFactor:e}));case"path":return(0,o.h)(l.default,Object.assign({key:n},t,{mapZoomFactor:e}));case"circle":return(0,o.h)(i.default,Object.assign({key:n},t,{mapZoomFactor:e}));case"image":return(0,o.h)(a.default,Object.assign({key:n},t,{mapZoomFactor:e}));case"marker":return(0,o.h)(s.default,Object.assign({key:n},t,{mapZoomFactor:e}));case"use":return(0,o.h)(f.default,Object.assign({key:n},t,{mapZoomFactor:e}));default:return null}})))},2578:function(e,t,n){"use strict";var r=this&&this.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o{var{defs:t=!0,id:n,className:i,style:a,viewBox:s,refX:l,refY:c,markerWidth:u,markerHeight:f,orient:h,fill:p="none",fillOpacity:d,stroke:m="hsl(207, 65%, 46%)",strokeWidth:g,strokeLineJoin:v,strokeLineCap:y,strokeDasharray:_,strokeDashoffset:b,strokeOpacity:w,shapeElementType:k,shapeElementAttributes:x,mapZoomFactor:O}=e,S=r(e,["defs","id","className","style","viewBox","refX","refY","markerWidth","markerHeight","orient","fill","fillOpacity","stroke","strokeWidth","strokeLineJoin","strokeLineCap","strokeDasharray","strokeDashoffset","strokeOpacity","shapeElementType","shapeElementAttributes","mapZoomFactor"]);let C=null;if(Object.keys(x).length&&k)switch(k){case"path":C=(0,o.h)("path",Object.assign({},x));break;case"polyline":C=(0,o.h)("polyline",Object.assign({},x));break;case"polygon":C=(0,o.h)("polygon",Object.assign({},x));break;case"circle":C=(0,o.h)("circle",Object.assign({},x));break;case"image":C=(0,o.h)("image",Object.assign({},x))}const A=(0,o.h)("marker",Object.assign({id:n,className:i,style:a,viewBox:s,refX:l,refY:c,markerWidth:u,markerHeight:f,orient:h,fill:p,"fill-opacity":d,stroke:m,"stroke-width":g,"stroke-linejoin":v,"stroke-linecap":y,"stroke-dasharray":_,"stroke-dashoffset":b,"stroke-opacity":w},S),C);return t?(0,o.h)("defs",null,A):A};i.displayName="OverlayMarker",t.default=i},3861:function(e,t,n){"use strict";var r=this&&this.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o{var{defs:t=!1,id:n,className:i,style:a={},shape:s,fill:l="none",stroke:c="hsl(207, 65%, 46%)",strokeWidth:u=2,strokeLineJoin:f="miter",strokeLineCap:h="butt",strokeDasharray:p,strokeDashoffset:d,strokeOpacity:m,markerStart:g,markerMid:v,markerEnd:y,animate:_={},animateMotion:b={},mpath:w,mapZoomFactor:k}=e,x=r(e,["defs","id","className","style","shape","fill","stroke","strokeWidth","strokeLineJoin","strokeLineCap","strokeDasharray","strokeDashoffset","strokeOpacity","markerStart","markerMid","markerEnd","animate","animateMotion","mpath","mapZoomFactor"]);let O=null,S=null;Object.keys(b).length&&(S=w?(0,o.h)("animateMotion",Object.assign({},b),(0,o.h)("mpath",{xlinkHref:`#${w}`})):(0,o.h)("animateMotion",Object.assign({},b))),Object.keys(_).length&&(O=(0,o.h)("animate",Object.assign({},_)));const C=(0,o.h)("path",Object.assign({id:n,className:i,style:a,d:s,fill:l,stroke:c,"stroke-width":u/k,"stroke-linejoin":f,"stroke-linecap":h,"stroke-dasharray":p,"stroke-dashoffset":d,"stroke-opacity":m,"marker-start":g,"marker-mid":v,"marker-end":y},x),O,S);return t?(0,o.h)("defs",null,C):C};i.displayName="OverlayPath",t.default=i},3496:function(e,t,n){"use strict";var r=this&&this.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o{var{defs:t=!1,id:n,className:a,style:s,points:l,fill:c="hsla(207, 65%, 46%, 0.5)",fillOpacity:u,stroke:f="hsl(207, 65%, 46%)",strokeWidth:h=2,strokeLineJoin:p="miter",strokeDasharray:d,strokeDashoffset:m,strokeOpacity:g,markerStart:v,markerMid:y,markerEnd:_,mapZoomFactor:b,animate:w={},data:k={},onClick:x}=e,O=r(e,["defs","id","className","style","points","fill","fillOpacity","stroke","strokeWidth","strokeLineJoin","strokeDasharray","strokeDashoffset","strokeOpacity","markerStart","markerMid","markerEnd","mapZoomFactor","animate","data","onClick"]);let S=null;Object.keys(w).length&&(S=(0,o.h)("animate",Object.assign({},w)));const C=(0,o.h)("polygon",Object.assign({id:n,className:a,style:s,points:l.join(" "),fill:c,"fill-opacity":u,stroke:f,"stroke-width":h/b,"stroke-linejoin":p,"stroke-dasharray":d,"stroke-dashoffset":m,"stroke-opacity":g,"marker-start":v,"marker-mid":y,"marker-end":_,onClick:x?()=>(0,i.asyncClientCall)(x,k):void 0,cursor:x?"pointer":void 0,"pointer-events":x?"all":void 0},O),S);return t?(0,o.h)("defs",null,C):C};a.displayName="OverlayPolygon",t.default=a},4012:function(e,t,n){"use strict";var r=this&&this.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o{var{defs:t=!1,id:n,className:i,style:a,points:s,fill:l="none",fillOpacity:c,stroke:u="hsl(207, 65%, 46%)",strokeWidth:f=2,strokeLineJoin:h="miter",strokeLineCap:p="butt",strokeDasharray:d,strokeDashoffset:m,strokeOpacity:g,markerStart:v,markerMid:y,markerEnd:_,animate:b={},mapZoomFactor:w}=e,k=r(e,["defs","id","className","style","points","fill","fillOpacity","stroke","strokeWidth","strokeLineJoin","strokeLineCap","strokeDasharray","strokeDashoffset","strokeOpacity","markerStart","markerMid","markerEnd","animate","mapZoomFactor"]);let x=null;Object.keys(b).length&&(x=(0,o.h)("animate",Object.assign({},b)));const O=(0,o.h)("polyline",Object.assign({id:n,className:i,style:a,points:s.join(" "),fill:l,"fill-opacity":c,stroke:u,"stroke-width":f/w,"stroke-linejoin":h,"stroke-linecap":p,"stroke-dasharray":d,"stroke-dashoffset":m,"stroke-opacity":g,"marker-start":v,"marker-mid":y,"marker-end":_},k),x);return t?(0,o.h)("defs",null,O):O};i.displayName="OverlayPolyline",t.default=i},6933:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(172),o=n(2785);class i extends r.Component{constructor(){super(...arguments),this.input=null}componentDidMount(){this.input&&this.input.focus()}render(){const{value:e,onChange:t,placeholder:n}=this.props;return(0,r.h)("div",{className:l},(0,r.h)("svg",{viewBox:"0 0 15 15",className:s},(0,r.h)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M13.2454 12.5741L9.55123 8.73956C10.2134 7.80246 10.5682 6.66953 10.5632 5.50756C10.5506 2.47441 8.18614 0.0175744 5.26286 5.57178e-05C3.8639 -0.00651157 2.52051 0.567712 1.53197 1.59481C0.543427 2.6219 -0.0081584 4.01655 9.12228e-05 5.46806C0.0127262 8.50148 2.37737 10.9585 5.30093 10.9761C6.42539 10.9811 7.52128 10.6088 8.42505 9.91456L8.4289 9.91156L12.1197 13.7431C12.3193 13.9603 12.6166 14.0482 12.8966 13.9728C13.1765 13.8973 13.395 13.6704 13.4675 13.3799C13.5399 13.0894 13.455 12.7809 13.2454 12.5741ZM5.29738 9.87819C2.95866 9.86423 1.06697 7.8988 1.05671 5.47219C1.0504 4.31114 1.4917 3.19564 2.28239 2.37403C3.07307 1.55242 4.14751 1.09287 5.26653 1.09769C7.60525 1.11165 9.49694 3.07709 9.5072 5.50369C9.51352 6.66475 9.07221 7.78024 8.28152 8.60186C7.49084 9.42347 6.4164 9.88302 5.29738 9.87819Z",transform:"translate(0.637695)"})),(0,r.h)("input",{"data-testid":"meridian--private--overlay-search",value:e,type:"text",placeholder:n,className:a,onInput:e=>{e.target instanceof HTMLInputElement&&t(e.target.value)},ref:e=>{this.input=e}}))}}const a=(0,o.css)(o.mixins.buttonReset,o.mixins.rounded,o.mixins.focusRing,{label:"overlay-search-input",flex:"1 1 auto",marginRight:42,fontSize:16,padding:"4px 8px",paddingLeft:30,background:o.theme.borderColor,color:o.theme.black,border:0,height:24,"&::placeholder":{color:o.theme.textColorBluishLightGrey}}),s=(0,o.css)({label:"overlay-search-icon",position:"absolute",zIndex:1,fill:o.theme.textColorBluish,width:16,height:16,top:18,left:18}),l=(0,o.css)({label:"overlay-search-bar",position:"relative",zIndex:1,flex:"0 0 auto",display:"flex",flexDirection:"column",padding:10,backgroundColor:"rgb(105, 146, 176)"});t.default=i},9159:function(e,t,n){"use strict";var r=this&&this.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o{var{defs:t=!1,id:n,className:i,style:a={},width:s,height:l,href:c,x:u,y:f,fill:h="none",stroke:p="hsl(207, 65%, 46%)",strokeWidth:d=2,strokeLineJoin:m="miter",strokeLineCap:g="butt",strokeDasharray:v,strokeDashoffset:y,strokeOpacity:_,animate:b={},animateMotion:w={},mpath:k,mapZoomFactor:x}=e,O=r(e,["defs","id","className","style","width","height","href","x","y","fill","stroke","strokeWidth","strokeLineJoin","strokeLineCap","strokeDasharray","strokeDashoffset","strokeOpacity","animate","animateMotion","mpath","mapZoomFactor"]);const S=1/x;let C=null,A=null;const E=Object.assign({transform:`translate(-${s/x/2}px, -${l/x/2}px) scale(${S})`},a);Object.keys(w).length&&(A=k?(0,o.h)("animateMotion",Object.assign({},w),(0,o.h)("mpath",{xlinkHref:`#${k}`})):(0,o.h)("animateMotion",Object.assign({},w))),Object.keys(b).length&&(C=(0,o.h)("animate",Object.assign({},b)));const T=(0,o.h)("use",Object.assign({id:n,className:i,style:E,width:s,height:l,href:c,x:u,y:f,fill:h,stroke:p,"stroke-width":d/x,"stroke-linejoin":m,"stroke-linecap":g,"stroke-dasharray":v,"stroke-dashoffset":y,"stroke-opacity":_},O),C,A);return t?(0,o.h)("defs",null,T):T};i.displayName="OverlayUse",t.default=i},2858:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(172),o=n(2785),i=n(7746),a=n(4221),s=(0,o.css)(o.mixins.textStrokeWhite,{label:"placemark-label",marginLeft:"50%",position:"absolute",minWidth:55,maxWidth:120,fontSize:14,textAlign:"center",paddingTop:4,color:"#222",userSelect:"none",transform:"translate(-50%, 0)",fontWeight:"bold",visibility:"hidden",pointerEvents:"none","[data-meridian-placemark-label-mode='always'] > &":{visibility:"visible"},"[data-meridian-placemark-label-mode='never'] > &":{visibility:"hidden"},"[data-meridian-placemark-label-mode='hover']:hover > &":{visibility:"visible",background:"#333",color:"#eee",textShadow:"none",borderRadius:4,padding:4,bottom:30,maxWidth:240,width:"max-content",boxShadow:"0 0 1px 1px white"},"[data-meridian-placemark-label-mode='zoom'] > &[data-meridian-placemark-label-zoom-visible='false']":{visibility:"hidden"},"[data-meridian-placemark-label-mode='zoom'] > &[data-meridian-placemark-label-zoom-visible='true']":{visibility:"visible"}}),l=(0,o.css)({label:"placemark-labelOnly",textTransform:"uppercase",color:"#666",fontSize:16}),c=(0,o.css)({label:"placemark",position:"absolute","&[data-meridian-placemark-label-mode='hover']:hover":{zIndex:1}}),u=(0,o.css)(o.mixins.buttonReset,o.mixins.pointer,o.mixins.focusNone,{label:"placemark-icon","--meridian-placemark-backgroundColor":o.theme.brandBlue,transition:"width 80ms ease, height 80ms ease",display:"block",width:24,height:24,borderRadius:"100%",backgroundColor:"var(--meridian-placemark-backgroundColor)",backgroundImage:"var(--meridian-placemark-iconURL)",backgroundPosition:"center",backgroundRepeat:"no-repeat",backgroundSize:"cover",border:"2px solid transparent",overflow:"hidden",zIndex:1}),f=(0,o.css)(u,{zIndex:3,width:30,height:30,boxShadow:"0 0 4px black"});t.default=({isSelected:e,data:t,mapZoomFactor:n,onClick:h=(()=>{}),disabled:p=!1,labelMode:d,labelZoomLevel:m=.2})=>{const g=`meridian-placemark-type-${t.type}`,v=!t.type||0===t.type.indexOf("label_"),y=1/n,_=`#${t.color}`,b=(0,a.placemarkIconURL)(t.type),w=(t.id||"").split("_").pop(),k=e?(0,o.cx)("meridian-placemark-icon-selected","meridian-placemark-icon",g,f):(0,o.cx)("meridian-placemark-icon",g,u),x={left:t.x,top:t.y,transform:`translate(-50%, -50%) scale(${y})`};return v?(0,r.h)("div",{className:(0,o.cx)("meridian-placemark",c),"data-meridian-placemark-label-mode":"zoom",style:x},(0,r.h)("div",{className:(0,o.cx)(s,l,"meridian-label","meridian-label-only"),"data-meridian-placemark-id":w,"data-meridian-placemark-label-zoom-visible":String(n>=m)},t.name)):(0,r.h)("div",{"data-meridian-placemark-label-mode":d,className:(0,o.cx)("meridian-placemark",c),style:x},(0,r.h)("button",{disabled:p,className:(0,o.cx)((0,i.getPlacemarkCategories)(t).map((e=>`meridian-placemark-category-${e=e.replace(/ /g,"-").replace(/[^a-z0-9_-]/i,"").toLowerCase()}`)),k),"data-meridian-placemark-id":w,style:{"--meridian-placemark-iconURL":`url('${b}')`,"--meridian-placemark-borderColor":_,"--meridian-placemark-backgroundColor":_},onClick:e=>{e.target instanceof HTMLElement&&e.target.focus(),h(t)},onMouseDown:e=>{e.stopPropagation()}}),(0,r.h)("div",{className:(0,o.cx)("meridian-label",s),"data-meridian-placemark-label-zoom-visible":String(n>=m)},t.name))}},7387:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=n(172),i=r(n(2858)),a=n(7746);class s extends o.Component{constructor(){super(...arguments),this.state={fetchedPlacemarks:[]},this.isMounted=!1}componentDidMount(){this.isMounted=!0,this.fetchPlacemarks()}shouldComponentUpdate(e){return!(this.props.isPanningOrZooming&&e.mapZoomFactor===this.props.mapZoomFactor)}async componentDidUpdate(e,t){const{placemarkOptions:n,onUpdate:r}=this.props;if(e.floorID!==this.props.floorID&&await this.fetchPlacemarks(),r&&(t.fetchedPlacemarks!==this.state.fetchedPlacemarks||n!==e.placemarkOptions)){const e=this.state.fetchedPlacemarks;(0,a.asyncClientCall)(r,{allPlacemarks:e,filteredPlacemarks:this.getFilteredPlacemarks(e)})}}componentWillUnmount(){this.isMounted=!1}async fetchPlacemarks(){if(!this.isMounted)return;const{locationID:e,floorID:t,api:n,toggleLoadingSpinner:r,onInit:o}=this.props;r({show:!0,source:"placemarks"});const i=await n.fetchPlacemarksByFloor(e,t);this.setState({fetchedPlacemarks:i},(()=>{r({show:!1,source:"placemarks"})})),o()}getFilteredPlacemarks(e){var t;const{placemarkOptions:n,floorID:r}=this.props,o=null!==(t=null==n?void 0:n.filter)&&void 0!==t?t:()=>!0;return e.filter((e=>"exclusion_area"!==e.type&&e.map===r&&(!0===(null==n?void 0:n.showHiddenPlacemarks)||!e.hide_on_map))).filter(o)}render(){const e=this.getFilteredPlacemarks(this.state.fetchedPlacemarks);return(0,o.h)("div",{"data-testid":"meridian--private--placemark-layer"},e.map((e=>{var t,n,r,a;return(0,o.h)(i.default,{key:e.id,isSelected:!!this.props.selectedItem&&this.props.selectedItem.id===e.id,mapZoomFactor:this.props.mapZoomFactor,data:e,onClick:this.props.onPlacemarkClick,disabled:null===(t=this.props.placemarkOptions)||void 0===t?void 0:t.disabled,labelMode:null!==(r=null===(n=this.props.placemarkOptions)||void 0===n?void 0:n.labelMode)&&void 0!==r?r:"zoom",labelZoomLevel:null===(a=this.props.placemarkOptions)||void 0===a?void 0:a.labelZoomLevel})})))}}t.default=s},3996:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=n(172),i=r(n(192)),a=n(2785),s=n(7746),l=(0,a.css)(a.mixins.shadow,a.mixins.buttonReset,a.mixins.pointer,a.mixins.focusNone,{label:"tag",width:48,height:48,borderRadius:"100%",position:"absolute",backgroundColor:"white",backgroundPosition:"center",backgroundRepeat:"no-repeat",backgroundSize:"cover",border:"2px solid white",overflow:"hidden",transition:"\n width 80ms ease,\n height 80ms ease,\n top 500ms ease,\n left 500ms ease\n ",zIndex:2}),c=(0,a.css)(l,{width:60,height:60,zIndex:3,boxShadow:"0 0 0 2px white, 0 0 4px black"});t.default=({isSelected:e,data:t,mapZoomFactor:n,onClick:r=(()=>{}),disabled:u=!1})=>{const f=1/n/(n<.2?1.4:1),h=t.image_url||i.default;return(0,o.h)("button",{"data-meridian-tag-id":t.id,disabled:u,className:(0,a.cx)("meridian-tag",l,(0,s.getTagLabels)(t).map((e=>`meridian-tag-label-${e=e.replace(/ /g,"-").replace(/[^a-z0-9_-]/i,"")}`)),e&&["meridian-tag-selected",c],(0,a.css)({backgroundImage:`url('${h}')`})),style:{left:t.x,top:t.y,transform:`translate(-50%, -50%) scale(${f})`},onClick:e=>{e.target instanceof HTMLElement&&e.target.focus(),r(t)},onMouseDown:e=>{e.stopPropagation()}})}},8901:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=r(n(5858)),i=n(172),a=r(n(3996)),s=n(7746);class l extends i.Component{constructor(){var e;super(...arguments),this.state={tagsByMAC:{},connectionsByFloorID:{}},this.tagUpdates={},this.isMounted=!1,this.commitTagUpdates=(0,o.default)((()=>{this.isMounted&&this.setState((e=>({tagsByMAC:Object.assign(Object.assign({},e.tagsByMAC),this.tagUpdates)})),(()=>{this.tagUpdates={},this.onUpdate()}))}),(null===(e=this.props.tagOptions)||void 0===e?void 0:e.updateInterval)||5e3),this.onUpdate=()=>{const{tagsByMAC:e}=this.state,{onUpdate:t,tagOptions:n={}}=this.props,{filter:r=(()=>!0)}=n,o=this.filterControlTags(Object.values(e)),i=o.filter(r);t&&t({allTags:o,filteredTags:i})}}componentDidMount(){this.isMounted=!0;const{floorID:e}=this.props;e&&this.connect(e)}shouldComponentUpdate(e){return!(this.props.isPanningOrZooming&&e.mapZoomFactor===this.props.mapZoomFactor)}componentDidUpdate(e){e.floorID!==this.props.floorID&&(this.disconnect(e.floorID),this.connect(this.props.floorID))}componentWillUnmount(){this.isMounted=!1,this.disconnect(this.props.floorID)}connect(e){const{locationID:t,api:n,toggleLoadingSpinner:r,onInit:o}=this.props;r({show:!0,source:"tags"});const i=n.openStream({locationID:t,floorID:e,onInitialTags:t=>{e===this.props.floorID&&this.isMounted&&(this.setState({tagsByMAC:(0,s.keyBy)(t,(e=>e.mac))},(()=>{this.onUpdate(),this.props.toggleLoadingSpinner({show:!1,source:"tags"})})),o())},onTagUpdate:t=>{e===this.props.floorID&&this.isMounted&&(e!==t.map_id?this.setState((e=>({tagsByMAC:(0,s.objectWithoutKey)(e.tagsByMAC,t.mac)})),(()=>{this.onUpdate()})):(this.tagUpdates=Object.assign(Object.assign({},this.tagUpdates),{[t.mac]:t}),this.props.isPanningOrZooming||this.commitTagUpdates()))},onException:()=>{this.props.toggleLoadingSpinner({show:!1,source:"tags"})}});this.isMounted&&this.setState((t=>({connectionsByFloorID:Object.assign(Object.assign({},t.connectionsByFloorID),{[e]:i})})),(()=>{this.onUpdate()}))}disconnect(e){const t=this.state.connectionsByFloorID[e];t&&(this.props.toggleLoadingSpinner({show:!1,source:"tags"}),t.close()),this.tagUpdates={},this.isMounted&&this.setState((t=>({tagsByMAC:{},connectionsByFloorID:(0,s.objectWithoutKey)(t.connectionsByFloorID,e)})),(()=>{this.onUpdate()}))}filterControlTags(e){const{tagOptions:t}=this.props;return e.filter((e=>!0===(null==t?void 0:t.showControlTags)||!e.is_control_tag))}render(){const{selectedItem:e,tagOptions:t={},onTagClick:n,mapZoomFactor:r}=this.props,{tagsByMAC:o}=this.state,{filter:s=(()=>!0)}=t,l=Object.values(o);return(0,i.h)("div",{"data-testid":"meridian--private--tag-layer"},this.filterControlTags(l).filter(s).map((o=>(0,i.h)(a.default,{key:o.mac,isSelected:!!e&&e.mac===o.mac,mapZoomFactor:r,data:o,onClick:n,disabled:t.disabled}))))}}t.default=l},7866:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n={en:{tags:"Tags",placemarks:"Placemarks",floors:"Floors",search:"Search",search_tags:"Search Tags",search_placemarks:"Search Placemarks",search_floors:"Search Floors",no_results_found:"No results found",close:"Close"},ar:{tags:"العلامات",placemarks:" العلامات الموضعية",floors:" الطوابق",search:" بحث",search_tags:" بحث عن علامات",search_placemarks:" بحث عن علامات موضعية",search_floors:" بحث عن طوابق",no_results_found:" لم يتم العثور على نتائج",close:"إغلاق"},ca:{tags:"Etiquetes",placemarks:"Marques de posició",floors:"Pisos",search:"Cerca",search_tags:"Cerca etiquetes",search_placemarks:"Cerca marcadors de posició",search_floors:"Cerca pisos",no_results_found:"Sense resultats",close:"Tanca"},es:{tags:"Etiquetas",placemarks:"Marcas de posición",floors:"Pisos",search:"Buscar",search_tags:"Buscar etiquetas",search_placemarks:"Buscar marcas de posición",search_floors:"Buscar pisos",no_results_found:"No se han encontrado resultados",close:"Cerrar"},cs:{tags:"Tagy",placemarks:"Značky míst",floors:"Patra",search:"Hledat",search_tags:"Hledat tagy",search_placemarks:"Hledat značky míst",search_floors:"Hledat patra",no_results_found:"Nebyly nalezeny žádné výsledky",close:"Zavřít"},de:{tags:"Stichworte",placemarks:"Ortsmarken",floors:"Etagen",search:"Suche",search_tags:"Such-Tags",search_placemarks:"In den Ortsmarken (Räumen, Sälen) suchen",search_floors:"In den Stockwerken suchen",no_results_found:"Keine Ergebnisse gefunden",close:"Schließen"},fr:{tags:"Mots clés",placemarks:"Repères",floors:"Étages",search:"Rechercher",search_tags:"Rechercher des mots clés",search_placemarks:"Rechercher des repères",search_floors:"Rechercher des étages",no_results_found:"Aucun résultat trouvé",close:"Fermer"},it:{tags:"Tag",placemarks:"Segnaposto",floors:"Piani",search:"Cerca",search_tags:"Cerca tag",search_placemarks:"Cerca segnaposto",search_floors:"Cerca piani",no_results_found:"Nessun risultato trovato",close:"Chiudi"},iw:{tags:"תגים",placemarks:"סימני מקום",floors:"קומות",search:"חפש",search_tags:"חפש תגיות",search_placemarks:"חפש סימני מקום",search_floors:"חפש קומות",no_results_found:"לא נמצאו תוצאות",close:"סגור"},ja:{tags:"タグ",placemarks:"目印",floors:"フロア",search:"探す",search_tags:"検索タグ",search_placemarks:"目印を検索する",search_floors:"フロアを検索する",no_results_found:"結果が見つからない",close:"近い"},ko:{tags:"태그",placemarks:"장소표시<",floors:"바닥",search:"검색",search_tags:"태그검색<",search_placemarks:"장소표시 검색<",search_floors:"층수검색<",no_results_found:"검색결과가 없습니다<",close:"닫기"},nl:{tags:"Tags",placemarks:"Plaatsaanduidingen",floors:"Verdiepingen",search:"Zoeken",search_tags:"Zoek tags",search_placemarks:"Zoek plaatsaanduidingen",search_floors:"Zoek verdiepingen",no_results_found:"Geen resultaten gevonden",close:"Sluiten"},no:{tags:"Tagger",placemarks:"Stedsmarkeringer",floors:"Gulv",search:"Søk",search_tags:"Søk i etiketter",search_placemarks:"Søk i stedsmarkeringer",search_floors:"Søk i etasjer",no_results_found:"Ingen resultater",close:"Lukk"},pt:{tags:"Tags",placemarks:"Marcadores",floors:"Andares",search:"Procurar",search_tags:"Tags de pesquisa",search_placemarks:"Pesquisar marcadores",search_floors:"Pesquisar andares",no_results_found:"Nenhum resultado encontrado",close:"Perto"},ru:{tags:"Taggar",placemarks:"Platsmärken",floors:"Golv",search:"Sök",search_tags:"Sök taggar",search_placemarks:"Sök efter platsmärken",search_floors:"Sök Golv",no_results_found:"Inga resultat funna",close:"Stänga"},sv:{tags:"Taggar",placemarks:"Platsmärken",floors:"Golv",search:"Sök",search_tags:"Sök taggar",search_placemarks:"Sök efter platsmärken",search_floors:"Sök Golv",no_results_found:"Inga resultat funna",close:"Stänga"},uk:{tags:"Теги",placemarks:"Мітки",floors:"Поверхи",search:"Пошук",search_tags:"Пошук тегів",search_placemarks:"Пошук міток",search_floors:"Пошук поверхів",no_results_found:"Нічого не знайдено",close:"Закрити"},vi:{tags:"Thẻ",placemarks:"Dấu vị trí",floors:"Tầng",search:"Tìm kiếm ",search_tags:"Thẻ tìm kiếm",search_placemarks:"Dấu vị trí tìm kiếm",search_floors:"Tầng tìm kiếm",no_results_found:"Không có kết quả nào được tìm thấy",close:"Đóng"},"zh-cn":{tags:"标签",placemarks:"地标",floors:"楼层",search:"搜索",search_tags:"搜索标签",search_placemarks:"搜索地标",search_floors:"搜索楼层",no_results_found:"未找到结果",close:"关闭"},"zh-tw":{tags:"標籤",placemarks:"地標",floors:"樓層",search:"搜尋",search_tags:"搜尋標籤",search_placemarks:"搜尋地標",search_floors:"搜尋樓層",no_results_found:"未找到結果",close:"關閉"}};t.default={lookup:function(e,t){var r,o,i;const a=t||(navigator.languages&&navigator.languages[0]||navigator.language||"en").toLowerCase(),s=null!==(r=a.split("-").shift())&&void 0!==r?r:"en",l=n;return(null===(o=null==l?void 0:l[a])||void 0===o?void 0:o[e])||(null===(i=null==l?void 0:l[s])||void 0===i?void 0:i[e])||l.en[e]||e}}},5481:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(172),o=n(2785),i=({onClick:e,dir:t})=>"in"===t?(0,r.h)("button",{className:(0,o.cx)("meridian-zoom-button","meridian-zoom-button-in",l),"data-testid":"meridian--private--zoom-button-in",onClick:e},(0,r.h)("svg",{viewBox:"0 0 36 36"},(0,r.h)("path",{d:"M26 17h-7v-7a1 1 0 0 0-2 0v7h-7a1 1 0 0 0 0 2h7v7a1 1 0 0 0 2 0v-7h7a1 1 0 0 0 0-2"}))):(0,r.h)("button",{className:(0,o.cx)("meridian-zoom-button","meridian-zoom-button-out",c),"data-testid":"meridian--private--zoom-button-out",onClick:e},(0,r.h)("svg",{viewBox:"0 0 36 36"},(0,r.h)("path",{d:"M26 19H10a1 1 0 0 1 0-2h16a1 1 0 0 1 0 2"}))),a=(0,o.css)(o.mixins.shadow,o.mixins.rounded,{position:"absolute",display:"flex",flexDirection:"column",zIndex:1,right:15,bottom:15}),s=(0,o.css)(o.mixins.buttonReset,o.mixins.focusRing,o.mixins.buttonHoverActive,o.mixins.rounded,{cursor:"pointer",padding:4,width:40,height:40,border:0,fontSize:20,fontWeight:200,fill:o.theme.brandBrightBlue,background:"white"}),l=(0,o.css)(s,{borderBottomLeftRadius:0,borderBottomRightRadius:0,borderBottom:`1px solid ${o.theme.buttonSeparatorColor}`}),c=(0,o.css)(s,{borderTopLeftRadius:0,borderTopRightRadius:0});t.default=({onZoomIn:e,onZoomOut:t})=>(0,r.h)("div",{className:(0,o.cx)("meridian-zoom-controls",a)},(0,r.h)(i,{onClick:e,dir:"in"}),(0,r.h)(i,{onClick:t,dir:"out"}))},5396:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.sendAnalyticsCodeEvent=void 0;const r=n(4221),o=window.devicePixelRatio||1,i=window.screen,a=`${i.width*o}x${i.height*o}`;t.sendAnalyticsCodeEvent=async function(e){if("Cypress"in window)return;const{action:t,locationID:n,onTagsUpdate:o=!1,tagsFilter:i=!1,placemarksFilter:s=!1,internalUpdate:l=!1}=e,c={session_id:n,v:"1",app_name:"MeridianSDK",data_src:"app",app_version:r.version,uid:n,cid:n,hit_type:"event",event_category:"code",event_action:t,event_value:1,event_label:l?"internal":"external",tag_update:o?1:0,tags_filter:i?1:0,placemarks_filter:s?1:0,language:navigator.language,screen_res:a,anonymize_ip:1,user_agent:window.navigator.userAgent,z:Math.random().toString(36).substring(7)};fetch("https://www.google-analytics.com/mp/collect?measurement_id=G-GCT86YZLFE&api_secret=1v79k_rPSLyvvcHpzSDqFQ",{method:"POST",body:JSON.stringify({client_id:n,events:[{name:"page_event",params:Object.assign({},c)}]})})}},2785:function(e,t,n){"use strict";var r,o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.css=t.keyframes=t.cx=t.mixins=t.theme=void 0;const i=o(n(129));t.theme={fontSizeSmallest:"12px",fontSizeSmaller:"14px",fontSize:"16px",fontSizeBigger:"18px",black:"#000",white:"#fff",almostWhite:"#fafafa",textColor:"#1b1b1b",textColorBluishLightGrey:"#9fa8ae",textColorBluish:"hsl(208, 17%, 42%)",brandOrange:"#ff8300",brandBlue:"hsl(203, 100%, 23%)",brandBrightBlue:"hsl(207, 65%, 46%)",buttonActiveColor:"hsl(201, 55%, 94%)",buttonHoverColor:"hsl(200, 60%, 97%)",buttonSeparatorColor:"#f0f0f0",borderColor:"#ebeef2",borderColorDarker:"#dfe1e5",borderRadius:6,searchBarColor:"#297BC0"},t.mixins={flexRow:{display:"flex",flexDirection:"row"},flexColumn:{display:"flex",flexDirection:"column"},overflowEllipses:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},textStrokeWhite:{WebkitFontSmoothing:"antialiased",textShadow:["rgba(255, 255, 255, 0.5) 1px 1px 0","rgba(255, 255, 255, 0.5) -1px -1px 0","white 0 0 1px","white 0 0 2px","white 0 0 3px","white 0 0 4px"].join(", ")},buttonReset:{padding:0,margin:0,font:"inherit",border:0,borderRadius:0,background:"transparent",color:"inherit","&::-moz-focus-inner":{border:0}},buttonHoverActive:{"&:hover":{background:t.theme.buttonHoverColor},"&:active":{background:t.theme.buttonActiveColor}},borderBox:{boxSizing:"border-box"},focusRing:{"&:focus":{outline:0,boxShadow:`inset 0 0 0 1px ${t.theme.brandBrightBlue}`}},focusRingMenuItem:{"&:focus":{outline:0,boxShadow:`\n inset 0 0 0 1px white,\n inset 0 0 0 2px ${t.theme.brandBrightBlue}\n `}},focusOutline:{"&:focus":{outline:0,boxShadow:"0 0 0 2px currentcolor"}},focusDarken:{"&:focus":{outline:0,boxShadow:"inset 0 0 0 9999px rgba(0, 0, 0, 0.1)"}},focusNone:{"&:focus":{outline:"none"}},shadow:{boxShadow:"0 0 3px rgba(0, 0, 0, 0.25)"},rounded:{borderRadius:t.theme.borderRadius},maxRounded:{borderRadius:99999},paddingMedium:{padding:"20px"},pointer:{cursor:"pointer","&:disabled":{cursor:"default"}}},r=(0,i.default)({key:"meridian--private-"}),t.cx=r.cx,t.keyframes=r.keyframes,t.css=r.css},7746:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.debouncedPlacemarkSearch=t.placemarkSearchParams=t.cleanQuery=t.isEnvOptions=t.asyncClientCall=t.requiredParam=t.getPlacemarkCategories=t.getTagLabels=t.createSearchMatcher=t.keyBy=t.objectWithoutKey=t.uiText=t.logDeprecated=t.logError=t.logWarn=void 0;const n="[@meridian/web-sdk]";t.logWarn=console.warn.bind(console,n),t.logError=console.error.bind(console,n),t.logDeprecated=t.logWarn.bind(null,"[deprecated]"),t.uiText={enDash:"–",unnamedBuilding:"Unassigned"},t.objectWithoutKey=function(e,t){const n=Object.assign({},e);return delete n[t],n},t.keyBy=function(e,t){const n={};for(const r of e)n[t(r)]=r;return n},t.createSearchMatcher=function(e){return t=>t.toLowerCase().indexOf(e.toLowerCase().trim())>=0},t.getTagLabels=function(e){return(e.tags||[]).map((e=>e.name))},t.getPlacemarkCategories=function(e){return(e.categories||[]).map((e=>e.name))},t.requiredParam=function(e,n){(0,t.logError)(`${e}: argument \`${n}\` is required`)},t.asyncClientCall=function(e,...t){setTimeout(e,0,...t)},t.isEnvOptions=function(e){return"staging"===e||"production"===e||"eu"===e||"development"===e||"devCloud"===e},t.cleanQuery=function(e){return e.replace(/-/g," ").replace(/:/g," ").replace(/[\\)"(]/g," ").replace(/[ ]{2,}/g," ").trim()},t.placemarkSearchParams="is_map_published=true AND kind:placemark AND NOT is_searchable=false AND NOT type=exclusion_area",t.debouncedPlacemarkSearch=function e(t,n=0){let r,o,i;return function(...t){return o?(i=!0,new Promise((i=>{o=i,r=setTimeout(a.bind(e,t,i),n)}))):new Promise((i=>{o=i,r=setTimeout(a.bind(e,t,i),n)}))};function a(n,a){i&&a!==o?a(null):(t.apply(e,n).then(a).catch(a),i=!1,clearTimeout(r),r=o=null)}}},4221:function(e,t,n){"use strict";var r,o,i,a=this&&this.__classPrivateFieldGet||function(e,t,n,r){if("a"===n&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!r:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?r:"a"===n?r.call(e):r?r.value:t.get(e)},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.API=t.createAPI=t.createMap=t.init=t.mapPointToLatLng=t.latLngToMapPoint=t.restrictedPanZoom=t.version=t.pointsFromArea=t.placemarkIconURL=void 0;const l=s(n(6425)),c=s(n(7975)),u=n(172),f=s(n(5697)),h=s(n(9101)),p=n(5396),d=s(n(529)),m=n(7746),g=n(323),v=new Map;for(const e of g.keys()){const t=c.default.basename(e,".svg"),n=g(e).default;v.set(t,n)}t.placemarkIconURL=function(e){if(!e||e.startsWith("label_"))return h.default;return v.get(e)||((0,m.logError)(`placemarkIconURL: no such icon '${e}'`),h.default)},t.pointsFromArea=function(e){return e?e.split(",").map(Number):[]};const y=()=>n(3034);"complete"===document.readyState?setTimeout(y,0):document.addEventListener("DOMContentLoaded",y,!1);const _={api:void 0};t.version="1.22.7",t.restrictedPanZoom=function(e){return"wheel"===e.type?e.shiftKey||e.altKey||e.ctrlKey||e.metaKey:"touch"!==e.type||e.touches.length>=2},t.latLngToMapPoint=function(e,{lat:t,lng:n}){const r=t,o=n,i=[];e.gps_ref_points.split(",").forEach((e=>{i.push(Number(e))}));const a={lat:i[0],lng:i[1],x:i[4],y:i[5]},s={lat:i[2],lng:i[3],x:i[6],y:i[7]},l=6371;a.globalCoordinateX=l*a.lng*Math.cos((a.lat+s.lat)/2),a.globalCoordinateY=l*a.lat,s.globalCoordinateX=l*s.lng*Math.cos((a.lat+s.lat)/2),s.globalCoordinateY=l*s.lat;const c=l*r,u=(l*o*Math.cos((a.lat+s.lat)/2)-a.globalCoordinateX)/(s.globalCoordinateX-a.globalCoordinateX),f=(c-a.globalCoordinateY)/(s.globalCoordinateY-a.globalCoordinateY);return{x:a.x+(s.x-a.x)*u,y:a.y+(s.y-a.y)*f}},t.mapPointToLatLng=function(e,{x:t,y:n}){const r=[];e.gps_ref_points.split(",").forEach((e=>{r.push(Number(e))}));const o={lat:r[0],lng:r[1],x:r[4],y:r[5]},i={lat:r[2],lng:r[3],x:r[6],y:r[7]},a=o.lng,s=i.lng-a,l=function(){let e;return e=o.y{l.isDestroyed?(0,m.logError)("can't call update on a destroyed MeridianMap"):(l.isDestroyed=!0,(0,u.render)(null,e),t.onDestroy&&t.onDestroy())};let r=null;const o=e=>{r=e},i=(r,{internalUpdate:a=!0}={})=>{t=Object.assign(Object.assign({},t),r);const l=_.api||t.api;if(!l)throw(0,m.requiredParam)("createMap","options.api"),new Error("couldn't create MeridianMap");s=(0,u.render)((0,u.h)(d.default,Object.assign({api:l},t,{update:i,ref:o,destroy:n})),e,s),(0,p.sendAnalyticsCodeEvent)({action:"map.update",locationID:t.locationID,onTagsUpdate:Boolean(t.onTagsUpdate),tagsFilter:Boolean(t.tags&&t.tags.filter),placemarksFilter:Boolean(t.placemarks&&t.placemarks.filter),internalUpdate:a})},a=_.api||t.api;if(!a)throw(0,m.requiredParam)("createMap","options.api"),new Error("couldn't create MeridianMap");let s=(0,u.render)((0,u.h)(d.default,Object.assign({api:a},t,{update:i,ref:o,destroy:n})),e);(0,p.sendAnalyticsCodeEvent)({action:"createMap",locationID:t.locationID,onTagsUpdate:Boolean(t.onTagsUpdate),tagsFilter:Boolean(t.tags&&t.tags.filter),placemarksFilter:Boolean(t.placemarks&&t.placemarks.filter)});const l={destroy:n,isDestroyed:!1,update:e=>{l.isDestroyed?(0,m.logError)("can't call update on a destroyed MeridianMap"):i(e,{internalUpdate:!1})},zoomToDefault:()=>{l.isDestroyed?(0,m.logError)("can't call zoomToDefault on a destroyed MeridianMap"):null==r||r.zoomToDefault()},zoomToPoint:e=>{l.isDestroyed?(0,m.logError)("can't call update on a destroyed MeridianMap"):(e||(0,m.requiredParam)("map.zoomToPoint","options"),void 0===e.x&&(0,m.requiredParam)("map.zoomToPoint","options.x"),void 0===e.y&&(0,m.requiredParam)("map.zoomToPoint","options.y"),void 0===e.scale&&(0,m.requiredParam)("map.zoomToPoint","options.scale"),null==r||r.zoomToPoint(e.x,e.y,e.scale))},centerMap:()=>{l.isDestroyed?(0,m.logError)("can't call update on a destroyed MeridianMap"):null==r||r.centerMap()}};return l},t.createAPI=function(e){return(0,m.logDeprecated)("use `new MeridianSDK.API(options)` instead of `MeridianSDK.createAPI(options)`"),e||(0,m.requiredParam)("createAPI","options"),new b(e)};class b{constructor(e){var n;r.add(this),this.debouncedPlacemarkSearchBeta=(0,m.debouncedPlacemarkSearch)(a(this,r,"m",o).bind(this),600),e.token||(0,m.requiredParam)("API","token"),this.token=e.token,this.environment=("devcloud"===(n=e.environment)?"devCloud":n)||"production",this.language=e.language,this._placemarkSearchAbortController=null,this._localSearchAbortController=null;let i={};this.language&&(i={"accept-language":this.language}),this._axiosEditorAPI=l.default.create({baseURL:S[this.environment],headers:Object.assign({Authorization:`Token ${e.token}`,"Meridian-SDK":`WebSDK/${t.version}`},i)}),this._axiosTagsAPI=l.default.create({baseURL:k[this.environment],headers:{Authorization:`Token ${e.token}`}}),this._axiosTagDetailAPI=l.default.create({baseURL:x[this.environment],headers:{Authorization:`Token ${e.token}`}})}get axios(){return(0,m.logDeprecated)("axios is deprecated; use the MeridianSDK.API fetch methods"),this._axiosEditorAPI}async getDirections(e){e.locationID||(0,m.requiredParam)("getDirections","locationID"),e.startFloorID||(0,m.requiredParam)("getDirections","startFloorID"),e.startPlacemarkID||(0,m.requiredParam)("getDirections","startPlacemarkID"),e.endPlacemarkID||(0,m.requiredParam)("getDirections","endPlacemarkID");const t=new URLSearchParams({from_map_id:e.startFloorID,from_placemark_id:e.startPlacemarkID,to_placemark_ids:e.endPlacemarkID,transport_type:e.transportType||"normal"}),n=`/locations/${e.locationID}/directions?${t}`;return(await this._axiosEditorAPI.get(n)).data}async fetchTagsByFloor(e,t){return e||(0,m.requiredParam)("fetchTagsByFloor","locationID"),t||(0,m.requiredParam)("fetchTagsByFloor","floorID"),(await this._axiosTagsAPI.post("/assets",{floor_id:t,location_id:e})).data.asset_updates}async fetchTagsByLocation(e){return e||(0,m.requiredParam)("fetchTagsByLocation","locationID"),(await this._axiosTagsAPI.post("/assets",{location_id:e})).data.asset_updates}async fetchTagDetail(e){return e||(0,m.requiredParam)("fetchTagDetail","mac"),(await this._axiosTagDetailAPI.get(`/tagsinfo/detail/${e}`)).data}async fetchPlacemarksByLocation(e){return e||(0,m.requiredParam)("fetchPlacemarksByLocation","locationID"),await w((async e=>{const{data:t}=await this._axiosEditorAPI.get(e);return t}),`locations/${e}/placemarks`)}async fetchPlacemarksByFloor(e,t){return e||(0,m.requiredParam)("fetchPlacemarksByFloor","locationID"),t||(0,m.requiredParam)("fetchPlacemarksByFloor","floorID"),await w((async e=>{const{data:t}=await this._axiosEditorAPI.get(e);return t}),`locations/${e}/maps/${t}/placemarks`)}async fetchFloorsByLocation(e){return e||(0,m.requiredParam)("fetchFloorsByLocation","locationID"),await w((async e=>{const{data:t}=await this._axiosEditorAPI.get(e);return t}),`locations/${e}/maps`)}async fetchFloorData(e,t){e||(0,m.requiredParam)("fetchFloorData","locationID"),t||(0,m.requiredParam)("fetchFloorData","floorID");const n=`locations/${e}/maps/${t}`,{data:r}=await this._axiosEditorAPI.get(n);return r}async fetchSVG(e){e||(0,m.requiredParam)("fetchSVG","svgURL");const{data:t}=await this._axiosEditorAPI.get(e,{responseType:"blob"});return URL.createObjectURL(t)}openStream({locationID:e,floorID:t,resourceIDs:n,resourceType:r="FLOOR",onInitialTags:o=(()=>{}),onTagUpdate:i=(()=>{}),onException:a=(()=>{}),onClose:s=(()=>{}),onOpen:l=(()=>{})}){"FLOOR"===r&&t&&!n&&(n=[t]),"LOCATION"===r&&e&&!n&&(n=[e]),e||(0,m.requiredParam)("openStream","locationID"),"FLOOR"!==r||t||(0,m.requiredParam)("openStream","floorID"),n||(0,m.requiredParam)("openStream","resourceIDs");let c=!1;const u=new URLSearchParams({method:"POST",authorization:`Token ${this.token}`}),h=O[this.environment],p=new f.default(`${h}?${u}`),d={asset_requests:[{resource_type:r,location_id:e,resource_ids:n}]},g=()=>{c||(c=!0,(0,m.asyncClientCall)(s),p.close())};return p.addEventListener("open",(()=>{c||(l(),p.send(JSON.stringify(d)))})),p.addEventListener("message",(e=>{if(c)return;const t=JSON.parse(e.data);if(t.error)a(new Error(t.error.message));else{if(!t.result)throw new Error(`Unknown message: ${e.data}`);for(const e of t.result.asset_updates){const t=e.event_type;if("UPDATE"!==t)throw new Error(`Unknown event type: ${t}`);(0,m.asyncClientCall)(i,e)}}})),p.addEventListener("error",(()=>{c||a(new Error("MeridianSDK.openStream connection error"))})),p.addEventListener("close",(()=>{c||s()})),(async()=>{if(t&&"FLOOR"===r)try{const n=await this.fetchTagsByFloor(e,t);(0,m.asyncClientCall)(o,n)}catch(e){(0,m.asyncClientCall)(a,e),g()}else if(e&&"LOCATION"===r)try{const t=await this.fetchTagsByLocation(e);(0,m.asyncClientCall)(o,t)}catch(e){(0,m.asyncClientCall)(a,e),g()}else(0,m.asyncClientCall)(o,[])})(),{close:g}}}async function w(e,t){const n=await e(t),r=n.results;let o=n.next;for(;o;){const t=await e(o);r.push(...t.results),o=t.next}return r}t.API=b,r=new WeakSet,o=async function(e){const t=(0,m.cleanQuery)(e.searchStr);if(e.locationID||(0,m.requiredParam)("placemarkSearch","locationID"),this._placemarkSearchAbortController&&this._placemarkSearchAbortController.abort(),this._localSearchAbortController&&this._localSearchAbortController.abort(),!t)return[];this._placemarkSearchAbortController=new AbortController;const n=new URLSearchParams({q:`${t} AND (${m.placemarkSearchParams})`,page_size:"100"});try{return await this._axiosEditorAPI.get(`locations/${e.locationID}/search`,{signal:this._placemarkSearchAbortController.signal,params:n}).then((async n=>{const o=n.data.results;if(e.refPoint&&e.refFloorID&&o.length){const n=await a(this,r,"m",i).call(this,{locationID:e.locationID,searchStr:t,point:e.refPoint,mapID:e.refFloorID}),s=[],l=n.map((e=>e.id));return o.forEach((e=>{l.includes(e.id)||s.push(e)})),this._placemarkSearchAbortController=null,[...n,...s]}return this._placemarkSearchAbortController=null,o}))}catch(e){return"canceled"===e.message?null:(console.warn(e),[])}},i=async function(e){const t=(0,m.cleanQuery)(e.searchStr);if(this._localSearchAbortController&&this._localSearchAbortController.abort(),!t)return[];this._localSearchAbortController=new AbortController;const n=new URLSearchParams({q:`${t} AND (${m.placemarkSearchParams})`,limit:"10",appid:e.locationID,map_id:e.mapID,point:e.point});return this._axiosEditorAPI.get("search/local",{signal:this._localSearchAbortController.signal,params:n}).then((e=>(this._localSearchAbortController=null,e.data.results)))};const k={development:"http://localhost:8091/api/v1",devCloud:"https://dev-tags.meridianapps.com/api/v1",production:"https://tags.meridianapps.com/api/v1",eu:"https://tags-eu.meridianapps.com/api/v1",staging:"https://staging-tags.meridianapps.com/api/v1"},x={development:"http://localhost:8091/api",devCloud:"https://dev-tags.meridianapps.com/api",production:"https://tags.meridianapps.com/api",eu:"https://tags-eu.meridianapps.com/api",staging:"https://staging-tags.meridianapps.com/api"},O={development:"ws://localhost:8091/streams/v1/assets",devCloud:"wss://dev-tags.meridianapps.com/streams/v1/assets",production:"wss://tags.meridianapps.com/streams/v1/assets",eu:"wss://tags-eu.meridianapps.com/streams/v1/assets",staging:"wss://staging-tags.meridianapps.com/streams/v1/assets"},S={development:"http://localhost:8091/api",devCloud:"https://dev-edit.meridianapps.com/api",production:"https://edit.meridianapps.com/api",eu:"https://edit-eu.meridianapps.com/api",staging:"https://staging-edit.meridianapps.com/api"}},6425:function(e,t,n){"use strict";function r(e,t){return function(){return e.apply(t,arguments)}}const{toString:o}=Object.prototype,{getPrototypeOf:i}=Object,a=(s=Object.create(null),e=>{const t=o.call(e);return s[t]||(s[t]=t.slice(8,-1).toLowerCase())});var s;const l=e=>(e=e.toLowerCase(),t=>a(t)===e),c=e=>t=>typeof t===e,{isArray:u}=Array,f=c("undefined"),h=l("ArrayBuffer"),p=c("string"),d=c("function"),m=c("number"),g=e=>null!==e&&"object"==typeof e,v=e=>{if("object"!==a(e))return!1;const t=i(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||Symbol.toStringTag in e||Symbol.iterator in e)},y=l("Date"),_=l("File"),b=l("Blob"),w=l("FileList"),k=l("URLSearchParams"),[x,O,S,C]=["ReadableStream","Request","Response","Headers"].map(l);function A(e,t,{allOwnKeys:n=!1}={}){if(null==e)return;let r,o;if("object"!=typeof e&&(e=[e]),u(e))for(r=0,o=e.length;r0;)if(r=n[o],t===r.toLowerCase())return r;return null}const T="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:n.g,P=e=>!f(e)&&e!==T,D=(j="undefined"!=typeof Uint8Array&&i(Uint8Array),e=>j&&e instanceof j);var j;const M=l("HTMLFormElement"),R=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),L=l("RegExp"),N=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};A(n,((n,o)=>{let i;!1!==(i=t(n,o,e))&&(r[o]=i||n)})),Object.defineProperties(e,r)},I="abcdefghijklmnopqrstuvwxyz",z="0123456789",F={DIGIT:z,ALPHA:I,ALPHA_DIGIT:I+I.toUpperCase()+z},B=l("AsyncFunction"),U=($="function"==typeof setImmediate,q=d(T.postMessage),$?setImmediate:q?(W=`axios@${Math.random()}`,H=[],T.addEventListener("message",(({source:e,data:t})=>{e===T&&t===W&&H.length&&H.shift()()}),!1),e=>{H.push(e),T.postMessage(W,"*")}):e=>setTimeout(e));var $,q,W,H;const Z="undefined"!=typeof queueMicrotask?queueMicrotask.bind(T):"undefined"!=typeof process&&process.nextTick||U;var G={isArray:u,isArrayBuffer:h,isBuffer:function(e){return null!==e&&!f(e)&&null!==e.constructor&&!f(e.constructor)&&d(e.constructor.isBuffer)&&e.constructor.isBuffer(e)},isFormData:e=>{let t;return e&&("function"==typeof FormData&&e instanceof FormData||d(e.append)&&("formdata"===(t=a(e))||"object"===t&&d(e.toString)&&"[object FormData]"===e.toString()))},isArrayBufferView:function(e){let t;return t="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&h(e.buffer),t},isString:p,isNumber:m,isBoolean:e=>!0===e||!1===e,isObject:g,isPlainObject:v,isReadableStream:x,isRequest:O,isResponse:S,isHeaders:C,isUndefined:f,isDate:y,isFile:_,isBlob:b,isRegExp:L,isFunction:d,isStream:e=>g(e)&&d(e.pipe),isURLSearchParams:k,isTypedArray:D,isFileList:w,forEach:A,merge:function e(){const{caseless:t}=P(this)&&this||{},n={},r=(r,o)=>{const i=t&&E(n,o)||o;v(n[i])&&v(r)?n[i]=e(n[i],r):v(r)?n[i]=e({},r):u(r)?n[i]=r.slice():n[i]=r};for(let e=0,t=arguments.length;e(A(t,((t,o)=>{n&&d(t)?e[o]=r(t,n):e[o]=t}),{allOwnKeys:o}),e),trim:e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:e=>(65279===e.charCodeAt(0)&&(e=e.slice(1)),e),inherits:(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},toFlatObject:(e,t,n,r)=>{let o,a,s;const l={};if(t=t||{},null==e)return t;do{for(o=Object.getOwnPropertyNames(e),a=o.length;a-- >0;)s=o[a],r&&!r(s,e,t)||l[s]||(t[s]=e[s],l[s]=!0);e=!1!==n&&i(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},kindOf:a,kindOfTest:l,endsWith:(e,t,n)=>{e=String(e),(void 0===n||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return-1!==r&&r===n},toArray:e=>{if(!e)return null;if(u(e))return e;let t=e.length;if(!m(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},forEachEntry:(e,t)=>{const n=(e&&e[Symbol.iterator]).call(e);let r;for(;(r=n.next())&&!r.done;){const n=r.value;t.call(e,n[0],n[1])}},matchAll:(e,t)=>{let n;const r=[];for(;null!==(n=e.exec(t));)r.push(n);return r},isHTMLForm:M,hasOwnProperty:R,hasOwnProp:R,reduceDescriptors:N,freezeMethods:e=>{N(e,((t,n)=>{if(d(e)&&-1!==["arguments","caller","callee"].indexOf(n))return!1;const r=e[n];d(r)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")}))}))},toObjectSet:(e,t)=>{const n={},r=e=>{e.forEach((e=>{n[e]=!0}))};return u(e)?r(e):r(String(e).split(t)),n},toCamelCase:e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(e,t,n){return t.toUpperCase()+n})),noop:()=>{},toFiniteNumber:(e,t)=>null!=e&&Number.isFinite(e=+e)?e:t,findKey:E,global:T,isContextDefined:P,ALPHABET:F,generateString:(e=16,t=F.ALPHA_DIGIT)=>{let n="";const{length:r}=t;for(;e--;)n+=t[Math.random()*r|0];return n},isSpecCompliantForm:function(e){return!!(e&&d(e.append)&&"FormData"===e[Symbol.toStringTag]&&e[Symbol.iterator])},toJSONObject:e=>{const t=new Array(10),n=(e,r)=>{if(g(e)){if(t.indexOf(e)>=0)return;if(!("toJSON"in e)){t[r]=e;const o=u(e)?[]:{};return A(e,((e,t)=>{const i=n(e,r+1);!f(i)&&(o[t]=i)})),t[r]=void 0,o}}return e};return n(e,0)},isAsyncFn:B,isThenable:e=>e&&(g(e)||d(e))&&d(e.then)&&d(e.catch),setImmediate:U,asap:Z};function V(e,t,n,r,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),o&&(this.response=o,this.status=o.status?o.status:null)}G.inherits(V,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:G.toJSONObject(this.config),code:this.code,status:this.status}}});const X=V.prototype,J={};function Y(e){return G.isPlainObject(e)||G.isArray(e)}function K(e){return G.endsWith(e,"[]")?e.slice(0,-2):e}function Q(e,t,n){return e?e.concat(t).map((function(e,t){return e=K(e),!n&&t?"["+e+"]":e})).join(n?".":""):t}["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((e=>{J[e]={value:e}})),Object.defineProperties(V,J),Object.defineProperty(X,"isAxiosError",{value:!0}),V.from=(e,t,n,r,o,i)=>{const a=Object.create(X);return G.toFlatObject(e,a,(function(e){return e!==Error.prototype}),(e=>"isAxiosError"!==e)),V.call(a,e.message,t,n,r,o),a.cause=e,a.name=e.name,i&&Object.assign(a,i),a};const ee=G.toFlatObject(G,{},null,(function(e){return/^is[A-Z]/.test(e)}));function te(e,t,n){if(!G.isObject(e))throw new TypeError("target must be an object");t=t||new FormData;const r=(n=G.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(e,t){return!G.isUndefined(t[e])}))).metaTokens,o=n.visitor||c,i=n.dots,a=n.indexes,s=(n.Blob||"undefined"!=typeof Blob&&Blob)&&G.isSpecCompliantForm(t);if(!G.isFunction(o))throw new TypeError("visitor must be a function");function l(e){if(null===e)return"";if(G.isDate(e))return e.toISOString();if(!s&&G.isBlob(e))throw new V("Blob is not supported. Use a Buffer instead.");return G.isArrayBuffer(e)||G.isTypedArray(e)?s&&"function"==typeof Blob?new Blob([e]):Buffer.from(e):e}function c(e,n,o){let s=e;if(e&&!o&&"object"==typeof e)if(G.endsWith(n,"{}"))n=r?n:n.slice(0,-2),e=JSON.stringify(e);else if(G.isArray(e)&&function(e){return G.isArray(e)&&!e.some(Y)}(e)||(G.isFileList(e)||G.endsWith(n,"[]"))&&(s=G.toArray(e)))return n=K(n),s.forEach((function(e,r){!G.isUndefined(e)&&null!==e&&t.append(!0===a?Q([n],r,i):null===a?n:n+"[]",l(e))})),!1;return!!Y(e)||(t.append(Q(o,n,i),l(e)),!1)}const u=[],f=Object.assign(ee,{defaultVisitor:c,convertValue:l,isVisitable:Y});if(!G.isObject(e))throw new TypeError("data must be an object");return function e(n,r){if(!G.isUndefined(n)){if(-1!==u.indexOf(n))throw Error("Circular reference detected in "+r.join("."));u.push(n),G.forEach(n,(function(n,i){!0===(!(G.isUndefined(n)||null===n)&&o.call(t,n,G.isString(i)?i.trim():i,r,f))&&e(n,r?r.concat(i):[i])})),u.pop()}}(e),t}function ne(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,(function(e){return t[e]}))}function re(e,t){this._pairs=[],e&&te(e,this,t)}const oe=re.prototype;function ie(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function ae(e,t,n){if(!t)return e;const r=n&&n.encode||ie,o=n&&n.serialize;let i;if(i=o?o(t,n):G.isURLSearchParams(t)?t.toString():new re(t,n).toString(r),i){const t=e.indexOf("#");-1!==t&&(e=e.slice(0,t)),e+=(-1===e.indexOf("?")?"?":"&")+i}return e}oe.append=function(e,t){this._pairs.push([e,t])},oe.toString=function(e){const t=e?function(t){return e.call(this,t,ne)}:ne;return this._pairs.map((function(e){return t(e[0])+"="+t(e[1])}),"").join("&")};var se=class{constructor(){this.handlers=[]}use(e,t,n){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){G.forEach(this.handlers,(function(t){null!==t&&e(t)}))}},le={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},ce={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:re,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]};const ue="undefined"!=typeof window&&"undefined"!=typeof document,fe="object"==typeof navigator&&navigator||void 0,he=ue&&(!fe||["ReactNative","NativeScript","NS"].indexOf(fe.product)<0),pe="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,de=ue&&window.location.href||"http://localhost";var me={...Object.freeze({__proto__:null,hasBrowserEnv:ue,hasStandardBrowserWebWorkerEnv:pe,hasStandardBrowserEnv:he,navigator:fe,origin:de}),...ce};function ge(e){function t(e,n,r,o){let i=e[o++];if("__proto__"===i)return!0;const a=Number.isFinite(+i),s=o>=e.length;return i=!i&&G.isArray(r)?r.length:i,s?(G.hasOwnProp(r,i)?r[i]=[r[i],n]:r[i]=n,!a):(r[i]&&G.isObject(r[i])||(r[i]=[]),t(e,n,r[i],o)&&G.isArray(r[i])&&(r[i]=function(e){const t={},n=Object.keys(e);let r;const o=n.length;let i;for(r=0;r{t(function(e){return G.matchAll(/\w+|\[(\w*)]/g,e).map((e=>"[]"===e[0]?"":e[1]||e[0]))}(e),r,n,0)})),n}return null}const ve={transitional:le,adapter:["xhr","http","fetch"],transformRequest:[function(e,t){const n=t.getContentType()||"",r=n.indexOf("application/json")>-1,o=G.isObject(e);if(o&&G.isHTMLForm(e)&&(e=new FormData(e)),G.isFormData(e))return r?JSON.stringify(ge(e)):e;if(G.isArrayBuffer(e)||G.isBuffer(e)||G.isStream(e)||G.isFile(e)||G.isBlob(e)||G.isReadableStream(e))return e;if(G.isArrayBufferView(e))return e.buffer;if(G.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let i;if(o){if(n.indexOf("application/x-www-form-urlencoded")>-1)return function(e,t){return te(e,new me.classes.URLSearchParams,Object.assign({visitor:function(e,t,n,r){return me.isNode&&G.isBuffer(e)?(this.append(t,e.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)}},t))}(e,this.formSerializer).toString();if((i=G.isFileList(e))||n.indexOf("multipart/form-data")>-1){const t=this.env&&this.env.FormData;return te(i?{"files[]":e}:e,t&&new t,this.formSerializer)}}return o||r?(t.setContentType("application/json",!1),function(e,t,n){if(G.isString(e))try{return(0,JSON.parse)(e),G.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(0,JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){const t=this.transitional||ve.transitional,n=t&&t.forcedJSONParsing,r="json"===this.responseType;if(G.isResponse(e)||G.isReadableStream(e))return e;if(e&&G.isString(e)&&(n&&!this.responseType||r)){const n=!(t&&t.silentJSONParsing)&&r;try{return JSON.parse(e)}catch(e){if(n){if("SyntaxError"===e.name)throw V.from(e,V.ERR_BAD_RESPONSE,this,null,this.response);throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:me.classes.FormData,Blob:me.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};G.forEach(["delete","get","head","post","put","patch"],(e=>{ve.headers[e]={}}));var ye=ve;const _e=G.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),be=Symbol("internals");function we(e){return e&&String(e).trim().toLowerCase()}function ke(e){return!1===e||null==e?e:G.isArray(e)?e.map(ke):String(e)}function xe(e,t,n,r,o){return G.isFunction(r)?r.call(this,t,n):(o&&(t=n),G.isString(t)?G.isString(r)?-1!==t.indexOf(r):G.isRegExp(r)?r.test(t):void 0:void 0)}class Oe{constructor(e){e&&this.set(e)}set(e,t,n){const r=this;function o(e,t,n){const o=we(t);if(!o)throw new Error("header name must be a non-empty string");const i=G.findKey(r,o);(!i||void 0===r[i]||!0===n||void 0===n&&!1!==r[i])&&(r[i||t]=ke(e))}const i=(e,t)=>G.forEach(e,((e,n)=>o(e,n,t)));if(G.isPlainObject(e)||e instanceof this.constructor)i(e,t);else if(G.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim()))i((e=>{const t={};let n,r,o;return e&&e.split("\n").forEach((function(e){o=e.indexOf(":"),n=e.substring(0,o).trim().toLowerCase(),r=e.substring(o+1).trim(),!n||t[n]&&_e[n]||("set-cookie"===n?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)})),t})(e),t);else if(G.isHeaders(e))for(const[t,r]of e.entries())o(r,t,n);else null!=e&&o(t,e,n);return this}get(e,t){if(e=we(e)){const n=G.findKey(this,e);if(n){const e=this[n];if(!t)return e;if(!0===t)return function(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}(e);if(G.isFunction(t))return t.call(this,e,n);if(G.isRegExp(t))return t.exec(e);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=we(e)){const n=G.findKey(this,e);return!(!n||void 0===this[n]||t&&!xe(0,this[n],n,t))}return!1}delete(e,t){const n=this;let r=!1;function o(e){if(e=we(e)){const o=G.findKey(n,e);!o||t&&!xe(0,n[o],o,t)||(delete n[o],r=!0)}}return G.isArray(e)?e.forEach(o):o(e),r}clear(e){const t=Object.keys(this);let n=t.length,r=!1;for(;n--;){const o=t[n];e&&!xe(0,this[o],o,e,!0)||(delete this[o],r=!0)}return r}normalize(e){const t=this,n={};return G.forEach(this,((r,o)=>{const i=G.findKey(n,o);if(i)return t[i]=ke(r),void delete t[o];const a=e?function(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((e,t,n)=>t.toUpperCase()+n))}(o):String(o).trim();a!==o&&delete t[o],t[a]=ke(r),n[a]=!0})),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return G.forEach(this,((n,r)=>{null!=n&&!1!==n&&(t[r]=e&&G.isArray(n)?n.join(", "):n)})),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([e,t])=>e+": "+t)).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const n=new this(e);return t.forEach((e=>n.set(e))),n}static accessor(e){const t=(this[be]=this[be]={accessors:{}}).accessors,n=this.prototype;function r(e){const r=we(e);t[r]||(function(e,t){const n=G.toCamelCase(" "+t);["get","set","has"].forEach((r=>{Object.defineProperty(e,r+n,{value:function(e,n,o){return this[r].call(this,t,e,n,o)},configurable:!0})}))}(n,e),t[r]=!0)}return G.isArray(e)?e.forEach(r):r(e),this}}Oe.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),G.reduceDescriptors(Oe.prototype,(({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[n]=e}}})),G.freezeMethods(Oe);var Se=Oe;function Ce(e,t){const n=this||ye,r=t||n,o=Se.from(r.headers);let i=r.data;return G.forEach(e,(function(e){i=e.call(n,i,o.normalize(),t?t.status:void 0)})),o.normalize(),i}function Ae(e){return!(!e||!e.__CANCEL__)}function Ee(e,t,n){V.call(this,null==e?"canceled":e,V.ERR_CANCELED,t,n),this.name="CanceledError"}function Te(e,t,n){const r=n.config.validateStatus;n.status&&r&&!r(n.status)?t(new V("Request failed with status code "+n.status,[V.ERR_BAD_REQUEST,V.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n)):e(n)}G.inherits(Ee,V,{__CANCEL__:!0});const Pe=(e,t,n=3)=>{let r=0;const o=function(e,t){e=e||10;const n=new Array(e),r=new Array(e);let o,i=0,a=0;return t=void 0!==t?t:1e3,function(s){const l=Date.now(),c=r[a];o||(o=l),n[i]=s,r[i]=l;let u=a,f=0;for(;u!==i;)f+=n[u++],u%=e;if(i=(i+1)%e,i===a&&(a=(a+1)%e),l-o{o=i,n=null,r&&(clearTimeout(r),r=null),e.apply(null,t)};return[(...e)=>{const t=Date.now(),s=t-o;s>=i?a(e,t):(n=e,r||(r=setTimeout((()=>{r=null,a(n)}),i-s)))},()=>n&&a(n)]}((n=>{const i=n.loaded,a=n.lengthComputable?n.total:void 0,s=i-r,l=o(s);r=i,e({loaded:i,total:a,progress:a?i/a:void 0,bytes:s,rate:l||void 0,estimated:l&&a&&i<=a?(a-i)/l:void 0,event:n,lengthComputable:null!=a,[t?"download":"upload"]:!0})}),n)},De=(e,t)=>{const n=null!=e;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},je=e=>(...t)=>G.asap((()=>e(...t)));var Me=me.hasStandardBrowserEnv?function(){const e=me.navigator&&/(msie|trident)/i.test(me.navigator.userAgent),t=document.createElement("a");let n;function r(n){let r=n;return e&&(t.setAttribute("href",r),r=t.href),t.setAttribute("href",r),{href:t.href,protocol:t.protocol?t.protocol.replace(/:$/,""):"",host:t.host,search:t.search?t.search.replace(/^\?/,""):"",hash:t.hash?t.hash.replace(/^#/,""):"",hostname:t.hostname,port:t.port,pathname:"/"===t.pathname.charAt(0)?t.pathname:"/"+t.pathname}}return n=r(window.location.href),function(e){const t=G.isString(e)?r(e):e;return t.protocol===n.protocol&&t.host===n.host}}():function(){return!0},Re=me.hasStandardBrowserEnv?{write(e,t,n,r,o,i){const a=[e+"="+encodeURIComponent(t)];G.isNumber(n)&&a.push("expires="+new Date(n).toGMTString()),G.isString(r)&&a.push("path="+r),G.isString(o)&&a.push("domain="+o),!0===i&&a.push("secure"),document.cookie=a.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function Le(e,t){return e&&!/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)?function(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}(e,t):t}const Ne=e=>e instanceof Se?{...e}:e;function Ie(e,t){t=t||{};const n={};function r(e,t,n){return G.isPlainObject(e)&&G.isPlainObject(t)?G.merge.call({caseless:n},e,t):G.isPlainObject(t)?G.merge({},t):G.isArray(t)?t.slice():t}function o(e,t,n){return G.isUndefined(t)?G.isUndefined(e)?void 0:r(void 0,e,n):r(e,t,n)}function i(e,t){if(!G.isUndefined(t))return r(void 0,t)}function a(e,t){return G.isUndefined(t)?G.isUndefined(e)?void 0:r(void 0,e):r(void 0,t)}function s(n,o,i){return i in t?r(n,o):i in e?r(void 0,n):void 0}const l={url:i,method:i,data:i,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,withXSRFToken:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:s,headers:(e,t)=>o(Ne(e),Ne(t),!0)};return G.forEach(Object.keys(Object.assign({},e,t)),(function(r){const i=l[r]||o,a=i(e[r],t[r],r);G.isUndefined(a)&&i!==s||(n[r]=a)})),n}var ze=e=>{const t=Ie({},e);let n,{data:r,withXSRFToken:o,xsrfHeaderName:i,xsrfCookieName:a,headers:s,auth:l}=t;if(t.headers=s=Se.from(s),t.url=ae(Le(t.baseURL,t.url),e.params,e.paramsSerializer),l&&s.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):""))),G.isFormData(r))if(me.hasStandardBrowserEnv||me.hasStandardBrowserWebWorkerEnv)s.setContentType(void 0);else if(!1!==(n=s.getContentType())){const[e,...t]=n?n.split(";").map((e=>e.trim())).filter(Boolean):[];s.setContentType([e||"multipart/form-data",...t].join("; "))}if(me.hasStandardBrowserEnv&&(o&&G.isFunction(o)&&(o=o(t)),o||!1!==o&&Me(t.url))){const e=i&&a&&Re.read(a);e&&s.set(i,e)}return t},Fe="undefined"!=typeof XMLHttpRequest&&function(e){return new Promise((function(t,n){const r=ze(e);let o=r.data;const i=Se.from(r.headers).normalize();let a,s,l,c,u,{responseType:f,onUploadProgress:h,onDownloadProgress:p}=r;function d(){c&&c(),u&&u(),r.cancelToken&&r.cancelToken.unsubscribe(a),r.signal&&r.signal.removeEventListener("abort",a)}let m=new XMLHttpRequest;function g(){if(!m)return;const r=Se.from("getAllResponseHeaders"in m&&m.getAllResponseHeaders());Te((function(e){t(e),d()}),(function(e){n(e),d()}),{data:f&&"text"!==f&&"json"!==f?m.response:m.responseText,status:m.status,statusText:m.statusText,headers:r,config:e,request:m}),m=null}m.open(r.method.toUpperCase(),r.url,!0),m.timeout=r.timeout,"onloadend"in m?m.onloadend=g:m.onreadystatechange=function(){m&&4===m.readyState&&(0!==m.status||m.responseURL&&0===m.responseURL.indexOf("file:"))&&setTimeout(g)},m.onabort=function(){m&&(n(new V("Request aborted",V.ECONNABORTED,e,m)),m=null)},m.onerror=function(){n(new V("Network Error",V.ERR_NETWORK,e,m)),m=null},m.ontimeout=function(){let t=r.timeout?"timeout of "+r.timeout+"ms exceeded":"timeout exceeded";const o=r.transitional||le;r.timeoutErrorMessage&&(t=r.timeoutErrorMessage),n(new V(t,o.clarifyTimeoutError?V.ETIMEDOUT:V.ECONNABORTED,e,m)),m=null},void 0===o&&i.setContentType(null),"setRequestHeader"in m&&G.forEach(i.toJSON(),(function(e,t){m.setRequestHeader(t,e)})),G.isUndefined(r.withCredentials)||(m.withCredentials=!!r.withCredentials),f&&"json"!==f&&(m.responseType=r.responseType),p&&([l,u]=Pe(p,!0),m.addEventListener("progress",l)),h&&m.upload&&([s,c]=Pe(h),m.upload.addEventListener("progress",s),m.upload.addEventListener("loadend",c)),(r.cancelToken||r.signal)&&(a=t=>{m&&(n(!t||t.type?new Ee(null,e,m):t),m.abort(),m=null)},r.cancelToken&&r.cancelToken.subscribe(a),r.signal&&(r.signal.aborted?a():r.signal.addEventListener("abort",a)));const v=function(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}(r.url);v&&-1===me.protocols.indexOf(v)?n(new V("Unsupported protocol "+v+":",V.ERR_BAD_REQUEST,e)):m.send(o||null)}))},Be=(e,t)=>{let n,r=new AbortController;const o=function(e){if(!n){n=!0,a();const t=e instanceof Error?e:this.reason;r.abort(t instanceof V?t:new Ee(t instanceof Error?t.message:t))}};let i=t&&setTimeout((()=>{o(new V(`timeout ${t} of ms exceeded`,V.ETIMEDOUT))}),t);const a=()=>{e&&(i&&clearTimeout(i),i=null,e.forEach((e=>{e&&(e.removeEventListener?e.removeEventListener("abort",o):e.unsubscribe(o))})),e=null)};e.forEach((e=>e&&e.addEventListener&&e.addEventListener("abort",o)));const{signal:s}=r;return s.unsubscribe=a,[s,()=>{i&&clearTimeout(i),i=null}]};const Ue=function*(e,t){let n=e.byteLength;if(!t||n{const i=async function*(e,t,n){for await(const r of e)yield*Ue(ArrayBuffer.isView(r)?r:await n(String(r)),t)}(e,t,o);let a,s=0,l=e=>{a||(a=!0,r&&r(e))};return new ReadableStream({async pull(e){try{const{done:t,value:r}=await i.next();if(t)return l(),void e.close();let o=r.byteLength;if(n){let e=s+=o;n(e)}e.enqueue(new Uint8Array(r))}catch(e){throw l(e),e}},cancel(e){return l(e),i.return()}},{highWaterMark:2})},qe="function"==typeof fetch&&"function"==typeof Request&&"function"==typeof Response,We=qe&&"function"==typeof ReadableStream,He=qe&&("function"==typeof TextEncoder?(Ze=new TextEncoder,e=>Ze.encode(e)):async e=>new Uint8Array(await new Response(e).arrayBuffer()));var Ze;const Ge=(e,...t)=>{try{return!!e(...t)}catch(e){return!1}},Ve=We&&Ge((()=>{let e=!1;const t=new Request(me.origin,{body:new ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type");return e&&!t})),Xe=We&&Ge((()=>G.isReadableStream(new Response("").body))),Je={stream:Xe&&(e=>e.body)};var Ye;qe&&(Ye=new Response,["text","arrayBuffer","blob","formData","stream"].forEach((e=>{!Je[e]&&(Je[e]=G.isFunction(Ye[e])?t=>t[e]():(t,n)=>{throw new V(`Response type '${e}' is not supported`,V.ERR_NOT_SUPPORT,n)})})));const Ke={http:null,xhr:Fe,fetch:qe&&(async e=>{let{url:t,method:n,data:r,signal:o,cancelToken:i,timeout:a,onDownloadProgress:s,onUploadProgress:l,responseType:c,headers:u,withCredentials:f="same-origin",fetchOptions:h}=ze(e);c=c?(c+"").toLowerCase():"text";let p,d,[m,g]=o||i||a?Be([o,i],a):[];const v=()=>{!p&&setTimeout((()=>{m&&m.unsubscribe()})),p=!0};let y;try{if(l&&Ve&&"get"!==n&&"head"!==n&&0!==(y=await(async(e,t)=>{const n=G.toFiniteNumber(e.getContentLength());return null==n?(async e=>null==e?0:G.isBlob(e)?e.size:G.isSpecCompliantForm(e)?(await new Request(e).arrayBuffer()).byteLength:G.isArrayBufferView(e)||G.isArrayBuffer(e)?e.byteLength:(G.isURLSearchParams(e)&&(e+=""),G.isString(e)?(await He(e)).byteLength:void 0))(t):n})(u,r))){let e,n=new Request(t,{method:"POST",body:r,duplex:"half"});if(G.isFormData(r)&&(e=n.headers.get("content-type"))&&u.setContentType(e),n.body){const[e,t]=De(y,Pe(je(l)));r=$e(n.body,65536,e,t,He)}}G.isString(f)||(f=f?"include":"omit");const o="credentials"in Request.prototype;d=new Request(t,{...h,signal:m,method:n.toUpperCase(),headers:u.normalize().toJSON(),body:r,duplex:"half",credentials:o?f:void 0});let i=await fetch(d);const a=Xe&&("stream"===c||"response"===c);if(Xe&&(s||a)){const e={};["status","statusText","headers"].forEach((t=>{e[t]=i[t]}));const t=G.toFiniteNumber(i.headers.get("content-length")),[n,r]=s&&De(t,Pe(je(s),!0))||[];i=new Response($e(i.body,65536,n,(()=>{r&&r(),a&&v()}),He),e)}c=c||"text";let p=await Je[G.findKey(Je,c)||"text"](i,e);return!a&&v(),g&&g(),await new Promise(((t,n)=>{Te(t,n,{data:p,headers:Se.from(i.headers),status:i.status,statusText:i.statusText,config:e,request:d})}))}catch(t){if(v(),t&&"TypeError"===t.name&&/fetch/i.test(t.message))throw Object.assign(new V("Network Error",V.ERR_NETWORK,e,d),{cause:t.cause||t});throw V.from(t,t&&t.code,e,d)}})};G.forEach(Ke,((e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch(e){}Object.defineProperty(e,"adapterName",{value:t})}}));const Qe=e=>`- ${e}`,et=e=>G.isFunction(e)||null===e||!1===e;var tt=e=>{e=G.isArray(e)?e:[e];const{length:t}=e;let n,r;const o={};for(let i=0;i`adapter ${e} `+(!1===t?"is not supported by the environment":"is not available in the build")));throw new V("There is no suitable adapter to dispatch the request "+(t?e.length>1?"since :\n"+e.map(Qe).join("\n"):" "+Qe(e[0]):"as no adapter specified"),"ERR_NOT_SUPPORT")}return r};function nt(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Ee(null,e)}function rt(e){return nt(e),e.headers=Se.from(e.headers),e.data=Ce.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1),tt(e.adapter||ye.adapter)(e).then((function(t){return nt(e),t.data=Ce.call(e,e.transformResponse,t),t.headers=Se.from(t.headers),t}),(function(t){return Ae(t)||(nt(e),t&&t.response&&(t.response.data=Ce.call(e,e.transformResponse,t.response),t.response.headers=Se.from(t.response.headers))),Promise.reject(t)}))}const ot={};["object","boolean","number","function","string","symbol"].forEach(((e,t)=>{ot[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}}));const it={};ot.transitional=function(e,t,n){function r(e,t){return"[Axios v1.7.5] Transitional option '"+e+"'"+t+(n?". "+n:"")}return(n,o,i)=>{if(!1===e)throw new V(r(o," has been removed"+(t?" in "+t:"")),V.ERR_DEPRECATED);return t&&!it[o]&&(it[o]=!0,console.warn(r(o," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(n,o,i)}};var at={assertOptions:function(e,t,n){if("object"!=typeof e)throw new V("options must be an object",V.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let o=r.length;for(;o-- >0;){const i=r[o],a=t[i];if(a){const t=e[i],n=void 0===t||a(t,i,e);if(!0!==n)throw new V("option "+i+" must be "+n,V.ERR_BAD_OPTION_VALUE)}else if(!0!==n)throw new V("Unknown option "+i,V.ERR_BAD_OPTION)}},validators:ot};const st=at.validators;class lt{constructor(e){this.defaults=e,this.interceptors={request:new se,response:new se}}async request(e,t){try{return await this._request(e,t)}catch(e){if(e instanceof Error){let t;Error.captureStackTrace?Error.captureStackTrace(t={}):t=new Error;const n=t.stack?t.stack.replace(/^.+\n/,""):"";try{e.stack?n&&!String(e.stack).endsWith(n.replace(/^.+\n.+\n/,""))&&(e.stack+="\n"+n):e.stack=n}catch(e){}}throw e}}_request(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{},t=Ie(this.defaults,t);const{transitional:n,paramsSerializer:r,headers:o}=t;void 0!==n&&at.assertOptions(n,{silentJSONParsing:st.transitional(st.boolean),forcedJSONParsing:st.transitional(st.boolean),clarifyTimeoutError:st.transitional(st.boolean)},!1),null!=r&&(G.isFunction(r)?t.paramsSerializer={serialize:r}:at.assertOptions(r,{encode:st.function,serialize:st.function},!0)),t.method=(t.method||this.defaults.method||"get").toLowerCase();let i=o&&G.merge(o.common,o[t.method]);o&&G.forEach(["delete","get","head","post","put","patch","common"],(e=>{delete o[e]})),t.headers=Se.concat(i,o);const a=[];let s=!0;this.interceptors.request.forEach((function(e){"function"==typeof e.runWhen&&!1===e.runWhen(t)||(s=s&&e.synchronous,a.unshift(e.fulfilled,e.rejected))}));const l=[];let c;this.interceptors.response.forEach((function(e){l.push(e.fulfilled,e.rejected)}));let u,f=0;if(!s){const e=[rt.bind(this),void 0];for(e.unshift.apply(e,a),e.push.apply(e,l),u=e.length,c=Promise.resolve(t);f{if(!n._listeners)return;let t=n._listeners.length;for(;t-- >0;)n._listeners[t](e);n._listeners=null})),this.promise.then=e=>{let t;const r=new Promise((e=>{n.subscribe(e),t=e})).then(e);return r.cancel=function(){n.unsubscribe(t)},r},e((function(e,r,o){n.reason||(n.reason=new Ee(e,r,o),t(n.reason))}))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}static source(){let e;return{token:new ut((function(t){e=t})),cancel:e}}}var ft=ut;const ht={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(ht).forEach((([e,t])=>{ht[t]=e}));var pt=ht;const dt=function e(t){const n=new ct(t),o=r(ct.prototype.request,n);return G.extend(o,ct.prototype,n,{allOwnKeys:!0}),G.extend(o,n,null,{allOwnKeys:!0}),o.create=function(n){return e(Ie(t,n))},o}(ye);dt.Axios=ct,dt.CanceledError=Ee,dt.CancelToken=ft,dt.isCancel=Ae,dt.VERSION="1.7.5",dt.toFormData=te,dt.AxiosError=V,dt.Cancel=dt.CanceledError,dt.all=function(e){return Promise.all(e)},dt.spread=function(e){return function(t){return e.apply(null,t)}},dt.isAxiosError=function(e){return G.isObject(e)&&!0===e.isAxiosError},dt.mergeConfig=Ie,dt.AxiosHeaders=Se,dt.formToJSON=e=>ge(G.isHTMLForm(e)?new FormData(e):e),dt.getAdapter=tt,dt.HttpStatusCode=pt,dt.default=dt,e.exports=dt},5478:function(e,t,n){"use strict";function r(e){return null==e?[]:Array.isArray(e)?e:Array.from(e)}n.d(t,{A:function(){return r}})},3663:function(e,t,n){"use strict";n.d(t,{A:function(){return s}});var r=n(7268),o=n(7947);function i(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===o.g&&t.documentElement.namespaceURI===o.g?t.createElement(e):t.createElementNS(n,e)}}function a(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function s(e){var t=(0,r.A)(e);return(t.local?a:i)(t)}},9062:function(e,t,n){"use strict";n.r(t),n.d(t,{create:function(){return i},creator:function(){return r.A},local:function(){return s},matcher:function(){return c.A},namespace:function(){return u.A},namespaces:function(){return f.A},pointer:function(){return h.A},pointers:function(){return d},select:function(){return o.A},selectAll:function(){return v},selection:function(){return g.Ay},selector:function(){return y.A},selectorAll:function(){return _.A},style:function(){return b.j},window:function(){return w.A}});var r=n(3663),o=n(183);function i(e){return(0,o.A)((0,r.A)(e).call(document.documentElement))}var a=0;function s(){return new l}function l(){this._="@"+(++a).toString(36)}l.prototype=s.prototype={constructor:l,get:function(e){for(var t=this._;!(t in e);)if(!(e=e.parentNode))return;return e[t]},set:function(e,t){return e[this._]=t},remove:function(e){return this._ in e&&delete e[this._]},toString:function(){return this._}};var c=n(6541),u=n(7268),f=n(7947),h=n(5970),p=n(2324);function d(e,t){return e.target&&(e=(0,p.A)(e),void 0===t&&(t=e.currentTarget),e=e.touches||[e]),Array.from(e,(e=>(0,h.A)(e,t)))}var m=n(5478),g=n(6452);function v(e){return"string"==typeof e?new g.LN([document.querySelectorAll(e)],[document.documentElement]):new g.LN([(0,m.A)(e)],g.zr)}var y=n(574),_=n(747),b=n(3683),w=n(6747)},6541:function(e,t,n){"use strict";function r(e){return function(){return this.matches(e)}}function o(e){return function(t){return t.matches(e)}}n.d(t,{A:function(){return r},j:function(){return o}})},7268:function(e,t,n){"use strict";n.d(t,{A:function(){return o}});var r=n(7947);function o(e){var t=e+="",n=t.indexOf(":");return n>=0&&"xmlns"!==(t=e.slice(0,n))&&(e=e.slice(n+1)),r.A.hasOwnProperty(t)?{space:r.A[t],local:e}:e}},7947:function(e,t,n){"use strict";n.d(t,{g:function(){return r}});var r="http://www.w3.org/1999/xhtml";t.A={svg:"http://www.w3.org/2000/svg",xhtml:r,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"}},5970:function(e,t,n){"use strict";n.d(t,{A:function(){return o}});var r=n(2324);function o(e,t){if(e=(0,r.A)(e),void 0===t&&(t=e.currentTarget),t){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var o=n.createSVGPoint();return o.x=e.clientX,o.y=e.clientY,[(o=o.matrixTransform(t.getScreenCTM().inverse())).x,o.y]}if(t.getBoundingClientRect){var i=t.getBoundingClientRect();return[e.clientX-i.left-t.clientLeft,e.clientY-i.top-t.clientTop]}}return[e.pageX,e.pageY]}},183:function(e,t,n){"use strict";n.d(t,{A:function(){return o}});var r=n(6452);function o(e){return"string"==typeof e?new r.LN([[document.querySelector(e)]],[document.documentElement]):new r.LN([[e]],r.zr)}},6452:function(e,t,n){"use strict";n.d(t,{LN:function(){return re},Ay:function(){return ie},zr:function(){return ne}});var r=n(574),o=n(5478),i=n(747),a=n(6541),s=Array.prototype.find;function l(){return this.firstElementChild}var c=Array.prototype.filter;function u(){return Array.from(this.children)}function f(e){return new Array(e.length)}function h(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}function p(e,t,n,r,o,i){for(var a,s=0,l=t.length,c=i.length;st?1:e>=t?0:NaN}h.prototype={constructor:h,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,t){return this._parent.insertBefore(e,t)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};var y=n(7268);function _(e){return function(){this.removeAttribute(e)}}function b(e){return function(){this.removeAttributeNS(e.space,e.local)}}function w(e,t){return function(){this.setAttribute(e,t)}}function k(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function x(e,t){return function(){var n=t.apply(this,arguments);null==n?this.removeAttribute(e):this.setAttribute(e,n)}}function O(e,t){return function(){var n=t.apply(this,arguments);null==n?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}}var S=n(3683);function C(e){return function(){delete this[e]}}function A(e,t){return function(){this[e]=t}}function E(e,t){return function(){var n=t.apply(this,arguments);null==n?delete this[e]:this[e]=n}}function T(e){return e.trim().split(/^|\s+/)}function P(e){return e.classList||new D(e)}function D(e){this._node=e,this._names=T(e.getAttribute("class")||"")}function j(e,t){for(var n=P(e),r=-1,o=t.length;++r=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};var H=n(3663);function Z(){return null}function G(){var e=this.parentNode;e&&e.removeChild(this)}function V(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function X(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function J(e){return function(){var t=this.__on;if(t){for(var n,r=0,o=-1,i=t.length;r=S&&(S=O+1);!(x=w[S])&&++S<_;);k._next=x||null}}return(s=new re(s,o))._enter=l,s._exit=c,s},enter:function(){return new re(this._enter||this._groups.map(f),this._parents)},exit:function(){return new re(this._exit||this._groups.map(f),this._parents)},join:function(e,t,n){var r=this.enter(),o=this,i=this.exit();return"function"==typeof e?(r=e(r))&&(r=r.selection()):r=r.append(e+""),null!=t&&(o=t(o))&&(o=o.selection()),null==n?i.remove():n(i),r&&o?r.merge(o).order():o},merge:function(e){for(var t=e.selection?e.selection():e,n=this._groups,r=t._groups,o=n.length,i=r.length,a=Math.min(o,i),s=new Array(o),l=0;l=0;)(r=o[i])&&(a&&4^r.compareDocumentPosition(a)&&a.parentNode.insertBefore(r,a),a=r);return this},sort:function(e){function t(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}e||(e=v);for(var n=this._groups,r=n.length,o=new Array(r),i=0;i1?this.each((null==t?C:"function"==typeof t?E:A)(e,t)):this.node()[e]},classed:function(e,t){var n=T(e+"");if(arguments.length<2){for(var r=P(this.node()),o=-1,i=n.length;++o=0&&(t=e.slice(n+1),e=e.slice(0,n)),{type:e,name:t}}))}(e+""),a=i.length;if(!(arguments.length<2)){for(s=t?Y:J,r=0;r1?this.each((null==t?o:"function"==typeof t?a:i)(e,t,null==n?"":n)):l(this.node(),e)}function l(e,t){return e.style.getPropertyValue(t)||(0,r.A)(e).getComputedStyle(e,null).getPropertyValue(t)}},574:function(e,t,n){"use strict";function r(){}function o(e){return null==e?r:function(){return this.querySelector(e)}}n.d(t,{A:function(){return o}})},747:function(e,t,n){"use strict";function r(){return[]}function o(e){return null==e?r:function(){return this.querySelectorAll(e)}}n.d(t,{A:function(){return o}})},2324:function(e,t,n){"use strict";function r(e){let t;for(;t=e.sourceEvent;)e=t;return e}n.d(t,{A:function(){return r}})},6747:function(e,t,n){"use strict";function r(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}n.d(t,{A:function(){return r}})},7662:function(e,t,n){"use strict";n.r(t),n.d(t,{active:function(){return ut},interrupt:function(){return N},transition:function(){return ot}});var r,o,i=n(6452),a=n(2996),s=0,l=0,c=0,u=1e3,f=0,h=0,p=0,d="object"==typeof performance&&performance.now?performance:Date,m="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function g(){return h||(m(v),h=d.now()+p)}function v(){h=0}function y(){this._call=this._time=this._next=null}function _(e,t,n){var r=new y;return r.restart(e,t,n),r}function b(){h=(f=d.now())+p,s=l=0;try{!function(){g(),++s;for(var e,t=r;t;)(e=h-t._time)>=0&&t._call.call(null,e),t=t._next;--s}()}finally{s=0,function(){for(var e,t,n=r,i=1/0;n;)n._call?(i>n._time&&(i=n._time),e=n,n=n._next):(t=n._next,n._next=null,n=e?e._next=t:r=t);o=e,k(i)}(),h=0}}function w(){var e=d.now(),t=e-f;t>u&&(p-=t,f=e)}function k(e){s||(l&&(l=clearTimeout(l)),e-h>24?(e<1/0&&(l=setTimeout(b,e-d.now()-p)),c&&(c=clearInterval(c))):(c||(f=d.now(),c=setInterval(w,u)),s=1,m(b)))}function x(e,t,n){var r=new y;return t=null==t?0:+t,r.restart((n=>{r.stop(),e(n+t)}),t,n),r}y.prototype=_.prototype={constructor:y,restart:function(e,t,n){if("function"!=typeof e)throw new TypeError("callback is not a function");n=(null==n?g():+n)+(null==t?0:+t),this._next||o===this||(o?o._next=this:r=this,o=this),this._call=e,this._time=n,k()},stop:function(){this._call&&(this._call=null,this._time=1/0,k())}};var O=(0,a.A)("start","end","cancel","interrupt"),S=[],C=0,A=1,E=2,T=3,P=5,D=6;function j(e,t,n,r,o,i){var a=e.__transition;if(a){if(n in a)return}else e.__transition={};!function(e,t,n){var r,o=e.__transition;function i(l){var c,u,f,h;if(n.state!==A)return s();for(c in o)if((h=o[c]).name===n.name){if(h.state===T)return x(i);4===h.state?(h.state=D,h.timer.stop(),h.on.call("interrupt",e,e.__data__,h.index,h.group),delete o[c]):+cC)throw new Error("too late; already scheduled");return n}function R(e,t){var n=L(e,t);if(n.state>T)throw new Error("too late; already running");return n}function L(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function N(e,t){var n,r,o,i=e.__transition,a=!0;if(i){for(o in t=null==t?null:t+"",i)(n=i[o]).name===t?(r=n.state>E&&n.state180?t+=360:t-e>180&&(e+=360),i.push({i:n.push(o(n)+"rotate(",null,r)-2,x:I(e,t)})):t&&n.push(o(n)+"rotate("+t+r)}(i.rotate,a.rotate,s,l),function(e,t,n,i){e!==t?i.push({i:n.push(o(n)+"skewX(",null,r)-2,x:I(e,t)}):t&&n.push(o(n)+"skewX("+t+r)}(i.skewX,a.skewX,s,l),function(e,t,n,r,i,a){if(e!==n||t!==r){var s=i.push(o(i)+"scale(",null,",",null,")");a.push({i:s-4,x:I(e,n)},{i:s-2,x:I(t,r)})}else 1===n&&1===r||i.push(o(i)+"scale("+n+","+r+")")}(i.scaleX,i.scaleY,a.scaleX,a.scaleY,s,l),i=a=null,function(e){for(var t,n=-1,r=l.length;++n>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===n?me(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===n?me(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=oe.exec(e))?new ve(t[1],t[2],t[3],1):(t=ie.exec(e))?new ve(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=ae.exec(e))?me(t[1],t[2],t[3],t[4]):(t=se.exec(e))?me(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=le.exec(e))?xe(t[1],t[2]/100,t[3]/100,1):(t=ce.exec(e))?xe(t[1],t[2]/100,t[3]/100,t[4]):ue.hasOwnProperty(e)?de(ue[e]):"transparent"===e?new ve(NaN,NaN,NaN,0):null}function de(e){return new ve(e>>16&255,e>>8&255,255&e,1)}function me(e,t,n,r){return r<=0&&(e=t=n=NaN),new ve(e,t,n,r)}function ge(e,t,n,r){return 1===arguments.length?((o=e)instanceof Y||(o=pe(o)),o?new ve((o=o.rgb()).r,o.g,o.b,o.opacity):new ve):new ve(e,t,n,null==r?1:r);var o}function ve(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}function ye(){return`#${ke(this.r)}${ke(this.g)}${ke(this.b)}`}function _e(){const e=be(this.opacity);return`${1===e?"rgb(":"rgba("}${we(this.r)}, ${we(this.g)}, ${we(this.b)}${1===e?")":`, ${e})`}`}function be(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function we(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function ke(e){return((e=we(e))<16?"0":"")+e.toString(16)}function xe(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new Se(e,t,n,r)}function Oe(e){if(e instanceof Se)return new Se(e.h,e.s,e.l,e.opacity);if(e instanceof Y||(e=pe(e)),!e)return new Se;if(e instanceof Se)return e;var t=(e=e.rgb()).r/255,n=e.g/255,r=e.b/255,o=Math.min(t,n,r),i=Math.max(t,n,r),a=NaN,s=i-o,l=(i+o)/2;return s?(a=t===i?(n-r)/s+6*(n0&&l<1?0:a,new Se(a,s,l,e.opacity)}function Se(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}function Ce(e){return(e=(e||0)%360)<0?e+360:e}function Ae(e){return Math.max(0,Math.min(1,e||0))}function Ee(e,t,n){return 255*(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)}function Te(e,t,n,r,o){var i=e*e,a=i*e;return((1-3*e+3*i-a)*t+(4-6*i+3*a)*n+(1+3*e+3*i-3*a)*r+a*o)/6}X(Y,pe,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:fe,formatHex:fe,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return Oe(this).formatHsl()},formatRgb:he,toString:he}),X(ve,ge,J(Y,{brighter(e){return e=null==e?Q:Math.pow(Q,e),new ve(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=null==e?K:Math.pow(K,e),new ve(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new ve(we(this.r),we(this.g),we(this.b),be(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:ye,formatHex:ye,formatHex8:function(){return`#${ke(this.r)}${ke(this.g)}${ke(this.b)}${ke(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:_e,toString:_e})),X(Se,(function(e,t,n,r){return 1===arguments.length?Oe(e):new Se(e,t,n,null==r?1:r)}),J(Y,{brighter(e){return e=null==e?Q:Math.pow(Q,e),new Se(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=null==e?K:Math.pow(K,e),new Se(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+360*(this.h<0),t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,o=2*n-r;return new ve(Ee(e>=240?e-240:e+120,o,r),Ee(e,o,r),Ee(e<120?e+240:e-120,o,r),this.opacity)},clamp(){return new Se(Ce(this.h),Ae(this.s),Ae(this.l),be(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=be(this.opacity);return`${1===e?"hsl(":"hsla("}${Ce(this.h)}, ${100*Ae(this.s)}%, ${100*Ae(this.l)}%${1===e?")":`, ${e})`}`}}));var Pe=e=>()=>e;function De(e,t){var n=t-e;return n?function(e,t){return function(n){return e+n*t}}(e,n):Pe(isNaN(e)?t:e)}var je=function e(t){var n=function(e){return 1==(e=+e)?De:function(t,n){return n-t?function(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}(t,n,e):Pe(isNaN(t)?n:t)}}(t);function r(e,t){var r=n((e=ge(e)).r,(t=ge(t)).r),o=n(e.g,t.g),i=n(e.b,t.b),a=De(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=o(t),e.b=i(t),e.opacity=a(t),e+""}}return r.gamma=e,r}(1);function Me(e){return function(t){var n,r,o=t.length,i=new Array(o),a=new Array(o),s=new Array(o);for(n=0;n=1?(n=1,t-1):Math.floor(n*t),o=e[r],i=e[r+1],a=r>0?e[r-1]:2*o-i,s=ri&&(o=t.slice(i,o),s[a]?s[a]+=o:s[++a]=o),(n=n[0])===(r=r[0])?s[a]?s[a]+=r:s[++a]=r:(s[++a]=null,l.push({i:a,x:I(n,r)})),i=Le.lastIndex;return i=0&&(e=e.slice(0,t)),!e||"start"===e}))}(t)?M:R;return function(){var a=i(this,e),s=a.on;s!==r&&(o=(r=s).copy()).on(t,n),a.on=o}}(n,e,t))},attr:function(e,t){var n=(0,H.A)(e),r="transform"===n?W:Ie;return this.attrTween(e,"function"==typeof t?(n.local?qe:$e)(n,r,V(this,"attr."+e,t)):null==t?(n.local?Fe:ze)(n):(n.local?Ue:Be)(n,r,t))},attrTween:function(e,t){var n="attr."+e;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(null==t)return this.tween(n,null);if("function"!=typeof t)throw new Error;var r=(0,H.A)(e);return this.tween(n,(r.local?We:He)(r,t))},style:function(e,t,n){var r="transform"==(e+="")?q:Ie;return null==t?this.styleTween(e,function(e,t){var n,r,o;return function(){var i=(0,et.j)(this,e),a=(this.style.removeProperty(e),(0,et.j)(this,e));return i===a?null:i===n&&a===r?o:o=t(n=i,r=a)}}(e,r)).on("end.style."+e,tt(e)):"function"==typeof t?this.styleTween(e,function(e,t,n){var r,o,i;return function(){var a=(0,et.j)(this,e),s=n(this),l=s+"";return null==s&&(this.style.removeProperty(e),l=s=(0,et.j)(this,e)),a===l?null:a===r&&l===o?i:(o=l,i=t(r=a,s))}}(e,r,V(this,"style."+e,t))).each(function(e,t){var n,r,o,i,a="style."+t,s="end."+a;return function(){var l=R(this,e),c=l.on,u=null==l.value[a]?i||(i=tt(t)):void 0;c===n&&o===u||(r=(n=c).copy()).on(s,o=u),l.on=r}}(this._id,e)):this.styleTween(e,function(e,t,n){var r,o,i=n+"";return function(){var a=(0,et.j)(this,e);return a===i?null:a===r?o:o=t(r=a,n)}}(e,r,t),n).on("end.style."+e,null)},styleTween:function(e,t,n){var r="style."+(e+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==t)return this.tween(r,null);if("function"!=typeof t)throw new Error;return this.tween(r,function(e,t,n){var r,o;function i(){var i=t.apply(this,arguments);return i!==o&&(r=(o=i)&&function(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}(e,i,n)),r}return i._value=t,i}(e,t,null==n?"":n))},text:function(e){return this.tween("text","function"==typeof e?function(e){return function(){var t=e(this);this.textContent=null==t?"":t}}(V(this,"text",e)):function(e){return function(){this.textContent=e}}(null==e?"":e+""))},textTween:function(e){var t="text";if(arguments.length<1)return(t=this.tween(t))&&t._value;if(null==e)return this.tween(t,null);if("function"!=typeof e)throw new Error;return this.tween(t,function(e){var t,n;function r(){var r=e.apply(this,arguments);return r!==n&&(t=(n=r)&&function(e){return function(t){this.textContent=e.call(this,t)}}(r)),t}return r._value=e,r}(e))},remove:function(){return this.on("end.remove",function(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}(this._id))},tween:function(e,t){var n=this._id;if(e+="",arguments.length<2){for(var r,o=L(this.node(),n).tween,i=0,a=o.length;iA&&n.name===t)return new rt([[e]],ct,t,+r);return null}},9529:function(e,t,n){"use strict";n.r(t),n.d(t,{ZoomTransform:function(){return be},zoom:function(){return De},zoomIdentity:function(){return we},zoomTransform:function(){return ke}});var r=n(2996);function o(){}function i(e){return null==e?o:function(){return this.querySelector(e)}}function a(e){return"object"==typeof e&&"length"in e?e:Array.from(e)}function s(){return[]}function l(e){return function(t){return t.matches(e)}}var c=Array.prototype.find;function u(){return this.firstElementChild}var f=Array.prototype.filter;function h(){return this.children}function p(e){return new Array(e.length)}function d(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}function m(e,t,n,r,o,i){for(var a,s=0,l=t.length,c=i.length;st?1:e>=t?0:NaN}d.prototype={constructor:d,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,t){return this._parent.insertBefore(e,t)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};var _="http://www.w3.org/1999/xhtml",b={svg:"http://www.w3.org/2000/svg",xhtml:_,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function w(e){var t=e+="",n=t.indexOf(":");return n>=0&&"xmlns"!==(t=e.slice(0,n))&&(e=e.slice(n+1)),b.hasOwnProperty(t)?{space:b[t],local:e}:e}function k(e){return function(){this.removeAttribute(e)}}function x(e){return function(){this.removeAttributeNS(e.space,e.local)}}function O(e,t){return function(){this.setAttribute(e,t)}}function S(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function C(e,t){return function(){var n=t.apply(this,arguments);null==n?this.removeAttribute(e):this.setAttribute(e,n)}}function A(e,t){return function(){var n=t.apply(this,arguments);null==n?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}}function E(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function T(e){return function(){this.style.removeProperty(e)}}function P(e,t,n){return function(){this.style.setProperty(e,t,n)}}function D(e,t,n){return function(){var r=t.apply(this,arguments);null==r?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function j(e){return function(){delete this[e]}}function M(e,t){return function(){this[e]=t}}function R(e,t){return function(){var n=t.apply(this,arguments);null==n?delete this[e]:this[e]=n}}function L(e){return e.trim().split(/^|\s+/)}function N(e){return e.classList||new I(e)}function I(e){this._node=e,this._names=L(e.getAttribute("class")||"")}function z(e,t){for(var n=N(e),r=-1,o=t.length;++r=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};var ce=[null];function ue(e,t){this._groups=e,this._parents=t}function fe(e){return"string"==typeof e?new ue([[document.querySelector(e)]],[document.documentElement]):new ue([[e]],ce)}function he(e){e.preventDefault(),e.stopImmediatePropagation()}function pe(e){return((e=Math.exp(e))+1/e)/2}ue.prototype=function(){return new ue([[document.documentElement]],ce)}.prototype={constructor:ue,select:function(e){"function"!=typeof e&&(e=i(e));for(var t=this._groups,n=t.length,r=new Array(n),o=0;o=S&&(S=O+1);!(x=w[S])&&++S<_;);k._next=x||null}}return(l=new ue(l,o))._enter=c,l._exit=u,l},enter:function(){return new ue(this._enter||this._groups.map(p),this._parents)},exit:function(){return new ue(this._exit||this._groups.map(p),this._parents)},join:function(e,t,n){var r=this.enter(),o=this,i=this.exit();return r="function"==typeof e?e(r):r.append(e+""),null!=t&&(o=t(o)),null==n?i.remove():n(i),r&&o?r.merge(o).order():o},merge:function(e){if(!(e instanceof ue))throw new Error("invalid merge");for(var t=this._groups,n=e._groups,r=t.length,o=n.length,i=Math.min(r,o),a=new Array(r),s=0;s=0;)(r=o[i])&&(a&&4^r.compareDocumentPosition(a)&&a.parentNode.insertBefore(r,a),a=r);return this},sort:function(e){function t(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}e||(e=y);for(var n=this._groups,r=n.length,o=new Array(r),i=0;i1?this.each((null==t?T:"function"==typeof t?D:P)(e,t,null==n?"":n)):function(e,t){return e.style.getPropertyValue(t)||E(e).getComputedStyle(e,null).getPropertyValue(t)}(this.node(),e)},property:function(e,t){return arguments.length>1?this.each((null==t?j:"function"==typeof t?R:M)(e,t)):this.node()[e]},classed:function(e,t){var n=L(e+"");if(arguments.length<2){for(var r=N(this.node()),o=-1,i=n.length;++o=0&&(t=e.slice(n+1),e=e.slice(0,n)),{type:e,name:t}}))}(e+""),a=i.length;if(!(arguments.length<2)){for(s=t?ie:oe,r=0;r()=>e;function _e(e,{sourceEvent:t,target:n,transform:r,dispatch:o}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:o}})}function be(e,t,n){this.k=e,this.x=t,this.y=n}be.prototype={constructor:be,scale:function(e){return 1===e?this:new be(this.k*e,this.x,this.y)},translate:function(e,t){return 0===e&0===t?this:new be(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var we=new be(1,0,0);function ke(e){for(;!e.__zoom;)if(!(e=e.parentNode))return we;return e.__zoom}function xe(e){e.stopImmediatePropagation()}function Oe(e){e.preventDefault(),e.stopImmediatePropagation()}function Se(e){return!(e.ctrlKey&&"wheel"!==e.type||e.button)}function Ce(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e).hasAttribute("viewBox")?[[(e=e.viewBox.baseVal).x,e.y],[e.x+e.width,e.y+e.height]]:[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]:[[0,0],[e.clientWidth,e.clientHeight]]}function Ae(){return this.__zoom||we}function Ee(e){return-e.deltaY*(1===e.deltaMode?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function Te(){return navigator.maxTouchPoints||"ontouchstart"in this}function Pe(e,t,n){var r=e.invertX(t[0][0])-n[0][0],o=e.invertX(t[1][0])-n[1][0],i=e.invertY(t[0][1])-n[0][1],a=e.invertY(t[1][1])-n[1][1];return e.translate(o>r?(r+o)/2:Math.min(0,r)||Math.max(0,o),a>i?(i+a)/2:Math.min(0,i)||Math.max(0,a))}function De(){var e,t,n,o=Se,i=Ce,a=Pe,s=Ee,l=Te,c=[0,1/0],u=[[-1/0,-1/0],[1/0,1/0]],f=250,h=de,p=(0,r.A)("start","zoom","end"),d=500,m=150,g=0,v=10;function y(e){e.property("__zoom",Ae).on("wheel.zoom",S,{passive:!1}).on("mousedown.zoom",C).on("dblclick.zoom",A).filter(l).on("touchstart.zoom",E).on("touchmove.zoom",T).on("touchend.zoom touchcancel.zoom",P).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function _(e,t){return(t=Math.max(c[0],Math.min(c[1],t)))===e.k?e:new be(t,e.x,e.y)}function b(e,t,n){var r=t[0]-n[0]*e.k,o=t[1]-n[1]*e.k;return r===e.x&&o===e.y?e:new be(e.k,r,o)}function w(e){return[(+e[0][0]+ +e[1][0])/2,(+e[0][1]+ +e[1][1])/2]}function k(e,t,n,r){e.on("start.zoom",(function(){x(this,arguments).event(r).start()})).on("interrupt.zoom end.zoom",(function(){x(this,arguments).event(r).end()})).tween("zoom",(function(){var e=this,o=arguments,a=x(e,o).event(r),s=i.apply(e,o),l=null==n?w(s):"function"==typeof n?n.apply(e,o):n,c=Math.max(s[1][0]-s[0][0],s[1][1]-s[0][1]),u=e.__zoom,f="function"==typeof t?t.apply(e,o):t,p=h(u.invert(l).concat(c/u.k),f.invert(l).concat(c/f.k));return function(e){if(1===e)e=f;else{var t=p(e),n=c/t[2];e=new be(n,l[0]-t[0]*n,l[1]-t[1]*n)}a.zoom(null,e)}}))}function x(e,t,n){return!n&&e.__zooming||new O(e,t)}function O(e,t){this.that=e,this.args=t,this.active=0,this.sourceEvent=null,this.extent=i.apply(e,t),this.taps=0}function S(e,...t){if(o.apply(this,arguments)){var n=x(this,t).event(e),r=this.__zoom,i=Math.max(c[0],Math.min(c[1],r.k*Math.pow(2,s.apply(this,arguments)))),l=(0,ge.A)(e);if(n.wheel)n.mouse[0][0]===l[0]&&n.mouse[0][1]===l[1]||(n.mouse[1]=r.invert(n.mouse[0]=l)),clearTimeout(n.wheel);else{if(r.k===i)return;n.mouse=[l,r.invert(l)],(0,ve.interrupt)(this),n.start()}Oe(e),n.wheel=setTimeout((function(){n.wheel=null,n.end()}),m),n.zoom("mouse",a(b(_(r,i),n.mouse[0],n.mouse[1]),n.extent,u))}}function C(e,...t){if(!n&&o.apply(this,arguments)){var r=e.currentTarget,i=x(this,t,!0).event(e),s=(0,me.A)(e.view).on("mousemove.zoom",(function(e){if(Oe(e),!i.moved){var t=e.clientX-c,n=e.clientY-f;i.moved=t*t+n*n>g}i.event(e).zoom("mouse",a(b(i.that.__zoom,i.mouse[0]=(0,ge.A)(e,r),i.mouse[1]),i.extent,u))}),!0).on("mouseup.zoom",(function(e){s.on("mousemove.zoom mouseup.zoom",null),function(e,t){var n=e.document.documentElement,r=fe(e).on("dragstart.drag",null);t&&(r.on("click.drag",he,!0),setTimeout((function(){r.on("click.drag",null)}),0)),"onselectstart"in n?r.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}(e.view,i.moved),Oe(e),i.event(e).end()}),!0),l=(0,ge.A)(e,r),c=e.clientX,f=e.clientY;!function(e){var t=e.document.documentElement,n=fe(e).on("dragstart.drag",he,!0);"onselectstart"in t?n.on("selectstart.drag",he,!0):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}(e.view),xe(e),i.mouse=[l,this.__zoom.invert(l)],(0,ve.interrupt)(this),i.start()}}function A(e,...t){if(o.apply(this,arguments)){var n=this.__zoom,r=(0,ge.A)(e.changedTouches?e.changedTouches[0]:e,this),s=n.invert(r),l=n.k*(e.shiftKey?.5:2),c=a(b(_(n,l),r,s),i.apply(this,t),u);Oe(e),f>0?(0,me.A)(this).transition().duration(f).call(k,c,r,e):(0,me.A)(this).call(y.transform,c,r,e)}}function E(n,...r){if(o.apply(this,arguments)){var i,a,s,l,c=n.touches,u=c.length,f=x(this,r,n.changedTouches.length===u).event(n);for(xe(n),a=0;a; +export default AnnotationLayer; diff --git a/dist/src/AnnotationPoint.d.ts b/dist/src/AnnotationPoint.d.ts new file mode 100644 index 00000000..bc87e5c0 --- /dev/null +++ b/dist/src/AnnotationPoint.d.ts @@ -0,0 +1,7 @@ +/** @jsx h */ +import { CustomAnnotationPoint } from "./web-sdk"; +interface AnnotationPointProps extends CustomAnnotationPoint { + mapZoomFactor: number; +} +declare const AnnotationPoint: FunctionComponent; +export default AnnotationPoint; diff --git a/dist/src/AssetListOverlay.d.ts b/dist/src/AssetListOverlay.d.ts new file mode 100644 index 00000000..afe0b2f9 --- /dev/null +++ b/dist/src/AssetListOverlay.d.ts @@ -0,0 +1,36 @@ +/** @jsx h */ +import { Component, h } from "preact"; +import { LanguageCodes } from "./Translations"; +import { CreateMapOptions, FloorData, PlacemarkData, TagData } from "./web-sdk"; +type SearchType = "tags" | "placemarks"; +interface AssetListOverlayProps { + onTagClick: (tag: TagData) => void; + onPlacemarkClick: (placemark: PlacemarkData) => void; + tagsLoading: boolean; + placemarksLoading: boolean; + tags: TagData[]; + placemarks: PlacemarkData[]; + showControlTags: boolean; + floors: FloorData[]; + tagOptions: CreateMapOptions["tags"]; + placemarkOptions: CreateMapOptions["placemarks"]; + updateMap: (options: Partial) => void; + currentFloorID: string; + toggleAssetListOverlay: (options: { + open: boolean; + }) => void; + showTags: boolean; + showPlacemarks: boolean; + language?: LanguageCodes; +} +declare class AssetListOverlay extends Component { + state: { + searchFilter: string; + searchType: SearchType; + }; + searchInputRef: import("preact").RefObject; + setRadioFilter: (filter: SearchType) => void; + componentDidMount(): void; + render(): h.JSX.Element; +} +export default AssetListOverlay; diff --git a/dist/src/DetailsOverlay.d.ts b/dist/src/DetailsOverlay.d.ts new file mode 100644 index 00000000..02de0e95 --- /dev/null +++ b/dist/src/DetailsOverlay.d.ts @@ -0,0 +1,10 @@ +/** @jsx h */ +import MapComponent from "./MapComponent"; +import { PlacemarkData, TagData } from "./web-sdk"; +interface DetailsOverlayProps { + kind: "tag" | "placemark"; + item: TagData | PlacemarkData; + toggleDetailsOverlay: MapComponent["toggleDetailsOverlay"]; +} +declare const DetailsOverlay: FunctionComponent; +export default DetailsOverlay; diff --git a/dist/src/ErrorOverlay.d.ts b/dist/src/ErrorOverlay.d.ts new file mode 100644 index 00000000..c65d74b2 --- /dev/null +++ b/dist/src/ErrorOverlay.d.ts @@ -0,0 +1,8 @@ +/** @jsx h */ +import MapComponent from "./MapComponent"; +interface ErrorOverlayProps { + toggleErrorOverlay: MapComponent["toggleErrorOverlay"]; + messages: string[]; +} +declare const ErrorOverlay: FunctionComponent; +export default ErrorOverlay; diff --git a/dist/src/FloorAndSearchControls.d.ts b/dist/src/FloorAndSearchControls.d.ts new file mode 100644 index 00000000..ec99c419 --- /dev/null +++ b/dist/src/FloorAndSearchControls.d.ts @@ -0,0 +1,10 @@ +/** @jsx h */ +import MapComponent from "./MapComponent"; +interface FloorAndTagControlsProps { + showFloors: boolean; + showSearch: boolean; + toggleFloorOverlay: MapComponent["toggleFloorOverlay"]; + toggleAssetListOverlay: MapComponent["toggleAssetListOverlay"]; +} +declare const FloorAndTagControls: FunctionComponent; +export default FloorAndTagControls; diff --git a/dist/src/FloorLabel.d.ts b/dist/src/FloorLabel.d.ts new file mode 100644 index 00000000..9e4ecea4 --- /dev/null +++ b/dist/src/FloorLabel.d.ts @@ -0,0 +1,7 @@ +/** @jsx h */ +interface FloorLabelProps { + buildingName: string; + floorName: string; +} +declare const FloorLabel: FunctionComponent; +export default FloorLabel; diff --git a/dist/src/FloorOverlay.d.ts b/dist/src/FloorOverlay.d.ts new file mode 100644 index 00000000..ecb38346 --- /dev/null +++ b/dist/src/FloorOverlay.d.ts @@ -0,0 +1,23 @@ +/** @jsx h */ +import { Component, h } from "preact"; +import { LanguageCodes } from "./Translations"; +import { FloorData } from "./web-sdk"; +export interface FloorOverlayProps { + toggleFloorOverlay: (options: { + open: boolean; + }) => void; + currentFloorID: string; + floors: FloorData[]; + sortDescending: boolean; + selectFloorByID: (floorID: string) => void; + language?: LanguageCodes; +} +declare class FloorOverlay extends Component { + state: { + searchFilter: string; + }; + searchInputRef: import("preact").RefObject; + componentDidMount(): void; + render(): h.JSX.Element; +} +export default FloorOverlay; diff --git a/dist/src/IconClose.d.ts b/dist/src/IconClose.d.ts new file mode 100644 index 00000000..14b7c009 --- /dev/null +++ b/dist/src/IconClose.d.ts @@ -0,0 +1,3 @@ +/** @jsx h */ +declare const IconClose: FunctionComponent; +export default IconClose; diff --git a/dist/src/IconSpinner.d.ts b/dist/src/IconSpinner.d.ts new file mode 100644 index 00000000..03cf83c6 --- /dev/null +++ b/dist/src/IconSpinner.d.ts @@ -0,0 +1,3 @@ +/** @jsx h */ +declare const IconSpinner: FunctionComponent; +export default IconSpinner; diff --git a/dist/src/LabelList.d.ts b/dist/src/LabelList.d.ts new file mode 100644 index 00000000..65436b4a --- /dev/null +++ b/dist/src/LabelList.d.ts @@ -0,0 +1,8 @@ +/** @jsx h */ +interface LabelListProps { + align: "left" | "right"; + fontSize?: string | number; + labels: string[]; +} +declare const LabelList: FunctionComponent; +export default LabelList; diff --git a/dist/src/LoadingSpinner.d.ts b/dist/src/LoadingSpinner.d.ts new file mode 100644 index 00000000..62692d36 --- /dev/null +++ b/dist/src/LoadingSpinner.d.ts @@ -0,0 +1,3 @@ +/** @jsx h */ +declare const LoadingOverlay: FunctionComponent; +export default LoadingOverlay; diff --git a/dist/src/MapComponent.d.ts b/dist/src/MapComponent.d.ts new file mode 100644 index 00000000..7011d86e --- /dev/null +++ b/dist/src/MapComponent.d.ts @@ -0,0 +1,136 @@ +/** @jsx h */ +/// +import "d3-transition"; +import { ZoomBehavior } from "d3-zoom"; +import { Component, h } from "preact"; +import { API, CreateMapOptions, FloorData, PlacemarkData, TagData } from "./web-sdk"; +interface Box { + width: number; + height: number; +} +export interface MapComponentProps extends CreateMapOptions { + destroy: () => void; + update: (options: Partial) => void; + api: API; +} +export interface MapComponentState { + mapImageURL?: string; + isFloorOverlayOpen: boolean; + isAssetListOverlayOpen: boolean; + isMapMarkerOverlayOpen: boolean; + isErrorOverlayOpen: boolean; + isPanningOrZooming: boolean; + loadingSources: Record; + errors: any[]; + mapTransform: string; + mapZoomFactor: number; + floors: FloorData[]; + allPlacemarkData: PlacemarkData[]; + svgURL?: string; + tagsConnection: any; + tagsStatus: string; + selectedItem?: PlacemarkData | TagData; + areTagsLoading: boolean; + arePlacemarksLoading: boolean; + allTagData: TagData[]; +} +declare class MapComponent extends Component { + static defaultProps: { + loadTags: boolean; + loadPlacemarks: boolean; + showSearchControl: boolean; + showFloorsControl: boolean; + floorsControlSortDescending: boolean; + shouldMapPanZoom: () => boolean; + width: string; + height: string; + placemarks: {}; + tags: {}; + overlays: never[]; + annotations: never[]; + onTagsUpdate: () => void; + onFloorChange: () => void; + onLoadingStateChange: () => void; + onFloorsUpdate: () => void; + }; + state: MapComponentState; + isMounted: boolean; + isLoaded: boolean; + fetchAllTagsTimeout: any; + fetchAllTagsInitialized: boolean; + fetchAllPlacemarksTimeout: any; + fetchAllPlacemarksInitialized: boolean; + mapRef: import("preact").RefObject; + mapContainerRef: import("preact").RefObject; + mapImageref: import("preact").RefObject; + intervalAutoDestroy: any; + zoomD3?: ZoomBehavior; + mapSelection?: Selection; + mapContainerSize: Box | undefined; + debouncedResizeFn: import("lodash").DebouncedFunc<() => void>; + componentDidMount(): void; + loadData(): Promise; + componentDidUpdate(prevProps: MapComponentProps): void; + componentWillUnmount(): void; + handleResize(): void; + freeMapImageURL(): void; + fetchMapImageURL(): Promise; + onTagsInit: () => void; + onPlacemarksInit: () => void; + updateMap: (newOptions: Partial) => void; + validateFloorID(): void; + fetchAllTags(options?: { + forceUpdate: boolean; + }): void; + toggleAssetListOverlay: ({ open }: { + open: boolean; + }) => void; + toggleFloorOverlay: ({ open }: { + open: boolean; + }) => void; + toggleErrorOverlay: ({ open, message, }: { + open: boolean; + message?: string | undefined; + }) => void; + toggleLoadingSpinner: ({ show, source, }: { + show: boolean; + source?: string | undefined; + }) => void; + showLoadingSpinner(): boolean; + toggleDetailsOverlay: ({ open, selectedItem, }: { + open: boolean; + selectedItem?: MapComponentState["selectedItem"]; + }) => void; + selectFloorByID: (floorID: string) => void; + fetchAllPlacemarks(options?: { + forceUpdate: boolean; + }): void; + getFloors(): Promise; + getMapData(): FloorData | undefined; + initializeFloors(): Promise; + addZoomBehavior(): void; + resetExtents(): void; + setExtents(mapWidth: number, mapHeight: number): void; + zoomToDefault(): void; + getMapRefSize(): { + width: number; + height: number; + }; + centerMap(): void; + zoomToPoint: (x: number, y: number, k: number) => void; + zoomBy: (factor: number) => void; + zoomIn: () => void; + zoomOut: () => void; + onClick: (event: Event) => void; + onTagClick: (tag: TagData) => Promise; + onPlacemarkClick: (placemark: PlacemarkData) => Promise; + shouldShowFloors(): boolean; + renderFloorLabel(): h.JSX.Element | null; + renderFloorOverlay(): h.JSX.Element | null; + renderAssetListOverlay(): h.JSX.Element | null; + renderDetailsOverlay(): h.JSX.Element | null; + renderLoadingSpinner(): h.JSX.Element | null; + renderErrorOverlay(): h.JSX.Element | null; + render(): h.JSX.Element; +} +export default MapComponent; diff --git a/dist/src/Overlay.d.ts b/dist/src/Overlay.d.ts new file mode 100644 index 00000000..52e3f2ce --- /dev/null +++ b/dist/src/Overlay.d.ts @@ -0,0 +1,7 @@ +/** @jsx h */ +interface OverlayProps { + position: "left" | "right"; + onCloseClicked: () => void; +} +declare const Overlay: FunctionComponent; +export default Overlay; diff --git a/dist/src/OverlayCircle.d.ts b/dist/src/OverlayCircle.d.ts new file mode 100644 index 00000000..70167cc6 --- /dev/null +++ b/dist/src/OverlayCircle.d.ts @@ -0,0 +1,7 @@ +/** @jsx h */ +import { CustomOverlayCircle } from "./web-sdk"; +interface OverlayCircleProps extends CustomOverlayCircle { + mapZoomFactor: number; +} +declare const OverlayCircle: FunctionComponent; +export default OverlayCircle; diff --git a/dist/src/OverlayImage.d.ts b/dist/src/OverlayImage.d.ts new file mode 100644 index 00000000..db4181db --- /dev/null +++ b/dist/src/OverlayImage.d.ts @@ -0,0 +1,7 @@ +/** @jsx h */ +import { CustomOverlayImage } from "./web-sdk"; +interface OverlayImage extends CustomOverlayImage { + mapZoomFactor: number; +} +declare const OverlayImage: FunctionComponent; +export default OverlayImage; diff --git a/dist/src/OverlayLayer.d.ts b/dist/src/OverlayLayer.d.ts new file mode 100644 index 00000000..ddaa325f --- /dev/null +++ b/dist/src/OverlayLayer.d.ts @@ -0,0 +1,8 @@ +/** @jsx h */ +import { CustomOverlay } from "./web-sdk"; +interface OverlayLayerProps { + mapZoomFactor: number; + overlays: CustomOverlay[]; +} +declare const OverlayLayer: FunctionComponent; +export default OverlayLayer; diff --git a/dist/src/OverlayMarker.d.ts b/dist/src/OverlayMarker.d.ts new file mode 100644 index 00000000..e4dd2296 --- /dev/null +++ b/dist/src/OverlayMarker.d.ts @@ -0,0 +1,7 @@ +/** @jsx h */ +import { CustomOverlayMarker } from "./web-sdk"; +interface OverlayMarkerProps extends CustomOverlayMarker { + mapZoomFactor: number; +} +declare const OverlayMarker: FunctionComponent; +export default OverlayMarker; diff --git a/dist/src/OverlayPath.d.ts b/dist/src/OverlayPath.d.ts new file mode 100644 index 00000000..c462162d --- /dev/null +++ b/dist/src/OverlayPath.d.ts @@ -0,0 +1,7 @@ +/** @jsx h */ +import { CustomOverlayPath } from "./web-sdk"; +interface OverlayPathProps extends CustomOverlayPath { + mapZoomFactor: number; +} +declare const OverlayPath: FunctionComponent; +export default OverlayPath; diff --git a/dist/src/OverlayPolygon.d.ts b/dist/src/OverlayPolygon.d.ts new file mode 100644 index 00000000..d9821ab3 --- /dev/null +++ b/dist/src/OverlayPolygon.d.ts @@ -0,0 +1,7 @@ +/** @jsx h */ +import { CustomOverlayPolygon } from "./web-sdk"; +interface OverlayPolygonProps extends CustomOverlayPolygon { + mapZoomFactor: number; +} +declare const OverlayPolygon: FunctionComponent; +export default OverlayPolygon; diff --git a/dist/src/OverlayPolyline.d.ts b/dist/src/OverlayPolyline.d.ts new file mode 100644 index 00000000..bd9ed116 --- /dev/null +++ b/dist/src/OverlayPolyline.d.ts @@ -0,0 +1,7 @@ +/** @jsx h */ +import { CustomOverlayPolyline } from "./web-sdk"; +interface OverlayPolygonProps extends CustomOverlayPolyline { + mapZoomFactor: number; +} +declare const OverlayPolyline: FunctionComponent; +export default OverlayPolyline; diff --git a/dist/src/OverlaySearchBar.d.ts b/dist/src/OverlaySearchBar.d.ts new file mode 100644 index 00000000..e5f09ad6 --- /dev/null +++ b/dist/src/OverlaySearchBar.d.ts @@ -0,0 +1,12 @@ +/** @jsx h */ +interface OverlayLayerSearchBarProps { + placeholder: string; + value: string; + onChange: (value: string) => void; +} +declare class OverlaySearchBar extends Component { + input: HTMLInputElement | null; + componentDidMount(): void; + render(): h.JSX.Element; +} +export default OverlaySearchBar; diff --git a/dist/src/OverlayUse.d.ts b/dist/src/OverlayUse.d.ts new file mode 100644 index 00000000..9b36a0a0 --- /dev/null +++ b/dist/src/OverlayUse.d.ts @@ -0,0 +1,7 @@ +/** @jsx h */ +import { CustomOverlayUse } from "./web-sdk"; +interface OverlayUseProps extends CustomOverlayUse { + mapZoomFactor: number; +} +declare const OverlayUse: FunctionComponent; +export default OverlayUse; diff --git a/dist/src/Placemark.d.ts b/dist/src/Placemark.d.ts new file mode 100644 index 00000000..bae4794e --- /dev/null +++ b/dist/src/Placemark.d.ts @@ -0,0 +1,13 @@ +/** @jsx h */ +import { CreateMapPlacemarksOptions, PlacemarkData } from "./web-sdk"; +interface PlacemarkProps { + isSelected: boolean; + data: PlacemarkData; + mapZoomFactor: number; + onClick?: (placemark: PlacemarkData) => void; + disabled?: boolean; + labelMode: CreateMapPlacemarksOptions["labelMode"]; + labelZoomLevel: CreateMapPlacemarksOptions["labelZoomLevel"]; +} +declare const Placemark: FunctionComponent; +export default Placemark; diff --git a/dist/src/PlacemarkLayer.d.ts b/dist/src/PlacemarkLayer.d.ts new file mode 100644 index 00000000..52d306be --- /dev/null +++ b/dist/src/PlacemarkLayer.d.ts @@ -0,0 +1,33 @@ +/** @jsx h */ +import { MapComponentProps } from "./MapComponent"; +import { API, CreateMapOptions, PlacemarkData, TagData } from "./web-sdk"; +export interface PlacemarkLayerProps { + selectedItem?: TagData | PlacemarkData; + isPanningOrZooming: boolean; + mapZoomFactor: number; + locationID: string; + floorID: string; + api: API; + placemarkOptions: CreateMapOptions["placemarks"]; + onPlacemarkClick: (placemark: PlacemarkData) => void; + onUpdate: MapComponentProps["onPlacemarksUpdate"]; + toggleLoadingSpinner: (options: { + show: boolean; + source: string; + }) => void; + onInit: () => void; +} +export interface PlacemarkLayerState { + fetchedPlacemarks: PlacemarkData[]; +} +export default class PlacemarkLayer extends Component { + state: PlacemarkLayerState; + isMounted: boolean; + componentDidMount(): void; + shouldComponentUpdate(nextProps: PlacemarkLayerProps): boolean; + componentDidUpdate(prevProps: PlacemarkLayerProps, prevState: PlacemarkLayerState): Promise; + componentWillUnmount(): void; + fetchPlacemarks(): Promise; + getFilteredPlacemarks(placemarks: PlacemarkData[]): PlacemarkData[]; + render(): h.JSX.Element; +} diff --git a/dist/src/Tag.d.ts b/dist/src/Tag.d.ts new file mode 100644 index 00000000..0b77e3d9 --- /dev/null +++ b/dist/src/Tag.d.ts @@ -0,0 +1,11 @@ +/** @jsx h */ +import { TagData } from "./web-sdk"; +interface TagProps { + isSelected: boolean; + data: TagData; + mapZoomFactor: number; + onClick?: (tag: TagData) => void; + disabled?: boolean; +} +declare const Tag: FunctionComponent; +export default Tag; diff --git a/dist/src/TagLayer.d.ts b/dist/src/TagLayer.d.ts new file mode 100644 index 00000000..536343ba --- /dev/null +++ b/dist/src/TagLayer.d.ts @@ -0,0 +1,45 @@ +/** @jsx h */ +/// +import { Component, h } from "preact"; +import { MapComponentProps } from "./MapComponent"; +import { API, PlacemarkData, TagData } from "./web-sdk"; +export interface TagLayerProps { + selectedItem?: TagData | PlacemarkData; + isPanningOrZooming: boolean; + mapZoomFactor: number; + locationID: string; + floorID: string; + api: API; + tagOptions?: { + filter?: (tag: TagData) => boolean; + showControlTags?: boolean; + disabled?: boolean; + updateInterval?: number; + }; + onTagClick: (tag: TagData) => void; + onUpdate: MapComponentProps["onTagsUpdate"]; + toggleLoadingSpinner: (options: { + show: boolean; + source: string; + }) => void; + onInit: () => void; +} +export interface TagLayerState { + tagsByMAC: Record; + connectionsByFloorID: Record; +} +export default class TagLayer extends Component { + state: TagLayerState; + tagUpdates: {}; + isMounted: boolean; + componentDidMount(): void; + shouldComponentUpdate(nextProps: TagLayerProps): boolean; + componentDidUpdate(prevProps: TagLayerProps): void; + componentWillUnmount(): void; + commitTagUpdates: import("lodash").DebouncedFunc<() => void>; + connect(floorID: string): void; + disconnect(floorID: string): void; + filterControlTags(tags: TagData[]): TagData[]; + onUpdate: () => void; + render(): h.JSX.Element; +} diff --git a/dist/src/Translations.d.ts b/dist/src/Translations.d.ts new file mode 100644 index 00000000..07bfed73 --- /dev/null +++ b/dist/src/Translations.d.ts @@ -0,0 +1,228 @@ +declare const translations: { + readonly en: { + readonly tags: "Tags"; + readonly placemarks: "Placemarks"; + readonly floors: "Floors"; + readonly search: "Search"; + readonly search_tags: "Search Tags"; + readonly search_placemarks: "Search Placemarks"; + readonly search_floors: "Search Floors"; + readonly no_results_found: "No results found"; + readonly close: "Close"; + }; + readonly ar: { + readonly tags: "العلامات"; + readonly placemarks: " العلامات الموضعية"; + readonly floors: " الطوابق"; + readonly search: " بحث"; + readonly search_tags: " بحث عن علامات"; + readonly search_placemarks: " بحث عن علامات موضعية"; + readonly search_floors: " بحث عن طوابق"; + readonly no_results_found: " لم يتم العثور على نتائج"; + readonly close: "إغلاق"; + }; + readonly ca: { + readonly tags: "Etiquetes"; + readonly placemarks: "Marques de posició"; + readonly floors: "Pisos"; + readonly search: "Cerca"; + readonly search_tags: "Cerca etiquetes"; + readonly search_placemarks: "Cerca marcadors de posició"; + readonly search_floors: "Cerca pisos"; + readonly no_results_found: "Sense resultats"; + readonly close: "Tanca"; + }; + readonly es: { + readonly tags: "Etiquetas"; + readonly placemarks: "Marcas de posición"; + readonly floors: "Pisos"; + readonly search: "Buscar"; + readonly search_tags: "Buscar etiquetas"; + readonly search_placemarks: "Buscar marcas de posición"; + readonly search_floors: "Buscar pisos"; + readonly no_results_found: "No se han encontrado resultados"; + readonly close: "Cerrar"; + }; + readonly cs: { + readonly tags: "Tagy"; + readonly placemarks: "Značky míst"; + readonly floors: "Patra"; + readonly search: "Hledat"; + readonly search_tags: "Hledat tagy"; + readonly search_placemarks: "Hledat značky míst"; + readonly search_floors: "Hledat patra"; + readonly no_results_found: "Nebyly nalezeny žádné výsledky"; + readonly close: "Zavřít"; + }; + readonly de: { + readonly tags: "Stichworte"; + readonly placemarks: "Ortsmarken"; + readonly floors: "Etagen"; + readonly search: "Suche"; + readonly search_tags: "Such-Tags"; + readonly search_placemarks: "In den Ortsmarken (Räumen, Sälen) suchen"; + readonly search_floors: "In den Stockwerken suchen"; + readonly no_results_found: "Keine Ergebnisse gefunden"; + readonly close: "Schließen"; + }; + readonly fr: { + readonly tags: "Mots clés"; + readonly placemarks: "Repères"; + readonly floors: "Étages"; + readonly search: "Rechercher"; + readonly search_tags: "Rechercher des mots clés"; + readonly search_placemarks: "Rechercher des repères"; + readonly search_floors: "Rechercher des étages"; + readonly no_results_found: "Aucun résultat trouvé"; + readonly close: "Fermer"; + }; + readonly it: { + readonly tags: "Tag"; + readonly placemarks: "Segnaposto"; + readonly floors: "Piani"; + readonly search: "Cerca"; + readonly search_tags: "Cerca tag"; + readonly search_placemarks: "Cerca segnaposto"; + readonly search_floors: "Cerca piani"; + readonly no_results_found: "Nessun risultato trovato"; + readonly close: "Chiudi"; + }; + readonly iw: { + readonly tags: "תגים"; + readonly placemarks: "סימני מקום"; + readonly floors: "קומות"; + readonly search: "חפש"; + readonly search_tags: "חפש תגיות"; + readonly search_placemarks: "חפש סימני מקום"; + readonly search_floors: "חפש קומות"; + readonly no_results_found: "לא נמצאו תוצאות"; + readonly close: "סגור"; + }; + readonly ja: { + readonly tags: "タグ"; + readonly placemarks: "目印"; + readonly floors: "フロア"; + readonly search: "探す"; + readonly search_tags: "検索タグ"; + readonly search_placemarks: "目印を検索する"; + readonly search_floors: "フロアを検索する"; + readonly no_results_found: "結果が見つからない"; + readonly close: "近い"; + }; + readonly ko: { + readonly tags: "태그"; + readonly placemarks: "장소표시<"; + readonly floors: "바닥"; + readonly search: "검색"; + readonly search_tags: "태그검색<"; + readonly search_placemarks: "장소표시 검색<"; + readonly search_floors: "층수검색<"; + readonly no_results_found: "검색결과가 없습니다<"; + readonly close: "닫기"; + }; + readonly nl: { + readonly tags: "Tags"; + readonly placemarks: "Plaatsaanduidingen"; + readonly floors: "Verdiepingen"; + readonly search: "Zoeken"; + readonly search_tags: "Zoek tags"; + readonly search_placemarks: "Zoek plaatsaanduidingen"; + readonly search_floors: "Zoek verdiepingen"; + readonly no_results_found: "Geen resultaten gevonden"; + readonly close: "Sluiten"; + }; + readonly no: { + readonly tags: "Tagger"; + readonly placemarks: "Stedsmarkeringer"; + readonly floors: "Gulv"; + readonly search: "Søk"; + readonly search_tags: "Søk i etiketter"; + readonly search_placemarks: "Søk i stedsmarkeringer"; + readonly search_floors: "Søk i etasjer"; + readonly no_results_found: "Ingen resultater"; + readonly close: "Lukk"; + }; + readonly pt: { + readonly tags: "Tags"; + readonly placemarks: "Marcadores"; + readonly floors: "Andares"; + readonly search: "Procurar"; + readonly search_tags: "Tags de pesquisa"; + readonly search_placemarks: "Pesquisar marcadores"; + readonly search_floors: "Pesquisar andares"; + readonly no_results_found: "Nenhum resultado encontrado"; + readonly close: "Perto"; + }; + readonly ru: { + readonly tags: "Taggar"; + readonly placemarks: "Platsmärken"; + readonly floors: "Golv"; + readonly search: "Sök"; + readonly search_tags: "Sök taggar"; + readonly search_placemarks: "Sök efter platsmärken"; + readonly search_floors: "Sök Golv"; + readonly no_results_found: "Inga resultat funna"; + readonly close: "Stänga"; + }; + readonly sv: { + readonly tags: "Taggar"; + readonly placemarks: "Platsmärken"; + readonly floors: "Golv"; + readonly search: "Sök"; + readonly search_tags: "Sök taggar"; + readonly search_placemarks: "Sök efter platsmärken"; + readonly search_floors: "Sök Golv"; + readonly no_results_found: "Inga resultat funna"; + readonly close: "Stänga"; + }; + readonly uk: { + readonly tags: "Теги"; + readonly placemarks: "Мітки"; + readonly floors: "Поверхи"; + readonly search: "Пошук"; + readonly search_tags: "Пошук тегів"; + readonly search_placemarks: "Пошук міток"; + readonly search_floors: "Пошук поверхів"; + readonly no_results_found: "Нічого не знайдено"; + readonly close: "Закрити"; + }; + readonly vi: { + readonly tags: "Thẻ"; + readonly placemarks: "Dấu vị trí"; + readonly floors: "Tầng"; + readonly search: "Tìm kiếm "; + readonly search_tags: "Thẻ tìm kiếm"; + readonly search_placemarks: "Dấu vị trí tìm kiếm"; + readonly search_floors: "Tầng tìm kiếm"; + readonly no_results_found: "Không có kết quả nào được tìm thấy"; + readonly close: "Đóng"; + }; + readonly "zh-cn": { + readonly tags: "标签"; + readonly placemarks: "地标"; + readonly floors: "楼层"; + readonly search: "搜索"; + readonly search_tags: "搜索标签"; + readonly search_placemarks: "搜索地标"; + readonly search_floors: "搜索楼层"; + readonly no_results_found: "未找到结果"; + readonly close: "关闭"; + }; + readonly "zh-tw": { + readonly tags: "標籤"; + readonly placemarks: "地標"; + readonly floors: "樓層"; + readonly search: "搜尋"; + readonly search_tags: "搜尋標籤"; + readonly search_placemarks: "搜尋地標"; + readonly search_floors: "搜尋樓層"; + readonly no_results_found: "未找到結果"; + readonly close: "關閉"; + }; +}; +export type LanguageCodes = keyof typeof translations; +declare function lookup(str: keyof typeof translations["en"], lng?: LanguageCodes): any; +declare const _default: { + lookup: typeof lookup; +}; +export default _default; diff --git a/dist/src/ZoomControls.d.ts b/dist/src/ZoomControls.d.ts new file mode 100644 index 00000000..943ee874 --- /dev/null +++ b/dist/src/ZoomControls.d.ts @@ -0,0 +1,7 @@ +/** @jsx h */ +interface ZoomControlsProps { + onZoomIn: (event: MouseEvent) => void; + onZoomOut: (event: MouseEvent) => void; +} +declare const ZoomControls: FunctionComponent; +export default ZoomControls; diff --git a/dist/src/analytics.d.ts b/dist/src/analytics.d.ts new file mode 100644 index 00000000..785e7e20 --- /dev/null +++ b/dist/src/analytics.d.ts @@ -0,0 +1,14 @@ +/** + * @internal + * @packageDocumentation + */ +interface SendAnalyticsCodeEventOptions { + action: string; + locationID: string; + onTagsUpdate?: boolean; + tagsFilter?: boolean; + placemarksFilter?: boolean; + internalUpdate?: boolean; +} +export declare function sendAnalyticsCodeEvent(options: SendAnalyticsCodeEventOptions): Promise; +export {}; diff --git a/dist/src/style.d.ts b/dist/src/style.d.ts new file mode 100644 index 00000000..0be70848 --- /dev/null +++ b/dist/src/style.d.ts @@ -0,0 +1,52 @@ +/** + * @internal + * @packageDocumentation + */ +export declare const theme: { + readonly fontSizeSmallest: "12px"; + readonly fontSizeSmaller: "14px"; + readonly fontSize: "16px"; + readonly fontSizeBigger: "18px"; + readonly black: "#000"; + readonly white: "#fff"; + readonly almostWhite: "#fafafa"; + readonly textColor: "#1b1b1b"; + readonly textColorBluishLightGrey: "#9fa8ae"; + readonly textColorBluish: "hsl(208, 17%, 42%)"; + readonly brandOrange: "#ff8300"; + readonly brandBlue: "hsl(203, 100%, 23%)"; + readonly brandBrightBlue: "hsl(207, 65%, 46%)"; + readonly buttonActiveColor: "hsl(201, 55%, 94%)"; + readonly buttonHoverColor: "hsl(200, 60%, 97%)"; + readonly buttonSeparatorColor: "#f0f0f0"; + readonly borderColor: "#ebeef2"; + readonly borderColorDarker: "#dfe1e5"; + readonly borderRadius: 6; + readonly searchBarColor: "#297BC0"; +}; +export declare const mixins: { + readonly flexRow: CSSInterpolation; + readonly flexColumn: CSSInterpolation; + readonly overflowEllipses: CSSInterpolation; + readonly textStrokeWhite: CSSInterpolation; + readonly buttonReset: CSSInterpolation; + readonly buttonHoverActive: CSSInterpolation; + readonly borderBox: CSSInterpolation; + readonly focusRing: CSSInterpolation; + readonly focusRingMenuItem: CSSInterpolation; + readonly focusOutline: CSSInterpolation; + readonly focusDarken: CSSInterpolation; + readonly focusNone: CSSInterpolation; + readonly shadow: CSSInterpolation; + readonly rounded: CSSInterpolation; + readonly maxRounded: CSSInterpolation; + readonly paddingMedium: CSSInterpolation; + readonly pointer: CSSInterpolation; +}; +export declare const cx: (...classNames: import("@emotion/css/create-instance").ClassNamesArg[]) => string, keyframes: { + (template: TemplateStringsArray, ...args: CSSInterpolation[]): string; + (...args: CSSInterpolation[]): string; +}, css: { + (template: TemplateStringsArray, ...args: CSSInterpolation[]): string; + (...args: CSSInterpolation[]): string; +}; diff --git a/dist/src/util.d.ts b/dist/src/util.d.ts new file mode 100644 index 00000000..b8661461 --- /dev/null +++ b/dist/src/util.d.ts @@ -0,0 +1,23 @@ +/** + * @internal + * @packageDocumentation + */ +export declare const logWarn: (...args: any[]) => void; +export declare const logError: (...args: any[]) => void; +export declare const logDeprecated: (...args: any[]) => void; +export declare const uiText: { + enDash: string; + unnamedBuilding: string; +}; +/** New object with just one key missing from it. */ +export declare function objectWithoutKey(object: T, key: keyof typeof object): T; +/** Like lodash.groupBy, but the values are not in arrays. */ +export declare function keyBy(data: T[], fn: (item: T) => K): Record; +export declare function createSearchMatcher(query: string): (target: string) => boolean; +export declare function getTagLabels(tag: TagData): any; +export declare function getPlacemarkCategories(placemark: PlacemarkData): any; +export declare function requiredParam(funcName: string, argName: string): void; +export declare function isEnvOptions(env: string): env is EnvOptions; +export declare function cleanQuery(query: string): string; +export declare const placemarkSearchParams = "is_map_published=true AND kind:placemark AND NOT is_searchable=false AND NOT type=exclusion_area"; +export declare function debouncedPlacemarkSearch(func: any, wait?: number): () => Promise; diff --git a/dist/src/web-sdk.d.ts b/dist/src/web-sdk.d.ts new file mode 100644 index 00000000..f6fd009b --- /dev/null +++ b/dist/src/web-sdk.d.ts @@ -0,0 +1,915 @@ +/** @jsx h */ +/*! + * @license + * Copyright 2022 Hewlett Packard Enterprise Development LP + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +/** + * See {@link init} and {@link createMap} for getting started. + * + * ```js + * const api = new MeridianSDK.API({ token: "" }); + * const map = MeridianSDK.createMap( + * document.querySelector("#map-container"), + * { + * api: api, + * locationID: "", + * floorID: "", + * height: "500px" + * } + * ); + * ``` + * + * Call this before navigating to a new page, to close network connections. This + * is critical for usage within a single page application, or even just an + * interactive page with JS that unmounts the map container element (e.g. + * removing it from the DOM or setting the `innerHTML`). + * + * ```js + * map.destroy(); + * ``` + * @packageDocumentation + */ +import { AxiosInstance } from "axios"; +import { h } from "preact"; +import { LanguageCodes } from "./Translations"; +/** + * Takes a placemark type and returns a URL to a white SVG icon representing it + * + * @example + * ```ts + * function onPlacemarkClick(placemark) { + * const url = MeridianSDK.placemarkIconURL(placemark.type); + * console.log(url); + * } + * ``` + */ +export declare function placemarkIconURL(type: string): string; +/** + * Returns an array of points (numbers) based on a placemarks's area property + */ +export declare function pointsFromArea(area: string | null | undefined): number[]; +/** + * The current version of the Meridian Web SDK. Useful for checking which + * version is running. + * + * ```js + * console.log(MeridianSDK.version); + * ``` + */ +export declare const version: string; +/** + * This function can be used to restrict pan/zoom events unless the user is + * holding down a modifier key (Control, Alt, Command, Shift) on their keyboard. + * This prevents accidental map interactions in pages with lots of scrolling + * content. + * + * Pass this to `shouldMapPanZoom` in {@link createMap} if you would like the user + * to use two fingers or hold down a modifier key in order to zoom the map. + * + * ```js + * const api = new MeridianSDK.API({ token: "" }); + * + * const map = MeridianSDK.createMap( + * document.querySelector("#map-container"), + * { + * api, + * locationID: "", + * floorID: "", + * height: "500px", + * shouldMapPanZoom: MeridianSDK.restrictedPanZoom, + * } + * ) + * ``` + */ +export declare function restrictedPanZoom(event: any): boolean; +/** + * Convert from latitude and longitude to a point on a referenced map. Uses equirectangular projection. + * + * The basic formula to achieve this is as follows: + * + * x = radius(longitude - central meridian of map) * cos(standard parallels with scale) + * + * y = radius(latitude - central parallel of map) + * + */ +export declare function latLngToMapPoint(floorData: Partial, { lat, lng }: { + lat: number; + lng: number; +}): { + x: number; + y: number; +}; +/** + * Convert from a point on a referenced map to latitude and longitude. Uses mercator projection. + * + * The basic formula to achieve this is as follows: + * + * latitute = 2(tan^-1)[exp(y / radius)] + * longitude = central parallel of map + (x / radius) - PI / 2 + * + */ +export declare function mapPointToLatLng(floorData: Partial, { x, y }: { + x: number; + y: number; +}): { + lat: number; + lng: number; +}; +/** + * Initializes a share MeridianSDK API instance for use across all calls to + * {@link createMap}. You can either call this function or pass your {@link API} + * instance directly to {@link createMap}. + * + * ```js + * const api = new MeridianSDK.API({ + * token: "" + * }); + * + * MeridianSDK.init({ api: api }); + * ``` + */ +export declare function init(options: { + api: API; +}): void; +export interface CreateMapTagsOptions { + /** Should we show control tags? Defaults to `false`. */ + showControlTags?: boolean; + /** + * Filter function used to hide tags. Return `false` to hide a tag. Defaults + * to `() => true`. + */ + filter?: (tag: TagData) => boolean; + /** Disable clicking tags when `true`. Defaults to `false`. */ + disabled?: boolean; + /** Update interval in milliseconds, defaults to 5000 */ + updateInterval?: number; +} +export interface CreateMapPlacemarksOptions { + /** Should we show hidden placemarks? Defaults to `false`. */ + showHiddenPlacemarks?: boolean; + /** + * Filter function used to hide placemarks. Return `false` to hide a + * placemark. Defaults to `() => true`. + */ + filter?: (placemark: PlacemarkData) => boolean; + /** Disable clicking placemarks when `true`. Defaults to `false`. */ + disabled?: boolean; + /** + * Which mode should we use for displaying placemark labels + * + * - always: shown at all times regardless of zoom level + * - never: never shown + * - hover: only shown when the placemark is hovered + * - zoom: [default] only shown when a certain zoom level is reached + */ + labelMode?: "always" | "never" | "hover" | "zoom"; + /** Zoom level at which placemark lables appear when label mode is "zoom" */ + labelZoomLevel?: number; +} +/** + * Object describing an SVG `` element drawn on the map + * + * + */ +export interface CustomOverlayPolygon { + type: "polygon"; + /** + * `true` will result in the element being wrapped in a `` (default: `false`) + * + * + */ + defs?: boolean; + id?: string; + className?: string; + style?: h.JSX.CSSProperties; + points: number[]; + fill?: string; + fillOpacity?: number | string; + stroke?: string; + strokeWidth?: number; + strokeLineJoin?: "miter" | "round"; + strokeDasharray?: string | number; + strokeDashoffset?: string | number; + strokeOpacity?: number | string; + markerStart: string; + markerMid: string; + markerEnd: string; + animate?: h.JSX.SVGAttributes; + /** Arbitrary data for use with onClick handler */ + data?: Record; + onClick?: (data: Record) => void; +} +/** + * Object describing an SVG `` element drawn on the map + * + * + */ +export interface CustomOverlayPolyline { + type: "polyline"; + /** + * `true` will result in the element being wrapped in a `` (default: `false`) + * + * + */ + defs?: boolean; + id?: string; + className?: string; + style?: h.JSX.CSSProperties; + points: number[]; + fill?: string; + fillOpacity?: number | string; + stroke?: string; + strokeWidth?: number; + strokeLineJoin?: "miter" | "round"; + strokeLineCap?: "butt" | "round" | "square"; + strokeDasharray?: string | number; + strokeDashoffset?: string | number; + strokeOpacity?: number | string; + markerStart: string; + markerMid: string; + markerEnd: string; + animate?: h.JSX.SVGAttributes; +} +/** + * Object describing an SVG `` element drawn on the map + * + * + */ +export interface CustomOverlayPath { + type: "path"; + /** + * `true` will result in the element being wrapped in a `` (default: `false`) + * + * + */ + defs?: boolean; + id?: string; + className?: string; + style?: h.JSX.CSSProperties; + shape: string; + fill?: string; + stroke?: string; + strokeWidth?: number; + strokeLineJoin?: "miter" | "round"; + strokeLineCap?: "butt" | "round" | "square"; + strokeDasharray?: string | number; + strokeDashoffset?: string | number; + strokeOpacity?: number | string; + markerStart: string; + markerMid: string; + markerEnd: string; + animate?: h.JSX.SVGAttributes; + animateMotion?: h.JSX.SVGAttributes; + mpath?: SVGMPathElement; +} +/** + * Object describing an SVG `` element drawn on the map + * + * + */ +export interface CustomOverlayCircle { + type: "circle"; + /** + * `true` will result in the element being wrapped in a `` (default: `false`) + * + * + */ + defs?: boolean; + id?: string; + className?: string; + style?: h.JSX.CSSProperties; + cx: string; + cy: string; + r: string; + pathLength: number; + fill?: string; + fillOpacity?: number | string; + stroke?: string; + strokeWidth?: number; + strokeLineJoin?: "miter" | "round"; + strokeLineCap?: "butt" | "round" | "square"; + strokeDasharray?: string | number; + strokeDashoffset?: string | number; + strokeOpacity?: number | string; + animate?: h.JSX.SVGAttributes; + animateMotion?: h.JSX.SVGAttributes; + mpath?: SVGMPathElement; + /** Arbitrary data for use with onClick handler */ + data?: Record; + onClick?: (data: Record) => void; +} +/** + * Object describing an SVG `` element drawn on the map + * + * + */ +export interface CustomOverlayImage { + type: "image"; + /** + * `true` will result in the element being wrapped in a `` (default: `false`) + * + * + */ + defs?: boolean; + id?: string; + className?: string; + style?: h.JSX.CSSProperties; + x?: number; + y?: number; + width: number; + height: number; + href: string; + animateMotion?: h.JSX.SVGAttributes; + animate?: h.JSX.SVGAttributes; + mpath?: SVGMPathElement; + /** Arbitrary data for use with onClick handler */ + data?: Record; + onClick?: (data: Record) => void; +} +/** + * Object describing an SVG `` element drawn on the map + * + * + */ +export interface CustomOverlayMarker { + type: "marker"; + /** + * `true` will result in the element being wrapped in a `` (default: `false`) + * + * + */ + defs?: boolean; + id?: string; + className?: string; + style?: h.JSX.CSSProperties; + viewBox: string; + refX: string; + refY: string; + markerWidth: number; + markerHeight: number; + orient: string; + fill?: string; + fillOpacity?: number | string; + stroke?: string; + strokeWidth?: number; + strokeLineJoin?: "miter" | "round"; + strokeLineCap?: "butt" | "round" | "square"; + strokeDasharray?: string | number; + strokeDashoffset?: string | number; + strokeOpacity?: number | string; + shapeElementType: "circle" | "polygon" | "polyline" | "path" | "image"; + shapeElementAttributes: Record; +} +/** + * Object describing an SVG `` element drawn on the map. + * + * + */ +export interface CustomOverlayUse { + type: "use"; + /** + * `true` will result in the element being wrapped in a `` (default: `false`) + * + * + */ + defs?: boolean; + id?: string; + className?: string; + style?: h.JSX.CSSProperties; + x?: number; + y?: number; + width: number; + height: number; + href: string; + fill?: string; + stroke?: string; + strokeWidth?: number; + strokeLineJoin?: "miter" | "round"; + strokeLineCap?: "butt" | "round" | "square"; + strokeDasharray?: string | number; + strokeDashoffset?: string | number; + strokeOpacity?: number | string; + animate?: h.JSX.SVGAttributes; + animateMotion?: h.JSX.SVGAttributes; + mpath?: SVGMPathElement; +} +/** + * Object describing a custom overlay + */ +export type CustomOverlay = CustomOverlayImage | CustomOverlayPath | CustomOverlayPolygon | CustomOverlayPolyline | CustomOverlayCircle | CustomOverlayMarker | CustomOverlayUse; +/** + * Object describing a point annotation drawn on the map + */ +export interface CustomAnnotationPoint { + type: "point"; + x: number; + y: number; + size?: number; + backgroundColor?: string; + backgroundSize?: string; + backgroundImage?: string; + title?: string; + /** Arbitrary data for use with onClick handler */ + data?: Record; + onClick?: (data: Record) => void; +} +/** + * Object describing a custom annotation + */ +export type CustomAnnotation = CustomAnnotationPoint; +/** + * Options passed to {@link createMap}. + */ +export interface CreateMapOptions { + /** See {@link restrictedPanZoom}. */ + shouldMapPanZoom?: (event: any) => boolean; + /** Width of the map (e.g. "100%" or "300px"). */ + width?: string; + /** Height of the map (e.g. "100%" or "200px") */ + height?: string; + /** Meridian location ID. */ + locationID: string; + /** Meridian floor ID. */ + floorID: string; + /** An {@link API} instance. Defaults to the one passed to {@link init}. */ + api?: API; + /** Should we show the floor switcher UI control? Defaults to `true`. */ + showFloorsControl?: boolean; + /** Should we show the Search UI control? Defaults to `true`. */ + showSearchControl?: boolean; + /** + * Sort the floors in the Floor Switcher UI descending in order. + * Defaults to `false` (ascending in order). + */ + floorsControlSortDescending?: boolean; + /** + * Set to `false` to disable loading tags. Defaults to `true`. + * This is required for locations without a TAGS SKU license + */ + loadTags?: boolean; + /** Options related to tags. */ + tags?: CreateMapTagsOptions; + /** Set to `false` to disable loading placemarks. Defaults to `true`. */ + loadPlacemarks?: boolean; + /** Options related to placemarks. */ + placemarks?: CreateMapPlacemarksOptions; + /** An array of custom overlays to draw on the map. */ + overlays?: CustomOverlay[]; + /** An array of custom annotations to draw on the map. */ + annotations?: CustomAnnotation[]; + /** + * Minimum zoom level. Default value is dynamically calculated and matches + * the initial map scale (further zooming out is not allowed + */ + minZoomLevel?: number; + /** + * Maximum zoom level. Default value is 8 which equals eight times the + * actual scale of the map. + */ + maxZoomLevel?: number; + /** + * Called when the user clicks on the map. This is mostly useful as a way of + * knowing that the user has potentially unfocused a tag or placemark. This is + * NOT called when the user pans or zooms the map. + */ + onMapClick?: () => void; + /** + * Called when a tag is clicked. Use `event.preventDefault()` to prevent the + * default dialog from appearing. + */ + onTagClick?: (tag: TagData, event: MeridianEvent) => void; + /** + * Called when a placemark is clicked. Use `event.preventDefault()` to prevent + * the default dialog from appearing. + */ + onPlacemarkClick?: (placemark: PlacemarkData, event: MeridianEvent) => void; + /** + * Called when tags on the current floor are updated. `allTags` is every tag + * on the current floor, even ones not shown on the map. `filteredTags` is + * only the tags shown on the map (i.e. it respects `showControlTags` and + * `filter`). + */ + onTagsUpdate?: (tags: { + allTags: TagData[]; + filteredTags: TagData[]; + }) => void; + /** + * Called when tags on the current floor are updated. `allPlacemarks` is every + * placemark on the current floor, even ones not shown on the map. + * `filteredPlacemarks` is only the tags shown on the map (i.e. it respects + * `showHiddenPlacemarks` and `filter`). + */ + onPlacemarksUpdate?: (placemarks: { + allPlacemarks: PlacemarkData[]; + filteredPlacemarks: PlacemarkData[]; + }) => void; + /** Called after the floors list is updated. */ + onFloorsUpdate?: (floors: FloorData[]) => void; + /** Called after the floor is changed. */ + onFloorChange?: (floor: FloorData) => void; + /** Called when the loading state changes. */ + onLoadingStateChange?: (isLoading: boolean) => void; + /** + * Called when the map has been destroyed, either by manually calling + * map.destroy() or by being automatically destroyed when its DOM is tampered + * with. + */ + onDestroy?: () => void; +} +/** + * MeridanSDK specific event object, used to `preventDefault` when overriding a + * handler. + */ +export interface MeridianEvent { + preventDefault: () => void; +} +/** + * Returned from {@link createMap}, this object allows you to manipulate a map that + * has already been created in the page. + */ +export interface MeridianMap { + /** + * Remove the Meridian Map from the DOM and clean up all ongoing network + * connections. + * + * If you are writing a single page app you MUST use this call before hiding + * the Meridian Map, or you will having network connections that keep going in + * the background. + */ + destroy: () => void; + /** Has this map been destroyed */ + isDestroyed: boolean; + /** + * Update the Meridian map to have new options. + */ + update: (updatedOptions: Partial) => void; + /** + * Set zoom to the default level and pan to the default position. + */ + zoomToDefault: () => void; + /** + * Pan to x/y coordinate and scale to a given zoom factor. + */ + zoomToPoint: (options: { + x: number; + y: number; + scale: number; + }) => void; + /** + * Center the map while retaining the current scale. + */ + centerMap: () => void; +} +/** + * Creates and returns a map object mounted at the given HTML element. If you + * are using the tags.filter or onTagClick or onTagsUpdate functions, refer to + * for the schema. + * + * ```js + * const api = new MeridianSDK.API({ token: "" }); + * const map = MeridianSDK.createMap( + * document.querySelector("#map-container"), + * { + * api: api, + * locationID: "", + * floorID: "", + * height: "500px" + * } + * ); + * ``` + */ +export declare function createMap(element: HTMLElement, options: CreateMapOptions): MeridianMap; +/** + * @deprecated + * Deprecated function used to create an instance of {@link API}. Instead of + * `createAPI(options)` you should now use `new API(options)`. + */ +export declare function createAPI(options: APIOptions): API; +/** + * Options passed to {@link API.openStream}. + */ +export interface OpenStreamOptions { + /** Meridian location ID */ + locationID: string; + /** Meridian floor ID */ + floorID?: string; + /** + * Default: [floorID] if resourceType === "FLOOR" OR [locationID] if resourceType === "LOCATION", + * Valid values: [locationID | floorIDs | tagIDs | tagLabelIDs | zoneIDs] + */ + resourceIDs?: string[]; + /** + * Default: "FLOOR" if floorID is defined + * Valid values: "LOCATION" | "TAG" | "FLOOR" | "LABEL" | "ZONE" + */ + resourceType?: "LOCATION" | "TAG" | "FLOOR" | "LABEL" | "ZONE"; + /** Called with ALL tags on first load */ + onInitialTags?: (tags: TagData[]) => void; + /** Called when a tag location updates */ + onTagUpdate?: (tag: TagData) => void; + /** Called when an error happens */ + onException?: (error: Error) => void; + /** Called when the stream closes */ + onClose?: () => void; + /** Called when the stream opens */ + onOpen?: () => void; +} +/** + * Options passed to {@link API.getDirections}. + */ +export interface getDirectionsOptions { + /** Meridian Location ID */ + locationID: string; + /** Meridian start Floor ID */ + startFloorID: string; + /** Meridian start Placemark ID */ + startPlacemarkID: string; + /** Meridian end Placemark ID */ + endPlacemarkID: string; + /** Transport Type ("accessible" or undefined). Default is undefined */ + transportType?: string; +} +/** + * Options passed to {@link API.debouncedPlacemarkSearchBeta}. + */ +export interface placemarkSearchOptions { + /** Location ID */ + locationID: string; + /** Search String */ + searchStr: string; + /** + * Floor ID to be used in combination with `refPoint` + * See {@link API.debouncedPlacemarkSearchBeta} + */ + refFloorID?: string; + /** + * Map Point X/Y to be used in combination with `refFloorID` + * See {@link API.debouncedPlacemarkSearchBeta} + */ + refPoint?: string; +} +/** + * Holds an API token and environment. Can be used to access an `axios` instance + * for REST API calls, or `openStream()` for opening a tag stream. You can + * create multiple API instances in case you want to use multiple tokens (e.g. + * to show data from multiple locations or organizations on a single page). + * + * @example + * ```ts + * // Basic usage + * const api = new MeridianSDK.API({ + * token: "" + * }); + * + * // Multiple APIs at once + * const apiOrg1 = new MeridianSDK.API({ + * token: "Insert Org 1 token here" + * }); + * MeridianSDK.createMap(elementOrg1, { + * api: apiOrg1, + * locationID: "Insert Org 1 location ID here", + * floorID: "Insert Org 1 floor ID here" + * }); + * + * const apiOrg2 = new MeridianSDK.API({ + * token: "Insert Org 2 token here" + * }); + * MeridianSDK.createMap(elementOrg2, { + * api: apiOrg2, + * locationID: "Insert Org 2 location ID here", + * floorID: "Insert Org 2 floor ID here" + * }); + * ``` + */ +export declare class API { + #private; + /** + * Meridian API token. Make sure to create a **READ ONLY** token for security. + * Otherwise anyone using your page could take your token and modify all of + * your Meridian data. + */ + readonly token: string; + /** + * Language code that matches a supported language for this location. + * Note: The LanguageCodes Type includes all possible language codes. See + * "Translations" in Meridian Editor to learn exactly what languages are + * supported for this location. + */ + readonly language: LanguageCodes | undefined; + /** + * Meridian environment (`"production"` or `"eu"`). Defaults to + * `"production"`. + */ + readonly environment: EnvOptions; + /** + * Pass the result to `init()` or `createMap()`. + */ + constructor(options: APIOptions); + /** + * @deprecated + * Use the fetch methods instead + */ + get axios(): AxiosInstance; + /** + * [async] Returns an Object with routes to the destination (endPlacemarkID) + */ + getDirections(options: getDirectionsOptions): Promise>; + /** + * [async] Returns an array of all tags on the specified location and floor + */ + fetchTagsByFloor(locationID: string, floorID: string): Promise; + /** + * [async] Returns an array of all tags at the specified location + */ + fetchTagsByLocation(locationID: string): Promise; + /** + * [async] Returns dynamicly updated data for a specific tag. + */ + fetchTagDetail(mac: string): Promise; + /** + * [async] Returns an array of all placemarks at the specified location + */ + fetchPlacemarksByLocation(locationID: string): Promise; + /** + * [async] Returns an array of all placemarks on the specified location and + * floor + */ + fetchPlacemarksByFloor(locationID: string, floorID: string): Promise; + /** + * [async] Returns an array of all floors at the specified location + */ + fetchFloorsByLocation(locationID: string): Promise; + /** + * [async] Returns the data of specified floor + */ + fetchFloorData(locationID: string, floorID: string): Promise; + /** + * [async] Returns an object URL for the given SVG URL + * + * This object URL can be used as the `src` for an `img` tag. + * + * This method fetches the SVG URL using your API token, since `img` tags + * can't pass API tokens. The SVG URL can be obtained from the `svg_url` + * property on a floor. When you're finished using this URL, you should call + * `URL.revokeObjectURL` with the URL, so the browser can save memory by + * releasing the data. + */ + fetchSVG(svgURL: string): Promise; + /** + * + * @experimental + * [async] Returns an array of results or `null` when a request is cancelled + * or debounced. Cancellation happens when a new request is made before the + * previous request completes. The Debounce wait time is 6ms and the function + * is invoked with the last arguments provided. + * + * Both cancelled and debounced requests will eventually resolve with an array + * of results (possibly empty). + * + * Requests that throw an exception will return an empty array and output a + * warning message to the Web console. + * + * Local/Nearby Search integration. If both refFloorID AND refPoint are + * provided, a second API call will be made and the results will be ordered + * where placemarks closest to the refPoint (x/y) will appear first. + * + * Placemark Search defaults to a single instance per API. This should work + * fine for most use cases, but if you need to make multiple unique search + * calls simultaneously, each will need a unique API instance like shown below. + * ```ts + * // Search Widget One API Instance. + * const apiInstance1 = new MeridianSDK.API({ + * token: "" + * }); + * + * // Search Widget Two API Instance + * const apiInstance2 = new MeridianSDK.API({ + * token: "" + * }); + * ``` + */ + debouncedPlacemarkSearchBeta: (options: placemarkSearchOptions) => Promise[] | null>; + /** + * Opens a tag stream for a given location and floor. `onInitialTags` is + * called with the full list of tags for that floor. + * + * Note: When resourceType is set to "ZONE", `onTagUpdate` is called when + * a tag/resource exits or enters the zone. Otherwise, `onTagUpdate` is + * called every time a tag/resource is updated. + * + * @example + * ```ts + * const api = new MeridianSDK.API({ + * token: token, + * environment: "production" + * }); + * + * const stream = api.openStream({ + * locationID: locationID, + * floorID: floorID, + * onInitialTags: (tags) => { + * console.log("tags", tags); + * }, + * onTagUpdate: (tag) => { + * console.log("update", tag); + * } + * }); + * + * // Tag Zones + * + * const stream = api.openStream({ + * locationID: locationID, + * floorID: floorID, + * resourceIDs: ["1218"], + * resourceType: "ZONE", + * onTagUpdate: (tag) => { + * console.log("update", tag); + * } + * }); + * + * // call `stream.close()` when switching pages to avoid leaving the stream + * // open and wasting bandwidth in the background + * ``` + */ + openStream({ locationID, floorID, resourceIDs, resourceType, onInitialTags, onTagUpdate, onException, onClose, onOpen, }: OpenStreamOptions): Stream; +} +/** + * Environment name used in {@link APIOptions}. If unsure, use `"production"`. + */ +export type EnvOptions = "production" | "staging" | "eu" | "development" | "devCloud"; +/** + * Options passed to {@link createAPI}. + * + * ```js + * const api = new MeridianSDK.API({ + * environment: "production", // or "eu" + * token: "", + * language: "" // optional, defaults to "en" + * }); + * ``` + */ +export interface APIOptions { + environment?: EnvOptions; + token: string; + language?: LanguageCodes; +} +/** + * An open tag stream that can be closed. Returned by {@link API.openStream}. + * + * ```js + * const api = new MeridianSDK.API({ + * // ... + * }); + * + * const stream = api.openStream({ + * // ... + * }); + * + * stream.close(); + * ``` + */ +export interface Stream { + close: () => void; +} +/** Meridian Tag data */ +export interface TagData { + [key: string]: any; + /** Tag MAC address (uppercase, no punctuation) */ + mac: string; +} +/** Meridian Placemark data */ +export interface PlacemarkData { + [key: string]: any; + /** Placemark ID */ + id: string; +} +/** Meridian Floor data */ +export interface FloorData { + [key: string]: any; + /** Floor ID */ + id: string; +} +/** Meridian Location data */ +export interface LocationData { + [key: string]: any; + /** Location ID */ + id: string; +} diff --git a/dist/web-sdk.js b/dist/web-sdk.js new file mode 100644 index 00000000..f9e9aba4 --- /dev/null +++ b/dist/web-sdk.js @@ -0,0 +1,2 @@ +/*! For license information please see web-sdk.js.LICENSE.txt */ +(()=>{var e={323:(e,t,a)=>{var s={"./aed.svg":852,"./amusement_park.svg":1968,"./atm.svg":5150,"./attraction.svg":1541,"./baggage.svg":3412,"./baggage_carts.svg":2096,"./bank.svg":136,"./bar.svg":5861,"./bike.svg":8113,"./bus.svg":7536,"./cafe.svg":2873,"./cafeteria.svg":3884,"./cashier.svg":9005,"./changing_room.svg":8327,"./changing_station.svg":7126,"./charging_station.svg":6906,"./clinic.svg":9138,"./club.svg":1174,"./coat_check.svg":3826,"./conference_room.svg":1606,"./currency_exchange.svg":7501,"./customer_service.svg":5738,"./desk.svg":9477,"./device_charging.svg":2630,"./elevator.svg":4,"./emergency_dept.svg":2053,"./escalator.svg":4266,"./exclusion_area.svg":2890,"./exhibit.svg":1641,"./exit.svg":9458,"./fire_extinguisher.svg":6624,"./first_aid.svg":1535,"./fitness_center.svg":1902,"./fountain.svg":3614,"./gallery.svg":6848,"./gaming.svg":5781,"./garden.svg":1841,"./gate.svg":5995,"./generic.svg":9101,"./global_entry_office.svg":1393,"./handicap.svg":2914,"./information.svg":8208,"./kiosk.svg":6175,"./lab.svg":7903,"./laptop_lounge.svg":4067,"./lost_found.svg":1833,"./lounge.svg":1900,"./mailbox.svg":2086,"./museum.svg":2002,"./nursing_station.svg":1565,"./operating_room.svg":2515,"./outdoor_area.svg":4525,"./paging_phone.svg":9563,"./parking.svg":8854,"./pet_relief.svg":4975,"./pharmacy.svg":593,"./phone.svg":9338,"./play_area.svg":9484,"./printer.svg":7774,"./registration.svg":9333,"./rental_cars.svg":3622,"./restaurant.svg":2311,"./restroom.svg":4965,"./restroom_ada.svg":2804,"./restroom_family.svg":504,"./restroom_men.svg":5584,"./restroom_men_ada.svg":7073,"./restroom_women.svg":8098,"./restroom_women_ada.svg":3303,"./rewards.svg":8850,"./security.svg":9456,"./security_checkpoint.svg":2453,"./shoe_shine.svg":9519,"./shop.svg":5758,"./spa.svg":7244,"./stadium.svg":1915,"./stairs.svg":2208,"./swimming_pool.svg":646,"./taxi.svg":7342,"./theater.svg":2925,"./ticketing.svg":8034,"./tours.svg":3187,"./train.svg":4340,"./training.svg":6740,"./valet.svg":1644,"./vending_machines.svg":4810,"./water_fountain.svg":9922,"./wedding.svg":2994};function o(e){var t=r(e);return a(t)}function r(e){if(!a.o(s,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return s[e]}o.keys=function(){return Object.keys(s)},o.resolve=r,e.exports=o,o.id=323},852:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/aed.svg"},1968:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/amusement_park.svg"},5150:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/atm.svg"},1541:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/attraction.svg"},3412:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/baggage.svg"},2096:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/baggage_carts.svg"},136:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/bank.svg"},5861:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/bar.svg"},8113:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/bike.svg"},7536:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/bus.svg"},2873:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/cafe.svg"},3884:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/cafeteria.svg"},9005:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/cashier.svg"},8327:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/changing_room.svg"},7126:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/changing_station.svg"},6906:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/charging_station.svg"},9138:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/clinic.svg"},1174:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/club.svg"},3826:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/coat_check.svg"},1606:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/conference_room.svg"},7501:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/currency_exchange.svg"},5738:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/customer_service.svg"},9477:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/desk.svg"},2630:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/device_charging.svg"},4:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/elevator.svg"},2053:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/emergency_dept.svg"},4266:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/escalator.svg"},2890:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/exclusion_area.svg"},1641:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/exhibit.svg"},9458:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/exit.svg"},6624:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/fire_extinguisher.svg"},1535:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/first_aid.svg"},1902:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/fitness_center.svg"},3614:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/fountain.svg"},6848:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/gallery.svg"},5781:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/gaming.svg"},1841:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/garden.svg"},5995:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/gate.svg"},9101:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/generic.svg"},1393:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/global_entry_office.svg"},2914:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/handicap.svg"},8208:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/information.svg"},6175:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/kiosk.svg"},7903:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/lab.svg"},4067:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/laptop_lounge.svg"},1833:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/lost_found.svg"},1900:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/lounge.svg"},2086:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/mailbox.svg"},2002:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/museum.svg"},1565:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/nursing_station.svg"},2515:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/operating_room.svg"},4525:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/outdoor_area.svg"},9563:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/paging_phone.svg"},8854:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/parking.svg"},4975:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/pet_relief.svg"},593:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/pharmacy.svg"},9338:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/phone.svg"},9484:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/play_area.svg"},7774:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/printer.svg"},9333:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/registration.svg"},3622:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/rental_cars.svg"},2311:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/restaurant.svg"},4965:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/restroom.svg"},2804:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/restroom_ada.svg"},504:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/restroom_family.svg"},5584:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/restroom_men.svg"},7073:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/restroom_men_ada.svg"},8098:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/restroom_women.svg"},3303:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/restroom_women_ada.svg"},8850:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/rewards.svg"},9456:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/security.svg"},2453:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/security_checkpoint.svg"},9519:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/shoe_shine.svg"},5758:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/shop.svg"},7244:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/spa.svg"},1915:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/stadium.svg"},2208:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/stairs.svg"},646:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/swimming_pool.svg"},7342:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/taxi.svg"},2925:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/theater.svg"},8034:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/ticketing.svg"},3187:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/tours.svg"},4340:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/train.svg"},6740:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/training.svg"},1644:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/valet.svg"},4810:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/vending_machines.svg"},9922:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/water_fountain.svg"},2994:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/wedding.svg"},192:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/tags/generic.png"},78:function(e,t,a){"use strict";var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=a(5403),r=s(a(5843));t.default=({mapZoomFactor:e,annotations:t})=>(0,o.h)("div",{"data-testid":"meridian--private--annotation-layer"},t.map(((t,a)=>"point"===t.type?(0,o.h)(r.default,Object.assign({key:a},t,{mapZoomFactor:e})):null)))},5843:(e,t,a)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const s=a(5403),o=a(2785),r=a(7746),i=({mapZoomFactor:e,x:t,y:a,size:o=24,backgroundColor:i="hsl(207, 65%, 46%)",backgroundSize:c="cover",backgroundImage:d,title:p,onClick:h,data:u={}})=>(0,s.h)("div",{className:n,style:{"--meridian-annotationPoint-x":`${t}px`,"--meridian-annotationPoint-y":`${a}px`,"--meridian-annotationPoint-scale":1/e,"--meridian-annotationPoint-size":`${o}px`,"--meridian-annotationPoint-backgroundColor":i,"--meridian-annotationPoint-backgroundSize":c,"--meridian-annotationPoint-backgroundImage":d?`url('${d}')`:"none",cursor:h?"pointer":"initial"},onClick:h?()=>(0,r.asyncClientCall)(h,u):void 0,"data-testid":"meridian--private--annotation-point"},p?(0,s.h)("div",{className:l,"data-testid":"meridian--private--annotation-point-title"},p):null),n=(0,o.css)({label:"AnnotationPoint",position:"absolute",top:"var(--meridian-annotationPoint-y)",left:"var(--meridian-annotationPoint-x)",transform:"translate(-50%, -50%) scale(var(--meridian-annotationPoint-scale))",width:"var(--meridian-annotationPoint-size)",height:"var(--meridian-annotationPoint-size)",backgroundColor:"var(--meridian-annotationPoint-backgroundColor)",backgroundImage:"var(--meridian-annotationPoint-backgroundImage)",backgroundSize:"var(--meridian-annotationPoint-backgroundSize)",backgroundRepeat:"no-repeat",backgroundPosition:"center",borderRadius:9999,userSelect:"none"}),l=(0,o.css)(o.mixins.textStrokeWhite,{label:"AnnotationPoint-Label",marginLeft:"50%",position:"absolute",minWidth:55,maxWidth:120,fontSize:14,textAlign:"center",marginTop:"var(--meridian-annotationPoint-size)",paddingTop:4,color:"#222",userSelect:"none",transform:"translate(-50%, 0)",fontWeight:"bold"});i.displayName="AnnotationPoint",t.default=i},2150:function(e,t,a){"use strict";var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=s(a(3669)),r=a(5403),i=s(a(2930)),n=s(a(9594)),l=s(a(8828)),c=s(a(6933)),d=a(2785),p=s(a(7866)),h=a(7746);class u extends r.Component{constructor(){super(...arguments),this.state={searchFilter:"",searchType:this.props.showTags?"tags":"placemarks"},this.searchInputRef=(0,r.createRef)(),this.setRadioFilter=e=>{this.setState({searchType:e})}}componentDidMount(){this.searchInputRef.current&&this.searchInputRef.current.focus()}render(){const{floors:e,tagsLoading:t,placemarksLoading:a,toggleAssetListOverlay:s,showTags:i,showPlacemarks:n,language:d}=this.props,u=p.default.lookup("tags",d),f=p.default.lookup("search_tags",d),v=p.default.lookup("placemarks",d),k=p.default.lookup("search_placemarks",d),{searchFilter:b}=this.state,y=(0,h.createSearchMatcher)(b),_=(0,o.default)(e,(e=>e.id)),C={};for(const t of e)C[t.id]=[t.group_name||h.uiText.unnamedBuilding,h.uiText.enDash,t.name].join(" ");return(0,r.h)(l.default,{position:"right",onCloseClicked:()=>{s({open:!1})}},(0,r.h)(c.default,{placeholder:"tags"===this.state.searchType?f:k,value:b,onChange:e=>{this.setState({searchFilter:e})}}),(0,r.h)("div",{className:w(Boolean(i&&n))},i?(0,r.h)(r.Fragment,null,(0,r.h)("input",{type:"radio",name:"searchType",id:"tags",className:O,checked:"tags"===this.state.searchType,onChange:e=>{e.target.checked&&this.setRadioFilter("tags")}}),(0,r.h)("label",{for:"tags",className:x},u)):null,n?(0,r.h)(r.Fragment,null,(0,r.h)("input",{type:"radio",name:"searchType",id:"placemarks",className:O,checked:"placemarks"===this.state.searchType,onChange:e=>{e.target.checked&&this.setRadioFilter("placemarks")}}),(0,r.h)("label",{for:"placemarks",className:x},v)):null),(()=>"tags"===this.state.searchType?(0,r.h)(m,Object.assign({},this.props,{floorToGroup:C,floorsByID:_,match:y,loading:t})):(0,r.h)(g,Object.assign({},this.props,{floorToGroup:C,floorsByID:_,match:y,loading:a})))())}}function m(e){const{currentFloorID:t,updateMap:a,tagOptions:s={},tags:l,loading:c,onTagClick:u,toggleAssetListOverlay:m,match:g,floorsByID:x,floorToGroup:O,language:w}=e,C=p.default.lookup("no_results_found",w),P=l.filter((e=>{const t=x[e.map_id][0];return!t||t.published})).filter((e=>g(e.name||"")||g(e.mac)||(0,h.getTagLabels)(e).some(g))).filter((e=>!0===s.showControlTags||!e.is_control_tag)).sort(((e,t)=>e.namet.name?1:0)),S=(0,o.default)(P,(e=>O[e.map_id])),D=Object.keys(S).sort();return D.forEach(((e,a)=>{if(S[e][0].map_id===t){const[e]=D.splice(a,1);D.unshift(e)}})),c?(0,r.h)("div",{className:_},(0,r.h)(i.default,null)):0===P.length?(0,r.h)("div",{className:_},C,"."):(0,r.h)("div",{className:v},D.map((e=>(0,r.h)("div",{key:e},(0,r.h)("div",{className:f},e),S[e].map((e=>(0,r.h)("button",{key:e.id,"data-testid":`meridian--private--overlay-tag-${e.id}`,className:k,onClick:()=>{a({floorID:e.map_id,tags:Object.assign(Object.assign({},s),{filter:()=>!0})}),u(e),m({open:!1})}},(0,r.h)("div",{className:b},(0,r.h)("div",{className:y},e.name||e.mac),(0,r.h)(n.default,{align:"right",labels:(0,h.getTagLabels)(e),fontSize:d.theme.fontSizeSmallest})))))))))}function g(e){const{currentFloorID:t,updateMap:a,placemarkOptions:s={},toggleAssetListOverlay:n,floorToGroup:l,match:c,placemarks:d,onPlacemarkClick:h,floorsByID:u,loading:m,language:g}=e,b=p.default.lookup("no_results_found",g),x=d.filter((e=>{const t=u[e.map][0];return!t||t.published})).filter((e=>e.is_searchable||null===e.is_searchable||void 0===e.is_searchable)).filter((e=>"exclusion_area"!==e.type&&(!0===s.showHiddenPlacemarks||!e.hide_on_map))).filter((e=>c(e.name||"")||c(e.type_name||""))).sort(((e,t)=>e.namet.name?1:0)),O=(0,o.default)(x,(e=>l[e.map])),w=Object.keys(O).sort();return w.forEach(((e,a)=>{if(O[e][0].map_id===t){const[e]=w.splice(a,1);w.unshift(e)}})),m?(0,r.h)("div",{className:_},(0,r.h)(i.default,null)):0===x.length?(0,r.h)("div",{className:_},b,"."):(0,r.h)("div",{className:v},w.map((e=>(0,r.h)("div",{key:e},(0,r.h)("div",{className:f},e),O[e].map((e=>(0,r.h)("button",{key:e.id,"data-testid":`meridian--private--overlay-tag-${e.id}`,className:k,onClick:()=>{a({floorID:e.map,placemarks:Object.assign(Object.assign({},s),{filter:()=>!0})}),h(e),n({open:!1})}},(0,r.h)("div",{className:y},e.name||e.type_name))))))))}const f=(0,d.css)({label:"overlay-building-name",top:0,position:"sticky",textTransform:"uppercase",fontWeight:"bold",color:d.theme.brandBlue,background:d.theme.almostWhite,fontSize:d.theme.fontSizeSmaller,padding:10}),v=(0,d.css)({label:"asset-list",overflowY:"auto",flex:"1 1 auto"}),k=(0,d.css)(d.mixins.buttonReset,d.mixins.focusRingMenuItem,d.mixins.buttonHoverActive,{label:"overlay-asset-button",minHeight:56,padding:10,paddingLeft:20,display:"block",width:"100%",textAlign:"left"}),b=(0,d.css)(d.mixins.flexRow,{label:"overlay-asset-button-inner",alignItems:"center"}),y=(0,d.css)({label:"overlay-asset-button-name",flex:"1 1 auto"}),_=(0,d.css)({label:"overlay-asset-list-empty",padding:"60px 20px",textAlign:"center",fontSize:d.theme.fontSizeBigger,color:d.theme.textColorBluish}),x=(0,d.css)({label:"overlay-radio-label",color:"white",padding:"2px 10px 0px 4px"}),O=(0,d.css)({label:"overlay-radio-button",WebkitAppearance:"none",position:"relative",boxSizing:"border-box",border:"1px solid rgb(224,224,225)",width:16,height:16,background:"white",borderRadius:9999,cursor:"pointer",boxShadow:"inset 0 2px 2px rgba(0, 0, 0, 0.1)","&:focus":{outline:"none",borderColor:d.theme.searchBarColor,borderWidth:2},"&:checked":{"--circle-color":d.theme.searchBarColor,"--circle-gap":"4px"},"&:checked::after":{content:'" "',position:"absolute",width:"calc(100% - var(--circle-gap))",height:"calc(100% - var(--circle-gap))",left:"calc(var(--circle-gap) / 2)",top:"calc(var(--circle-gap) / 2)",background:"var(--circle-color)",borderRadius:9999},"&:checked:focus":{"--circle-gap":"4px","--circle-color":d.theme.searchBarColor,borderColor:d.theme.searchBarColor,borderWidth:2}}),w=e=>(0,d.css)({label:"overlay-radio-container",display:e?"flex":"none",flexDirection:"row",justifyContent:"baseline",paddingLeft:10,paddingBottom:10,backgroundColor:"rgb(105, 146, 176)",alignItems:"center"});t.default=u},324:function(e,t,a){"use strict";var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=a(5403),r=s(a(9594)),i=s(a(8828)),n=a(2785),l=a(7746),c=a(4221),d=(0,n.css)({label:"overlay-image",width:"100%",backgroundColor:"white",backgroundPosition:"center",backgroundRepeat:"no-repeat",backgroundSize:"cover"}),p=(0,n.css)({label:"overlay-name",fontSize:22}),h=(0,n.css)({label:"overlay-content",padding:"0 20px 15px 20px",overflow:"auto"}),u=(0,n.css)({label:"overlay-tag-data",fontSize:14}),m=(0,n.css)({label:"overlay-placemark-data",fontSize:14});t.default=({kind:e,item:t,toggleDetailsOverlay:a})=>{const s="placemark"===e&&t.image_url?{backgroundImage:`url('${t.image_url}')`,backgroundSize:"contain",height:300,minHeight:220}:"placemark"===e?{backgroundSize:"contain",backgroundImage:`url('${(0,c.placemarkIconURL)(t.type)}')`,backgroundColor:`#${t.color}`,height:300,minHeight:220}:"tag"===e&&t.image_url?{backgroundImage:`url('${t.image_url}')`,height:300}:{background:n.theme.brandBrightBlue,height:300};return(0,o.h)(i.default,{position:"left",onCloseClicked:()=>{a({open:!1})}},(0,o.h)("div",{className:d,style:s}),(0,o.h)("div",{className:(0,n.cx)("meridian-overlay-content",h)},(0,o.h)("p",{className:(0,n.cx)("meridian-overlay-item-name",p)},t.name||t.type_name),"tag"===e?(0,o.h)("div",{className:(0,n.cx)("meridian-overlay-tag-data",u)},(0,o.h)(r.default,{align:"left",labels:(0,l.getTagLabels)(t),fontSize:n.theme.fontSize}),(0,o.h)("p",null,"MAC: ",t.mac)):(0,o.h)("div",{className:(0,n.cx)("meridian-overlay-placemark-description",m),dangerouslySetInnerHTML:function(){if("placemark"===e&&t.description)return{__html:t.description}}()})))}},8812:function(e,t,a){"use strict";var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=a(5403),r=s(a(4145)),i=a(2785),n=(0,i.css)(i.mixins.rounded,{label:"error",position:"absolute",zIndex:4,top:"35%",left:0,right:0,margin:"0 auto",minWidth:300,maxWidth:420,border:"1px solid #dfe1ef",paddingTop:15,paddingRight:20,paddingBottom:15,paddingLeft:25,background:i.theme.white,boxShadow:"0 0 1px rgba(0, 0, 0, 0.15), inset 4px 0 0 #d82e1f"}),l=(0,i.css)(i.mixins.buttonReset,{label:"close",cursor:"pointer",float:"right",width:38,height:38,marginLeft:15,padding:4,fill:"#c3c5c8","&:hover":{fill:i.theme.textColorBluish,cursor:"pointer"},"&:focus":{outline:0}});t.default=({toggleErrorOverlay:e,messages:t=["Unknown"]})=>(0,o.h)("div",{className:n},(0,o.h)("button",{className:l,onClick:()=>{e({open:!1})}},(0,o.h)(r.default,null)),(0,o.h)("p",null,"Sorry, something went wrong. It might be related to:"),(0,o.h)("ul",null,t.map(((e,t)=>(0,o.h)("li",{key:t},e)))))},3169:(e,t,a)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const s=a(5403),o=a(2785),r=(0,o.css)({label:"floor-and-tag-controls",display:"flex",flexDirection:"column",position:"absolute",zIndex:1,right:15,top:15}),i=(0,o.css)(o.mixins.buttonReset,o.mixins.shadow,o.mixins.rounded,o.mixins.buttonHoverActive,o.mixins.focusRing,{label:"control",cursor:"pointer",background:"white",padding:4,width:40,height:40,border:0,fontSize:20,fontWeight:200,fill:o.theme.brandBrightBlue}),n=(0,o.css)(i,{marginTop:10});t.default=({toggleFloorOverlay:e,toggleAssetListOverlay:t,showFloors:a,showSearch:l})=>(0,s.h)("div",{className:r},l?(0,s.h)("button",{className:(0,o.cx)("meridian-tag-control",i),"data-testid":"meridian--private--tag-control",onClick:()=>{t({open:!0})}},(0,s.h)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 36 36"},(0,s.h)("path",{d:"M26.19 25l-4.12-4.12a7.29 7.29 0 001.44-4.35 7.11 7.11 0 00-7-7.2 7.11 7.11 0 00-7 7.2 7.11 7.11 0 007 7.2 6.83 6.83 0 004.16-1.42l4.1 4.1A1 1 0 0026.19 25zm-14.68-8.49a5.11 5.11 0 015-5.2 5.11 5.11 0 015 5.2 5.11 5.11 0 01-5 5.2 5.11 5.11 0 01-5-5.2z"}))):null,a?(0,s.h)("button",{className:(0,o.cx)("meridian-floor-control",a&&l?n:i),"data-testid":"meridian--private--floor-control",onClick:()=>{e({open:!0})}},(0,s.h)("svg",{viewBox:"0 0 36 36"},(0,s.h)("path",{d:"M28.4 14.09a1.84 1.84 0 0 0-.62-.39l-8.48-3.33a3.61 3.61 0 0 0-1.3-.22 3.56 3.56 0 0 0-1.3.22L8.22 13.7a1.83 1.83 0 0 0-.62.39 1.24 1.24 0 0 0 0 1.82 1.85 1.85 0 0 0 .62.39l8.48 3.34a3.92 3.92 0 0 0 2.59 0l8.48-3.34a1.86 1.86 0 0 0 .62-.39 1.24 1.24 0 0 0 0-1.82m-9.83 3.68a2 2 0 0 1-1.13 0l-7-2.77 7-2.77a2 2 0 0 1 1.13 0l7 2.77zm9.83 2.32a1.24 1.24 0 0 1 0 1.82 1.86 1.86 0 0 1-.62.39l-8.47 3.33a3.92 3.92 0 0 1-2.59 0L8.22 22.3a1.85 1.85 0 0 1-.62-.39 1.24 1.24 0 0 1 0-1.82 1.83 1.83 0 0 1 .62-.39L10 19l2.73 1.08-2.34.92 7 2.77a2 2 0 0 0 1.13 0l7-2.77-2.35-.92L26 19l1.79.7a1.84 1.84 0 0 1 .62.39"}))):null)},6670:(e,t,a)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const s=a(5403),o=a(2785),r=a(7746),i=(0,o.css)(o.mixins.buttonReset,o.mixins.rounded,o.mixins.overflowEllipses,{label:"floor-control",background:"rgba(0, 0, 0, 0.4)",color:"white",textShadow:"0 0 2px black",position:"absolute",zIndex:1,bottom:15,left:"50%",transform:"translate(-50%, 0)",textAlign:"center",maxWidth:300,padding:"8px 16px",border:0,fontSize:16});t.default=({buildingName:e,floorName:t})=>(0,s.h)("div",{className:(0,o.cx)("meridian-floor-label",i),"data-testid":"meridian--private--floor-label"},e||r.uiText.unnamedBuilding," ",r.uiText.enDash," ",t)},4144:function(e,t,a){"use strict";var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=s(a(3669)),r=a(5403),i=s(a(8828)),n=s(a(6933)),l=a(2785),c=s(a(7866)),d=a(7746);class p extends r.Component{constructor(){super(...arguments),this.state={searchFilter:""},this.searchInputRef=(0,r.createRef)()}componentDidMount(){this.searchInputRef.current&&this.searchInputRef.current.focus()}render(){const{currentFloorID:e,toggleFloorOverlay:t,selectFloorByID:a,floors:s,language:p}=this.props,k=c.default.lookup("search_floors",p),b=c.default.lookup("no_results_found",p),{searchFilter:y}=this.state,_=(0,d.createSearchMatcher)(y),x=s.filter((e=>e.published&&(_(e.name||"")||_(e.group_name||d.uiText.unnamedBuilding)))),O=(0,o.default)(x,"group_name"),w=Object.keys(O).sort();""===w[0]&&(w.push(w[0]),w.shift());for(const e of w)O[e].sort(((e,t)=>Math.sign(e.level-t.level))),this.props.sortDescending&&O[e].reverse();return(0,r.h)(i.default,{position:"right",onCloseClicked:()=>{t({open:!1})}},(0,r.h)(n.default,{placeholder:k,value:y,onChange:e=>{this.setState({searchFilter:e})}}),0===w.length?(0,r.h)("div",{className:g},b,"."):(0,r.h)("div",{className:u,"data-testid":"meridian--private--floors-list"},w.map((s=>(0,r.h)("div",{key:s},(0,r.h)("div",{className:h},s||d.uiText.unnamedBuilding),O[s].map((s=>(0,r.h)("button",{key:s.name,onClick:()=>{a(s.id),t({open:!1})},className:(0,l.cx)(m,s.id===e?f:void 0),"data-testid":s.id===e?"meridian--private--current-floor":"meridian--private--floor"},s.name,s.id===e?(0,r.h)("svg",{viewBox:"0 0 10 7",className:v},(0,r.h)("path",{d:"M3.9 7C3.7 7 3.4 6.9 3.2 6.7L0.3 3.8C-0.1 3.4 -0.1 2.8 0.3 2.4C0.7 2 1.3 2 1.7 2.4L3.9 4.6L8.2 0.3C8.6 -0.1 9.2 -0.1 9.6 0.3C10 0.7 10 1.3 9.6 1.7L4.6 6.7C4.4 6.9 4.2 7 3.9 7Z"})):null))))))))}}const h=(0,l.css)({label:"overlay-building-name",textTransform:"uppercase",fontWeight:"bold",top:0,position:"sticky",color:l.theme.brandBlue,background:l.theme.almostWhite,fontSize:l.theme.fontSizeSmaller,padding:10}),u=(0,l.css)({label:"floors-list",overflowY:"auto"}),m=(0,l.css)(l.mixins.buttonReset,l.mixins.focusRingMenuItem,l.mixins.buttonHoverActive,{label:"overlay-floor-button",padding:10,paddingLeft:20,display:"block",width:"100%",textAlign:"left"}),g=(0,l.css)({label:"overlay-floor-list-empty",padding:"60px 20px",textAlign:"center",fontSize:l.theme.fontSizeBigger,color:l.theme.textColorBluish}),f=(0,l.css)({label:"overlay-floor-button-curent-floor",color:l.theme.brandBrightBlue,fill:"currentcolor"}),v=(0,l.css)({label:"floor-checkmark",verticalAlign:"middle",marginLeft:"0.5em",width:"0.8em",height:"0.8em"});t.default=p},4145:(e,t,a)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const s=a(5403);t.default=()=>(0,s.h)("svg",{viewBox:"0 0 36 36"},(0,s.h)("path",{d:"M19.41 18l6.36-6.36a1 1 0 0 0-1.41-1.41L18 16.59l-6.36-6.36a1 1 0 0 0-1.41 1.41L16.59 18l-6.36 6.36a1 1 0 1 0 1.41 1.41L18 19.41l6.36 6.36a1 1 0 0 0 1.41-1.41z"}))},2930:(e,t,a)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const s=a(5403),o=a(2785),r=(0,o.keyframes)({from:{transform:"rotate(0turn)"},to:{transform:"rotate(1turn)"}}),i=(0,o.css)({label:"spinner",width:22,height:22,margin:"0 auto",border:"2px rgba(227, 227, 227, 0.9) solid",borderTop:"2px #2e7cbe solid",borderRadius:"50%",animation:`${r} 600ms infinite linear`});t.default=()=>(0,s.h)("div",{className:i})},9594:(e,t,a)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const s=a(5403),o=a(2785),r=(0,o.css)({label:"label-list",fontSize:"var(--meridian-labelList-fontSize)",marginTop:8,marginLeft:3,textAlign:"var(--meridian-labelList-textAlign)",flex:"1 1 auto"}),i=(0,o.css)(o.mixins.maxRounded,{label:"label",display:"inline-block",padding:"3px 8px",marginBottom:8,marginRight:8,background:"rgba(0, 0, 0, 0.035)",border:"1px solid rgba(0, 0, 0, 0.05)",color:"#3b3b3b"});t.default=({align:e,labels:t,fontSize:a=o.theme.fontSize})=>0===t.length?null:(0,s.h)("div",{className:r,style:{"--meridian-labelList-fontSize":a,"--meridian-labelList-textAlign":e}},t.map(((e,t)=>(0,s.h)("div",{key:t,className:i},e))))},4905:function(e,t,a){"use strict";var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=a(5403),r=a(2785),i=s(a(2930)),n=(0,r.css)({label:"loading",position:"absolute",zIndex:1,width:30,left:0,top:"45%",right:0,overflow:"hidden",margin:"0 auto",color:r.theme.textColor,textAlign:"center",pointerEvents:"none"});t.default=()=>(0,o.h)("div",{className:n},(0,o.h)(i.default,null))},529:function(e,t,a){"use strict";var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=a(4870);a(3755);const r=a(5491),i=a(5403),n=s(a(78)),l=s(a(324)),c=s(a(8812)),d=s(a(3169)),p=s(a(6670)),h=s(a(4144)),u=s(a(4905)),m=s(a(6805)),g=s(a(7387)),f=a(2785),v=s(a(8901)),k=s(a(2150)),b=a(7746),y=s(a(5481)),_=s(a(9862));class x extends i.Component{constructor(){super(...arguments),this.state={mapImageURL:void 0,isFloorOverlayOpen:!1,isAssetListOverlayOpen:!1,isMapMarkerOverlayOpen:!1,isErrorOverlayOpen:!1,isPanningOrZooming:!1,loadingSources:{},errors:[],mapTransform:"",mapZoomFactor:.5,floors:[],allPlacemarkData:[],svgURL:void 0,tagsConnection:void 0,tagsStatus:"Connecting",selectedItem:void 0,areTagsLoading:Boolean(this.props.showSearchControl&&this.props.loadTags),arePlacemarksLoading:Boolean(this.props.showSearchControl&&this.props.loadPlacemarks),allTagData:[]},this.isMounted=!1,this.isLoaded=!1,this.fetchAllTagsInitialized=!1,this.fetchAllPlacemarksInitialized=!1,this.mapRef=(0,i.createRef)(),this.mapContainerRef=(0,i.createRef)(),this.mapImageref=(0,i.createRef)(),this.debouncedResizeFn=(0,_.default)(this.handleResize.bind(this),250),this.onTagsInit=()=>{this.props.showSearchControl&&this.props.loadTags&&this.fetchAllTags()},this.onPlacemarksInit=()=>{this.props.showSearchControl&&this.props.loadPlacemarks&&this.fetchAllPlacemarks()},this.updateMap=e=>{const{update:t}=this.props;t(e)},this.toggleAssetListOverlay=({open:e})=>{this.isMounted&&this.setState({isAssetListOverlayOpen:e})},this.toggleFloorOverlay=({open:e})=>{this.isMounted&&this.setState({isFloorOverlayOpen:e})},this.toggleErrorOverlay=({open:e,message:t="Unknown"})=>{this.isMounted&&(e?this.setState((e=>({errors:[...e.errors,t],isErrorOverlayOpen:!0}))):this.setState({isErrorOverlayOpen:!1,errors:[]}))},this.toggleLoadingSpinner=({show:e,source:t="unknown"})=>{this.isMounted&&this.setState((a=>({loadingSources:Object.assign(Object.assign({},a.loadingSources),{[t]:e})})))},this.toggleDetailsOverlay=({open:e,selectedItem:t})=>{this.setState({isMapMarkerOverlayOpen:e,selectedItem:t})},this.selectFloorByID=e=>{if(this.updateMap({floorID:e,annotations:[],overlays:[]}),this.props.onFloorChange){const t=this.state.floors.find((t=>t.id===e));t&&(0,b.asyncClientCall)(this.props.onFloorChange,t)}},this.zoomToPoint=(e,t,a)=>{if(!this.mapSelection)throw new Error("mapSelection is not defined");if(!this.zoomD3)throw new Error("zoomD3 is not defined");const{width:s,height:o}=this.getMapRefSize(),i=r.zoomIdentity.translate(-a*e+s/2,-a*t+o/2).scale(a);this.mapSelection.transition().duration(250).call(this.zoomD3.transform,i)},this.zoomBy=e=>{if(!this.mapSelection)throw new Error("mapSelection is not defined");if(!this.zoomD3)throw new Error("zoomD3 is not defined");this.mapSelection.transition().duration(250).call(this.zoomD3.scaleBy,e)},this.zoomIn=()=>{this.zoomBy(1.5)},this.zoomOut=()=>{this.zoomBy(.5)},this.onClick=e=>{var t,a,s;const o=e.target instanceof Element&&((null===(a=null===(t=this.mapRef.current)||void 0===t?void 0:t.isEqualNode)||void 0===a?void 0:a.call(t,e.target))||(null===(s=this.mapImageref.current)||void 0===s?void 0:s.isEqualNode(e.target)));this.props.onMapClick&&o?(0,b.asyncClientCall)(this.props.onMapClick):o&&this.toggleDetailsOverlay({open:!1})},this.onTagClick=async e=>{let t=!0;const{onTagClick:a=(()=>{})}=this.props;try{const s={preventDefault:()=>{t=!1}};await a(e,s)}catch(e){(0,b.logError)(e)}t&&this.toggleDetailsOverlay({open:!0,selectedItem:e})},this.onPlacemarkClick=async e=>{let t=!0;const{onPlacemarkClick:a=(()=>{})}=this.props;try{const s={preventDefault:()=>{t=!1}};await a(e,s)}catch(e){(0,b.logError)(e)}t&&this.toggleDetailsOverlay({open:!0,selectedItem:e})}}componentDidMount(){this.validateFloorID(),this.isMounted=!0;const{api:e,locationID:t}=this.props;(0,b.isEnvOptions)(e.environment)?t?this.loadData():this.toggleErrorOverlay({open:!0,message:'createMap error: "options.locationID" is required'}):this.toggleErrorOverlay({open:!0,message:`API error: "${e.environment}" is not a valid environment`}),this.intervalAutoDestroy=setInterval((()=>{this.isMounted&&this.mapContainerRef.current&&!this.mapContainerRef.current.isConnected&&this.props.destroy()}),1e3),window.addEventListener("resize",this.debouncedResizeFn)}async loadData(){await this.initializeFloors()}componentDidUpdate(e){if(this.props.locationID!==e.locationID)return this.toggleAssetListOverlay({open:!1}),this.toggleErrorOverlay({open:!1}),this.toggleDetailsOverlay({open:!1}),this.toggleFloorOverlay({open:!1}),this.zoomToDefault(),this.freeMapImageURL(),this.setState({mapImageURL:void 0,allPlacemarkData:[]}),void this.loadData();this.props.loadTags&&this.props.showSearchControl&&!e.showSearchControl&&this.fetchAllTags({forceUpdate:!0}),e.floorID!==this.props.floorID?(this.zoomToDefault(),this.validateFloorID(),this.freeMapImageURL(),this.setState({mapImageURL:void 0}),this.fetchMapImageURL()):this.props.loadPlacemarks&&this.props.showSearchControl&&!e.showSearchControl&&this.fetchAllPlacemarks({forceUpdate:!0})}componentWillUnmount(){this.isMounted=!1,this.fetchAllTagsTimeout&&clearTimeout(this.fetchAllTagsTimeout),this.fetchAllPlacemarksTimeout&&clearTimeout(this.fetchAllPlacemarksTimeout),this.freeMapImageURL(),clearInterval(this.intervalAutoDestroy),window.removeEventListener("resize",this.debouncedResizeFn)}handleResize(){const e=this.mapContainerSize,t=this.getMapRefSize(),{width:a,height:s}=e||{},{width:o,height:r}=t;a===o&&s===r||(this.mapContainerSize=t,this.zoomToDefault())}freeMapImageURL(){this.state.mapImageURL&&URL.revokeObjectURL(this.state.mapImageURL)}async fetchMapImageURL(){const{api:e,locationID:t,floorID:a}=this.props,s=this.getMapData();if(!s)return;const o=await e.fetchSVG(s.svg_url);this.isMounted&&(a===this.props.floorID&&t===this.props.locationID?this.setState({mapImageURL:o}):URL.revokeObjectURL(o))}validateFloorID(){const{floorID:e}=this.props;e||this.toggleErrorOverlay({open:!0,message:'createMap error: "options.floorID" is required'})}fetchAllTags(e={forceUpdate:!1}){if(this.fetchAllTagsInitialized&&!e.forceUpdate)return;const t=async()=>{this.fetchAllTagsInitialized=!0;try{this.fetchAllTagsTimeout&&clearTimeout(this.fetchAllTagsTimeout);const{api:e,locationID:a}=this.props;this.setState({areTagsLoading:!0});let s=[];try{s=await e.fetchTagsByLocation(a)}catch(e){return void(0,b.logError)("Failed to load tags; use `loadTags: false` if this location does not have the tags paid feature")}if(!this.isMounted)return;if(a!==this.props.locationID||!this.props.loadTags)return;this.setState({allTagData:s}),this.fetchAllTagsTimeout=setTimeout(t,3e5)}finally{this.setState({areTagsLoading:!1})}};this.props.loadTags&&t()}showLoadingSpinner(){const{loadingSources:e}=this.state,t=Object.keys(e).some((t=>!0===e[t]));return this.props.onLoadingStateChange&&this.isLoaded!==t&&(this.isLoaded=t,(0,b.asyncClientCall)(this.props.onLoadingStateChange,t)),t}fetchAllPlacemarks(e={forceUpdate:!1}){if(this.fetchAllPlacemarksInitialized&&!e.forceUpdate)return;const t=async()=>{this.fetchAllPlacemarksInitialized=!0;try{this.fetchAllPlacemarksTimeout&&clearTimeout(this.fetchAllPlacemarksTimeout);const{locationID:e,api:a}=this.props;let s=[];this.setState({arePlacemarksLoading:!0});try{if(this.props.loadPlacemarks&&(s=await a.fetchPlacemarksByLocation(e)),!this.isMounted)return;this.setState({allPlacemarkData:s})}catch(e){return void(0,b.logError)("Failed to load placemark data")}this.fetchAllPlacemarksTimeout=setTimeout(t,6e5)}finally{this.setState({arePlacemarksLoading:!1})}};this.props.loadPlacemarks&&t()}async getFloors(){const{locationID:e,api:t}=this.props;let a;try{if(a=await t.fetchFloorsByLocation(e),!this.isMounted)return[]}catch(e){e.response&&e.response.data&&e.response.data.detail&&this.toggleErrorOverlay({open:!0,message:e.response.data.detail})}return a&&a.length||this.toggleErrorOverlay({open:!0,message:"Floor data could not be found."}),a}getMapData(){const{floorID:e}=this.props,{floors:t}=this.state;return t.find((t=>t.id===e))}async initializeFloors(){this.toggleLoadingSpinner({show:!0,source:"map"});const{onFloorsUpdate:e=(()=>{}),locationID:t}=this.props,a=await this.getFloors();this.isMounted&&t===this.props.locationID&&(a&&a.length>0&&this.setState({floors:a},(()=>{this.zoomD3||this.addZoomBehavior(),this.zoomToDefault(),(0,b.asyncClientCall)(e,a),this.fetchMapImageURL()})),this.toggleLoadingSpinner({show:!1,source:"map"}))}addZoomBehavior(){if(this.mapRef.current){const e=()=>{if(!this.mapRef.current)return;const{k:e,x:t,y:a}=(0,r.zoomTransform)(this.mapRef.current),s=`translate(${t}px, ${a}px) scale(${e})`;this.setState({mapTransform:s,mapZoomFactor:e,isPanningOrZooming:!0})},t=()=>{this.setState({isPanningOrZooming:!1})};this.zoomD3=(0,r.zoom)().filter((e=>!this.props.shouldMapPanZoom||this.props.shouldMapPanZoom(e))).duration(250).on("zoom",e).on("end.zoom",t),this.mapSelection=(0,o.select)(this.mapRef.current),this.mapSelection.call(this.zoomD3)}}resetExtents(){var e;null===(e=this.zoomD3)||void 0===e||e.scaleExtent([0,1/0]).translateExtent([[-1/0,-1/0],[1/0,1/0]])}setExtents(e,t){var a;const s=this.props.minZoomLevel,o=this.props.maxZoomLevel;if(this.mapRef.current){const{k:i}=(0,r.zoomTransform)(this.mapRef.current),n=this.getMapRefSize(),l=n.width/i/1.5,c=n.height/i/1.5,d=s&&"number"==typeof s?s:i,p=o&&"number"==typeof o?o:8;null===(a=this.zoomD3)||void 0===a||a.scaleExtent([d,p]).translateExtent([[-l,-c],[e+l,t+c]])}}zoomToDefault(){const e=this.getMapData(),t=this.getMapRefSize(),a=null==e?void 0:e.width,s=null==e?void 0:e.height;this.mapContainerSize=t,a&&s&&this.mapSelection&&this.zoomD3&&(this.resetExtents(),this.mapSelection.call(this.zoomD3.translateTo,a/2,s/2),this.mapSelection.call(this.zoomD3.scaleTo,Math.min(.7*t.width/a,.7*t.height/s)),this.setExtents(a,s))}getMapRefSize(){if(!this.mapRef.current)throw new Error("mapRef is not defined");return{width:this.mapRef.current.clientWidth,height:this.mapRef.current.clientHeight}}centerMap(){const e=this.getMapData(),t=null==e?void 0:e.width,a=null==e?void 0:e.height;t&&a&&this.mapSelection&&this.zoomD3&&this.mapSelection.call(this.zoomD3.translateTo,t/2,a/2)}shouldShowFloors(){const{showFloorsControl:e=!0}=this.props,{floors:t}=this.state;return e&&t.length>1}renderFloorLabel(){const e=this.getMapData();return e?(0,i.h)(p.default,{buildingName:e.group_name,floorName:e.name}):null}renderFloorOverlay(){const{floorID:e,api:t}=this.props,{isFloorOverlayOpen:a,floors:s}=this.state;return a?(0,i.h)(h.default,{currentFloorID:e,floors:s,sortDescending:Boolean(this.props.floorsControlSortDescending),toggleFloorOverlay:this.toggleFloorOverlay,selectFloorByID:this.selectFloorByID,language:t.language}):null}renderAssetListOverlay(){var e;const{floorID:t,loadTags:a,loadPlacemarks:s,tags:o,placemarks:r,api:n}=this.props,{isAssetListOverlayOpen:l,floors:c,allTagData:d,areTagsLoading:p,arePlacemarksLoading:h,allPlacemarkData:u}=this.state;return l&&Boolean(s||a)?(0,i.h)(k.default,{onTagClick:this.onTagClick,onPlacemarkClick:this.onPlacemarkClick,showControlTags:Boolean(null!==(e=null==o?void 0:o.showControlTags)&&void 0!==e&&e),floors:c,tagsLoading:p,placemarksLoading:h,tags:d,tagOptions:o,placemarkOptions:r,updateMap:this.updateMap,currentFloorID:t,toggleAssetListOverlay:this.toggleAssetListOverlay,showTags:Boolean(a),showPlacemarks:Boolean(s),placemarks:u,language:n.language}):null}renderDetailsOverlay(){const{isMapMarkerOverlayOpen:e,selectedItem:t}=this.state;return e&&t?(0,i.h)(l.default,{toggleDetailsOverlay:this.toggleDetailsOverlay,kind:"mac"in t?"tag":"placemark",item:t}):null}renderLoadingSpinner(){return this.showLoadingSpinner()?(0,i.h)(u.default,null):null}renderErrorOverlay(){return this.state.isErrorOverlayOpen?(0,i.h)(c.default,{toggleErrorOverlay:this.toggleErrorOverlay,messages:this.state.errors}):null}render(){const e=this.getMapData(),{mapImageURL:t,selectedItem:a,mapTransform:s,mapZoomFactor:o,isPanningOrZooming:r,errors:l}=this.state,{locationID:c,floorID:p,api:h,tags:u,placemarks:k,overlays:b=[],annotations:_=[],width:x="",height:C="",onTagsUpdate:P,onPlacemarksUpdate:S,showSearchControl:D,loadPlacemarks:I,loadTags:M}=this.props;return(0,i.h)("div",{className:(0,f.cx)("meridian-map-container",O),style:{width:x,height:C},"data-testid":"meridian--private--map-container",ref:e=>{this.mapContainerRef.current=e}},(0,i.h)(y.default,{onZoomIn:this.zoomIn,onZoomOut:this.zoomOut}),this.renderErrorOverlay(),this.renderDetailsOverlay(),this.renderFloorOverlay(),this.renderAssetListOverlay(),this.renderLoadingSpinner(),(0,i.h)(d.default,{showFloors:this.shouldShowFloors(),showSearch:Boolean(D&&(I||M)),toggleFloorOverlay:this.toggleFloorOverlay,toggleAssetListOverlay:this.toggleAssetListOverlay}),this.renderFloorLabel(),(0,i.h)("div",{ref:e=>{this.mapRef.current=e},className:(0,f.cx)("meridian-map-background",w),onClick:this.onClick,style:{width:x,height:C}},(0,i.h)("div",{style:{position:"relative",width:0,height:0,transform:s,transformOrigin:"0 0 0"}},(0,i.h)("img",{src:t,ref:this.mapImageref}),0===l.length&&e?(0,i.h)(i.Fragment,null,(0,i.h)(m.default,{mapZoomFactor:o,overlays:b}),this.props.loadPlacemarks?(0,i.h)(g.default,{selectedItem:a,isPanningOrZooming:r,mapZoomFactor:o,locationID:c,floorID:p,api:h,placemarkOptions:k,onPlacemarkClick:this.onPlacemarkClick,onUpdate:S,toggleLoadingSpinner:this.toggleLoadingSpinner,onInit:()=>{this.onPlacemarksInit()}}):null,this.props.loadTags?(0,i.h)(v.default,{selectedItem:a,isPanningOrZooming:r,mapZoomFactor:o,locationID:c,floorID:p,api:h,tagOptions:u,onTagClick:this.onTagClick,onUpdate:P,toggleLoadingSpinner:this.toggleLoadingSpinner,onInit:()=>{this.onTagsInit()}}):null,(0,i.h)(n.default,{mapZoomFactor:o,annotations:_})):null)))}}x.defaultProps={loadTags:!0,loadPlacemarks:!0,showSearchControl:!0,showFloorsControl:!0,floorsControlSortDescending:!1,shouldMapPanZoom:()=>!0,width:"100%",height:"400px",placemarks:{},tags:{},overlays:[],annotations:[],onTagsUpdate:()=>{},onFloorChange:()=>{},onLoadingStateChange:()=>{},onFloorsUpdate:()=>{}};const O=(0,f.css)({label:"map-container",display:"block",position:"relative",borderRadius:"inherit",background:"#fafafa",color:"#000",fontFamily:"inherit",textAlign:"left"}),w=(0,f.css)({label:"map-outer",borderRadius:"inherit",display:"block",overflow:"hidden"});t.default=x},8828:function(e,t,a){"use strict";var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=a(5403),r=s(a(4145)),i=a(2785),n=(0,i.css)(i.mixins.shadow,i.mixins.rounded,{label:"details-overlay",overflow:"hidden",display:"flex",flexDirection:"column",background:i.theme.white,color:i.theme.textColor,fill:"#000",position:"absolute",margin:0,left:15,top:15,right:15,maxHeight:600,zIndex:2,maxWidth:400}),l=(0,i.css)(n,{marginRight:"auto"}),c=(0,i.css)(n,{marginLeft:"auto"}),d=(0,i.css)(i.mixins.buttonReset,i.mixins.buttonHoverActive,i.mixins.focusRing,{label:"details-overlay-close",cursor:"pointer",position:"absolute",zIndex:2,top:10,right:10,padding:4,width:32,height:32,fontSize:11,textAlign:"center",background:i.theme.white,color:i.theme.textColor,borderRadius:"100%",fontWeight:"bold",boxShadow:"0 0 2px rgba(0, 0, 0, 0.4)"});t.default=({position:e,onCloseClicked:t,children:a})=>(0,o.h)("div",{className:(0,i.cx)("meridian-details-overlay","left"===e?l:c),"data-testid":"meridian--private--map-overlay"},(0,o.h)("button",{className:d,onClick:t,"data-testid":"meridian--private--close-overlay"},(0,o.h)(r.default,null)),a)},7096:function(e,t,a){"use strict";var s=this&&this.__rest||function(e,t){var a={};for(var s in e)Object.prototype.hasOwnProperty.call(e,s)&&t.indexOf(s)<0&&(a[s]=e[s]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(s=Object.getOwnPropertySymbols(e);o{var{defs:t=!1,id:a,className:i,style:n={},cx:l,cy:c,r:d,pathLength:p,fill:h="black",fillOpacity:u="1",stroke:m="none",strokeWidth:g=4,strokeLineJoin:f,strokeLineCap:v,strokeDasharray:k,strokeDashoffset:b,strokeOpacity:y,animate:_={},animateMotion:x={},mpath:O,data:w={},onClick:C,mapZoomFactor:P}=e,S=s(e,["defs","id","className","style","cx","cy","r","pathLength","fill","fillOpacity","stroke","strokeWidth","strokeLineJoin","strokeLineCap","strokeDasharray","strokeDashoffset","strokeOpacity","animate","animateMotion","mpath","data","onClick","mapZoomFactor"]);const D=1/P;let I=null,M=null;const T=Object.assign({transform:`scale(${D})`},n);Object.keys(x).length&&(M=O?(0,o.h)("animateMotion",Object.assign({},x),(0,o.h)("mpath",{xlinkHref:`#${O}`})):(0,o.h)("animateMotion",Object.assign({},x))),Object.keys(_).length&&(I=(0,o.h)("animate",Object.assign({},_)));const L=(0,o.h)("circle",Object.assign({id:a,className:i,style:T,cx:l,cy:c,r:d,"path-length":p,fill:h,"fill-opacity":u,stroke:m,"stroke-width":g/P,"stroke-linejoin":f,"stroke-linecap":v,"stroke-dasharray":k,"stroke-dashoffset":b,"stroke-opacity":y,onClick:C?()=>(0,r.asyncClientCall)(C,w):void 0,cursor:C?"pointer":void 0,"pointer-events":C?"all":void 0},S),I,M);return t?(0,o.h)("defs",null,L):L};i.displayName="OverlayCircle",t.default=i},2865:function(e,t,a){"use strict";var s=this&&this.__rest||function(e,t){var a={};for(var s in e)Object.prototype.hasOwnProperty.call(e,s)&&t.indexOf(s)<0&&(a[s]=e[s]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(s=Object.getOwnPropertySymbols(e);o{var{defs:t=!1,id:a,className:i,style:n={},width:l,height:c,href:d,x:p,y:h,animate:u={},animateMotion:m={},mpath:g,mapZoomFactor:f,onClick:v,data:k={}}=e,b=s(e,["defs","id","className","style","width","height","href","x","y","animate","animateMotion","mpath","mapZoomFactor","onClick","data"]);const y=1/f;let _=null,x=null;const O=Object.assign({transform:`translate(-${l/f/2}px, -${c/f/2}px) scale(${y})`},n);Object.keys(m).length&&(x=g?(0,o.h)("animateMotion",Object.assign({},m),(0,o.h)("mpath",{xlinkHref:`#${g}`})):(0,o.h)("animateMotion",Object.assign({},m))),Object.keys(u).length&&(_=(0,o.h)("animate",Object.assign({},u)));const w=(0,o.h)("image",Object.assign({id:a,className:i,style:O,width:l,height:c,href:d,x:p,y:h,onClick:v?()=>(0,r.asyncClientCall)(v,k):void 0,cursor:v?"pointer":void 0,"pointer-events":v?"all":void 0},b),_,x);return t?(0,o.h)("defs",null,w):w};i.displayName="OverlayImage",t.default=i},6805:function(e,t,a){"use strict";var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=a(5403),r=s(a(7096)),i=s(a(2865)),n=s(a(2578)),l=s(a(3861)),c=s(a(3496)),d=s(a(4012)),p=s(a(9159)),h=(0,a(2785).css)({label:"overlay-layer",position:"absolute",overflow:"visible",top:0,left:0,right:0,bottom:0});t.default=({mapZoomFactor:e,overlays:t})=>(0,o.h)("svg",{className:h,"data-testid":"meridian--private--overlay-layer"},t.map(((t,a)=>{switch(t.type){case"polygon":return(0,o.h)(c.default,Object.assign({key:a},t,{mapZoomFactor:e}));case"polyline":return(0,o.h)(d.default,Object.assign({key:a},t,{mapZoomFactor:e}));case"path":return(0,o.h)(l.default,Object.assign({key:a},t,{mapZoomFactor:e}));case"circle":return(0,o.h)(r.default,Object.assign({key:a},t,{mapZoomFactor:e}));case"image":return(0,o.h)(i.default,Object.assign({key:a},t,{mapZoomFactor:e}));case"marker":return(0,o.h)(n.default,Object.assign({key:a},t,{mapZoomFactor:e}));case"use":return(0,o.h)(p.default,Object.assign({key:a},t,{mapZoomFactor:e}));default:return null}})))},2578:function(e,t,a){"use strict";var s=this&&this.__rest||function(e,t){var a={};for(var s in e)Object.prototype.hasOwnProperty.call(e,s)&&t.indexOf(s)<0&&(a[s]=e[s]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(s=Object.getOwnPropertySymbols(e);o{var{defs:t=!0,id:a,className:r,style:i,viewBox:n,refX:l,refY:c,markerWidth:d,markerHeight:p,orient:h,fill:u="none",fillOpacity:m,stroke:g="hsl(207, 65%, 46%)",strokeWidth:f,strokeLineJoin:v,strokeLineCap:k,strokeDasharray:b,strokeDashoffset:y,strokeOpacity:_,shapeElementType:x,shapeElementAttributes:O,mapZoomFactor:w}=e,C=s(e,["defs","id","className","style","viewBox","refX","refY","markerWidth","markerHeight","orient","fill","fillOpacity","stroke","strokeWidth","strokeLineJoin","strokeLineCap","strokeDasharray","strokeDashoffset","strokeOpacity","shapeElementType","shapeElementAttributes","mapZoomFactor"]);let P=null;if(Object.keys(O).length&&x)switch(x){case"path":P=(0,o.h)("path",Object.assign({},O));break;case"polyline":P=(0,o.h)("polyline",Object.assign({},O));break;case"polygon":P=(0,o.h)("polygon",Object.assign({},O));break;case"circle":P=(0,o.h)("circle",Object.assign({},O));break;case"image":P=(0,o.h)("image",Object.assign({},O))}const S=(0,o.h)("marker",Object.assign({id:a,className:r,style:i,viewBox:n,refX:l,refY:c,markerWidth:d,markerHeight:p,orient:h,fill:u,"fill-opacity":m,stroke:g,"stroke-width":f,"stroke-linejoin":v,"stroke-linecap":k,"stroke-dasharray":b,"stroke-dashoffset":y,"stroke-opacity":_},C),P);return t?(0,o.h)("defs",null,S):S};r.displayName="OverlayMarker",t.default=r},3861:function(e,t,a){"use strict";var s=this&&this.__rest||function(e,t){var a={};for(var s in e)Object.prototype.hasOwnProperty.call(e,s)&&t.indexOf(s)<0&&(a[s]=e[s]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(s=Object.getOwnPropertySymbols(e);o{var{defs:t=!1,id:a,className:r,style:i={},shape:n,fill:l="none",stroke:c="hsl(207, 65%, 46%)",strokeWidth:d=2,strokeLineJoin:p="miter",strokeLineCap:h="butt",strokeDasharray:u,strokeDashoffset:m,strokeOpacity:g,markerStart:f,markerMid:v,markerEnd:k,animate:b={},animateMotion:y={},mpath:_,mapZoomFactor:x}=e,O=s(e,["defs","id","className","style","shape","fill","stroke","strokeWidth","strokeLineJoin","strokeLineCap","strokeDasharray","strokeDashoffset","strokeOpacity","markerStart","markerMid","markerEnd","animate","animateMotion","mpath","mapZoomFactor"]);let w=null,C=null;Object.keys(y).length&&(C=_?(0,o.h)("animateMotion",Object.assign({},y),(0,o.h)("mpath",{xlinkHref:`#${_}`})):(0,o.h)("animateMotion",Object.assign({},y))),Object.keys(b).length&&(w=(0,o.h)("animate",Object.assign({},b)));const P=(0,o.h)("path",Object.assign({id:a,className:r,style:i,d:n,fill:l,stroke:c,"stroke-width":d/x,"stroke-linejoin":p,"stroke-linecap":h,"stroke-dasharray":u,"stroke-dashoffset":m,"stroke-opacity":g,"marker-start":f,"marker-mid":v,"marker-end":k},O),w,C);return t?(0,o.h)("defs",null,P):P};r.displayName="OverlayPath",t.default=r},3496:function(e,t,a){"use strict";var s=this&&this.__rest||function(e,t){var a={};for(var s in e)Object.prototype.hasOwnProperty.call(e,s)&&t.indexOf(s)<0&&(a[s]=e[s]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(s=Object.getOwnPropertySymbols(e);o{var{defs:t=!1,id:a,className:i,style:n,points:l,fill:c="hsla(207, 65%, 46%, 0.5)",fillOpacity:d,stroke:p="hsl(207, 65%, 46%)",strokeWidth:h=2,strokeLineJoin:u="miter",strokeDasharray:m,strokeDashoffset:g,strokeOpacity:f,markerStart:v,markerMid:k,markerEnd:b,mapZoomFactor:y,animate:_={},data:x={},onClick:O}=e,w=s(e,["defs","id","className","style","points","fill","fillOpacity","stroke","strokeWidth","strokeLineJoin","strokeDasharray","strokeDashoffset","strokeOpacity","markerStart","markerMid","markerEnd","mapZoomFactor","animate","data","onClick"]);let C=null;Object.keys(_).length&&(C=(0,o.h)("animate",Object.assign({},_)));const P=(0,o.h)("polygon",Object.assign({id:a,className:i,style:n,points:l.join(" "),fill:c,"fill-opacity":d,stroke:p,"stroke-width":h/y,"stroke-linejoin":u,"stroke-dasharray":m,"stroke-dashoffset":g,"stroke-opacity":f,"marker-start":v,"marker-mid":k,"marker-end":b,onClick:O?()=>(0,r.asyncClientCall)(O,x):void 0,cursor:O?"pointer":void 0,"pointer-events":O?"all":void 0},w),C);return t?(0,o.h)("defs",null,P):P};i.displayName="OverlayPolygon",t.default=i},4012:function(e,t,a){"use strict";var s=this&&this.__rest||function(e,t){var a={};for(var s in e)Object.prototype.hasOwnProperty.call(e,s)&&t.indexOf(s)<0&&(a[s]=e[s]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(s=Object.getOwnPropertySymbols(e);o{var{defs:t=!1,id:a,className:r,style:i,points:n,fill:l="none",fillOpacity:c,stroke:d="hsl(207, 65%, 46%)",strokeWidth:p=2,strokeLineJoin:h="miter",strokeLineCap:u="butt",strokeDasharray:m,strokeDashoffset:g,strokeOpacity:f,markerStart:v,markerMid:k,markerEnd:b,animate:y={},mapZoomFactor:_}=e,x=s(e,["defs","id","className","style","points","fill","fillOpacity","stroke","strokeWidth","strokeLineJoin","strokeLineCap","strokeDasharray","strokeDashoffset","strokeOpacity","markerStart","markerMid","markerEnd","animate","mapZoomFactor"]);let O=null;Object.keys(y).length&&(O=(0,o.h)("animate",Object.assign({},y)));const w=(0,o.h)("polyline",Object.assign({id:a,className:r,style:i,points:n.join(" "),fill:l,"fill-opacity":c,stroke:d,"stroke-width":p/_,"stroke-linejoin":h,"stroke-linecap":u,"stroke-dasharray":m,"stroke-dashoffset":g,"stroke-opacity":f,"marker-start":v,"marker-mid":k,"marker-end":b},x),O);return t?(0,o.h)("defs",null,w):w};r.displayName="OverlayPolyline",t.default=r},6933:(e,t,a)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const s=a(5403),o=a(2785);class r extends s.Component{constructor(){super(...arguments),this.input=null}componentDidMount(){this.input&&this.input.focus()}render(){const{value:e,onChange:t,placeholder:a}=this.props;return(0,s.h)("div",{className:l},(0,s.h)("svg",{viewBox:"0 0 15 15",className:n},(0,s.h)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M13.2454 12.5741L9.55123 8.73956C10.2134 7.80246 10.5682 6.66953 10.5632 5.50756C10.5506 2.47441 8.18614 0.0175744 5.26286 5.57178e-05C3.8639 -0.00651157 2.52051 0.567712 1.53197 1.59481C0.543427 2.6219 -0.0081584 4.01655 9.12228e-05 5.46806C0.0127262 8.50148 2.37737 10.9585 5.30093 10.9761C6.42539 10.9811 7.52128 10.6088 8.42505 9.91456L8.4289 9.91156L12.1197 13.7431C12.3193 13.9603 12.6166 14.0482 12.8966 13.9728C13.1765 13.8973 13.395 13.6704 13.4675 13.3799C13.5399 13.0894 13.455 12.7809 13.2454 12.5741ZM5.29738 9.87819C2.95866 9.86423 1.06697 7.8988 1.05671 5.47219C1.0504 4.31114 1.4917 3.19564 2.28239 2.37403C3.07307 1.55242 4.14751 1.09287 5.26653 1.09769C7.60525 1.11165 9.49694 3.07709 9.5072 5.50369C9.51352 6.66475 9.07221 7.78024 8.28152 8.60186C7.49084 9.42347 6.4164 9.88302 5.29738 9.87819Z",transform:"translate(0.637695)"})),(0,s.h)("input",{"data-testid":"meridian--private--overlay-search",value:e,type:"text",placeholder:a,className:i,onInput:e=>{e.target instanceof HTMLInputElement&&t(e.target.value)},ref:e=>{this.input=e}}))}}const i=(0,o.css)(o.mixins.buttonReset,o.mixins.rounded,o.mixins.focusRing,{label:"overlay-search-input",flex:"1 1 auto",marginRight:42,fontSize:16,padding:"4px 8px",paddingLeft:30,background:o.theme.borderColor,color:o.theme.black,border:0,height:24,"&::placeholder":{color:o.theme.textColorBluishLightGrey}}),n=(0,o.css)({label:"overlay-search-icon",position:"absolute",zIndex:1,fill:o.theme.textColorBluish,width:16,height:16,top:18,left:18}),l=(0,o.css)({label:"overlay-search-bar",position:"relative",zIndex:1,flex:"0 0 auto",display:"flex",flexDirection:"column",padding:10,backgroundColor:"rgb(105, 146, 176)"});t.default=r},9159:function(e,t,a){"use strict";var s=this&&this.__rest||function(e,t){var a={};for(var s in e)Object.prototype.hasOwnProperty.call(e,s)&&t.indexOf(s)<0&&(a[s]=e[s]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(s=Object.getOwnPropertySymbols(e);o{var{defs:t=!1,id:a,className:r,style:i={},width:n,height:l,href:c,x:d,y:p,fill:h="none",stroke:u="hsl(207, 65%, 46%)",strokeWidth:m=2,strokeLineJoin:g="miter",strokeLineCap:f="butt",strokeDasharray:v,strokeDashoffset:k,strokeOpacity:b,animate:y={},animateMotion:_={},mpath:x,mapZoomFactor:O}=e,w=s(e,["defs","id","className","style","width","height","href","x","y","fill","stroke","strokeWidth","strokeLineJoin","strokeLineCap","strokeDasharray","strokeDashoffset","strokeOpacity","animate","animateMotion","mpath","mapZoomFactor"]);const C=1/O;let P=null,S=null;const D=Object.assign({transform:`translate(-${n/O/2}px, -${l/O/2}px) scale(${C})`},i);Object.keys(_).length&&(S=x?(0,o.h)("animateMotion",Object.assign({},_),(0,o.h)("mpath",{xlinkHref:`#${x}`})):(0,o.h)("animateMotion",Object.assign({},_))),Object.keys(y).length&&(P=(0,o.h)("animate",Object.assign({},y)));const I=(0,o.h)("use",Object.assign({id:a,className:r,style:D,width:n,height:l,href:c,x:d,y:p,fill:h,stroke:u,"stroke-width":m/O,"stroke-linejoin":g,"stroke-linecap":f,"stroke-dasharray":v,"stroke-dashoffset":k,"stroke-opacity":b},w),P,S);return t?(0,o.h)("defs",null,I):I};r.displayName="OverlayUse",t.default=r},2858:(e,t,a)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const s=a(5403),o=a(2785),r=a(7746),i=a(4221),n=(0,o.css)(o.mixins.textStrokeWhite,{label:"placemark-label",marginLeft:"50%",position:"absolute",minWidth:55,maxWidth:120,fontSize:14,textAlign:"center",paddingTop:4,color:"#222",userSelect:"none",transform:"translate(-50%, 0)",fontWeight:"bold",visibility:"hidden",pointerEvents:"none","[data-meridian-placemark-label-mode='always'] > &":{visibility:"visible"},"[data-meridian-placemark-label-mode='never'] > &":{visibility:"hidden"},"[data-meridian-placemark-label-mode='hover']:hover > &":{visibility:"visible",background:"#333",color:"#eee",textShadow:"none",borderRadius:4,padding:4,bottom:30,maxWidth:240,width:"max-content",boxShadow:"0 0 1px 1px white"},"[data-meridian-placemark-label-mode='zoom'] > &[data-meridian-placemark-label-zoom-visible='false']":{visibility:"hidden"},"[data-meridian-placemark-label-mode='zoom'] > &[data-meridian-placemark-label-zoom-visible='true']":{visibility:"visible"}}),l=(0,o.css)({label:"placemark-labelOnly",textTransform:"uppercase",color:"#666",fontSize:16}),c=(0,o.css)({label:"placemark",position:"absolute","&[data-meridian-placemark-label-mode='hover']:hover":{zIndex:1}}),d=(0,o.css)(o.mixins.buttonReset,o.mixins.pointer,o.mixins.focusNone,{label:"placemark-icon","--meridian-placemark-backgroundColor":o.theme.brandBlue,transition:"width 80ms ease, height 80ms ease",display:"block",width:24,height:24,borderRadius:"100%",backgroundColor:"var(--meridian-placemark-backgroundColor)",backgroundImage:"var(--meridian-placemark-iconURL)",backgroundPosition:"center",backgroundRepeat:"no-repeat",backgroundSize:"cover",border:"2px solid transparent",overflow:"hidden",zIndex:1}),p=(0,o.css)(d,{zIndex:3,width:30,height:30,boxShadow:"0 0 4px black"});t.default=({isSelected:e,data:t,mapZoomFactor:a,onClick:h=(()=>{}),disabled:u=!1,labelMode:m,labelZoomLevel:g=.2})=>{const f=`meridian-placemark-type-${t.type}`,v=!t.type||0===t.type.indexOf("label_"),k=1/a,b=`#${t.color}`,y=(0,i.placemarkIconURL)(t.type),_=(t.id||"").split("_").pop(),x=e?(0,o.cx)("meridian-placemark-icon-selected","meridian-placemark-icon",f,p):(0,o.cx)("meridian-placemark-icon",f,d),O={left:t.x,top:t.y,transform:`translate(-50%, -50%) scale(${k})`};return v?(0,s.h)("div",{className:(0,o.cx)("meridian-placemark",c),"data-meridian-placemark-label-mode":"zoom",style:O},(0,s.h)("div",{className:(0,o.cx)(n,l,"meridian-label","meridian-label-only"),"data-meridian-placemark-id":_,"data-meridian-placemark-label-zoom-visible":String(a>=g)},t.name)):(0,s.h)("div",{"data-meridian-placemark-label-mode":m,className:(0,o.cx)("meridian-placemark",c),style:O},(0,s.h)("button",{disabled:u,className:(0,o.cx)((0,r.getPlacemarkCategories)(t).map((e=>`meridian-placemark-category-${e=e.replace(/ /g,"-").replace(/[^a-z0-9_-]/i,"").toLowerCase()}`)),x),"data-meridian-placemark-id":_,style:{"--meridian-placemark-iconURL":`url('${y}')`,"--meridian-placemark-borderColor":b,"--meridian-placemark-backgroundColor":b},onClick:e=>{e.target instanceof HTMLElement&&e.target.focus(),h(t)},onMouseDown:e=>{e.stopPropagation()}}),(0,s.h)("div",{className:(0,o.cx)("meridian-label",n),"data-meridian-placemark-label-zoom-visible":String(a>=g)},t.name))}},7387:function(e,t,a){"use strict";var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=a(5403),r=s(a(2858)),i=a(7746);class n extends o.Component{constructor(){super(...arguments),this.state={fetchedPlacemarks:[]},this.isMounted=!1}componentDidMount(){this.isMounted=!0,this.fetchPlacemarks()}shouldComponentUpdate(e){return!(this.props.isPanningOrZooming&&e.mapZoomFactor===this.props.mapZoomFactor)}async componentDidUpdate(e,t){const{placemarkOptions:a,onUpdate:s}=this.props;if(e.floorID!==this.props.floorID&&await this.fetchPlacemarks(),s&&(t.fetchedPlacemarks!==this.state.fetchedPlacemarks||a!==e.placemarkOptions)){const e=this.state.fetchedPlacemarks;(0,i.asyncClientCall)(s,{allPlacemarks:e,filteredPlacemarks:this.getFilteredPlacemarks(e)})}}componentWillUnmount(){this.isMounted=!1}async fetchPlacemarks(){if(!this.isMounted)return;const{locationID:e,floorID:t,api:a,toggleLoadingSpinner:s,onInit:o}=this.props;s({show:!0,source:"placemarks"});const r=await a.fetchPlacemarksByFloor(e,t);this.setState({fetchedPlacemarks:r},(()=>{s({show:!1,source:"placemarks"})})),o()}getFilteredPlacemarks(e){var t;const{placemarkOptions:a,floorID:s}=this.props,o=null!==(t=null==a?void 0:a.filter)&&void 0!==t?t:()=>!0;return e.filter((e=>"exclusion_area"!==e.type&&e.map===s&&(!0===(null==a?void 0:a.showHiddenPlacemarks)||!e.hide_on_map))).filter(o)}render(){const e=this.getFilteredPlacemarks(this.state.fetchedPlacemarks);return(0,o.h)("div",{"data-testid":"meridian--private--placemark-layer"},e.map((e=>{var t,a,s,i;return(0,o.h)(r.default,{key:e.id,isSelected:!!this.props.selectedItem&&this.props.selectedItem.id===e.id,mapZoomFactor:this.props.mapZoomFactor,data:e,onClick:this.props.onPlacemarkClick,disabled:null===(t=this.props.placemarkOptions)||void 0===t?void 0:t.disabled,labelMode:null!==(s=null===(a=this.props.placemarkOptions)||void 0===a?void 0:a.labelMode)&&void 0!==s?s:"zoom",labelZoomLevel:null===(i=this.props.placemarkOptions)||void 0===i?void 0:i.labelZoomLevel})})))}}t.default=n},3996:function(e,t,a){"use strict";var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=a(5403),r=s(a(192)),i=a(2785),n=a(7746),l=(0,i.css)(i.mixins.shadow,i.mixins.buttonReset,i.mixins.pointer,i.mixins.focusNone,{label:"tag",width:48,height:48,borderRadius:"100%",position:"absolute",backgroundColor:"white",backgroundPosition:"center",backgroundRepeat:"no-repeat",backgroundSize:"cover",border:"2px solid white",overflow:"hidden",transition:"\n width 80ms ease,\n height 80ms ease,\n top 500ms ease,\n left 500ms ease\n ",zIndex:2}),c=(0,i.css)(l,{width:60,height:60,zIndex:3,boxShadow:"0 0 0 2px white, 0 0 4px black"});t.default=({isSelected:e,data:t,mapZoomFactor:a,onClick:s=(()=>{}),disabled:d=!1})=>{const p=1/a/(a<.2?1.4:1),h=t.image_url||r.default;return(0,o.h)("button",{"data-meridian-tag-id":t.id,disabled:d,className:(0,i.cx)("meridian-tag",l,(0,n.getTagLabels)(t).map((e=>`meridian-tag-label-${e=e.replace(/ /g,"-").replace(/[^a-z0-9_-]/i,"")}`)),e&&["meridian-tag-selected",c],(0,i.css)({backgroundImage:`url('${h}')`})),style:{left:t.x,top:t.y,transform:`translate(-50%, -50%) scale(${p})`},onClick:e=>{e.target instanceof HTMLElement&&e.target.focus(),s(t)},onMouseDown:e=>{e.stopPropagation()}})}},8901:function(e,t,a){"use strict";var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=s(a(1389)),r=a(5403),i=s(a(3996)),n=a(7746);class l extends r.Component{constructor(){var e;super(...arguments),this.state={tagsByMAC:{},connectionsByFloorID:{}},this.tagUpdates={},this.isMounted=!1,this.commitTagUpdates=(0,o.default)((()=>{this.isMounted&&this.setState((e=>({tagsByMAC:Object.assign(Object.assign({},e.tagsByMAC),this.tagUpdates)})),(()=>{this.tagUpdates={},this.onUpdate()}))}),(null===(e=this.props.tagOptions)||void 0===e?void 0:e.updateInterval)||5e3),this.onUpdate=()=>{const{tagsByMAC:e}=this.state,{onUpdate:t,tagOptions:a={}}=this.props,{filter:s=(()=>!0)}=a,o=this.filterControlTags(Object.values(e)),r=o.filter(s);t&&t({allTags:o,filteredTags:r})}}componentDidMount(){this.isMounted=!0;const{floorID:e}=this.props;e&&this.connect(e)}shouldComponentUpdate(e){return!(this.props.isPanningOrZooming&&e.mapZoomFactor===this.props.mapZoomFactor)}componentDidUpdate(e){e.floorID!==this.props.floorID&&(this.disconnect(e.floorID),this.connect(this.props.floorID))}componentWillUnmount(){this.isMounted=!1,this.disconnect(this.props.floorID)}connect(e){const{locationID:t,api:a,toggleLoadingSpinner:s,onInit:o}=this.props;s({show:!0,source:"tags"});const r=a.openStream({locationID:t,floorID:e,onInitialTags:t=>{e===this.props.floorID&&this.isMounted&&(this.setState({tagsByMAC:(0,n.keyBy)(t,(e=>e.mac))},(()=>{this.onUpdate(),this.props.toggleLoadingSpinner({show:!1,source:"tags"})})),o())},onTagUpdate:t=>{e===this.props.floorID&&this.isMounted&&(e!==t.map_id?this.setState((e=>({tagsByMAC:(0,n.objectWithoutKey)(e.tagsByMAC,t.mac)})),(()=>{this.onUpdate()})):(this.tagUpdates=Object.assign(Object.assign({},this.tagUpdates),{[t.mac]:t}),this.props.isPanningOrZooming||this.commitTagUpdates()))},onException:()=>{this.props.toggleLoadingSpinner({show:!1,source:"tags"})}});this.isMounted&&this.setState((t=>({connectionsByFloorID:Object.assign(Object.assign({},t.connectionsByFloorID),{[e]:r})})),(()=>{this.onUpdate()}))}disconnect(e){const t=this.state.connectionsByFloorID[e];t&&(this.props.toggleLoadingSpinner({show:!1,source:"tags"}),t.close()),this.tagUpdates={},this.isMounted&&this.setState((t=>({tagsByMAC:{},connectionsByFloorID:(0,n.objectWithoutKey)(t.connectionsByFloorID,e)})),(()=>{this.onUpdate()}))}filterControlTags(e){const{tagOptions:t}=this.props;return e.filter((e=>!0===(null==t?void 0:t.showControlTags)||!e.is_control_tag))}render(){const{selectedItem:e,tagOptions:t={},onTagClick:a,mapZoomFactor:s}=this.props,{tagsByMAC:o}=this.state,{filter:n=(()=>!0)}=t,l=Object.values(o);return(0,r.h)("div",{"data-testid":"meridian--private--tag-layer"},this.filterControlTags(l).filter(n).map((o=>(0,r.h)(i.default,{key:o.mac,isSelected:!!e&&e.mac===o.mac,mapZoomFactor:s,data:o,onClick:a,disabled:t.disabled}))))}}t.default=l},7866:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const a={en:{tags:"Tags",placemarks:"Placemarks",floors:"Floors",search:"Search",search_tags:"Search Tags",search_placemarks:"Search Placemarks",search_floors:"Search Floors",no_results_found:"No results found",close:"Close"},ar:{tags:"العلامات",placemarks:" العلامات الموضعية",floors:" الطوابق",search:" بحث",search_tags:" بحث عن علامات",search_placemarks:" بحث عن علامات موضعية",search_floors:" بحث عن طوابق",no_results_found:" لم يتم العثور على نتائج",close:"إغلاق"},ca:{tags:"Etiquetes",placemarks:"Marques de posició",floors:"Pisos",search:"Cerca",search_tags:"Cerca etiquetes",search_placemarks:"Cerca marcadors de posició",search_floors:"Cerca pisos",no_results_found:"Sense resultats",close:"Tanca"},es:{tags:"Etiquetas",placemarks:"Marcas de posición",floors:"Pisos",search:"Buscar",search_tags:"Buscar etiquetas",search_placemarks:"Buscar marcas de posición",search_floors:"Buscar pisos",no_results_found:"No se han encontrado resultados",close:"Cerrar"},cs:{tags:"Tagy",placemarks:"Značky míst",floors:"Patra",search:"Hledat",search_tags:"Hledat tagy",search_placemarks:"Hledat značky míst",search_floors:"Hledat patra",no_results_found:"Nebyly nalezeny žádné výsledky",close:"Zavřít"},de:{tags:"Stichworte",placemarks:"Ortsmarken",floors:"Etagen",search:"Suche",search_tags:"Such-Tags",search_placemarks:"In den Ortsmarken (Räumen, Sälen) suchen",search_floors:"In den Stockwerken suchen",no_results_found:"Keine Ergebnisse gefunden",close:"Schließen"},fr:{tags:"Mots clés",placemarks:"Repères",floors:"Étages",search:"Rechercher",search_tags:"Rechercher des mots clés",search_placemarks:"Rechercher des repères",search_floors:"Rechercher des étages",no_results_found:"Aucun résultat trouvé",close:"Fermer"},it:{tags:"Tag",placemarks:"Segnaposto",floors:"Piani",search:"Cerca",search_tags:"Cerca tag",search_placemarks:"Cerca segnaposto",search_floors:"Cerca piani",no_results_found:"Nessun risultato trovato",close:"Chiudi"},iw:{tags:"תגים",placemarks:"סימני מקום",floors:"קומות",search:"חפש",search_tags:"חפש תגיות",search_placemarks:"חפש סימני מקום",search_floors:"חפש קומות",no_results_found:"לא נמצאו תוצאות",close:"סגור"},ja:{tags:"タグ",placemarks:"目印",floors:"フロア",search:"探す",search_tags:"検索タグ",search_placemarks:"目印を検索する",search_floors:"フロアを検索する",no_results_found:"結果が見つからない",close:"近い"},ko:{tags:"태그",placemarks:"장소표시<",floors:"바닥",search:"검색",search_tags:"태그검색<",search_placemarks:"장소표시 검색<",search_floors:"층수검색<",no_results_found:"검색결과가 없습니다<",close:"닫기"},nl:{tags:"Tags",placemarks:"Plaatsaanduidingen",floors:"Verdiepingen",search:"Zoeken",search_tags:"Zoek tags",search_placemarks:"Zoek plaatsaanduidingen",search_floors:"Zoek verdiepingen",no_results_found:"Geen resultaten gevonden",close:"Sluiten"},no:{tags:"Tagger",placemarks:"Stedsmarkeringer",floors:"Gulv",search:"Søk",search_tags:"Søk i etiketter",search_placemarks:"Søk i stedsmarkeringer",search_floors:"Søk i etasjer",no_results_found:"Ingen resultater",close:"Lukk"},pt:{tags:"Tags",placemarks:"Marcadores",floors:"Andares",search:"Procurar",search_tags:"Tags de pesquisa",search_placemarks:"Pesquisar marcadores",search_floors:"Pesquisar andares",no_results_found:"Nenhum resultado encontrado",close:"Perto"},ru:{tags:"Taggar",placemarks:"Platsmärken",floors:"Golv",search:"Sök",search_tags:"Sök taggar",search_placemarks:"Sök efter platsmärken",search_floors:"Sök Golv",no_results_found:"Inga resultat funna",close:"Stänga"},sv:{tags:"Taggar",placemarks:"Platsmärken",floors:"Golv",search:"Sök",search_tags:"Sök taggar",search_placemarks:"Sök efter platsmärken",search_floors:"Sök Golv",no_results_found:"Inga resultat funna",close:"Stänga"},uk:{tags:"Теги",placemarks:"Мітки",floors:"Поверхи",search:"Пошук",search_tags:"Пошук тегів",search_placemarks:"Пошук міток",search_floors:"Пошук поверхів",no_results_found:"Нічого не знайдено",close:"Закрити"},vi:{tags:"Thẻ",placemarks:"Dấu vị trí",floors:"Tầng",search:"Tìm kiếm ",search_tags:"Thẻ tìm kiếm",search_placemarks:"Dấu vị trí tìm kiếm",search_floors:"Tầng tìm kiếm",no_results_found:"Không có kết quả nào được tìm thấy",close:"Đóng"},"zh-cn":{tags:"标签",placemarks:"地标",floors:"楼层",search:"搜索",search_tags:"搜索标签",search_placemarks:"搜索地标",search_floors:"搜索楼层",no_results_found:"未找到结果",close:"关闭"},"zh-tw":{tags:"標籤",placemarks:"地標",floors:"樓層",search:"搜尋",search_tags:"搜尋標籤",search_placemarks:"搜尋地標",search_floors:"搜尋樓層",no_results_found:"未找到結果",close:"關閉"}};t.default={lookup:function(e,t){var s,o,r;const i=t||(navigator.languages&&navigator.languages[0]||navigator.language||"en").toLowerCase(),n=null!==(s=i.split("-").shift())&&void 0!==s?s:"en",l=a;return(null===(o=null==l?void 0:l[i])||void 0===o?void 0:o[e])||(null===(r=null==l?void 0:l[n])||void 0===r?void 0:r[e])||l.en[e]||e}}},5481:(e,t,a)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const s=a(5403),o=a(2785),r=({onClick:e,dir:t})=>"in"===t?(0,s.h)("button",{className:(0,o.cx)("meridian-zoom-button","meridian-zoom-button-in",l),"data-testid":"meridian--private--zoom-button-in",onClick:e},(0,s.h)("svg",{viewBox:"0 0 36 36"},(0,s.h)("path",{d:"M26 17h-7v-7a1 1 0 0 0-2 0v7h-7a1 1 0 0 0 0 2h7v7a1 1 0 0 0 2 0v-7h7a1 1 0 0 0 0-2"}))):(0,s.h)("button",{className:(0,o.cx)("meridian-zoom-button","meridian-zoom-button-out",c),"data-testid":"meridian--private--zoom-button-out",onClick:e},(0,s.h)("svg",{viewBox:"0 0 36 36"},(0,s.h)("path",{d:"M26 19H10a1 1 0 0 1 0-2h16a1 1 0 0 1 0 2"}))),i=(0,o.css)(o.mixins.shadow,o.mixins.rounded,{position:"absolute",display:"flex",flexDirection:"column",zIndex:1,right:15,bottom:15}),n=(0,o.css)(o.mixins.buttonReset,o.mixins.focusRing,o.mixins.buttonHoverActive,o.mixins.rounded,{cursor:"pointer",padding:4,width:40,height:40,border:0,fontSize:20,fontWeight:200,fill:o.theme.brandBrightBlue,background:"white"}),l=(0,o.css)(n,{borderBottomLeftRadius:0,borderBottomRightRadius:0,borderBottom:`1px solid ${o.theme.buttonSeparatorColor}`}),c=(0,o.css)(n,{borderTopLeftRadius:0,borderTopRightRadius:0});t.default=({onZoomIn:e,onZoomOut:t})=>(0,s.h)("div",{className:(0,o.cx)("meridian-zoom-controls",i)},(0,s.h)(r,{onClick:e,dir:"in"}),(0,s.h)(r,{onClick:t,dir:"out"}))},5396:(e,t,a)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.sendAnalyticsCodeEvent=void 0;const s=a(4221),o=window.devicePixelRatio||1,r=window.screen,i=`${r.width*o}x${r.height*o}`;t.sendAnalyticsCodeEvent=async function(e){if("Cypress"in window)return;const{action:t,locationID:a,onTagsUpdate:o=!1,tagsFilter:r=!1,placemarksFilter:n=!1,internalUpdate:l=!1}=e,c={session_id:a,v:"1",app_name:"MeridianSDK",data_src:"app",app_version:s.version,uid:a,cid:a,hit_type:"event",event_category:"code",event_action:t,event_value:1,event_label:l?"internal":"external",tag_update:o?1:0,tags_filter:r?1:0,placemarks_filter:n?1:0,language:navigator.language,screen_res:i,anonymize_ip:1,user_agent:window.navigator.userAgent,z:Math.random().toString(36).substring(7)};fetch("https://www.google-analytics.com/mp/collect?measurement_id=G-GCT86YZLFE&api_secret=1v79k_rPSLyvvcHpzSDqFQ",{method:"POST",body:JSON.stringify({client_id:a,events:[{name:"page_event",params:Object.assign({},c)}]})})}},2785:function(e,t,a){"use strict";var s,o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.css=t.keyframes=t.cx=t.mixins=t.theme=void 0;const r=o(a(9918));t.theme={fontSizeSmallest:"12px",fontSizeSmaller:"14px",fontSize:"16px",fontSizeBigger:"18px",black:"#000",white:"#fff",almostWhite:"#fafafa",textColor:"#1b1b1b",textColorBluishLightGrey:"#9fa8ae",textColorBluish:"hsl(208, 17%, 42%)",brandOrange:"#ff8300",brandBlue:"hsl(203, 100%, 23%)",brandBrightBlue:"hsl(207, 65%, 46%)",buttonActiveColor:"hsl(201, 55%, 94%)",buttonHoverColor:"hsl(200, 60%, 97%)",buttonSeparatorColor:"#f0f0f0",borderColor:"#ebeef2",borderColorDarker:"#dfe1e5",borderRadius:6,searchBarColor:"#297BC0"},t.mixins={flexRow:{display:"flex",flexDirection:"row"},flexColumn:{display:"flex",flexDirection:"column"},overflowEllipses:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},textStrokeWhite:{WebkitFontSmoothing:"antialiased",textShadow:["rgba(255, 255, 255, 0.5) 1px 1px 0","rgba(255, 255, 255, 0.5) -1px -1px 0","white 0 0 1px","white 0 0 2px","white 0 0 3px","white 0 0 4px"].join(", ")},buttonReset:{padding:0,margin:0,font:"inherit",border:0,borderRadius:0,background:"transparent",color:"inherit","&::-moz-focus-inner":{border:0}},buttonHoverActive:{"&:hover":{background:t.theme.buttonHoverColor},"&:active":{background:t.theme.buttonActiveColor}},borderBox:{boxSizing:"border-box"},focusRing:{"&:focus":{outline:0,boxShadow:`inset 0 0 0 1px ${t.theme.brandBrightBlue}`}},focusRingMenuItem:{"&:focus":{outline:0,boxShadow:`\n inset 0 0 0 1px white,\n inset 0 0 0 2px ${t.theme.brandBrightBlue}\n `}},focusOutline:{"&:focus":{outline:0,boxShadow:"0 0 0 2px currentcolor"}},focusDarken:{"&:focus":{outline:0,boxShadow:"inset 0 0 0 9999px rgba(0, 0, 0, 0.1)"}},focusNone:{"&:focus":{outline:"none"}},shadow:{boxShadow:"0 0 3px rgba(0, 0, 0, 0.25)"},rounded:{borderRadius:t.theme.borderRadius},maxRounded:{borderRadius:99999},paddingMedium:{padding:"20px"},pointer:{cursor:"pointer","&:disabled":{cursor:"default"}}},s=(0,r.default)({key:"meridian--private-"}),t.cx=s.cx,t.keyframes=s.keyframes,t.css=s.css},7746:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.debouncedPlacemarkSearch=t.placemarkSearchParams=t.cleanQuery=t.isEnvOptions=t.asyncClientCall=t.requiredParam=t.getPlacemarkCategories=t.getTagLabels=t.createSearchMatcher=t.keyBy=t.objectWithoutKey=t.uiText=t.logDeprecated=t.logError=t.logWarn=void 0;const a="[@meridian/web-sdk]";t.logWarn=console.warn.bind(console,a),t.logError=console.error.bind(console,a),t.logDeprecated=t.logWarn.bind(null,"[deprecated]"),t.uiText={enDash:"–",unnamedBuilding:"Unassigned"},t.objectWithoutKey=function(e,t){const a=Object.assign({},e);return delete a[t],a},t.keyBy=function(e,t){const a={};for(const s of e)a[t(s)]=s;return a},t.createSearchMatcher=function(e){return t=>t.toLowerCase().indexOf(e.toLowerCase().trim())>=0},t.getTagLabels=function(e){return(e.tags||[]).map((e=>e.name))},t.getPlacemarkCategories=function(e){return(e.categories||[]).map((e=>e.name))},t.requiredParam=function(e,a){(0,t.logError)(`${e}: argument \`${a}\` is required`)},t.asyncClientCall=function(e,...t){setTimeout(e,0,...t)},t.isEnvOptions=function(e){return"staging"===e||"production"===e||"eu"===e||"development"===e||"devCloud"===e},t.cleanQuery=function(e){return e.replace(/-/g," ").replace(/:/g," ").replace(/[\\)"(]/g," ").replace(/[ ]{2,}/g," ").trim()},t.placemarkSearchParams="is_map_published=true AND kind:placemark AND NOT is_searchable=false AND NOT type=exclusion_area",t.debouncedPlacemarkSearch=function e(t,a=0){let s,o,r;return function(...t){return o?(r=!0,new Promise((r=>{o=r,s=setTimeout(i.bind(e,t,r),a)}))):new Promise((r=>{o=r,s=setTimeout(i.bind(e,t,r),a)}))};function i(a,i){r&&i!==o?i(null):(t.apply(e,a).then(i).catch(i),r=!1,clearTimeout(s),s=o=null)}}},4221:function(e,t,a){"use strict";var s,o,r,i=this&&this.__classPrivateFieldGet||function(e,t,a,s){if("a"===a&&!s)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!s:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===a?s:"a"===a?s.call(e):s?s.value:t.get(e)},n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.API=t.createAPI=t.createMap=t.init=t.mapPointToLatLng=t.latLngToMapPoint=t.restrictedPanZoom=t.version=t.pointsFromArea=t.placemarkIconURL=void 0;const l=n(a(8938)),c=n(a(6928)),d=a(5403),p=n(a(4717)),h=n(a(9101)),u=a(5396),m=n(a(529)),g=a(7746),f=a(323),v=new Map;for(const e of f.keys()){const t=c.default.basename(e,".svg"),a=f(e).default;v.set(t,a)}t.placemarkIconURL=function(e){if(!e||e.startsWith("label_"))return h.default;return v.get(e)||((0,g.logError)(`placemarkIconURL: no such icon '${e}'`),h.default)},t.pointsFromArea=function(e){return e?e.split(",").map(Number):[]};const k=()=>a(3351);"complete"===document.readyState?setTimeout(k,0):document.addEventListener("DOMContentLoaded",k,!1);const b={api:void 0};t.version="1.22.7",t.restrictedPanZoom=function(e){return"wheel"===e.type?e.shiftKey||e.altKey||e.ctrlKey||e.metaKey:"touch"!==e.type||e.touches.length>=2},t.latLngToMapPoint=function(e,{lat:t,lng:a}){const s=t,o=a,r=[];e.gps_ref_points.split(",").forEach((e=>{r.push(Number(e))}));const i={lat:r[0],lng:r[1],x:r[4],y:r[5]},n={lat:r[2],lng:r[3],x:r[6],y:r[7]},l=6371;i.globalCoordinateX=l*i.lng*Math.cos((i.lat+n.lat)/2),i.globalCoordinateY=l*i.lat,n.globalCoordinateX=l*n.lng*Math.cos((i.lat+n.lat)/2),n.globalCoordinateY=l*n.lat;const c=l*s,d=(l*o*Math.cos((i.lat+n.lat)/2)-i.globalCoordinateX)/(n.globalCoordinateX-i.globalCoordinateX),p=(c-i.globalCoordinateY)/(n.globalCoordinateY-i.globalCoordinateY);return{x:i.x+(n.x-i.x)*d,y:i.y+(n.y-i.y)*p}},t.mapPointToLatLng=function(e,{x:t,y:a}){const s=[];e.gps_ref_points.split(",").forEach((e=>{s.push(Number(e))}));const o={lat:s[0],lng:s[1],x:s[4],y:s[5]},r={lat:s[2],lng:s[3],x:s[6],y:s[7]},i=o.lng,n=r.lng-i,l=function(){let e;return e=o.y{l.isDestroyed?(0,g.logError)("can't call update on a destroyed MeridianMap"):(l.isDestroyed=!0,(0,d.render)(null,e),t.onDestroy&&t.onDestroy())};let s=null;const o=e=>{s=e},r=(s,{internalUpdate:i=!0}={})=>{t=Object.assign(Object.assign({},t),s);const l=b.api||t.api;if(!l)throw(0,g.requiredParam)("createMap","options.api"),new Error("couldn't create MeridianMap");n=(0,d.render)((0,d.h)(m.default,Object.assign({api:l},t,{update:r,ref:o,destroy:a})),e,n),(0,u.sendAnalyticsCodeEvent)({action:"map.update",locationID:t.locationID,onTagsUpdate:Boolean(t.onTagsUpdate),tagsFilter:Boolean(t.tags&&t.tags.filter),placemarksFilter:Boolean(t.placemarks&&t.placemarks.filter),internalUpdate:i})},i=b.api||t.api;if(!i)throw(0,g.requiredParam)("createMap","options.api"),new Error("couldn't create MeridianMap");let n=(0,d.render)((0,d.h)(m.default,Object.assign({api:i},t,{update:r,ref:o,destroy:a})),e);(0,u.sendAnalyticsCodeEvent)({action:"createMap",locationID:t.locationID,onTagsUpdate:Boolean(t.onTagsUpdate),tagsFilter:Boolean(t.tags&&t.tags.filter),placemarksFilter:Boolean(t.placemarks&&t.placemarks.filter)});const l={destroy:a,isDestroyed:!1,update:e=>{l.isDestroyed?(0,g.logError)("can't call update on a destroyed MeridianMap"):r(e,{internalUpdate:!1})},zoomToDefault:()=>{l.isDestroyed?(0,g.logError)("can't call zoomToDefault on a destroyed MeridianMap"):null==s||s.zoomToDefault()},zoomToPoint:e=>{l.isDestroyed?(0,g.logError)("can't call update on a destroyed MeridianMap"):(e||(0,g.requiredParam)("map.zoomToPoint","options"),void 0===e.x&&(0,g.requiredParam)("map.zoomToPoint","options.x"),void 0===e.y&&(0,g.requiredParam)("map.zoomToPoint","options.y"),void 0===e.scale&&(0,g.requiredParam)("map.zoomToPoint","options.scale"),null==s||s.zoomToPoint(e.x,e.y,e.scale))},centerMap:()=>{l.isDestroyed?(0,g.logError)("can't call update on a destroyed MeridianMap"):null==s||s.centerMap()}};return l},t.createAPI=function(e){return(0,g.logDeprecated)("use `new MeridianSDK.API(options)` instead of `MeridianSDK.createAPI(options)`"),e||(0,g.requiredParam)("createAPI","options"),new y(e)};class y{constructor(e){var a;s.add(this),this.debouncedPlacemarkSearchBeta=(0,g.debouncedPlacemarkSearch)(i(this,s,"m",o).bind(this),600),e.token||(0,g.requiredParam)("API","token"),this.token=e.token,this.environment=("devcloud"===(a=e.environment)?"devCloud":a)||"production",this.language=e.language,this._placemarkSearchAbortController=null,this._localSearchAbortController=null;let r={};this.language&&(r={"accept-language":this.language}),this._axiosEditorAPI=l.default.create({baseURL:C[this.environment],headers:Object.assign({Authorization:`Token ${e.token}`,"Meridian-SDK":`WebSDK/${t.version}`},r)}),this._axiosTagsAPI=l.default.create({baseURL:x[this.environment],headers:{Authorization:`Token ${e.token}`}}),this._axiosTagDetailAPI=l.default.create({baseURL:O[this.environment],headers:{Authorization:`Token ${e.token}`}})}get axios(){return(0,g.logDeprecated)("axios is deprecated; use the MeridianSDK.API fetch methods"),this._axiosEditorAPI}async getDirections(e){e.locationID||(0,g.requiredParam)("getDirections","locationID"),e.startFloorID||(0,g.requiredParam)("getDirections","startFloorID"),e.startPlacemarkID||(0,g.requiredParam)("getDirections","startPlacemarkID"),e.endPlacemarkID||(0,g.requiredParam)("getDirections","endPlacemarkID");const t=new URLSearchParams({from_map_id:e.startFloorID,from_placemark_id:e.startPlacemarkID,to_placemark_ids:e.endPlacemarkID,transport_type:e.transportType||"normal"}),a=`/locations/${e.locationID}/directions?${t}`;return(await this._axiosEditorAPI.get(a)).data}async fetchTagsByFloor(e,t){return e||(0,g.requiredParam)("fetchTagsByFloor","locationID"),t||(0,g.requiredParam)("fetchTagsByFloor","floorID"),(await this._axiosTagsAPI.post("/assets",{floor_id:t,location_id:e})).data.asset_updates}async fetchTagsByLocation(e){return e||(0,g.requiredParam)("fetchTagsByLocation","locationID"),(await this._axiosTagsAPI.post("/assets",{location_id:e})).data.asset_updates}async fetchTagDetail(e){return e||(0,g.requiredParam)("fetchTagDetail","mac"),(await this._axiosTagDetailAPI.get(`/tagsinfo/detail/${e}`)).data}async fetchPlacemarksByLocation(e){return e||(0,g.requiredParam)("fetchPlacemarksByLocation","locationID"),await _((async e=>{const{data:t}=await this._axiosEditorAPI.get(e);return t}),`locations/${e}/placemarks`)}async fetchPlacemarksByFloor(e,t){return e||(0,g.requiredParam)("fetchPlacemarksByFloor","locationID"),t||(0,g.requiredParam)("fetchPlacemarksByFloor","floorID"),await _((async e=>{const{data:t}=await this._axiosEditorAPI.get(e);return t}),`locations/${e}/maps/${t}/placemarks`)}async fetchFloorsByLocation(e){return e||(0,g.requiredParam)("fetchFloorsByLocation","locationID"),await _((async e=>{const{data:t}=await this._axiosEditorAPI.get(e);return t}),`locations/${e}/maps`)}async fetchFloorData(e,t){e||(0,g.requiredParam)("fetchFloorData","locationID"),t||(0,g.requiredParam)("fetchFloorData","floorID");const a=`locations/${e}/maps/${t}`,{data:s}=await this._axiosEditorAPI.get(a);return s}async fetchSVG(e){e||(0,g.requiredParam)("fetchSVG","svgURL");const{data:t}=await this._axiosEditorAPI.get(e,{responseType:"blob"});return URL.createObjectURL(t)}openStream({locationID:e,floorID:t,resourceIDs:a,resourceType:s="FLOOR",onInitialTags:o=(()=>{}),onTagUpdate:r=(()=>{}),onException:i=(()=>{}),onClose:n=(()=>{}),onOpen:l=(()=>{})}){"FLOOR"===s&&t&&!a&&(a=[t]),"LOCATION"===s&&e&&!a&&(a=[e]),e||(0,g.requiredParam)("openStream","locationID"),"FLOOR"!==s||t||(0,g.requiredParam)("openStream","floorID"),a||(0,g.requiredParam)("openStream","resourceIDs");let c=!1;const d=new URLSearchParams({method:"POST",authorization:`Token ${this.token}`}),h=w[this.environment],u=new p.default(`${h}?${d}`),m={asset_requests:[{resource_type:s,location_id:e,resource_ids:a}]},f=()=>{c||(c=!0,(0,g.asyncClientCall)(n),u.close())};return u.addEventListener("open",(()=>{c||(l(),u.send(JSON.stringify(m)))})),u.addEventListener("message",(e=>{if(c)return;const t=JSON.parse(e.data);if(t.error)i(new Error(t.error.message));else{if(!t.result)throw new Error(`Unknown message: ${e.data}`);for(const e of t.result.asset_updates){const t=e.event_type;if("UPDATE"!==t)throw new Error(`Unknown event type: ${t}`);(0,g.asyncClientCall)(r,e)}}})),u.addEventListener("error",(()=>{c||i(new Error("MeridianSDK.openStream connection error"))})),u.addEventListener("close",(()=>{c||n()})),(async()=>{if(t&&"FLOOR"===s)try{const a=await this.fetchTagsByFloor(e,t);(0,g.asyncClientCall)(o,a)}catch(e){(0,g.asyncClientCall)(i,e),f()}else if(e&&"LOCATION"===s)try{const t=await this.fetchTagsByLocation(e);(0,g.asyncClientCall)(o,t)}catch(e){(0,g.asyncClientCall)(i,e),f()}else(0,g.asyncClientCall)(o,[])})(),{close:f}}}async function _(e,t){const a=await e(t),s=a.results;let o=a.next;for(;o;){const t=await e(o);s.push(...t.results),o=t.next}return s}t.API=y,s=new WeakSet,o=async function(e){const t=(0,g.cleanQuery)(e.searchStr);if(e.locationID||(0,g.requiredParam)("placemarkSearch","locationID"),this._placemarkSearchAbortController&&this._placemarkSearchAbortController.abort(),this._localSearchAbortController&&this._localSearchAbortController.abort(),!t)return[];this._placemarkSearchAbortController=new AbortController;const a=new URLSearchParams({q:`${t} AND (${g.placemarkSearchParams})`,page_size:"100"});try{return await this._axiosEditorAPI.get(`locations/${e.locationID}/search`,{signal:this._placemarkSearchAbortController.signal,params:a}).then((async a=>{const o=a.data.results;if(e.refPoint&&e.refFloorID&&o.length){const a=await i(this,s,"m",r).call(this,{locationID:e.locationID,searchStr:t,point:e.refPoint,mapID:e.refFloorID}),n=[],l=a.map((e=>e.id));return o.forEach((e=>{l.includes(e.id)||n.push(e)})),this._placemarkSearchAbortController=null,[...a,...n]}return this._placemarkSearchAbortController=null,o}))}catch(e){return"canceled"===e.message?null:(console.warn(e),[])}},r=async function(e){const t=(0,g.cleanQuery)(e.searchStr);if(this._localSearchAbortController&&this._localSearchAbortController.abort(),!t)return[];this._localSearchAbortController=new AbortController;const a=new URLSearchParams({q:`${t} AND (${g.placemarkSearchParams})`,limit:"10",appid:e.locationID,map_id:e.mapID,point:e.point});return this._axiosEditorAPI.get("search/local",{signal:this._localSearchAbortController.signal,params:a}).then((e=>(this._localSearchAbortController=null,e.data.results)))};const x={development:"http://localhost:8091/api/v1",devCloud:"https://dev-tags.meridianapps.com/api/v1",production:"https://tags.meridianapps.com/api/v1",eu:"https://tags-eu.meridianapps.com/api/v1",staging:"https://staging-tags.meridianapps.com/api/v1"},O={development:"http://localhost:8091/api",devCloud:"https://dev-tags.meridianapps.com/api",production:"https://tags.meridianapps.com/api",eu:"https://tags-eu.meridianapps.com/api",staging:"https://staging-tags.meridianapps.com/api"},w={development:"ws://localhost:8091/streams/v1/assets",devCloud:"wss://dev-tags.meridianapps.com/streams/v1/assets",production:"wss://tags.meridianapps.com/streams/v1/assets",eu:"wss://tags-eu.meridianapps.com/streams/v1/assets",staging:"wss://staging-tags.meridianapps.com/streams/v1/assets"},C={development:"http://localhost:8091/api",devCloud:"https://dev-edit.meridianapps.com/api",production:"https://edit.meridianapps.com/api",eu:"https://edit-eu.meridianapps.com/api",staging:"https://staging-edit.meridianapps.com/api"}},9918:e=>{"use strict";e.exports=require("@emotion/css/create-instance")},8938:e=>{"use strict";e.exports=require("axios")},4870:e=>{"use strict";e.exports=require("d3-selection")},3755:e=>{"use strict";e.exports=require("d3-transition")},5491:e=>{"use strict";e.exports=require("d3-zoom")},9862:e=>{"use strict";e.exports=require("lodash.debounce")},3669:e=>{"use strict";e.exports=require("lodash.groupby")},1389:e=>{"use strict";e.exports=require("lodash.throttle")},5403:e=>{"use strict";e.exports=require("preact")},3351:e=>{"use strict";e.exports=require("preact/debug")},4717:e=>{"use strict";e.exports=require("reconnecting-websocket")},6928:e=>{"use strict";e.exports=require("path")}},t={};function a(s){var o=t[s];if(void 0!==o)return o.exports;var r=t[s]={exports:{}};return e[s].call(r.exports,r,r.exports,a),r.exports}a.d=(e,t)=>{for(var s in t)a.o(t,s)&&!a.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.p="https://files.meridianapps.com/meridian-web-sdk/1.22.7/";var s=a(4221),o=exports;for(var r in s)o[r]=s[r];s.__esModule&&Object.defineProperty(o,"__esModule",{value:!0})})(); \ No newline at end of file diff --git a/dist/web-sdk.js.LICENSE.txt b/dist/web-sdk.js.LICENSE.txt new file mode 100644 index 00000000..d67438c5 --- /dev/null +++ b/dist/web-sdk.js.LICENSE.txt @@ -0,0 +1,22 @@ +/*! + * @license + * Copyright 2022 Hewlett Packard Enterprise Development LP + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ diff --git a/docs/.nojekyll b/docs/.nojekyll new file mode 100644 index 00000000..e2ac6616 --- /dev/null +++ b/docs/.nojekyll @@ -0,0 +1 @@ +TypeDoc added this file to prevent GitHub Pages from using Jekyll. You can turn off this behavior by setting the `githubPages` option to false. \ No newline at end of file diff --git a/docs/assets/highlight.css b/docs/assets/highlight.css new file mode 100644 index 00000000..c0309598 --- /dev/null +++ b/docs/assets/highlight.css @@ -0,0 +1,141 @@ +:root { + --light-hl-0: #795E26; + --dark-hl-0: #DCDCAA; + --light-hl-1: #000000; + --dark-hl-1: #D4D4D4; + --light-hl-2: #A31515; + --dark-hl-2: #CE9178; + --light-hl-3: #0000FF; + --dark-hl-3: #569CD6; + --light-hl-4: #0070C1; + --dark-hl-4: #4FC1FF; + --light-hl-5: #AF00DB; + --dark-hl-5: #C586C0; + --light-hl-6: #001080; + --dark-hl-6: #9CDCFE; + --light-hl-7: #800000; + --dark-hl-7: #808080; + --light-hl-8: #800000; + --dark-hl-8: #569CD6; + --light-hl-9: #000000FF; + --dark-hl-9: #D4D4D4; + --light-hl-10: #E50000; + --dark-hl-10: #9CDCFE; + --light-hl-11: #0000FF; + --dark-hl-11: #CE9178; + --light-hl-12: #800000; + --dark-hl-12: #D7BA7D; + --light-hl-13: #098658; + --dark-hl-13: #B5CEA8; + --light-hl-14: #0451A5; + --dark-hl-14: #CE9178; + --light-hl-15: #267F99; + --dark-hl-15: #4EC9B0; + --light-hl-16: #008000; + --dark-hl-16: #6A9955; + --light-code-background: #FFFFFF; + --dark-code-background: #1E1E1E; +} + +@media (prefers-color-scheme: light) { :root { + --hl-0: var(--light-hl-0); + --hl-1: var(--light-hl-1); + --hl-2: var(--light-hl-2); + --hl-3: var(--light-hl-3); + --hl-4: var(--light-hl-4); + --hl-5: var(--light-hl-5); + --hl-6: var(--light-hl-6); + --hl-7: var(--light-hl-7); + --hl-8: var(--light-hl-8); + --hl-9: var(--light-hl-9); + --hl-10: var(--light-hl-10); + --hl-11: var(--light-hl-11); + --hl-12: var(--light-hl-12); + --hl-13: var(--light-hl-13); + --hl-14: var(--light-hl-14); + --hl-15: var(--light-hl-15); + --hl-16: var(--light-hl-16); + --code-background: var(--light-code-background); +} } + +@media (prefers-color-scheme: dark) { :root { + --hl-0: var(--dark-hl-0); + --hl-1: var(--dark-hl-1); + --hl-2: var(--dark-hl-2); + --hl-3: var(--dark-hl-3); + --hl-4: var(--dark-hl-4); + --hl-5: var(--dark-hl-5); + --hl-6: var(--dark-hl-6); + --hl-7: var(--dark-hl-7); + --hl-8: var(--dark-hl-8); + --hl-9: var(--dark-hl-9); + --hl-10: var(--dark-hl-10); + --hl-11: var(--dark-hl-11); + --hl-12: var(--dark-hl-12); + --hl-13: var(--dark-hl-13); + --hl-14: var(--dark-hl-14); + --hl-15: var(--dark-hl-15); + --hl-16: var(--dark-hl-16); + --code-background: var(--dark-code-background); +} } + +:root[data-theme='light'] { + --hl-0: var(--light-hl-0); + --hl-1: var(--light-hl-1); + --hl-2: var(--light-hl-2); + --hl-3: var(--light-hl-3); + --hl-4: var(--light-hl-4); + --hl-5: var(--light-hl-5); + --hl-6: var(--light-hl-6); + --hl-7: var(--light-hl-7); + --hl-8: var(--light-hl-8); + --hl-9: var(--light-hl-9); + --hl-10: var(--light-hl-10); + --hl-11: var(--light-hl-11); + --hl-12: var(--light-hl-12); + --hl-13: var(--light-hl-13); + --hl-14: var(--light-hl-14); + --hl-15: var(--light-hl-15); + --hl-16: var(--light-hl-16); + --code-background: var(--light-code-background); +} + +:root[data-theme='dark'] { + --hl-0: var(--dark-hl-0); + --hl-1: var(--dark-hl-1); + --hl-2: var(--dark-hl-2); + --hl-3: var(--dark-hl-3); + --hl-4: var(--dark-hl-4); + --hl-5: var(--dark-hl-5); + --hl-6: var(--dark-hl-6); + --hl-7: var(--dark-hl-7); + --hl-8: var(--dark-hl-8); + --hl-9: var(--dark-hl-9); + --hl-10: var(--dark-hl-10); + --hl-11: var(--dark-hl-11); + --hl-12: var(--dark-hl-12); + --hl-13: var(--dark-hl-13); + --hl-14: var(--dark-hl-14); + --hl-15: var(--dark-hl-15); + --hl-16: var(--dark-hl-16); + --code-background: var(--dark-code-background); +} + +.hl-0 { color: var(--hl-0); } +.hl-1 { color: var(--hl-1); } +.hl-2 { color: var(--hl-2); } +.hl-3 { color: var(--hl-3); } +.hl-4 { color: var(--hl-4); } +.hl-5 { color: var(--hl-5); } +.hl-6 { color: var(--hl-6); } +.hl-7 { color: var(--hl-7); } +.hl-8 { color: var(--hl-8); } +.hl-9 { color: var(--hl-9); } +.hl-10 { color: var(--hl-10); } +.hl-11 { color: var(--hl-11); } +.hl-12 { color: var(--hl-12); } +.hl-13 { color: var(--hl-13); } +.hl-14 { color: var(--hl-14); } +.hl-15 { color: var(--hl-15); } +.hl-16 { color: var(--hl-16); } +pre, code { background: var(--code-background); } diff --git a/docs/assets/icons.js b/docs/assets/icons.js new file mode 100644 index 00000000..b79c9e89 --- /dev/null +++ b/docs/assets/icons.js @@ -0,0 +1,15 @@ +(function(svg) { + svg.innerHTML = ``; + svg.style.display = 'none'; + if (location.protocol === 'file:') { + if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', updateUseElements); + else updateUseElements() + function updateUseElements() { + document.querySelectorAll('use').forEach(el => { + if (el.getAttribute('href').includes('#icon-')) { + el.setAttribute('href', el.getAttribute('href').replace(/.*#/, '#')); + } + }); + } + } +})(document.body.appendChild(document.createElementNS('http://www.w3.org/2000/svg', 'svg'))) \ No newline at end of file diff --git a/docs/assets/icons.svg b/docs/assets/icons.svg new file mode 100644 index 00000000..7dead611 --- /dev/null +++ b/docs/assets/icons.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/assets/main.js b/docs/assets/main.js new file mode 100644 index 00000000..d6f13886 --- /dev/null +++ b/docs/assets/main.js @@ -0,0 +1,59 @@ +"use strict"; +"use strict";(()=>{var Ce=Object.create;var ne=Object.defineProperty;var Pe=Object.getOwnPropertyDescriptor;var Oe=Object.getOwnPropertyNames;var _e=Object.getPrototypeOf,Re=Object.prototype.hasOwnProperty;var Me=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Fe=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Oe(e))!Re.call(t,i)&&i!==n&&ne(t,i,{get:()=>e[i],enumerable:!(r=Pe(e,i))||r.enumerable});return t};var De=(t,e,n)=>(n=t!=null?Ce(_e(t)):{},Fe(e||!t||!t.__esModule?ne(n,"default",{value:t,enumerable:!0}):n,t));var ae=Me((se,oe)=>{(function(){var t=function(e){var n=new t.Builder;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),n.searchPipeline.add(t.stemmer),e.call(n,n),n.build()};t.version="2.3.9";t.utils={},t.utils.warn=function(e){return function(n){e.console&&console.warn&&console.warn(n)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var n=Object.create(null),r=Object.keys(e),i=0;i0){var d=t.utils.clone(n)||{};d.position=[a,u],d.index=s.length,s.push(new t.Token(r.slice(a,o),d))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index. +`,e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(r){var i=t.Pipeline.registeredFunctions[r];if(i)n.add(i);else throw new Error("Cannot load unregistered function: "+r)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(n){t.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");r=r+1,this._stack.splice(r,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");this._stack.splice(r,0,n)},t.Pipeline.prototype.remove=function(e){var n=this._stack.indexOf(e);n!=-1&&this._stack.splice(n,1)},t.Pipeline.prototype.run=function(e){for(var n=this._stack.length,r=0;r1&&(oe&&(r=s),o!=e);)i=r-n,s=n+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(ol?d+=2:a==l&&(n+=r[u+1]*i[d+1],u+=2,d+=2);return n},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),n=1,r=0;n0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}if(s.str.length==0&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new t.TokenSet;s.node.edges["*"]=u}s.str.length==1&&(u.final=!0),i.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var d=s.str.charAt(0),y=s.str.charAt(1),p;y in s.node.edges?p=s.node.edges[y]:(p=new t.TokenSet,s.node.edges[y]=p),s.str.length==1&&(p.final=!0),i.push({node:p,editsRemaining:s.editsRemaining-1,str:d+s.str.slice(2)})}}}return r},t.TokenSet.fromString=function(e){for(var n=new t.TokenSet,r=n,i=0,s=e.length;i=e;n--){var r=this.uncheckedNodes[n],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(n){var r=new t.QueryParser(e,n);r.parse()})},t.Index.prototype.query=function(e){for(var n=new t.Query(this.fields),r=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),l=0;l1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,n){var r=e[this._ref],i=Object.keys(this._fields);this._documents[r]=n||{},this.documentCount+=1;for(var s=0;s=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,n;do e=this.next(),n=e.charCodeAt(0);while(n>47&&n<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var n=e.next();if(n==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(n.charCodeAt(0)==92){e.escapeCharacter();continue}if(n==":")return t.QueryLexer.lexField;if(n=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(n=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(n=="+"&&e.width()===1||n=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(n.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,n){this.lexer=new t.QueryLexer(e),this.query=n,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var n=e.peekLexeme();if(n!=null)switch(n.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+n.type;throw n.str.length>=1&&(r+=" with value '"+n.str+"'"),new t.QueryParseError(r,n.start,n.end)}},t.QueryParser.parsePresence=function(e){var n=e.consumeLexeme();if(n!=null){switch(n.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+n.str+"'";throw new t.QueryParseError(r,n.start,n.end)}var i=e.peekLexeme();if(i==null){var r="expecting term or field, found nothing";throw new t.QueryParseError(r,n.start,n.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(r,i.start,i.end)}}},t.QueryParser.parseField=function(e){var n=e.consumeLexeme();if(n!=null){if(e.query.allFields.indexOf(n.str)==-1){var r=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+n.str+"', possible fields: "+r;throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.fields=[n.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,n.start,n.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var n=e.consumeLexeme();if(n!=null){e.currentClause.term=n.str.toLowerCase(),n.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(r==null){e.nextClause();return}switch(r.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new t.QueryParseError(i,r.start,r.end)}}},t.QueryParser.parseEditDistance=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="edit distance must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.editDistance=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="boost must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.boost=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},function(e,n){typeof define=="function"&&define.amd?define(n):typeof se=="object"?oe.exports=n():e.lunr=n()}(this,function(){return t})})()});var re=[];function G(t,e){re.push({selector:e,constructor:t})}var U=class{constructor(){this.alwaysVisibleMember=null;this.createComponents(document.body),this.ensureFocusedElementVisible(),this.listenForCodeCopies(),window.addEventListener("hashchange",()=>this.ensureFocusedElementVisible()),document.body.style.display||(this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}createComponents(e){re.forEach(n=>{e.querySelectorAll(n.selector).forEach(r=>{r.dataset.hasInstance||(new n.constructor({el:r,app:this}),r.dataset.hasInstance=String(!0))})})}filterChanged(){this.ensureFocusedElementVisible()}showPage(){document.body.style.display&&(console.log("Show page"),document.body.style.removeProperty("display"),this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}scrollToHash(){if(location.hash){console.log("Scorlling");let e=document.getElementById(location.hash.substring(1));if(!e)return;e.scrollIntoView({behavior:"instant",block:"start"})}}ensureActivePageVisible(){let e=document.querySelector(".tsd-navigation .current"),n=e?.parentElement;for(;n&&!n.classList.contains(".tsd-navigation");)n instanceof HTMLDetailsElement&&(n.open=!0),n=n.parentElement;if(e&&!e.checkVisibility()){let r=e.getBoundingClientRect().top-document.documentElement.clientHeight/4;document.querySelector(".site-menu").scrollTop=r}}updateIndexVisibility(){let e=document.querySelector(".tsd-index-content"),n=e?.open;e&&(e.open=!0),document.querySelectorAll(".tsd-index-section").forEach(r=>{r.style.display="block";let i=Array.from(r.querySelectorAll(".tsd-index-link")).every(s=>s.offsetParent==null);r.style.display=i?"none":"block"}),e&&(e.open=n)}ensureFocusedElementVisible(){if(this.alwaysVisibleMember&&(this.alwaysVisibleMember.classList.remove("always-visible"),this.alwaysVisibleMember.firstElementChild.remove(),this.alwaysVisibleMember=null),!location.hash)return;let e=document.getElementById(location.hash.substring(1));if(!e)return;let n=e.parentElement;for(;n&&n.tagName!=="SECTION";)n=n.parentElement;if(n&&n.offsetParent==null){this.alwaysVisibleMember=n,n.classList.add("always-visible");let r=document.createElement("p");r.classList.add("warning"),r.textContent="This member is normally hidden due to your filter settings.",n.prepend(r)}}listenForCodeCopies(){document.querySelectorAll("pre > button").forEach(e=>{let n;e.addEventListener("click",()=>{e.previousElementSibling instanceof HTMLElement&&navigator.clipboard.writeText(e.previousElementSibling.innerText.trim()),e.textContent="Copied!",e.classList.add("visible"),clearTimeout(n),n=setTimeout(()=>{e.classList.remove("visible"),n=setTimeout(()=>{e.textContent="Copy"},100)},1e3)})})}};var ie=(t,e=100)=>{let n;return()=>{clearTimeout(n),n=setTimeout(()=>t(),e)}};var de=De(ae());async function le(t,e){if(!window.searchData)return;let n=await fetch(window.searchData),r=new Blob([await n.arrayBuffer()]).stream().pipeThrough(new DecompressionStream("gzip")),i=await new Response(r).json();t.data=i,t.index=de.Index.load(i.index),e.classList.remove("loading"),e.classList.add("ready")}function he(){let t=document.getElementById("tsd-search");if(!t)return;let e={base:t.dataset.base+"/"},n=document.getElementById("tsd-search-script");t.classList.add("loading"),n&&(n.addEventListener("error",()=>{t.classList.remove("loading"),t.classList.add("failure")}),n.addEventListener("load",()=>{le(e,t)}),le(e,t));let r=document.querySelector("#tsd-search input"),i=document.querySelector("#tsd-search .results");if(!r||!i)throw new Error("The input field or the result list wrapper was not found");let s=!1;i.addEventListener("mousedown",()=>s=!0),i.addEventListener("mouseup",()=>{s=!1,t.classList.remove("has-focus")}),r.addEventListener("focus",()=>t.classList.add("has-focus")),r.addEventListener("blur",()=>{s||(s=!1,t.classList.remove("has-focus"))}),Ae(t,i,r,e)}function Ae(t,e,n,r){n.addEventListener("input",ie(()=>{Ve(t,e,n,r)},200));let i=!1;n.addEventListener("keydown",s=>{i=!0,s.key=="Enter"?Ne(e,n):s.key=="Escape"?n.blur():s.key=="ArrowUp"?ue(e,-1):s.key==="ArrowDown"?ue(e,1):i=!1}),n.addEventListener("keypress",s=>{i&&s.preventDefault()}),document.body.addEventListener("keydown",s=>{s.altKey||s.ctrlKey||s.metaKey||!n.matches(":focus")&&s.key==="/"&&(n.focus(),s.preventDefault())})}function Ve(t,e,n,r){if(!r.index||!r.data)return;e.textContent="";let i=n.value.trim(),s;if(i){let o=i.split(" ").map(a=>a.length?`*${a}*`:"").join(" ");s=r.index.search(o)}else s=[];for(let o=0;oa.score-o.score);for(let o=0,a=Math.min(10,s.length);o`,d=ce(l.name,i);globalThis.DEBUG_SEARCH_WEIGHTS&&(d+=` (score: ${s[o].score.toFixed(2)})`),l.parent&&(d=` + ${ce(l.parent,i)}.${d}`);let y=document.createElement("li");y.classList.value=l.classes??"";let p=document.createElement("a");p.href=r.base+l.url,p.innerHTML=u+d,y.append(p),e.appendChild(y)}}function ue(t,e){let n=t.querySelector(".current");if(!n)n=t.querySelector(e==1?"li:first-child":"li:last-child"),n&&n.classList.add("current");else{let r=n;if(e===1)do r=r.nextElementSibling??void 0;while(r instanceof HTMLElement&&r.offsetParent==null);else do r=r.previousElementSibling??void 0;while(r instanceof HTMLElement&&r.offsetParent==null);r&&(n.classList.remove("current"),r.classList.add("current"))}}function Ne(t,e){let n=t.querySelector(".current");if(n||(n=t.querySelector("li:first-child")),n){let r=n.querySelector("a");r&&(window.location.href=r.href),e.blur()}}function ce(t,e){if(e==="")return t;let n=t.toLocaleLowerCase(),r=e.toLocaleLowerCase(),i=[],s=0,o=n.indexOf(r);for(;o!=-1;)i.push(K(t.substring(s,o)),`${K(t.substring(o,o+r.length))}`),s=o+r.length,o=n.indexOf(r,s);return i.push(K(t.substring(s))),i.join("")}var He={"&":"&","<":"<",">":">","'":"'",'"':"""};function K(t){return t.replace(/[&<>"'"]/g,e=>He[e])}var I=class{constructor(e){this.el=e.el,this.app=e.app}};var F="mousedown",fe="mousemove",H="mouseup",J={x:0,y:0},pe=!1,ee=!1,Be=!1,D=!1,me=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(me?"is-mobile":"not-mobile");me&&"ontouchstart"in document.documentElement&&(Be=!0,F="touchstart",fe="touchmove",H="touchend");document.addEventListener(F,t=>{ee=!0,D=!1;let e=F=="touchstart"?t.targetTouches[0]:t;J.y=e.pageY||0,J.x=e.pageX||0});document.addEventListener(fe,t=>{if(ee&&!D){let e=F=="touchstart"?t.targetTouches[0]:t,n=J.x-(e.pageX||0),r=J.y-(e.pageY||0);D=Math.sqrt(n*n+r*r)>10}});document.addEventListener(H,()=>{ee=!1});document.addEventListener("click",t=>{pe&&(t.preventDefault(),t.stopImmediatePropagation(),pe=!1)});var X=class extends I{constructor(e){super(e),this.className=this.el.dataset.toggle||"",this.el.addEventListener(H,n=>this.onPointerUp(n)),this.el.addEventListener("click",n=>n.preventDefault()),document.addEventListener(F,n=>this.onDocumentPointerDown(n)),document.addEventListener(H,n=>this.onDocumentPointerUp(n))}setActive(e){if(this.active==e)return;this.active=e,document.documentElement.classList.toggle("has-"+this.className,e),this.el.classList.toggle("active",e);let n=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(n),setTimeout(()=>document.documentElement.classList.remove(n),500)}onPointerUp(e){D||(this.setActive(!0),e.preventDefault())}onDocumentPointerDown(e){if(this.active){if(e.target.closest(".col-sidebar, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(e){if(!D&&this.active&&e.target.closest(".col-sidebar")){let n=e.target.closest("a");if(n){let r=window.location.href;r.indexOf("#")!=-1&&(r=r.substring(0,r.indexOf("#"))),n.href.substring(0,r.length)==r&&setTimeout(()=>this.setActive(!1),250)}}}};var te;try{te=localStorage}catch{te={getItem(){return null},setItem(){}}}var Q=te;var ye=document.head.appendChild(document.createElement("style"));ye.dataset.for="filters";var Y=class extends I{constructor(e){super(e),this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),ye.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; } +`,this.app.updateIndexVisibility()}fromLocalStorage(){let e=Q.getItem(this.key);return e?e==="true":this.el.checked}setLocalStorage(e){Q.setItem(this.key,e.toString()),this.value=e,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),this.app.filterChanged(),this.app.updateIndexVisibility()}};var Z=class extends I{constructor(e){super(e),this.summary=this.el.querySelector(".tsd-accordion-summary"),this.icon=this.summary.querySelector("svg"),this.key=`tsd-accordion-${this.summary.dataset.key??this.summary.textContent.trim().replace(/\s+/g,"-").toLowerCase()}`;let n=Q.getItem(this.key);this.el.open=n?n==="true":this.el.open,this.el.addEventListener("toggle",()=>this.update());let r=this.summary.querySelector("a");r&&r.addEventListener("click",()=>{location.assign(r.href)}),this.update()}update(){this.icon.style.transform=`rotate(${this.el.open?0:-90}deg)`,Q.setItem(this.key,this.el.open.toString())}};function ge(t){let e=Q.getItem("tsd-theme")||"os";t.value=e,ve(e),t.addEventListener("change",()=>{Q.setItem("tsd-theme",t.value),ve(t.value)})}function ve(t){document.documentElement.dataset.theme=t}var Le;function be(){let t=document.getElementById("tsd-nav-script");t&&(t.addEventListener("load",xe),xe())}async function xe(){let t=document.getElementById("tsd-nav-container");if(!t||!window.navigationData)return;let n=await(await fetch(window.navigationData)).arrayBuffer(),r=new Blob([n]).stream().pipeThrough(new DecompressionStream("gzip")),i=await new Response(r).json();Le=t.dataset.base+"/",t.innerHTML="";for(let s of i)we(s,t,[]);window.app.createComponents(t),window.app.showPage(),window.app.ensureActivePageVisible()}function we(t,e,n){let r=e.appendChild(document.createElement("li"));if(t.children){let i=[...n,t.text],s=r.appendChild(document.createElement("details"));s.className=t.class?`${t.class} tsd-index-accordion`:"tsd-index-accordion",s.dataset.key=i.join("$");let o=s.appendChild(document.createElement("summary"));o.className="tsd-accordion-summary",o.innerHTML='',Ee(t,o);let a=s.appendChild(document.createElement("div"));a.className="tsd-accordion-details";let l=a.appendChild(document.createElement("ul"));l.className="tsd-nested-navigation";for(let u of t.children)we(u,l,i)}else Ee(t,r,t.class)}function Ee(t,e,n){if(t.path){let r=e.appendChild(document.createElement("a"));r.href=Le+t.path,n&&(r.className=n),location.pathname===r.pathname&&r.classList.add("current"),t.kind&&(r.innerHTML=``),r.appendChild(document.createElement("span")).textContent=t.text}else e.appendChild(document.createElement("span")).textContent=t.text}G(X,"a[data-toggle]");G(Z,".tsd-index-accordion");G(Y,".tsd-filter-item input[type=checkbox]");var Se=document.getElementById("tsd-theme");Se&&ge(Se);var je=new U;Object.defineProperty(window,"app",{value:je});he();be();})(); +/*! Bundled license information: + +lunr/lunr.js: + (** + * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9 + * Copyright (C) 2020 Oliver Nightingale + * @license MIT + *) + (*! + * lunr.utils + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Set + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.tokenizer + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Pipeline + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Vector + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.stemmer + * Copyright (C) 2020 Oliver Nightingale + * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt + *) + (*! + * lunr.stopWordFilter + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.trimmer + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.TokenSet + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Index + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Builder + * Copyright (C) 2020 Oliver Nightingale + *) +*/ diff --git a/docs/assets/navigation.js b/docs/assets/navigation.js new file mode 100644 index 00000000..4bb7df80 --- /dev/null +++ b/docs/assets/navigation.js @@ -0,0 +1 @@ +window.navigationData = "data:application/octet-stream;base64,H4sIAAAAAAAAE5XWTY/aMBAG4P/iMypduktbbmg/JCQioi5cWu1h6swGi8SObG9UVPW/V/lYiBNn4r0y7zzGTuz4119m8Y9lK7aON2zGCrBHtmI8A2PQzNfx5tPR5hmbsZOQCVvdLL79m3V7doUVSpprq5AW9Svwprstu8jibtlB7jWCxQgKiuqHgsA4A4456JMJogfxoEH2kIbxnSAJvxmr8rWUykIVjpWQ1i/7ktP0rkSdwfleaJ4hATu5YHaTQxqg1rFgNAJ9Qj2tNrlgNq60SbRKhZMqO6dKBqhN8ENwJmTA0r4ng+mDCVAPhgSfMqX0A1jwSpcqRWwVr1/jUaUboKAItUgEyMcSR3aOkwihIihIKIKCYnYFymerEXLqpBikKPJyWI0ul5OgqGZMr9GUqOY9pKP/oK1R7SnaB6GR1/OlFscXpODiffbPCJofKdof/cgZfWXtufCczD3r8/evN3eLse3ox9rilPQoy8FUG+ZamTJK1MaZVAlawO8MzbwtucKXbjOvP3fOZeL1TTaPbX4pusDydtbcONiKJVho5GAxYQPV2YV9dbAFl7cdQEhhfb3V70RbBnYr072qbgfud/hK9DMEl7eRvdrWTT6unyG4y4u74Uoefmx9XD9DcdWw5kmrfK0RvJiTICiNxmrBLSYxyJ9K5T5tEBqAL/8BjVb0Rp8KAAA=" \ No newline at end of file diff --git a/docs/assets/search.js b/docs/assets/search.js new file mode 100644 index 00000000..526a6fae --- /dev/null +++ b/docs/assets/search.js @@ -0,0 +1 @@ +window.searchData = "data:application/octet-stream;base64,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"; \ No newline at end of file diff --git a/docs/assets/style.css b/docs/assets/style.css new file mode 100644 index 00000000..778b9492 --- /dev/null +++ b/docs/assets/style.css @@ -0,0 +1,1412 @@ +:root { + /* Light */ + --light-color-background: #f2f4f8; + --light-color-background-secondary: #eff0f1; + --light-color-warning-text: #222; + --light-color-background-warning: #e6e600; + --light-color-icon-background: var(--light-color-background); + --light-color-accent: #c5c7c9; + --light-color-active-menu-item: var(--light-color-accent); + --light-color-text: #222; + --light-color-text-aside: #6e6e6e; + --light-color-link: #1f70c2; + + --light-color-ts-keyword: #056bd6; + --light-color-ts-project: #b111c9; + --light-color-ts-module: var(--light-color-ts-project); + --light-color-ts-namespace: var(--light-color-ts-project); + --light-color-ts-enum: #7e6f15; + --light-color-ts-enum-member: var(--light-color-ts-enum); + --light-color-ts-variable: #4760ec; + --light-color-ts-function: #572be7; + --light-color-ts-class: #1f70c2; + --light-color-ts-interface: #108024; + --light-color-ts-constructor: var(--light-color-ts-class); + --light-color-ts-property: var(--light-color-ts-variable); + --light-color-ts-method: var(--light-color-ts-function); + --light-color-ts-call-signature: var(--light-color-ts-method); + --light-color-ts-index-signature: var(--light-color-ts-property); + --light-color-ts-constructor-signature: var(--light-color-ts-constructor); + --light-color-ts-parameter: var(--light-color-ts-variable); + /* type literal not included as links will never be generated to it */ + --light-color-ts-type-parameter: #a55c0e; + --light-color-ts-accessor: var(--light-color-ts-property); + --light-color-ts-get-signature: var(--light-color-ts-accessor); + --light-color-ts-set-signature: var(--light-color-ts-accessor); + --light-color-ts-type-alias: #d51270; + /* reference not included as links will be colored with the kind that it points to */ + + --light-external-icon: url("data:image/svg+xml;utf8,"); + --light-color-scheme: light; + + /* Dark */ + --dark-color-background: #2b2e33; + --dark-color-background-secondary: #1e2024; + --dark-color-background-warning: #bebe00; + --dark-color-warning-text: #222; + --dark-color-icon-background: var(--dark-color-background-secondary); + --dark-color-accent: #9096a2; + --dark-color-active-menu-item: #5d5d6a; + --dark-color-text: #f5f5f5; + --dark-color-text-aside: #dddddd; + --dark-color-link: #00aff4; + + --dark-color-ts-keyword: #3399ff; + --dark-color-ts-project: #e358ff; + --dark-color-ts-module: var(--dark-color-ts-project); + --dark-color-ts-namespace: var(--dark-color-ts-project); + --dark-color-ts-enum: #f4d93e; + --dark-color-ts-enum-member: var(--dark-color-ts-enum); + --dark-color-ts-variable: #798dff; + --dark-color-ts-function: #a280ff; + --dark-color-ts-class: #8ac4ff; + --dark-color-ts-interface: #6cff87; + --dark-color-ts-constructor: var(--dark-color-ts-class); + --dark-color-ts-property: var(--dark-color-ts-variable); + --dark-color-ts-method: var(--dark-color-ts-function); + --dark-color-ts-call-signature: var(--dark-color-ts-method); + --dark-color-ts-index-signature: var(--dark-color-ts-property); + --dark-color-ts-constructor-signature: var(--dark-color-ts-constructor); + --dark-color-ts-parameter: var(--dark-color-ts-variable); + /* type literal not included as links will never be generated to it */ + --dark-color-ts-type-parameter: #e07d13; + --dark-color-ts-accessor: var(--dark-color-ts-property); + --dark-color-ts-get-signature: var(--dark-color-ts-accessor); + --dark-color-ts-set-signature: var(--dark-color-ts-accessor); + --dark-color-ts-type-alias: #ff6492; + /* reference not included as links will be colored with the kind that it points to */ + + --dark-external-icon: url("data:image/svg+xml;utf8,"); + --dark-color-scheme: dark; +} + +@media (prefers-color-scheme: light) { + :root { + --color-background: var(--light-color-background); + --color-background-secondary: var(--light-color-background-secondary); + --color-background-warning: var(--light-color-background-warning); + --color-warning-text: var(--light-color-warning-text); + --color-icon-background: var(--light-color-icon-background); + --color-accent: var(--light-color-accent); + --color-active-menu-item: var(--light-color-active-menu-item); + --color-text: var(--light-color-text); + --color-text-aside: var(--light-color-text-aside); + --color-link: var(--light-color-link); + + --color-ts-keyword: var(--light-color-ts-keyword); + --color-ts-module: var(--light-color-ts-module); + --color-ts-namespace: var(--light-color-ts-namespace); + --color-ts-enum: var(--light-color-ts-enum); + --color-ts-enum-member: var(--light-color-ts-enum-member); + --color-ts-variable: var(--light-color-ts-variable); + --color-ts-function: var(--light-color-ts-function); + --color-ts-class: var(--light-color-ts-class); + --color-ts-interface: var(--light-color-ts-interface); + --color-ts-constructor: var(--light-color-ts-constructor); + --color-ts-property: var(--light-color-ts-property); + --color-ts-method: var(--light-color-ts-method); + --color-ts-call-signature: var(--light-color-ts-call-signature); + --color-ts-index-signature: var(--light-color-ts-index-signature); + --color-ts-constructor-signature: var( + --light-color-ts-constructor-signature + ); + --color-ts-parameter: var(--light-color-ts-parameter); + --color-ts-type-parameter: var(--light-color-ts-type-parameter); + --color-ts-accessor: var(--light-color-ts-accessor); + --color-ts-get-signature: var(--light-color-ts-get-signature); + --color-ts-set-signature: var(--light-color-ts-set-signature); + --color-ts-type-alias: var(--light-color-ts-type-alias); + + --external-icon: var(--light-external-icon); + --color-scheme: var(--light-color-scheme); + } +} + +@media (prefers-color-scheme: dark) { + :root { + --color-background: var(--dark-color-background); + --color-background-secondary: var(--dark-color-background-secondary); + --color-background-warning: var(--dark-color-background-warning); + --color-warning-text: var(--dark-color-warning-text); + --color-icon-background: var(--dark-color-icon-background); + --color-accent: var(--dark-color-accent); + --color-active-menu-item: var(--dark-color-active-menu-item); + --color-text: var(--dark-color-text); + --color-text-aside: var(--dark-color-text-aside); + --color-link: var(--dark-color-link); + + --color-ts-keyword: var(--dark-color-ts-keyword); + --color-ts-module: var(--dark-color-ts-module); + --color-ts-namespace: var(--dark-color-ts-namespace); + --color-ts-enum: var(--dark-color-ts-enum); + --color-ts-enum-member: var(--dark-color-ts-enum-member); + --color-ts-variable: var(--dark-color-ts-variable); + --color-ts-function: var(--dark-color-ts-function); + --color-ts-class: var(--dark-color-ts-class); + --color-ts-interface: var(--dark-color-ts-interface); + --color-ts-constructor: var(--dark-color-ts-constructor); + --color-ts-property: var(--dark-color-ts-property); + --color-ts-method: var(--dark-color-ts-method); + --color-ts-call-signature: var(--dark-color-ts-call-signature); + --color-ts-index-signature: var(--dark-color-ts-index-signature); + --color-ts-constructor-signature: var( + --dark-color-ts-constructor-signature + ); + --color-ts-parameter: var(--dark-color-ts-parameter); + --color-ts-type-parameter: var(--dark-color-ts-type-parameter); + --color-ts-accessor: var(--dark-color-ts-accessor); + --color-ts-get-signature: var(--dark-color-ts-get-signature); + --color-ts-set-signature: var(--dark-color-ts-set-signature); + --color-ts-type-alias: var(--dark-color-ts-type-alias); + + --external-icon: var(--dark-external-icon); + --color-scheme: var(--dark-color-scheme); + } +} + +html { + color-scheme: var(--color-scheme); +} + +body { + margin: 0; +} + +:root[data-theme="light"] { + --color-background: var(--light-color-background); + --color-background-secondary: var(--light-color-background-secondary); + --color-background-warning: var(--light-color-background-warning); + --color-warning-text: var(--light-color-warning-text); + --color-icon-background: var(--light-color-icon-background); + --color-accent: var(--light-color-accent); + --color-active-menu-item: var(--light-color-active-menu-item); + --color-text: var(--light-color-text); + --color-text-aside: var(--light-color-text-aside); + --color-link: var(--light-color-link); + + --color-ts-keyword: var(--light-color-ts-keyword); + --color-ts-module: var(--light-color-ts-module); + --color-ts-namespace: var(--light-color-ts-namespace); + --color-ts-enum: var(--light-color-ts-enum); + --color-ts-enum-member: var(--light-color-ts-enum-member); + --color-ts-variable: var(--light-color-ts-variable); + --color-ts-function: var(--light-color-ts-function); + --color-ts-class: var(--light-color-ts-class); + --color-ts-interface: var(--light-color-ts-interface); + --color-ts-constructor: var(--light-color-ts-constructor); + --color-ts-property: var(--light-color-ts-property); + --color-ts-method: var(--light-color-ts-method); + --color-ts-call-signature: var(--light-color-ts-call-signature); + --color-ts-index-signature: var(--light-color-ts-index-signature); + --color-ts-constructor-signature: var( + --light-color-ts-constructor-signature + ); + --color-ts-parameter: var(--light-color-ts-parameter); + --color-ts-type-parameter: var(--light-color-ts-type-parameter); + --color-ts-accessor: var(--light-color-ts-accessor); + --color-ts-get-signature: var(--light-color-ts-get-signature); + --color-ts-set-signature: var(--light-color-ts-set-signature); + --color-ts-type-alias: var(--light-color-ts-type-alias); + + --external-icon: var(--light-external-icon); + --color-scheme: var(--light-color-scheme); +} + +:root[data-theme="dark"] { + --color-background: var(--dark-color-background); + --color-background-secondary: var(--dark-color-background-secondary); + --color-background-warning: var(--dark-color-background-warning); + --color-warning-text: var(--dark-color-warning-text); + --color-icon-background: var(--dark-color-icon-background); + --color-accent: var(--dark-color-accent); + --color-active-menu-item: var(--dark-color-active-menu-item); + --color-text: var(--dark-color-text); + --color-text-aside: var(--dark-color-text-aside); + --color-link: var(--dark-color-link); + + --color-ts-keyword: var(--dark-color-ts-keyword); + --color-ts-module: var(--dark-color-ts-module); + --color-ts-namespace: var(--dark-color-ts-namespace); + --color-ts-enum: var(--dark-color-ts-enum); + --color-ts-enum-member: var(--dark-color-ts-enum-member); + --color-ts-variable: var(--dark-color-ts-variable); + --color-ts-function: var(--dark-color-ts-function); + --color-ts-class: var(--dark-color-ts-class); + --color-ts-interface: var(--dark-color-ts-interface); + --color-ts-constructor: var(--dark-color-ts-constructor); + --color-ts-property: var(--dark-color-ts-property); + --color-ts-method: var(--dark-color-ts-method); + --color-ts-call-signature: var(--dark-color-ts-call-signature); + --color-ts-index-signature: var(--dark-color-ts-index-signature); + --color-ts-constructor-signature: var( + --dark-color-ts-constructor-signature + ); + --color-ts-parameter: var(--dark-color-ts-parameter); + --color-ts-type-parameter: var(--dark-color-ts-type-parameter); + --color-ts-accessor: var(--dark-color-ts-accessor); + --color-ts-get-signature: var(--dark-color-ts-get-signature); + --color-ts-set-signature: var(--dark-color-ts-set-signature); + --color-ts-type-alias: var(--dark-color-ts-type-alias); + + --external-icon: var(--dark-external-icon); + --color-scheme: var(--dark-color-scheme); +} + +.always-visible, +.always-visible .tsd-signatures { + display: inherit !important; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + line-height: 1.2; +} + +h1 > a:not(.link), +h2 > a:not(.link), +h3 > a:not(.link), +h4 > a:not(.link), +h5 > a:not(.link), +h6 > a:not(.link) { + text-decoration: none; + color: var(--color-text); +} + +h1 { + font-size: 1.875rem; + margin: 0.67rem 0; +} + +h2 { + font-size: 1.5rem; + margin: 0.83rem 0; +} + +h3 { + font-size: 1.25rem; + margin: 1rem 0; +} + +h4 { + font-size: 1.05rem; + margin: 1.33rem 0; +} + +h5 { + font-size: 1rem; + margin: 1.5rem 0; +} + +h6 { + font-size: 0.875rem; + margin: 2.33rem 0; +} + +.uppercase { + text-transform: uppercase; +} + +dl, +menu, +ol, +ul { + margin: 1em 0; +} + +dd { + margin: 0 0 0 40px; +} + +.container { + max-width: 1700px; + padding: 0 2rem; +} + +/* Footer */ +footer { + border-top: 1px solid var(--color-accent); + padding-top: 1rem; + padding-bottom: 1rem; + max-height: 3.5rem; +} +.tsd-generator { + margin: 0 1em; +} + +.container-main { + margin: 0 auto; + /* toolbar, footer, margin */ + min-height: calc(100vh - 41px - 56px - 4rem); +} + +@keyframes fade-in { + from { + opacity: 0; + } + to { + opacity: 1; + } +} +@keyframes fade-out { + from { + opacity: 1; + visibility: visible; + } + to { + opacity: 0; + } +} +@keyframes fade-in-delayed { + 0% { + opacity: 0; + } + 33% { + opacity: 0; + } + 100% { + opacity: 1; + } +} +@keyframes fade-out-delayed { + 0% { + opacity: 1; + visibility: visible; + } + 66% { + opacity: 0; + } + 100% { + opacity: 0; + } +} +@keyframes pop-in-from-right { + from { + transform: translate(100%, 0); + } + to { + transform: translate(0, 0); + } +} +@keyframes pop-out-to-right { + from { + transform: translate(0, 0); + visibility: visible; + } + to { + transform: translate(100%, 0); + } +} +body { + background: var(--color-background); + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", + Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; + font-size: 16px; + color: var(--color-text); +} + +a { + color: var(--color-link); + text-decoration: none; +} +a:hover { + text-decoration: underline; +} +a.external[target="_blank"] { + background-image: var(--external-icon); + background-position: top 3px right; + background-repeat: no-repeat; + padding-right: 13px; +} + +code, +pre { + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; + padding: 0.2em; + margin: 0; + font-size: 0.875rem; + border-radius: 0.8em; +} + +pre { + position: relative; + white-space: pre; + white-space: pre-wrap; + word-wrap: break-word; + padding: 10px; + border: 1px solid var(--color-accent); +} +pre code { + padding: 0; + font-size: 100%; +} +pre > button { + position: absolute; + top: 10px; + right: 10px; + opacity: 0; + transition: opacity 0.1s; + box-sizing: border-box; +} +pre:hover > button, +pre > button.visible { + opacity: 1; +} + +blockquote { + margin: 1em 0; + padding-left: 1em; + border-left: 4px solid gray; +} + +.tsd-typography { + line-height: 1.333em; +} +.tsd-typography ul { + list-style: square; + padding: 0 0 0 20px; + margin: 0; +} +.tsd-typography .tsd-index-panel h3, +.tsd-index-panel .tsd-typography h3, +.tsd-typography h4, +.tsd-typography h5, +.tsd-typography h6 { + font-size: 1em; +} +.tsd-typography h5, +.tsd-typography h6 { + font-weight: normal; +} +.tsd-typography p, +.tsd-typography ul, +.tsd-typography ol { + margin: 1em 0; +} +.tsd-typography table { + border-collapse: collapse; + border: none; +} +.tsd-typography td, +.tsd-typography th { + padding: 6px 13px; + border: 1px solid var(--color-accent); +} +.tsd-typography thead, +.tsd-typography tr:nth-child(even) { + background-color: var(--color-background-secondary); +} + +.tsd-breadcrumb { + margin: 0; + padding: 0; + color: var(--color-text-aside); +} +.tsd-breadcrumb a { + color: var(--color-text-aside); + text-decoration: none; +} +.tsd-breadcrumb a:hover { + text-decoration: underline; +} +.tsd-breadcrumb li { + display: inline; +} +.tsd-breadcrumb li:after { + content: " / "; +} + +.tsd-comment-tags { + display: flex; + flex-direction: column; +} +dl.tsd-comment-tag-group { + display: flex; + align-items: center; + overflow: hidden; + margin: 0.5em 0; +} +dl.tsd-comment-tag-group dt { + display: flex; + margin-right: 0.5em; + font-size: 0.875em; + font-weight: normal; +} +dl.tsd-comment-tag-group dd { + margin: 0; +} +code.tsd-tag { + padding: 0.25em 0.4em; + border: 0.1em solid var(--color-accent); + margin-right: 0.25em; + font-size: 70%; +} +h1 code.tsd-tag:first-of-type { + margin-left: 0.25em; +} + +dl.tsd-comment-tag-group dd:before, +dl.tsd-comment-tag-group dd:after { + content: " "; +} +dl.tsd-comment-tag-group dd pre, +dl.tsd-comment-tag-group dd:after { + clear: both; +} +dl.tsd-comment-tag-group p { + margin: 0; +} + +.tsd-panel.tsd-comment .lead { + font-size: 1.1em; + line-height: 1.333em; + margin-bottom: 2em; +} +.tsd-panel.tsd-comment .lead:last-child { + margin-bottom: 0; +} + +.tsd-filter-visibility h4 { + font-size: 1rem; + padding-top: 0.75rem; + padding-bottom: 0.5rem; + margin: 0; +} +.tsd-filter-item:not(:last-child) { + margin-bottom: 0.5rem; +} +.tsd-filter-input { + display: flex; + width: fit-content; + width: -moz-fit-content; + align-items: center; + user-select: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + cursor: pointer; +} +.tsd-filter-input input[type="checkbox"] { + cursor: pointer; + position: absolute; + width: 1.5em; + height: 1.5em; + opacity: 0; +} +.tsd-filter-input input[type="checkbox"]:disabled { + pointer-events: none; +} +.tsd-filter-input svg { + cursor: pointer; + width: 1.5em; + height: 1.5em; + margin-right: 0.5em; + border-radius: 0.33em; + /* Leaving this at full opacity breaks event listeners on Firefox. + Don't remove unless you know what you're doing. */ + opacity: 0.99; +} +.tsd-filter-input input[type="checkbox"]:focus + svg { + transform: scale(0.95); +} +.tsd-filter-input input[type="checkbox"]:focus:not(:focus-visible) + svg { + transform: scale(1); +} +.tsd-checkbox-background { + fill: var(--color-accent); +} +input[type="checkbox"]:checked ~ svg .tsd-checkbox-checkmark { + stroke: var(--color-text); +} +.tsd-filter-input input:disabled ~ svg > .tsd-checkbox-background { + fill: var(--color-background); + stroke: var(--color-accent); + stroke-width: 0.25rem; +} +.tsd-filter-input input:disabled ~ svg > .tsd-checkbox-checkmark { + stroke: var(--color-accent); +} + +.tsd-theme-toggle { + padding-top: 0.75rem; +} +.tsd-theme-toggle > h4 { + display: inline; + vertical-align: middle; + margin-right: 0.75rem; +} + +.tsd-hierarchy { + list-style: square; + margin: 0; +} +.tsd-hierarchy .target { + font-weight: bold; +} + +.tsd-full-hierarchy:not(:last-child) { + margin-bottom: 1em; + padding-bottom: 1em; + border-bottom: 1px solid var(--color-accent); +} +.tsd-full-hierarchy, +.tsd-full-hierarchy ul { + list-style: none; + margin: 0; + padding: 0; +} +.tsd-full-hierarchy ul { + padding-left: 1.5rem; +} +.tsd-full-hierarchy a { + padding: 0.25rem 0 !important; + font-size: 1rem; + display: inline-flex; + align-items: center; + color: var(--color-text); +} + +.tsd-panel-group.tsd-index-group { + margin-bottom: 0; +} +.tsd-index-panel .tsd-index-list { + list-style: none; + line-height: 1.333em; + margin: 0; + padding: 0.25rem 0 0 0; + overflow: hidden; + display: grid; + grid-template-columns: repeat(3, 1fr); + column-gap: 1rem; + grid-template-rows: auto; +} +@media (max-width: 1024px) { + .tsd-index-panel .tsd-index-list { + grid-template-columns: repeat(2, 1fr); + } +} +@media (max-width: 768px) { + .tsd-index-panel .tsd-index-list { + grid-template-columns: repeat(1, 1fr); + } +} +.tsd-index-panel .tsd-index-list li { + -webkit-page-break-inside: avoid; + -moz-page-break-inside: avoid; + -ms-page-break-inside: avoid; + -o-page-break-inside: avoid; + page-break-inside: avoid; +} + +.tsd-flag { + display: inline-block; + padding: 0.25em 0.4em; + border-radius: 4px; + color: var(--color-comment-tag-text); + background-color: var(--color-comment-tag); + text-indent: 0; + font-size: 75%; + line-height: 1; + font-weight: normal; +} + +.tsd-anchor { + position: relative; + top: -100px; +} + +.tsd-member { + position: relative; +} +.tsd-member .tsd-anchor + h3 { + display: flex; + align-items: center; + margin-top: 0; + margin-bottom: 0; + border-bottom: none; +} + +.tsd-navigation.settings { + margin: 1rem 0; +} +.tsd-navigation > a, +.tsd-navigation .tsd-accordion-summary { + width: calc(100% - 0.25rem); + display: flex; + align-items: center; +} +.tsd-navigation a, +.tsd-navigation summary > span, +.tsd-page-navigation a { + display: flex; + width: calc(100% - 0.25rem); + align-items: center; + padding: 0.25rem; + color: var(--color-text); + text-decoration: none; + box-sizing: border-box; +} +.tsd-navigation a.current, +.tsd-page-navigation a.current { + background: var(--color-active-menu-item); +} +.tsd-navigation a:hover, +.tsd-page-navigation a:hover { + text-decoration: underline; +} +.tsd-navigation ul, +.tsd-page-navigation ul { + margin-top: 0; + margin-bottom: 0; + padding: 0; + list-style: none; +} +.tsd-navigation li, +.tsd-page-navigation li { + padding: 0; + max-width: 100%; +} +.tsd-nested-navigation { + margin-left: 3rem; +} +.tsd-nested-navigation > li > details { + margin-left: -1.5rem; +} +.tsd-small-nested-navigation { + margin-left: 1.5rem; +} +.tsd-small-nested-navigation > li > details { + margin-left: -1.5rem; +} + +.tsd-page-navigation ul { + padding-left: 1.75rem; +} + +#tsd-sidebar-links a { + margin-top: 0; + margin-bottom: 0.5rem; + line-height: 1.25rem; +} +#tsd-sidebar-links a:last-of-type { + margin-bottom: 0; +} + +a.tsd-index-link { + padding: 0.25rem 0 !important; + font-size: 1rem; + line-height: 1.25rem; + display: inline-flex; + align-items: center; + color: var(--color-text); +} +.tsd-accordion-summary { + list-style-type: none; /* hide marker on non-safari */ + outline: none; /* broken on safari, so just hide it */ +} +.tsd-accordion-summary::-webkit-details-marker { + display: none; /* hide marker on safari */ +} +.tsd-accordion-summary, +.tsd-accordion-summary a { + user-select: none; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + + cursor: pointer; +} +.tsd-accordion-summary a { + width: calc(100% - 1.5rem); +} +.tsd-accordion-summary > * { + margin-top: 0; + margin-bottom: 0; + padding-top: 0; + padding-bottom: 0; +} +.tsd-index-accordion .tsd-accordion-summary > svg { + margin-left: 0.25rem; +} +.tsd-index-content > :not(:first-child) { + margin-top: 0.75rem; +} +.tsd-index-heading { + margin-top: 1.5rem; + margin-bottom: 0.75rem; +} + +.tsd-kind-icon { + margin-right: 0.5rem; + width: 1.25rem; + height: 1.25rem; + min-width: 1.25rem; + min-height: 1.25rem; +} +.tsd-kind-icon path { + transform-origin: center; + transform: scale(1.1); +} +.tsd-signature > .tsd-kind-icon { + margin-right: 0.8rem; +} + +.tsd-panel { + margin-bottom: 2.5rem; +} +.tsd-panel.tsd-member { + margin-bottom: 4rem; +} +.tsd-panel:empty { + display: none; +} +.tsd-panel > h1, +.tsd-panel > h2, +.tsd-panel > h3 { + margin: 1.5rem -1.5rem 0.75rem -1.5rem; + padding: 0 1.5rem 0.75rem 1.5rem; +} +.tsd-panel > h1.tsd-before-signature, +.tsd-panel > h2.tsd-before-signature, +.tsd-panel > h3.tsd-before-signature { + margin-bottom: 0; + border-bottom: none; +} + +.tsd-panel-group { + margin: 4rem 0; +} +.tsd-panel-group.tsd-index-group { + margin: 2rem 0; +} +.tsd-panel-group.tsd-index-group details { + margin: 2rem 0; +} + +#tsd-search { + transition: background-color 0.2s; +} +#tsd-search .title { + position: relative; + z-index: 2; +} +#tsd-search .field { + position: absolute; + left: 0; + top: 0; + right: 2.5rem; + height: 100%; +} +#tsd-search .field input { + box-sizing: border-box; + position: relative; + top: -50px; + z-index: 1; + width: 100%; + padding: 0 10px; + opacity: 0; + outline: 0; + border: 0; + background: transparent; + color: var(--color-text); +} +#tsd-search .field label { + position: absolute; + overflow: hidden; + right: -40px; +} +#tsd-search .field input, +#tsd-search .title, +#tsd-toolbar-links a { + transition: opacity 0.2s; +} +#tsd-search .results { + position: absolute; + visibility: hidden; + top: 40px; + width: 100%; + margin: 0; + padding: 0; + list-style: none; + box-shadow: 0 0 4px rgba(0, 0, 0, 0.25); +} +#tsd-search .results li { + background-color: var(--color-background); + line-height: initial; + padding: 4px; +} +#tsd-search .results li:nth-child(even) { + background-color: var(--color-background-secondary); +} +#tsd-search .results li.state { + display: none; +} +#tsd-search .results li.current:not(.no-results), +#tsd-search .results li:hover:not(.no-results) { + background-color: var(--color-accent); +} +#tsd-search .results a { + display: flex; + align-items: center; + padding: 0.25rem; + box-sizing: border-box; +} +#tsd-search .results a:before { + top: 10px; +} +#tsd-search .results span.parent { + color: var(--color-text-aside); + font-weight: normal; +} +#tsd-search.has-focus { + background-color: var(--color-accent); +} +#tsd-search.has-focus .field input { + top: 0; + opacity: 1; +} +#tsd-search.has-focus .title, +#tsd-search.has-focus #tsd-toolbar-links a { + z-index: 0; + opacity: 0; +} +#tsd-search.has-focus .results { + visibility: visible; +} +#tsd-search.loading .results li.state.loading { + display: block; +} +#tsd-search.failure .results li.state.failure { + display: block; +} + +#tsd-toolbar-links { + position: absolute; + top: 0; + right: 2rem; + height: 100%; + display: flex; + align-items: center; + justify-content: flex-end; +} +#tsd-toolbar-links a { + margin-left: 1.5rem; +} +#tsd-toolbar-links a:hover { + text-decoration: underline; +} + +.tsd-signature { + margin: 0 0 1rem 0; + padding: 1rem 0.5rem; + border: 1px solid var(--color-accent); + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; + font-size: 14px; + overflow-x: auto; +} + +.tsd-signature-keyword { + color: var(--color-ts-keyword); + font-weight: normal; +} + +.tsd-signature-symbol { + color: var(--color-text-aside); + font-weight: normal; +} + +.tsd-signature-type { + font-style: italic; + font-weight: normal; +} + +.tsd-signatures { + padding: 0; + margin: 0 0 1em 0; + list-style-type: none; +} +.tsd-signatures .tsd-signature { + margin: 0; + border-color: var(--color-accent); + border-width: 1px 0; + transition: background-color 0.1s; +} +.tsd-description .tsd-signatures .tsd-signature { + border-width: 1px; +} + +ul.tsd-parameter-list, +ul.tsd-type-parameter-list { + list-style: square; + margin: 0; + padding-left: 20px; +} +ul.tsd-parameter-list > li.tsd-parameter-signature, +ul.tsd-type-parameter-list > li.tsd-parameter-signature { + list-style: none; + margin-left: -20px; +} +ul.tsd-parameter-list h5, +ul.tsd-type-parameter-list h5 { + font-size: 16px; + margin: 1em 0 0.5em 0; +} +.tsd-sources { + margin-top: 1rem; + font-size: 0.875em; +} +.tsd-sources a { + color: var(--color-text-aside); + text-decoration: underline; +} +.tsd-sources ul { + list-style: none; + padding: 0; +} + +.tsd-page-toolbar { + position: sticky; + z-index: 1; + top: 0; + left: 0; + width: 100%; + color: var(--color-text); + background: var(--color-background-secondary); + border-bottom: 1px var(--color-accent) solid; + transition: transform 0.3s ease-in-out; +} +.tsd-page-toolbar a { + color: var(--color-text); + text-decoration: none; +} +.tsd-page-toolbar a.title { + font-weight: bold; +} +.tsd-page-toolbar a.title:hover { + text-decoration: underline; +} +.tsd-page-toolbar .tsd-toolbar-contents { + display: flex; + justify-content: space-between; + height: 2.5rem; + margin: 0 auto; +} +.tsd-page-toolbar .table-cell { + position: relative; + white-space: nowrap; + line-height: 40px; +} +.tsd-page-toolbar .table-cell:first-child { + width: 100%; +} +.tsd-page-toolbar .tsd-toolbar-icon { + box-sizing: border-box; + line-height: 0; + padding: 12px 0; +} + +.tsd-widget { + display: inline-block; + overflow: hidden; + opacity: 0.8; + height: 40px; + transition: + opacity 0.1s, + background-color 0.2s; + vertical-align: bottom; + cursor: pointer; +} +.tsd-widget:hover { + opacity: 0.9; +} +.tsd-widget.active { + opacity: 1; + background-color: var(--color-accent); +} +.tsd-widget.no-caption { + width: 40px; +} +.tsd-widget.no-caption:before { + margin: 0; +} + +.tsd-widget.options, +.tsd-widget.menu { + display: none; +} +input[type="checkbox"] + .tsd-widget:before { + background-position: -120px 0; +} +input[type="checkbox"]:checked + .tsd-widget:before { + background-position: -160px 0; +} + +img { + max-width: 100%; +} + +.tsd-anchor-icon { + display: inline-flex; + align-items: center; + margin-left: 0.5rem; + vertical-align: middle; + color: var(--color-text); +} + +.tsd-anchor-icon svg { + width: 1em; + height: 1em; + visibility: hidden; +} + +.tsd-anchor-link:hover > .tsd-anchor-icon svg { + visibility: visible; +} + +.deprecated { + text-decoration: line-through !important; +} + +.warning { + padding: 1rem; + color: var(--color-warning-text); + background: var(--color-background-warning); +} + +.tsd-kind-project { + color: var(--color-ts-project); +} +.tsd-kind-module { + color: var(--color-ts-module); +} +.tsd-kind-namespace { + color: var(--color-ts-namespace); +} +.tsd-kind-enum { + color: var(--color-ts-enum); +} +.tsd-kind-enum-member { + color: var(--color-ts-enum-member); +} +.tsd-kind-variable { + color: var(--color-ts-variable); +} +.tsd-kind-function { + color: var(--color-ts-function); +} +.tsd-kind-class { + color: var(--color-ts-class); +} +.tsd-kind-interface { + color: var(--color-ts-interface); +} +.tsd-kind-constructor { + color: var(--color-ts-constructor); +} +.tsd-kind-property { + color: var(--color-ts-property); +} +.tsd-kind-method { + color: var(--color-ts-method); +} +.tsd-kind-call-signature { + color: var(--color-ts-call-signature); +} +.tsd-kind-index-signature { + color: var(--color-ts-index-signature); +} +.tsd-kind-constructor-signature { + color: var(--color-ts-constructor-signature); +} +.tsd-kind-parameter { + color: var(--color-ts-parameter); +} +.tsd-kind-type-literal { + color: var(--color-ts-type-literal); +} +.tsd-kind-type-parameter { + color: var(--color-ts-type-parameter); +} +.tsd-kind-accessor { + color: var(--color-ts-accessor); +} +.tsd-kind-get-signature { + color: var(--color-ts-get-signature); +} +.tsd-kind-set-signature { + color: var(--color-ts-set-signature); +} +.tsd-kind-type-alias { + color: var(--color-ts-type-alias); +} + +/* if we have a kind icon, don't color the text by kind */ +.tsd-kind-icon ~ span { + color: var(--color-text); +} + +* { + scrollbar-width: thin; + scrollbar-color: var(--color-accent) var(--color-icon-background); +} + +*::-webkit-scrollbar { + width: 0.75rem; +} + +*::-webkit-scrollbar-track { + background: var(--color-icon-background); +} + +*::-webkit-scrollbar-thumb { + background-color: var(--color-accent); + border-radius: 999rem; + border: 0.25rem solid var(--color-icon-background); +} + +/* mobile */ +@media (max-width: 769px) { + .tsd-widget.options, + .tsd-widget.menu { + display: inline-block; + } + + .container-main { + display: flex; + } + html .col-content { + float: none; + max-width: 100%; + width: 100%; + } + html .col-sidebar { + position: fixed !important; + overflow-y: auto; + -webkit-overflow-scrolling: touch; + z-index: 1024; + top: 0 !important; + bottom: 0 !important; + left: auto !important; + right: 0 !important; + padding: 1.5rem 1.5rem 0 0; + width: 75vw; + visibility: hidden; + background-color: var(--color-background); + transform: translate(100%, 0); + } + html .col-sidebar > *:last-child { + padding-bottom: 20px; + } + html .overlay { + content: ""; + display: block; + position: fixed; + z-index: 1023; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: rgba(0, 0, 0, 0.75); + visibility: hidden; + } + + .to-has-menu .overlay { + animation: fade-in 0.4s; + } + + .to-has-menu .col-sidebar { + animation: pop-in-from-right 0.4s; + } + + .from-has-menu .overlay { + animation: fade-out 0.4s; + } + + .from-has-menu .col-sidebar { + animation: pop-out-to-right 0.4s; + } + + .has-menu body { + overflow: hidden; + } + .has-menu .overlay { + visibility: visible; + } + .has-menu .col-sidebar { + visibility: visible; + transform: translate(0, 0); + display: flex; + flex-direction: column; + gap: 1.5rem; + max-height: 100vh; + padding: 1rem 2rem; + } + .has-menu .tsd-navigation { + max-height: 100%; + } +} + +/* one sidebar */ +@media (min-width: 770px) { + .container-main { + display: grid; + grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); + grid-template-areas: "sidebar content"; + margin: 2rem auto; + } + + .col-sidebar { + grid-area: sidebar; + } + .col-content { + grid-area: content; + padding: 0 1rem; + } +} +@media (min-width: 770px) and (max-width: 1399px) { + .col-sidebar { + max-height: calc(100vh - 2rem - 42px); + overflow: auto; + position: sticky; + top: 42px; + padding-top: 1rem; + } + .site-menu { + margin-top: 1rem; + } +} + +/* two sidebars */ +@media (min-width: 1200px) { + .container-main { + grid-template-columns: minmax(0, 1fr) minmax(0, 2.5fr) minmax(0, 20rem); + grid-template-areas: "sidebar content toc"; + } + + .col-sidebar { + display: contents; + } + + .page-menu { + grid-area: toc; + padding-left: 1rem; + } + .site-menu { + grid-area: sidebar; + } + + .site-menu { + margin-top: 1rem 0; + } + + .page-menu, + .site-menu { + max-height: calc(100vh - 2rem - 42px); + overflow: auto; + position: sticky; + top: 42px; + } +} diff --git a/docs/classes/API.html b/docs/classes/API.html new file mode 100644 index 00000000..488505b0 --- /dev/null +++ b/docs/classes/API.html @@ -0,0 +1,73 @@ +API | @meridian/web-sdk

Holds an API token and environment. Can be used to access an axios instance +for REST API calls, or openStream() for opening a tag stream. You can +create multiple API instances in case you want to use multiple tokens (e.g. +to show data from multiple locations or organizations on a single page).

+

Example

// Basic usage
const api = new MeridianSDK.API({
token: "<TOKEN GOES HERE>"
});

// Multiple APIs at once
const apiOrg1 = new MeridianSDK.API({
token: "Insert Org 1 token here"
});
MeridianSDK.createMap(elementOrg1, {
api: apiOrg1,
locationID: "Insert Org 1 location ID here",
floorID: "Insert Org 1 floor ID here"
});

const apiOrg2 = new MeridianSDK.API({
token: "Insert Org 2 token here"
});
MeridianSDK.createMap(elementOrg2, {
api: apiOrg2,
locationID: "Insert Org 2 location ID here",
floorID: "Insert Org 2 floor ID here"
}); +
+

Constructors

Properties

debouncedPlacemarkSearchBeta: ((options) => Promise<null | Record<string, any>[]>) = ...

[async] Returns an array of results or null when a request is cancelled +or debounced. Cancellation happens when a new request is made before the +previous request completes. The Debounce wait time is 6ms and the function +is invoked with the last arguments provided.

+

Both cancelled and debounced requests will eventually resolve with an array +of results (possibly empty).

+

Requests that throw an exception will return an empty array and output a +warning message to the Web console.

+

Local/Nearby Search integration. If both refFloorID AND refPoint are +provided, a second API call will be made and the results will be ordered +where placemarks closest to the refPoint (x/y) will appear first.

+

Placemark Search defaults to a single instance per API. This should work +fine for most use cases, but if you need to make multiple unique search +calls simultaneously, each will need a unique API instance like shown below.

+
// Search Widget One API Instance.
const apiInstance1 = new MeridianSDK.API({
token: "<TOKEN GOES HERE>"
});

// Search Widget Two API Instance
const apiInstance2 = new MeridianSDK.API({
token: "<TOKEN GOES HERE>"
}); +
+

Type declaration

    • (options): Promise<null | Record<string, any>[]>
    • Parameters

      Returns Promise<null | Record<string, any>[]>

environment: EnvOptions

Meridian environment ("production" or "eu"). Defaults to +"production".

+
language: undefined | "no" | "en" | "ar" | "ca" | "es" | "cs" | "de" | "fr" | "it" | "iw" | "ja" | "ko" | "nl" | "pt" | "ru" | "sv" | "uk" | "vi" | "zh-cn" | "zh-tw"

Language code that matches a supported language for this location. +Note: The LanguageCodes Type includes all possible language codes. See +"Translations" in Meridian Editor to learn exactly what languages are +supported for this location.

+
token: string

Meridian API token. Make sure to create a READ ONLY token for security. +Otherwise anyone using your page could take your token and modify all of +your Meridian data.

+

Accessors

  • get axios(): AxiosInstance
  • Returns AxiosInstance

    Deprecated

    Use the fetch methods instead

    +

Methods

  • [async] Returns the data of specified floor

    +

    Parameters

    • locationID: string
    • floorID: string

    Returns Promise<FloorData>

  • [async] Returns an array of all floors at the specified location

    +

    Parameters

    • locationID: string

    Returns Promise<LocationData[]>

  • [async] Returns an array of all placemarks on the specified location and +floor

    +

    Parameters

    • locationID: string
    • floorID: string

    Returns Promise<FloorData[]>

  • [async] Returns an array of all placemarks at the specified location

    +

    Parameters

    • locationID: string

    Returns Promise<FloorData[]>

  • [async] Returns an object URL for the given SVG URL

    +

    This object URL can be used as the src for an img tag.

    +

    This method fetches the SVG URL using your API token, since img tags +can't pass API tokens. The SVG URL can be obtained from the svg_url +property on a floor. When you're finished using this URL, you should call +URL.revokeObjectURL with the URL, so the browser can save memory by +releasing the data.

    +

    Parameters

    • svgURL: string

    Returns Promise<string>

  • [async] Returns dynamicly updated data for a specific tag.

    +

    Parameters

    • mac: string

    Returns Promise<TagData>

  • [async] Returns an array of all tags on the specified location and floor

    +

    Parameters

    • locationID: string
    • floorID: string

    Returns Promise<TagData[]>

  • [async] Returns an array of all tags at the specified location

    +

    Parameters

    • locationID: string

    Returns Promise<TagData[]>

  • [async] Returns an Object with routes to the destination (endPlacemarkID)

    +

    Parameters

    Returns Promise<Record<string, any>>

  • Opens a tag stream for a given location and floor. onInitialTags is +called with the full list of tags for that floor.

    +

    Note: When resourceType is set to "ZONE", onTagUpdate is called when +a tag/resource exits or enters the zone. Otherwise, onTagUpdate is +called every time a tag/resource is updated.

    +

    Parameters

    Returns Stream

    Example

    const api = new MeridianSDK.API({
    token: token,
    environment: "production"
    });

    const stream = api.openStream({
    locationID: locationID,
    floorID: floorID,
    onInitialTags: (tags) => {
    console.log("tags", tags);
    },
    onTagUpdate: (tag) => {
    console.log("update", tag);
    }
    });

    // Tag Zones

    const stream = api.openStream({
    locationID: locationID,
    floorID: floorID,
    resourceIDs: ["1218"],
    resourceType: "ZONE",
    onTagUpdate: (tag) => {
    console.log("update", tag);
    }
    });

    // call `stream.close()` when switching pages to avoid leaving the stream
    // open and wasting bandwidth in the background +
    +
\ No newline at end of file diff --git a/docs/examples/advanced-styling/index.html b/docs/examples/advanced-styling/index.html new file mode 100644 index 00000000..1066c04c --- /dev/null +++ b/docs/examples/advanced-styling/index.html @@ -0,0 +1,115 @@ + + + + + + Advanced styling | Meridian Web SDK + + + + + + + + + + + + + +
+
+

+ This style is intentionally a bit over the top to show you how + customizable these hooks are. +

+
+ + + + + diff --git a/docs/examples/annotation-kiosk/index.html b/docs/examples/annotation-kiosk/index.html new file mode 100644 index 00000000..57be22a3 --- /dev/null +++ b/docs/examples/annotation-kiosk/index.html @@ -0,0 +1,78 @@ + + + + + + Annotation Kiosk | Meridian Web SDK + + + + + + + + + + + + + +
+
+
+ In a scenario where the Map is presented in a fixed location (like a + kiosk), a custom marker can be used to inform the user/visitor where + they are. +
+
+ + + + + diff --git a/docs/examples/annotation-point/index.html b/docs/examples/annotation-point/index.html new file mode 100644 index 00000000..0e977a90 --- /dev/null +++ b/docs/examples/annotation-point/index.html @@ -0,0 +1,118 @@ + + + + + + Annotation Point | Meridian Web SDK + + + + + + + + + + + + + +
+ + + + + diff --git a/docs/examples/api-as-option/index.html b/docs/examples/api-as-option/index.html new file mode 100644 index 00000000..5a392a35 --- /dev/null +++ b/docs/examples/api-as-option/index.html @@ -0,0 +1,48 @@ + + + + + + Alternate (API as an option) | Meridian Web SDK + + + + + + + + + + + + + +
+ + + + + diff --git a/docs/examples/basic/index.html b/docs/examples/basic/index.html new file mode 100644 index 00000000..a6c4f168 --- /dev/null +++ b/docs/examples/basic/index.html @@ -0,0 +1,68 @@ + + + + + + Basic Usage | Meridian Web SDK + + + + + + + + + + + + + +
+
+ +
+ +
+ + + + + diff --git a/docs/examples/center-map/index.html b/docs/examples/center-map/index.html new file mode 100644 index 00000000..6f37bf4e --- /dev/null +++ b/docs/examples/center-map/index.html @@ -0,0 +1,106 @@ + + + + + + Center Map | Meridian Web SDK + + + + + + + + + + + + + + +
+
+
+
+

centerMap

+

Center the map while retaining the current scale.

+

+ meridianMap.centerMap() + +

+
+
+

zoomToPoint

+

Pan to x/y coordinate and scale to a given zoom factor.

+

+ meridianMap.zoomToPoint({x: 6825.5830078125, y: + 478.98833499103785, scale: 1}) + +

+
+
+

zoomToDefault

+

+ Set zoom to the default level and pan to the default position. +

+

+ meridianMap.zoomToDefault() + +

+
+
+
+ + + + diff --git a/docs/examples/container-styling/index.html b/docs/examples/container-styling/index.html new file mode 100644 index 00000000..88052eed --- /dev/null +++ b/docs/examples/container-styling/index.html @@ -0,0 +1,49 @@ + + + + + + Container styling | Meridian Web SDK + + + + + + + + + + + + + +
+ + + + + diff --git a/docs/examples/cypress/annotation-point/index.html b/docs/examples/cypress/annotation-point/index.html new file mode 100644 index 00000000..9520a645 --- /dev/null +++ b/docs/examples/cypress/annotation-point/index.html @@ -0,0 +1,122 @@ + + + + + + Example + + + + + + +
+ + + + diff --git a/docs/examples/cypress/basic/index.html b/docs/examples/cypress/basic/index.html new file mode 100644 index 00000000..ab0be1a2 --- /dev/null +++ b/docs/examples/cypress/basic/index.html @@ -0,0 +1,39 @@ + + + + + + Example + + + + + + +
+ + + + diff --git a/docs/examples/cypress/control-tags/index.html b/docs/examples/cypress/control-tags/index.html new file mode 100644 index 00000000..3f289840 --- /dev/null +++ b/docs/examples/cypress/control-tags/index.html @@ -0,0 +1,42 @@ + + + + + + Cypress - Control Tags + + + + + + +
+ + + + diff --git a/docs/examples/cypress/disable-click/index.html b/docs/examples/cypress/disable-click/index.html new file mode 100644 index 00000000..6732340a --- /dev/null +++ b/docs/examples/cypress/disable-click/index.html @@ -0,0 +1,42 @@ + + + + + + Example + + + + + + +
+ + + + diff --git a/docs/examples/cypress/filter-by-id/index.html b/docs/examples/cypress/filter-by-id/index.html new file mode 100644 index 00000000..0774c272 --- /dev/null +++ b/docs/examples/cypress/filter-by-id/index.html @@ -0,0 +1,47 @@ + + + + + + Example + + + + + + +
+ + + + diff --git a/docs/examples/cypress/filter-by-name/index.html b/docs/examples/cypress/filter-by-name/index.html new file mode 100644 index 00000000..ce0f7e83 --- /dev/null +++ b/docs/examples/cypress/filter-by-name/index.html @@ -0,0 +1,46 @@ + + + + + + Example + + + + + + +
+ + + + diff --git a/docs/examples/cypress/filter-by-tag-label/index.html b/docs/examples/cypress/filter-by-tag-label/index.html new file mode 100644 index 00000000..aabcbb2c --- /dev/null +++ b/docs/examples/cypress/filter-by-tag-label/index.html @@ -0,0 +1,46 @@ + + + + + + Example + + + + + + +
+ + + + diff --git a/docs/examples/cypress/filter-update/index.html b/docs/examples/cypress/filter-update/index.html new file mode 100644 index 00000000..46b8023d --- /dev/null +++ b/docs/examples/cypress/filter-update/index.html @@ -0,0 +1,42 @@ + + + + + + Example + + + + + + +
+ + + + diff --git a/docs/examples/cypress/hidden-placemarks/index.html b/docs/examples/cypress/hidden-placemarks/index.html new file mode 100644 index 00000000..7db1426b --- /dev/null +++ b/docs/examples/cypress/hidden-placemarks/index.html @@ -0,0 +1,40 @@ + + + + + + Example + + + + + + +
+ + + + diff --git a/docs/examples/cypress/lat-lng-to-map-point/index.html b/docs/examples/cypress/lat-lng-to-map-point/index.html new file mode 100644 index 00000000..ebeff0b4 --- /dev/null +++ b/docs/examples/cypress/lat-lng-to-map-point/index.html @@ -0,0 +1,115 @@ + + + + + + Lat/Lng to Map Point | Meridian Web SDK + + + + + + +
+ + + + diff --git a/docs/examples/cypress/load-placemarks/index.html b/docs/examples/cypress/load-placemarks/index.html new file mode 100644 index 00000000..ea038275 --- /dev/null +++ b/docs/examples/cypress/load-placemarks/index.html @@ -0,0 +1,40 @@ + + + + + + Cypress - Control Tags + + + + + + +
+ + + + diff --git a/docs/examples/cypress/load-tags/index.html b/docs/examples/cypress/load-tags/index.html new file mode 100644 index 00000000..fa68c7f4 --- /dev/null +++ b/docs/examples/cypress/load-tags/index.html @@ -0,0 +1,40 @@ + + + + + + Cypress - Load Tags + + + + + + +
+ + + + diff --git a/docs/examples/cypress/map-point-lat-lng/index.html b/docs/examples/cypress/map-point-lat-lng/index.html new file mode 100644 index 00000000..2b09b4fb --- /dev/null +++ b/docs/examples/cypress/map-point-lat-lng/index.html @@ -0,0 +1,78 @@ + + + + + + Map Point to Lat/Lng | Meridian Web SDK + + + + + + +
+ + + + diff --git a/docs/examples/cypress/polygon/index.html b/docs/examples/cypress/polygon/index.html new file mode 100644 index 00000000..284560fb --- /dev/null +++ b/docs/examples/cypress/polygon/index.html @@ -0,0 +1,57 @@ + + + + + + Example + + + + + + +
+ + + + diff --git a/docs/examples/cypress/polyline/index.html b/docs/examples/cypress/polyline/index.html new file mode 100644 index 00000000..21424d95 --- /dev/null +++ b/docs/examples/cypress/polyline/index.html @@ -0,0 +1,53 @@ + + + + + + Example + + + + + + +
+ + + + diff --git a/docs/examples/cypress/tag-search/index.html b/docs/examples/cypress/tag-search/index.html new file mode 100644 index 00000000..ab0be1a2 --- /dev/null +++ b/docs/examples/cypress/tag-search/index.html @@ -0,0 +1,39 @@ + + + + + + Example + + + + + + +
+ + + + diff --git a/docs/examples/cypress/utils/mock-all-assets.js b/docs/examples/cypress/utils/mock-all-assets.js new file mode 100644 index 00000000..28eff95d --- /dev/null +++ b/docs/examples/cypress/utils/mock-all-assets.js @@ -0,0 +1,204 @@ +export default { + asset_updates: [ + { + mac: "546C0E014866", + id: "546C0E014866", + name: "Chad", + location_id: "5198682008846336", + map_id: "5755685136498688", + x: 5027.271251150382, + y: 2165.735877420776, + event_type: "UPDATE", + timestamp: "1600202365", + created: "2019-06-07T21:36:12", + modified: "2020-09-15T20:05:04", + external_id: "", + image_url: "", + battery_level: 83, + control_x: 5450.225958858496, + control_y: 1065.3388213790097, + is_control_tag: false, + current_zone_id: "18", + tags: [ + { + id: "5876089909673984", + name: "CT-Human/Personnel", + }, + ], + tag_ids: ["5876089909673984"], + zone_events: [], + map_events: [], + }, + { + mac: "546C0E032A87", + id: "546C0E032A87", + name: "Jamboard - Blue", + location_id: "5198682008846336", + map_id: "5755685136498688", + x: 6656.849190078101, + y: 1915.9377465555629, + event_type: "UPDATE", + timestamp: "1600202374", + created: "2019-05-08T23:20:17", + modified: "2020-09-15T20:20:22", + external_id: "", + image_url: + "https://lh3.googleusercontent.com/g5vnSy-189JCHJlIKhZQO2OeTw9mYP197z6YtkEMjZcBW4UwH3f4kNC3sHMpMVGi0QUKu2w078R0D5W-sBE45xdl", + battery_level: 87, + control_x: 0, + control_y: 0, + is_control_tag: false, + current_zone_id: "12", + tags: [ + { + id: "4726953227845632", + name: "Jamboard", + }, + ], + tag_ids: ["4726953227845632"], + zone_events: [], + map_events: [], + }, + { + mac: "546C0E082AFB", + id: "546C0E082AFB", + name: "MM Precision", + location_id: "5198682008846336", + map_id: "5755685136498688", + x: 1144.0538972336537, + y: 2159.0853713716574, + event_type: "UPDATE", + timestamp: "1600202389", + created: "2018-10-01T21:47:56", + modified: "2020-09-15T20:05:08", + external_id: "", + image_url: + "https://lh3.googleusercontent.com/EWCXu4zCRC58hvva78Acnc0e1f6-Q9GAevC367J2tBuybFK4qBbqExzylm-Yd_C25qFtabLJlE6O0y8P0aBBGFms", + battery_level: 69, + control_x: 0, + control_y: 0, + is_control_tag: false, + current_zone_id: "0", + tags: [ + { + id: "5659797845442560", + name: "Multimeter", + }, + { + id: "5454888638349312", + name: "Fluke", + }, + ], + tag_ids: ["5659797845442560", "5454888638349312"], + zone_events: [], + map_events: [], + }, + { + mac: "546C0E014517", + id: "546C0E014517", + name: "Chad-Control", + location_id: "5198682008846336", + map_id: "5755685136498688", + x: 6506.614394882942, + y: 902.8928286905004, + event_type: "UPDATE", + timestamp: "1600202381", + created: "2019-06-07T21:54:13", + modified: "2020-09-15T19:05:38", + external_id: "", + image_url: "", + battery_level: 92, + control_x: 7041.762933740962, + control_y: 165.35773029922666, + is_control_tag: true, + current_zone_id: "18", + tags: [], + tag_ids: [], + zone_events: [], + map_events: [], + }, + { + mac: "546C0E014877", + id: "546C0E014877", + name: "Chad (second floor)", + location_id: "5198682008846336", + map_id: "5715161717407744", + x: 5027.271251150382, + y: 3165.735877420776, + event_type: "UPDATE", + timestamp: "1600202365", + created: "2019-06-07T21:36:12", + modified: "2020-09-15T20:05:04", + external_id: "", + image_url: "", + battery_level: 83, + control_x: 0, + control_y: 0, + is_control_tag: false, + current_zone_id: "18", + tags: [ + { + id: "5876089909673984", + name: "CT-Human/Personnel", + }, + ], + tag_ids: ["5876089909673984"], + zone_events: [], + map_events: [], + }, + { + mac: "546C0E032A98", + id: "546C0E032A98", + name: "Jamboard - Blue (second floor)", + location_id: "5198682008846336", + map_id: "5715161717407744", + x: 6656.849190078101, + y: 2915.9377465555629, + event_type: "UPDATE", + timestamp: "1600202374", + created: "2019-05-08T23:20:17", + modified: "2020-09-15T20:20:22", + external_id: "", + image_url: + "https://lh3.googleusercontent.com/g5vnSy-189JCHJlIKhZQO2OeTw9mYP197z6YtkEMjZcBW4UwH3f4kNC3sHMpMVGi0QUKu2w078R0D5W-sBE45xdl", + battery_level: 87, + control_x: 0, + control_y: 0, + is_control_tag: false, + current_zone_id: "12", + tags: [ + { + id: "4726953227845632", + name: "Jamboard", + }, + ], + tag_ids: ["4726953227845632"], + zone_events: [], + map_events: [], + }, + { + mac: "546C0E014528", + id: "546C0E014528", + name: "Chad-Control (second floor)", + location_id: "5198682008846336", + map_id: "5715161717407744", + x: 6506.614394882942, + y: 902.8928286905004, + event_type: "UPDATE", + timestamp: "1600202381", + created: "2019-06-07T21:54:13", + modified: "2020-09-15T19:05:38", + external_id: "", + image_url: "", + battery_level: 92, + control_x: 7041.762933740962, + control_y: 165.35773029922666, + is_control_tag: true, + current_zone_id: "18", + tags: [], + tag_ids: [], + zone_events: [], + map_events: [], + }, + ], +}; diff --git a/docs/examples/cypress/utils/mock-api.js b/docs/examples/cypress/utils/mock-api.js new file mode 100644 index 00000000..4d8bf48d --- /dev/null +++ b/docs/examples/cypress/utils/mock-api.js @@ -0,0 +1,128 @@ +import mockMaps from "./mock-maps.js"; +import mockPlacemarks from "./mock-placemarks.js"; +import mockSvgDefault from "./mock-svg.js"; +import mockAllAssets from "./mock-all-assets.js"; +import mockFloorAssets from "./mock-floor-assets.js"; + +// Show console warnings when accessing an undefined property, so it's easier to +// develop these fake APIs +function missingPropertyProxy(name, target) { + return new Proxy(target, { + get(target, property) { + if (property in target) { + return target[property]; + } + // Some library is trying to read various strange properties we don't + // implement, so let's ignore those isntead of showing a warning + if (typeof property !== "symbol" && !property.startsWith("@")) { + // eslint-disable-next-line no-console + console.warn(`[${name}] missing property "${property}"`); + } + return undefined; + }, + }); +} + +async function sleep(time) { + return new Promise((resolve) => { + setTimeout(resolve, time); + }); +} + +class MockAPI { + constructor() { + this.token = "[FAKE_TOKEN]"; + this.environment = "production"; + this._live = false; + this._loadTime = 1000; + this._updateInterval = 2000; + } + + async _sleep() { + await sleep(this._live ? this._loadTime : 0); + } + + async fetchTagsByFloor(_locationID, floorID) { + await this._sleep(); + return mockFloorAssets.filter((item) => item.map_id === floorID); + } + + async fetchTagsByLocation() { + await this._sleep(); + return mockAllAssets.asset_updates; + } + + async fetchPlacemarksByLocation() { + await this._sleep(); + return mockPlacemarks.results; + } + + async fetchPlacemarksByFloor(_locationID, floorID) { + await this._sleep(); + return mockPlacemarks.results.filter((item) => item.map === floorID); + } + + async fetchFloorsByLocation() { + await this._sleep(); + return mockMaps.results; + } + + async fetchSVG() { + await this._sleep(); + const blob = new Blob([mockSvgDefault], { type: "image/svg+xml" }); + return URL.createObjectURL(blob); + } + + async fetchFloorData(_locationID, floorID) { + await this._sleep(); + const floorData = mockMaps.results.find((item) => item.id === floorID); + if (!floorData) { + return null; + } + return floorData; + } + + openStream({ + locationID, + floorID, + onInitialTags, + onTagUpdate, + // onException, + // onClose + }) { + let interval; + const originalPositions = new Map(); + const fn = async () => { + const tags = await this.fetchTagsByFloor(locationID, floorID); + for (const { x, y, mac } of tags) { + originalPositions.set(mac, { x, y }); + } + onInitialTags(tags); + if (this._live) { + // Simulate a tiny amount of jitter around the actual (x, y) position + interval = setInterval(() => { + const tag = tags[rand(0, tags.length - 1)]; + const dx = rand(-1, 1) * 100; + const dy = rand(-1, 1) * 100; + const { x, y } = originalPositions.get(tag.mac); + tag.x = x + dx; + tag.y = y + dy; + onTagUpdate(tag); + }, this._updateInterval); + } + }; + fn(); + return { + close() { + clearInterval(interval); + }, + }; + } +} + +function rand(a, b) { + const c = b - a; + return a + Math.floor(c * Math.random()); +} + +export const mockAPI = missingPropertyProxy("API", new MockAPI()); diff --git a/docs/examples/cypress/utils/mock-floor-assets.js b/docs/examples/cypress/utils/mock-floor-assets.js new file mode 100644 index 00000000..9044b298 --- /dev/null +++ b/docs/examples/cypress/utils/mock-floor-assets.js @@ -0,0 +1,3 @@ +import allAssets from "./mock-all-assets.js"; + +export default [...allAssets.asset_updates]; diff --git a/docs/examples/cypress/utils/mock-maps.js b/docs/examples/cypress/utils/mock-maps.js new file mode 100644 index 00000000..18b3cc72 --- /dev/null +++ b/docs/examples/cypress/utils/mock-maps.js @@ -0,0 +1,75 @@ +export default { + next: null, + previous: null, + results: [ + { + modified: "2019-09-24T05:19:52", + created: "2019-01-10T03:59:44", + name: "Floor 02", + parent_map: "", + id: "5715161717407744", + image_url: null, + svg_url: + "https://edit.meridianapps.com/api/locations/5198682008846336/maps/5715161717407744.svg?hash=4cec6eb3eb0f260060032aeda829adc9&style=2fd1d99f4846f26c70b63fb0c624f87b&default_style=original", + unformatted_svg_url: + "https://edit.meridianapps.com/api/blob/NTE5ODY4MjAwODg0NjMzNi9tYXBzLzU5ODE2NDAwMy0xNTQ4ODEyNDI5/598164003-1548812429.svg", + name_is_generated: false, + is_default: false, + published: true, + group: "5433630015619072", + group_name: "Main Building", + level: 6.0, + level_label: "6", + width: 7213, + height: 4363, + width_meters: 89.54053977585014, + height_meters: 58.865857109010925, + units_per_meter: 29.796559264428097, + north_offset: 0.0, + north: 180.21617478502242, + gps_ref_points: + "37.3817320625443,-121.98187611782572,37.38221175434211,-121.98088565213226,2627.9443359375,27.90966796875,16,1606.395751953125", + overview_map_id: "", + is_outdoor: false, + zoom_max: 23.0, + zoom_scalar: 1.0, + invalid: false, + asset_tracking_control_tags: false, + }, + { + modified: "2019-09-24T05:19:09", + created: "2016-08-27T16:53:51", + name: "Floor 01", + parent_map: "", + id: "5755685136498688", + image_url: null, + svg_url: + "https://edit.meridianapps.com/api/locations/5198682008846336/maps/5755685136498688.svg?hash=23e120588dbde05795aca41889fb96ec&style=2fd1d99f4846f26c70b63fb0c624f87b&default_style=original", + name_is_generated: false, + is_default: true, + published: true, + group: "5433630015619072", + group_name: "Main Building", + level: 1, + level_label: "1", + width: 7213, + height: 4363, + width_meters: 88.22358949747179, + height_meters: 53.364691664698384, + units_per_meter: 81.75817874885607, + north_offset: 0.0, + north: 177.93109264506393, + // Below is an example of ref points that are in the top left and bottom right of a map + gps_ref_points: + "37.38184189317074,-121.98089271787921,37.382210607520115,-121.9818502664566,83.50489950180054,1184.5433292388916,7112.7607421875,4282.70947265625", + // Below is an example of ref points that are in the bottom left and top right of a map + // "37.38223405175838,-121.980855166953,37.38172040881185,-121.98188245296478,80,4304,7152.030798845043,32", + overview_map_id: "", + is_outdoor: false, + zoom_max: 23.0, + zoom_scalar: 1.0, + invalid: false, + asset_tracking_control_tags: false, + }, + ], +}; diff --git a/docs/examples/cypress/utils/mock-placemarks.js b/docs/examples/cypress/utils/mock-placemarks.js new file mode 100644 index 00000000..4f0eaef2 --- /dev/null +++ b/docs/examples/cypress/utils/mock-placemarks.js @@ -0,0 +1,1390 @@ +export default { + next: null, + previous: null, + results: [ + { + id: "5755685136498688_563194337060454422", + map: "5755685136498688", + x: 600.18408203125, + y: 301.6123046875, + name: "Campus Area", + type: "label_campus", + type_name: "Label (Department area)", + type_category: "Labels", + is_facility: false, + hide_on_map: false, + landmark: false, + is_disabled: false, + is_searchable: true, + }, + { + id: "5755685136498688_563194337060454411", + map: "5755685136498688", + x: 3600.18408203125, + y: 301.6123046875, + name: "Building Area", + type: "label_building", + type_name: "Label (Department area)", + type_category: "Labels", + is_facility: false, + hide_on_map: false, + landmark: false, + is_disabled: false, + is_searchable: true, + }, + { + id: "5755685136498688_563194337060454400", + map: "5755685136498688", + x: 5600.18408203125, + y: 2501.6123046875, + name: "Department Area", + type: "label_department", + type_name: "Label (Department area)", + type_category: "Labels", + is_facility: false, + hide_on_map: false, + landmark: false, + is_disabled: false, + is_searchable: true, + }, + { + id: "5755685136498688_5631943370604544", + map: "5755685136498688", + x: 5399.18408203125, + y: 2021.6123046875, + name: null, + type: "generic", + type_category: "Markers", + type_name: "Placemark", + color: "88689e", + description: + '

Fulfill all of your IoT needs. 

This "garage" is used for deep-dive sessions from our experts.

', + keywords: null, + image_url: + "https://lh3.googleusercontent.com/sr2nNXhutx-LV40npPVIgIsTulJyS0qhFueOTZBI1d2HSb-_xUBi-7EqFZpTvnxp68sqXmdua76VhYfFQj6xYwd3", + image_layout: "widescreen", + is_facility: false, + hide_on_map: false, + landmark: false, + is_disabled: false, + is_searchable: true, + }, + { + id: "5755685136498688_5634387206995968", + map: "5755685136498688", + x: 6818.5390625, + y: 3838.9501953125, + name: "Sputnik", + area: null, + hint: null, + uid: "1.580", + links: [], + type: "conference_room", + type_category: "Office", + type_name: "Conference Room", + color: "596c7c", + description: null, + keywords: null, + phone: null, + email: null, + url: null, + image_url: null, + image_layout: "widescreen", + is_facility: false, + hide_on_map: false, + landmark: false, + feed: "", + deep_link: null, + is_disabled: false, + category_ids: [], + categories: [], + is_searchable: true, + }, + { + id: "5755685136498688_5639274879778816", + map: "5755685136498688", + x: 1922.9970703125, + y: 1866.6455078125, + name: "Eating Area | All Hands", + area: null, + links: [], + type: "generic", + type_category: "Markers", + type_name: "Placemark", + color: "88689e", + description: null, + keywords: null, + phone: null, + email: null, + url: null, + image_url: null, + is_facility: false, + hide_on_map: false, + landmark: false, + feed: "", + deep_link: null, + is_disabled: false, + category_ids: [], + categories: [], + is_searchable: true, + }, + { + id: "5755685136498688_5643440998055936", + map: "5755685136498688", + x: 6825.5830078125, + y: 478.98833499103785, + name: "The Presidio", + area: null, + links: [], + type: "conference_room", + type_category: "Office", + type_name: "Conference Room", + color: "596c7c", + description: + "

Seats up to 20.

Fully integrated Skype room.

Powered by Crestron.

", + keywords: null, + phone: null, + email: null, + url: null, + image_url: + "https://lh3.googleusercontent.com/PbBQVA-kAH2dUnbMsjiI0N-Rw6t9ZHj5VFv2klcQmnRzrfZqchPVaMWKckIlWWQ2fQh0foIoWyOwZxoEd2O0ba552Q", + image_layout: "widescreen", + is_facility: false, + hide_on_map: false, + landmark: false, + feed: "", + deep_link: null, + is_disabled: false, + category_ids: [], + categories: [], + is_searchable: true, + }, + { + id: "5755685136498688_5645478960037888", + map: "5755685136498688", + x: 6029.6171875, + y: 1320.73974609375, + name: "Chargifi - FL1 - Hospitality", + area: null, + links: [], + type: "device_charging", + type_category: "Markers", + type_name: "Device Charging", + color: "88689e", + description: null, + keywords: null, + phone: null, + email: null, + url: null, + image_url: null, + image_layout: "widescreen", + is_facility: false, + hide_on_map: false, + landmark: false, + feed: "", + deep_link: null, + is_disabled: false, + category_ids: [], + categories: [], + is_searchable: true, + }, + { + id: "5755685136498688_5653164804014080", + map: "5755685136498688", + x: 3092.2919921875, + y: 3789.642578125, + name: "PurpleTie Dry Cleaning Drop Off", + area: null, + links: [{ link: "page/5699866936213504" }], + type: "generic", + type_category: "Markers", + type_name: "Placemark", + color: "88689e", + description: + "

 

PurpleTie Dry Cleaning is a convenient service available at work! It's as easy as 1-2-3. 


1- Sign up and print out the Confirmation Page to include with your items.


2-Put your items and the Confirmation Page in a bag, and bring it to the PurpleTie station near you.


3- Place your bag at the bottom of the PurpleTie station. 

What happens next? The PurpleTie experts will pick up your items, take the utmost care of your belongings and a driver will deliver your completed order back to the designated PurpleTie station during the next service day and time window as posted.  


To find the kiosk: walk out of the lobby, make an immediate left turn (before you get to the elevators). When you get to the end of the hallway, make another left. The kiosk is located straight ahead.    

", + keywords: null, + phone: null, + email: null, + url: null, + image_url: null, + image_layout: "widescreen", + is_facility: false, + hide_on_map: false, + landmark: false, + feed: "", + deep_link: null, + is_disabled: false, + category_ids: [], + categories: [], + is_searchable: true, + }, + { + id: "5755685136498688_5661458385862656", + map: "5755685136498688", + x: 4469.38330078125, + y: 2750.66064453125, + name: "FL01 Water Fountain", + area: null, + links: [], + type: "water_fountain", + type_category: "Water Fountain", + type_name: "Water Fountain", + color: "f2af1d", + description: null, + keywords: null, + phone: null, + email: null, + url: null, + image_url: null, + image_layout: "widescreen", + is_facility: true, + hide_on_map: false, + landmark: false, + feed: "", + deep_link: null, + is_disabled: false, + category_ids: [], + categories: [], + is_searchable: true, + }, + { + id: "5755685136498688_5668600916475904", + map: "5755685136498688", + x: 3768.5107421875, + y: 3645.24169921875, + name: "Lobby", + area: "3147.861,4092.532,3151.383,3381.094,4388.378,3388.138,4391.117,4103.098", + links: [], + type: "information", + type_category: "Information", + type_name: "Information", + color: "f2af1d", + description: null, + keywords: "Main, Entrance, Lobby, Reception", + phone: null, + email: null, + url: null, + image_url: null, + image_layout: "widescreen", + is_facility: true, + hide_on_map: false, + landmark: false, + feed: "", + deep_link: null, + is_disabled: false, + category_ids: [], + categories: [], + is_searchable: true, + }, + { + parent_pane: "5755685136498688_5651442522128384", + child_pane_ne: "", + child_pane_se: "", + child_pane_sw: "", + child_pane_nw: "5755685136498688_5743114304094208", + left: 5324, + top: 537, + width: 0, + height: 0, + modified: "2019-09-24T05:19:11", + created: "2016-12-19T19:11:25", + id: "5755685136498688_5673385510043648", + map: "5755685136498688", + x: 5282.958984375, + y: 3853.0380859375, + latitude: 37.38215607501162, + longitude: -121.98159912048112, + related_map: "", + name: "Pioneer", + area: null, + hint: null, + uid: "1.590", + links: [], + type: "conference_room", + type_category: "Office", + type_name: "Conference Room", + color: "596c7c", + description: null, + image_url: null, + image_layout: "widescreen", + is_facility: false, + hide_on_map: false, + landmark: false, + feed: "", + deep_link: null, + is_disabled: false, + category_ids: ["5639274879778816"], + categories: [{ id: "5639274879778816", name: "Conference Rooms" }], + is_searchable: true, + }, + { + id: "5755685136498688_5678807906254848", + map: "5755685136498688", + x: 5687.98583984375, + y: 767.7900390625, + name: "Screws", + area: null, + links: [], + type: "generic", + type_category: "Markers", + type_name: "Placemark", + color: "88689e", + description: null, + keywords: null, + phone: null, + email: null, + url: null, + image_url: null, + image_layout: "widescreen", + is_facility: false, + hide_on_map: false, + landmark: false, + feed: "", + deep_link: null, + is_disabled: false, + category_ids: [], + categories: [], + is_searchable: true, + }, + { + id: "5755685136498688_5688737870643200", + map: "5755685136498688", + x: 4902.5859375, + y: 1951.1728515625, + name: "Chargifi - FL1 - Team Desk Front", + area: null, + links: [], + type: "device_charging", + type_category: "Markers", + type_name: "Device Charging", + color: "88689e", + description: null, + keywords: null, + phone: null, + email: null, + url: null, + image_url: null, + image_layout: "widescreen", + is_facility: false, + hide_on_map: false, + landmark: false, + feed: "", + deep_link: null, + is_disabled: false, + category_ids: [], + categories: [], + is_searchable: true, + }, + { + id: "5755685136498688_5689792285114368", + map: "5755685136498688", + x: 6867.8466796875, + y: 2077.9638671875, + name: "Muir Woods", + area: null, + links: [], + type: "conference_room", + type_category: "Office", + type_name: "Conference Room", + color: "596c7c", + description: + "

Comfortably seats 6

Fully Skype enabled.

Look at the wall to find a surprise!

", + keywords: null, + phone: null, + email: null, + url: null, + image_url: + "https://lh3.googleusercontent.com/_HEyFYI1h3nSEmEi63SUOZThM5dgjZMUd439Ss0vhv3yGVEaspEuGEWOe19AiTWwTFIAdhy7xyTEqU0XmgcQamEW", + image_layout: "widescreen", + is_facility: false, + hide_on_map: false, + landmark: false, + feed: "", + deep_link: null, + is_disabled: false, + category_ids: [], + categories: [], + is_searchable: true, + }, + { + id: "5755685136498688_5693417237512192", + map: "5755685136498688", + x: 5025.85498046875, + y: 2976.06689453125, + name: "FL01 Men's Restroom", + area: null, + links: [], + type: "restroom_men", + type_category: "Restrooms", + type_name: "Restroom (Men's)", + color: "f2af1d", + description: null, + keywords: null, + phone: null, + email: null, + url: null, + image_url: null, + image_layout: "widescreen", + is_facility: true, + hide_on_map: false, + landmark: false, + feed: "", + deep_link: null, + is_disabled: false, + category_ids: ["5713573250596864", "5645784439586816"], + categories: [ + { id: "5713573250596864", name: "Floor 1" }, + { id: "5645784439586816", name: "Restroom" }, + ], + is_searchable: true, + }, + { + id: "5755685136498688_5697982787747840", + map: "5755685136498688", + x: 5599.9365234375, + y: 950.9326171875, + name: "The Experience Zone", + area: null, + links: [], + type: "generic", + type_category: "Markers", + type_name: "Placemark", + color: "88689e", + description: + "

The experience zone is a combination of multiple demo kiosks, which show our vision of use cases for each industry.


The Workplace

The Retail Store

The Hospitality Zone

The Warehouse

", + keywords: null, + phone: null, + email: null, + url: null, + image_url: null, + image_layout: "widescreen", + is_facility: false, + hide_on_map: false, + landmark: false, + feed: "", + deep_link: null, + is_disabled: false, + category_ids: [], + categories: [], + is_searchable: true, + }, + { + id: "5755685136498688_5700735861784576", + map: "5755685136498688", + x: 6177.5400390625, + y: 3853.0380859375, + name: "Mariner", + area: null, + hint: null, + uid: "1.586", + links: [], + type: "conference_room", + type_category: "Office", + type_name: "Conference Room", + color: "596c7c", + description: null, + keywords: null, + phone: null, + email: null, + url: null, + image_url: null, + image_layout: "widescreen", + is_facility: false, + hide_on_map: false, + landmark: false, + feed: "", + deep_link: null, + is_disabled: false, + category_ids: [], + categories: [], + is_searchable: true, + }, + { + id: "5755685136498688_5707702298738688", + map: "5755685136498688", + x: 5749.620361328125, + y: 3786.12060546875, + name: "Training Rooms", + area: "4396.342,3296.355,7118.827,3306.921,7118.827,4275.463,4396.342,4275.463", + links: [], + type: "training", + type_category: "Office", + type_name: "Training Room", + color: "596c7c", + description: `

A nodes can have as many path segments connecting to other nodes as needed. For example, a T-intersection consists of one node at the intersection point joined by 3 segments that lead to other nodes.

WARNING: The nodes and segments must all be interconnected for a proper route to be displayed. A discontinuity in the nodes and segments will result in a less desirable route for the user.

Generally, your routes should be fully interconnected. In order to assist with that, disconnected routes are shown in different colors. This means that if an area on the routing graph is all one color, you can get from any point to any other point without using a portal or going outside. Make sure to connect all parts of your maps together.

Path segments are always straight lines, but by adding many nodes joined by segments to your route, you can approximate a curve. A circular hallway or roundabout may require many nodes with very small line segments.

Transitions from one floor to the next can be done by configuring the node as a portal. Portals are ingress and egress points that my be used to represent elevators, escalators, stairs, or any other way of connecting two or more floors together. A normal node has a white fill, but when a node is configured as a portal, it will have a blue fill.

A nodes can have as many path segments connecting to other nodes as needed. For example, a T-intersection consists of one node at the intersection point joined by 3 segments that lead to other nodes.

WARNING: The nodes and segments must all be interconnected for a proper route to be displayed. A discontinuity in the nodes and segments will result in a less desirable route for the user.

Generally, your routes should be fully interconnected. In order to assist with that, disconnected routes are shown in different colors. This means that if an area on the routing graph is all one color, you can get from any point to any other point without using a portal or going outside. Make sure to connect all parts of your maps together.

Path segments are always straight lines, but by adding many nodes joined by segments to your route, you can approximate a curve. A circular hallway or roundabout may require many nodes with very small line segments.

Transitions from one floor to the next can be done by configuring the node as a portal. Portals are ingress and egress points that my be used to represent elevators, escalators, stairs, or any other way of connecting two or more floors together. A normal node has a white fill, but when a node is configured as a portal, it will have a blue fill.

`, + keywords: null, + phone: null, + email: null, + url: null, + image_url: null, + image_layout: null, + is_facility: false, + hide_on_map: false, + landmark: false, + feed: "", + deep_link: null, + is_disabled: false, + category_ids: [], + categories: [], + is_searchable: true, + }, + { + id: "5755685136498688_5709068098338816", + map: "5755685136498688", + x: 5867.6064453125, + y: 2025.1342672673054, + name: "Union Square", + area: null, + links: [], + type: "conference_room", + type_category: "Office", + type_name: "Conference Room", + color: "596c7c", + description: + "

Can seat up to 12.

Skype enabled room.

Powered by Crestron.

", + keywords: null, + phone: null, + email: null, + url: null, + image_url: + "https://lh3.googleusercontent.com/ZoinmnLNXKeu2KsxZ6L-N-4mWpHADA3aCJ6XN-ht_17iN0BKrf9GuXrv2gWEQVOT4TjkwfFB94poOMnQi82AsRE", + image_layout: "widescreen", + is_facility: false, + hide_on_map: false, + landmark: false, + feed: "", + deep_link: null, + is_disabled: false, + category_ids: [], + categories: [], + is_searchable: true, + }, + { + id: "5755685136498688_5717271485874176", + map: "5755685136498688", + x: 3204.9951171875, + y: 1465.140625, + name: "Coffee Bar", + area: null, + links: [], + type: "generic", + type_category: "Markers", + type_name: "Placemark", + color: "88689e", + description: null, + keywords: null, + phone: null, + email: null, + url: null, + image_url: null, + image_layout: "widescreen", + is_facility: false, + hide_on_map: false, + landmark: false, + feed: "", + deep_link: null, + is_disabled: false, + category_ids: [], + categories: [ + { id: "6286567746830336", name: "Dolby/Widescreen" }, + { id: "6286567746830337", name: "Conference Room" }, + ], + is_searchable: true, + }, + { + id: "5755685136498688_5718998062727168", + map: "5755685136498688", + x: 6867.8466796875, + y: 1739.8544921875, + name: "Golden Gate", + area: null, + links: [], + type: "conference_room", + type_category: "Office", + type_name: "Conference Room", + color: "596c7c", + description: "

Comfortably seats 6.

Skype enabled room.

", + keywords: null, + phone: null, + email: null, + url: null, + image_url: + "https://lh3.googleusercontent.com/MQ3CL6fKn19qShzo3gTThvLYc9WJlGWFFdHRE5XmgVO4Ti39EaiH-VDfpDXSTlozzNyERzn1TTgeI6_FBKgZJr_QuA", + image_layout: "widescreen", + is_facility: false, + hide_on_map: false, + landmark: false, + feed: "", + deep_link: null, + is_disabled: false, + category_ids: [], + categories: [], + is_searchable: true, + }, + { + id: "5755685136498688_5721036024709120", + map: "5755685136498688", + x: 4902.5859375, + y: 2183.623046875, + name: "Chargifi - FL1 - Team Desk Back", + area: null, + links: [], + type: "device_charging", + type_category: "Markers", + type_name: "Device Charging", + color: "88689e", + description: null, + keywords: null, + phone: null, + email: null, + url: null, + image_url: null, + image_layout: "widescreen", + is_facility: false, + hide_on_map: false, + landmark: false, + feed: "", + deep_link: null, + is_disabled: false, + category_ids: [], + categories: [], + is_searchable: true, + }, + { + id: "5755685136498688_5724160613416960", + map: "5755685136498688", + x: 3740.3349609375, + y: 2754.1826171875, + name: "FL01 Elevator Lobby", + area: null, + links: [], + type: "elevator", + type_category: "Elevators", + type_name: "Elevator", + color: "596c7c", + description: null, + keywords: null, + phone: null, + email: null, + url: null, + image_url: null, + image_layout: "widescreen", + is_facility: true, + hide_on_map: false, + landmark: false, + feed: "", + deep_link: null, + is_disabled: false, + category_ids: [], + categories: [], + is_searchable: true, + }, + { + id: "5755685136498688_5728116278296576", + map: "5755685136498688", + x: 4465.861328125, + y: 887.537109375, + name: "The Multitaction Wall", + area: null, + links: [], + type: "generic", + type_category: "Markers", + type_name: "Placemark", + color: "88689e", + description: + "

Please take a seat and enjoy our beautiful lounge area and advanced Multitaction wall.

", + keywords: null, + phone: null, + email: null, + url: null, + image_url: + "https://lh3.googleusercontent.com/7DNscmE9YH-13ymvh5bfdRrdgzyNi5GFxFqf2UGZsUqFISWBS7QDHKFsfHNm0NZVRq8qNEMFVzbn47wlrJWtU9rQjQ", + image_layout: "widescreen", + is_facility: false, + hide_on_map: false, + landmark: false, + feed: "", + deep_link: null, + is_disabled: false, + category_ids: [], + categories: [], + is_searchable: true, + }, + { + id: "5755685136498688_5733935958982656", + map: "5755685136498688", + x: 5022.3330078125, + y: 2567.51806640625, + name: "FL01 Women's Restroom", + area: null, + links: [], + type: "restroom_women", + type_category: "Restrooms", + type_name: "Restroom (Women's)", + color: "f2af1d", + description: null, + keywords: null, + phone: null, + email: null, + url: null, + image_url: null, + image_layout: "widescreen", + is_facility: true, + hide_on_map: false, + landmark: false, + feed: "", + deep_link: null, + is_disabled: false, + category_ids: ["5713573250596864", "5645784439586816"], + categories: [ + { id: "5713573250596864", name: "Floor 1" }, + { id: "5645784439586816", name: "Restroom" }, + ], + is_searchable: true, + }, + { + id: "5755685136498688_5738600293466112", + map: "5755685136498688", + x: 4677.1796875, + y: 3853.0380859375, + name: "Voyager", + area: null, + hint: null, + uid: "1.596", + links: [], + type: "conference_room", + type_category: "Office", + type_name: "Conference Room", + color: "596c7c", + description: null, + keywords: null, + phone: null, + email: null, + url: null, + image_url: null, + image_layout: "widescreen", + is_facility: false, + hide_on_map: false, + landmark: false, + feed: "", + deep_link: null, + is_disabled: false, + category_ids: ["5639274879778816"], + categories: [{ id: "5639274879778816", name: "Conference Rooms" }], + is_searchable: true, + }, + { + id: "5755685136498688_5750085036015616", + map: "5755685136498688", + x: 4353.158203125, + y: 1690.546875, + name: "Customer Experience Center", + area: "4384.856,63.396,4381.334,1077.724,4145.362,1077.724,4155.928,1447.531,4215.801,1440.487,4222.845,1627.151,4226.367,1778.596,4159.45,1778.596,4162.972,1933.563,4670.136,1940.607,4677.18,2370.288,6621.309,2370.288,6621.309,2447.771,7117.907,2444.249,7121.429,59.874", + links: [], + type: "generic", + type_category: "Markers", + type_name: "Placemark", + color: "88689e", + description: + "

Welcome to the Customer Experience Center!


Here at the CEC, we host the majority of the customer meetings that occur on the Santa Clara campus. 


Our experience ranges from state-of-the-art conference rooms; to advanced demonstrations from our own internal experts here at Aruba. 



", + keywords: "CEC, Customer, Experience, Center", + phone: null, + email: null, + url: null, + image_url: + "https://lh3.googleusercontent.com/pWhnf6EeHdIIZ4z5jAmiQjvLt8avBUqIrRchzKfmvGCh_Cfw9DIFa06UkX6XMJY_D0YbjzHBbhZAXzzQj1iQVtM", + image_layout: "widescreen", + is_facility: false, + hide_on_map: false, + landmark: false, + feed: "", + deep_link: null, + is_disabled: false, + category_ids: [], + categories: [], + is_searchable: true, + }, + { + id: "5755685136498688_5753952654065664", + map: "5755685136498688", + x: 5272.39306640625, + y: 648.04296875, + name: "Chargifi - FL1 - Focal Desk", + area: null, + links: [], + type: "device_charging", + type_category: "Markers", + type_name: "Device Charging", + color: "88689e", + description: null, + keywords: null, + phone: null, + email: null, + url: null, + image_url: null, + image_layout: "widescreen", + is_facility: false, + hide_on_map: false, + landmark: false, + feed: "", + deep_link: null, + is_disabled: false, + category_ids: [], + categories: [], + is_searchable: true, + }, + { + id: "5755685136498688_5754903989321728", + map: "5755685136498688", + x: 6846.71484375, + y: 1225.646484375, + name: "Woodside", + area: null, + links: [], + type: "conference_room", + type_category: "Office", + type_name: "Conference Room", + color: "596c7c", + description: + "

Seats up to 20.

Fully integrated Skype room.

Powered by Crestron.

", + keywords: null, + phone: null, + email: null, + url: null, + image_url: null, + image_layout: "widescreen", + is_facility: false, + hide_on_map: false, + landmark: false, + feed: "", + deep_link: null, + is_disabled: false, + category_ids: [], + categories: [], + is_searchable: true, + }, + { + id: "5755685136498688_5757334940811264", + map: "5755685136498688", + x: 2100.856689453125, + y: 2842.23193359375, + name: "Cafe", + area: null, + links: [], + type: "cafe", + type_category: "Recreation", + type_name: "Cafe", + color: "5ba68d", + description: null, + keywords: null, + phone: null, + email: null, + url: null, + image_url: null, + image_layout: "widescreen", + is_facility: false, + hide_on_map: false, + landmark: false, + feed: "", + deep_link: null, + is_disabled: false, + category_ids: [], + categories: [], + is_searchable: true, + }, + { + id: "5755685136498688_5764640680181760", + map: "5755685136498688", + x: 4670.1357421875, + y: 299.36767578125, + name: "The Aruba Stadium", + area: null, + links: [], + type: "generic", + type_category: "Markers", + type_name: "Placemark", + color: "88689e", + description: "

Take a seat and enjoy the view from up high!

", + keywords: null, + phone: null, + email: null, + url: null, + image_url: + "https://lh3.googleusercontent.com/v7S1rgMdNZF1IPTXhT_jlD8cST9pd_geDd1GzoIxFR9qEJIU3H1dAS9UG6bacvrUkk2arl1L8wLHgmLPyuwnL-He2A", + image_layout: "widescreen", + is_facility: false, + hide_on_map: false, + landmark: false, + feed: "", + deep_link: null, + is_disabled: false, + category_ids: [], + categories: [], + }, + { + id: "5755685136498688_5766466041282560", + map: "5755685136498688", + x: 1981.9901123046875, + y: 4096.05419921875, + name: "Facilities Storage", + area: null, + links: [], + type: "generic", + type_category: "Markers", + type_name: "Placemark", + color: "88689e", + description: null, + keywords: null, + phone: null, + email: null, + url: null, + image_url: null, + image_layout: "widescreen", + is_facility: false, + hide_on_map: true, + landmark: false, + feed: "", + deep_link: null, + is_disabled: false, + category_ids: [], + categories: [], + is_searchable: true, + }, + { + id: "5755685136498688_5766466041281460", + map: "5755685136498688", + x: 1981.9901123046875, + y: 4096.05419921875, + name: "Executive Bathroom (not searchable)", + area: null, + links: [], + type: "restroom", + type_category: "Restrooms", + type_name: "Restroom (Men's)", + color: "88689e", + description: null, + keywords: null, + phone: null, + email: null, + url: null, + image_url: null, + image_layout: "widescreen", + is_facility: false, + hide_on_map: false, + is_searchable: false, + landmark: false, + feed: "", + deep_link: null, + is_disabled: false, + category_ids: [], + categories: [], + }, + { + id: "5755685136498688_5858330013335552", + map: "5755685136498688", + x: 3103.053554404527, + y: 3423.357421875, + name: "Shipping Drop off", + area: null, + links: [], + type: "mailbox", + type_category: "Mailbox", + type_name: "Mailbox", + color: "5ba68d", + description: null, + keywords: null, + phone: null, + email: null, + url: null, + image_url: null, + image_layout: "widescreen", + is_facility: true, + hide_on_map: false, + landmark: false, + feed: "", + deep_link: null, + is_disabled: false, + category_ids: [], + categories: [], + is_searchable: true, + }, + { + id: "5755685136498688_6237196809142272", + map: "5755685136498688", + x: 3163.514022305608, + y: 3162.7314016479068, + name: "UPS Lockers", + area: null, + links: [], + type: "mailbox", + type_category: "Mailbox", + type_name: "Mailbox", + color: "5ba68d", + description: null, + keywords: null, + phone: null, + email: null, + url: null, + image_url: null, + image_layout: "widescreen", + is_facility: true, + hide_on_map: false, + landmark: false, + feed: "", + deep_link: null, + is_disabled: false, + category_ids: [], + categories: [], + is_searchable: true, + }, + { + id: "5715161717407744_563194337060454455", + map: "5715161717407744", + x: 600.18408203125, + y: 301.6123046875, + name: "Campus Area", + type: "label_campus", + type_name: "Label (Department area)", + type_category: "Labels", + is_facility: false, + hide_on_map: false, + landmark: false, + is_disabled: false, + is_searchable: true, + }, + { + id: "5715161717407744_563194337060454444", + map: "5715161717407744", + x: 3600.18408203125, + y: 301.6123046875, + name: "Building Area", + type: "label_building", + type_name: "Label (Department area)", + type_category: "Labels", + is_facility: false, + hide_on_map: false, + landmark: false, + is_disabled: false, + is_searchable: true, + }, + { + id: "5715161717407744_563194337060454433", + map: "5715161717407744", + x: 5600.18408203125, + y: 2501.6123046875, + name: "Department Area", + type: "label_department", + type_name: "Label (Department area)", + type_category: "Labels", + is_facility: false, + hide_on_map: false, + landmark: false, + is_disabled: false, + is_searchable: true, + }, + { + id: "5715161717407744_4814261133246464", + map: "5715161717407744", + x: 5867.13671875, + y: 1075.80859375, + name: "Chargifi - FL6 - 6.269", + area: null, + links: [], + type: "device_charging", + type_category: "Markers", + type_name: "Device Charging", + color: "88689e", + description: "None", + keywords: null, + phone: null, + email: null, + url: null, + image_url: null, + image_layout: "widescreen", + is_facility: false, + hide_on_map: false, + landmark: false, + feed: "", + deep_link: null, + is_disabled: false, + category_ids: [], + categories: [], + is_searchable: true, + }, + { + id: "5715161717407744_4825980946350080", + map: "5715161717407744", + x: 4503.734375, + y: 2493.97265625, + name: "6.354", + area: null, + hint: null, + uid: "6.354", + links: [], + type: "generic", + type_category: "Markers", + type_name: "Placemark", + color: "88689e", + description: null, + keywords: null, + phone: null, + email: null, + url: null, + image_url: null, + image_layout: "widescreen", + is_facility: false, + hide_on_map: false, + landmark: false, + feed: "", + deep_link: null, + is_disabled: false, + category_ids: [], + categories: [], + is_searchable: true, + }, + { + id: "5715161717407744_4832691901693952", + map: "5715161717407744", + x: 3303.734375, + y: 2493.97265625, + name: "Warner Bros", + area: null, + links: [], + type: "conference_room", + type_category: "Office", + type_name: "Conference Room", + color: "596c7c", + description: null, + keywords: null, + phone: null, + email: "VRS_SantaClara_SLR01_06FL_CONF-WarnerBros@hpe.com", + url: null, + image_url: null, + image_layout: "widescreen", + is_facility: false, + hide_on_map: false, + landmark: false, + feed: "", + deep_link: null, + is_disabled: false, + category_ids: [], + categories: [], + is_searchable: true, + }, + { + id: "5715161717407744_5067160539889664", + map: "5715161717407744", + x: 4981.800982803106, + y: 1185.23828125, + name: "6.280", + area: null, + hint: null, + uid: "6.280", + links: [], + type: "generic", + type_category: "Markers", + type_name: "Placemark", + color: "88689e", + description: null, + keywords: null, + phone: null, + email: null, + url: null, + image_url: null, + image_layout: "widescreen", + is_facility: false, + hide_on_map: false, + landmark: false, + feed: "", + deep_link: null, + is_disabled: false, + category_ids: [], + categories: [], + is_searchable: true, + }, + { + id: "5715161717407744_5068292263772160", + map: "5715161717407744", + x: 4859.343951553106, + y: 3036.423828125, + name: "6.305", + area: null, + hint: null, + uid: "6.305", + links: [], + type: "generic", + type_category: "Markers", + type_name: "Placemark", + color: "88689e", + description: null, + keywords: null, + phone: null, + email: null, + url: null, + image_url: null, + image_layout: "widescreen", + is_facility: false, + hide_on_map: false, + landmark: false, + feed: "", + deep_link: null, + is_disabled: false, + category_ids: [], + categories: [], + is_searchable: true, + }, + { + id: "5715161717407744_5074086174654464", + map: "5715161717407744", + x: 3699.765625, + y: 3561.42578125, + name: "6.351", + area: null, + hint: null, + uid: "6.351", + links: [], + type: "generic", + type_category: "Markers", + type_name: "Placemark", + color: "88689e", + description: null, + keywords: null, + phone: null, + email: null, + url: null, + image_url: null, + image_layout: "widescreen", + is_facility: false, + hide_on_map: false, + landmark: false, + feed: "", + deep_link: null, + is_disabled: false, + category_ids: [], + categories: [], + is_searchable: true, + }, + { + id: "5715161717407744_5081296799006720", + map: "5715161717407744", + x: 3957.9964968562126, + y: 1185.23828125, + name: "Chargifi - FL6 - 6.268", + area: null, + links: [], + type: "device_charging", + type_category: "Markers", + type_name: "Device Charging", + color: "88689e", + description: null, + keywords: null, + phone: null, + email: null, + url: null, + image_url: null, + image_layout: "widescreen", + is_facility: false, + hide_on_map: false, + landmark: false, + feed: "", + deep_link: null, + is_disabled: false, + category_ids: [], + categories: [], + is_searchable: true, + }, + { + id: "5715161717407744_5085384086126592", + map: "5715161717407744", + x: 1586.73046875, + y: 3035.12109375, + name: "6.101", + area: null, + hint: null, + uid: "6.101", + links: [], + type: "generic", + type_category: "Markers", + type_name: "Placemark", + color: "88689e", + description: null, + keywords: null, + phone: null, + email: null, + url: null, + image_url: null, + image_layout: "widescreen", + is_facility: false, + hide_on_map: false, + landmark: false, + feed: "", + deep_link: null, + is_disabled: false, + category_ids: [], + categories: [], + is_searchable: true, + }, + { + id: "5715161717407744_5085993434611712", + map: "5715161717407744", + x: 1063.1759828031063, + y: 3289.154296875, + name: "6.123", + area: null, + hint: null, + uid: "6.123", + links: [], + type: "desk", + type_category: "Markers", + type_name: "Desk", + color: "88689e", + description: null, + keywords: null, + phone: null, + email: null, + url: null, + image_url: null, + image_layout: "widescreen", + is_facility: false, + hide_on_map: false, + landmark: false, + feed: "", + deep_link: null, + is_disabled: false, + category_ids: [], + categories: [], + is_searchable: true, + }, + { + id: "5715161717407744_5086441721823232", + map: "5715161717407744", + x: 1067.0841859281063, + y: 3567.939453125, + name: "6.125", + area: null, + hint: null, + uid: "6.125", + links: [], + type: "generic", + type_category: "Markers", + type_name: "Placemark", + color: "88689e", + description: null, + keywords: null, + phone: null, + email: null, + url: null, + image_url: null, + image_layout: "widescreen", + is_facility: false, + hide_on_map: false, + landmark: false, + feed: "", + deep_link: null, + is_disabled: false, + category_ids: [], + categories: [], + is_searchable: true, + }, + ], +}; diff --git a/docs/examples/cypress/utils/mock-svg.js b/docs/examples/cypress/utils/mock-svg.js new file mode 100644 index 00000000..36620765 --- /dev/null +++ b/docs/examples/cypress/utils/mock-svg.js @@ -0,0 +1,40 @@ +export default ` + + + + + + + + + + + + +`; diff --git a/docs/examples/dark-theme/index.html b/docs/examples/dark-theme/index.html new file mode 100644 index 00000000..5faf651f --- /dev/null +++ b/docs/examples/dark-theme/index.html @@ -0,0 +1,104 @@ + + + + + + Props API | Meridian Web SDK + + + + + + + + + + + + + + +
+ +

+ This example uses a dark theme, so we customized the map background and + controls to match better by targeting the underlying HTML and CSS. +

+ + + + diff --git a/docs/examples/directions-overview-multifloor/arrow-left-hard.png b/docs/examples/directions-overview-multifloor/arrow-left-hard.png new file mode 100644 index 0000000000000000000000000000000000000000..cc88b0a4018d8e14fb26548673ee5a7a782e36fb GIT binary patch literal 1453 zcmc(f`#Tc~0EV|A4kp)57IxTCZt*O0$y{dU7E^8+nmkHq#~f{#a#>EvYNeWGVJyl$ zlrl4PAt6K=CYPKvBXdbEk#_t6=lp!0=l#C-`Tl{AcFe~etO!vA003Z54~*ZALv}(` z*tOGTF0#BG0ZD%DXh2P$&MW{R7v+g@4xj)f?9i;hz`d_$C~uX7m-iohsh4SV%b-G` z!>C-|xgrd$(d413;1-^9+B@8auAT~q&gs|X7PenHUy+*`?P0cJc>PZ^Y_UxlpESGv zN@wr%AHyLRYPTha->1JQvaBEGwo18aGsvxZ(wRQ*quH4XS=9gF`M2NuznTytA|kBA z7K@)oM^y<%XFlVnU9d`b`7*2bzV!Q%fo%85d$koS@dXOqOjr>T$3 ze&JQNMd^)Z^vT+jyq#E83*E^hy)tUZO$JLVum|U~FV?NClQ1$H9nWm4uYQmfEY9!5 zr{g+u#tuGFV`qKq(rw^-j|UIel^oDW5)}CXcu;iWEb|ndF>SwzgbR(9-}ue-L9TsA zldT_#VeRrKQEDV7$dR6L;~$nPL{~0HYHrDUO8Rm32~@kCwM;%vG43i~c)(Ibw%dnI zyUgRo?^OtXDnh|qAUX8b(Jfmz;ig0SrHA;F=p+pw;uCBz#~n<9nK+9Zt3A z+y*Qo2-~Z>nYVGkKzW|b*jBd+2;E(}R#$Z>46dPGjan=zCM@Byok5H~sRaADudx3L zj6TF2ZXEOL?=@N*J02i~dXKP~o9*QI)=xU+%2XYsh0oa3)Gdge_W5X$NXo!`1G-%gdAhrUl8MnY^yj#^MGXVQS%h!wuFIVq?$Itg@%iutrw_4VXa?jusqKlg-Z|6A8H&j5*L=S7ZOew5Ide(i2b1 zJb|&#EbYfLw~3@6dX5cqUaosZy#I6%bPZNz5Ij+Q7&%eM^+ySpHI#NU@$)U_5JcQu z!TrXvb9*{nCQ(UEE~819vct%=Um>NXw1U;ayQUDbuB&$j#E=`~mYqZTM&ISTE|P5` zzGQrt3*oR8Y=z||a-%dV*}&^DpMGhagt(06o;m4X+p zp+;sdCSzZ#e$18`yL$B}n!nAx?&jnVt-n%31BzP2nt68fMfN8&>S-qF7O?$N`c+_M w!om@%M#sF!uaz+)JO2ytboIg1pu;o%0X3JirvLx| literal 0 HcmV?d00001 diff --git a/docs/examples/directions-overview-multifloor/arrow-left-soft.png b/docs/examples/directions-overview-multifloor/arrow-left-soft.png new file mode 100644 index 0000000000000000000000000000000000000000..72449daa9f631b3c5166626ddc4953f508ae7666 GIT binary patch literal 1557 zcmV+w2I~2VP)Px)&q+i$j3!26Zn}O2Gte_TJEx|n>r8i_ zD)`y%K6Or=`lhD0yQjP7%yDx9PQVE`0Vm)DoIs@sOixd*LHp4jv>uIBI-#;o96 ztQ}|NRdhvJ=UmBo0rV)E%|52#R@A6ua%Gw{5M{R!vb{Jwj24t>?vycGho0r&S{1z$7h`I2ec>YF>%M zHYEG;N6=ZJ4rOk)1pRwKi7#QC7tl|@ei~g+(6~{Du>?J6MR$TYhYjn{1hC&gS9Us- zdEF9pQ5D_EZ-fnZqn*IsfmS2SJUZj&TDP2_73gfDD_Gf#_5u4*G@5NpVwt3`L9y*m z0zQK-OaihbNwOEmrksg)lI1ti)nx&0cCCRV&nC%3B}nuw=I~&n(KtHHxtQ&vN$fC* zof>9x&DeMG_r77z!whsYv7!(0^75L@+p(yA)}Uh?dGul-->9{GyWa2R6r=5Q;~>KX zy_ekX1@cbg996?xSM)G;9n)m~ELvU`$nr_lt)i#MX&k_xNOEPeI#u*0z+PTP$nt^L zp`s6v$3p<#A_#19&z1O%f@)S%bDZ>X1tZJIW3> zJ3njCRuw%;60dPR#d`i(Rs$_tPt*#uBrVsX9~&t9h@IstXl7KLjDHf%H41W!aplD1 z8>8_H8`iX<0U&2-dH2(QE3%xAkK6}heVD44N^cia(9O{Of|d{GIkXskheCE04o`-h zYTr(^eTK9)h2yFg6qc_?|0+7m9Zt(y{gV6(fXxa};<5?JuQF}MwvE!Lu&?l$*VZ|u z6_S5B0Oz!*7lMG#4d_1J z3%Up8K1rhQDx@*l&8$q1bb%QI@Ffjtd?t`w6LHH!0C)?L+`_A|7xTpMK1~7;zC}a1 z>2srl8-M^1Pd`i-t5lucS?D!0Z8drxLWd-8^8pw7UcFJtb`U z2Rh?gO4{`L$R2oO=no}q--YzSc7`jE$CaSP?WP$6_y#=z0Dh!|J&B*6$mr3wdjjtg z)a#83+0S8Pdv9OsivT3oWohoW@qo8Bt)EDbP=Of(T3#Wfv7d1|qrlK< z4F$ZpNc)fR{

6oGqYlM;iOQ;LvFe2jK?VqaZE6FGmERbTDXRK|+QYC;5XjpUpbz6?bsx9+!$Q^!wd2dvTOpI*6_mDJY-(cAwr6FdGvW`mQqCz4YCAw(2?*vXa^mMK%_8U(GEHifk0#3jQv8;5_Gt&*%MqKhNj&`SG3Z>5i3#s6jv=khF_48ZT6D z;Q*52!d-J3+$9u|SUlDd)W|-z1_Ft7xS&zz5=GX_h_z6H;xi=ih!~FEL7+xfEk&Z$Xi z=_21I&|i_ru_*f3*5k7$*`B0ZEGB?^c@+A{hq_436gJJ$R^wXZ_l}Le374RyD_>n3 zP08VB&3p^q8=H3<+n76w4YJQd%zp;^EF^RNO`ID;4WBE_kWTKol`u9Y$!%-eaXSoY zgv)q{bi(n5LN8n`|9u>lU#68yVkG`J=}LFwe_fC=ajVlmYw5+Gu;B))`yULHCg^b8ieqwbm{uAj zC(OdHts})dghPzP!m_N zeQP^S^3`vP29-h1k88u`mvNfd`kWrGoN<)vl^hmJOMP#;F1a)iKp&jbi}_{NaU%gr z(O@x$XSN{cW`z2Em5B?41}v>|yF@L3vp&Xfwo<@ABfVuJvd*emOo2&RR&x0DfynGEk*V zj)>yiwwb49lDd;_Q4Pd`aO(VGk|6v<)c`zN3`Gwz?fe1Gv%RT9QS01ukc;6#3rBDX)iCA?^!+r8XI zJ^xrlG@_zF(&%P$hSh{CIREKIjC!d4AyyzF9GgtccQ2IIMF)A5Q!ak{T887zuPvTkU6-ge%eiKBO=DLyf>$!=*w;v_oX))dZ*f*+f%nCh X=E{Kp*|IEQor7F3?&wBGzm$IfjPTB5 literal 0 HcmV?d00001 diff --git a/docs/examples/directions-overview-multifloor/arrow-right-hard.png b/docs/examples/directions-overview-multifloor/arrow-right-hard.png new file mode 100644 index 0000000000000000000000000000000000000000..058ef9767b3e1628f441bc5bc031c5a5c06cfd0a GIT binary patch literal 1463 zcmcJP>pK$)0LJG&B%6s6(T<%N;jC1X%S>Z!E+tl>&LnDC=1v_)4qnkf5;8y&uMs> zwtaC1XvpdP&}4$PM&%8#&>~cFu2&3;Lczyo1%}&uw^U-Jov$WyKfWPB>n6lH*CZ!? zU(-^?;DTc=bX3iKCt%8!xAsP_(XrK{L`*x;F+ESCDdqgZH3u9`-)LC4IKkCnj~8W? z*&aEd_`pUrH4w@=DD%sBt2ToUikS;sY$s~-Xm_TeJ0wX&{Z63;7%ypFEqqjGTMO4s zUEsCfeS96*7*B_udJ0l`BbVAyNG@l$Pb!b_k# zuNRgv=oy?WG>kn>bHIL|g`ylh>_k72;g7=k%W3*&jBRf?7l<5f1S1At+0pbpii&b5 zSJpx2bsL?1e(eP7k&CI)UCOaX$>l+b&dK&LZHGIkt21)D8jEkttGRk z=rfmJs)tL2s|GfUeuXeev@F+H*@XS(q7HjUE2$y99{uE0uO(@2LGa+xPodtKD#M^} zX=je^iz{ZH6hDi(w1*wh`<5sTxQg#v;zTaV0t)t$tXA$#F}T)IX1tS1En+wR%EQ%| zq#WA`_-;}~Xu~B-K{YK$>B^ujz?EA>%NAn9laxes>8wUP*KLKLI~?!Va2`dQQGiPu zukoR;C`OW9!~F0hsX}wR@)jdr*|jnGA-0P>3A{RjO_$G^&c*GYNYRoPnp54Ts6@lq znlI<~-{_et*!gifn?=j7WG1(7Rdk+e zVQU&hD95YM71YFyFebUs&U8CWV2P|)wc%=dDZ$r>t>LF5**Y;_GESG*SXYO7)`jTY z$sDMxViSR$IrB}2-G_if?%KWkT|k5f57_}WwcPpQ9rd!#AW2ngNg6u-ncb?-e6!F? zSn0g9-hIOO`7N(>h#-xuO^f6gJ6`TV+%2LM2FWKV2=2+MHiWuZW6%i%c@#p)_-E28jF2$KOsWe4E&>mh2@zf6-e zlA)u<-WK*Ee@%M(1D4iM-XDS6lj=QOz_EI)zy6PLFGiHA?wsAJ@$YwO2f||gB0wO_ zh%*p^MlBo5|GetWn%U`42AaSnK!Je1jf70q;i_t9l3Cqax*P1<;E^vjYHz6rmz0R& r3dY*~3|TYM!plPw`y-fXnj30GJ1!6{=4eBkPYl3&`C~brVVVB{-AAxp literal 0 HcmV?d00001 diff --git a/docs/examples/directions-overview-multifloor/arrow-right-soft.png b/docs/examples/directions-overview-multifloor/arrow-right-soft.png new file mode 100644 index 0000000000000000000000000000000000000000..83b9fab2074307d7bdc26568b0b983fc033eb7de GIT binary patch literal 1520 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 b#~;S4oU*ptb+&o~vp$2TtDnm{r-UW|ve?!X literal 0 HcmV?d00001 diff --git a/docs/examples/directions-overview-multifloor/directions-arrived.png b/docs/examples/directions-overview-multifloor/directions-arrived.png new file mode 100644 index 0000000000000000000000000000000000000000..95abb32dd06495eb25ac9d2f8193178a81a02454 GIT binary patch literal 1702 zcmb7_`y&&I0>?LH%(=~^#$_$;im1@V=F!CR?vl)_ymn0UXdVgkN@pFi<`v^w4XeBg zXI@!0l~v>%?>w4ksL5ky&0EOz!~F-&58uz{Klps_yExk&QczO>004&^?5$n*eQkf? z@}PZITs+9#7x0#=9TvdufzJZ~AiRUMm0KK8T-Z_tcR$iTsapZn&K~zA z2a$t@gr`wuQxhW*>=DTSuLtJNzMtK)Q6=l9c*zkfMs z0{Sdt$7fD80%(mDz-%4K@BVKw-{0d6;;iRUPQca)PyyffyNr=>W4_|nXff>c2DvTK z2>UFpSk`~UlBA;>R%y;Vww2V$aj$ZBl$; z&%02uAC0AX<9?10szG9Z#bmvjetyDKlxd{0-OaOv#kEAs@^h0t_slwL)iKS3(5lQJ zQG8%B5{TI~80%zN6;q+(hPio}#a0|lbdu_oU9)R`jcp9?E>p$J>+E8q&ee>Fc-vQ@ z9msGBvh90#_cw8+a^!*G(?IlCJah7qS37^!ayF#`ca6rQ_V zlubC z@_uqC{jam%RBv5I1b1nsgby#3Eef?{TNcV<#2sEw?|ax|(L^HpFtya(?Kev<+Oko8obS(9so?qWY zW@uS=agXWo5(>nnvY{@V5bvWsO==sJJi^$IGto?K^{~+_uu+|>_1t}UQlldUh2cp* z|KWIQblv-f54p~1tkNs?PlF}*n0C(E)wwak!%yBJ0~}pfr6=3hlH#FG%I&P&##!h*(Nq@06 zv+ogu5ZeknT)>)^Y^zzgdxr698HBFePrSlXvRJ5B%`Pt<<Qom%ft+88w(kPp_Lx44$taqbT8YE=5$f6d_-!3T| z+JU}Yv+OpRC3GOx(;B!!TN1`O7ju9kxRok7pJgH&e&qcJ?YEpXh|+7s@Egai5HG(n zY+JTwfMQ`_8<+8 zP4g4eQ~ym94@~Yu+02mkx)a?0ADmu-c^!@mWFnpx77%DrCVu*zrQ0j=HyW;=T#j<$ zWw&M}a;U-efl^ayho%rKW$6fJZuc^U+Iy-t^pok`Hg2TH@Gc`sqPF1I#sL%P$07Uk zmwm{-KRqw_KFg}*^<>SaH<+1$L#j&~G(EOJG$qz|uVXXyL$ZP|7Md02_7m)}JR;1l zTuSOrUTz^=;ub(xEqCAIr7d=rk*||(!R7*mcOE{hNB1tL&Lx22!E^IGgb4lrS{~J( z-Dpc(JyS3L;w?wna^S>HL}n0pX0rM3HoHk?7f#^Ue( E4`HQ88~^|S literal 0 HcmV?d00001 diff --git a/docs/examples/directions-overview-multifloor/index.html b/docs/examples/directions-overview-multifloor/index.html new file mode 100644 index 00000000..59afb2f0 --- /dev/null +++ b/docs/examples/directions-overview-multifloor/index.html @@ -0,0 +1,707 @@ + + + + + + + [BETA] Directions Overview, multi-floor, step by step | Meridian Web SDK + + + + + + + + + + + + + + + + + +

+
+
+ + + + + + diff --git a/docs/examples/directions-overview/directions-arrived.png b/docs/examples/directions-overview/directions-arrived.png new file mode 100644 index 0000000000000000000000000000000000000000..95abb32dd06495eb25ac9d2f8193178a81a02454 GIT binary patch literal 1702 zcmb7_`y&&I0>?LH%(=~^#$_$;im1@V=F!CR?vl)_ymn0UXdVgkN@pFi<`v^w4XeBg zXI@!0l~v>%?>w4ksL5ky&0EOz!~F-&58uz{Klps_yExk&QczO>004&^?5$n*eQkf? z@}PZITs+9#7x0#=9TvdufzJZ~AiRUMm0KK8T-Z_tcR$iTsapZn&K~zA z2a$t@gr`wuQxhW*>=DTSuLtJNzMtK)Q6=l9c*zkfMs z0{Sdt$7fD80%(mDz-%4K@BVKw-{0d6;;iRUPQca)PyyffyNr=>W4_|nXff>c2DvTK z2>UFpSk`~UlBA;>R%y;Vww2V$aj$ZBl$; z&%02uAC0AX<9?10szG9Z#bmvjetyDKlxd{0-OaOv#kEAs@^h0t_slwL)iKS3(5lQJ zQG8%B5{TI~80%zN6;q+(hPio}#a0|lbdu_oU9)R`jcp9?E>p$J>+E8q&ee>Fc-vQ@ z9msGBvh90#_cw8+a^!*G(?IlCJah7qS37^!ayF#`ca6rQ_V zlubC z@_uqC{jam%RBv5I1b1nsgby#3Eef?{TNcV<#2sEw?|ax|(L^HpFtya(?Kev<+Oko8obS(9so?qWY zW@uS=agXWo5(>nnvY{@V5bvWsO==sJJi^$IGto?K^{~+_uu+|>_1t}UQlldUh2cp* z|KWIQblv-f54p~1tkNs?PlF}*n0C(E)wwak!%yBJ0~}pfr6=3hlH#FG%I&P&##!h*(Nq@06 zv+ogu5ZeknT)>)^Y^zzgdxr698HBFePrSlXvRJ5B%`Pt<<Qom%ft+88w(kPp_Lx44$taqbT8YE=5$f6d_-!3T| z+JU}Yv+OpRC3GOx(;B!!TN1`O7ju9kxRok7pJgH&e&qcJ?YEpXh|+7s@Egai5HG(n zY+JTwfMQ`_8<+8 zP4g4eQ~ym94@~Yu+02mkx)a?0ADmu-c^!@mWFnpx77%DrCVu*zrQ0j=HyW;=T#j<$ zWw&M}a;U-efl^ayho%rKW$6fJZuc^U+Iy-t^pok`Hg2TH@Gc`sqPF1I#sL%P$07Uk zmwm{-KRqw_KFg}*^<>SaH<+1$L#j&~G(EOJG$qz|uVXXyL$ZP|7Md02_7m)}JR;1l zTuSOrUTz^=;ub(xEqCAIr7d=rk*||(!R7*mcOE{hNB1tL&Lx22!E^IGgb4lrS{~J( z-Dpc(JyS3L;w?wna^S>HL}n0pX0rM3HoHk?7f#^Ue( E4`HQ88~^|S literal 0 HcmV?d00001 diff --git a/docs/examples/directions-overview/index.html b/docs/examples/directions-overview/index.html new file mode 100644 index 00000000..442ac8df --- /dev/null +++ b/docs/examples/directions-overview/index.html @@ -0,0 +1,325 @@ + + + + + + [BETA] Directions Overview (Single Floor) | Meridian Web SDK + + + + + + + + + + + + + + + + +
+
+
+ + + + + + diff --git a/docs/examples/floor-control/index.html b/docs/examples/floor-control/index.html new file mode 100644 index 00000000..6b1bd269 --- /dev/null +++ b/docs/examples/floor-control/index.html @@ -0,0 +1,64 @@ + + + + + + Floor Control | Meridian Web SDK + + + + + + + + + + + + + +
+
+
+ Pass "showFloorsControl: false" to the createMap function or use the + "update" method to hide the search control. +
+
+ + + + + diff --git a/docs/examples/full-page/index.html b/docs/examples/full-page/index.html new file mode 100644 index 00000000..1b8e1569 --- /dev/null +++ b/docs/examples/full-page/index.html @@ -0,0 +1,59 @@ + + + + + + Full Page | Meridian Web SDK + + + + + + + + + + + + + +
+ + + + diff --git a/docs/examples/index.html b/docs/examples/index.html new file mode 100644 index 00000000..d63a7d92 --- /dev/null +++ b/docs/examples/index.html @@ -0,0 +1,318 @@ + + + + + + Meridian Web SDK Examples + + + + + + +

Meridian Web SDK Examples

+
+

Documentation

+

+ Read the documentation + on GitHub. +

+
+
+

Note:

+

+ Unlike Meridian's well known iOS and Android mobile SDKs, the WebSDK is + not a complete location services SDK. +

+
+
+

Examples

+ +

Basic

+

A basic demo of the Meridian Web SDK.

+ +

Placemark Customization

+

+ A demo showing you can target placemark css using + .meridian-placemark-icon[data-meridian-placemark-id="add placemark id + here"] + to customize the UI +

+ +

+ Placemark Label Zoom Level +

+

+ A demo showing how you can modify the zoom level at which label text + appears. +

+ +

API as an option

+

+ A demo of using the api parameter directly, for use cases + where you need multiple API tokens, or don't want to call + init. +

+ +

Option toggles

+

+ A demo showing how to change several options dynamically while using the + SDK. +

+ +

Overlay: Polygon

+

A demo showing how to draw a SVG polygon element.

+ +

Overlay: Polyline

+

A demo showing how to draw a SVG polyline element.

+ +

+ Overlay: Path, Image and Circle +

+

A demo showing how to draw SVG path, image and circle elements.

+ +

Overlay: Area Placemark

+

A demo showing how to draw an Area Placemark.

+ +

+ Lat/Lng to Map Point (x/y) conversion +

+

+ A demo showing how to convert a Lat/Lng to a Map Point (x/y) by creating + an annotation point and drawing a polygon using a real world latitude + and longitude. +

+ +

+ Map Point (x/y) to Lat/Lng conversion +

+

A demo showing how to convert a Map Point (x/y) to Lat/Lng.

+ +

Annotation: Point

+

A demo showing how to create a point annotation.

+ +

Annotation: Kiosk

+

A demo showing how to create a custom 'you are here' marker.

+ +

Tag/Marker click

+

+ A demo showing how to hook into extra functionality of the click + callbacks. +

+ +

+ Load Tags +

+

Option to avoid loading Tags

+ +

+ + Tag/Marker click, prevent default functionality + +

+

+ A demo showing how to replace the click callback functionality with + entirely custom behavior. +

+ +

+ + Tag/Marker click, prevent default and show additional options +

+

+ A demo with an additional example of how a Tag/Marker click callback can + be customized. +

+ +

Tag label (single)

+

A demo showing how to filter tags by labels.

+ +

Tag labels (multiple)

+

Another demo showing how to filter tags by labels.

+ +

Tag name (single)

+

A demo showing how to filter tags by name.

+ +

Tag Customization

+

+ A demo showing you can target tag css using + .meridian-tag-label-"add tag label name here" + to customize the UI +

+ +

Hide Search

+

A demo showing how to hide the Search menu icon.

+ +

Hide Floors

+

A demo showing how to hide the Floor menu icon.

+ +

Min Zoom Level

+

Specifying a minimum zoom level (minZoomLevel)

+ +

Max Zoom Level

+

Specifying a maximum zoom level (maxZoomLevel)

+ +

Zoom to point

+

Pan to x/y coordinate and scale to a given zoom factor.

+ +

Zoom to default

+

Set zoom to the default level and pan to the default position.

+ +

Center Map

+

Center the map while retaining the current scale.

+ +

Restricted Pan/Zoom

+

A demo showing how to prevent unwanted pan and zoom gestures.

+ +

Container styling

+

A demo showing how to style the map container.

+ +

Full page

+

A demo showing how to make the SDK take up the entire page.

+ +

Dark theme

+

A demo of how to create a dark mode theme for the SDK.

+ +

Advanced styling

+

An advanced styling demo.

+ +

+ [BETA] Directions Overview (Single Floor) +

+

+ A demo showing how to use api.getDirections() to display a + route. To submit feedback please visit: + https://forms.gle/amwwJ8FsQebNCNzz5 +

+ +

+ [BETA] Directions Overview (Multiple Floors) +

+

+ A demo showing how to use api.getDirections() to display a + route that navigates across multiple floors. To submit feedback please + visit: + https://forms.gle/amwwJ8FsQebNCNzz5 +

+ +

api.openStream(), Floor Example

+

+ A demo showing how to use api.openStream() to track updates + of Tags on a single Floor. +

+ +

api.openStream(), Tag Zone example

+

+ A demo showing how to use api.openStream() to track updates + of Tags leaving and entering a single zone. +

+ +

api.openStream(), Tag example

+

+ A demo showing how to use api.openStream() to track updates + on a single Tag. +

+ +

+ api.openStream(), Tag Label example +

+

+ A demo showing how to use api.openStream() to track updates + for Tags with a specific Label. +

+ +

+ api.openStream(), Location example +

+

+ A demo showing how to use api.openStream() to track Tags at + a specific location (all Floors) +

+ +

Location viewer

+

A demo allowing you to preview any floor.

+
+ +
© 2022 Hewlett Packard Enterprise Development LP
+ + diff --git a/docs/examples/lat-lng-to-map-point/index.html b/docs/examples/lat-lng-to-map-point/index.html new file mode 100644 index 00000000..e9e4b9ae --- /dev/null +++ b/docs/examples/lat-lng-to-map-point/index.html @@ -0,0 +1,252 @@ + + + + + + Lat/Lng to Map Point | Meridian Web SDK + + + + + + + + + + + + + +
+
+
+
+ First fetch your floor data:
+

+ + const floorData = await api.fetchFloorData(locationID, floorID); + +
+

+

+ Adding an annotation:

+ convert your latitude and longitude to a screen x/y and update + the map with an annotation +

+

+ + const pointLocation = MeridianSDK.latLngToMapPoint(floorData, + {lat: 37.38215607501162, lng: -121.98159912048112}); + +
+
+ + meridianMap.update({
+ + annotations: [
+ + {
+ + type: "point",
+ x: pointLocation.x,
+ y: pointLocation.y,
+ size: 32,
+ backgroundColor: "red",
+ backgroundImage: MeridianSDK.placemarkIconURL("generic")
+
+ },
+
+ ],
+
+ }); +
+

+
+
+ Adding a polygon:

+ polygons are created using an array of coordinate arrays - convert + your lat/lng points to x/y points +

+ const polygonArray = [];

+ + function coordinateObjectToArray({lat, lng}) {
+ + const coordObject = MeridianSDK.latLngToMapPoint(floorData, + {lat, lng});
+ return [coordObject.x, coordObject.y];
+
+ }
+
+

+ then push your x/y coordinate arrays to a polygon array +

+ + polygonArray.push(coordinateObjectToArray({lat: 37.38217476738073, + lng: -121.98124592380535}));

+ polygonArray.push(coordinateObjectToArray({lat: 37.38215630276508, + lng: -121.98099902518736}));

+ polygonArray.push(coordinateObjectToArray({lat: + 37.382049361776645, lng: -121.98100870748611}));

+ polygonArray.push(coordinateObjectToArray({lat: + 37.382145531737166, lng: -121.98124592380535}));

+
+

+

+ update your overlay points with your polygon array +

+

+ + + meridianMap.update({
+ + overlays: [
+ + {
+ + type: "polygon",
+ points: polygonArray,
+ fillOpacity: "15%",
+
+ },
+
+ ],
+
+ }); +
+
+

+
+
+
+ + + + diff --git a/docs/examples/load-tags/index.html b/docs/examples/load-tags/index.html new file mode 100644 index 00000000..244a21b9 --- /dev/null +++ b/docs/examples/load-tags/index.html @@ -0,0 +1,69 @@ + + + + + + Load Tags | Meridian Web SDK + + + + + + + + + + + + + +
+
+ +
+ +
+ + + + + diff --git a/docs/examples/location-viewer/index.html b/docs/examples/location-viewer/index.html new file mode 100644 index 00000000..875ba814 --- /dev/null +++ b/docs/examples/location-viewer/index.html @@ -0,0 +1,141 @@ + + + + + + Location Viewer | Meridian Web SDK + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + diff --git a/docs/examples/map-point-lat-lng/index.html b/docs/examples/map-point-lat-lng/index.html new file mode 100644 index 00000000..988a9d7c --- /dev/null +++ b/docs/examples/map-point-lat-lng/index.html @@ -0,0 +1,166 @@ + + + + + + Map Point to Lat/Lng | Meridian Web SDK + + + + + + + + + + + + + +
+
+
+ + First fetch your floor data:
+

+ + const floorData = await api.fetchFloorData(locationID, floorID); + +
+

+
+ + Adding an annotation:

+ Convert your x and y points to latitude and longitude. In this + example you can view the latitude and longitude in the + console. +

+ + const xyToLatLng = MeridianSDK.mapPointToLatLng(floorData, {x: + 5269.126531688274, y: 3824.493588695426}); + +

+
+ + To confirm we have generated the proper latitude and longitute, we + will convert our lat/lng to screen X and Y points that we can create + an annotation for and update the map with an annotation:
+

+ + const latLngToXy = MeridianSDK.latLngToMapPoint(floorData, + xyToLatLng); + +
+
+ + meridianMap.update({
+ + annotations: [
+ + {
+ + type: "point",
+ x: latLngToXy.x,
+ y: latLngToXy.y,
+ size: 32,
+ backgroundColor: "red",
+ backgroundImage: MeridianSDK.placemarkIconURL("generic")
+
+ },
+
+ ],
+
+ }); +
+

+
+
+
+ + + + diff --git a/docs/examples/marker-click-prevent-default/index.html b/docs/examples/marker-click-prevent-default/index.html new file mode 100644 index 00000000..5e334adc --- /dev/null +++ b/docs/examples/marker-click-prevent-default/index.html @@ -0,0 +1,57 @@ + + + + + + Marker Click Callback (Prevent Default) | Meridian Web SDK + + + + + + + + + + + + + + + +
+ + + + diff --git a/docs/examples/marker-click-unique-behavior/index.html b/docs/examples/marker-click-unique-behavior/index.html new file mode 100644 index 00000000..8bb7e80f --- /dev/null +++ b/docs/examples/marker-click-unique-behavior/index.html @@ -0,0 +1,83 @@ + + + + + + + Tag/Placemark click callback with custom sidebar | Meridian Web SDK + + + + + + + + + + + + + + + + + +
+ + + + + diff --git a/docs/examples/marker-click-unique-behavior/placemark.svg b/docs/examples/marker-click-unique-behavior/placemark.svg new file mode 100644 index 00000000..11eea1c3 --- /dev/null +++ b/docs/examples/marker-click-unique-behavior/placemark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/examples/marker-click-unique-behavior/style.css b/docs/examples/marker-click-unique-behavior/style.css new file mode 100644 index 00000000..6ada063e --- /dev/null +++ b/docs/examples/marker-click-unique-behavior/style.css @@ -0,0 +1,62 @@ +body { + font-family: sans-serif; +} + +.map { + position: fixed; + top: 0; + left: 0; + width: calc(100vw - 350px); + height: 100vh; + margin: 0; + max-width: 100%; + border: 0; +} + +.sidebar-container { + position: fixed; + top: 0; + right: 0; + width: 350px; + height: 100vh; + box-sizing: border-box; + width: 350px; + height: 100%; + display: flex; + background: hsl(210, 50%, 98%); + color: hsl(210, 80%, 30%); + box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1), 0 0 4px rgba(0, 0, 0, 0.1); + display: flex; + flex-direction: column; + padding: 20px; +} + +h2 { + display: flex; + align-items: stretch; + flex-direction: column; + margin: 0; + margin-left: -20px; + margin-right: -20px; + padding: 20px; + padding-top: 0; +} + +h3 { + margin-top: 0px; +} + +.marker-img { + width: 100%; + border-radius: 4px; +} + +.meridian-placemark-icon:focus { + height: 30px; + width: 30px; +} + +.meridian-tag:focus { + height: 60px; + width: 60px; +} diff --git a/docs/examples/marker-click/index.html b/docs/examples/marker-click/index.html new file mode 100644 index 00000000..92368dd9 --- /dev/null +++ b/docs/examples/marker-click/index.html @@ -0,0 +1,61 @@ + + + + + + Marker Click Callback | Meridian Web SDK + + + + + + + + + + + + + + + +
+
+
+ Click on any tag/marker in the map or select one in the search control. +
+
+ + + + + diff --git a/docs/examples/max-zoom/index.html b/docs/examples/max-zoom/index.html new file mode 100644 index 00000000..3070cf87 --- /dev/null +++ b/docs/examples/max-zoom/index.html @@ -0,0 +1,73 @@ + + + + + + Max Zoom Level (maxZoomLevel) | Meridian Web SDK + + + + + + + + + + + + + +
+
+

+ This demo shows the result of specifying a maximum zoom level + (maxZoomLevel) of 16. By zooming in you see how this + affects the map. The default value is 8 which equals + eight times the scale of the map. +

+
+ + + + + diff --git a/docs/examples/meridian-sdk.js b/docs/examples/meridian-sdk.js new file mode 100644 index 00000000..53273127 --- /dev/null +++ b/docs/examples/meridian-sdk.js @@ -0,0 +1,2 @@ +/*! For license information please see meridian-sdk.js.LICENSE.txt */ +var MeridianSDK;!function(){var e={323:function(e,t,n){var r={"./aed.svg":852,"./amusement_park.svg":1968,"./atm.svg":5150,"./attraction.svg":1541,"./baggage.svg":3412,"./baggage_carts.svg":2096,"./bank.svg":136,"./bar.svg":5861,"./bike.svg":8113,"./bus.svg":7536,"./cafe.svg":2873,"./cafeteria.svg":3884,"./cashier.svg":9005,"./changing_room.svg":8327,"./changing_station.svg":7126,"./charging_station.svg":6906,"./clinic.svg":9138,"./club.svg":1174,"./coat_check.svg":3826,"./conference_room.svg":1606,"./currency_exchange.svg":7501,"./customer_service.svg":5738,"./desk.svg":9477,"./device_charging.svg":2630,"./elevator.svg":4,"./emergency_dept.svg":2053,"./escalator.svg":4266,"./exclusion_area.svg":2890,"./exhibit.svg":1641,"./exit.svg":9458,"./fire_extinguisher.svg":6624,"./first_aid.svg":1535,"./fitness_center.svg":1902,"./fountain.svg":3614,"./gallery.svg":6848,"./gaming.svg":5781,"./garden.svg":1841,"./gate.svg":5995,"./generic.svg":9101,"./global_entry_office.svg":1393,"./handicap.svg":2914,"./information.svg":8208,"./kiosk.svg":6175,"./lab.svg":7903,"./laptop_lounge.svg":4067,"./lost_found.svg":1833,"./lounge.svg":1900,"./mailbox.svg":2086,"./museum.svg":2002,"./nursing_station.svg":1565,"./operating_room.svg":2515,"./outdoor_area.svg":4525,"./paging_phone.svg":9563,"./parking.svg":8854,"./pet_relief.svg":4975,"./pharmacy.svg":593,"./phone.svg":9338,"./play_area.svg":9484,"./printer.svg":7774,"./registration.svg":9333,"./rental_cars.svg":3622,"./restaurant.svg":2311,"./restroom.svg":4965,"./restroom_ada.svg":2804,"./restroom_family.svg":504,"./restroom_men.svg":5584,"./restroom_men_ada.svg":7073,"./restroom_women.svg":8098,"./restroom_women_ada.svg":3303,"./rewards.svg":8850,"./security.svg":9456,"./security_checkpoint.svg":2453,"./shoe_shine.svg":9519,"./shop.svg":5758,"./spa.svg":7244,"./stadium.svg":1915,"./stairs.svg":2208,"./swimming_pool.svg":646,"./taxi.svg":7342,"./theater.svg":2925,"./ticketing.svg":8034,"./tours.svg":3187,"./train.svg":4340,"./training.svg":6740,"./valet.svg":1644,"./vending_machines.svg":4810,"./water_fountain.svg":9922,"./wedding.svg":2994};function o(e){var t=i(e);return n(t)}function i(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=i,e.exports=o,o.id=323},129:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return be}});var r=function(){function e(e){var t=this;this._insertTag=function(e){var n;n=0===t.tags.length?t.insertionPoint?t.insertionPoint.nextSibling:t.prepend?t.container.firstChild:t.before:t.tags[t.tags.length-1].nextSibling,t.container.insertBefore(e,n),t.tags.push(e)},this.isSpeedy=void 0===e.speedy||e.speedy,this.tags=[],this.ctr=0,this.nonce=e.nonce,this.key=e.key,this.container=e.container,this.prepend=e.prepend,this.insertionPoint=e.insertionPoint,this.before=null}var t=e.prototype;return t.hydrate=function(e){e.forEach(this._insertTag)},t.insert=function(e){this.ctr%(this.isSpeedy?65e3:1)==0&&this._insertTag(function(e){var t=document.createElement("style");return t.setAttribute("data-emotion",e.key),void 0!==e.nonce&&t.setAttribute("nonce",e.nonce),t.appendChild(document.createTextNode("")),t.setAttribute("data-s",""),t}(this));var t=this.tags[this.tags.length-1];if(this.isSpeedy){var n=function(e){if(e.sheet)return e.sheet;for(var t=0;t0?u(b,--y):0,g--,10===_&&(g=1,m--),_}function O(){return _=y2||E(_)>3?"":" "}function M(e,t){for(;--t&&O()&&!(_<48||_>102||_>57&&_<65||_>70&&_<97););return A(e,C()+(t<6&&32==S()&&32==O()))}function R(e){for(;O();)switch(_){case e:return y;case 34:case 39:34!==e&&39!==e&&R(_);break;case 40:41===e&&R(e);break;case 92:O()}return y}function L(e,t){for(;O()&&e+_!==57&&(e+_!==84||47!==S()););return"/*"+A(t,y-1)+"*"+i(47===e?e:O())}function N(e){for(;!E(S());)O();return A(e,y)}var I="-ms-",z="-moz-",F="-webkit-",B="comm",U="rule",$="decl",q="@keyframes";function W(e,t){for(var n="",r=p(e),o=0;o0&&h(z)-v&&d(_>32?J(z+";",r,n,v-1):J(l(z," ","")+";",r,n,v-2),p);break;case 59:z+=";";default:if(d(I=V(z,t,n,m,g,o,f,T,P=[],R=[],v),a),123===E)if(0===g)G(z,t,I,I,P,a,v,f,R);else switch(99===y&&110===u(z,3)?100:y){case 100:case 108:case 109:case 115:G(e,I,I,r&&d(V(e,I,I,0,0,o,f,T,o,P=[],v),R),o,R,v,f,r?P:R);break;default:G(z,I,I,I,[""],R,0,f,R)}}m=g=_=0,w=A=1,T=z="",v=s;break;case 58:v=1+h(z),_=b;default:if(w<1)if(123==E)--w;else if(125==E&&0==w++&&125==x())continue;switch(z+=i(E),E*w){case 38:A=g>0?1:(z+="\f",-1);break;case 44:f[m++]=(h(z)-1)*A,A=1;break;case 64:45===S()&&(z+=D(O())),y=S(),g=v=h(T=z+=N(C())),E++;break;case 45:45===b&&2==h(z)&&(w=0)}}return a}function V(e,t,n,r,i,a,c,u,h,d,m){for(var g=i-1,v=0===i?a:[""],y=p(v),_=0,b=0,k=0;_0?v[x]+" "+O:l(O,/&\f/g,v[x])))&&(h[k++]=S);return w(e,t,n,0===i?U:u,h,d,m)}function X(e,t,n){return w(e,t,n,B,i(_),f(e,2,-2),0)}function J(e,t,n,r){return w(e,t,n,$,f(e,0,r),f(e,r+1,-1),r)}var Y=function(e,t,n){for(var r=0,o=0;r=o,o=S(),38===r&&12===o&&(t[n]=1),!E(o);)O();return A(e,y)},K=new WeakMap,Q=function(e){if("rule"===e.type&&e.parent&&!(e.length<1)){for(var t=e.value,n=e.parent,r=e.column===n.column&&e.line===n.line;"rule"!==n.type;)if(!(n=n.parent))return;if((1!==e.props.length||58===t.charCodeAt(0)||K.get(n))&&!r){K.set(e,!0);for(var o=[],a=function(e,t){return P(function(e,t){var n=-1,r=44;do{switch(E(r)){case 0:38===r&&12===S()&&(t[n]=1),e[n]+=Y(y-1,t,n);break;case 2:e[n]+=D(r);break;case 4:if(44===r){e[++n]=58===S()?"&\f":"",t[n]=e[n].length;break}default:e[n]+=i(r)}}while(r=O());return e}(T(e),t))}(t,o),s=n.props,l=0,c=0;l6)switch(u(e,t+1)){case 109:if(45!==u(e,t+4))break;case 102:return l(e,/(.+:)(.+)-([^]+)/,"$1"+F+"$2-$3$1"+z+(108==u(e,t+3)?"$3":"$2-$3"))+e;case 115:return~c(e,"stretch")?te(l(e,"stretch","fill-available"),t)+e:e}break;case 4949:if(115!==u(e,t+1))break;case 6444:switch(u(e,h(e)-3-(~c(e,"!important")&&10))){case 107:return l(e,":",":"+F)+e;case 101:return l(e,/(.+:)([^;!]+)(;|!.+)?/,"$1"+F+(45===u(e,14)?"inline-":"")+"box$3$1"+F+"$2$3$1"+I+"$2box$3")+e}break;case 5936:switch(u(e,t+11)){case 114:return F+e+I+l(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return F+e+I+l(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return F+e+I+l(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return F+e+I+e+e}return e}var ne=[function(e,t,n,r){if(e.length>-1&&!e.return)switch(e.type){case $:e.return=te(e.value,e.length);break;case q:return W([k(e,{value:l(e.value,"@","@"+F)})],r);case U:if(e.length)return function(e,t){return e.map(t).join("")}(e.props,(function(t){switch(function(e,t){return(e=/(::plac\w+|:read-\w+)/.exec(e))?e[0]:e}(t)){case":read-only":case":read-write":return W([k(e,{props:[l(t,/:(read-\w+)/,":-moz-$1")]})],r);case"::placeholder":return W([k(e,{props:[l(t,/:(plac\w+)/,":"+F+"input-$1")]}),k(e,{props:[l(t,/:(plac\w+)/,":-moz-$1")]}),k(e,{props:[l(t,/:(plac\w+)/,I+"input-$1")]})],r)}return""}))}}],re={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1};function oe(e){var t=Object.create(null);return function(n){return void 0===t[n]&&(t[n]=e(n)),t[n]}}var ie=!1,ae=/[A-Z]|^ms/g,se=/_EMO_([^_]+?)_([^]*?)_EMO_/g,le=function(e){return 45===e.charCodeAt(1)},ce=function(e){return null!=e&&"boolean"!=typeof e},ue=oe((function(e){return le(e)?e:e.replace(ae,"-$&").toLowerCase()})),fe=function(e,t){switch(e){case"animation":case"animationName":if("string"==typeof t)return t.replace(se,(function(e,t,n){return de={name:t,styles:n,next:de},t}))}return 1===re[e]||le(e)||"number"!=typeof t||0===t?t:t+"px"},he="Component selectors can only be used in conjunction with @emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware compiler transform.";function pe(e,t,n){if(null==n)return"";var r=n;if(void 0!==r.__emotion_styles)return r;switch(typeof n){case"boolean":return"";case"object":var o=n;if(1===o.anim)return de={name:o.name,styles:o.styles,next:de},o.name;var i=n;if(void 0!==i.styles){var a=i.next;if(void 0!==a)for(;void 0!==a;)de={name:a.name,styles:a.styles,next:de},a=a.next;return i.styles+";"}return function(e,t,n){var r="";if(Array.isArray(n))for(var o=0;o=4;++r,o-=4)t=1540483477*(65535&(t=255&e.charCodeAt(r)|(255&e.charCodeAt(++r))<<8|(255&e.charCodeAt(++r))<<16|(255&e.charCodeAt(++r))<<24))+(59797*(t>>>16)<<16),n=1540483477*(65535&(t^=t>>>24))+(59797*(t>>>16)<<16)^1540483477*(65535&n)+(59797*(n>>>16)<<16);switch(o){case 3:n^=(255&e.charCodeAt(r+2))<<16;case 2:n^=(255&e.charCodeAt(r+1))<<8;case 1:n=1540483477*(65535&(n^=255&e.charCodeAt(r)))+(59797*(n>>>16)<<16)}return(((n=1540483477*(65535&(n^=n>>>13))+(59797*(n>>>16)<<16))^n>>>15)>>>0).toString(36)}(o)+l;return{name:c,styles:o,next:de}}function ve(e,t,n){var r="";return n.split(" ").forEach((function(n){void 0!==e[n]?t.push(e[n]+";"):r+=n+" "})),r}function ye(e,t){if(void 0===e.inserted[t.name])return e.insert("",t,e.sheet,!0)}function _e(e,t,n){var r=[],o=ve(e,r,n);return r.length<2?n:o+t(r)}var be=function(e){var t=function(e){var t=e.key;if("css"===t){var n=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(n,(function(e){-1!==e.getAttribute("data-emotion").indexOf(" ")&&(document.head.appendChild(e),e.setAttribute("data-s",""))}))}var o,i,a=e.stylisPlugins||ne,s={},l=[];o=e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+t+' "]'),(function(e){for(var t=e.getAttribute("data-emotion").split(" "),n=1;n=0&&(t=e.slice(n+1),e=e.slice(0,n)),e&&!r.hasOwnProperty(e))throw new Error("unknown type: "+e);return{type:e,name:t}}))),l=-1,c=s.length;if(!(arguments.length<2)){if(null!=t&&"function"!=typeof t)throw new Error("invalid callback: "+t);for(;++l0)for(var n,r,o=new Array(n),i=0;i=t||n<0||f&&e-c>=i}function b(){var e=d();if(_(e))return w(e);s=setTimeout(b,function(e){var n=t-(e-l);return f?p(n,i-(e-c)):n}(e))}function w(e){return s=void 0,v&&r?y(e):(r=o=void 0,a)}function k(){var e=d(),n=_(e);if(r=arguments,o=this,l=e,n){if(void 0===s)return function(e){return c=e,s=setTimeout(b,t),u?y(e):a}(l);if(f)return s=setTimeout(b,t),y(l)}return void 0===s&&(s=setTimeout(b,t)),a}return t=g(t)||0,m(n)&&(u=!!n.leading,i=(f="maxWait"in n)?h(g(n.maxWait)||0,t):i,v="trailing"in n?!!n.trailing:v),k.cancel=function(){void 0!==s&&clearTimeout(s),c=0,r=l=o=s=void 0},k.flush=function(){return void 0===s?a:w(d())},k}},1324:function(e,t,n){e=n.nmd(e);var r="__lodash_hash_undefined__",o=1,i=2,a=1/0,s=9007199254740991,l="[object Arguments]",c="[object Array]",u="[object Boolean]",f="[object Date]",h="[object Error]",p="[object Function]",d="[object GeneratorFunction]",m="[object Map]",g="[object Number]",v="[object Object]",y="[object Promise]",_="[object RegExp]",b="[object Set]",w="[object String]",k="[object Symbol]",x="[object WeakMap]",O="[object ArrayBuffer]",S="[object DataView]",C=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,A=/^\w*$/,E=/^\./,T=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,P=/\\(\\)?/g,D=/^\[object .+?Constructor\]$/,j=/^(?:0|[1-9]\d*)$/,M={};M["[object Float32Array]"]=M["[object Float64Array]"]=M["[object Int8Array]"]=M["[object Int16Array]"]=M["[object Int32Array]"]=M["[object Uint8Array]"]=M["[object Uint8ClampedArray]"]=M["[object Uint16Array]"]=M["[object Uint32Array]"]=!0,M[l]=M[c]=M[O]=M[u]=M[S]=M[f]=M[h]=M[p]=M[m]=M[g]=M[v]=M[_]=M[b]=M[w]=M[x]=!1;var R="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,L="object"==typeof self&&self&&self.Object===Object&&self,N=R||L||Function("return this")(),I=t&&!t.nodeType&&t,z=I&&e&&!e.nodeType&&e,F=z&&z.exports===I&&R.process,B=function(){try{return F&&F.binding("util")}catch(e){}}(),U=B&&B.isTypedArray;function $(e,t,n,r){for(var o=-1,i=e?e.length:0;++o-1},Se.prototype.set=function(e,t){var n=this.__data__,r=Te(n,e);return r<0?n.push([e,t]):n[r][1]=t,this},Ce.prototype.clear=function(){this.__data__={hash:new Oe,map:new(fe||Se),string:new Oe}},Ce.prototype.delete=function(e){return Fe(this,e).delete(e)},Ce.prototype.get=function(e){return Fe(this,e).get(e)},Ce.prototype.has=function(e){return Fe(this,e).has(e)},Ce.prototype.set=function(e,t){return Fe(this,e).set(e,t),this},Ae.prototype.add=Ae.prototype.push=function(e){return this.__data__.set(e,r),this},Ae.prototype.has=function(e){return this.__data__.has(e)},Ee.prototype.clear=function(){this.__data__=new Se},Ee.prototype.delete=function(e){return this.__data__.delete(e)},Ee.prototype.get=function(e){return this.__data__.get(e)},Ee.prototype.has=function(e){return this.__data__.has(e)},Ee.prototype.set=function(e,t){var n=this.__data__;if(n instanceof Se){var r=n.__data__;if(!fe||r.length<199)return r.push([e,t]),this;n=this.__data__=new Ce(r)}return n.set(e,t),this};var De,je=(De=function(e,t){return e&&Me(e,t,lt)},function(e,t){if(null==e)return e;if(!tt(e))return De(e,t);for(var n=e.length,r=-1,o=Object(e);++rc))return!1;var f=s.get(e);if(f&&s.get(t))return f==t;var h=-1,p=!0,d=a&o?new Ae:void 0;for(s.set(e,t),s.set(t,e);++h-1&&e%1==0&&e-1&&e%1==0&&e<=s}function ot(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function it(e){return!!e&&"object"==typeof e}function at(e){return"symbol"==typeof e||it(e)&&re.call(e)==k}var st=U?function(e){return function(t){return e(t)}}(U):function(e){return it(e)&&rt(e.length)&&!!M[re.call(e)]};function lt(e){return tt(e)?function(e,t){var n=et(e)||Qe(e)?function(e,t){for(var n=-1,r=Array(e);++n=t||n<0||h&&e-u>=a}function w(){var e=v();if(b(e))return k(e);l=setTimeout(w,function(e){var n=t-(e-c);return h?g(n,a-(e-u)):n}(e))}function k(e){return l=void 0,p&&o?d(e):(o=i=void 0,s)}function x(){var e=v(),n=b(e);if(o=arguments,i=this,c=e,n){if(void 0===l)return function(e){return u=e,l=setTimeout(w,t),f?d(e):s}(c);if(h)return l=setTimeout(w,t),d(c)}return void 0===l&&(l=setTimeout(w,t)),s}return t=_(t)||0,y(n)&&(f=!!n.leading,a=(h="maxWait"in n)?m(_(n.maxWait)||0,t):a,p="trailing"in n?!!n.trailing:p),x.cancel=function(){void 0!==l&&clearTimeout(l),u=0,o=c=i=l=void 0},x.flush=function(){return void 0===l?s:k(v())},x}(e,t,{leading:o,maxWait:t,trailing:i})}},7975:function(e){"use strict";function t(e){if("string"!=typeof e)throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}function n(e,t){for(var n,r="",o=0,i=-1,a=0,s=0;s<=e.length;++s){if(s2){var l=r.lastIndexOf("/");if(l!==r.length-1){-1===l?(r="",o=0):o=(r=r.slice(0,l)).length-1-r.lastIndexOf("/"),i=s,a=0;continue}}else if(2===r.length||1===r.length){r="",o=0,i=s,a=0;continue}t&&(r.length>0?r+="/..":r="..",o=2)}else r.length>0?r+="/"+e.slice(i+1,s):r=e.slice(i+1,s),o=s-i-1;i=s,a=0}else 46===n&&-1!==a?++a:a=-1}return r}var r={resolve:function(){for(var e,r="",o=!1,i=arguments.length-1;i>=-1&&!o;i--){var a;i>=0?a=arguments[i]:(void 0===e&&(e=process.cwd()),a=e),t(a),0!==a.length&&(r=a+"/"+r,o=47===a.charCodeAt(0))}return r=n(r,!o),o?r.length>0?"/"+r:"/":r.length>0?r:"."},normalize:function(e){if(t(e),0===e.length)return".";var r=47===e.charCodeAt(0),o=47===e.charCodeAt(e.length-1);return 0!==(e=n(e,!r)).length||r||(e="."),e.length>0&&o&&(e+="/"),r?"/"+e:e},isAbsolute:function(e){return t(e),e.length>0&&47===e.charCodeAt(0)},join:function(){if(0===arguments.length)return".";for(var e,n=0;n0&&(void 0===e?e=o:e+="/"+o)}return void 0===e?".":r.normalize(e)},relative:function(e,n){if(t(e),t(n),e===n)return"";if((e=r.resolve(e))===(n=r.resolve(n)))return"";for(var o=1;oc){if(47===n.charCodeAt(s+f))return n.slice(s+f+1);if(0===f)return n.slice(s+f)}else a>c&&(47===e.charCodeAt(o+f)?u=f:0===f&&(u=0));break}var h=e.charCodeAt(o+f);if(h!==n.charCodeAt(s+f))break;47===h&&(u=f)}var p="";for(f=o+u+1;f<=i;++f)f!==i&&47!==e.charCodeAt(f)||(0===p.length?p+="..":p+="/..");return p.length>0?p+n.slice(s+u):(s+=u,47===n.charCodeAt(s)&&++s,n.slice(s))},_makeLong:function(e){return e},dirname:function(e){if(t(e),0===e.length)return".";for(var n=e.charCodeAt(0),r=47===n,o=-1,i=!0,a=e.length-1;a>=1;--a)if(47===(n=e.charCodeAt(a))){if(!i){o=a;break}}else i=!1;return-1===o?r?"/":".":r&&1===o?"//":e.slice(0,o)},basename:function(e,n){if(void 0!==n&&"string"!=typeof n)throw new TypeError('"ext" argument must be a string');t(e);var r,o=0,i=-1,a=!0;if(void 0!==n&&n.length>0&&n.length<=e.length){if(n.length===e.length&&n===e)return"";var s=n.length-1,l=-1;for(r=e.length-1;r>=0;--r){var c=e.charCodeAt(r);if(47===c){if(!a){o=r+1;break}}else-1===l&&(a=!1,l=r+1),s>=0&&(c===n.charCodeAt(s)?-1==--s&&(i=r):(s=-1,i=l))}return o===i?i=l:-1===i&&(i=e.length),e.slice(o,i)}for(r=e.length-1;r>=0;--r)if(47===e.charCodeAt(r)){if(!a){o=r+1;break}}else-1===i&&(a=!1,i=r+1);return-1===i?"":e.slice(o,i)},extname:function(e){t(e);for(var n=-1,r=0,o=-1,i=!0,a=0,s=e.length-1;s>=0;--s){var l=e.charCodeAt(s);if(47!==l)-1===o&&(i=!1,o=s+1),46===l?-1===n?n=s:1!==a&&(a=1):-1!==n&&(a=-1);else if(!i){r=s+1;break}}return-1===n||-1===o||0===a||1===a&&n===o-1&&n===r+1?"":e.slice(n,o)},format:function(e){if(null===e||"object"!=typeof e)throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof e);return function(e,t){var n=t.dir||t.root,r=t.base||(t.name||"")+(t.ext||"");return n?n===t.root?n+r:n+"/"+r:r}(0,e)},parse:function(e){t(e);var n={root:"",dir:"",base:"",ext:"",name:""};if(0===e.length)return n;var r,o=e.charCodeAt(0),i=47===o;i?(n.root="/",r=1):r=0;for(var a=-1,s=0,l=-1,c=!0,u=e.length-1,f=0;u>=r;--u)if(47!==(o=e.charCodeAt(u)))-1===l&&(c=!1,l=u+1),46===o?-1===a?a=u:1!==f&&(f=1):-1!==a&&(f=-1);else if(!c){s=u+1;break}return-1===a||-1===l||0===f||1===f&&a===l-1&&a===s+1?-1!==l&&(n.base=n.name=0===s&&i?e.slice(1,l):e.slice(s,l)):(0===s&&i?(n.name=e.slice(1,a),n.base=e.slice(1,l)):(n.name=e.slice(s,a),n.base=e.slice(s,l)),n.ext=e.slice(a,l)),s>0?n.dir=e.slice(0,s-1):i&&(n.dir="/"),n},sep:"/",delimiter:":",win32:null,posix:null};r.posix=r,e.exports=r},3034:function(e,t,n){"use strict";n.r(t),n.d(t,{resetPropWarnings:function(){return a}});var r,o=n(172);null!=(r="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0)&&r.__PREACT_DEVTOOLS__&&r.__PREACT_DEVTOOLS__.attachPreact("10.23.2",o.options,{Fragment:o.Fragment,Component:o.Component});var i={};function a(){i={}}function s(e){return e.type===o.Fragment?"Fragment":"function"==typeof e.type?e.type.displayName||e.type.name:"string"==typeof e.type?e.type:"#text"}var l=[],c=[];function u(){return l.length>0?l[l.length-1]:null}var f=!0;function h(e){return"function"==typeof e.type&&e.type!=o.Fragment}function p(e){for(var t=[e],n=e;null!=n.__o;)t.push(n.__o),n=n.__o;return t.reduce((function(e,t){e+=" in "+s(t);var n=t.__source;return n?e+=" (at "+n.fileName+":"+n.lineNumber+")":f&&console.warn("Add @babel/plugin-transform-react-jsx-source to get a more detailed component stack. Note that you should not add it to production builds of your App for bundle size reasons."),f=!1,e+"\n"}),"")}var d="function"==typeof WeakMap;function m(e){var t=[];return e.__k?(e.__k.forEach((function(e){e&&"function"==typeof e.type?t.push.apply(t,m(e)):e&&"string"==typeof e.type&&t.push(e.type)})),t):t}function g(e){return e?"function"==typeof e.type?null==e.__?null!=e.__e&&null!=e.__e.parentNode?e.__e.parentNode.localName:"":g(e.__):e.type:""}var v=o.Component.prototype.setState;function y(e){return"table"===e||"tfoot"===e||"tbody"===e||"thead"===e||"td"===e||"tr"===e||"th"===e}o.Component.prototype.setState=function(e,t){return null==this.__v&&null==this.state&&console.warn('Calling "this.setState" inside the constructor of a component is a no-op and might be a bug in your application. Instead, set "this.state = {}" directly.\n\n'+p(u())),v.call(this,e,t)};var _=/^(address|article|aside|blockquote|details|div|dl|fieldset|figcaption|figure|footer|form|h1|h2|h3|h4|h5|h6|header|hgroup|hr|main|menu|nav|ol|p|pre|search|section|table|ul)$/,b=o.Component.prototype.forceUpdate;function w(e){var t=e.props,n=s(e),r="";for(var o in t)if(t.hasOwnProperty(o)&&"children"!==o){var i=t[o];"function"==typeof i&&(i="function "+(i.displayName||i.name)+"() {}"),i=Object(i)!==i||i.toString?i+"":Object.prototype.toString.call(i),r+=" "+o+"="+JSON.stringify(i)}var a=t.children;return"<"+n+r+(a&&a.length?">..":" />")}o.Component.prototype.forceUpdate=function(e){return null==this.__v?console.warn('Calling "this.forceUpdate" inside the constructor of a component is a no-op and might be a bug in your application.\n\n'+p(u())):null==this.__P&&console.warn('Can\'t call "this.forceUpdate" on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in the componentWillUnmount method.\n\n'+p(this.__v)),b.call(this,e)},function(){!function(){var e=o.options.__b,t=o.options.diffed,n=o.options.__,r=o.options.vnode,i=o.options.__r;o.options.diffed=function(e){h(e)&&c.pop(),l.pop(),t&&t(e)},o.options.__b=function(t){h(t)&&l.push(t),e&&e(t)},o.options.__=function(e,t){c=[],n&&n(e,t)},o.options.vnode=function(e){e.__o=c.length>0?c[c.length-1]:null,r&&r(e)},o.options.__r=function(e){h(e)&&c.push(e),i&&i(e)}}();var e=!1,t=o.options.__b,n=o.options.diffed,r=o.options.vnode,a=o.options.__r,u=o.options.__e,f=o.options.__,v=o.options.__h,b=d?{useEffect:new WeakMap,useLayoutEffect:new WeakMap,lazyPropTypes:new WeakMap}:null,k=[];o.options.__e=function(e,t,n,r){if(t&&t.__c&&"function"==typeof e.then){var o=e;e=new Error("Missing Suspense. The throwing component was: "+s(t));for(var i=t;i;i=i.__)if(i.__c&&i.__c.__c){e=o;break}if(e instanceof Error)throw e}try{(r=r||{}).componentStack=p(t),u(e,t,n,r),"function"!=typeof e.then&&setTimeout((function(){throw e}))}catch(e){throw e}},o.options.__=function(e,t){if(!t)throw new Error("Undefined parent passed to render(), this is the second argument.\nCheck if the element is available in the DOM/has the correct id.");var n;switch(t.nodeType){case 1:case 11:case 9:n=!0;break;default:n=!1}if(!n){var r=s(e);throw new Error("Expected a valid HTML node as a second argument to render.\tReceived "+t+" instead: render(<"+r+" />, "+t+");")}f&&f(e,t)},o.options.__b=function(n){var r=n.type;if(e=!0,void 0===r)throw new Error("Undefined component passed to createElement()\n\nYou likely forgot to export your component or might have mixed up default and named imports"+w(n)+"\n\n"+p(n));if(null!=r&&"object"==typeof r){if(void 0!==r.__k&&void 0!==r.__e)throw new Error("Invalid type passed to createElement(): "+r+"\n\nDid you accidentally pass a JSX literal as JSX twice?\n\n let My"+s(n)+" = "+w(r)+";\n let vnode = ;\n\nThis usually happens when you export a JSX literal and not the component.\n\n"+p(n));throw new Error("Invalid type passed to createElement(): "+(Array.isArray(r)?"array":r))}if(void 0!==n.ref&&"function"!=typeof n.ref&&"object"!=typeof n.ref&&!("$$typeof"in n))throw new Error('Component\'s "ref" property should be a function, or an object created by createRef(), but got ['+typeof n.ref+"] instead\n"+w(n)+"\n\n"+p(n));if("string"==typeof n.type)for(var o in n.props)if("o"===o[0]&&"n"===o[1]&&"function"!=typeof n.props[o]&&null!=n.props[o])throw new Error("Component's \""+o+'" property should be a function, but got ['+typeof n.props[o]+"] instead\n"+w(n)+"\n\n"+p(n));if("function"==typeof n.type&&n.type.propTypes){if("Lazy"===n.type.displayName&&b&&!b.lazyPropTypes.has(n.type)){var a="PropTypes are not supported on lazy(). Use propTypes on the wrapped component itself. ";try{var l=n.type();b.lazyPropTypes.set(n.type,!0),console.warn(a+"Component wrapped in lazy() is "+s(l))}catch(e){console.warn(a+"We will log the wrapped component's name once it is loaded.")}}var c=n.props;n.type.__f&&delete(c=function(e,t){for(var n in t)e[n]=t[n];return e}({},c)).ref,function(e,t,n,r,o){Object.keys(e).forEach((function(n){var a;try{a=e[n](t,n,r,"prop",null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(e){a=e}a&&!(a.message in i)&&(i[a.message]=!0,console.error("Failed prop type: "+a.message+(o&&"\n"+o()||"")))}))}(n.type.propTypes,c,0,s(n),(function(){return p(n)}))}t&&t(n)};var x,O=0;o.options.__r=function(t){a&&a(t),e=!0;var n=t.__c;if(n===x?O++:O=1,O>=25)throw new Error("Too many re-renders. This is limited to prevent an infinite loop which may lock up your browser. The component causing this is: "+s(t));x=n},o.options.__h=function(t,n,r){if(!t||!e)throw new Error("Hook can only be invoked from render methods.");v&&v(t,n,r)};var S=function(e,t){return{get:function(){var n="get"+e+t;k&&k.indexOf(n)<0&&(k.push(n),console.warn("getting vnode."+e+" is deprecated, "+t))},set:function(){var n="set"+e+t;k&&k.indexOf(n)<0&&(k.push(n),console.warn("setting vnode."+e+" is not allowed, "+t))}}},C={nodeName:S("nodeName","use vnode.type"),attributes:S("attributes","use vnode.props"),children:S("children","use vnode.props.children")},A=Object.create({},C);o.options.vnode=function(e){var t=e.props;if(null!==e.type&&null!=t&&("__source"in t||"__self"in t)){var n=e.props={};for(var o in t){var i=t[o];"__source"===o?e.__source=i:"__self"===o?e.__self=i:n[o]=i}}e.__proto__=A,r&&r(e)},o.options.diffed=function(t){var r,o=t.type,i=t.__;if(t.__k&&t.__k.forEach((function(e){if("object"==typeof e&&e&&void 0===e.type){var n=Object.keys(e).join(",");throw new Error("Objects are not valid as a child. Encountered an object with the keys {"+n+"}.\n\n"+p(t))}})),t.__c===x&&(O=0),"string"==typeof o&&(y(o)||"p"===o||"a"===o||"button"===o)){var a=g(i);if(""!==a&&y(o))"table"===o&&"td"!==a&&y(a)?(console.log(a,i.__e),console.error("Improper nesting of table. Your
should not have a table-node parent."+w(t)+"\n\n"+p(t))):"thead"!==o&&"tfoot"!==o&&"tbody"!==o||"table"===a?"tr"===o&&"thead"!==a&&"tfoot"!==a&&"tbody"!==a?console.error("Improper nesting of table. Your should have a parent."+w(t)+"\n\n"+p(t)):"td"===o&&"tr"!==a?console.error("Improper nesting of table. Your parent."+w(t)+"\n\n"+p(t)):"th"===o&&"tr"!==a&&console.error("Improper nesting of table. Your ."+w(t)+"\n\n"+p(t)):console.error("Improper nesting of table. Your should have a
should have a
should have a
parent."+w(t)+"\n\n"+p(t));else if("p"===o){var l=m(t).filter((function(e){return _.test(e)}));l.length&&console.error("Improper nesting of paragraph. Your

should not have "+l.join(", ")+"as child-elements."+w(t)+"\n\n"+p(t))}else"a"!==o&&"button"!==o||-1!==m(t).indexOf(o)&&console.error("Improper nesting of interactive content. Your <"+o+"> should not have other "+("a"===o?"anchor":"button")+" tags as child-elements."+w(t)+"\n\n"+p(t))}if(e=!1,n&&n(t),null!=t.__k)for(var c=[],u=0;u2&&(s.children=arguments.length>3?r.call(arguments,2):n),"function"==typeof e&&null!=e.defaultProps)for(a in e.defaultProps)void 0===s[a]&&(s[a]=e.defaultProps[a]);return k(e,s,o,i,null)}function k(e,t,n,r,a){var s={type:e,props:t,key:n,ref:r,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:null==a?++i:a,__i:-1,__u:0};return null==a&&null!=o.vnode&&o.vnode(s),s}function x(){return{current:null}}function O(e){return e.children}function S(e,t){this.props=e,this.context=t}function C(e,t){if(null==t)return e.__?C(e.__,e.__i+1):null;for(var n;tt&&s.sort(u));T.__r=0}function P(e,t,n,r,o,i,a,s,l,c,u){var f,h,p,d,v,y=r&&r.__k||g,_=t.length;for(n.__d=l,D(n,t,y),l=n.__d,f=0;f<_;f++)null!=(p=n.__k[f])&&"boolean"!=typeof p&&"function"!=typeof p&&(h=-1===p.__i?m:y[p.__i]||m,p.__i=f,z(e,p,h,o,i,a,s,l,c,u),d=p.__e,p.ref&&h.ref!=p.ref&&(h.ref&&U(h.ref,null,p),u.push(p.ref,p.__c||d,p)),null==v&&null!=d&&(v=d),65536&p.__u||h.__k===p.__k?l=j(p,l,e):"function"==typeof p.type&&void 0!==p.__d?l=p.__d:d&&(l=d.nextSibling),p.__d=void 0,p.__u&=-196609);n.__d=l,n.__e=v}function D(e,t,n){var r,o,i,a,s,l=t.length,c=n.length,u=c,f=0;for(e.__k=[],r=0;r0?k(o.type,o.props,o.key,o.ref?o.ref:null,o.__v):o)?(o.__=e,o.__b=e.__b+1,s=R(o,n,a,u),o.__i=s,i=null,-1!==s&&(u--,(i=n[s])&&(i.__u|=131072)),null==i||null===i.__v?(-1==s&&f--,"function"!=typeof o.type&&(o.__u|=65536)):s!==a&&(s==a-1?f--:s==a+1?f++:s>a?u>l-a?f+=s-a:f--:s(null==l||131072&l.__u?0:1))for(;a>=0||s=0){if((l=t[a])&&!(131072&l.__u)&&o==l.key&&i===l.type)return a;a--}if(s2&&(l.children=arguments.length>3?r.call(arguments,2):n),k(e.type,l,o||e.key,i||e.ref,null)}function G(e,t){var n={__c:t="__cC"+d++,__:e,Consumer:function(e,t){return e.children(t)},Provider:function(e){var n,r;return this.getChildContext||(n=[],(r={})[t]=this,this.getChildContext=function(){return r},this.componentWillUnmount=function(){n=null},this.shouldComponentUpdate=function(e){this.props.value!==e.value&&n.some((function(e){e.__e=!0,E(e)}))},this.sub=function(e){n.push(e);var t=e.componentWillUnmount;e.componentWillUnmount=function(){n&&n.splice(n.indexOf(e),1),t&&t.call(e)}}),e.children}};return n.Provider.__=n.Consumer.contextType=n}r=g.slice,o={__e:function(e,t,n,r){for(var o,i,a;t=t.__;)if((o=t.__c)&&!o.__)try{if((i=o.constructor)&&null!=i.getDerivedStateFromError&&(o.setState(i.getDerivedStateFromError(e)),a=o.__d),null!=o.componentDidCatch&&(o.componentDidCatch(e,r||{}),a=o.__d),a)return o.__E=o}catch(t){e=t}throw e}},i=0,a=function(e){return null!=e&&null==e.constructor},S.prototype.setState=function(e,t){var n;n=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=_({},this.state),"function"==typeof e&&(e=e(_({},n),this.props)),e&&_(n,e),null!=e&&this.__v&&(t&&this._sb.push(t),E(this))},S.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),E(this))},S.prototype.render=O,s=[],c="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,u=function(e,t){return e.__v.__b-t.__v.__b},T.__r=0,f=0,h=I(!1),p=I(!0),d=0},5697:function(e,t,n){"use strict";n.r(t);var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},r(e,t)};function o(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}function i(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a}var a=function(e,t){this.target=t,this.type=e},s=function(e){function t(t,n){var r=e.call(this,"error",n)||this;return r.message=t.message,r.error=t,r}return o(t,e),t}(a),l=function(e){function t(t,n,r){void 0===t&&(t=1e3),void 0===n&&(n="");var o=e.call(this,"close",r)||this;return o.wasClean=!0,o.code=t,o.reason=n,o}return o(t,e),t}(a),c=function(){if("undefined"!=typeof WebSocket)return WebSocket},u={maxReconnectionDelay:1e4,minReconnectionDelay:1e3+4e3*Math.random(),minUptime:5e3,reconnectionDelayGrowFactor:1.3,connectionTimeout:4e3,maxRetries:1/0,maxEnqueuedMessages:1/0,startClosed:!1,debug:!1},f=function(){function e(e,t,n){var r=this;void 0===n&&(n={}),this._listeners={error:[],message:[],open:[],close:[]},this._retryCount=-1,this._shouldReconnect=!0,this._connectLock=!1,this._binaryType="blob",this._closeCalled=!1,this._messageQueue=[],this.onclose=null,this.onerror=null,this.onmessage=null,this.onopen=null,this._handleOpen=function(e){r._debug("open event");var t=r._options.minUptime,n=void 0===t?u.minUptime:t;clearTimeout(r._connectTimeout),r._uptimeTimeout=setTimeout((function(){return r._acceptOpen()}),n),r._ws.binaryType=r._binaryType,r._messageQueue.forEach((function(e){return r._ws.send(e)})),r._messageQueue=[],r.onopen&&r.onopen(e),r._listeners.open.forEach((function(t){return r._callEventListener(e,t)}))},this._handleMessage=function(e){r._debug("message event"),r.onmessage&&r.onmessage(e),r._listeners.message.forEach((function(t){return r._callEventListener(e,t)}))},this._handleError=function(e){r._debug("error event",e.message),r._disconnect(void 0,"TIMEOUT"===e.message?"timeout":void 0),r.onerror&&r.onerror(e),r._debug("exec error listeners"),r._listeners.error.forEach((function(t){return r._callEventListener(e,t)})),r._connect()},this._handleClose=function(e){r._debug("close event"),r._clearTimeouts(),r._shouldReconnect&&r._connect(),r.onclose&&r.onclose(e),r._listeners.close.forEach((function(t){return r._callEventListener(e,t)}))},this._url=e,this._protocols=t,this._options=n,this._options.startClosed&&(this._shouldReconnect=!1),this._connect()}return Object.defineProperty(e,"CONNECTING",{get:function(){return 0},enumerable:!0,configurable:!0}),Object.defineProperty(e,"OPEN",{get:function(){return 1},enumerable:!0,configurable:!0}),Object.defineProperty(e,"CLOSING",{get:function(){return 2},enumerable:!0,configurable:!0}),Object.defineProperty(e,"CLOSED",{get:function(){return 3},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"CONNECTING",{get:function(){return e.CONNECTING},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"OPEN",{get:function(){return e.OPEN},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"CLOSING",{get:function(){return e.CLOSING},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"CLOSED",{get:function(){return e.CLOSED},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"binaryType",{get:function(){return this._ws?this._ws.binaryType:this._binaryType},set:function(e){this._binaryType=e,this._ws&&(this._ws.binaryType=e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"retryCount",{get:function(){return Math.max(this._retryCount,0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"bufferedAmount",{get:function(){return this._messageQueue.reduce((function(e,t){return"string"==typeof t?e+=t.length:t instanceof Blob?e+=t.size:e+=t.byteLength,e}),0)+(this._ws?this._ws.bufferedAmount:0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"extensions",{get:function(){return this._ws?this._ws.extensions:""},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"protocol",{get:function(){return this._ws?this._ws.protocol:""},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"readyState",{get:function(){return this._ws?this._ws.readyState:this._options.startClosed?e.CLOSED:e.CONNECTING},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"url",{get:function(){return this._ws?this._ws.url:""},enumerable:!0,configurable:!0}),e.prototype.close=function(e,t){void 0===e&&(e=1e3),this._closeCalled=!0,this._shouldReconnect=!1,this._clearTimeouts(),this._ws?this._ws.readyState!==this.CLOSED?this._ws.close(e,t):this._debug("close: already closed"):this._debug("close enqueued: no ws instance")},e.prototype.reconnect=function(e,t){this._shouldReconnect=!0,this._closeCalled=!1,this._retryCount=-1,this._ws&&this._ws.readyState!==this.CLOSED?(this._disconnect(e,t),this._connect()):this._connect()},e.prototype.send=function(e){if(this._ws&&this._ws.readyState===this.OPEN)this._debug("send",e),this._ws.send(e);else{var t=this._options.maxEnqueuedMessages,n=void 0===t?u.maxEnqueuedMessages:t;this._messageQueue.length=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}}}(r),i=o.next();!i.done;i=o.next()){var a=i.value;this._callEventListener(e,a)}}catch(e){t={error:e}}finally{try{i&&!i.done&&(n=o.return)&&n.call(o)}finally{if(t)throw t.error}}return!0},e.prototype.removeEventListener=function(e,t){this._listeners[e]&&(this._listeners[e]=this._listeners[e].filter((function(e){return e!==t})))},e.prototype._debug=function(){for(var e=[],t=0;t"],e))},e.prototype._getNextDelay=function(){var e=this._options,t=e.reconnectionDelayGrowFactor,n=void 0===t?u.reconnectionDelayGrowFactor:t,r=e.minReconnectionDelay,o=void 0===r?u.minReconnectionDelay:r,i=e.maxReconnectionDelay,a=void 0===i?u.maxReconnectionDelay:i,s=0;return this._retryCount>0&&(s=o*Math.pow(n,this._retryCount-1))>a&&(s=a),this._debug("next delay",s),s},e.prototype._wait=function(){var e=this;return new Promise((function(t){setTimeout(t,e._getNextDelay())}))},e.prototype._getNextUrl=function(e){if("string"==typeof e)return Promise.resolve(e);if("function"==typeof e){var t=e();if("string"==typeof t)return Promise.resolve(t);if(t.then)return t}throw Error("Invalid URL")},e.prototype._connect=function(){var e=this;if(!this._connectLock&&this._shouldReconnect){this._connectLock=!0;var t=this._options,n=t.maxRetries,r=void 0===n?u.maxRetries:n,o=t.connectionTimeout,i=void 0===o?u.connectionTimeout:o,a=t.WebSocket,s=void 0===a?c():a;if(this._retryCount>=r)this._debug("max retries reached",this._retryCount,">=",r);else{if(this._retryCount++,this._debug("connect",this._retryCount),this._removeListeners(),void 0===(l=s)||!l||2!==l.CLOSING)throw Error("No valid WebSocket class provided");var l;this._wait().then((function(){return e._getNextUrl(e._url)})).then((function(t){e._closeCalled||(e._debug("connect",{url:t,protocols:e._protocols}),e._ws=e._protocols?new s(t,e._protocols):new s(t),e._ws.binaryType=e._binaryType,e._connectLock=!1,e._addListeners(),e._connectTimeout=setTimeout((function(){return e._handleTimeout()}),i))}))}}},e.prototype._handleTimeout=function(){this._debug("timeout event"),this._handleError(new s(Error("TIMEOUT"),this))},e.prototype._disconnect=function(e,t){if(void 0===e&&(e=1e3),this._clearTimeouts(),this._ws){this._removeListeners();try{this._ws.close(e,t),this._handleClose(new l(e,t,this))}catch(e){}}},e.prototype._acceptOpen=function(){this._debug("accept open"),this._retryCount=0},e.prototype._callEventListener=function(e,t){"handleEvent"in t?t.handleEvent(e):t(e)},e.prototype._removeListeners=function(){this._ws&&(this._debug("removeListeners"),this._ws.removeEventListener("open",this._handleOpen),this._ws.removeEventListener("close",this._handleClose),this._ws.removeEventListener("message",this._handleMessage),this._ws.removeEventListener("error",this._handleError))},e.prototype._addListeners=function(){this._ws&&(this._debug("addListeners"),this._ws.addEventListener("open",this._handleOpen),this._ws.addEventListener("close",this._handleClose),this._ws.addEventListener("message",this._handleMessage),this._ws.addEventListener("error",this._handleError))},e.prototype._clearTimeouts=function(){clearTimeout(this._connectTimeout),clearTimeout(this._uptimeTimeout)},e}();t.default=f},78:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=n(172),i=r(n(5843));t.default=({mapZoomFactor:e,annotations:t})=>(0,o.h)("div",{"data-testid":"meridian--private--annotation-layer"},t.map(((t,n)=>"point"===t.type?(0,o.h)(i.default,Object.assign({key:n},t,{mapZoomFactor:e})):null)))},5843:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(172),o=n(2785),i=n(7746),a=({mapZoomFactor:e,x:t,y:n,size:o=24,backgroundColor:a="hsl(207, 65%, 46%)",backgroundSize:c="cover",backgroundImage:u,title:f,onClick:h,data:p={}})=>(0,r.h)("div",{className:s,style:{"--meridian-annotationPoint-x":`${t}px`,"--meridian-annotationPoint-y":`${n}px`,"--meridian-annotationPoint-scale":1/e,"--meridian-annotationPoint-size":`${o}px`,"--meridian-annotationPoint-backgroundColor":a,"--meridian-annotationPoint-backgroundSize":c,"--meridian-annotationPoint-backgroundImage":u?`url('${u}')`:"none",cursor:h?"pointer":"initial"},onClick:h?()=>(0,i.asyncClientCall)(h,p):void 0,"data-testid":"meridian--private--annotation-point"},f?(0,r.h)("div",{className:l,"data-testid":"meridian--private--annotation-point-title"},f):null),s=(0,o.css)({label:"AnnotationPoint",position:"absolute",top:"var(--meridian-annotationPoint-y)",left:"var(--meridian-annotationPoint-x)",transform:"translate(-50%, -50%) scale(var(--meridian-annotationPoint-scale))",width:"var(--meridian-annotationPoint-size)",height:"var(--meridian-annotationPoint-size)",backgroundColor:"var(--meridian-annotationPoint-backgroundColor)",backgroundImage:"var(--meridian-annotationPoint-backgroundImage)",backgroundSize:"var(--meridian-annotationPoint-backgroundSize)",backgroundRepeat:"no-repeat",backgroundPosition:"center",borderRadius:9999,userSelect:"none"}),l=(0,o.css)(o.mixins.textStrokeWhite,{label:"AnnotationPoint-Label",marginLeft:"50%",position:"absolute",minWidth:55,maxWidth:120,fontSize:14,textAlign:"center",marginTop:"var(--meridian-annotationPoint-size)",paddingTop:4,color:"#222",userSelect:"none",transform:"translate(-50%, 0)",fontWeight:"bold"});a.displayName="AnnotationPoint",t.default=a},2150:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=r(n(1324)),i=n(172),a=r(n(2930)),s=r(n(9594)),l=r(n(8828)),c=r(n(6933)),u=n(2785),f=r(n(7866)),h=n(7746);class p extends i.Component{constructor(){super(...arguments),this.state={searchFilter:"",searchType:this.props.showTags?"tags":"placemarks"},this.searchInputRef=(0,i.createRef)(),this.setRadioFilter=e=>{this.setState({searchType:e})}}componentDidMount(){this.searchInputRef.current&&this.searchInputRef.current.focus()}render(){const{floors:e,tagsLoading:t,placemarksLoading:n,toggleAssetListOverlay:r,showTags:a,showPlacemarks:s,language:u}=this.props,p=f.default.lookup("tags",u),g=f.default.lookup("search_tags",u),v=f.default.lookup("placemarks",u),y=f.default.lookup("search_placemarks",u),{searchFilter:_}=this.state,b=(0,h.createSearchMatcher)(_),w=(0,o.default)(e,(e=>e.id)),S={};for(const t of e)S[t.id]=[t.group_name||h.uiText.unnamedBuilding,h.uiText.enDash,t.name].join(" ");return(0,i.h)(l.default,{position:"right",onCloseClicked:()=>{r({open:!1})}},(0,i.h)(c.default,{placeholder:"tags"===this.state.searchType?g:y,value:_,onChange:e=>{this.setState({searchFilter:e})}}),(0,i.h)("div",{className:O(Boolean(a&&s))},a?(0,i.h)(i.Fragment,null,(0,i.h)("input",{type:"radio",name:"searchType",id:"tags",className:x,checked:"tags"===this.state.searchType,onChange:e=>{e.target.checked&&this.setRadioFilter("tags")}}),(0,i.h)("label",{for:"tags",className:k},p)):null,s?(0,i.h)(i.Fragment,null,(0,i.h)("input",{type:"radio",name:"searchType",id:"placemarks",className:x,checked:"placemarks"===this.state.searchType,onChange:e=>{e.target.checked&&this.setRadioFilter("placemarks")}}),(0,i.h)("label",{for:"placemarks",className:k},v)):null),(()=>"tags"===this.state.searchType?(0,i.h)(d,Object.assign({},this.props,{floorToGroup:S,floorsByID:w,match:b,loading:t})):(0,i.h)(m,Object.assign({},this.props,{floorToGroup:S,floorsByID:w,match:b,loading:n})))())}}function d(e){const{currentFloorID:t,updateMap:n,tagOptions:r={},tags:l,loading:c,onTagClick:p,toggleAssetListOverlay:d,match:m,floorsByID:k,floorToGroup:x,language:O}=e,S=f.default.lookup("no_results_found",O),C=l.filter((e=>{const t=k[e.map_id][0];return!t||t.published})).filter((e=>m(e.name||"")||m(e.mac)||(0,h.getTagLabels)(e).some(m))).filter((e=>!0===r.showControlTags||!e.is_control_tag)).sort(((e,t)=>e.namet.name?1:0)),A=(0,o.default)(C,(e=>x[e.map_id])),E=Object.keys(A).sort();return E.forEach(((e,n)=>{if(A[e][0].map_id===t){const[e]=E.splice(n,1);E.unshift(e)}})),c?(0,i.h)("div",{className:w},(0,i.h)(a.default,null)):0===C.length?(0,i.h)("div",{className:w},S,"."):(0,i.h)("div",{className:v},E.map((e=>(0,i.h)("div",{key:e},(0,i.h)("div",{className:g},e),A[e].map((e=>(0,i.h)("button",{key:e.id,"data-testid":`meridian--private--overlay-tag-${e.id}`,className:y,onClick:()=>{n({floorID:e.map_id,tags:Object.assign(Object.assign({},r),{filter:()=>!0})}),p(e),d({open:!1})}},(0,i.h)("div",{className:_},(0,i.h)("div",{className:b},e.name||e.mac),(0,i.h)(s.default,{align:"right",labels:(0,h.getTagLabels)(e),fontSize:u.theme.fontSizeSmallest})))))))))}function m(e){const{currentFloorID:t,updateMap:n,placemarkOptions:r={},toggleAssetListOverlay:s,floorToGroup:l,match:c,placemarks:u,onPlacemarkClick:h,floorsByID:p,loading:d,language:m}=e,_=f.default.lookup("no_results_found",m),k=u.filter((e=>{const t=p[e.map][0];return!t||t.published})).filter((e=>e.is_searchable||null===e.is_searchable||void 0===e.is_searchable)).filter((e=>"exclusion_area"!==e.type&&(!0===r.showHiddenPlacemarks||!e.hide_on_map))).filter((e=>c(e.name||"")||c(e.type_name||""))).sort(((e,t)=>e.namet.name?1:0)),x=(0,o.default)(k,(e=>l[e.map])),O=Object.keys(x).sort();return O.forEach(((e,n)=>{if(x[e][0].map_id===t){const[e]=O.splice(n,1);O.unshift(e)}})),d?(0,i.h)("div",{className:w},(0,i.h)(a.default,null)):0===k.length?(0,i.h)("div",{className:w},_,"."):(0,i.h)("div",{className:v},O.map((e=>(0,i.h)("div",{key:e},(0,i.h)("div",{className:g},e),x[e].map((e=>(0,i.h)("button",{key:e.id,"data-testid":`meridian--private--overlay-tag-${e.id}`,className:y,onClick:()=>{n({floorID:e.map,placemarks:Object.assign(Object.assign({},r),{filter:()=>!0})}),h(e),s({open:!1})}},(0,i.h)("div",{className:b},e.name||e.type_name))))))))}const g=(0,u.css)({label:"overlay-building-name",top:0,position:"sticky",textTransform:"uppercase",fontWeight:"bold",color:u.theme.brandBlue,background:u.theme.almostWhite,fontSize:u.theme.fontSizeSmaller,padding:10}),v=(0,u.css)({label:"asset-list",overflowY:"auto",flex:"1 1 auto"}),y=(0,u.css)(u.mixins.buttonReset,u.mixins.focusRingMenuItem,u.mixins.buttonHoverActive,{label:"overlay-asset-button",minHeight:56,padding:10,paddingLeft:20,display:"block",width:"100%",textAlign:"left"}),_=(0,u.css)(u.mixins.flexRow,{label:"overlay-asset-button-inner",alignItems:"center"}),b=(0,u.css)({label:"overlay-asset-button-name",flex:"1 1 auto"}),w=(0,u.css)({label:"overlay-asset-list-empty",padding:"60px 20px",textAlign:"center",fontSize:u.theme.fontSizeBigger,color:u.theme.textColorBluish}),k=(0,u.css)({label:"overlay-radio-label",color:"white",padding:"2px 10px 0px 4px"}),x=(0,u.css)({label:"overlay-radio-button",WebkitAppearance:"none",position:"relative",boxSizing:"border-box",border:"1px solid rgb(224,224,225)",width:16,height:16,background:"white",borderRadius:9999,cursor:"pointer",boxShadow:"inset 0 2px 2px rgba(0, 0, 0, 0.1)","&:focus":{outline:"none",borderColor:u.theme.searchBarColor,borderWidth:2},"&:checked":{"--circle-color":u.theme.searchBarColor,"--circle-gap":"4px"},"&:checked::after":{content:'" "',position:"absolute",width:"calc(100% - var(--circle-gap))",height:"calc(100% - var(--circle-gap))",left:"calc(var(--circle-gap) / 2)",top:"calc(var(--circle-gap) / 2)",background:"var(--circle-color)",borderRadius:9999},"&:checked:focus":{"--circle-gap":"4px","--circle-color":u.theme.searchBarColor,borderColor:u.theme.searchBarColor,borderWidth:2}}),O=e=>(0,u.css)({label:"overlay-radio-container",display:e?"flex":"none",flexDirection:"row",justifyContent:"baseline",paddingLeft:10,paddingBottom:10,backgroundColor:"rgb(105, 146, 176)",alignItems:"center"});t.default=p},324:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=n(172),i=r(n(9594)),a=r(n(8828)),s=n(2785),l=n(7746),c=n(4221),u=(0,s.css)({label:"overlay-image",width:"100%",backgroundColor:"white",backgroundPosition:"center",backgroundRepeat:"no-repeat",backgroundSize:"cover"}),f=(0,s.css)({label:"overlay-name",fontSize:22}),h=(0,s.css)({label:"overlay-content",padding:"0 20px 15px 20px",overflow:"auto"}),p=(0,s.css)({label:"overlay-tag-data",fontSize:14}),d=(0,s.css)({label:"overlay-placemark-data",fontSize:14});t.default=({kind:e,item:t,toggleDetailsOverlay:n})=>{const r="placemark"===e&&t.image_url?{backgroundImage:`url('${t.image_url}')`,backgroundSize:"contain",height:300,minHeight:220}:"placemark"===e?{backgroundSize:"contain",backgroundImage:`url('${(0,c.placemarkIconURL)(t.type)}')`,backgroundColor:`#${t.color}`,height:300,minHeight:220}:"tag"===e&&t.image_url?{backgroundImage:`url('${t.image_url}')`,height:300}:{background:s.theme.brandBrightBlue,height:300};return(0,o.h)(a.default,{position:"left",onCloseClicked:()=>{n({open:!1})}},(0,o.h)("div",{className:u,style:r}),(0,o.h)("div",{className:(0,s.cx)("meridian-overlay-content",h)},(0,o.h)("p",{className:(0,s.cx)("meridian-overlay-item-name",f)},t.name||t.type_name),"tag"===e?(0,o.h)("div",{className:(0,s.cx)("meridian-overlay-tag-data",p)},(0,o.h)(i.default,{align:"left",labels:(0,l.getTagLabels)(t),fontSize:s.theme.fontSize}),(0,o.h)("p",null,"MAC: ",t.mac)):(0,o.h)("div",{className:(0,s.cx)("meridian-overlay-placemark-description",d),dangerouslySetInnerHTML:function(){if("placemark"===e&&t.description)return{__html:t.description}}()})))}},8812:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=n(172),i=r(n(4145)),a=n(2785),s=(0,a.css)(a.mixins.rounded,{label:"error",position:"absolute",zIndex:4,top:"35%",left:0,right:0,margin:"0 auto",minWidth:300,maxWidth:420,border:"1px solid #dfe1ef",paddingTop:15,paddingRight:20,paddingBottom:15,paddingLeft:25,background:a.theme.white,boxShadow:"0 0 1px rgba(0, 0, 0, 0.15), inset 4px 0 0 #d82e1f"}),l=(0,a.css)(a.mixins.buttonReset,{label:"close",cursor:"pointer",float:"right",width:38,height:38,marginLeft:15,padding:4,fill:"#c3c5c8","&:hover":{fill:a.theme.textColorBluish,cursor:"pointer"},"&:focus":{outline:0}});t.default=({toggleErrorOverlay:e,messages:t=["Unknown"]})=>(0,o.h)("div",{className:s},(0,o.h)("button",{className:l,onClick:()=>{e({open:!1})}},(0,o.h)(i.default,null)),(0,o.h)("p",null,"Sorry, something went wrong. It might be related to:"),(0,o.h)("ul",null,t.map(((e,t)=>(0,o.h)("li",{key:t},e)))))},3169:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(172),o=n(2785),i=(0,o.css)({label:"floor-and-tag-controls",display:"flex",flexDirection:"column",position:"absolute",zIndex:1,right:15,top:15}),a=(0,o.css)(o.mixins.buttonReset,o.mixins.shadow,o.mixins.rounded,o.mixins.buttonHoverActive,o.mixins.focusRing,{label:"control",cursor:"pointer",background:"white",padding:4,width:40,height:40,border:0,fontSize:20,fontWeight:200,fill:o.theme.brandBrightBlue}),s=(0,o.css)(a,{marginTop:10});t.default=({toggleFloorOverlay:e,toggleAssetListOverlay:t,showFloors:n,showSearch:l})=>(0,r.h)("div",{className:i},l?(0,r.h)("button",{className:(0,o.cx)("meridian-tag-control",a),"data-testid":"meridian--private--tag-control",onClick:()=>{t({open:!0})}},(0,r.h)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 36 36"},(0,r.h)("path",{d:"M26.19 25l-4.12-4.12a7.29 7.29 0 001.44-4.35 7.11 7.11 0 00-7-7.2 7.11 7.11 0 00-7 7.2 7.11 7.11 0 007 7.2 6.83 6.83 0 004.16-1.42l4.1 4.1A1 1 0 0026.19 25zm-14.68-8.49a5.11 5.11 0 015-5.2 5.11 5.11 0 015 5.2 5.11 5.11 0 01-5 5.2 5.11 5.11 0 01-5-5.2z"}))):null,n?(0,r.h)("button",{className:(0,o.cx)("meridian-floor-control",n&&l?s:a),"data-testid":"meridian--private--floor-control",onClick:()=>{e({open:!0})}},(0,r.h)("svg",{viewBox:"0 0 36 36"},(0,r.h)("path",{d:"M28.4 14.09a1.84 1.84 0 0 0-.62-.39l-8.48-3.33a3.61 3.61 0 0 0-1.3-.22 3.56 3.56 0 0 0-1.3.22L8.22 13.7a1.83 1.83 0 0 0-.62.39 1.24 1.24 0 0 0 0 1.82 1.85 1.85 0 0 0 .62.39l8.48 3.34a3.92 3.92 0 0 0 2.59 0l8.48-3.34a1.86 1.86 0 0 0 .62-.39 1.24 1.24 0 0 0 0-1.82m-9.83 3.68a2 2 0 0 1-1.13 0l-7-2.77 7-2.77a2 2 0 0 1 1.13 0l7 2.77zm9.83 2.32a1.24 1.24 0 0 1 0 1.82 1.86 1.86 0 0 1-.62.39l-8.47 3.33a3.92 3.92 0 0 1-2.59 0L8.22 22.3a1.85 1.85 0 0 1-.62-.39 1.24 1.24 0 0 1 0-1.82 1.83 1.83 0 0 1 .62-.39L10 19l2.73 1.08-2.34.92 7 2.77a2 2 0 0 0 1.13 0l7-2.77-2.35-.92L26 19l1.79.7a1.84 1.84 0 0 1 .62.39"}))):null)},6670:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(172),o=n(2785),i=n(7746),a=(0,o.css)(o.mixins.buttonReset,o.mixins.rounded,o.mixins.overflowEllipses,{label:"floor-control",background:"rgba(0, 0, 0, 0.4)",color:"white",textShadow:"0 0 2px black",position:"absolute",zIndex:1,bottom:15,left:"50%",transform:"translate(-50%, 0)",textAlign:"center",maxWidth:300,padding:"8px 16px",border:0,fontSize:16});t.default=({buildingName:e,floorName:t})=>(0,r.h)("div",{className:(0,o.cx)("meridian-floor-label",a),"data-testid":"meridian--private--floor-label"},e||i.uiText.unnamedBuilding," ",i.uiText.enDash," ",t)},4144:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=r(n(1324)),i=n(172),a=r(n(8828)),s=r(n(6933)),l=n(2785),c=r(n(7866)),u=n(7746);class f extends i.Component{constructor(){super(...arguments),this.state={searchFilter:""},this.searchInputRef=(0,i.createRef)()}componentDidMount(){this.searchInputRef.current&&this.searchInputRef.current.focus()}render(){const{currentFloorID:e,toggleFloorOverlay:t,selectFloorByID:n,floors:r,language:f}=this.props,y=c.default.lookup("search_floors",f),_=c.default.lookup("no_results_found",f),{searchFilter:b}=this.state,w=(0,u.createSearchMatcher)(b),k=r.filter((e=>e.published&&(w(e.name||"")||w(e.group_name||u.uiText.unnamedBuilding)))),x=(0,o.default)(k,"group_name"),O=Object.keys(x).sort();""===O[0]&&(O.push(O[0]),O.shift());for(const e of O)x[e].sort(((e,t)=>Math.sign(e.level-t.level))),this.props.sortDescending&&x[e].reverse();return(0,i.h)(a.default,{position:"right",onCloseClicked:()=>{t({open:!1})}},(0,i.h)(s.default,{placeholder:y,value:b,onChange:e=>{this.setState({searchFilter:e})}}),0===O.length?(0,i.h)("div",{className:m},_,"."):(0,i.h)("div",{className:p,"data-testid":"meridian--private--floors-list"},O.map((r=>(0,i.h)("div",{key:r},(0,i.h)("div",{className:h},r||u.uiText.unnamedBuilding),x[r].map((r=>(0,i.h)("button",{key:r.name,onClick:()=>{n(r.id),t({open:!1})},className:(0,l.cx)(d,r.id===e?g:void 0),"data-testid":r.id===e?"meridian--private--current-floor":"meridian--private--floor"},r.name,r.id===e?(0,i.h)("svg",{viewBox:"0 0 10 7",className:v},(0,i.h)("path",{d:"M3.9 7C3.7 7 3.4 6.9 3.2 6.7L0.3 3.8C-0.1 3.4 -0.1 2.8 0.3 2.4C0.7 2 1.3 2 1.7 2.4L3.9 4.6L8.2 0.3C8.6 -0.1 9.2 -0.1 9.6 0.3C10 0.7 10 1.3 9.6 1.7L4.6 6.7C4.4 6.9 4.2 7 3.9 7Z"})):null))))))))}}const h=(0,l.css)({label:"overlay-building-name",textTransform:"uppercase",fontWeight:"bold",top:0,position:"sticky",color:l.theme.brandBlue,background:l.theme.almostWhite,fontSize:l.theme.fontSizeSmaller,padding:10}),p=(0,l.css)({label:"floors-list",overflowY:"auto"}),d=(0,l.css)(l.mixins.buttonReset,l.mixins.focusRingMenuItem,l.mixins.buttonHoverActive,{label:"overlay-floor-button",padding:10,paddingLeft:20,display:"block",width:"100%",textAlign:"left"}),m=(0,l.css)({label:"overlay-floor-list-empty",padding:"60px 20px",textAlign:"center",fontSize:l.theme.fontSizeBigger,color:l.theme.textColorBluish}),g=(0,l.css)({label:"overlay-floor-button-curent-floor",color:l.theme.brandBrightBlue,fill:"currentcolor"}),v=(0,l.css)({label:"floor-checkmark",verticalAlign:"middle",marginLeft:"0.5em",width:"0.8em",height:"0.8em"});t.default=f},4145:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(172);t.default=()=>(0,r.h)("svg",{viewBox:"0 0 36 36"},(0,r.h)("path",{d:"M19.41 18l6.36-6.36a1 1 0 0 0-1.41-1.41L18 16.59l-6.36-6.36a1 1 0 0 0-1.41 1.41L16.59 18l-6.36 6.36a1 1 0 1 0 1.41 1.41L18 19.41l6.36 6.36a1 1 0 0 0 1.41-1.41z"}))},2930:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(172),o=n(2785),i=(0,o.keyframes)({from:{transform:"rotate(0turn)"},to:{transform:"rotate(1turn)"}}),a=(0,o.css)({label:"spinner",width:22,height:22,margin:"0 auto",border:"2px rgba(227, 227, 227, 0.9) solid",borderTop:"2px #2e7cbe solid",borderRadius:"50%",animation:`${i} 600ms infinite linear`});t.default=()=>(0,r.h)("div",{className:a})},9594:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(172),o=n(2785),i=(0,o.css)({label:"label-list",fontSize:"var(--meridian-labelList-fontSize)",marginTop:8,marginLeft:3,textAlign:"var(--meridian-labelList-textAlign)",flex:"1 1 auto"}),a=(0,o.css)(o.mixins.maxRounded,{label:"label",display:"inline-block",padding:"3px 8px",marginBottom:8,marginRight:8,background:"rgba(0, 0, 0, 0.035)",border:"1px solid rgba(0, 0, 0, 0.05)",color:"#3b3b3b"});t.default=({align:e,labels:t,fontSize:n=o.theme.fontSize})=>0===t.length?null:(0,r.h)("div",{className:i,style:{"--meridian-labelList-fontSize":n,"--meridian-labelList-textAlign":e}},t.map(((e,t)=>(0,r.h)("div",{key:t,className:a},e))))},4905:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=n(172),i=n(2785),a=r(n(2930)),s=(0,i.css)({label:"loading",position:"absolute",zIndex:1,width:30,left:0,top:"45%",right:0,overflow:"hidden",margin:"0 auto",color:i.theme.textColor,textAlign:"center",pointerEvents:"none"});t.default=()=>(0,o.h)("div",{className:s},(0,o.h)(a.default,null))},529:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=n(9062);n(7662);const i=n(9529),a=n(172),s=r(n(78)),l=r(n(324)),c=r(n(8812)),u=r(n(3169)),f=r(n(6670)),h=r(n(4144)),p=r(n(4905)),d=r(n(6805)),m=r(n(7387)),g=n(2785),v=r(n(8901)),y=r(n(2150)),_=n(7746),b=r(n(5481)),w=r(n(181));class k extends a.Component{constructor(){super(...arguments),this.state={mapImageURL:void 0,isFloorOverlayOpen:!1,isAssetListOverlayOpen:!1,isMapMarkerOverlayOpen:!1,isErrorOverlayOpen:!1,isPanningOrZooming:!1,loadingSources:{},errors:[],mapTransform:"",mapZoomFactor:.5,floors:[],allPlacemarkData:[],svgURL:void 0,tagsConnection:void 0,tagsStatus:"Connecting",selectedItem:void 0,areTagsLoading:Boolean(this.props.showSearchControl&&this.props.loadTags),arePlacemarksLoading:Boolean(this.props.showSearchControl&&this.props.loadPlacemarks),allTagData:[]},this.isMounted=!1,this.isLoaded=!1,this.fetchAllTagsInitialized=!1,this.fetchAllPlacemarksInitialized=!1,this.mapRef=(0,a.createRef)(),this.mapContainerRef=(0,a.createRef)(),this.mapImageref=(0,a.createRef)(),this.debouncedResizeFn=(0,w.default)(this.handleResize.bind(this),250),this.onTagsInit=()=>{this.props.showSearchControl&&this.props.loadTags&&this.fetchAllTags()},this.onPlacemarksInit=()=>{this.props.showSearchControl&&this.props.loadPlacemarks&&this.fetchAllPlacemarks()},this.updateMap=e=>{const{update:t}=this.props;t(e)},this.toggleAssetListOverlay=({open:e})=>{this.isMounted&&this.setState({isAssetListOverlayOpen:e})},this.toggleFloorOverlay=({open:e})=>{this.isMounted&&this.setState({isFloorOverlayOpen:e})},this.toggleErrorOverlay=({open:e,message:t="Unknown"})=>{this.isMounted&&(e?this.setState((e=>({errors:[...e.errors,t],isErrorOverlayOpen:!0}))):this.setState({isErrorOverlayOpen:!1,errors:[]}))},this.toggleLoadingSpinner=({show:e,source:t="unknown"})=>{this.isMounted&&this.setState((n=>({loadingSources:Object.assign(Object.assign({},n.loadingSources),{[t]:e})})))},this.toggleDetailsOverlay=({open:e,selectedItem:t})=>{this.setState({isMapMarkerOverlayOpen:e,selectedItem:t})},this.selectFloorByID=e=>{if(this.updateMap({floorID:e,annotations:[],overlays:[]}),this.props.onFloorChange){const t=this.state.floors.find((t=>t.id===e));t&&(0,_.asyncClientCall)(this.props.onFloorChange,t)}},this.zoomToPoint=(e,t,n)=>{if(!this.mapSelection)throw new Error("mapSelection is not defined");if(!this.zoomD3)throw new Error("zoomD3 is not defined");const{width:r,height:o}=this.getMapRefSize(),a=i.zoomIdentity.translate(-n*e+r/2,-n*t+o/2).scale(n);this.mapSelection.transition().duration(250).call(this.zoomD3.transform,a)},this.zoomBy=e=>{if(!this.mapSelection)throw new Error("mapSelection is not defined");if(!this.zoomD3)throw new Error("zoomD3 is not defined");this.mapSelection.transition().duration(250).call(this.zoomD3.scaleBy,e)},this.zoomIn=()=>{this.zoomBy(1.5)},this.zoomOut=()=>{this.zoomBy(.5)},this.onClick=e=>{var t,n,r;const o=e.target instanceof Element&&((null===(n=null===(t=this.mapRef.current)||void 0===t?void 0:t.isEqualNode)||void 0===n?void 0:n.call(t,e.target))||(null===(r=this.mapImageref.current)||void 0===r?void 0:r.isEqualNode(e.target)));this.props.onMapClick&&o?(0,_.asyncClientCall)(this.props.onMapClick):o&&this.toggleDetailsOverlay({open:!1})},this.onTagClick=async e=>{let t=!0;const{onTagClick:n=(()=>{})}=this.props;try{const r={preventDefault:()=>{t=!1}};await n(e,r)}catch(e){(0,_.logError)(e)}t&&this.toggleDetailsOverlay({open:!0,selectedItem:e})},this.onPlacemarkClick=async e=>{let t=!0;const{onPlacemarkClick:n=(()=>{})}=this.props;try{const r={preventDefault:()=>{t=!1}};await n(e,r)}catch(e){(0,_.logError)(e)}t&&this.toggleDetailsOverlay({open:!0,selectedItem:e})}}componentDidMount(){this.validateFloorID(),this.isMounted=!0;const{api:e,locationID:t}=this.props;(0,_.isEnvOptions)(e.environment)?t?this.loadData():this.toggleErrorOverlay({open:!0,message:'createMap error: "options.locationID" is required'}):this.toggleErrorOverlay({open:!0,message:`API error: "${e.environment}" is not a valid environment`}),this.intervalAutoDestroy=setInterval((()=>{this.isMounted&&this.mapContainerRef.current&&!this.mapContainerRef.current.isConnected&&this.props.destroy()}),1e3),window.addEventListener("resize",this.debouncedResizeFn)}async loadData(){await this.initializeFloors()}componentDidUpdate(e){if(this.props.locationID!==e.locationID)return this.toggleAssetListOverlay({open:!1}),this.toggleErrorOverlay({open:!1}),this.toggleDetailsOverlay({open:!1}),this.toggleFloorOverlay({open:!1}),this.zoomToDefault(),this.freeMapImageURL(),this.setState({mapImageURL:void 0,allPlacemarkData:[]}),void this.loadData();this.props.loadTags&&this.props.showSearchControl&&!e.showSearchControl&&this.fetchAllTags({forceUpdate:!0}),e.floorID!==this.props.floorID?(this.zoomToDefault(),this.validateFloorID(),this.freeMapImageURL(),this.setState({mapImageURL:void 0}),this.fetchMapImageURL()):this.props.loadPlacemarks&&this.props.showSearchControl&&!e.showSearchControl&&this.fetchAllPlacemarks({forceUpdate:!0})}componentWillUnmount(){this.isMounted=!1,this.fetchAllTagsTimeout&&clearTimeout(this.fetchAllTagsTimeout),this.fetchAllPlacemarksTimeout&&clearTimeout(this.fetchAllPlacemarksTimeout),this.freeMapImageURL(),clearInterval(this.intervalAutoDestroy),window.removeEventListener("resize",this.debouncedResizeFn)}handleResize(){const e=this.mapContainerSize,t=this.getMapRefSize(),{width:n,height:r}=e||{},{width:o,height:i}=t;n===o&&r===i||(this.mapContainerSize=t,this.zoomToDefault())}freeMapImageURL(){this.state.mapImageURL&&URL.revokeObjectURL(this.state.mapImageURL)}async fetchMapImageURL(){const{api:e,locationID:t,floorID:n}=this.props,r=this.getMapData();if(!r)return;const o=await e.fetchSVG(r.svg_url);this.isMounted&&(n===this.props.floorID&&t===this.props.locationID?this.setState({mapImageURL:o}):URL.revokeObjectURL(o))}validateFloorID(){const{floorID:e}=this.props;e||this.toggleErrorOverlay({open:!0,message:'createMap error: "options.floorID" is required'})}fetchAllTags(e={forceUpdate:!1}){if(this.fetchAllTagsInitialized&&!e.forceUpdate)return;const t=async()=>{this.fetchAllTagsInitialized=!0;try{this.fetchAllTagsTimeout&&clearTimeout(this.fetchAllTagsTimeout);const{api:e,locationID:n}=this.props;this.setState({areTagsLoading:!0});let r=[];try{r=await e.fetchTagsByLocation(n)}catch(e){return void(0,_.logError)("Failed to load tags; use `loadTags: false` if this location does not have the tags paid feature")}if(!this.isMounted)return;if(n!==this.props.locationID||!this.props.loadTags)return;this.setState({allTagData:r}),this.fetchAllTagsTimeout=setTimeout(t,3e5)}finally{this.setState({areTagsLoading:!1})}};this.props.loadTags&&t()}showLoadingSpinner(){const{loadingSources:e}=this.state,t=Object.keys(e).some((t=>!0===e[t]));return this.props.onLoadingStateChange&&this.isLoaded!==t&&(this.isLoaded=t,(0,_.asyncClientCall)(this.props.onLoadingStateChange,t)),t}fetchAllPlacemarks(e={forceUpdate:!1}){if(this.fetchAllPlacemarksInitialized&&!e.forceUpdate)return;const t=async()=>{this.fetchAllPlacemarksInitialized=!0;try{this.fetchAllPlacemarksTimeout&&clearTimeout(this.fetchAllPlacemarksTimeout);const{locationID:e,api:n}=this.props;let r=[];this.setState({arePlacemarksLoading:!0});try{if(this.props.loadPlacemarks&&(r=await n.fetchPlacemarksByLocation(e)),!this.isMounted)return;this.setState({allPlacemarkData:r})}catch(e){return void(0,_.logError)("Failed to load placemark data")}this.fetchAllPlacemarksTimeout=setTimeout(t,6e5)}finally{this.setState({arePlacemarksLoading:!1})}};this.props.loadPlacemarks&&t()}async getFloors(){const{locationID:e,api:t}=this.props;let n;try{if(n=await t.fetchFloorsByLocation(e),!this.isMounted)return[]}catch(e){e.response&&e.response.data&&e.response.data.detail&&this.toggleErrorOverlay({open:!0,message:e.response.data.detail})}return n&&n.length||this.toggleErrorOverlay({open:!0,message:"Floor data could not be found."}),n}getMapData(){const{floorID:e}=this.props,{floors:t}=this.state;return t.find((t=>t.id===e))}async initializeFloors(){this.toggleLoadingSpinner({show:!0,source:"map"});const{onFloorsUpdate:e=(()=>{}),locationID:t}=this.props,n=await this.getFloors();this.isMounted&&t===this.props.locationID&&(n&&n.length>0&&this.setState({floors:n},(()=>{this.zoomD3||this.addZoomBehavior(),this.zoomToDefault(),(0,_.asyncClientCall)(e,n),this.fetchMapImageURL()})),this.toggleLoadingSpinner({show:!1,source:"map"}))}addZoomBehavior(){if(this.mapRef.current){const e=()=>{if(!this.mapRef.current)return;const{k:e,x:t,y:n}=(0,i.zoomTransform)(this.mapRef.current),r=`translate(${t}px, ${n}px) scale(${e})`;this.setState({mapTransform:r,mapZoomFactor:e,isPanningOrZooming:!0})},t=()=>{this.setState({isPanningOrZooming:!1})};this.zoomD3=(0,i.zoom)().filter((e=>!this.props.shouldMapPanZoom||this.props.shouldMapPanZoom(e))).duration(250).on("zoom",e).on("end.zoom",t),this.mapSelection=(0,o.select)(this.mapRef.current),this.mapSelection.call(this.zoomD3)}}resetExtents(){var e;null===(e=this.zoomD3)||void 0===e||e.scaleExtent([0,1/0]).translateExtent([[-1/0,-1/0],[1/0,1/0]])}setExtents(e,t){var n;const r=this.props.minZoomLevel,o=this.props.maxZoomLevel;if(this.mapRef.current){const{k:a}=(0,i.zoomTransform)(this.mapRef.current),s=this.getMapRefSize(),l=s.width/a/1.5,c=s.height/a/1.5,u=r&&"number"==typeof r?r:a,f=o&&"number"==typeof o?o:8;null===(n=this.zoomD3)||void 0===n||n.scaleExtent([u,f]).translateExtent([[-l,-c],[e+l,t+c]])}}zoomToDefault(){const e=this.getMapData(),t=this.getMapRefSize(),n=null==e?void 0:e.width,r=null==e?void 0:e.height;this.mapContainerSize=t,n&&r&&this.mapSelection&&this.zoomD3&&(this.resetExtents(),this.mapSelection.call(this.zoomD3.translateTo,n/2,r/2),this.mapSelection.call(this.zoomD3.scaleTo,Math.min(.7*t.width/n,.7*t.height/r)),this.setExtents(n,r))}getMapRefSize(){if(!this.mapRef.current)throw new Error("mapRef is not defined");return{width:this.mapRef.current.clientWidth,height:this.mapRef.current.clientHeight}}centerMap(){const e=this.getMapData(),t=null==e?void 0:e.width,n=null==e?void 0:e.height;t&&n&&this.mapSelection&&this.zoomD3&&this.mapSelection.call(this.zoomD3.translateTo,t/2,n/2)}shouldShowFloors(){const{showFloorsControl:e=!0}=this.props,{floors:t}=this.state;return e&&t.length>1}renderFloorLabel(){const e=this.getMapData();return e?(0,a.h)(f.default,{buildingName:e.group_name,floorName:e.name}):null}renderFloorOverlay(){const{floorID:e,api:t}=this.props,{isFloorOverlayOpen:n,floors:r}=this.state;return n?(0,a.h)(h.default,{currentFloorID:e,floors:r,sortDescending:Boolean(this.props.floorsControlSortDescending),toggleFloorOverlay:this.toggleFloorOverlay,selectFloorByID:this.selectFloorByID,language:t.language}):null}renderAssetListOverlay(){var e;const{floorID:t,loadTags:n,loadPlacemarks:r,tags:o,placemarks:i,api:s}=this.props,{isAssetListOverlayOpen:l,floors:c,allTagData:u,areTagsLoading:f,arePlacemarksLoading:h,allPlacemarkData:p}=this.state;return l&&Boolean(r||n)?(0,a.h)(y.default,{onTagClick:this.onTagClick,onPlacemarkClick:this.onPlacemarkClick,showControlTags:Boolean(null!==(e=null==o?void 0:o.showControlTags)&&void 0!==e&&e),floors:c,tagsLoading:f,placemarksLoading:h,tags:u,tagOptions:o,placemarkOptions:i,updateMap:this.updateMap,currentFloorID:t,toggleAssetListOverlay:this.toggleAssetListOverlay,showTags:Boolean(n),showPlacemarks:Boolean(r),placemarks:p,language:s.language}):null}renderDetailsOverlay(){const{isMapMarkerOverlayOpen:e,selectedItem:t}=this.state;return e&&t?(0,a.h)(l.default,{toggleDetailsOverlay:this.toggleDetailsOverlay,kind:"mac"in t?"tag":"placemark",item:t}):null}renderLoadingSpinner(){return this.showLoadingSpinner()?(0,a.h)(p.default,null):null}renderErrorOverlay(){return this.state.isErrorOverlayOpen?(0,a.h)(c.default,{toggleErrorOverlay:this.toggleErrorOverlay,messages:this.state.errors}):null}render(){const e=this.getMapData(),{mapImageURL:t,selectedItem:n,mapTransform:r,mapZoomFactor:o,isPanningOrZooming:i,errors:l}=this.state,{locationID:c,floorID:f,api:h,tags:p,placemarks:y,overlays:_=[],annotations:w=[],width:k="",height:S="",onTagsUpdate:C,onPlacemarksUpdate:A,showSearchControl:E,loadPlacemarks:T,loadTags:P}=this.props;return(0,a.h)("div",{className:(0,g.cx)("meridian-map-container",x),style:{width:k,height:S},"data-testid":"meridian--private--map-container",ref:e=>{this.mapContainerRef.current=e}},(0,a.h)(b.default,{onZoomIn:this.zoomIn,onZoomOut:this.zoomOut}),this.renderErrorOverlay(),this.renderDetailsOverlay(),this.renderFloorOverlay(),this.renderAssetListOverlay(),this.renderLoadingSpinner(),(0,a.h)(u.default,{showFloors:this.shouldShowFloors(),showSearch:Boolean(E&&(T||P)),toggleFloorOverlay:this.toggleFloorOverlay,toggleAssetListOverlay:this.toggleAssetListOverlay}),this.renderFloorLabel(),(0,a.h)("div",{ref:e=>{this.mapRef.current=e},className:(0,g.cx)("meridian-map-background",O),onClick:this.onClick,style:{width:k,height:S}},(0,a.h)("div",{style:{position:"relative",width:0,height:0,transform:r,transformOrigin:"0 0 0"}},(0,a.h)("img",{src:t,ref:this.mapImageref}),0===l.length&&e?(0,a.h)(a.Fragment,null,(0,a.h)(d.default,{mapZoomFactor:o,overlays:_}),this.props.loadPlacemarks?(0,a.h)(m.default,{selectedItem:n,isPanningOrZooming:i,mapZoomFactor:o,locationID:c,floorID:f,api:h,placemarkOptions:y,onPlacemarkClick:this.onPlacemarkClick,onUpdate:A,toggleLoadingSpinner:this.toggleLoadingSpinner,onInit:()=>{this.onPlacemarksInit()}}):null,this.props.loadTags?(0,a.h)(v.default,{selectedItem:n,isPanningOrZooming:i,mapZoomFactor:o,locationID:c,floorID:f,api:h,tagOptions:p,onTagClick:this.onTagClick,onUpdate:C,toggleLoadingSpinner:this.toggleLoadingSpinner,onInit:()=>{this.onTagsInit()}}):null,(0,a.h)(s.default,{mapZoomFactor:o,annotations:w})):null)))}}k.defaultProps={loadTags:!0,loadPlacemarks:!0,showSearchControl:!0,showFloorsControl:!0,floorsControlSortDescending:!1,shouldMapPanZoom:()=>!0,width:"100%",height:"400px",placemarks:{},tags:{},overlays:[],annotations:[],onTagsUpdate:()=>{},onFloorChange:()=>{},onLoadingStateChange:()=>{},onFloorsUpdate:()=>{}};const x=(0,g.css)({label:"map-container",display:"block",position:"relative",borderRadius:"inherit",background:"#fafafa",color:"#000",fontFamily:"inherit",textAlign:"left"}),O=(0,g.css)({label:"map-outer",borderRadius:"inherit",display:"block",overflow:"hidden"});t.default=k},8828:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=n(172),i=r(n(4145)),a=n(2785),s=(0,a.css)(a.mixins.shadow,a.mixins.rounded,{label:"details-overlay",overflow:"hidden",display:"flex",flexDirection:"column",background:a.theme.white,color:a.theme.textColor,fill:"#000",position:"absolute",margin:0,left:15,top:15,right:15,maxHeight:600,zIndex:2,maxWidth:400}),l=(0,a.css)(s,{marginRight:"auto"}),c=(0,a.css)(s,{marginLeft:"auto"}),u=(0,a.css)(a.mixins.buttonReset,a.mixins.buttonHoverActive,a.mixins.focusRing,{label:"details-overlay-close",cursor:"pointer",position:"absolute",zIndex:2,top:10,right:10,padding:4,width:32,height:32,fontSize:11,textAlign:"center",background:a.theme.white,color:a.theme.textColor,borderRadius:"100%",fontWeight:"bold",boxShadow:"0 0 2px rgba(0, 0, 0, 0.4)"});t.default=({position:e,onCloseClicked:t,children:n})=>(0,o.h)("div",{className:(0,a.cx)("meridian-details-overlay","left"===e?l:c),"data-testid":"meridian--private--map-overlay"},(0,o.h)("button",{className:u,onClick:t,"data-testid":"meridian--private--close-overlay"},(0,o.h)(i.default,null)),n)},7096:function(e,t,n){"use strict";var r=this&&this.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o{var{defs:t=!1,id:n,className:a,style:s={},cx:l,cy:c,r:u,pathLength:f,fill:h="black",fillOpacity:p="1",stroke:d="none",strokeWidth:m=4,strokeLineJoin:g,strokeLineCap:v,strokeDasharray:y,strokeDashoffset:_,strokeOpacity:b,animate:w={},animateMotion:k={},mpath:x,data:O={},onClick:S,mapZoomFactor:C}=e,A=r(e,["defs","id","className","style","cx","cy","r","pathLength","fill","fillOpacity","stroke","strokeWidth","strokeLineJoin","strokeLineCap","strokeDasharray","strokeDashoffset","strokeOpacity","animate","animateMotion","mpath","data","onClick","mapZoomFactor"]);const E=1/C;let T=null,P=null;const D=Object.assign({transform:`scale(${E})`},s);Object.keys(k).length&&(P=x?(0,o.h)("animateMotion",Object.assign({},k),(0,o.h)("mpath",{xlinkHref:`#${x}`})):(0,o.h)("animateMotion",Object.assign({},k))),Object.keys(w).length&&(T=(0,o.h)("animate",Object.assign({},w)));const j=(0,o.h)("circle",Object.assign({id:n,className:a,style:D,cx:l,cy:c,r:u,"path-length":f,fill:h,"fill-opacity":p,stroke:d,"stroke-width":m/C,"stroke-linejoin":g,"stroke-linecap":v,"stroke-dasharray":y,"stroke-dashoffset":_,"stroke-opacity":b,onClick:S?()=>(0,i.asyncClientCall)(S,O):void 0,cursor:S?"pointer":void 0,"pointer-events":S?"all":void 0},A),T,P);return t?(0,o.h)("defs",null,j):j};a.displayName="OverlayCircle",t.default=a},2865:function(e,t,n){"use strict";var r=this&&this.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o{var{defs:t=!1,id:n,className:a,style:s={},width:l,height:c,href:u,x:f,y:h,animate:p={},animateMotion:d={},mpath:m,mapZoomFactor:g,onClick:v,data:y={}}=e,_=r(e,["defs","id","className","style","width","height","href","x","y","animate","animateMotion","mpath","mapZoomFactor","onClick","data"]);const b=1/g;let w=null,k=null;const x=Object.assign({transform:`translate(-${l/g/2}px, -${c/g/2}px) scale(${b})`},s);Object.keys(d).length&&(k=m?(0,o.h)("animateMotion",Object.assign({},d),(0,o.h)("mpath",{xlinkHref:`#${m}`})):(0,o.h)("animateMotion",Object.assign({},d))),Object.keys(p).length&&(w=(0,o.h)("animate",Object.assign({},p)));const O=(0,o.h)("image",Object.assign({id:n,className:a,style:x,width:l,height:c,href:u,x:f,y:h,onClick:v?()=>(0,i.asyncClientCall)(v,y):void 0,cursor:v?"pointer":void 0,"pointer-events":v?"all":void 0},_),w,k);return t?(0,o.h)("defs",null,O):O};a.displayName="OverlayImage",t.default=a},6805:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=n(172),i=r(n(7096)),a=r(n(2865)),s=r(n(2578)),l=r(n(3861)),c=r(n(3496)),u=r(n(4012)),f=r(n(9159)),h=(0,n(2785).css)({label:"overlay-layer",position:"absolute",overflow:"visible",top:0,left:0,right:0,bottom:0});t.default=({mapZoomFactor:e,overlays:t})=>(0,o.h)("svg",{className:h,"data-testid":"meridian--private--overlay-layer"},t.map(((t,n)=>{switch(t.type){case"polygon":return(0,o.h)(c.default,Object.assign({key:n},t,{mapZoomFactor:e}));case"polyline":return(0,o.h)(u.default,Object.assign({key:n},t,{mapZoomFactor:e}));case"path":return(0,o.h)(l.default,Object.assign({key:n},t,{mapZoomFactor:e}));case"circle":return(0,o.h)(i.default,Object.assign({key:n},t,{mapZoomFactor:e}));case"image":return(0,o.h)(a.default,Object.assign({key:n},t,{mapZoomFactor:e}));case"marker":return(0,o.h)(s.default,Object.assign({key:n},t,{mapZoomFactor:e}));case"use":return(0,o.h)(f.default,Object.assign({key:n},t,{mapZoomFactor:e}));default:return null}})))},2578:function(e,t,n){"use strict";var r=this&&this.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o{var{defs:t=!0,id:n,className:i,style:a,viewBox:s,refX:l,refY:c,markerWidth:u,markerHeight:f,orient:h,fill:p="none",fillOpacity:d,stroke:m="hsl(207, 65%, 46%)",strokeWidth:g,strokeLineJoin:v,strokeLineCap:y,strokeDasharray:_,strokeDashoffset:b,strokeOpacity:w,shapeElementType:k,shapeElementAttributes:x,mapZoomFactor:O}=e,S=r(e,["defs","id","className","style","viewBox","refX","refY","markerWidth","markerHeight","orient","fill","fillOpacity","stroke","strokeWidth","strokeLineJoin","strokeLineCap","strokeDasharray","strokeDashoffset","strokeOpacity","shapeElementType","shapeElementAttributes","mapZoomFactor"]);let C=null;if(Object.keys(x).length&&k)switch(k){case"path":C=(0,o.h)("path",Object.assign({},x));break;case"polyline":C=(0,o.h)("polyline",Object.assign({},x));break;case"polygon":C=(0,o.h)("polygon",Object.assign({},x));break;case"circle":C=(0,o.h)("circle",Object.assign({},x));break;case"image":C=(0,o.h)("image",Object.assign({},x))}const A=(0,o.h)("marker",Object.assign({id:n,className:i,style:a,viewBox:s,refX:l,refY:c,markerWidth:u,markerHeight:f,orient:h,fill:p,"fill-opacity":d,stroke:m,"stroke-width":g,"stroke-linejoin":v,"stroke-linecap":y,"stroke-dasharray":_,"stroke-dashoffset":b,"stroke-opacity":w},S),C);return t?(0,o.h)("defs",null,A):A};i.displayName="OverlayMarker",t.default=i},3861:function(e,t,n){"use strict";var r=this&&this.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o{var{defs:t=!1,id:n,className:i,style:a={},shape:s,fill:l="none",stroke:c="hsl(207, 65%, 46%)",strokeWidth:u=2,strokeLineJoin:f="miter",strokeLineCap:h="butt",strokeDasharray:p,strokeDashoffset:d,strokeOpacity:m,markerStart:g,markerMid:v,markerEnd:y,animate:_={},animateMotion:b={},mpath:w,mapZoomFactor:k}=e,x=r(e,["defs","id","className","style","shape","fill","stroke","strokeWidth","strokeLineJoin","strokeLineCap","strokeDasharray","strokeDashoffset","strokeOpacity","markerStart","markerMid","markerEnd","animate","animateMotion","mpath","mapZoomFactor"]);let O=null,S=null;Object.keys(b).length&&(S=w?(0,o.h)("animateMotion",Object.assign({},b),(0,o.h)("mpath",{xlinkHref:`#${w}`})):(0,o.h)("animateMotion",Object.assign({},b))),Object.keys(_).length&&(O=(0,o.h)("animate",Object.assign({},_)));const C=(0,o.h)("path",Object.assign({id:n,className:i,style:a,d:s,fill:l,stroke:c,"stroke-width":u/k,"stroke-linejoin":f,"stroke-linecap":h,"stroke-dasharray":p,"stroke-dashoffset":d,"stroke-opacity":m,"marker-start":g,"marker-mid":v,"marker-end":y},x),O,S);return t?(0,o.h)("defs",null,C):C};i.displayName="OverlayPath",t.default=i},3496:function(e,t,n){"use strict";var r=this&&this.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o{var{defs:t=!1,id:n,className:a,style:s,points:l,fill:c="hsla(207, 65%, 46%, 0.5)",fillOpacity:u,stroke:f="hsl(207, 65%, 46%)",strokeWidth:h=2,strokeLineJoin:p="miter",strokeDasharray:d,strokeDashoffset:m,strokeOpacity:g,markerStart:v,markerMid:y,markerEnd:_,mapZoomFactor:b,animate:w={},data:k={},onClick:x}=e,O=r(e,["defs","id","className","style","points","fill","fillOpacity","stroke","strokeWidth","strokeLineJoin","strokeDasharray","strokeDashoffset","strokeOpacity","markerStart","markerMid","markerEnd","mapZoomFactor","animate","data","onClick"]);let S=null;Object.keys(w).length&&(S=(0,o.h)("animate",Object.assign({},w)));const C=(0,o.h)("polygon",Object.assign({id:n,className:a,style:s,points:l.join(" "),fill:c,"fill-opacity":u,stroke:f,"stroke-width":h/b,"stroke-linejoin":p,"stroke-dasharray":d,"stroke-dashoffset":m,"stroke-opacity":g,"marker-start":v,"marker-mid":y,"marker-end":_,onClick:x?()=>(0,i.asyncClientCall)(x,k):void 0,cursor:x?"pointer":void 0,"pointer-events":x?"all":void 0},O),S);return t?(0,o.h)("defs",null,C):C};a.displayName="OverlayPolygon",t.default=a},4012:function(e,t,n){"use strict";var r=this&&this.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o{var{defs:t=!1,id:n,className:i,style:a,points:s,fill:l="none",fillOpacity:c,stroke:u="hsl(207, 65%, 46%)",strokeWidth:f=2,strokeLineJoin:h="miter",strokeLineCap:p="butt",strokeDasharray:d,strokeDashoffset:m,strokeOpacity:g,markerStart:v,markerMid:y,markerEnd:_,animate:b={},mapZoomFactor:w}=e,k=r(e,["defs","id","className","style","points","fill","fillOpacity","stroke","strokeWidth","strokeLineJoin","strokeLineCap","strokeDasharray","strokeDashoffset","strokeOpacity","markerStart","markerMid","markerEnd","animate","mapZoomFactor"]);let x=null;Object.keys(b).length&&(x=(0,o.h)("animate",Object.assign({},b)));const O=(0,o.h)("polyline",Object.assign({id:n,className:i,style:a,points:s.join(" "),fill:l,"fill-opacity":c,stroke:u,"stroke-width":f/w,"stroke-linejoin":h,"stroke-linecap":p,"stroke-dasharray":d,"stroke-dashoffset":m,"stroke-opacity":g,"marker-start":v,"marker-mid":y,"marker-end":_},k),x);return t?(0,o.h)("defs",null,O):O};i.displayName="OverlayPolyline",t.default=i},6933:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(172),o=n(2785);class i extends r.Component{constructor(){super(...arguments),this.input=null}componentDidMount(){this.input&&this.input.focus()}render(){const{value:e,onChange:t,placeholder:n}=this.props;return(0,r.h)("div",{className:l},(0,r.h)("svg",{viewBox:"0 0 15 15",className:s},(0,r.h)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M13.2454 12.5741L9.55123 8.73956C10.2134 7.80246 10.5682 6.66953 10.5632 5.50756C10.5506 2.47441 8.18614 0.0175744 5.26286 5.57178e-05C3.8639 -0.00651157 2.52051 0.567712 1.53197 1.59481C0.543427 2.6219 -0.0081584 4.01655 9.12228e-05 5.46806C0.0127262 8.50148 2.37737 10.9585 5.30093 10.9761C6.42539 10.9811 7.52128 10.6088 8.42505 9.91456L8.4289 9.91156L12.1197 13.7431C12.3193 13.9603 12.6166 14.0482 12.8966 13.9728C13.1765 13.8973 13.395 13.6704 13.4675 13.3799C13.5399 13.0894 13.455 12.7809 13.2454 12.5741ZM5.29738 9.87819C2.95866 9.86423 1.06697 7.8988 1.05671 5.47219C1.0504 4.31114 1.4917 3.19564 2.28239 2.37403C3.07307 1.55242 4.14751 1.09287 5.26653 1.09769C7.60525 1.11165 9.49694 3.07709 9.5072 5.50369C9.51352 6.66475 9.07221 7.78024 8.28152 8.60186C7.49084 9.42347 6.4164 9.88302 5.29738 9.87819Z",transform:"translate(0.637695)"})),(0,r.h)("input",{"data-testid":"meridian--private--overlay-search",value:e,type:"text",placeholder:n,className:a,onInput:e=>{e.target instanceof HTMLInputElement&&t(e.target.value)},ref:e=>{this.input=e}}))}}const a=(0,o.css)(o.mixins.buttonReset,o.mixins.rounded,o.mixins.focusRing,{label:"overlay-search-input",flex:"1 1 auto",marginRight:42,fontSize:16,padding:"4px 8px",paddingLeft:30,background:o.theme.borderColor,color:o.theme.black,border:0,height:24,"&::placeholder":{color:o.theme.textColorBluishLightGrey}}),s=(0,o.css)({label:"overlay-search-icon",position:"absolute",zIndex:1,fill:o.theme.textColorBluish,width:16,height:16,top:18,left:18}),l=(0,o.css)({label:"overlay-search-bar",position:"relative",zIndex:1,flex:"0 0 auto",display:"flex",flexDirection:"column",padding:10,backgroundColor:"rgb(105, 146, 176)"});t.default=i},9159:function(e,t,n){"use strict";var r=this&&this.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o{var{defs:t=!1,id:n,className:i,style:a={},width:s,height:l,href:c,x:u,y:f,fill:h="none",stroke:p="hsl(207, 65%, 46%)",strokeWidth:d=2,strokeLineJoin:m="miter",strokeLineCap:g="butt",strokeDasharray:v,strokeDashoffset:y,strokeOpacity:_,animate:b={},animateMotion:w={},mpath:k,mapZoomFactor:x}=e,O=r(e,["defs","id","className","style","width","height","href","x","y","fill","stroke","strokeWidth","strokeLineJoin","strokeLineCap","strokeDasharray","strokeDashoffset","strokeOpacity","animate","animateMotion","mpath","mapZoomFactor"]);const S=1/x;let C=null,A=null;const E=Object.assign({transform:`translate(-${s/x/2}px, -${l/x/2}px) scale(${S})`},a);Object.keys(w).length&&(A=k?(0,o.h)("animateMotion",Object.assign({},w),(0,o.h)("mpath",{xlinkHref:`#${k}`})):(0,o.h)("animateMotion",Object.assign({},w))),Object.keys(b).length&&(C=(0,o.h)("animate",Object.assign({},b)));const T=(0,o.h)("use",Object.assign({id:n,className:i,style:E,width:s,height:l,href:c,x:u,y:f,fill:h,stroke:p,"stroke-width":d/x,"stroke-linejoin":m,"stroke-linecap":g,"stroke-dasharray":v,"stroke-dashoffset":y,"stroke-opacity":_},O),C,A);return t?(0,o.h)("defs",null,T):T};i.displayName="OverlayUse",t.default=i},2858:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(172),o=n(2785),i=n(7746),a=n(4221),s=(0,o.css)(o.mixins.textStrokeWhite,{label:"placemark-label",marginLeft:"50%",position:"absolute",minWidth:55,maxWidth:120,fontSize:14,textAlign:"center",paddingTop:4,color:"#222",userSelect:"none",transform:"translate(-50%, 0)",fontWeight:"bold",visibility:"hidden",pointerEvents:"none","[data-meridian-placemark-label-mode='always'] > &":{visibility:"visible"},"[data-meridian-placemark-label-mode='never'] > &":{visibility:"hidden"},"[data-meridian-placemark-label-mode='hover']:hover > &":{visibility:"visible",background:"#333",color:"#eee",textShadow:"none",borderRadius:4,padding:4,bottom:30,maxWidth:240,width:"max-content",boxShadow:"0 0 1px 1px white"},"[data-meridian-placemark-label-mode='zoom'] > &[data-meridian-placemark-label-zoom-visible='false']":{visibility:"hidden"},"[data-meridian-placemark-label-mode='zoom'] > &[data-meridian-placemark-label-zoom-visible='true']":{visibility:"visible"}}),l=(0,o.css)({label:"placemark-labelOnly",textTransform:"uppercase",color:"#666",fontSize:16}),c=(0,o.css)({label:"placemark",position:"absolute","&[data-meridian-placemark-label-mode='hover']:hover":{zIndex:1}}),u=(0,o.css)(o.mixins.buttonReset,o.mixins.pointer,o.mixins.focusNone,{label:"placemark-icon","--meridian-placemark-backgroundColor":o.theme.brandBlue,transition:"width 80ms ease, height 80ms ease",display:"block",width:24,height:24,borderRadius:"100%",backgroundColor:"var(--meridian-placemark-backgroundColor)",backgroundImage:"var(--meridian-placemark-iconURL)",backgroundPosition:"center",backgroundRepeat:"no-repeat",backgroundSize:"cover",border:"2px solid transparent",overflow:"hidden",zIndex:1}),f=(0,o.css)(u,{zIndex:3,width:30,height:30,boxShadow:"0 0 4px black"});t.default=({isSelected:e,data:t,mapZoomFactor:n,onClick:h=(()=>{}),disabled:p=!1,labelMode:d,labelZoomLevel:m=.2})=>{const g=`meridian-placemark-type-${t.type}`,v=!t.type||0===t.type.indexOf("label_"),y=1/n,_=`#${t.color}`,b=(0,a.placemarkIconURL)(t.type),w=(t.id||"").split("_").pop(),k=e?(0,o.cx)("meridian-placemark-icon-selected","meridian-placemark-icon",g,f):(0,o.cx)("meridian-placemark-icon",g,u),x={left:t.x,top:t.y,transform:`translate(-50%, -50%) scale(${y})`};return v?(0,r.h)("div",{className:(0,o.cx)("meridian-placemark",c),"data-meridian-placemark-label-mode":"zoom",style:x},(0,r.h)("div",{className:(0,o.cx)(s,l,"meridian-label","meridian-label-only"),"data-meridian-placemark-id":w,"data-meridian-placemark-label-zoom-visible":String(n>=m)},t.name)):(0,r.h)("div",{"data-meridian-placemark-label-mode":d,className:(0,o.cx)("meridian-placemark",c),style:x},(0,r.h)("button",{disabled:p,className:(0,o.cx)((0,i.getPlacemarkCategories)(t).map((e=>`meridian-placemark-category-${e=e.replace(/ /g,"-").replace(/[^a-z0-9_-]/i,"").toLowerCase()}`)),k),"data-meridian-placemark-id":w,style:{"--meridian-placemark-iconURL":`url('${b}')`,"--meridian-placemark-borderColor":_,"--meridian-placemark-backgroundColor":_},onClick:e=>{e.target instanceof HTMLElement&&e.target.focus(),h(t)},onMouseDown:e=>{e.stopPropagation()}}),(0,r.h)("div",{className:(0,o.cx)("meridian-label",s),"data-meridian-placemark-label-zoom-visible":String(n>=m)},t.name))}},7387:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=n(172),i=r(n(2858)),a=n(7746);class s extends o.Component{constructor(){super(...arguments),this.state={fetchedPlacemarks:[]},this.isMounted=!1}componentDidMount(){this.isMounted=!0,this.fetchPlacemarks()}shouldComponentUpdate(e){return!(this.props.isPanningOrZooming&&e.mapZoomFactor===this.props.mapZoomFactor)}async componentDidUpdate(e,t){const{placemarkOptions:n,onUpdate:r}=this.props;if(e.floorID!==this.props.floorID&&await this.fetchPlacemarks(),r&&(t.fetchedPlacemarks!==this.state.fetchedPlacemarks||n!==e.placemarkOptions)){const e=this.state.fetchedPlacemarks;(0,a.asyncClientCall)(r,{allPlacemarks:e,filteredPlacemarks:this.getFilteredPlacemarks(e)})}}componentWillUnmount(){this.isMounted=!1}async fetchPlacemarks(){if(!this.isMounted)return;const{locationID:e,floorID:t,api:n,toggleLoadingSpinner:r,onInit:o}=this.props;r({show:!0,source:"placemarks"});const i=await n.fetchPlacemarksByFloor(e,t);this.setState({fetchedPlacemarks:i},(()=>{r({show:!1,source:"placemarks"})})),o()}getFilteredPlacemarks(e){var t;const{placemarkOptions:n,floorID:r}=this.props,o=null!==(t=null==n?void 0:n.filter)&&void 0!==t?t:()=>!0;return e.filter((e=>"exclusion_area"!==e.type&&e.map===r&&(!0===(null==n?void 0:n.showHiddenPlacemarks)||!e.hide_on_map))).filter(o)}render(){const e=this.getFilteredPlacemarks(this.state.fetchedPlacemarks);return(0,o.h)("div",{"data-testid":"meridian--private--placemark-layer"},e.map((e=>{var t,n,r,a;return(0,o.h)(i.default,{key:e.id,isSelected:!!this.props.selectedItem&&this.props.selectedItem.id===e.id,mapZoomFactor:this.props.mapZoomFactor,data:e,onClick:this.props.onPlacemarkClick,disabled:null===(t=this.props.placemarkOptions)||void 0===t?void 0:t.disabled,labelMode:null!==(r=null===(n=this.props.placemarkOptions)||void 0===n?void 0:n.labelMode)&&void 0!==r?r:"zoom",labelZoomLevel:null===(a=this.props.placemarkOptions)||void 0===a?void 0:a.labelZoomLevel})})))}}t.default=s},3996:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=n(172),i=r(n(192)),a=n(2785),s=n(7746),l=(0,a.css)(a.mixins.shadow,a.mixins.buttonReset,a.mixins.pointer,a.mixins.focusNone,{label:"tag",width:48,height:48,borderRadius:"100%",position:"absolute",backgroundColor:"white",backgroundPosition:"center",backgroundRepeat:"no-repeat",backgroundSize:"cover",border:"2px solid white",overflow:"hidden",transition:"\n width 80ms ease,\n height 80ms ease,\n top 500ms ease,\n left 500ms ease\n ",zIndex:2}),c=(0,a.css)(l,{width:60,height:60,zIndex:3,boxShadow:"0 0 0 2px white, 0 0 4px black"});t.default=({isSelected:e,data:t,mapZoomFactor:n,onClick:r=(()=>{}),disabled:u=!1})=>{const f=1/n/(n<.2?1.4:1),h=t.image_url||i.default;return(0,o.h)("button",{"data-meridian-tag-id":t.id,disabled:u,className:(0,a.cx)("meridian-tag",l,(0,s.getTagLabels)(t).map((e=>`meridian-tag-label-${e=e.replace(/ /g,"-").replace(/[^a-z0-9_-]/i,"")}`)),e&&["meridian-tag-selected",c],(0,a.css)({backgroundImage:`url('${h}')`})),style:{left:t.x,top:t.y,transform:`translate(-50%, -50%) scale(${f})`},onClick:e=>{e.target instanceof HTMLElement&&e.target.focus(),r(t)},onMouseDown:e=>{e.stopPropagation()}})}},8901:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=r(n(5858)),i=n(172),a=r(n(3996)),s=n(7746);class l extends i.Component{constructor(){var e;super(...arguments),this.state={tagsByMAC:{},connectionsByFloorID:{}},this.tagUpdates={},this.isMounted=!1,this.commitTagUpdates=(0,o.default)((()=>{this.isMounted&&this.setState((e=>({tagsByMAC:Object.assign(Object.assign({},e.tagsByMAC),this.tagUpdates)})),(()=>{this.tagUpdates={},this.onUpdate()}))}),(null===(e=this.props.tagOptions)||void 0===e?void 0:e.updateInterval)||5e3),this.onUpdate=()=>{const{tagsByMAC:e}=this.state,{onUpdate:t,tagOptions:n={}}=this.props,{filter:r=(()=>!0)}=n,o=this.filterControlTags(Object.values(e)),i=o.filter(r);t&&t({allTags:o,filteredTags:i})}}componentDidMount(){this.isMounted=!0;const{floorID:e}=this.props;e&&this.connect(e)}shouldComponentUpdate(e){return!(this.props.isPanningOrZooming&&e.mapZoomFactor===this.props.mapZoomFactor)}componentDidUpdate(e){e.floorID!==this.props.floorID&&(this.disconnect(e.floorID),this.connect(this.props.floorID))}componentWillUnmount(){this.isMounted=!1,this.disconnect(this.props.floorID)}connect(e){const{locationID:t,api:n,toggleLoadingSpinner:r,onInit:o}=this.props;r({show:!0,source:"tags"});const i=n.openStream({locationID:t,floorID:e,onInitialTags:t=>{e===this.props.floorID&&this.isMounted&&(this.setState({tagsByMAC:(0,s.keyBy)(t,(e=>e.mac))},(()=>{this.onUpdate(),this.props.toggleLoadingSpinner({show:!1,source:"tags"})})),o())},onTagUpdate:t=>{e===this.props.floorID&&this.isMounted&&(e!==t.map_id?this.setState((e=>({tagsByMAC:(0,s.objectWithoutKey)(e.tagsByMAC,t.mac)})),(()=>{this.onUpdate()})):(this.tagUpdates=Object.assign(Object.assign({},this.tagUpdates),{[t.mac]:t}),this.props.isPanningOrZooming||this.commitTagUpdates()))},onException:()=>{this.props.toggleLoadingSpinner({show:!1,source:"tags"})}});this.isMounted&&this.setState((t=>({connectionsByFloorID:Object.assign(Object.assign({},t.connectionsByFloorID),{[e]:i})})),(()=>{this.onUpdate()}))}disconnect(e){const t=this.state.connectionsByFloorID[e];t&&(this.props.toggleLoadingSpinner({show:!1,source:"tags"}),t.close()),this.tagUpdates={},this.isMounted&&this.setState((t=>({tagsByMAC:{},connectionsByFloorID:(0,s.objectWithoutKey)(t.connectionsByFloorID,e)})),(()=>{this.onUpdate()}))}filterControlTags(e){const{tagOptions:t}=this.props;return e.filter((e=>!0===(null==t?void 0:t.showControlTags)||!e.is_control_tag))}render(){const{selectedItem:e,tagOptions:t={},onTagClick:n,mapZoomFactor:r}=this.props,{tagsByMAC:o}=this.state,{filter:s=(()=>!0)}=t,l=Object.values(o);return(0,i.h)("div",{"data-testid":"meridian--private--tag-layer"},this.filterControlTags(l).filter(s).map((o=>(0,i.h)(a.default,{key:o.mac,isSelected:!!e&&e.mac===o.mac,mapZoomFactor:r,data:o,onClick:n,disabled:t.disabled}))))}}t.default=l},7866:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n={en:{tags:"Tags",placemarks:"Placemarks",floors:"Floors",search:"Search",search_tags:"Search Tags",search_placemarks:"Search Placemarks",search_floors:"Search Floors",no_results_found:"No results found",close:"Close"},ar:{tags:"العلامات",placemarks:" العلامات الموضعية",floors:" الطوابق",search:" بحث",search_tags:" بحث عن علامات",search_placemarks:" بحث عن علامات موضعية",search_floors:" بحث عن طوابق",no_results_found:" لم يتم العثور على نتائج",close:"إغلاق"},ca:{tags:"Etiquetes",placemarks:"Marques de posició",floors:"Pisos",search:"Cerca",search_tags:"Cerca etiquetes",search_placemarks:"Cerca marcadors de posició",search_floors:"Cerca pisos",no_results_found:"Sense resultats",close:"Tanca"},es:{tags:"Etiquetas",placemarks:"Marcas de posición",floors:"Pisos",search:"Buscar",search_tags:"Buscar etiquetas",search_placemarks:"Buscar marcas de posición",search_floors:"Buscar pisos",no_results_found:"No se han encontrado resultados",close:"Cerrar"},cs:{tags:"Tagy",placemarks:"Značky míst",floors:"Patra",search:"Hledat",search_tags:"Hledat tagy",search_placemarks:"Hledat značky míst",search_floors:"Hledat patra",no_results_found:"Nebyly nalezeny žádné výsledky",close:"Zavřít"},de:{tags:"Stichworte",placemarks:"Ortsmarken",floors:"Etagen",search:"Suche",search_tags:"Such-Tags",search_placemarks:"In den Ortsmarken (Räumen, Sälen) suchen",search_floors:"In den Stockwerken suchen",no_results_found:"Keine Ergebnisse gefunden",close:"Schließen"},fr:{tags:"Mots clés",placemarks:"Repères",floors:"Étages",search:"Rechercher",search_tags:"Rechercher des mots clés",search_placemarks:"Rechercher des repères",search_floors:"Rechercher des étages",no_results_found:"Aucun résultat trouvé",close:"Fermer"},it:{tags:"Tag",placemarks:"Segnaposto",floors:"Piani",search:"Cerca",search_tags:"Cerca tag",search_placemarks:"Cerca segnaposto",search_floors:"Cerca piani",no_results_found:"Nessun risultato trovato",close:"Chiudi"},iw:{tags:"תגים",placemarks:"סימני מקום",floors:"קומות",search:"חפש",search_tags:"חפש תגיות",search_placemarks:"חפש סימני מקום",search_floors:"חפש קומות",no_results_found:"לא נמצאו תוצאות",close:"סגור"},ja:{tags:"タグ",placemarks:"目印",floors:"フロア",search:"探す",search_tags:"検索タグ",search_placemarks:"目印を検索する",search_floors:"フロアを検索する",no_results_found:"結果が見つからない",close:"近い"},ko:{tags:"태그",placemarks:"장소표시<",floors:"바닥",search:"검색",search_tags:"태그검색<",search_placemarks:"장소표시 검색<",search_floors:"층수검색<",no_results_found:"검색결과가 없습니다<",close:"닫기"},nl:{tags:"Tags",placemarks:"Plaatsaanduidingen",floors:"Verdiepingen",search:"Zoeken",search_tags:"Zoek tags",search_placemarks:"Zoek plaatsaanduidingen",search_floors:"Zoek verdiepingen",no_results_found:"Geen resultaten gevonden",close:"Sluiten"},no:{tags:"Tagger",placemarks:"Stedsmarkeringer",floors:"Gulv",search:"Søk",search_tags:"Søk i etiketter",search_placemarks:"Søk i stedsmarkeringer",search_floors:"Søk i etasjer",no_results_found:"Ingen resultater",close:"Lukk"},pt:{tags:"Tags",placemarks:"Marcadores",floors:"Andares",search:"Procurar",search_tags:"Tags de pesquisa",search_placemarks:"Pesquisar marcadores",search_floors:"Pesquisar andares",no_results_found:"Nenhum resultado encontrado",close:"Perto"},ru:{tags:"Taggar",placemarks:"Platsmärken",floors:"Golv",search:"Sök",search_tags:"Sök taggar",search_placemarks:"Sök efter platsmärken",search_floors:"Sök Golv",no_results_found:"Inga resultat funna",close:"Stänga"},sv:{tags:"Taggar",placemarks:"Platsmärken",floors:"Golv",search:"Sök",search_tags:"Sök taggar",search_placemarks:"Sök efter platsmärken",search_floors:"Sök Golv",no_results_found:"Inga resultat funna",close:"Stänga"},uk:{tags:"Теги",placemarks:"Мітки",floors:"Поверхи",search:"Пошук",search_tags:"Пошук тегів",search_placemarks:"Пошук міток",search_floors:"Пошук поверхів",no_results_found:"Нічого не знайдено",close:"Закрити"},vi:{tags:"Thẻ",placemarks:"Dấu vị trí",floors:"Tầng",search:"Tìm kiếm ",search_tags:"Thẻ tìm kiếm",search_placemarks:"Dấu vị trí tìm kiếm",search_floors:"Tầng tìm kiếm",no_results_found:"Không có kết quả nào được tìm thấy",close:"Đóng"},"zh-cn":{tags:"标签",placemarks:"地标",floors:"楼层",search:"搜索",search_tags:"搜索标签",search_placemarks:"搜索地标",search_floors:"搜索楼层",no_results_found:"未找到结果",close:"关闭"},"zh-tw":{tags:"標籤",placemarks:"地標",floors:"樓層",search:"搜尋",search_tags:"搜尋標籤",search_placemarks:"搜尋地標",search_floors:"搜尋樓層",no_results_found:"未找到結果",close:"關閉"}};t.default={lookup:function(e,t){var r,o,i;const a=t||(navigator.languages&&navigator.languages[0]||navigator.language||"en").toLowerCase(),s=null!==(r=a.split("-").shift())&&void 0!==r?r:"en",l=n;return(null===(o=null==l?void 0:l[a])||void 0===o?void 0:o[e])||(null===(i=null==l?void 0:l[s])||void 0===i?void 0:i[e])||l.en[e]||e}}},5481:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(172),o=n(2785),i=({onClick:e,dir:t})=>"in"===t?(0,r.h)("button",{className:(0,o.cx)("meridian-zoom-button","meridian-zoom-button-in",l),"data-testid":"meridian--private--zoom-button-in",onClick:e},(0,r.h)("svg",{viewBox:"0 0 36 36"},(0,r.h)("path",{d:"M26 17h-7v-7a1 1 0 0 0-2 0v7h-7a1 1 0 0 0 0 2h7v7a1 1 0 0 0 2 0v-7h7a1 1 0 0 0 0-2"}))):(0,r.h)("button",{className:(0,o.cx)("meridian-zoom-button","meridian-zoom-button-out",c),"data-testid":"meridian--private--zoom-button-out",onClick:e},(0,r.h)("svg",{viewBox:"0 0 36 36"},(0,r.h)("path",{d:"M26 19H10a1 1 0 0 1 0-2h16a1 1 0 0 1 0 2"}))),a=(0,o.css)(o.mixins.shadow,o.mixins.rounded,{position:"absolute",display:"flex",flexDirection:"column",zIndex:1,right:15,bottom:15}),s=(0,o.css)(o.mixins.buttonReset,o.mixins.focusRing,o.mixins.buttonHoverActive,o.mixins.rounded,{cursor:"pointer",padding:4,width:40,height:40,border:0,fontSize:20,fontWeight:200,fill:o.theme.brandBrightBlue,background:"white"}),l=(0,o.css)(s,{borderBottomLeftRadius:0,borderBottomRightRadius:0,borderBottom:`1px solid ${o.theme.buttonSeparatorColor}`}),c=(0,o.css)(s,{borderTopLeftRadius:0,borderTopRightRadius:0});t.default=({onZoomIn:e,onZoomOut:t})=>(0,r.h)("div",{className:(0,o.cx)("meridian-zoom-controls",a)},(0,r.h)(i,{onClick:e,dir:"in"}),(0,r.h)(i,{onClick:t,dir:"out"}))},5396:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.sendAnalyticsCodeEvent=void 0;const r=n(4221),o=window.devicePixelRatio||1,i=window.screen,a=`${i.width*o}x${i.height*o}`;t.sendAnalyticsCodeEvent=async function(e){if("Cypress"in window)return;const{action:t,locationID:n,onTagsUpdate:o=!1,tagsFilter:i=!1,placemarksFilter:s=!1,internalUpdate:l=!1}=e,c={session_id:n,v:"1",app_name:"MeridianSDK",data_src:"app",app_version:r.version,uid:n,cid:n,hit_type:"event",event_category:"code",event_action:t,event_value:1,event_label:l?"internal":"external",tag_update:o?1:0,tags_filter:i?1:0,placemarks_filter:s?1:0,language:navigator.language,screen_res:a,anonymize_ip:1,user_agent:window.navigator.userAgent,z:Math.random().toString(36).substring(7)};fetch("https://www.google-analytics.com/mp/collect?measurement_id=G-GCT86YZLFE&api_secret=1v79k_rPSLyvvcHpzSDqFQ",{method:"POST",body:JSON.stringify({client_id:n,events:[{name:"page_event",params:Object.assign({},c)}]})})}},2785:function(e,t,n){"use strict";var r,o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.css=t.keyframes=t.cx=t.mixins=t.theme=void 0;const i=o(n(129));t.theme={fontSizeSmallest:"12px",fontSizeSmaller:"14px",fontSize:"16px",fontSizeBigger:"18px",black:"#000",white:"#fff",almostWhite:"#fafafa",textColor:"#1b1b1b",textColorBluishLightGrey:"#9fa8ae",textColorBluish:"hsl(208, 17%, 42%)",brandOrange:"#ff8300",brandBlue:"hsl(203, 100%, 23%)",brandBrightBlue:"hsl(207, 65%, 46%)",buttonActiveColor:"hsl(201, 55%, 94%)",buttonHoverColor:"hsl(200, 60%, 97%)",buttonSeparatorColor:"#f0f0f0",borderColor:"#ebeef2",borderColorDarker:"#dfe1e5",borderRadius:6,searchBarColor:"#297BC0"},t.mixins={flexRow:{display:"flex",flexDirection:"row"},flexColumn:{display:"flex",flexDirection:"column"},overflowEllipses:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},textStrokeWhite:{WebkitFontSmoothing:"antialiased",textShadow:["rgba(255, 255, 255, 0.5) 1px 1px 0","rgba(255, 255, 255, 0.5) -1px -1px 0","white 0 0 1px","white 0 0 2px","white 0 0 3px","white 0 0 4px"].join(", ")},buttonReset:{padding:0,margin:0,font:"inherit",border:0,borderRadius:0,background:"transparent",color:"inherit","&::-moz-focus-inner":{border:0}},buttonHoverActive:{"&:hover":{background:t.theme.buttonHoverColor},"&:active":{background:t.theme.buttonActiveColor}},borderBox:{boxSizing:"border-box"},focusRing:{"&:focus":{outline:0,boxShadow:`inset 0 0 0 1px ${t.theme.brandBrightBlue}`}},focusRingMenuItem:{"&:focus":{outline:0,boxShadow:`\n inset 0 0 0 1px white,\n inset 0 0 0 2px ${t.theme.brandBrightBlue}\n `}},focusOutline:{"&:focus":{outline:0,boxShadow:"0 0 0 2px currentcolor"}},focusDarken:{"&:focus":{outline:0,boxShadow:"inset 0 0 0 9999px rgba(0, 0, 0, 0.1)"}},focusNone:{"&:focus":{outline:"none"}},shadow:{boxShadow:"0 0 3px rgba(0, 0, 0, 0.25)"},rounded:{borderRadius:t.theme.borderRadius},maxRounded:{borderRadius:99999},paddingMedium:{padding:"20px"},pointer:{cursor:"pointer","&:disabled":{cursor:"default"}}},r=(0,i.default)({key:"meridian--private-"}),t.cx=r.cx,t.keyframes=r.keyframes,t.css=r.css},7746:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.debouncedPlacemarkSearch=t.placemarkSearchParams=t.cleanQuery=t.isEnvOptions=t.asyncClientCall=t.requiredParam=t.getPlacemarkCategories=t.getTagLabels=t.createSearchMatcher=t.keyBy=t.objectWithoutKey=t.uiText=t.logDeprecated=t.logError=t.logWarn=void 0;const n="[@meridian/web-sdk]";t.logWarn=console.warn.bind(console,n),t.logError=console.error.bind(console,n),t.logDeprecated=t.logWarn.bind(null,"[deprecated]"),t.uiText={enDash:"–",unnamedBuilding:"Unassigned"},t.objectWithoutKey=function(e,t){const n=Object.assign({},e);return delete n[t],n},t.keyBy=function(e,t){const n={};for(const r of e)n[t(r)]=r;return n},t.createSearchMatcher=function(e){return t=>t.toLowerCase().indexOf(e.toLowerCase().trim())>=0},t.getTagLabels=function(e){return(e.tags||[]).map((e=>e.name))},t.getPlacemarkCategories=function(e){return(e.categories||[]).map((e=>e.name))},t.requiredParam=function(e,n){(0,t.logError)(`${e}: argument \`${n}\` is required`)},t.asyncClientCall=function(e,...t){setTimeout(e,0,...t)},t.isEnvOptions=function(e){return"staging"===e||"production"===e||"eu"===e||"development"===e||"devCloud"===e},t.cleanQuery=function(e){return e.replace(/-/g," ").replace(/:/g," ").replace(/[\\)"(]/g," ").replace(/[ ]{2,}/g," ").trim()},t.placemarkSearchParams="is_map_published=true AND kind:placemark AND NOT is_searchable=false AND NOT type=exclusion_area",t.debouncedPlacemarkSearch=function e(t,n=0){let r,o,i;return function(...t){return o?(i=!0,new Promise((i=>{o=i,r=setTimeout(a.bind(e,t,i),n)}))):new Promise((i=>{o=i,r=setTimeout(a.bind(e,t,i),n)}))};function a(n,a){i&&a!==o?a(null):(t.apply(e,n).then(a).catch(a),i=!1,clearTimeout(r),r=o=null)}}},4221:function(e,t,n){"use strict";var r,o,i,a=this&&this.__classPrivateFieldGet||function(e,t,n,r){if("a"===n&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!r:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?r:"a"===n?r.call(e):r?r.value:t.get(e)},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.API=t.createAPI=t.createMap=t.init=t.mapPointToLatLng=t.latLngToMapPoint=t.restrictedPanZoom=t.version=t.pointsFromArea=t.placemarkIconURL=void 0;const l=s(n(6425)),c=s(n(7975)),u=n(172),f=s(n(5697)),h=s(n(9101)),p=n(5396),d=s(n(529)),m=n(7746),g=n(323),v=new Map;for(const e of g.keys()){const t=c.default.basename(e,".svg"),n=g(e).default;v.set(t,n)}t.placemarkIconURL=function(e){if(!e||e.startsWith("label_"))return h.default;return v.get(e)||((0,m.logError)(`placemarkIconURL: no such icon '${e}'`),h.default)},t.pointsFromArea=function(e){return e?e.split(",").map(Number):[]};const y=()=>n(3034);"complete"===document.readyState?setTimeout(y,0):document.addEventListener("DOMContentLoaded",y,!1);const _={api:void 0};t.version="1.22.7",t.restrictedPanZoom=function(e){return"wheel"===e.type?e.shiftKey||e.altKey||e.ctrlKey||e.metaKey:"touch"!==e.type||e.touches.length>=2},t.latLngToMapPoint=function(e,{lat:t,lng:n}){const r=t,o=n,i=[];e.gps_ref_points.split(",").forEach((e=>{i.push(Number(e))}));const a={lat:i[0],lng:i[1],x:i[4],y:i[5]},s={lat:i[2],lng:i[3],x:i[6],y:i[7]},l=6371;a.globalCoordinateX=l*a.lng*Math.cos((a.lat+s.lat)/2),a.globalCoordinateY=l*a.lat,s.globalCoordinateX=l*s.lng*Math.cos((a.lat+s.lat)/2),s.globalCoordinateY=l*s.lat;const c=l*r,u=(l*o*Math.cos((a.lat+s.lat)/2)-a.globalCoordinateX)/(s.globalCoordinateX-a.globalCoordinateX),f=(c-a.globalCoordinateY)/(s.globalCoordinateY-a.globalCoordinateY);return{x:a.x+(s.x-a.x)*u,y:a.y+(s.y-a.y)*f}},t.mapPointToLatLng=function(e,{x:t,y:n}){const r=[];e.gps_ref_points.split(",").forEach((e=>{r.push(Number(e))}));const o={lat:r[0],lng:r[1],x:r[4],y:r[5]},i={lat:r[2],lng:r[3],x:r[6],y:r[7]},a=o.lng,s=i.lng-a,l=function(){let e;return e=o.y{l.isDestroyed?(0,m.logError)("can't call update on a destroyed MeridianMap"):(l.isDestroyed=!0,(0,u.render)(null,e),t.onDestroy&&t.onDestroy())};let r=null;const o=e=>{r=e},i=(r,{internalUpdate:a=!0}={})=>{t=Object.assign(Object.assign({},t),r);const l=_.api||t.api;if(!l)throw(0,m.requiredParam)("createMap","options.api"),new Error("couldn't create MeridianMap");s=(0,u.render)((0,u.h)(d.default,Object.assign({api:l},t,{update:i,ref:o,destroy:n})),e,s),(0,p.sendAnalyticsCodeEvent)({action:"map.update",locationID:t.locationID,onTagsUpdate:Boolean(t.onTagsUpdate),tagsFilter:Boolean(t.tags&&t.tags.filter),placemarksFilter:Boolean(t.placemarks&&t.placemarks.filter),internalUpdate:a})},a=_.api||t.api;if(!a)throw(0,m.requiredParam)("createMap","options.api"),new Error("couldn't create MeridianMap");let s=(0,u.render)((0,u.h)(d.default,Object.assign({api:a},t,{update:i,ref:o,destroy:n})),e);(0,p.sendAnalyticsCodeEvent)({action:"createMap",locationID:t.locationID,onTagsUpdate:Boolean(t.onTagsUpdate),tagsFilter:Boolean(t.tags&&t.tags.filter),placemarksFilter:Boolean(t.placemarks&&t.placemarks.filter)});const l={destroy:n,isDestroyed:!1,update:e=>{l.isDestroyed?(0,m.logError)("can't call update on a destroyed MeridianMap"):i(e,{internalUpdate:!1})},zoomToDefault:()=>{l.isDestroyed?(0,m.logError)("can't call zoomToDefault on a destroyed MeridianMap"):null==r||r.zoomToDefault()},zoomToPoint:e=>{l.isDestroyed?(0,m.logError)("can't call update on a destroyed MeridianMap"):(e||(0,m.requiredParam)("map.zoomToPoint","options"),void 0===e.x&&(0,m.requiredParam)("map.zoomToPoint","options.x"),void 0===e.y&&(0,m.requiredParam)("map.zoomToPoint","options.y"),void 0===e.scale&&(0,m.requiredParam)("map.zoomToPoint","options.scale"),null==r||r.zoomToPoint(e.x,e.y,e.scale))},centerMap:()=>{l.isDestroyed?(0,m.logError)("can't call update on a destroyed MeridianMap"):null==r||r.centerMap()}};return l},t.createAPI=function(e){return(0,m.logDeprecated)("use `new MeridianSDK.API(options)` instead of `MeridianSDK.createAPI(options)`"),e||(0,m.requiredParam)("createAPI","options"),new b(e)};class b{constructor(e){var n;r.add(this),this.debouncedPlacemarkSearchBeta=(0,m.debouncedPlacemarkSearch)(a(this,r,"m",o).bind(this),600),e.token||(0,m.requiredParam)("API","token"),this.token=e.token,this.environment=("devcloud"===(n=e.environment)?"devCloud":n)||"production",this.language=e.language,this._placemarkSearchAbortController=null,this._localSearchAbortController=null;let i={};this.language&&(i={"accept-language":this.language}),this._axiosEditorAPI=l.default.create({baseURL:S[this.environment],headers:Object.assign({Authorization:`Token ${e.token}`,"Meridian-SDK":`WebSDK/${t.version}`},i)}),this._axiosTagsAPI=l.default.create({baseURL:k[this.environment],headers:{Authorization:`Token ${e.token}`}}),this._axiosTagDetailAPI=l.default.create({baseURL:x[this.environment],headers:{Authorization:`Token ${e.token}`}})}get axios(){return(0,m.logDeprecated)("axios is deprecated; use the MeridianSDK.API fetch methods"),this._axiosEditorAPI}async getDirections(e){e.locationID||(0,m.requiredParam)("getDirections","locationID"),e.startFloorID||(0,m.requiredParam)("getDirections","startFloorID"),e.startPlacemarkID||(0,m.requiredParam)("getDirections","startPlacemarkID"),e.endPlacemarkID||(0,m.requiredParam)("getDirections","endPlacemarkID");const t=new URLSearchParams({from_map_id:e.startFloorID,from_placemark_id:e.startPlacemarkID,to_placemark_ids:e.endPlacemarkID,transport_type:e.transportType||"normal"}),n=`/locations/${e.locationID}/directions?${t}`;return(await this._axiosEditorAPI.get(n)).data}async fetchTagsByFloor(e,t){return e||(0,m.requiredParam)("fetchTagsByFloor","locationID"),t||(0,m.requiredParam)("fetchTagsByFloor","floorID"),(await this._axiosTagsAPI.post("/assets",{floor_id:t,location_id:e})).data.asset_updates}async fetchTagsByLocation(e){return e||(0,m.requiredParam)("fetchTagsByLocation","locationID"),(await this._axiosTagsAPI.post("/assets",{location_id:e})).data.asset_updates}async fetchTagDetail(e){return e||(0,m.requiredParam)("fetchTagDetail","mac"),(await this._axiosTagDetailAPI.get(`/tagsinfo/detail/${e}`)).data}async fetchPlacemarksByLocation(e){return e||(0,m.requiredParam)("fetchPlacemarksByLocation","locationID"),await w((async e=>{const{data:t}=await this._axiosEditorAPI.get(e);return t}),`locations/${e}/placemarks`)}async fetchPlacemarksByFloor(e,t){return e||(0,m.requiredParam)("fetchPlacemarksByFloor","locationID"),t||(0,m.requiredParam)("fetchPlacemarksByFloor","floorID"),await w((async e=>{const{data:t}=await this._axiosEditorAPI.get(e);return t}),`locations/${e}/maps/${t}/placemarks`)}async fetchFloorsByLocation(e){return e||(0,m.requiredParam)("fetchFloorsByLocation","locationID"),await w((async e=>{const{data:t}=await this._axiosEditorAPI.get(e);return t}),`locations/${e}/maps`)}async fetchFloorData(e,t){e||(0,m.requiredParam)("fetchFloorData","locationID"),t||(0,m.requiredParam)("fetchFloorData","floorID");const n=`locations/${e}/maps/${t}`,{data:r}=await this._axiosEditorAPI.get(n);return r}async fetchSVG(e){e||(0,m.requiredParam)("fetchSVG","svgURL");const{data:t}=await this._axiosEditorAPI.get(e,{responseType:"blob"});return URL.createObjectURL(t)}openStream({locationID:e,floorID:t,resourceIDs:n,resourceType:r="FLOOR",onInitialTags:o=(()=>{}),onTagUpdate:i=(()=>{}),onException:a=(()=>{}),onClose:s=(()=>{}),onOpen:l=(()=>{})}){"FLOOR"===r&&t&&!n&&(n=[t]),"LOCATION"===r&&e&&!n&&(n=[e]),e||(0,m.requiredParam)("openStream","locationID"),"FLOOR"!==r||t||(0,m.requiredParam)("openStream","floorID"),n||(0,m.requiredParam)("openStream","resourceIDs");let c=!1;const u=new URLSearchParams({method:"POST",authorization:`Token ${this.token}`}),h=O[this.environment],p=new f.default(`${h}?${u}`),d={asset_requests:[{resource_type:r,location_id:e,resource_ids:n}]},g=()=>{c||(c=!0,(0,m.asyncClientCall)(s),p.close())};return p.addEventListener("open",(()=>{c||(l(),p.send(JSON.stringify(d)))})),p.addEventListener("message",(e=>{if(c)return;const t=JSON.parse(e.data);if(t.error)a(new Error(t.error.message));else{if(!t.result)throw new Error(`Unknown message: ${e.data}`);for(const e of t.result.asset_updates){const t=e.event_type;if("UPDATE"!==t)throw new Error(`Unknown event type: ${t}`);(0,m.asyncClientCall)(i,e)}}})),p.addEventListener("error",(()=>{c||a(new Error("MeridianSDK.openStream connection error"))})),p.addEventListener("close",(()=>{c||s()})),(async()=>{if(t&&"FLOOR"===r)try{const n=await this.fetchTagsByFloor(e,t);(0,m.asyncClientCall)(o,n)}catch(e){(0,m.asyncClientCall)(a,e),g()}else if(e&&"LOCATION"===r)try{const t=await this.fetchTagsByLocation(e);(0,m.asyncClientCall)(o,t)}catch(e){(0,m.asyncClientCall)(a,e),g()}else(0,m.asyncClientCall)(o,[])})(),{close:g}}}async function w(e,t){const n=await e(t),r=n.results;let o=n.next;for(;o;){const t=await e(o);r.push(...t.results),o=t.next}return r}t.API=b,r=new WeakSet,o=async function(e){const t=(0,m.cleanQuery)(e.searchStr);if(e.locationID||(0,m.requiredParam)("placemarkSearch","locationID"),this._placemarkSearchAbortController&&this._placemarkSearchAbortController.abort(),this._localSearchAbortController&&this._localSearchAbortController.abort(),!t)return[];this._placemarkSearchAbortController=new AbortController;const n=new URLSearchParams({q:`${t} AND (${m.placemarkSearchParams})`,page_size:"100"});try{return await this._axiosEditorAPI.get(`locations/${e.locationID}/search`,{signal:this._placemarkSearchAbortController.signal,params:n}).then((async n=>{const o=n.data.results;if(e.refPoint&&e.refFloorID&&o.length){const n=await a(this,r,"m",i).call(this,{locationID:e.locationID,searchStr:t,point:e.refPoint,mapID:e.refFloorID}),s=[],l=n.map((e=>e.id));return o.forEach((e=>{l.includes(e.id)||s.push(e)})),this._placemarkSearchAbortController=null,[...n,...s]}return this._placemarkSearchAbortController=null,o}))}catch(e){return"canceled"===e.message?null:(console.warn(e),[])}},i=async function(e){const t=(0,m.cleanQuery)(e.searchStr);if(this._localSearchAbortController&&this._localSearchAbortController.abort(),!t)return[];this._localSearchAbortController=new AbortController;const n=new URLSearchParams({q:`${t} AND (${m.placemarkSearchParams})`,limit:"10",appid:e.locationID,map_id:e.mapID,point:e.point});return this._axiosEditorAPI.get("search/local",{signal:this._localSearchAbortController.signal,params:n}).then((e=>(this._localSearchAbortController=null,e.data.results)))};const k={development:"http://localhost:8091/api/v1",devCloud:"https://dev-tags.meridianapps.com/api/v1",production:"https://tags.meridianapps.com/api/v1",eu:"https://tags-eu.meridianapps.com/api/v1",staging:"https://staging-tags.meridianapps.com/api/v1"},x={development:"http://localhost:8091/api",devCloud:"https://dev-tags.meridianapps.com/api",production:"https://tags.meridianapps.com/api",eu:"https://tags-eu.meridianapps.com/api",staging:"https://staging-tags.meridianapps.com/api"},O={development:"ws://localhost:8091/streams/v1/assets",devCloud:"wss://dev-tags.meridianapps.com/streams/v1/assets",production:"wss://tags.meridianapps.com/streams/v1/assets",eu:"wss://tags-eu.meridianapps.com/streams/v1/assets",staging:"wss://staging-tags.meridianapps.com/streams/v1/assets"},S={development:"http://localhost:8091/api",devCloud:"https://dev-edit.meridianapps.com/api",production:"https://edit.meridianapps.com/api",eu:"https://edit-eu.meridianapps.com/api",staging:"https://staging-edit.meridianapps.com/api"}},6425:function(e,t,n){"use strict";function r(e,t){return function(){return e.apply(t,arguments)}}const{toString:o}=Object.prototype,{getPrototypeOf:i}=Object,a=(s=Object.create(null),e=>{const t=o.call(e);return s[t]||(s[t]=t.slice(8,-1).toLowerCase())});var s;const l=e=>(e=e.toLowerCase(),t=>a(t)===e),c=e=>t=>typeof t===e,{isArray:u}=Array,f=c("undefined"),h=l("ArrayBuffer"),p=c("string"),d=c("function"),m=c("number"),g=e=>null!==e&&"object"==typeof e,v=e=>{if("object"!==a(e))return!1;const t=i(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||Symbol.toStringTag in e||Symbol.iterator in e)},y=l("Date"),_=l("File"),b=l("Blob"),w=l("FileList"),k=l("URLSearchParams"),[x,O,S,C]=["ReadableStream","Request","Response","Headers"].map(l);function A(e,t,{allOwnKeys:n=!1}={}){if(null==e)return;let r,o;if("object"!=typeof e&&(e=[e]),u(e))for(r=0,o=e.length;r0;)if(r=n[o],t===r.toLowerCase())return r;return null}const T="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:n.g,P=e=>!f(e)&&e!==T,D=(j="undefined"!=typeof Uint8Array&&i(Uint8Array),e=>j&&e instanceof j);var j;const M=l("HTMLFormElement"),R=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),L=l("RegExp"),N=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};A(n,((n,o)=>{let i;!1!==(i=t(n,o,e))&&(r[o]=i||n)})),Object.defineProperties(e,r)},I="abcdefghijklmnopqrstuvwxyz",z="0123456789",F={DIGIT:z,ALPHA:I,ALPHA_DIGIT:I+I.toUpperCase()+z},B=l("AsyncFunction"),U=($="function"==typeof setImmediate,q=d(T.postMessage),$?setImmediate:q?(W=`axios@${Math.random()}`,H=[],T.addEventListener("message",(({source:e,data:t})=>{e===T&&t===W&&H.length&&H.shift()()}),!1),e=>{H.push(e),T.postMessage(W,"*")}):e=>setTimeout(e));var $,q,W,H;const Z="undefined"!=typeof queueMicrotask?queueMicrotask.bind(T):"undefined"!=typeof process&&process.nextTick||U;var G={isArray:u,isArrayBuffer:h,isBuffer:function(e){return null!==e&&!f(e)&&null!==e.constructor&&!f(e.constructor)&&d(e.constructor.isBuffer)&&e.constructor.isBuffer(e)},isFormData:e=>{let t;return e&&("function"==typeof FormData&&e instanceof FormData||d(e.append)&&("formdata"===(t=a(e))||"object"===t&&d(e.toString)&&"[object FormData]"===e.toString()))},isArrayBufferView:function(e){let t;return t="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&h(e.buffer),t},isString:p,isNumber:m,isBoolean:e=>!0===e||!1===e,isObject:g,isPlainObject:v,isReadableStream:x,isRequest:O,isResponse:S,isHeaders:C,isUndefined:f,isDate:y,isFile:_,isBlob:b,isRegExp:L,isFunction:d,isStream:e=>g(e)&&d(e.pipe),isURLSearchParams:k,isTypedArray:D,isFileList:w,forEach:A,merge:function e(){const{caseless:t}=P(this)&&this||{},n={},r=(r,o)=>{const i=t&&E(n,o)||o;v(n[i])&&v(r)?n[i]=e(n[i],r):v(r)?n[i]=e({},r):u(r)?n[i]=r.slice():n[i]=r};for(let e=0,t=arguments.length;e(A(t,((t,o)=>{n&&d(t)?e[o]=r(t,n):e[o]=t}),{allOwnKeys:o}),e),trim:e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:e=>(65279===e.charCodeAt(0)&&(e=e.slice(1)),e),inherits:(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},toFlatObject:(e,t,n,r)=>{let o,a,s;const l={};if(t=t||{},null==e)return t;do{for(o=Object.getOwnPropertyNames(e),a=o.length;a-- >0;)s=o[a],r&&!r(s,e,t)||l[s]||(t[s]=e[s],l[s]=!0);e=!1!==n&&i(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},kindOf:a,kindOfTest:l,endsWith:(e,t,n)=>{e=String(e),(void 0===n||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return-1!==r&&r===n},toArray:e=>{if(!e)return null;if(u(e))return e;let t=e.length;if(!m(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},forEachEntry:(e,t)=>{const n=(e&&e[Symbol.iterator]).call(e);let r;for(;(r=n.next())&&!r.done;){const n=r.value;t.call(e,n[0],n[1])}},matchAll:(e,t)=>{let n;const r=[];for(;null!==(n=e.exec(t));)r.push(n);return r},isHTMLForm:M,hasOwnProperty:R,hasOwnProp:R,reduceDescriptors:N,freezeMethods:e=>{N(e,((t,n)=>{if(d(e)&&-1!==["arguments","caller","callee"].indexOf(n))return!1;const r=e[n];d(r)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")}))}))},toObjectSet:(e,t)=>{const n={},r=e=>{e.forEach((e=>{n[e]=!0}))};return u(e)?r(e):r(String(e).split(t)),n},toCamelCase:e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(e,t,n){return t.toUpperCase()+n})),noop:()=>{},toFiniteNumber:(e,t)=>null!=e&&Number.isFinite(e=+e)?e:t,findKey:E,global:T,isContextDefined:P,ALPHABET:F,generateString:(e=16,t=F.ALPHA_DIGIT)=>{let n="";const{length:r}=t;for(;e--;)n+=t[Math.random()*r|0];return n},isSpecCompliantForm:function(e){return!!(e&&d(e.append)&&"FormData"===e[Symbol.toStringTag]&&e[Symbol.iterator])},toJSONObject:e=>{const t=new Array(10),n=(e,r)=>{if(g(e)){if(t.indexOf(e)>=0)return;if(!("toJSON"in e)){t[r]=e;const o=u(e)?[]:{};return A(e,((e,t)=>{const i=n(e,r+1);!f(i)&&(o[t]=i)})),t[r]=void 0,o}}return e};return n(e,0)},isAsyncFn:B,isThenable:e=>e&&(g(e)||d(e))&&d(e.then)&&d(e.catch),setImmediate:U,asap:Z};function V(e,t,n,r,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),o&&(this.response=o,this.status=o.status?o.status:null)}G.inherits(V,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:G.toJSONObject(this.config),code:this.code,status:this.status}}});const X=V.prototype,J={};function Y(e){return G.isPlainObject(e)||G.isArray(e)}function K(e){return G.endsWith(e,"[]")?e.slice(0,-2):e}function Q(e,t,n){return e?e.concat(t).map((function(e,t){return e=K(e),!n&&t?"["+e+"]":e})).join(n?".":""):t}["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((e=>{J[e]={value:e}})),Object.defineProperties(V,J),Object.defineProperty(X,"isAxiosError",{value:!0}),V.from=(e,t,n,r,o,i)=>{const a=Object.create(X);return G.toFlatObject(e,a,(function(e){return e!==Error.prototype}),(e=>"isAxiosError"!==e)),V.call(a,e.message,t,n,r,o),a.cause=e,a.name=e.name,i&&Object.assign(a,i),a};const ee=G.toFlatObject(G,{},null,(function(e){return/^is[A-Z]/.test(e)}));function te(e,t,n){if(!G.isObject(e))throw new TypeError("target must be an object");t=t||new FormData;const r=(n=G.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(e,t){return!G.isUndefined(t[e])}))).metaTokens,o=n.visitor||c,i=n.dots,a=n.indexes,s=(n.Blob||"undefined"!=typeof Blob&&Blob)&&G.isSpecCompliantForm(t);if(!G.isFunction(o))throw new TypeError("visitor must be a function");function l(e){if(null===e)return"";if(G.isDate(e))return e.toISOString();if(!s&&G.isBlob(e))throw new V("Blob is not supported. Use a Buffer instead.");return G.isArrayBuffer(e)||G.isTypedArray(e)?s&&"function"==typeof Blob?new Blob([e]):Buffer.from(e):e}function c(e,n,o){let s=e;if(e&&!o&&"object"==typeof e)if(G.endsWith(n,"{}"))n=r?n:n.slice(0,-2),e=JSON.stringify(e);else if(G.isArray(e)&&function(e){return G.isArray(e)&&!e.some(Y)}(e)||(G.isFileList(e)||G.endsWith(n,"[]"))&&(s=G.toArray(e)))return n=K(n),s.forEach((function(e,r){!G.isUndefined(e)&&null!==e&&t.append(!0===a?Q([n],r,i):null===a?n:n+"[]",l(e))})),!1;return!!Y(e)||(t.append(Q(o,n,i),l(e)),!1)}const u=[],f=Object.assign(ee,{defaultVisitor:c,convertValue:l,isVisitable:Y});if(!G.isObject(e))throw new TypeError("data must be an object");return function e(n,r){if(!G.isUndefined(n)){if(-1!==u.indexOf(n))throw Error("Circular reference detected in "+r.join("."));u.push(n),G.forEach(n,(function(n,i){!0===(!(G.isUndefined(n)||null===n)&&o.call(t,n,G.isString(i)?i.trim():i,r,f))&&e(n,r?r.concat(i):[i])})),u.pop()}}(e),t}function ne(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,(function(e){return t[e]}))}function re(e,t){this._pairs=[],e&&te(e,this,t)}const oe=re.prototype;function ie(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function ae(e,t,n){if(!t)return e;const r=n&&n.encode||ie,o=n&&n.serialize;let i;if(i=o?o(t,n):G.isURLSearchParams(t)?t.toString():new re(t,n).toString(r),i){const t=e.indexOf("#");-1!==t&&(e=e.slice(0,t)),e+=(-1===e.indexOf("?")?"?":"&")+i}return e}oe.append=function(e,t){this._pairs.push([e,t])},oe.toString=function(e){const t=e?function(t){return e.call(this,t,ne)}:ne;return this._pairs.map((function(e){return t(e[0])+"="+t(e[1])}),"").join("&")};var se=class{constructor(){this.handlers=[]}use(e,t,n){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){G.forEach(this.handlers,(function(t){null!==t&&e(t)}))}},le={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},ce={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:re,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]};const ue="undefined"!=typeof window&&"undefined"!=typeof document,fe="object"==typeof navigator&&navigator||void 0,he=ue&&(!fe||["ReactNative","NativeScript","NS"].indexOf(fe.product)<0),pe="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,de=ue&&window.location.href||"http://localhost";var me={...Object.freeze({__proto__:null,hasBrowserEnv:ue,hasStandardBrowserWebWorkerEnv:pe,hasStandardBrowserEnv:he,navigator:fe,origin:de}),...ce};function ge(e){function t(e,n,r,o){let i=e[o++];if("__proto__"===i)return!0;const a=Number.isFinite(+i),s=o>=e.length;return i=!i&&G.isArray(r)?r.length:i,s?(G.hasOwnProp(r,i)?r[i]=[r[i],n]:r[i]=n,!a):(r[i]&&G.isObject(r[i])||(r[i]=[]),t(e,n,r[i],o)&&G.isArray(r[i])&&(r[i]=function(e){const t={},n=Object.keys(e);let r;const o=n.length;let i;for(r=0;r{t(function(e){return G.matchAll(/\w+|\[(\w*)]/g,e).map((e=>"[]"===e[0]?"":e[1]||e[0]))}(e),r,n,0)})),n}return null}const ve={transitional:le,adapter:["xhr","http","fetch"],transformRequest:[function(e,t){const n=t.getContentType()||"",r=n.indexOf("application/json")>-1,o=G.isObject(e);if(o&&G.isHTMLForm(e)&&(e=new FormData(e)),G.isFormData(e))return r?JSON.stringify(ge(e)):e;if(G.isArrayBuffer(e)||G.isBuffer(e)||G.isStream(e)||G.isFile(e)||G.isBlob(e)||G.isReadableStream(e))return e;if(G.isArrayBufferView(e))return e.buffer;if(G.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let i;if(o){if(n.indexOf("application/x-www-form-urlencoded")>-1)return function(e,t){return te(e,new me.classes.URLSearchParams,Object.assign({visitor:function(e,t,n,r){return me.isNode&&G.isBuffer(e)?(this.append(t,e.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)}},t))}(e,this.formSerializer).toString();if((i=G.isFileList(e))||n.indexOf("multipart/form-data")>-1){const t=this.env&&this.env.FormData;return te(i?{"files[]":e}:e,t&&new t,this.formSerializer)}}return o||r?(t.setContentType("application/json",!1),function(e,t,n){if(G.isString(e))try{return(0,JSON.parse)(e),G.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(0,JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){const t=this.transitional||ve.transitional,n=t&&t.forcedJSONParsing,r="json"===this.responseType;if(G.isResponse(e)||G.isReadableStream(e))return e;if(e&&G.isString(e)&&(n&&!this.responseType||r)){const n=!(t&&t.silentJSONParsing)&&r;try{return JSON.parse(e)}catch(e){if(n){if("SyntaxError"===e.name)throw V.from(e,V.ERR_BAD_RESPONSE,this,null,this.response);throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:me.classes.FormData,Blob:me.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};G.forEach(["delete","get","head","post","put","patch"],(e=>{ve.headers[e]={}}));var ye=ve;const _e=G.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),be=Symbol("internals");function we(e){return e&&String(e).trim().toLowerCase()}function ke(e){return!1===e||null==e?e:G.isArray(e)?e.map(ke):String(e)}function xe(e,t,n,r,o){return G.isFunction(r)?r.call(this,t,n):(o&&(t=n),G.isString(t)?G.isString(r)?-1!==t.indexOf(r):G.isRegExp(r)?r.test(t):void 0:void 0)}class Oe{constructor(e){e&&this.set(e)}set(e,t,n){const r=this;function o(e,t,n){const o=we(t);if(!o)throw new Error("header name must be a non-empty string");const i=G.findKey(r,o);(!i||void 0===r[i]||!0===n||void 0===n&&!1!==r[i])&&(r[i||t]=ke(e))}const i=(e,t)=>G.forEach(e,((e,n)=>o(e,n,t)));if(G.isPlainObject(e)||e instanceof this.constructor)i(e,t);else if(G.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim()))i((e=>{const t={};let n,r,o;return e&&e.split("\n").forEach((function(e){o=e.indexOf(":"),n=e.substring(0,o).trim().toLowerCase(),r=e.substring(o+1).trim(),!n||t[n]&&_e[n]||("set-cookie"===n?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)})),t})(e),t);else if(G.isHeaders(e))for(const[t,r]of e.entries())o(r,t,n);else null!=e&&o(t,e,n);return this}get(e,t){if(e=we(e)){const n=G.findKey(this,e);if(n){const e=this[n];if(!t)return e;if(!0===t)return function(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}(e);if(G.isFunction(t))return t.call(this,e,n);if(G.isRegExp(t))return t.exec(e);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=we(e)){const n=G.findKey(this,e);return!(!n||void 0===this[n]||t&&!xe(0,this[n],n,t))}return!1}delete(e,t){const n=this;let r=!1;function o(e){if(e=we(e)){const o=G.findKey(n,e);!o||t&&!xe(0,n[o],o,t)||(delete n[o],r=!0)}}return G.isArray(e)?e.forEach(o):o(e),r}clear(e){const t=Object.keys(this);let n=t.length,r=!1;for(;n--;){const o=t[n];e&&!xe(0,this[o],o,e,!0)||(delete this[o],r=!0)}return r}normalize(e){const t=this,n={};return G.forEach(this,((r,o)=>{const i=G.findKey(n,o);if(i)return t[i]=ke(r),void delete t[o];const a=e?function(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((e,t,n)=>t.toUpperCase()+n))}(o):String(o).trim();a!==o&&delete t[o],t[a]=ke(r),n[a]=!0})),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return G.forEach(this,((n,r)=>{null!=n&&!1!==n&&(t[r]=e&&G.isArray(n)?n.join(", "):n)})),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([e,t])=>e+": "+t)).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const n=new this(e);return t.forEach((e=>n.set(e))),n}static accessor(e){const t=(this[be]=this[be]={accessors:{}}).accessors,n=this.prototype;function r(e){const r=we(e);t[r]||(function(e,t){const n=G.toCamelCase(" "+t);["get","set","has"].forEach((r=>{Object.defineProperty(e,r+n,{value:function(e,n,o){return this[r].call(this,t,e,n,o)},configurable:!0})}))}(n,e),t[r]=!0)}return G.isArray(e)?e.forEach(r):r(e),this}}Oe.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),G.reduceDescriptors(Oe.prototype,(({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[n]=e}}})),G.freezeMethods(Oe);var Se=Oe;function Ce(e,t){const n=this||ye,r=t||n,o=Se.from(r.headers);let i=r.data;return G.forEach(e,(function(e){i=e.call(n,i,o.normalize(),t?t.status:void 0)})),o.normalize(),i}function Ae(e){return!(!e||!e.__CANCEL__)}function Ee(e,t,n){V.call(this,null==e?"canceled":e,V.ERR_CANCELED,t,n),this.name="CanceledError"}function Te(e,t,n){const r=n.config.validateStatus;n.status&&r&&!r(n.status)?t(new V("Request failed with status code "+n.status,[V.ERR_BAD_REQUEST,V.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n)):e(n)}G.inherits(Ee,V,{__CANCEL__:!0});const Pe=(e,t,n=3)=>{let r=0;const o=function(e,t){e=e||10;const n=new Array(e),r=new Array(e);let o,i=0,a=0;return t=void 0!==t?t:1e3,function(s){const l=Date.now(),c=r[a];o||(o=l),n[i]=s,r[i]=l;let u=a,f=0;for(;u!==i;)f+=n[u++],u%=e;if(i=(i+1)%e,i===a&&(a=(a+1)%e),l-o{o=i,n=null,r&&(clearTimeout(r),r=null),e.apply(null,t)};return[(...e)=>{const t=Date.now(),s=t-o;s>=i?a(e,t):(n=e,r||(r=setTimeout((()=>{r=null,a(n)}),i-s)))},()=>n&&a(n)]}((n=>{const i=n.loaded,a=n.lengthComputable?n.total:void 0,s=i-r,l=o(s);r=i,e({loaded:i,total:a,progress:a?i/a:void 0,bytes:s,rate:l||void 0,estimated:l&&a&&i<=a?(a-i)/l:void 0,event:n,lengthComputable:null!=a,[t?"download":"upload"]:!0})}),n)},De=(e,t)=>{const n=null!=e;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},je=e=>(...t)=>G.asap((()=>e(...t)));var Me=me.hasStandardBrowserEnv?function(){const e=me.navigator&&/(msie|trident)/i.test(me.navigator.userAgent),t=document.createElement("a");let n;function r(n){let r=n;return e&&(t.setAttribute("href",r),r=t.href),t.setAttribute("href",r),{href:t.href,protocol:t.protocol?t.protocol.replace(/:$/,""):"",host:t.host,search:t.search?t.search.replace(/^\?/,""):"",hash:t.hash?t.hash.replace(/^#/,""):"",hostname:t.hostname,port:t.port,pathname:"/"===t.pathname.charAt(0)?t.pathname:"/"+t.pathname}}return n=r(window.location.href),function(e){const t=G.isString(e)?r(e):e;return t.protocol===n.protocol&&t.host===n.host}}():function(){return!0},Re=me.hasStandardBrowserEnv?{write(e,t,n,r,o,i){const a=[e+"="+encodeURIComponent(t)];G.isNumber(n)&&a.push("expires="+new Date(n).toGMTString()),G.isString(r)&&a.push("path="+r),G.isString(o)&&a.push("domain="+o),!0===i&&a.push("secure"),document.cookie=a.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function Le(e,t){return e&&!/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)?function(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}(e,t):t}const Ne=e=>e instanceof Se?{...e}:e;function Ie(e,t){t=t||{};const n={};function r(e,t,n){return G.isPlainObject(e)&&G.isPlainObject(t)?G.merge.call({caseless:n},e,t):G.isPlainObject(t)?G.merge({},t):G.isArray(t)?t.slice():t}function o(e,t,n){return G.isUndefined(t)?G.isUndefined(e)?void 0:r(void 0,e,n):r(e,t,n)}function i(e,t){if(!G.isUndefined(t))return r(void 0,t)}function a(e,t){return G.isUndefined(t)?G.isUndefined(e)?void 0:r(void 0,e):r(void 0,t)}function s(n,o,i){return i in t?r(n,o):i in e?r(void 0,n):void 0}const l={url:i,method:i,data:i,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,withXSRFToken:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:s,headers:(e,t)=>o(Ne(e),Ne(t),!0)};return G.forEach(Object.keys(Object.assign({},e,t)),(function(r){const i=l[r]||o,a=i(e[r],t[r],r);G.isUndefined(a)&&i!==s||(n[r]=a)})),n}var ze=e=>{const t=Ie({},e);let n,{data:r,withXSRFToken:o,xsrfHeaderName:i,xsrfCookieName:a,headers:s,auth:l}=t;if(t.headers=s=Se.from(s),t.url=ae(Le(t.baseURL,t.url),e.params,e.paramsSerializer),l&&s.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):""))),G.isFormData(r))if(me.hasStandardBrowserEnv||me.hasStandardBrowserWebWorkerEnv)s.setContentType(void 0);else if(!1!==(n=s.getContentType())){const[e,...t]=n?n.split(";").map((e=>e.trim())).filter(Boolean):[];s.setContentType([e||"multipart/form-data",...t].join("; "))}if(me.hasStandardBrowserEnv&&(o&&G.isFunction(o)&&(o=o(t)),o||!1!==o&&Me(t.url))){const e=i&&a&&Re.read(a);e&&s.set(i,e)}return t},Fe="undefined"!=typeof XMLHttpRequest&&function(e){return new Promise((function(t,n){const r=ze(e);let o=r.data;const i=Se.from(r.headers).normalize();let a,s,l,c,u,{responseType:f,onUploadProgress:h,onDownloadProgress:p}=r;function d(){c&&c(),u&&u(),r.cancelToken&&r.cancelToken.unsubscribe(a),r.signal&&r.signal.removeEventListener("abort",a)}let m=new XMLHttpRequest;function g(){if(!m)return;const r=Se.from("getAllResponseHeaders"in m&&m.getAllResponseHeaders());Te((function(e){t(e),d()}),(function(e){n(e),d()}),{data:f&&"text"!==f&&"json"!==f?m.response:m.responseText,status:m.status,statusText:m.statusText,headers:r,config:e,request:m}),m=null}m.open(r.method.toUpperCase(),r.url,!0),m.timeout=r.timeout,"onloadend"in m?m.onloadend=g:m.onreadystatechange=function(){m&&4===m.readyState&&(0!==m.status||m.responseURL&&0===m.responseURL.indexOf("file:"))&&setTimeout(g)},m.onabort=function(){m&&(n(new V("Request aborted",V.ECONNABORTED,e,m)),m=null)},m.onerror=function(){n(new V("Network Error",V.ERR_NETWORK,e,m)),m=null},m.ontimeout=function(){let t=r.timeout?"timeout of "+r.timeout+"ms exceeded":"timeout exceeded";const o=r.transitional||le;r.timeoutErrorMessage&&(t=r.timeoutErrorMessage),n(new V(t,o.clarifyTimeoutError?V.ETIMEDOUT:V.ECONNABORTED,e,m)),m=null},void 0===o&&i.setContentType(null),"setRequestHeader"in m&&G.forEach(i.toJSON(),(function(e,t){m.setRequestHeader(t,e)})),G.isUndefined(r.withCredentials)||(m.withCredentials=!!r.withCredentials),f&&"json"!==f&&(m.responseType=r.responseType),p&&([l,u]=Pe(p,!0),m.addEventListener("progress",l)),h&&m.upload&&([s,c]=Pe(h),m.upload.addEventListener("progress",s),m.upload.addEventListener("loadend",c)),(r.cancelToken||r.signal)&&(a=t=>{m&&(n(!t||t.type?new Ee(null,e,m):t),m.abort(),m=null)},r.cancelToken&&r.cancelToken.subscribe(a),r.signal&&(r.signal.aborted?a():r.signal.addEventListener("abort",a)));const v=function(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}(r.url);v&&-1===me.protocols.indexOf(v)?n(new V("Unsupported protocol "+v+":",V.ERR_BAD_REQUEST,e)):m.send(o||null)}))},Be=(e,t)=>{let n,r=new AbortController;const o=function(e){if(!n){n=!0,a();const t=e instanceof Error?e:this.reason;r.abort(t instanceof V?t:new Ee(t instanceof Error?t.message:t))}};let i=t&&setTimeout((()=>{o(new V(`timeout ${t} of ms exceeded`,V.ETIMEDOUT))}),t);const a=()=>{e&&(i&&clearTimeout(i),i=null,e.forEach((e=>{e&&(e.removeEventListener?e.removeEventListener("abort",o):e.unsubscribe(o))})),e=null)};e.forEach((e=>e&&e.addEventListener&&e.addEventListener("abort",o)));const{signal:s}=r;return s.unsubscribe=a,[s,()=>{i&&clearTimeout(i),i=null}]};const Ue=function*(e,t){let n=e.byteLength;if(!t||n{const i=async function*(e,t,n){for await(const r of e)yield*Ue(ArrayBuffer.isView(r)?r:await n(String(r)),t)}(e,t,o);let a,s=0,l=e=>{a||(a=!0,r&&r(e))};return new ReadableStream({async pull(e){try{const{done:t,value:r}=await i.next();if(t)return l(),void e.close();let o=r.byteLength;if(n){let e=s+=o;n(e)}e.enqueue(new Uint8Array(r))}catch(e){throw l(e),e}},cancel(e){return l(e),i.return()}},{highWaterMark:2})},qe="function"==typeof fetch&&"function"==typeof Request&&"function"==typeof Response,We=qe&&"function"==typeof ReadableStream,He=qe&&("function"==typeof TextEncoder?(Ze=new TextEncoder,e=>Ze.encode(e)):async e=>new Uint8Array(await new Response(e).arrayBuffer()));var Ze;const Ge=(e,...t)=>{try{return!!e(...t)}catch(e){return!1}},Ve=We&&Ge((()=>{let e=!1;const t=new Request(me.origin,{body:new ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type");return e&&!t})),Xe=We&&Ge((()=>G.isReadableStream(new Response("").body))),Je={stream:Xe&&(e=>e.body)};var Ye;qe&&(Ye=new Response,["text","arrayBuffer","blob","formData","stream"].forEach((e=>{!Je[e]&&(Je[e]=G.isFunction(Ye[e])?t=>t[e]():(t,n)=>{throw new V(`Response type '${e}' is not supported`,V.ERR_NOT_SUPPORT,n)})})));const Ke={http:null,xhr:Fe,fetch:qe&&(async e=>{let{url:t,method:n,data:r,signal:o,cancelToken:i,timeout:a,onDownloadProgress:s,onUploadProgress:l,responseType:c,headers:u,withCredentials:f="same-origin",fetchOptions:h}=ze(e);c=c?(c+"").toLowerCase():"text";let p,d,[m,g]=o||i||a?Be([o,i],a):[];const v=()=>{!p&&setTimeout((()=>{m&&m.unsubscribe()})),p=!0};let y;try{if(l&&Ve&&"get"!==n&&"head"!==n&&0!==(y=await(async(e,t)=>{const n=G.toFiniteNumber(e.getContentLength());return null==n?(async e=>null==e?0:G.isBlob(e)?e.size:G.isSpecCompliantForm(e)?(await new Request(e).arrayBuffer()).byteLength:G.isArrayBufferView(e)||G.isArrayBuffer(e)?e.byteLength:(G.isURLSearchParams(e)&&(e+=""),G.isString(e)?(await He(e)).byteLength:void 0))(t):n})(u,r))){let e,n=new Request(t,{method:"POST",body:r,duplex:"half"});if(G.isFormData(r)&&(e=n.headers.get("content-type"))&&u.setContentType(e),n.body){const[e,t]=De(y,Pe(je(l)));r=$e(n.body,65536,e,t,He)}}G.isString(f)||(f=f?"include":"omit");const o="credentials"in Request.prototype;d=new Request(t,{...h,signal:m,method:n.toUpperCase(),headers:u.normalize().toJSON(),body:r,duplex:"half",credentials:o?f:void 0});let i=await fetch(d);const a=Xe&&("stream"===c||"response"===c);if(Xe&&(s||a)){const e={};["status","statusText","headers"].forEach((t=>{e[t]=i[t]}));const t=G.toFiniteNumber(i.headers.get("content-length")),[n,r]=s&&De(t,Pe(je(s),!0))||[];i=new Response($e(i.body,65536,n,(()=>{r&&r(),a&&v()}),He),e)}c=c||"text";let p=await Je[G.findKey(Je,c)||"text"](i,e);return!a&&v(),g&&g(),await new Promise(((t,n)=>{Te(t,n,{data:p,headers:Se.from(i.headers),status:i.status,statusText:i.statusText,config:e,request:d})}))}catch(t){if(v(),t&&"TypeError"===t.name&&/fetch/i.test(t.message))throw Object.assign(new V("Network Error",V.ERR_NETWORK,e,d),{cause:t.cause||t});throw V.from(t,t&&t.code,e,d)}})};G.forEach(Ke,((e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch(e){}Object.defineProperty(e,"adapterName",{value:t})}}));const Qe=e=>`- ${e}`,et=e=>G.isFunction(e)||null===e||!1===e;var tt=e=>{e=G.isArray(e)?e:[e];const{length:t}=e;let n,r;const o={};for(let i=0;i`adapter ${e} `+(!1===t?"is not supported by the environment":"is not available in the build")));throw new V("There is no suitable adapter to dispatch the request "+(t?e.length>1?"since :\n"+e.map(Qe).join("\n"):" "+Qe(e[0]):"as no adapter specified"),"ERR_NOT_SUPPORT")}return r};function nt(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Ee(null,e)}function rt(e){return nt(e),e.headers=Se.from(e.headers),e.data=Ce.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1),tt(e.adapter||ye.adapter)(e).then((function(t){return nt(e),t.data=Ce.call(e,e.transformResponse,t),t.headers=Se.from(t.headers),t}),(function(t){return Ae(t)||(nt(e),t&&t.response&&(t.response.data=Ce.call(e,e.transformResponse,t.response),t.response.headers=Se.from(t.response.headers))),Promise.reject(t)}))}const ot={};["object","boolean","number","function","string","symbol"].forEach(((e,t)=>{ot[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}}));const it={};ot.transitional=function(e,t,n){function r(e,t){return"[Axios v1.7.5] Transitional option '"+e+"'"+t+(n?". "+n:"")}return(n,o,i)=>{if(!1===e)throw new V(r(o," has been removed"+(t?" in "+t:"")),V.ERR_DEPRECATED);return t&&!it[o]&&(it[o]=!0,console.warn(r(o," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(n,o,i)}};var at={assertOptions:function(e,t,n){if("object"!=typeof e)throw new V("options must be an object",V.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let o=r.length;for(;o-- >0;){const i=r[o],a=t[i];if(a){const t=e[i],n=void 0===t||a(t,i,e);if(!0!==n)throw new V("option "+i+" must be "+n,V.ERR_BAD_OPTION_VALUE)}else if(!0!==n)throw new V("Unknown option "+i,V.ERR_BAD_OPTION)}},validators:ot};const st=at.validators;class lt{constructor(e){this.defaults=e,this.interceptors={request:new se,response:new se}}async request(e,t){try{return await this._request(e,t)}catch(e){if(e instanceof Error){let t;Error.captureStackTrace?Error.captureStackTrace(t={}):t=new Error;const n=t.stack?t.stack.replace(/^.+\n/,""):"";try{e.stack?n&&!String(e.stack).endsWith(n.replace(/^.+\n.+\n/,""))&&(e.stack+="\n"+n):e.stack=n}catch(e){}}throw e}}_request(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{},t=Ie(this.defaults,t);const{transitional:n,paramsSerializer:r,headers:o}=t;void 0!==n&&at.assertOptions(n,{silentJSONParsing:st.transitional(st.boolean),forcedJSONParsing:st.transitional(st.boolean),clarifyTimeoutError:st.transitional(st.boolean)},!1),null!=r&&(G.isFunction(r)?t.paramsSerializer={serialize:r}:at.assertOptions(r,{encode:st.function,serialize:st.function},!0)),t.method=(t.method||this.defaults.method||"get").toLowerCase();let i=o&&G.merge(o.common,o[t.method]);o&&G.forEach(["delete","get","head","post","put","patch","common"],(e=>{delete o[e]})),t.headers=Se.concat(i,o);const a=[];let s=!0;this.interceptors.request.forEach((function(e){"function"==typeof e.runWhen&&!1===e.runWhen(t)||(s=s&&e.synchronous,a.unshift(e.fulfilled,e.rejected))}));const l=[];let c;this.interceptors.response.forEach((function(e){l.push(e.fulfilled,e.rejected)}));let u,f=0;if(!s){const e=[rt.bind(this),void 0];for(e.unshift.apply(e,a),e.push.apply(e,l),u=e.length,c=Promise.resolve(t);f{if(!n._listeners)return;let t=n._listeners.length;for(;t-- >0;)n._listeners[t](e);n._listeners=null})),this.promise.then=e=>{let t;const r=new Promise((e=>{n.subscribe(e),t=e})).then(e);return r.cancel=function(){n.unsubscribe(t)},r},e((function(e,r,o){n.reason||(n.reason=new Ee(e,r,o),t(n.reason))}))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}static source(){let e;return{token:new ut((function(t){e=t})),cancel:e}}}var ft=ut;const ht={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(ht).forEach((([e,t])=>{ht[t]=e}));var pt=ht;const dt=function e(t){const n=new ct(t),o=r(ct.prototype.request,n);return G.extend(o,ct.prototype,n,{allOwnKeys:!0}),G.extend(o,n,null,{allOwnKeys:!0}),o.create=function(n){return e(Ie(t,n))},o}(ye);dt.Axios=ct,dt.CanceledError=Ee,dt.CancelToken=ft,dt.isCancel=Ae,dt.VERSION="1.7.5",dt.toFormData=te,dt.AxiosError=V,dt.Cancel=dt.CanceledError,dt.all=function(e){return Promise.all(e)},dt.spread=function(e){return function(t){return e.apply(null,t)}},dt.isAxiosError=function(e){return G.isObject(e)&&!0===e.isAxiosError},dt.mergeConfig=Ie,dt.AxiosHeaders=Se,dt.formToJSON=e=>ge(G.isHTMLForm(e)?new FormData(e):e),dt.getAdapter=tt,dt.HttpStatusCode=pt,dt.default=dt,e.exports=dt},5478:function(e,t,n){"use strict";function r(e){return null==e?[]:Array.isArray(e)?e:Array.from(e)}n.d(t,{A:function(){return r}})},3663:function(e,t,n){"use strict";n.d(t,{A:function(){return s}});var r=n(7268),o=n(7947);function i(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===o.g&&t.documentElement.namespaceURI===o.g?t.createElement(e):t.createElementNS(n,e)}}function a(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function s(e){var t=(0,r.A)(e);return(t.local?a:i)(t)}},9062:function(e,t,n){"use strict";n.r(t),n.d(t,{create:function(){return i},creator:function(){return r.A},local:function(){return s},matcher:function(){return c.A},namespace:function(){return u.A},namespaces:function(){return f.A},pointer:function(){return h.A},pointers:function(){return d},select:function(){return o.A},selectAll:function(){return v},selection:function(){return g.Ay},selector:function(){return y.A},selectorAll:function(){return _.A},style:function(){return b.j},window:function(){return w.A}});var r=n(3663),o=n(183);function i(e){return(0,o.A)((0,r.A)(e).call(document.documentElement))}var a=0;function s(){return new l}function l(){this._="@"+(++a).toString(36)}l.prototype=s.prototype={constructor:l,get:function(e){for(var t=this._;!(t in e);)if(!(e=e.parentNode))return;return e[t]},set:function(e,t){return e[this._]=t},remove:function(e){return this._ in e&&delete e[this._]},toString:function(){return this._}};var c=n(6541),u=n(7268),f=n(7947),h=n(5970),p=n(2324);function d(e,t){return e.target&&(e=(0,p.A)(e),void 0===t&&(t=e.currentTarget),e=e.touches||[e]),Array.from(e,(e=>(0,h.A)(e,t)))}var m=n(5478),g=n(6452);function v(e){return"string"==typeof e?new g.LN([document.querySelectorAll(e)],[document.documentElement]):new g.LN([(0,m.A)(e)],g.zr)}var y=n(574),_=n(747),b=n(3683),w=n(6747)},6541:function(e,t,n){"use strict";function r(e){return function(){return this.matches(e)}}function o(e){return function(t){return t.matches(e)}}n.d(t,{A:function(){return r},j:function(){return o}})},7268:function(e,t,n){"use strict";n.d(t,{A:function(){return o}});var r=n(7947);function o(e){var t=e+="",n=t.indexOf(":");return n>=0&&"xmlns"!==(t=e.slice(0,n))&&(e=e.slice(n+1)),r.A.hasOwnProperty(t)?{space:r.A[t],local:e}:e}},7947:function(e,t,n){"use strict";n.d(t,{g:function(){return r}});var r="http://www.w3.org/1999/xhtml";t.A={svg:"http://www.w3.org/2000/svg",xhtml:r,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"}},5970:function(e,t,n){"use strict";n.d(t,{A:function(){return o}});var r=n(2324);function o(e,t){if(e=(0,r.A)(e),void 0===t&&(t=e.currentTarget),t){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var o=n.createSVGPoint();return o.x=e.clientX,o.y=e.clientY,[(o=o.matrixTransform(t.getScreenCTM().inverse())).x,o.y]}if(t.getBoundingClientRect){var i=t.getBoundingClientRect();return[e.clientX-i.left-t.clientLeft,e.clientY-i.top-t.clientTop]}}return[e.pageX,e.pageY]}},183:function(e,t,n){"use strict";n.d(t,{A:function(){return o}});var r=n(6452);function o(e){return"string"==typeof e?new r.LN([[document.querySelector(e)]],[document.documentElement]):new r.LN([[e]],r.zr)}},6452:function(e,t,n){"use strict";n.d(t,{LN:function(){return re},Ay:function(){return ie},zr:function(){return ne}});var r=n(574),o=n(5478),i=n(747),a=n(6541),s=Array.prototype.find;function l(){return this.firstElementChild}var c=Array.prototype.filter;function u(){return Array.from(this.children)}function f(e){return new Array(e.length)}function h(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}function p(e,t,n,r,o,i){for(var a,s=0,l=t.length,c=i.length;st?1:e>=t?0:NaN}h.prototype={constructor:h,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,t){return this._parent.insertBefore(e,t)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};var y=n(7268);function _(e){return function(){this.removeAttribute(e)}}function b(e){return function(){this.removeAttributeNS(e.space,e.local)}}function w(e,t){return function(){this.setAttribute(e,t)}}function k(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function x(e,t){return function(){var n=t.apply(this,arguments);null==n?this.removeAttribute(e):this.setAttribute(e,n)}}function O(e,t){return function(){var n=t.apply(this,arguments);null==n?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}}var S=n(3683);function C(e){return function(){delete this[e]}}function A(e,t){return function(){this[e]=t}}function E(e,t){return function(){var n=t.apply(this,arguments);null==n?delete this[e]:this[e]=n}}function T(e){return e.trim().split(/^|\s+/)}function P(e){return e.classList||new D(e)}function D(e){this._node=e,this._names=T(e.getAttribute("class")||"")}function j(e,t){for(var n=P(e),r=-1,o=t.length;++r=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};var H=n(3663);function Z(){return null}function G(){var e=this.parentNode;e&&e.removeChild(this)}function V(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function X(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function J(e){return function(){var t=this.__on;if(t){for(var n,r=0,o=-1,i=t.length;r=S&&(S=O+1);!(x=w[S])&&++S<_;);k._next=x||null}}return(s=new re(s,o))._enter=l,s._exit=c,s},enter:function(){return new re(this._enter||this._groups.map(f),this._parents)},exit:function(){return new re(this._exit||this._groups.map(f),this._parents)},join:function(e,t,n){var r=this.enter(),o=this,i=this.exit();return"function"==typeof e?(r=e(r))&&(r=r.selection()):r=r.append(e+""),null!=t&&(o=t(o))&&(o=o.selection()),null==n?i.remove():n(i),r&&o?r.merge(o).order():o},merge:function(e){for(var t=e.selection?e.selection():e,n=this._groups,r=t._groups,o=n.length,i=r.length,a=Math.min(o,i),s=new Array(o),l=0;l=0;)(r=o[i])&&(a&&4^r.compareDocumentPosition(a)&&a.parentNode.insertBefore(r,a),a=r);return this},sort:function(e){function t(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}e||(e=v);for(var n=this._groups,r=n.length,o=new Array(r),i=0;i1?this.each((null==t?C:"function"==typeof t?E:A)(e,t)):this.node()[e]},classed:function(e,t){var n=T(e+"");if(arguments.length<2){for(var r=P(this.node()),o=-1,i=n.length;++o=0&&(t=e.slice(n+1),e=e.slice(0,n)),{type:e,name:t}}))}(e+""),a=i.length;if(!(arguments.length<2)){for(s=t?Y:J,r=0;r1?this.each((null==t?o:"function"==typeof t?a:i)(e,t,null==n?"":n)):l(this.node(),e)}function l(e,t){return e.style.getPropertyValue(t)||(0,r.A)(e).getComputedStyle(e,null).getPropertyValue(t)}},574:function(e,t,n){"use strict";function r(){}function o(e){return null==e?r:function(){return this.querySelector(e)}}n.d(t,{A:function(){return o}})},747:function(e,t,n){"use strict";function r(){return[]}function o(e){return null==e?r:function(){return this.querySelectorAll(e)}}n.d(t,{A:function(){return o}})},2324:function(e,t,n){"use strict";function r(e){let t;for(;t=e.sourceEvent;)e=t;return e}n.d(t,{A:function(){return r}})},6747:function(e,t,n){"use strict";function r(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}n.d(t,{A:function(){return r}})},7662:function(e,t,n){"use strict";n.r(t),n.d(t,{active:function(){return ut},interrupt:function(){return N},transition:function(){return ot}});var r,o,i=n(6452),a=n(2996),s=0,l=0,c=0,u=1e3,f=0,h=0,p=0,d="object"==typeof performance&&performance.now?performance:Date,m="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function g(){return h||(m(v),h=d.now()+p)}function v(){h=0}function y(){this._call=this._time=this._next=null}function _(e,t,n){var r=new y;return r.restart(e,t,n),r}function b(){h=(f=d.now())+p,s=l=0;try{!function(){g(),++s;for(var e,t=r;t;)(e=h-t._time)>=0&&t._call.call(null,e),t=t._next;--s}()}finally{s=0,function(){for(var e,t,n=r,i=1/0;n;)n._call?(i>n._time&&(i=n._time),e=n,n=n._next):(t=n._next,n._next=null,n=e?e._next=t:r=t);o=e,k(i)}(),h=0}}function w(){var e=d.now(),t=e-f;t>u&&(p-=t,f=e)}function k(e){s||(l&&(l=clearTimeout(l)),e-h>24?(e<1/0&&(l=setTimeout(b,e-d.now()-p)),c&&(c=clearInterval(c))):(c||(f=d.now(),c=setInterval(w,u)),s=1,m(b)))}function x(e,t,n){var r=new y;return t=null==t?0:+t,r.restart((n=>{r.stop(),e(n+t)}),t,n),r}y.prototype=_.prototype={constructor:y,restart:function(e,t,n){if("function"!=typeof e)throw new TypeError("callback is not a function");n=(null==n?g():+n)+(null==t?0:+t),this._next||o===this||(o?o._next=this:r=this,o=this),this._call=e,this._time=n,k()},stop:function(){this._call&&(this._call=null,this._time=1/0,k())}};var O=(0,a.A)("start","end","cancel","interrupt"),S=[],C=0,A=1,E=2,T=3,P=5,D=6;function j(e,t,n,r,o,i){var a=e.__transition;if(a){if(n in a)return}else e.__transition={};!function(e,t,n){var r,o=e.__transition;function i(l){var c,u,f,h;if(n.state!==A)return s();for(c in o)if((h=o[c]).name===n.name){if(h.state===T)return x(i);4===h.state?(h.state=D,h.timer.stop(),h.on.call("interrupt",e,e.__data__,h.index,h.group),delete o[c]):+cC)throw new Error("too late; already scheduled");return n}function R(e,t){var n=L(e,t);if(n.state>T)throw new Error("too late; already running");return n}function L(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function N(e,t){var n,r,o,i=e.__transition,a=!0;if(i){for(o in t=null==t?null:t+"",i)(n=i[o]).name===t?(r=n.state>E&&n.state180?t+=360:t-e>180&&(e+=360),i.push({i:n.push(o(n)+"rotate(",null,r)-2,x:I(e,t)})):t&&n.push(o(n)+"rotate("+t+r)}(i.rotate,a.rotate,s,l),function(e,t,n,i){e!==t?i.push({i:n.push(o(n)+"skewX(",null,r)-2,x:I(e,t)}):t&&n.push(o(n)+"skewX("+t+r)}(i.skewX,a.skewX,s,l),function(e,t,n,r,i,a){if(e!==n||t!==r){var s=i.push(o(i)+"scale(",null,",",null,")");a.push({i:s-4,x:I(e,n)},{i:s-2,x:I(t,r)})}else 1===n&&1===r||i.push(o(i)+"scale("+n+","+r+")")}(i.scaleX,i.scaleY,a.scaleX,a.scaleY,s,l),i=a=null,function(e){for(var t,n=-1,r=l.length;++n>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===n?me(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===n?me(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=oe.exec(e))?new ve(t[1],t[2],t[3],1):(t=ie.exec(e))?new ve(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=ae.exec(e))?me(t[1],t[2],t[3],t[4]):(t=se.exec(e))?me(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=le.exec(e))?xe(t[1],t[2]/100,t[3]/100,1):(t=ce.exec(e))?xe(t[1],t[2]/100,t[3]/100,t[4]):ue.hasOwnProperty(e)?de(ue[e]):"transparent"===e?new ve(NaN,NaN,NaN,0):null}function de(e){return new ve(e>>16&255,e>>8&255,255&e,1)}function me(e,t,n,r){return r<=0&&(e=t=n=NaN),new ve(e,t,n,r)}function ge(e,t,n,r){return 1===arguments.length?((o=e)instanceof Y||(o=pe(o)),o?new ve((o=o.rgb()).r,o.g,o.b,o.opacity):new ve):new ve(e,t,n,null==r?1:r);var o}function ve(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}function ye(){return`#${ke(this.r)}${ke(this.g)}${ke(this.b)}`}function _e(){const e=be(this.opacity);return`${1===e?"rgb(":"rgba("}${we(this.r)}, ${we(this.g)}, ${we(this.b)}${1===e?")":`, ${e})`}`}function be(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function we(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function ke(e){return((e=we(e))<16?"0":"")+e.toString(16)}function xe(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new Se(e,t,n,r)}function Oe(e){if(e instanceof Se)return new Se(e.h,e.s,e.l,e.opacity);if(e instanceof Y||(e=pe(e)),!e)return new Se;if(e instanceof Se)return e;var t=(e=e.rgb()).r/255,n=e.g/255,r=e.b/255,o=Math.min(t,n,r),i=Math.max(t,n,r),a=NaN,s=i-o,l=(i+o)/2;return s?(a=t===i?(n-r)/s+6*(n0&&l<1?0:a,new Se(a,s,l,e.opacity)}function Se(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}function Ce(e){return(e=(e||0)%360)<0?e+360:e}function Ae(e){return Math.max(0,Math.min(1,e||0))}function Ee(e,t,n){return 255*(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)}function Te(e,t,n,r,o){var i=e*e,a=i*e;return((1-3*e+3*i-a)*t+(4-6*i+3*a)*n+(1+3*e+3*i-3*a)*r+a*o)/6}X(Y,pe,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:fe,formatHex:fe,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return Oe(this).formatHsl()},formatRgb:he,toString:he}),X(ve,ge,J(Y,{brighter(e){return e=null==e?Q:Math.pow(Q,e),new ve(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=null==e?K:Math.pow(K,e),new ve(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new ve(we(this.r),we(this.g),we(this.b),be(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:ye,formatHex:ye,formatHex8:function(){return`#${ke(this.r)}${ke(this.g)}${ke(this.b)}${ke(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:_e,toString:_e})),X(Se,(function(e,t,n,r){return 1===arguments.length?Oe(e):new Se(e,t,n,null==r?1:r)}),J(Y,{brighter(e){return e=null==e?Q:Math.pow(Q,e),new Se(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=null==e?K:Math.pow(K,e),new Se(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+360*(this.h<0),t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,o=2*n-r;return new ve(Ee(e>=240?e-240:e+120,o,r),Ee(e,o,r),Ee(e<120?e+240:e-120,o,r),this.opacity)},clamp(){return new Se(Ce(this.h),Ae(this.s),Ae(this.l),be(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=be(this.opacity);return`${1===e?"hsl(":"hsla("}${Ce(this.h)}, ${100*Ae(this.s)}%, ${100*Ae(this.l)}%${1===e?")":`, ${e})`}`}}));var Pe=e=>()=>e;function De(e,t){var n=t-e;return n?function(e,t){return function(n){return e+n*t}}(e,n):Pe(isNaN(e)?t:e)}var je=function e(t){var n=function(e){return 1==(e=+e)?De:function(t,n){return n-t?function(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}(t,n,e):Pe(isNaN(t)?n:t)}}(t);function r(e,t){var r=n((e=ge(e)).r,(t=ge(t)).r),o=n(e.g,t.g),i=n(e.b,t.b),a=De(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=o(t),e.b=i(t),e.opacity=a(t),e+""}}return r.gamma=e,r}(1);function Me(e){return function(t){var n,r,o=t.length,i=new Array(o),a=new Array(o),s=new Array(o);for(n=0;n=1?(n=1,t-1):Math.floor(n*t),o=e[r],i=e[r+1],a=r>0?e[r-1]:2*o-i,s=ri&&(o=t.slice(i,o),s[a]?s[a]+=o:s[++a]=o),(n=n[0])===(r=r[0])?s[a]?s[a]+=r:s[++a]=r:(s[++a]=null,l.push({i:a,x:I(n,r)})),i=Le.lastIndex;return i=0&&(e=e.slice(0,t)),!e||"start"===e}))}(t)?M:R;return function(){var a=i(this,e),s=a.on;s!==r&&(o=(r=s).copy()).on(t,n),a.on=o}}(n,e,t))},attr:function(e,t){var n=(0,H.A)(e),r="transform"===n?W:Ie;return this.attrTween(e,"function"==typeof t?(n.local?qe:$e)(n,r,V(this,"attr."+e,t)):null==t?(n.local?Fe:ze)(n):(n.local?Ue:Be)(n,r,t))},attrTween:function(e,t){var n="attr."+e;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(null==t)return this.tween(n,null);if("function"!=typeof t)throw new Error;var r=(0,H.A)(e);return this.tween(n,(r.local?We:He)(r,t))},style:function(e,t,n){var r="transform"==(e+="")?q:Ie;return null==t?this.styleTween(e,function(e,t){var n,r,o;return function(){var i=(0,et.j)(this,e),a=(this.style.removeProperty(e),(0,et.j)(this,e));return i===a?null:i===n&&a===r?o:o=t(n=i,r=a)}}(e,r)).on("end.style."+e,tt(e)):"function"==typeof t?this.styleTween(e,function(e,t,n){var r,o,i;return function(){var a=(0,et.j)(this,e),s=n(this),l=s+"";return null==s&&(this.style.removeProperty(e),l=s=(0,et.j)(this,e)),a===l?null:a===r&&l===o?i:(o=l,i=t(r=a,s))}}(e,r,V(this,"style."+e,t))).each(function(e,t){var n,r,o,i,a="style."+t,s="end."+a;return function(){var l=R(this,e),c=l.on,u=null==l.value[a]?i||(i=tt(t)):void 0;c===n&&o===u||(r=(n=c).copy()).on(s,o=u),l.on=r}}(this._id,e)):this.styleTween(e,function(e,t,n){var r,o,i=n+"";return function(){var a=(0,et.j)(this,e);return a===i?null:a===r?o:o=t(r=a,n)}}(e,r,t),n).on("end.style."+e,null)},styleTween:function(e,t,n){var r="style."+(e+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==t)return this.tween(r,null);if("function"!=typeof t)throw new Error;return this.tween(r,function(e,t,n){var r,o;function i(){var i=t.apply(this,arguments);return i!==o&&(r=(o=i)&&function(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}(e,i,n)),r}return i._value=t,i}(e,t,null==n?"":n))},text:function(e){return this.tween("text","function"==typeof e?function(e){return function(){var t=e(this);this.textContent=null==t?"":t}}(V(this,"text",e)):function(e){return function(){this.textContent=e}}(null==e?"":e+""))},textTween:function(e){var t="text";if(arguments.length<1)return(t=this.tween(t))&&t._value;if(null==e)return this.tween(t,null);if("function"!=typeof e)throw new Error;return this.tween(t,function(e){var t,n;function r(){var r=e.apply(this,arguments);return r!==n&&(t=(n=r)&&function(e){return function(t){this.textContent=e.call(this,t)}}(r)),t}return r._value=e,r}(e))},remove:function(){return this.on("end.remove",function(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}(this._id))},tween:function(e,t){var n=this._id;if(e+="",arguments.length<2){for(var r,o=L(this.node(),n).tween,i=0,a=o.length;iA&&n.name===t)return new rt([[e]],ct,t,+r);return null}},9529:function(e,t,n){"use strict";n.r(t),n.d(t,{ZoomTransform:function(){return be},zoom:function(){return De},zoomIdentity:function(){return we},zoomTransform:function(){return ke}});var r=n(2996);function o(){}function i(e){return null==e?o:function(){return this.querySelector(e)}}function a(e){return"object"==typeof e&&"length"in e?e:Array.from(e)}function s(){return[]}function l(e){return function(t){return t.matches(e)}}var c=Array.prototype.find;function u(){return this.firstElementChild}var f=Array.prototype.filter;function h(){return this.children}function p(e){return new Array(e.length)}function d(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}function m(e,t,n,r,o,i){for(var a,s=0,l=t.length,c=i.length;st?1:e>=t?0:NaN}d.prototype={constructor:d,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,t){return this._parent.insertBefore(e,t)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};var _="http://www.w3.org/1999/xhtml",b={svg:"http://www.w3.org/2000/svg",xhtml:_,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function w(e){var t=e+="",n=t.indexOf(":");return n>=0&&"xmlns"!==(t=e.slice(0,n))&&(e=e.slice(n+1)),b.hasOwnProperty(t)?{space:b[t],local:e}:e}function k(e){return function(){this.removeAttribute(e)}}function x(e){return function(){this.removeAttributeNS(e.space,e.local)}}function O(e,t){return function(){this.setAttribute(e,t)}}function S(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function C(e,t){return function(){var n=t.apply(this,arguments);null==n?this.removeAttribute(e):this.setAttribute(e,n)}}function A(e,t){return function(){var n=t.apply(this,arguments);null==n?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}}function E(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function T(e){return function(){this.style.removeProperty(e)}}function P(e,t,n){return function(){this.style.setProperty(e,t,n)}}function D(e,t,n){return function(){var r=t.apply(this,arguments);null==r?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function j(e){return function(){delete this[e]}}function M(e,t){return function(){this[e]=t}}function R(e,t){return function(){var n=t.apply(this,arguments);null==n?delete this[e]:this[e]=n}}function L(e){return e.trim().split(/^|\s+/)}function N(e){return e.classList||new I(e)}function I(e){this._node=e,this._names=L(e.getAttribute("class")||"")}function z(e,t){for(var n=N(e),r=-1,o=t.length;++r=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};var ce=[null];function ue(e,t){this._groups=e,this._parents=t}function fe(e){return"string"==typeof e?new ue([[document.querySelector(e)]],[document.documentElement]):new ue([[e]],ce)}function he(e){e.preventDefault(),e.stopImmediatePropagation()}function pe(e){return((e=Math.exp(e))+1/e)/2}ue.prototype=function(){return new ue([[document.documentElement]],ce)}.prototype={constructor:ue,select:function(e){"function"!=typeof e&&(e=i(e));for(var t=this._groups,n=t.length,r=new Array(n),o=0;o=S&&(S=O+1);!(x=w[S])&&++S<_;);k._next=x||null}}return(l=new ue(l,o))._enter=c,l._exit=u,l},enter:function(){return new ue(this._enter||this._groups.map(p),this._parents)},exit:function(){return new ue(this._exit||this._groups.map(p),this._parents)},join:function(e,t,n){var r=this.enter(),o=this,i=this.exit();return r="function"==typeof e?e(r):r.append(e+""),null!=t&&(o=t(o)),null==n?i.remove():n(i),r&&o?r.merge(o).order():o},merge:function(e){if(!(e instanceof ue))throw new Error("invalid merge");for(var t=this._groups,n=e._groups,r=t.length,o=n.length,i=Math.min(r,o),a=new Array(r),s=0;s=0;)(r=o[i])&&(a&&4^r.compareDocumentPosition(a)&&a.parentNode.insertBefore(r,a),a=r);return this},sort:function(e){function t(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}e||(e=y);for(var n=this._groups,r=n.length,o=new Array(r),i=0;i1?this.each((null==t?T:"function"==typeof t?D:P)(e,t,null==n?"":n)):function(e,t){return e.style.getPropertyValue(t)||E(e).getComputedStyle(e,null).getPropertyValue(t)}(this.node(),e)},property:function(e,t){return arguments.length>1?this.each((null==t?j:"function"==typeof t?R:M)(e,t)):this.node()[e]},classed:function(e,t){var n=L(e+"");if(arguments.length<2){for(var r=N(this.node()),o=-1,i=n.length;++o=0&&(t=e.slice(n+1),e=e.slice(0,n)),{type:e,name:t}}))}(e+""),a=i.length;if(!(arguments.length<2)){for(s=t?ie:oe,r=0;r()=>e;function _e(e,{sourceEvent:t,target:n,transform:r,dispatch:o}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:o}})}function be(e,t,n){this.k=e,this.x=t,this.y=n}be.prototype={constructor:be,scale:function(e){return 1===e?this:new be(this.k*e,this.x,this.y)},translate:function(e,t){return 0===e&0===t?this:new be(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var we=new be(1,0,0);function ke(e){for(;!e.__zoom;)if(!(e=e.parentNode))return we;return e.__zoom}function xe(e){e.stopImmediatePropagation()}function Oe(e){e.preventDefault(),e.stopImmediatePropagation()}function Se(e){return!(e.ctrlKey&&"wheel"!==e.type||e.button)}function Ce(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e).hasAttribute("viewBox")?[[(e=e.viewBox.baseVal).x,e.y],[e.x+e.width,e.y+e.height]]:[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]:[[0,0],[e.clientWidth,e.clientHeight]]}function Ae(){return this.__zoom||we}function Ee(e){return-e.deltaY*(1===e.deltaMode?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function Te(){return navigator.maxTouchPoints||"ontouchstart"in this}function Pe(e,t,n){var r=e.invertX(t[0][0])-n[0][0],o=e.invertX(t[1][0])-n[1][0],i=e.invertY(t[0][1])-n[0][1],a=e.invertY(t[1][1])-n[1][1];return e.translate(o>r?(r+o)/2:Math.min(0,r)||Math.max(0,o),a>i?(i+a)/2:Math.min(0,i)||Math.max(0,a))}function De(){var e,t,n,o=Se,i=Ce,a=Pe,s=Ee,l=Te,c=[0,1/0],u=[[-1/0,-1/0],[1/0,1/0]],f=250,h=de,p=(0,r.A)("start","zoom","end"),d=500,m=150,g=0,v=10;function y(e){e.property("__zoom",Ae).on("wheel.zoom",S,{passive:!1}).on("mousedown.zoom",C).on("dblclick.zoom",A).filter(l).on("touchstart.zoom",E).on("touchmove.zoom",T).on("touchend.zoom touchcancel.zoom",P).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function _(e,t){return(t=Math.max(c[0],Math.min(c[1],t)))===e.k?e:new be(t,e.x,e.y)}function b(e,t,n){var r=t[0]-n[0]*e.k,o=t[1]-n[1]*e.k;return r===e.x&&o===e.y?e:new be(e.k,r,o)}function w(e){return[(+e[0][0]+ +e[1][0])/2,(+e[0][1]+ +e[1][1])/2]}function k(e,t,n,r){e.on("start.zoom",(function(){x(this,arguments).event(r).start()})).on("interrupt.zoom end.zoom",(function(){x(this,arguments).event(r).end()})).tween("zoom",(function(){var e=this,o=arguments,a=x(e,o).event(r),s=i.apply(e,o),l=null==n?w(s):"function"==typeof n?n.apply(e,o):n,c=Math.max(s[1][0]-s[0][0],s[1][1]-s[0][1]),u=e.__zoom,f="function"==typeof t?t.apply(e,o):t,p=h(u.invert(l).concat(c/u.k),f.invert(l).concat(c/f.k));return function(e){if(1===e)e=f;else{var t=p(e),n=c/t[2];e=new be(n,l[0]-t[0]*n,l[1]-t[1]*n)}a.zoom(null,e)}}))}function x(e,t,n){return!n&&e.__zooming||new O(e,t)}function O(e,t){this.that=e,this.args=t,this.active=0,this.sourceEvent=null,this.extent=i.apply(e,t),this.taps=0}function S(e,...t){if(o.apply(this,arguments)){var n=x(this,t).event(e),r=this.__zoom,i=Math.max(c[0],Math.min(c[1],r.k*Math.pow(2,s.apply(this,arguments)))),l=(0,ge.A)(e);if(n.wheel)n.mouse[0][0]===l[0]&&n.mouse[0][1]===l[1]||(n.mouse[1]=r.invert(n.mouse[0]=l)),clearTimeout(n.wheel);else{if(r.k===i)return;n.mouse=[l,r.invert(l)],(0,ve.interrupt)(this),n.start()}Oe(e),n.wheel=setTimeout((function(){n.wheel=null,n.end()}),m),n.zoom("mouse",a(b(_(r,i),n.mouse[0],n.mouse[1]),n.extent,u))}}function C(e,...t){if(!n&&o.apply(this,arguments)){var r=e.currentTarget,i=x(this,t,!0).event(e),s=(0,me.A)(e.view).on("mousemove.zoom",(function(e){if(Oe(e),!i.moved){var t=e.clientX-c,n=e.clientY-f;i.moved=t*t+n*n>g}i.event(e).zoom("mouse",a(b(i.that.__zoom,i.mouse[0]=(0,ge.A)(e,r),i.mouse[1]),i.extent,u))}),!0).on("mouseup.zoom",(function(e){s.on("mousemove.zoom mouseup.zoom",null),function(e,t){var n=e.document.documentElement,r=fe(e).on("dragstart.drag",null);t&&(r.on("click.drag",he,!0),setTimeout((function(){r.on("click.drag",null)}),0)),"onselectstart"in n?r.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}(e.view,i.moved),Oe(e),i.event(e).end()}),!0),l=(0,ge.A)(e,r),c=e.clientX,f=e.clientY;!function(e){var t=e.document.documentElement,n=fe(e).on("dragstart.drag",he,!0);"onselectstart"in t?n.on("selectstart.drag",he,!0):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}(e.view),xe(e),i.mouse=[l,this.__zoom.invert(l)],(0,ve.interrupt)(this),i.start()}}function A(e,...t){if(o.apply(this,arguments)){var n=this.__zoom,r=(0,ge.A)(e.changedTouches?e.changedTouches[0]:e,this),s=n.invert(r),l=n.k*(e.shiftKey?.5:2),c=a(b(_(n,l),r,s),i.apply(this,t),u);Oe(e),f>0?(0,me.A)(this).transition().duration(f).call(k,c,r,e):(0,me.A)(this).call(y.transform,c,r,e)}}function E(n,...r){if(o.apply(this,arguments)){var i,a,s,l,c=n.touches,u=c.length,f=x(this,r,n.changedTouches.length===u).event(n);for(xe(n),a=0;a + + + + + Min Zoom Level (minZoomLevel) | Meridian Web SDK + + + + + + + + + + + + + +

+
+

+ This demo shows the result of specifying a minimum zoom level + (minZoomLevel) of 0.01. By zooming out you see how this + affects the map. The default value is dynamically calculated and matches + the initial map scale (further zooming out is not allowed). +

+
+ + + + + diff --git a/docs/examples/openStream/index.html b/docs/examples/openStream/index.html new file mode 100644 index 00000000..c54ded21 --- /dev/null +++ b/docs/examples/openStream/index.html @@ -0,0 +1,72 @@ + + + + + + + api.openStream(), All Tags on a single Floor | Meridian Web SDK + + + + + + + + + + + + + + +
+

+ This is a standalone socket example. You can see the output in your Dev + Tools console and the code by clicking the "Code" button on the lower + left. +

+
+ + + + + diff --git a/docs/examples/openStreamLocation/index.html b/docs/examples/openStreamLocation/index.html new file mode 100644 index 00000000..45127c3f --- /dev/null +++ b/docs/examples/openStreamLocation/index.html @@ -0,0 +1,69 @@ + + + + + + api.openStream(), All Tags at a Location | Meridian Web SDK + + + + + + + + + + + + + +
+

+ This is a standalone socket example. You can see the output in your Dev + Tools console and the code by clicking the "Code" button on the lower + left. +

+
+ + + + + diff --git a/docs/examples/openStreamTag/index.html b/docs/examples/openStreamTag/index.html new file mode 100644 index 00000000..8f2dfed4 --- /dev/null +++ b/docs/examples/openStreamTag/index.html @@ -0,0 +1,66 @@ + + + + + + api.openStream(), Single Tag example | Meridian Web SDK + + + + + + + + + + + + + +
+

+ This is a standalone socket example. You can see the output in your Dev + Tools console and the code by clicking the "Code" button on the lower + left. +

+
+ + + + + diff --git a/docs/examples/openStreamTagLabel/index.html b/docs/examples/openStreamTagLabel/index.html new file mode 100644 index 00000000..9c8d394a --- /dev/null +++ b/docs/examples/openStreamTagLabel/index.html @@ -0,0 +1,66 @@ + + + + + + api.openStream(), Tag label | Meridian Web SDK + + + + + + + + + + + + + +
+

+ This is a standalone socket example. You can see the output in your Dev + Tools console and the code by clicking the "Code" button on the lower + left. +

+
+ + + + + diff --git a/docs/examples/openStreamZone/index.html b/docs/examples/openStreamZone/index.html new file mode 100644 index 00000000..275ec239 --- /dev/null +++ b/docs/examples/openStreamZone/index.html @@ -0,0 +1,66 @@ + + + + + + api.openStream(), Tag Zone example | Meridian Web SDK + + + + + + + + + + + + + +
+

+ This is a standalone socket example. You can see the output in your Dev + Tools console and the code by clicking the "Code" button on the lower + left. +

+
+ + + + + diff --git a/docs/examples/option-toggles/index.html b/docs/examples/option-toggles/index.html new file mode 100644 index 00000000..ae73f970 --- /dev/null +++ b/docs/examples/option-toggles/index.html @@ -0,0 +1,320 @@ + + + + + + Option Toggles | Meridian Web SDK + + + + + + + + + + + + + +
+
+ +
+
+ + + + +
+
+ + + + +
+
+ + + + +
+
+ + + + + + +
+
+ +
+ + + + + diff --git a/docs/examples/option-toggles/style.css b/docs/examples/option-toggles/style.css new file mode 100644 index 00000000..afd3e7af --- /dev/null +++ b/docs/examples/option-toggles/style.css @@ -0,0 +1,78 @@ +body { + font-family: sans-serif; +} + +.container { + width: 900px; + margin: 0 auto; +} + +.map { + position: fixed; + top: 0; + left: 0; + width: calc(100vw - 400px); + height: 100vh; + border: 0; + max-width: 100%; +} + +.controls-container { + box-sizing: border-box; + box-shadow: -1px 0 0 0 rgba(0, 0, 0, 0.1), 0 0 4px rgba(0, 0, 0, 0.2); + background: hsl(210, 30%, 92%); + position: fixed; + top: 0; + right: 0; + width: 400px; + height: 100vh; + padding: 20px; + overflow-y: auto; +} + +.controls { + margin-bottom: 20px; + background: hsl(210, 50%, 98%); + color: hsl(210, 80%, 30%); + border: 1px solid hsl(210, 30%, 80%); + border-radius: 4px; + overflow: hidden; +} + +.controls__item { + display: flex; + padding: 16px 8px; + user-select: none; + align-items: baseline; +} + +.controls__item > span { + margin-left: 10px; +} + +.controls__item + .controls__item { + border-top: 1px solid hsl(210, 30%, 90%); +} + +.controls__item:hover { + background: hsl(210, 50%, 95%); +} + +@media only screen and (max-width: 900px) { + .container { + max-width: 340px; + width: auto; + margin: 0 auto; + } + .controls-container { + float: none; + margin: 10px 0 0 0; + width: 100%; + max-width: auto; + } + + .map { + float: none; + width: 100%; + } +} diff --git a/docs/examples/overlay-area/index.html b/docs/examples/overlay-area/index.html new file mode 100644 index 00000000..4b37eace --- /dev/null +++ b/docs/examples/overlay-area/index.html @@ -0,0 +1,73 @@ + + + + + + Overlay Area | Meridian Web SDK + + + + + + + + + + + + + +
+ + + + + diff --git a/docs/examples/overlay-path-image-circle/car.png b/docs/examples/overlay-path-image-circle/car.png new file mode 100644 index 0000000000000000000000000000000000000000..4c0c8d8bf6937db32a511feed72854c8f66d7e1d GIT binary patch literal 1109 zcmV-b1giUqP)Px(4@pEpRA@u(mrtlwRTRd5LV`hw4T=nMP-p`oA)ydU1Pu!m3=C{gQUi^m6cja3 zR2--!6d^*1ikc)S8vTJH|0LC*20=jvib@0~IuKGSutEG}ZP@R;bG`SSedYP!oXNZQ z-Lv;z-?zTC_P0hc!kZ%^&yby@lKN4E?^IE zrb&Ht17PqTxDuEdtRDk50B5rU1-LyJUJiWOB^WdC3a|*cKgf6o_^ku@j@#V~fU)~&`zXLVHq^P9 zdOGy1wDJzriNRDKX7Ikqgf(Fcz7lQtzxZ4y%RvK;tXq&XfEOd6CekcjW3ayj34Z=L z8pNQkm1m&JdT9{-USHd_5`er|mBH=$2x36jN&qGU?+&A6hC-N<`aJHVGXju(d;H#^ z>@v*n3c`-KOaLQ^{hYT`wp{_(ZAKFN34~erSO5kuh`PsqoO_YQRA6Vg%aXv;T5nhlqH?yWyat>I0+UhHs^rfNf(4*qdp{(R4(r-@}nX>Q()?CT% zQ-G35oBI2-*whrKd&3%0W=$WPf@f)|Z}j!p$XfG$`X+P4X2uK5?sGBf@@$48R)2!pUAJLF zB!Z9(TXf#{J<9_B0$5eIcejz!%`Bv6qbAg!Qc5f}jJI}KI!h4B#~QQ~-t??)0Mbcj z#EB`NgZmkLb+4Y!>lMJQ47O + + + + + + Overlay SVG path, image and circle elements | Meridian Web SDK + + + + + + + + + + + + + + +
+ + + + + diff --git a/docs/examples/overlay-polygon/index.html b/docs/examples/overlay-polygon/index.html new file mode 100644 index 00000000..6ff43b09 --- /dev/null +++ b/docs/examples/overlay-polygon/index.html @@ -0,0 +1,120 @@ + + + + + + Overlay Polygon | Meridian Web SDK + + + + + + + + + + + + + +
+ + + + + diff --git a/docs/examples/overlay-polyline/index.html b/docs/examples/overlay-polyline/index.html new file mode 100644 index 00000000..6df2e8cc --- /dev/null +++ b/docs/examples/overlay-polyline/index.html @@ -0,0 +1,76 @@ + + + + + + Overlay Polyline | Meridian Web SDK + + + + + + + + + + + + + +
+ + + + + diff --git a/docs/examples/placemark-customization/heart.png b/docs/examples/placemark-customization/heart.png new file mode 100644 index 0000000000000000000000000000000000000000..ac52fb1564b583d86b38ded3e24da0040fd8554c GIT binary patch literal 208 zcmV;>05AWEP)6v8wRg~Heyj6f-@fl(-pg}?AC!M)G2h2g*cOaQvi{s0eJa7Y=Ozjnz00000< KMNUMnLSTYUSyYJt literal 0 HcmV?d00001 diff --git a/docs/examples/placemark-customization/index.html b/docs/examples/placemark-customization/index.html new file mode 100644 index 00000000..1797f767 --- /dev/null +++ b/docs/examples/placemark-customization/index.html @@ -0,0 +1,140 @@ + + + + + + Placemark Customization | Meridian Web SDK + + + + + + + + + + + + + +
+
+
+ + Styling by ID:
+

+ + .meridian-placemark-icon[data-meridian-placemark-id="5750085036015616"] { + + width: 50px;
+ height: 50px;
+ border-color: red;
+ background-color: red;
+ background-image: url("./heart.png");
+ animation: pulsing 5s infinite;
+
+ } +
+

+
+ + Styling by Category:
+

+ + body .meridian-placemark-category-dolbywidescreen + + border-color: green;
+ background-color: green;
+ width: 50px;
+ height: 50px;
+
+ } +
+

+
+ +

Note: Categories with special characters need to be targeted accordingly. Spaces and most special characters (with the exception of underscores and dashes) are removed. Capitalized letters are also turned lower case.

+

Example: For the placemark category “Dolby/Widescreen”, target "meridian-placemark-category-dolbywidescreen".

+
+
+
+ + + + + diff --git a/docs/examples/placemark-label-zoom-level/index.html b/docs/examples/placemark-label-zoom-level/index.html new file mode 100644 index 00000000..abfc2c39 --- /dev/null +++ b/docs/examples/placemark-label-zoom-level/index.html @@ -0,0 +1,58 @@ + + + + + + Placemark Label Zoom Level | Meridian Web SDK + + + + + + + + + + + + + + +
+
+
+ This example shows the result of setting the Placemark Label Zoom Level + to 0.9. +
+
+ + + + diff --git a/docs/examples/restricted-pan-zoom/index.html b/docs/examples/restricted-pan-zoom/index.html new file mode 100644 index 00000000..808a2f1c --- /dev/null +++ b/docs/examples/restricted-pan-zoom/index.html @@ -0,0 +1,177 @@ + + + + + + Restricted Pan Zoom | Meridian Web SDK + + + + + + + + + + + + + +

Keep Scrolling

+

+ If you keep scrolling around this long page, you might notice that you + accidentally scroll the map between paragraphs on desktop, or pan the map + on mobile. +

+

+ Lorem ipsum dolor sit amet consectetur adipisicing elit. Architecto ullam + vero quos modi repellendus quasi aperiam libero praesentium ipsum officiis + eaque, maiores, iure asperiores quae atque veritatis eveniet fugit harum! +

+

+ Lorem ipsum dolor sit amet consectetur adipisicing elit. Architecto ullam + vero quos modi repellendus quasi aperiam libero praesentium ipsum officiis + eaque, maiores, iure asperiores quae atque veritatis eveniet fugit harum! +

+

+ Lorem ipsum dolor sit amet consectetur adipisicing elit. Architecto ullam + vero quos modi repellendus quasi aperiam libero praesentium ipsum officiis + eaque, maiores, iure asperiores quae atque veritatis eveniet fugit harum! +

+
+

+ Lorem ipsum dolor sit amet consectetur adipisicing elit. Architecto ullam + vero quos modi repellendus quasi aperiam libero praesentium ipsum officiis + eaque, maiores, iure asperiores quae atque veritatis eveniet fugit harum! +

+ +

About The Next Map

+

+ The next map has + restrictedPanZoom on it, which prevents desktop zooming + unless holding Shift, as well as preventing mobile/touch + panning unless using two fingers. See + createMap + for more information. +

+

+ Lorem ipsum dolor sit amet consectetur adipisicing elit. Architecto ullam + vero quos modi repellendus quasi aperiam libero praesentium ipsum officiis + eaque, maiores, iure asperiores quae atque veritatis eveniet fugit harum! +

+

+ Lorem ipsum dolor sit amet consectetur adipisicing elit. Architecto ullam + vero quos modi repellendus quasi aperiam libero praesentium ipsum officiis + eaque, maiores, iure asperiores quae atque veritatis eveniet fugit harum! +

+

+ Lorem ipsum dolor sit amet consectetur adipisicing elit. Architecto ullam + vero quos modi repellendus quasi aperiam libero praesentium ipsum officiis + eaque, maiores, iure asperiores quae atque veritatis eveniet fugit harum! +

+

+ Lorem ipsum dolor sit amet consectetur adipisicing elit. Architecto ullam + vero quos modi repellendus quasi aperiam libero praesentium ipsum officiis + eaque, maiores, iure asperiores quae atque veritatis eveniet fugit harum! +

+
+

+ Lorem ipsum dolor sit amet consectetur adipisicing elit. Architecto ullam + vero quos modi repellendus quasi aperiam libero praesentium ipsum officiis + eaque, maiores, iure asperiores quae atque veritatis eveniet fugit harum! +

+

+ Lorem ipsum dolor sit amet consectetur adipisicing elit. Architecto ullam + vero quos modi repellendus quasi aperiam libero praesentium ipsum officiis + eaque, maiores, iure asperiores quae atque veritatis eveniet fugit harum! +

+ +

+ Lorem ipsum dolor sit amet consectetur adipisicing elit. Architecto ullam + vero quos modi repellendus quasi aperiam libero praesentium ipsum officiis + eaque, maiores, iure asperiores quae atque veritatis eveniet fugit harum! +

+

+ Lorem ipsum dolor sit amet consectetur adipisicing elit. Architecto ullam + vero quos modi repellendus quasi aperiam libero praesentium ipsum officiis + eaque, maiores, iure asperiores quae atque veritatis eveniet fugit harum! +

+ + + + + diff --git a/docs/examples/search-control/index.html b/docs/examples/search-control/index.html new file mode 100644 index 00000000..5f71a614 --- /dev/null +++ b/docs/examples/search-control/index.html @@ -0,0 +1,63 @@ + + + + + + Search Control | Meridian Web SDK + + + + + + + + + + + + + +
+
+
+ Pass "showSearchControl: false" to the createMap function or use the + "update" method to hide the search control. +
+
+ + + + diff --git a/docs/examples/shared.css b/docs/examples/shared.css new file mode 100644 index 00000000..ee9aa6e4 --- /dev/null +++ b/docs/examples/shared.css @@ -0,0 +1,197 @@ +body { + font-family: sans-serif; +} + +.map { + border: 1px solid #ccc; + margin: auto; + max-width: 700px; +} + +.flex { + display: flex; +} + +.flex-column { + flex-direction: column; +} + +.flex-center { + align-items: center; + justify-content: center; +} + +.flex-auto { + flex: 1 1 auto; +} + +.flex-0 { + flex: 0 0 0; +} + +.dialog { + position: fixed; + top: 0; + bottom: 0; + left: 0; + right: 0; + background: #222; + color: #eee; + z-index: 2; + overflow-y: auto; + font-size: 16px; + font-family: sans-serif; +} + +.dialog .heading { + padding-right: 16px; + font-size: 24px; + font-weight: bold; +} + +.dialog .section { + padding: 32px 16px; +} + +.dialog .top-bar { + z-index: 1; + box-shadow: 0 0 32px black; +} + +.dialog pre { + margin: 0; + font-family: Input, Menlo, Consolas, monospace; + overflow: auto; +} + +.dialog .close { + padding: 8px 16px; + box-sizing: border-box; + font-family: inherit; + font-size: inherit; + color: inherit; + border-radius: 4px; + background: #ccc; + border: 0; + color: #000; + width: 100%; + font-weight: bold; +} + +.dialog .close:hover { + background: #fff; +} + +.dialog .close:focus { + box-shadow: 0 0 0 2px black, 0 0 0 4px white; + background: #eee; + outline: 0; +} + +.back { + font-size: 16px; + position: fixed; + display: flex; + box-shadow: 0 0 3px rgba(0, 0, 0, 0.25); + text-decoration: none; + border-radius: 6px; + bottom: 15px; + left: 15px; + background: white; + color: hsl(240, 100%, 60%); + font-family: sans-serif; + z-index: 1; + overflow: hidden; +} + +.back > a { + text-decoration: none; + color: inherit; +} + +.back > button { + flex: 1 1 auto; + padding: 6px 12px; + margin: 0; + border: 0; + border-radius: 0; + color: inherit; + background: transparent; + font-family: inherit; + font-size: inherit; +} + +.back > button:hover { + background: #f8f8f8; +} + +.back > button:active { + background: #f0f0f0; +} + +.back > button:focus { + outline: 0; +} + +.back > .separator { + border-left: 1px solid rgba(0, 0, 0, 0.1); +} + +.button { + --color: hsl(240, 80%, 60%); + background: var(--color); + color: white; + border: 0; + font: inherit; + padding: 0.5rem 1rem; + border-radius: 0.25rem; + text-shadow: 0 1px 1px black; + border-bottom: 2px solid rgba(0, 0, 0, 0.4); +} + +.button:hover { + background-image: linear-gradient( + to bottom, + rgba(0, 0, 0, 0.1), + rgba(0, 0, 0, 0.1) + ); +} + +.button:active { + transform: scale(0.98); +} + +.button-red { + --color: hsl(0, 100%, 40%); +} + +.gap { + --size: 1rem; + width: 1rem; + height: 1rem; + display: block; +} + +select { + font-size: 18px; +} + +body { + font-family: sans-serif; + background: #fdfdfd; + color: #222; +} + +.container { + width: 700px; + margin: 0 auto; +} + +.description { + margin-bottom: 10px; + margin-top: 20px; + background: hsl(210, 50%, 98%); + color: hsl(210, 80%, 30%); + border: 1px solid hsl(210, 30%, 80%); + padding: 15px; +} diff --git a/docs/examples/shared.js b/docs/examples/shared.js new file mode 100644 index 00000000..3eb85e0f --- /dev/null +++ b/docs/examples/shared.js @@ -0,0 +1,76 @@ +/* global $ */ +/* global hljs */ +/* global MeridianSDK */ + +import { mockAPI } from "./cypress/utils/mock-api.js"; + +if (MeridianSDK) { + if (document.documentElement.dataset.fakeApi !== "false") { + // Enable live updates for demo usage + mockAPI._live = true; + // This uses a regular function, not an arrow function, so that we can safely + // use `new` with it. + MeridianSDK.API = function () { + return mockAPI; + }; + } +} else { + // eslint-disable-next-line no-console + console.error("Failed to monkey patch fakeAPI into MeridianSDK"); +} + +// Take code from a script tag and strip bad whitespace +function trimIndent(str) { + const match = str.match(/^[ \t]*(?=\S)/gm); + if (!match) { + return str; + } + const lengths = match.map((x) => x.length); + const indent = Math.min(...lengths); + const re = new RegExp(`^[ \\t]{${indent}}`, "gm"); + const s = indent > 0 ? str.replace(re, "") : str; + return s.trim(); +} + +// Show the code dialog +function showTheCode() { + $("#meridian-map").hide(); + const dialog = $("
").addClass("dialog flex flex-column"); + const heading = $("
") + .addClass("flex flex-center section top-bar") + .appendTo(dialog); + $("
") + .text(`Meridian SDK ${MeridianSDK.version}`) + .addClass("heading flex-auto") + .appendTo(heading); + $(" +

+ +
+

zoomToPoint

+

Pan to x/y coordinate and scale to a given zoom factor.

+

+ meridianMap.zoomToPoint({x: 6825.5830078125, y: + 478.98833499103785, scale: 1}) + +

+
+
+

centerMap

+

Center the map while retaining the current scale.

+

+ meridianMap.centerMap() + +

+
+
+
+ + + + diff --git a/docs/examples/zoom-to-point/index.html b/docs/examples/zoom-to-point/index.html new file mode 100644 index 00000000..152e2a62 --- /dev/null +++ b/docs/examples/zoom-to-point/index.html @@ -0,0 +1,106 @@ + + + + + + Zoom to point | Meridian Web SDK + + + + + + + + + + + + + + +
+
+
+
+

zoomToPoint

+

Pan to x/y coordinate and scale to a given zoom factor.

+

+ meridianMap.zoomToPoint({x: 6825.5830078125, y: + 478.98833499103785, scale: 1}) + +

+
+
+

centerMap

+

Center the map while retaining the current scale.

+

+ meridianMap.centerMap() + +

+
+
+

zoomToDefault

+

+ Set zoom to the default level and pan to the default position. +

+

+ meridianMap.zoomToDefault() + +

+
+
+
+ + + + diff --git a/docs/functions/createAPI.html b/docs/functions/createAPI.html new file mode 100644 index 00000000..39052c33 --- /dev/null +++ b/docs/functions/createAPI.html @@ -0,0 +1,3 @@ +createAPI | @meridian/web-sdk

Function createAPI

  • Parameters

    Returns API

    Deprecated

    Deprecated function used to create an instance of API. Instead of +createAPI(options) you should now use new API(options).

    +
\ No newline at end of file diff --git a/docs/functions/createMap.html b/docs/functions/createMap.html new file mode 100644 index 00000000..3ff059bd --- /dev/null +++ b/docs/functions/createMap.html @@ -0,0 +1,6 @@ +createMap | @meridian/web-sdk

Function createMap

  • Creates and returns a map object mounted at the given HTML element. If you +are using the tags.filter or onTagClick or onTagsUpdate functions, refer to +https://tags.meridianapps.com/docs/track for the schema.

    +
    const api = new MeridianSDK.API({ token: "<TOKEN>" });
    const map = MeridianSDK.createMap(
    document.querySelector("#map-container"),
    {
    api: api,
    locationID: "<location ID>",
    floorID: "<floor ID>",
    height: "500px"
    }
    ); +
    +

    Parameters

    Returns MeridianMap

\ No newline at end of file diff --git a/docs/functions/init.html b/docs/functions/init.html new file mode 100644 index 00000000..576c5528 --- /dev/null +++ b/docs/functions/init.html @@ -0,0 +1,6 @@ +init | @meridian/web-sdk
  • Initializes a share MeridianSDK API instance for use across all calls to +createMap. You can either call this function or pass your API +instance directly to createMap.

    +
    const api = new MeridianSDK.API({
    token: "<TOKEN GOES HERE>"
    });

    MeridianSDK.init({ api: api }); +
    +

    Parameters

    • options: {
          api: API;
      }

    Returns void

\ No newline at end of file diff --git a/docs/functions/latLngToMapPoint.html b/docs/functions/latLngToMapPoint.html new file mode 100644 index 00000000..3ea30164 --- /dev/null +++ b/docs/functions/latLngToMapPoint.html @@ -0,0 +1,5 @@ +latLngToMapPoint | @meridian/web-sdk

Function latLngToMapPoint

  • Convert from latitude and longitude to a point on a referenced map. Uses equirectangular projection.

    +

    The basic formula to achieve this is as follows:

    +

    x = radius(longitude - central meridian of map) * cos(standard parallels with scale)

    +

    y = radius(latitude - central parallel of map)

    +

    Parameters

    • floorData: Partial<FloorData>
    • __namedParameters: {
          lat: number;
          lng: number;
      }
      • lat: number
      • lng: number

    Returns {
        x: number;
        y: number;
    }

    • x: number
    • y: number
\ No newline at end of file diff --git a/docs/functions/mapPointToLatLng.html b/docs/functions/mapPointToLatLng.html new file mode 100644 index 00000000..3132df1c --- /dev/null +++ b/docs/functions/mapPointToLatLng.html @@ -0,0 +1,5 @@ +mapPointToLatLng | @meridian/web-sdk

Function mapPointToLatLng

  • Convert from a point on a referenced map to latitude and longitude. Uses mercator projection.

    +

    The basic formula to achieve this is as follows:

    +

    latitute = 2(tan^-1)[exp(y / radius)] +longitude = central parallel of map + (x / radius) - PI / 2

    +

    Parameters

    • floorData: Partial<FloorData>
    • __namedParameters: {
          x: number;
          y: number;
      }
      • x: number
      • y: number

    Returns {
        lat: number;
        lng: number;
    }

    • lat: number
    • lng: number
\ No newline at end of file diff --git a/docs/functions/placemarkIconURL.html b/docs/functions/placemarkIconURL.html new file mode 100644 index 00000000..38e60f10 --- /dev/null +++ b/docs/functions/placemarkIconURL.html @@ -0,0 +1,4 @@ +placemarkIconURL | @meridian/web-sdk

Function placemarkIconURL

  • Takes a placemark type and returns a URL to a white SVG icon representing it

    +

    Parameters

    • type: string

    Returns string

    Example

    function onPlacemarkClick(placemark) {
    const url = MeridianSDK.placemarkIconURL(placemark.type);
    console.log(url);
    } +
    +
\ No newline at end of file diff --git a/docs/functions/pointsFromArea.html b/docs/functions/pointsFromArea.html new file mode 100644 index 00000000..2c7b63d5 --- /dev/null +++ b/docs/functions/pointsFromArea.html @@ -0,0 +1,2 @@ +pointsFromArea | @meridian/web-sdk

Function pointsFromArea

  • Returns an array of points (numbers) based on a placemarks's area property

    +

    Parameters

    • area: undefined | null | string

    Returns number[]

\ No newline at end of file diff --git a/docs/functions/restrictedPanZoom.html b/docs/functions/restrictedPanZoom.html new file mode 100644 index 00000000..b069c173 --- /dev/null +++ b/docs/functions/restrictedPanZoom.html @@ -0,0 +1,9 @@ +restrictedPanZoom | @meridian/web-sdk

Function restrictedPanZoom

  • This function can be used to restrict pan/zoom events unless the user is +holding down a modifier key (Control, Alt, Command, Shift) on their keyboard. +This prevents accidental map interactions in pages with lots of scrolling +content.

    +

    Pass this to shouldMapPanZoom in createMap if you would like the user +to use two fingers or hold down a modifier key in order to zoom the map.

    +
    const api = new MeridianSDK.API({ token: "<TOKEN>" });

    const map = MeridianSDK.createMap(
    document.querySelector("#map-container"),
    {
    api,
    locationID: "<location ID>",
    floorID: "<floor ID>",
    height: "500px",
    shouldMapPanZoom: MeridianSDK.restrictedPanZoom,
    }
    ) +
    +

    Parameters

    • event: any

    Returns boolean

\ No newline at end of file diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 00000000..66a6e20f --- /dev/null +++ b/docs/index.html @@ -0,0 +1,51 @@ +@meridian/web-sdk

@meridian/web-sdk

The Meridian Web SDK officially supports evergreen versions of Firefox, Google Chrome, Microsoft Edge, and Safari browsers.

+

Overview

The Meridian Web SDK is a JavaScript library you can use to add dynamically updating and interactive Meridian maps to your site.

+

Installation

Install from npm:

+
npm install @meridian/web-sdk
+
+

And then for CommonJS imports use:

+
const MeridianSDK = require("@meridian/web-sdk");
+
+

Or for ES modules imports:

+
import * as MeridianSDK from "@meridian/web-sdk";
+
+

If you would like a standalone JS file with all dependencies bundled that you can use from a script tag, download the latest version and include it:

+
<script src="meridian-sdk.js"></script>
+
+

Which will make a global object called MeridianSDK.

+

Get Started

Before you can use the Meridian Web SDK, you'll need to obtain a read-only API token from the Meridian Editor.

+

You can find the location and floor IDs for a specific map by opening that map in the Meridian Editor. The URL for the floor page contains the IDs you'll need:

+

https://edit.meridianapps.com/w/location/Location-ID/floor/Floor-ID

+

Examples

You can check out our examples to see example applications of the Web SDK.

+

Web SDK Theming

Meridian Web SDK theming is done with Cascading Style Sheets (CSS).

+

Meridian external hook CSS classes are prefixed with meridian-.

+

Styles prefixed with meridian--private-- are minified internal styles that you shouldn't use.

+

Given the complexity of CSS style interactions, Meridian can't guarantee style customizations won't be affected between minor version upgrades, but we'll make an effort to keep the external CSS hooks available for any necessary minor style tweaks.

+

Target All Maps

To target all Meridian maps on one page, you'll want to use something like:

+
body .meridian-map-container {
border: 1px solid black;
} +
+

Target a Specific Map

To target a specific map, you can put a CSS class on the container element and target that:

+
.my-map .meridian-map-container {
border: 2px solid gray;
} +
+

Alter Backgrounds and Borders

To alter background styles, use:

+
.meridian-map-background
+
+

To alter border styles, use:

+
.meridian-map-container
+
+

Target Map Buttons

You can also style the top level and floor name buttons.

+

Style Placemarks

You can style placemarks by placemark type using:

+
.meridian-placemark-type-{PLACEMARK-TYPE-NAME}
+
+

Style Tags

You can style Tags with specific labels using:

+
.meridian-tag-label-{LABEL-NAME}
+
+

Requirements for Using d3

If you have multiple packages that use d3 on your site, you may need to utilize webpack resolve.

+

for example, to use d3-selection in your project, you will need to import in the following way:

+
import { selection } from "d3-selection";
+
+

and write the following in your webpack.config;

+
module.exports = {
//...
resolve: {
alias: {
"d3-selection": require.resolve("d3-selection"),
},
},
}; +
+

Please refer to the docs for webpack require.resolve

+
\ No newline at end of file diff --git a/docs/interfaces/APIOptions.html b/docs/interfaces/APIOptions.html new file mode 100644 index 00000000..793fde64 --- /dev/null +++ b/docs/interfaces/APIOptions.html @@ -0,0 +1,7 @@ +APIOptions | @meridian/web-sdk

Interface APIOptions

Options passed to createAPI.

+
const api = new MeridianSDK.API({
environment: "production", // or "eu"
token: "<token>",
language: "<languageCode>" // optional, defaults to "en"
}); +
+
interface APIOptions {
    environment?: EnvOptions;
    language?: "no" | "en" | "ar" | "ca" | "es" | "cs" | "de" | "fr" | "it" | "iw" | "ja" | "ko" | "nl" | "pt" | "ru" | "sv" | "uk" | "vi" | "zh-cn" | "zh-tw";
    token: string;
}

Properties

environment?: EnvOptions
language?: "no" | "en" | "ar" | "ca" | "es" | "cs" | "de" | "fr" | "it" | "iw" | "ja" | "ko" | "nl" | "pt" | "ru" | "sv" | "uk" | "vi" | "zh-cn" | "zh-tw"
token: string
\ No newline at end of file diff --git a/docs/interfaces/CreateMapOptions.html b/docs/interfaces/CreateMapOptions.html new file mode 100644 index 00000000..7ceb9645 --- /dev/null +++ b/docs/interfaces/CreateMapOptions.html @@ -0,0 +1,70 @@ +CreateMapOptions | @meridian/web-sdk

Interface CreateMapOptions

Options passed to createMap.

+
interface CreateMapOptions {
    annotations?: CustomAnnotationPoint[];
    api?: API;
    floorID: string;
    floorsControlSortDescending?: boolean;
    height?: string;
    loadPlacemarks?: boolean;
    loadTags?: boolean;
    locationID: string;
    maxZoomLevel?: number;
    minZoomLevel?: number;
    onDestroy?: (() => void);
    onFloorChange?: ((floor) => void);
    onFloorsUpdate?: ((floors) => void);
    onLoadingStateChange?: ((isLoading) => void);
    onMapClick?: (() => void);
    onPlacemarkClick?: ((placemark, event) => void);
    onPlacemarksUpdate?: ((placemarks) => void);
    onTagClick?: ((tag, event) => void);
    onTagsUpdate?: ((tags) => void);
    overlays?: CustomOverlay[];
    placemarks?: CreateMapPlacemarksOptions;
    shouldMapPanZoom?: ((event) => boolean);
    showFloorsControl?: boolean;
    showSearchControl?: boolean;
    tags?: CreateMapTagsOptions;
    width?: string;
}

Properties

annotations?: CustomAnnotationPoint[]

An array of custom annotations to draw on the map.

+
api?: API

An API instance. Defaults to the one passed to init.

+
floorID: string

Meridian floor ID.

+
floorsControlSortDescending?: boolean

Sort the floors in the Floor Switcher UI descending in order. +Defaults to false (ascending in order).

+
height?: string

Height of the map (e.g. "100%" or "200px")

+
loadPlacemarks?: boolean

Set to false to disable loading placemarks. Defaults to true.

+
loadTags?: boolean

Set to false to disable loading tags. Defaults to true. +This is required for locations without a TAGS SKU license

+
locationID: string

Meridian location ID.

+
maxZoomLevel?: number

Maximum zoom level. Default value is 8 which equals eight times the +actual scale of the map.

+
minZoomLevel?: number

Minimum zoom level. Default value is dynamically calculated and matches +the initial map scale (further zooming out is not allowed

+
onDestroy?: (() => void)

Called when the map has been destroyed, either by manually calling +map.destroy() or by being automatically destroyed when its DOM is tampered +with.

+

Type declaration

    • (): void
    • Returns void

onFloorChange?: ((floor) => void)

Called after the floor is changed.

+

Type declaration

    • (floor): void
    • Parameters

      Returns void

onFloorsUpdate?: ((floors) => void)

Called after the floors list is updated.

+

Type declaration

    • (floors): void
    • Parameters

      Returns void

onLoadingStateChange?: ((isLoading) => void)

Called when the loading state changes.

+

Type declaration

    • (isLoading): void
    • Parameters

      • isLoading: boolean

      Returns void

onMapClick?: (() => void)

Called when the user clicks on the map. This is mostly useful as a way of +knowing that the user has potentially unfocused a tag or placemark. This is +NOT called when the user pans or zooms the map.

+

Type declaration

    • (): void
    • Returns void

onPlacemarkClick?: ((placemark, event) => void)

Called when a placemark is clicked. Use event.preventDefault() to prevent +the default dialog from appearing.

+

Type declaration

onPlacemarksUpdate?: ((placemarks) => void)

Called when tags on the current floor are updated. allPlacemarks is every +placemark on the current floor, even ones not shown on the map. +filteredPlacemarks is only the tags shown on the map (i.e. it respects +showHiddenPlacemarks and filter).

+

Type declaration

onTagClick?: ((tag, event) => void)

Called when a tag is clicked. Use event.preventDefault() to prevent the +default dialog from appearing.

+

Type declaration

onTagsUpdate?: ((tags) => void)

Called when tags on the current floor are updated. allTags is every tag +on the current floor, even ones not shown on the map. filteredTags is +only the tags shown on the map (i.e. it respects showControlTags and +filter).

+

Type declaration

    • (tags): void
    • Parameters

      Returns void

overlays?: CustomOverlay[]

An array of custom overlays to draw on the map.

+

Options related to placemarks.

+
shouldMapPanZoom?: ((event) => boolean)

Type declaration

    • (event): boolean
    • Parameters

      • event: any

      Returns boolean

showFloorsControl?: boolean

Should we show the floor switcher UI control? Defaults to true.

+
showSearchControl?: boolean

Should we show the Search UI control? Defaults to true.

+

Options related to tags.

+
width?: string

Width of the map (e.g. "100%" or "300px").

+
\ No newline at end of file diff --git a/docs/interfaces/CreateMapPlacemarksOptions.html b/docs/interfaces/CreateMapPlacemarksOptions.html new file mode 100644 index 00000000..2933e4fc --- /dev/null +++ b/docs/interfaces/CreateMapPlacemarksOptions.html @@ -0,0 +1,18 @@ +CreateMapPlacemarksOptions | @meridian/web-sdk

Interface CreateMapPlacemarksOptions

interface CreateMapPlacemarksOptions {
    disabled?: boolean;
    filter?: ((placemark) => boolean);
    labelMode?: "always" | "never" | "zoom" | "hover";
    labelZoomLevel?: number;
    showHiddenPlacemarks?: boolean;
}

Properties

disabled?: boolean

Disable clicking placemarks when true. Defaults to false.

+
filter?: ((placemark) => boolean)

Filter function used to hide placemarks. Return false to hide a +placemark. Defaults to () => true.

+

Type declaration

    • (placemark): boolean
    • Parameters

      Returns boolean

labelMode?: "always" | "never" | "zoom" | "hover"

Which mode should we use for displaying placemark labels

+
    +
  • always: shown at all times regardless of zoom level
  • +
  • never: never shown
  • +
  • hover: only shown when the placemark is hovered
  • +
  • zoom: [default] only shown when a certain zoom level is reached
  • +
+
labelZoomLevel?: number

Zoom level at which placemark lables appear when label mode is "zoom"

+
showHiddenPlacemarks?: boolean

Should we show hidden placemarks? Defaults to false.

+
\ No newline at end of file diff --git a/docs/interfaces/CreateMapTagsOptions.html b/docs/interfaces/CreateMapTagsOptions.html new file mode 100644 index 00000000..76b469be --- /dev/null +++ b/docs/interfaces/CreateMapTagsOptions.html @@ -0,0 +1,10 @@ +CreateMapTagsOptions | @meridian/web-sdk

Interface CreateMapTagsOptions

interface CreateMapTagsOptions {
    disabled?: boolean;
    filter?: ((tag) => boolean);
    showControlTags?: boolean;
    updateInterval?: number;
}

Properties

disabled?: boolean

Disable clicking tags when true. Defaults to false.

+
filter?: ((tag) => boolean)

Filter function used to hide tags. Return false to hide a tag. Defaults +to () => true.

+

Type declaration

    • (tag): boolean
    • Parameters

      Returns boolean

showControlTags?: boolean

Should we show control tags? Defaults to false.

+
updateInterval?: number

Update interval in milliseconds, defaults to 5000

+
\ No newline at end of file diff --git a/docs/interfaces/CustomAnnotationPoint.html b/docs/interfaces/CustomAnnotationPoint.html new file mode 100644 index 00000000..66e5f53f --- /dev/null +++ b/docs/interfaces/CustomAnnotationPoint.html @@ -0,0 +1,13 @@ +CustomAnnotationPoint | @meridian/web-sdk

Interface CustomAnnotationPoint

Object describing a point annotation drawn on the map

+
interface CustomAnnotationPoint {
    backgroundColor?: string;
    backgroundImage?: string;
    backgroundSize?: string;
    data?: Record<string, any>;
    onClick?: ((data) => void);
    size?: number;
    title?: string;
    type: "point";
    x: number;
    y: number;
}

Properties

backgroundColor?: string
backgroundImage?: string
backgroundSize?: string
data?: Record<string, any>

Arbitrary data for use with onClick handler

+
onClick?: ((data) => void)

Type declaration

    • (data): void
    • Parameters

      • data: Record<string, any>

      Returns void

size?: number
title?: string
type: "point"
x: number
y: number
\ No newline at end of file diff --git a/docs/interfaces/CustomOverlayCircle.html b/docs/interfaces/CustomOverlayCircle.html new file mode 100644 index 00000000..c3447c01 --- /dev/null +++ b/docs/interfaces/CustomOverlayCircle.html @@ -0,0 +1,29 @@ +CustomOverlayCircle | @meridian/web-sdk

Interface CustomOverlayCircle

Object describing an SVG <circle> element drawn on the map

+

https://developer.mozilla.org/en-US/docs/Web/SVG/Element/circle

+
interface CustomOverlayCircle {
    animate?: SVGAttributes<SVGAnimateElement>;
    animateMotion?: SVGAttributes<SVGAnimateMotionElement>;
    className?: string;
    cx: string;
    cy: string;
    data?: Record<string, any>;
    defs?: boolean;
    fill?: string;
    fillOpacity?: string | number;
    id?: string;
    mpath?: SVGMPathElement;
    onClick?: ((data) => void);
    pathLength: number;
    r: string;
    stroke?: string;
    strokeDasharray?: string | number;
    strokeDashoffset?: string | number;
    strokeLineCap?: "square" | "butt" | "round";
    strokeLineJoin?: "round" | "miter";
    strokeOpacity?: string | number;
    strokeWidth?: number;
    style?: CSSProperties;
    type: "circle";
}

Properties

animate?: SVGAttributes<SVGAnimateElement>
animateMotion?: SVGAttributes<SVGAnimateMotionElement>
className?: string
cx: string
cy: string
data?: Record<string, any>

Arbitrary data for use with onClick handler

+
defs?: boolean

true will result in the element being wrapped in a <defs> (default: false)

+

https://developer.mozilla.org/en-US/docs/Web/SVG/Element/defs

+
fill?: string
fillOpacity?: string | number
id?: string
mpath?: SVGMPathElement
onClick?: ((data) => void)

Type declaration

    • (data): void
    • Parameters

      • data: Record<string, any>

      Returns void

pathLength: number
r: string
stroke?: string
strokeDasharray?: string | number
strokeDashoffset?: string | number
strokeLineCap?: "square" | "butt" | "round"
strokeLineJoin?: "round" | "miter"
strokeOpacity?: string | number
strokeWidth?: number
style?: CSSProperties
type: "circle"
\ No newline at end of file diff --git a/docs/interfaces/CustomOverlayImage.html b/docs/interfaces/CustomOverlayImage.html new file mode 100644 index 00000000..0dcb41b0 --- /dev/null +++ b/docs/interfaces/CustomOverlayImage.html @@ -0,0 +1,21 @@ +CustomOverlayImage | @meridian/web-sdk

Interface CustomOverlayImage

Object describing an SVG <image> element drawn on the map

+

https://developer.mozilla.org/en-US/docs/Web/SVG/Element/image

+
interface CustomOverlayImage {
    animate?: SVGAttributes<SVGAnimateElement>;
    animateMotion?: SVGAttributes<SVGAnimateMotionElement>;
    className?: string;
    data?: Record<string, any>;
    defs?: boolean;
    height: number;
    href: string;
    id?: string;
    mpath?: SVGMPathElement;
    onClick?: ((data) => void);
    style?: CSSProperties;
    type: "image";
    width: number;
    x?: number;
    y?: number;
}

Properties

animate?: SVGAttributes<SVGAnimateElement>
animateMotion?: SVGAttributes<SVGAnimateMotionElement>
className?: string
data?: Record<string, any>

Arbitrary data for use with onClick handler

+
defs?: boolean

true will result in the element being wrapped in a <defs> (default: false)

+

https://developer.mozilla.org/en-US/docs/Web/SVG/Element/defs

+
height: number
href: string
id?: string
mpath?: SVGMPathElement
onClick?: ((data) => void)

Type declaration

    • (data): void
    • Parameters

      • data: Record<string, any>

      Returns void

style?: CSSProperties
type: "image"
width: number
x?: number
y?: number
\ No newline at end of file diff --git a/docs/interfaces/CustomOverlayMarker.html b/docs/interfaces/CustomOverlayMarker.html new file mode 100644 index 00000000..bbf75dab --- /dev/null +++ b/docs/interfaces/CustomOverlayMarker.html @@ -0,0 +1,27 @@ +CustomOverlayMarker | @meridian/web-sdk

Interface CustomOverlayMarker

Object describing an SVG <marker> element drawn on the map

+

https://developer.mozilla.org/en-US/docs/Web/SVG/Element/marker

+
interface CustomOverlayMarker {
    className?: string;
    defs?: boolean;
    fill?: string;
    fillOpacity?: string | number;
    id?: string;
    markerHeight: number;
    markerWidth: number;
    orient: string;
    refX: string;
    refY: string;
    shapeElementAttributes: Record<string, any>;
    shapeElementType: "circle" | "image" | "path" | "polygon" | "polyline";
    stroke?: string;
    strokeDasharray?: string | number;
    strokeDashoffset?: string | number;
    strokeLineCap?: "square" | "butt" | "round";
    strokeLineJoin?: "round" | "miter";
    strokeOpacity?: string | number;
    strokeWidth?: number;
    style?: CSSProperties;
    type: "marker";
    viewBox: string;
}

Properties

className?: string
defs?: boolean

true will result in the element being wrapped in a <defs> (default: false)

+

https://developer.mozilla.org/en-US/docs/Web/SVG/Element/defs

+
fill?: string
fillOpacity?: string | number
id?: string
markerHeight: number
markerWidth: number
orient: string
refX: string
refY: string
shapeElementAttributes: Record<string, any>
shapeElementType: "circle" | "image" | "path" | "polygon" | "polyline"
stroke?: string
strokeDasharray?: string | number
strokeDashoffset?: string | number
strokeLineCap?: "square" | "butt" | "round"
strokeLineJoin?: "round" | "miter"
strokeOpacity?: string | number
strokeWidth?: number
style?: CSSProperties
type: "marker"
viewBox: string
\ No newline at end of file diff --git a/docs/interfaces/CustomOverlayPath.html b/docs/interfaces/CustomOverlayPath.html new file mode 100644 index 00000000..1e0af576 --- /dev/null +++ b/docs/interfaces/CustomOverlayPath.html @@ -0,0 +1,25 @@ +CustomOverlayPath | @meridian/web-sdk

Interface CustomOverlayPath

Object describing an SVG <path> element drawn on the map

+

https://developer.mozilla.org/en-US/docs/Web/SVG/Element/path

+
interface CustomOverlayPath {
    animate?: SVGAttributes<SVGAnimateElement>;
    animateMotion?: SVGAttributes<SVGAnimateMotionElement>;
    className?: string;
    defs?: boolean;
    fill?: string;
    id?: string;
    markerEnd: string;
    markerMid: string;
    markerStart: string;
    mpath?: SVGMPathElement;
    shape: string;
    stroke?: string;
    strokeDasharray?: string | number;
    strokeDashoffset?: string | number;
    strokeLineCap?: "square" | "butt" | "round";
    strokeLineJoin?: "round" | "miter";
    strokeOpacity?: string | number;
    strokeWidth?: number;
    style?: CSSProperties;
    type: "path";
}

Properties

animate?: SVGAttributes<SVGAnimateElement>
animateMotion?: SVGAttributes<SVGAnimateMotionElement>
className?: string
defs?: boolean

true will result in the element being wrapped in a <defs> (default: false)

+

https://developer.mozilla.org/en-US/docs/Web/SVG/Element/defs

+
fill?: string
id?: string
markerEnd: string
markerMid: string
markerStart: string
mpath?: SVGMPathElement
shape: string
stroke?: string
strokeDasharray?: string | number
strokeDashoffset?: string | number
strokeLineCap?: "square" | "butt" | "round"
strokeLineJoin?: "round" | "miter"
strokeOpacity?: string | number
strokeWidth?: number
style?: CSSProperties
type: "path"
\ No newline at end of file diff --git a/docs/interfaces/CustomOverlayPolygon.html b/docs/interfaces/CustomOverlayPolygon.html new file mode 100644 index 00000000..578c80a0 --- /dev/null +++ b/docs/interfaces/CustomOverlayPolygon.html @@ -0,0 +1,26 @@ +CustomOverlayPolygon | @meridian/web-sdk

Interface CustomOverlayPolygon

Object describing an SVG <polygon> element drawn on the map

+

https://developer.mozilla.org/en-US/docs/Web/SVG/Element/polygon

+
interface CustomOverlayPolygon {
    animate?: SVGAttributes<SVGAnimateElement>;
    className?: string;
    data?: Record<string, any>;
    defs?: boolean;
    fill?: string;
    fillOpacity?: string | number;
    id?: string;
    markerEnd: string;
    markerMid: string;
    markerStart: string;
    onClick?: ((data) => void);
    points: number[];
    stroke?: string;
    strokeDasharray?: string | number;
    strokeDashoffset?: string | number;
    strokeLineJoin?: "round" | "miter";
    strokeOpacity?: string | number;
    strokeWidth?: number;
    style?: CSSProperties;
    type: "polygon";
}

Properties

animate?: SVGAttributes<SVGAnimateElement>
className?: string
data?: Record<string, any>

Arbitrary data for use with onClick handler

+
defs?: boolean

true will result in the element being wrapped in a <defs> (default: false)

+

https://developer.mozilla.org/en-US/docs/Web/SVG/Element/defs

+
fill?: string
fillOpacity?: string | number
id?: string
markerEnd: string
markerMid: string
markerStart: string
onClick?: ((data) => void)

Type declaration

    • (data): void
    • Parameters

      • data: Record<string, any>

      Returns void

points: number[]
stroke?: string
strokeDasharray?: string | number
strokeDashoffset?: string | number
strokeLineJoin?: "round" | "miter"
strokeOpacity?: string | number
strokeWidth?: number
style?: CSSProperties
type: "polygon"
\ No newline at end of file diff --git a/docs/interfaces/CustomOverlayPolyline.html b/docs/interfaces/CustomOverlayPolyline.html new file mode 100644 index 00000000..0fd74a3e --- /dev/null +++ b/docs/interfaces/CustomOverlayPolyline.html @@ -0,0 +1,24 @@ +CustomOverlayPolyline | @meridian/web-sdk

Interface CustomOverlayPolyline

Object describing an SVG <polyline> element drawn on the map

+

https://developer.mozilla.org/en-US/docs/Web/SVG/Element/polyline

+
interface CustomOverlayPolyline {
    animate?: SVGAttributes<SVGAnimateElement>;
    className?: string;
    defs?: boolean;
    fill?: string;
    fillOpacity?: string | number;
    id?: string;
    markerEnd: string;
    markerMid: string;
    markerStart: string;
    points: number[];
    stroke?: string;
    strokeDasharray?: string | number;
    strokeDashoffset?: string | number;
    strokeLineCap?: "square" | "butt" | "round";
    strokeLineJoin?: "round" | "miter";
    strokeOpacity?: string | number;
    strokeWidth?: number;
    style?: CSSProperties;
    type: "polyline";
}

Properties

animate?: SVGAttributes<SVGAnimateElement>
className?: string
defs?: boolean

true will result in the element being wrapped in a <defs> (default: false)

+

https://developer.mozilla.org/en-US/docs/Web/SVG/Element/defs

+
fill?: string
fillOpacity?: string | number
id?: string
markerEnd: string
markerMid: string
markerStart: string
points: number[]
stroke?: string
strokeDasharray?: string | number
strokeDashoffset?: string | number
strokeLineCap?: "square" | "butt" | "round"
strokeLineJoin?: "round" | "miter"
strokeOpacity?: string | number
strokeWidth?: number
style?: CSSProperties
type: "polyline"
\ No newline at end of file diff --git a/docs/interfaces/CustomOverlayUse.html b/docs/interfaces/CustomOverlayUse.html new file mode 100644 index 00000000..61fa87da --- /dev/null +++ b/docs/interfaces/CustomOverlayUse.html @@ -0,0 +1,26 @@ +CustomOverlayUse | @meridian/web-sdk

Interface CustomOverlayUse

Object describing an SVG <use> element drawn on the map.

+

https://developer.mozilla.org/en-US/docs/Web/SVG/Element/use

+
interface CustomOverlayUse {
    animate?: SVGAttributes<SVGAnimateElement>;
    animateMotion?: SVGAttributes<SVGAnimateMotionElement>;
    className?: string;
    defs?: boolean;
    fill?: string;
    height: number;
    href: string;
    id?: string;
    mpath?: SVGMPathElement;
    stroke?: string;
    strokeDasharray?: string | number;
    strokeDashoffset?: string | number;
    strokeLineCap?: "square" | "butt" | "round";
    strokeLineJoin?: "round" | "miter";
    strokeOpacity?: string | number;
    strokeWidth?: number;
    style?: CSSProperties;
    type: "use";
    width: number;
    x?: number;
    y?: number;
}

Properties

animate?: SVGAttributes<SVGAnimateElement>
animateMotion?: SVGAttributes<SVGAnimateMotionElement>
className?: string
defs?: boolean

true will result in the element being wrapped in a <defs> (default: false)

+

https://developer.mozilla.org/en-US/docs/Web/SVG/Element/defs

+
fill?: string
height: number
href: string
id?: string
mpath?: SVGMPathElement
stroke?: string
strokeDasharray?: string | number
strokeDashoffset?: string | number
strokeLineCap?: "square" | "butt" | "round"
strokeLineJoin?: "round" | "miter"
strokeOpacity?: string | number
strokeWidth?: number
style?: CSSProperties
type: "use"
width: number
x?: number
y?: number
\ No newline at end of file diff --git a/docs/interfaces/FloorData.html b/docs/interfaces/FloorData.html new file mode 100644 index 00000000..524aed29 --- /dev/null +++ b/docs/interfaces/FloorData.html @@ -0,0 +1,4 @@ +FloorData | @meridian/web-sdk

Interface FloorData

Meridian Floor data

+
interface FloorData {
    id: string;
    [key: string]: any;
}

Indexable

[key: string]: any

Properties

id +

Properties

id: string

Floor ID

+
\ No newline at end of file diff --git a/docs/interfaces/LocationData.html b/docs/interfaces/LocationData.html new file mode 100644 index 00000000..0f5a5c33 --- /dev/null +++ b/docs/interfaces/LocationData.html @@ -0,0 +1,4 @@ +LocationData | @meridian/web-sdk

Interface LocationData

Meridian Location data

+
interface LocationData {
    id: string;
    [key: string]: any;
}

Indexable

[key: string]: any

Properties

id +

Properties

id: string

Location ID

+
\ No newline at end of file diff --git a/docs/interfaces/MeridianEvent.html b/docs/interfaces/MeridianEvent.html new file mode 100644 index 00000000..ed22afa1 --- /dev/null +++ b/docs/interfaces/MeridianEvent.html @@ -0,0 +1,4 @@ +MeridianEvent | @meridian/web-sdk

Interface MeridianEvent

MeridanSDK specific event object, used to preventDefault when overriding a +handler.

+
interface MeridianEvent {
    preventDefault: (() => void);
}

Properties

Properties

preventDefault: (() => void)

Type declaration

    • (): void
    • Returns void

\ No newline at end of file diff --git a/docs/interfaces/MeridianMap.html b/docs/interfaces/MeridianMap.html new file mode 100644 index 00000000..dfad2e63 --- /dev/null +++ b/docs/interfaces/MeridianMap.html @@ -0,0 +1,19 @@ +MeridianMap | @meridian/web-sdk

Interface MeridianMap

Returned from createMap, this object allows you to manipulate a map that +has already been created in the page.

+
interface MeridianMap {
    centerMap: (() => void);
    destroy: (() => void);
    isDestroyed: boolean;
    update: ((updatedOptions) => void);
    zoomToDefault: (() => void);
    zoomToPoint: ((options) => void);
}

Properties

centerMap: (() => void)

Center the map while retaining the current scale.

+

Type declaration

    • (): void
    • Returns void

destroy: (() => void)

Remove the Meridian Map from the DOM and clean up all ongoing network +connections.

+

If you are writing a single page app you MUST use this call before hiding +the Meridian Map, or you will having network connections that keep going in +the background.

+

Type declaration

    • (): void
    • Returns void

isDestroyed: boolean

Has this map been destroyed

+
update: ((updatedOptions) => void)

Update the Meridian map to have new options.

+

Type declaration

    • (updatedOptions): void
    • Parameters

      Returns void

zoomToDefault: (() => void)

Set zoom to the default level and pan to the default position.

+

Type declaration

    • (): void
    • Returns void

zoomToPoint: ((options) => void)

Pan to x/y coordinate and scale to a given zoom factor.

+

Type declaration

    • (options): void
    • Parameters

      • options: {
            scale: number;
            x: number;
            y: number;
        }
        • scale: number
        • x: number
        • y: number

      Returns void

\ No newline at end of file diff --git a/docs/interfaces/OpenStreamOptions.html b/docs/interfaces/OpenStreamOptions.html new file mode 100644 index 00000000..9dfa0311 --- /dev/null +++ b/docs/interfaces/OpenStreamOptions.html @@ -0,0 +1,22 @@ +OpenStreamOptions | @meridian/web-sdk

Interface OpenStreamOptions

Options passed to API.openStream.

+
interface OpenStreamOptions {
    floorID?: string;
    locationID: string;
    onClose?: (() => void);
    onException?: ((error) => void);
    onInitialTags?: ((tags) => void);
    onOpen?: (() => void);
    onTagUpdate?: ((tag) => void);
    resourceIDs?: string[];
    resourceType?: "LOCATION" | "TAG" | "FLOOR" | "LABEL" | "ZONE";
}

Properties

floorID?: string

Meridian floor ID

+
locationID: string

Meridian location ID

+
onClose?: (() => void)

Called when the stream closes

+

Type declaration

    • (): void
    • Returns void

onException?: ((error) => void)

Called when an error happens

+

Type declaration

    • (error): void
    • Parameters

      • error: Error

      Returns void

onInitialTags?: ((tags) => void)

Called with ALL tags on first load

+

Type declaration

    • (tags): void
    • Parameters

      Returns void

onOpen?: (() => void)

Called when the stream opens

+

Type declaration

    • (): void
    • Returns void

onTagUpdate?: ((tag) => void)

Called when a tag location updates

+

Type declaration

    • (tag): void
    • Parameters

      Returns void

resourceIDs?: string[]

Default: [floorID] if resourceType === "FLOOR" OR [locationID] if resourceType === "LOCATION", +Valid values: [locationID | floorIDs | tagIDs | tagLabelIDs | zoneIDs]

+
resourceType?: "LOCATION" | "TAG" | "FLOOR" | "LABEL" | "ZONE"

Default: "FLOOR" if floorID is defined +Valid values: "LOCATION" | "TAG" | "FLOOR" | "LABEL" | "ZONE"

+
\ No newline at end of file diff --git a/docs/interfaces/PlacemarkData.html b/docs/interfaces/PlacemarkData.html new file mode 100644 index 00000000..570f097b --- /dev/null +++ b/docs/interfaces/PlacemarkData.html @@ -0,0 +1,4 @@ +PlacemarkData | @meridian/web-sdk

Interface PlacemarkData

Meridian Placemark data

+
interface PlacemarkData {
    id: string;
    [key: string]: any;
}

Indexable

[key: string]: any

Properties

id +

Properties

id: string

Placemark ID

+
\ No newline at end of file diff --git a/docs/interfaces/Stream.html b/docs/interfaces/Stream.html new file mode 100644 index 00000000..c85c4a98 --- /dev/null +++ b/docs/interfaces/Stream.html @@ -0,0 +1,5 @@ +Stream | @meridian/web-sdk

Interface Stream

An open tag stream that can be closed. Returned by API.openStream.

+
const api = new MeridianSDK.API({
// ...
});

const stream = api.openStream({
// ...
});

stream.close(); +
+
interface Stream {
    close: (() => void);
}

Properties

Properties

close: (() => void)

Type declaration

    • (): void
    • Returns void

\ No newline at end of file diff --git a/docs/interfaces/TagData.html b/docs/interfaces/TagData.html new file mode 100644 index 00000000..e081f6d6 --- /dev/null +++ b/docs/interfaces/TagData.html @@ -0,0 +1,4 @@ +TagData | @meridian/web-sdk

Interface TagData

Meridian Tag data

+
interface TagData {
    mac: string;
    [key: string]: any;
}

Indexable

[key: string]: any

Properties

mac +

Properties

mac: string

Tag MAC address (uppercase, no punctuation)

+
\ No newline at end of file diff --git a/docs/interfaces/getDirectionsOptions.html b/docs/interfaces/getDirectionsOptions.html new file mode 100644 index 00000000..32fa4a78 --- /dev/null +++ b/docs/interfaces/getDirectionsOptions.html @@ -0,0 +1,12 @@ +getDirectionsOptions | @meridian/web-sdk

Interface getDirectionsOptions

Options passed to API.getDirections.

+
interface getDirectionsOptions {
    endPlacemarkID: string;
    locationID: string;
    startFloorID: string;
    startPlacemarkID: string;
    transportType?: string;
}

Properties

endPlacemarkID: string

Meridian end Placemark ID

+
locationID: string

Meridian Location ID

+
startFloorID: string

Meridian start Floor ID

+
startPlacemarkID: string

Meridian start Placemark ID

+
transportType?: string

Transport Type ("accessible" or undefined). Default is undefined

+
\ No newline at end of file diff --git a/docs/interfaces/placemarkSearchOptions.html b/docs/interfaces/placemarkSearchOptions.html new file mode 100644 index 00000000..97f3e645 --- /dev/null +++ b/docs/interfaces/placemarkSearchOptions.html @@ -0,0 +1,12 @@ +placemarkSearchOptions | @meridian/web-sdk

Interface placemarkSearchOptions

interface placemarkSearchOptions {
    locationID: string;
    refFloorID?: string;
    refPoint?: string;
    searchStr: string;
}

Properties

locationID: string

Location ID

+
refFloorID?: string

Floor ID to be used in combination with refPoint +See API.debouncedPlacemarkSearchBeta

+
refPoint?: string

Map Point X/Y to be used in combination with refFloorID +See API.debouncedPlacemarkSearchBeta

+
searchStr: string

Search String

+
\ No newline at end of file diff --git a/docs/modules.html b/docs/modules.html new file mode 100644 index 00000000..1be0df8c --- /dev/null +++ b/docs/modules.html @@ -0,0 +1,36 @@ +@meridian/web-sdk
\ No newline at end of file diff --git a/docs/types/CustomAnnotation.html b/docs/types/CustomAnnotation.html new file mode 100644 index 00000000..a56dda86 --- /dev/null +++ b/docs/types/CustomAnnotation.html @@ -0,0 +1,2 @@ +CustomAnnotation | @meridian/web-sdk

Type alias CustomAnnotation

CustomAnnotation: CustomAnnotationPoint

Object describing a custom annotation

+
\ No newline at end of file diff --git a/docs/types/CustomOverlay.html b/docs/types/CustomOverlay.html new file mode 100644 index 00000000..4006efee --- /dev/null +++ b/docs/types/CustomOverlay.html @@ -0,0 +1,2 @@ +CustomOverlay | @meridian/web-sdk
\ No newline at end of file diff --git a/docs/types/EnvOptions.html b/docs/types/EnvOptions.html new file mode 100644 index 00000000..d0ba343b --- /dev/null +++ b/docs/types/EnvOptions.html @@ -0,0 +1,2 @@ +EnvOptions | @meridian/web-sdk

Type alias EnvOptions

EnvOptions: "production" | "staging" | "eu" | "development" | "devCloud"

Environment name used in APIOptions. If unsure, use "production".

+
\ No newline at end of file diff --git a/docs/variables/version.html b/docs/variables/version.html new file mode 100644 index 00000000..98593c5b --- /dev/null +++ b/docs/variables/version.html @@ -0,0 +1,5 @@ +version | @meridian/web-sdk

Variable versionConst

version: string = GLOBAL_VERSION

The current version of the Meridian Web SDK. Useful for checking which +version is running.

+
console.log(MeridianSDK.version);
+
+
\ No newline at end of file diff --git a/functions/createAPI.html b/functions/createAPI.html index 31e11f8b..39052c33 100644 --- a/functions/createAPI.html +++ b/functions/createAPI.html @@ -1,3 +1,3 @@ createAPI | @meridian/web-sdk

Function createAPI

  • Parameters

    Returns API

    Deprecated

    Deprecated function used to create an instance of API. Instead of createAPI(options) you should now use new API(options).

    -
\ No newline at end of file +
\ No newline at end of file diff --git a/functions/createMap.html b/functions/createMap.html index 8f09e495..3ff059bd 100644 --- a/functions/createMap.html +++ b/functions/createMap.html @@ -3,4 +3,4 @@ https://tags.meridianapps.com/docs/track for the schema.

const api = new MeridianSDK.API({ token: "<TOKEN>" });
const map = MeridianSDK.createMap(
document.querySelector("#map-container"),
{
api: api,
locationID: "<location ID>",
floorID: "<floor ID>",
height: "500px"
}
);
-

Parameters

Returns MeridianMap

\ No newline at end of file +

Parameters

Returns MeridianMap

\ No newline at end of file diff --git a/functions/init.html b/functions/init.html index cc904660..576c5528 100644 --- a/functions/init.html +++ b/functions/init.html @@ -3,4 +3,4 @@ instance directly to createMap.

const api = new MeridianSDK.API({
token: "<TOKEN GOES HERE>"
});

MeridianSDK.init({ api: api });
-

Parameters

  • options: {
        api: API;
    }

Returns void

\ No newline at end of file +

Parameters

  • options: {
        api: API;
    }

Returns void

\ No newline at end of file diff --git a/functions/latLngToMapPoint.html b/functions/latLngToMapPoint.html index 462ef68c..3ea30164 100644 --- a/functions/latLngToMapPoint.html +++ b/functions/latLngToMapPoint.html @@ -2,4 +2,4 @@

The basic formula to achieve this is as follows:

x = radius(longitude - central meridian of map) * cos(standard parallels with scale)

y = radius(latitude - central parallel of map)

-

Parameters

  • floorData: Partial<FloorData>
  • __namedParameters: {
        lat: number;
        lng: number;
    }
    • lat: number
    • lng: number

Returns {
    x: number;
    y: number;
}

  • x: number
  • y: number
\ No newline at end of file +

Parameters

  • floorData: Partial<FloorData>
  • __namedParameters: {
        lat: number;
        lng: number;
    }
    • lat: number
    • lng: number

Returns {
    x: number;
    y: number;
}

  • x: number
  • y: number
\ No newline at end of file diff --git a/functions/mapPointToLatLng.html b/functions/mapPointToLatLng.html index aaec5b5d..3132df1c 100644 --- a/functions/mapPointToLatLng.html +++ b/functions/mapPointToLatLng.html @@ -2,4 +2,4 @@

The basic formula to achieve this is as follows:

latitute = 2(tan^-1)[exp(y / radius)] longitude = central parallel of map + (x / radius) - PI / 2

-

Parameters

  • floorData: Partial<FloorData>
  • __namedParameters: {
        x: number;
        y: number;
    }
    • x: number
    • y: number

Returns {
    lat: number;
    lng: number;
}

  • lat: number
  • lng: number
\ No newline at end of file +

Parameters

  • floorData: Partial<FloorData>
  • __namedParameters: {
        x: number;
        y: number;
    }
    • x: number
    • y: number

Returns {
    lat: number;
    lng: number;
}

  • lat: number
  • lng: number
\ No newline at end of file diff --git a/functions/placemarkIconURL.html b/functions/placemarkIconURL.html index da1cdbdd..38e60f10 100644 --- a/functions/placemarkIconURL.html +++ b/functions/placemarkIconURL.html @@ -1,4 +1,4 @@ placemarkIconURL | @meridian/web-sdk

Function placemarkIconURL

  • Takes a placemark type and returns a URL to a white SVG icon representing it

    Parameters

    • type: string

    Returns string

    Example

    function onPlacemarkClick(placemark) {
    const url = MeridianSDK.placemarkIconURL(placemark.type);
    console.log(url);
    }
    -
\ No newline at end of file +
\ No newline at end of file diff --git a/functions/pointsFromArea.html b/functions/pointsFromArea.html index 9f850308..2c7b63d5 100644 --- a/functions/pointsFromArea.html +++ b/functions/pointsFromArea.html @@ -1,2 +1,2 @@ pointsFromArea | @meridian/web-sdk

Function pointsFromArea

  • Returns an array of points (numbers) based on a placemarks's area property

    -

    Parameters

    • area: undefined | null | string

    Returns number[]

\ No newline at end of file +

Parameters

  • area: undefined | null | string

Returns number[]

\ No newline at end of file diff --git a/functions/restrictedPanZoom.html b/functions/restrictedPanZoom.html index 445076a8..b069c173 100644 --- a/functions/restrictedPanZoom.html +++ b/functions/restrictedPanZoom.html @@ -6,4 +6,4 @@ to use two fingers or hold down a modifier key in order to zoom the map.

const api = new MeridianSDK.API({ token: "<TOKEN>" });

const map = MeridianSDK.createMap(
document.querySelector("#map-container"),
{
api,
locationID: "<location ID>",
floorID: "<floor ID>",
height: "500px",
shouldMapPanZoom: MeridianSDK.restrictedPanZoom,
}
)
-

Parameters

  • event: any

Returns boolean

\ No newline at end of file +

Parameters

  • event: any

Returns boolean

\ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/aed.svg b/gcs-files/1.22.7/files/placemarks/aed.svg new file mode 100644 index 00000000..9502e372 --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/aed.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/amusement_park.svg b/gcs-files/1.22.7/files/placemarks/amusement_park.svg new file mode 100644 index 00000000..f435f28e --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/amusement_park.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/atm.svg b/gcs-files/1.22.7/files/placemarks/atm.svg new file mode 100644 index 00000000..462a9e75 --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/atm.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/attraction.svg b/gcs-files/1.22.7/files/placemarks/attraction.svg new file mode 100644 index 00000000..dbdaa090 --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/attraction.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/baggage.svg b/gcs-files/1.22.7/files/placemarks/baggage.svg new file mode 100644 index 00000000..dd5f0a3f --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/baggage.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/baggage_carts.svg b/gcs-files/1.22.7/files/placemarks/baggage_carts.svg new file mode 100644 index 00000000..5e1d02b4 --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/baggage_carts.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/bank.svg b/gcs-files/1.22.7/files/placemarks/bank.svg new file mode 100644 index 00000000..bc0fc458 --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/bank.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/bar.svg b/gcs-files/1.22.7/files/placemarks/bar.svg new file mode 100644 index 00000000..19f12c46 --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/bar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/bike.svg b/gcs-files/1.22.7/files/placemarks/bike.svg new file mode 100644 index 00000000..7e9ea53f --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/bike.svg @@ -0,0 +1,3 @@ + + + diff --git a/gcs-files/1.22.7/files/placemarks/bus.svg b/gcs-files/1.22.7/files/placemarks/bus.svg new file mode 100644 index 00000000..707050e0 --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/bus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/cafe.svg b/gcs-files/1.22.7/files/placemarks/cafe.svg new file mode 100644 index 00000000..29ee308a --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/cafe.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/cafeteria.svg b/gcs-files/1.22.7/files/placemarks/cafeteria.svg new file mode 100644 index 00000000..29ee308a --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/cafeteria.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/cashier.svg b/gcs-files/1.22.7/files/placemarks/cashier.svg new file mode 100644 index 00000000..0af9d48d --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/cashier.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/changing_room.svg b/gcs-files/1.22.7/files/placemarks/changing_room.svg new file mode 100644 index 00000000..31bd97de --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/changing_room.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/changing_station.svg b/gcs-files/1.22.7/files/placemarks/changing_station.svg new file mode 100644 index 00000000..17dc4212 --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/changing_station.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/charging_station.svg b/gcs-files/1.22.7/files/placemarks/charging_station.svg new file mode 100644 index 00000000..5b8c35ed --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/charging_station.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/clinic.svg b/gcs-files/1.22.7/files/placemarks/clinic.svg new file mode 100644 index 00000000..8e9be979 --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/clinic.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/club.svg b/gcs-files/1.22.7/files/placemarks/club.svg new file mode 100644 index 00000000..19f12c46 --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/club.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/coat_check.svg b/gcs-files/1.22.7/files/placemarks/coat_check.svg new file mode 100644 index 00000000..2856c9c2 --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/coat_check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/conference_room.svg b/gcs-files/1.22.7/files/placemarks/conference_room.svg new file mode 100644 index 00000000..bcd50948 --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/conference_room.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/currency_exchange.svg b/gcs-files/1.22.7/files/placemarks/currency_exchange.svg new file mode 100644 index 00000000..6994376a --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/currency_exchange.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/customer_service.svg b/gcs-files/1.22.7/files/placemarks/customer_service.svg new file mode 100644 index 00000000..ede6197a --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/customer_service.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/desk.svg b/gcs-files/1.22.7/files/placemarks/desk.svg new file mode 100644 index 00000000..8595eaa9 --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/desk.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/device_charging.svg b/gcs-files/1.22.7/files/placemarks/device_charging.svg new file mode 100644 index 00000000..954e41a8 --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/device_charging.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/elevator.svg b/gcs-files/1.22.7/files/placemarks/elevator.svg new file mode 100644 index 00000000..4585370d --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/elevator.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/emergency_dept.svg b/gcs-files/1.22.7/files/placemarks/emergency_dept.svg new file mode 100644 index 00000000..bdcde034 --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/emergency_dept.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/escalator.svg b/gcs-files/1.22.7/files/placemarks/escalator.svg new file mode 100644 index 00000000..097f61d2 --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/escalator.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/exclusion_area.svg b/gcs-files/1.22.7/files/placemarks/exclusion_area.svg new file mode 100644 index 00000000..83bf512d --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/exclusion_area.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/exhibit.svg b/gcs-files/1.22.7/files/placemarks/exhibit.svg new file mode 100644 index 00000000..dbdaa090 --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/exhibit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/exit.svg b/gcs-files/1.22.7/files/placemarks/exit.svg new file mode 100644 index 00000000..bcb8eded --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/exit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/fire_extinguisher.svg b/gcs-files/1.22.7/files/placemarks/fire_extinguisher.svg new file mode 100644 index 00000000..c8f96de4 --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/fire_extinguisher.svg @@ -0,0 +1,3 @@ + + + diff --git a/gcs-files/1.22.7/files/placemarks/first_aid.svg b/gcs-files/1.22.7/files/placemarks/first_aid.svg new file mode 100644 index 00000000..ca8c3840 --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/first_aid.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/fitness_center.svg b/gcs-files/1.22.7/files/placemarks/fitness_center.svg new file mode 100644 index 00000000..632789d5 --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/fitness_center.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/fountain.svg b/gcs-files/1.22.7/files/placemarks/fountain.svg new file mode 100644 index 00000000..763bc25a --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/fountain.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/gallery.svg b/gcs-files/1.22.7/files/placemarks/gallery.svg new file mode 100644 index 00000000..e16c25b8 --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/gallery.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/gaming.svg b/gcs-files/1.22.7/files/placemarks/gaming.svg new file mode 100644 index 00000000..cb5050e2 --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/gaming.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/garden.svg b/gcs-files/1.22.7/files/placemarks/garden.svg new file mode 100644 index 00000000..c515c1ed --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/garden.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/gate.svg b/gcs-files/1.22.7/files/placemarks/gate.svg new file mode 100644 index 00000000..40600a40 --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/gate.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/generic.svg b/gcs-files/1.22.7/files/placemarks/generic.svg new file mode 100644 index 00000000..d1c4ba30 --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/generic.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/global_entry_office.svg b/gcs-files/1.22.7/files/placemarks/global_entry_office.svg new file mode 100644 index 00000000..947d47a8 --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/global_entry_office.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/handicap.svg b/gcs-files/1.22.7/files/placemarks/handicap.svg new file mode 100644 index 00000000..b48336da --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/handicap.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/information.svg b/gcs-files/1.22.7/files/placemarks/information.svg new file mode 100644 index 00000000..ede6197a --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/information.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/kiosk.svg b/gcs-files/1.22.7/files/placemarks/kiosk.svg new file mode 100644 index 00000000..f6259138 --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/kiosk.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/lab.svg b/gcs-files/1.22.7/files/placemarks/lab.svg new file mode 100644 index 00000000..c64ab074 --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/lab.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/laptop_lounge.svg b/gcs-files/1.22.7/files/placemarks/laptop_lounge.svg new file mode 100644 index 00000000..600ba36d --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/laptop_lounge.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/lost_found.svg b/gcs-files/1.22.7/files/placemarks/lost_found.svg new file mode 100644 index 00000000..b96085ac --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/lost_found.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/lounge.svg b/gcs-files/1.22.7/files/placemarks/lounge.svg new file mode 100644 index 00000000..046f0efb --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/lounge.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/mailbox.svg b/gcs-files/1.22.7/files/placemarks/mailbox.svg new file mode 100644 index 00000000..201da239 --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/mailbox.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/museum.svg b/gcs-files/1.22.7/files/placemarks/museum.svg new file mode 100644 index 00000000..bc0fc458 --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/museum.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/nursing_station.svg b/gcs-files/1.22.7/files/placemarks/nursing_station.svg new file mode 100644 index 00000000..d155d367 --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/nursing_station.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/operating_room.svg b/gcs-files/1.22.7/files/placemarks/operating_room.svg new file mode 100644 index 00000000..b8613a6e --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/operating_room.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/outdoor_area.svg b/gcs-files/1.22.7/files/placemarks/outdoor_area.svg new file mode 100644 index 00000000..83bf512d --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/outdoor_area.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/paging_phone.svg b/gcs-files/1.22.7/files/placemarks/paging_phone.svg new file mode 100644 index 00000000..47ea2ac2 --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/paging_phone.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/parking.svg b/gcs-files/1.22.7/files/placemarks/parking.svg new file mode 100644 index 00000000..5ef9e6f2 --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/parking.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/pet_relief.svg b/gcs-files/1.22.7/files/placemarks/pet_relief.svg new file mode 100644 index 00000000..9e8efc7f --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/pet_relief.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/pharmacy.svg b/gcs-files/1.22.7/files/placemarks/pharmacy.svg new file mode 100644 index 00000000..a15ba43e --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/pharmacy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/phone.svg b/gcs-files/1.22.7/files/placemarks/phone.svg new file mode 100644 index 00000000..47ea2ac2 --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/phone.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/play_area.svg b/gcs-files/1.22.7/files/placemarks/play_area.svg new file mode 100644 index 00000000..f7c2023d --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/play_area.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/printer.svg b/gcs-files/1.22.7/files/placemarks/printer.svg new file mode 100644 index 00000000..505a3148 --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/printer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/registration.svg b/gcs-files/1.22.7/files/placemarks/registration.svg new file mode 100644 index 00000000..2b56d9fe --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/registration.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/rental_cars.svg b/gcs-files/1.22.7/files/placemarks/rental_cars.svg new file mode 100644 index 00000000..b1612e23 --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/rental_cars.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/restaurant.svg b/gcs-files/1.22.7/files/placemarks/restaurant.svg new file mode 100644 index 00000000..29ee308a --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/restaurant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/restroom.svg b/gcs-files/1.22.7/files/placemarks/restroom.svg new file mode 100644 index 00000000..fc0b1e09 --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/restroom.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/restroom_ada.svg b/gcs-files/1.22.7/files/placemarks/restroom_ada.svg new file mode 100644 index 00000000..03b3ab84 --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/restroom_ada.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/restroom_family.svg b/gcs-files/1.22.7/files/placemarks/restroom_family.svg new file mode 100644 index 00000000..0c9bc261 --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/restroom_family.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/restroom_men.svg b/gcs-files/1.22.7/files/placemarks/restroom_men.svg new file mode 100644 index 00000000..678843d3 --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/restroom_men.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/restroom_men_ada.svg b/gcs-files/1.22.7/files/placemarks/restroom_men_ada.svg new file mode 100644 index 00000000..93fc4e66 --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/restroom_men_ada.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/restroom_women.svg b/gcs-files/1.22.7/files/placemarks/restroom_women.svg new file mode 100644 index 00000000..33ffdfff --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/restroom_women.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/restroom_women_ada.svg b/gcs-files/1.22.7/files/placemarks/restroom_women_ada.svg new file mode 100644 index 00000000..744dff3f --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/restroom_women_ada.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/rewards.svg b/gcs-files/1.22.7/files/placemarks/rewards.svg new file mode 100644 index 00000000..226387a2 --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/rewards.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/security.svg b/gcs-files/1.22.7/files/placemarks/security.svg new file mode 100644 index 00000000..fbf45c02 --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/security.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/security_checkpoint.svg b/gcs-files/1.22.7/files/placemarks/security_checkpoint.svg new file mode 100644 index 00000000..c20eb358 --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/security_checkpoint.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/shoe_shine.svg b/gcs-files/1.22.7/files/placemarks/shoe_shine.svg new file mode 100644 index 00000000..a8af224f --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/shoe_shine.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/shop.svg b/gcs-files/1.22.7/files/placemarks/shop.svg new file mode 100644 index 00000000..6b0c0514 --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/shop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/spa.svg b/gcs-files/1.22.7/files/placemarks/spa.svg new file mode 100644 index 00000000..ed2c3294 --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/spa.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/stadium.svg b/gcs-files/1.22.7/files/placemarks/stadium.svg new file mode 100644 index 00000000..a6989e5b --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/stadium.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/stairs.svg b/gcs-files/1.22.7/files/placemarks/stairs.svg new file mode 100644 index 00000000..0916a4df --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/stairs.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/swimming_pool.svg b/gcs-files/1.22.7/files/placemarks/swimming_pool.svg new file mode 100644 index 00000000..bf220e2c --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/swimming_pool.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/taxi.svg b/gcs-files/1.22.7/files/placemarks/taxi.svg new file mode 100644 index 00000000..034ddc45 --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/taxi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/theater.svg b/gcs-files/1.22.7/files/placemarks/theater.svg new file mode 100644 index 00000000..afffd302 --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/theater.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/ticketing.svg b/gcs-files/1.22.7/files/placemarks/ticketing.svg new file mode 100644 index 00000000..5a9022a3 --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/ticketing.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/tours.svg b/gcs-files/1.22.7/files/placemarks/tours.svg new file mode 100644 index 00000000..957fae4d --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/tours.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/train.svg b/gcs-files/1.22.7/files/placemarks/train.svg new file mode 100644 index 00000000..c103a180 --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/train.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/training.svg b/gcs-files/1.22.7/files/placemarks/training.svg new file mode 100644 index 00000000..af3fc87f --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/training.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/valet.svg b/gcs-files/1.22.7/files/placemarks/valet.svg new file mode 100644 index 00000000..2f7c2632 --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/valet.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/vending_machines.svg b/gcs-files/1.22.7/files/placemarks/vending_machines.svg new file mode 100644 index 00000000..82c78f22 --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/vending_machines.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/water_fountain.svg b/gcs-files/1.22.7/files/placemarks/water_fountain.svg new file mode 100644 index 00000000..f21b39fd --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/water_fountain.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/placemarks/wedding.svg b/gcs-files/1.22.7/files/placemarks/wedding.svg new file mode 100644 index 00000000..7b9f8030 --- /dev/null +++ b/gcs-files/1.22.7/files/placemarks/wedding.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gcs-files/1.22.7/files/tags/generic.png b/gcs-files/1.22.7/files/tags/generic.png new file mode 100644 index 0000000000000000000000000000000000000000..74d341ffada72a764e3c0069c0e49174ccbe2086 GIT binary patch literal 4219 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 aWWgVAz1w=SC2{LN0~13tbh*A$*na>%*%yld literal 0 HcmV?d00001 diff --git a/gcs-files/1.22.7/meridian-sdk.js b/gcs-files/1.22.7/meridian-sdk.js new file mode 100644 index 00000000..53273127 --- /dev/null +++ b/gcs-files/1.22.7/meridian-sdk.js @@ -0,0 +1,2 @@ +/*! For license information please see meridian-sdk.js.LICENSE.txt */ +var MeridianSDK;!function(){var e={323:function(e,t,n){var r={"./aed.svg":852,"./amusement_park.svg":1968,"./atm.svg":5150,"./attraction.svg":1541,"./baggage.svg":3412,"./baggage_carts.svg":2096,"./bank.svg":136,"./bar.svg":5861,"./bike.svg":8113,"./bus.svg":7536,"./cafe.svg":2873,"./cafeteria.svg":3884,"./cashier.svg":9005,"./changing_room.svg":8327,"./changing_station.svg":7126,"./charging_station.svg":6906,"./clinic.svg":9138,"./club.svg":1174,"./coat_check.svg":3826,"./conference_room.svg":1606,"./currency_exchange.svg":7501,"./customer_service.svg":5738,"./desk.svg":9477,"./device_charging.svg":2630,"./elevator.svg":4,"./emergency_dept.svg":2053,"./escalator.svg":4266,"./exclusion_area.svg":2890,"./exhibit.svg":1641,"./exit.svg":9458,"./fire_extinguisher.svg":6624,"./first_aid.svg":1535,"./fitness_center.svg":1902,"./fountain.svg":3614,"./gallery.svg":6848,"./gaming.svg":5781,"./garden.svg":1841,"./gate.svg":5995,"./generic.svg":9101,"./global_entry_office.svg":1393,"./handicap.svg":2914,"./information.svg":8208,"./kiosk.svg":6175,"./lab.svg":7903,"./laptop_lounge.svg":4067,"./lost_found.svg":1833,"./lounge.svg":1900,"./mailbox.svg":2086,"./museum.svg":2002,"./nursing_station.svg":1565,"./operating_room.svg":2515,"./outdoor_area.svg":4525,"./paging_phone.svg":9563,"./parking.svg":8854,"./pet_relief.svg":4975,"./pharmacy.svg":593,"./phone.svg":9338,"./play_area.svg":9484,"./printer.svg":7774,"./registration.svg":9333,"./rental_cars.svg":3622,"./restaurant.svg":2311,"./restroom.svg":4965,"./restroom_ada.svg":2804,"./restroom_family.svg":504,"./restroom_men.svg":5584,"./restroom_men_ada.svg":7073,"./restroom_women.svg":8098,"./restroom_women_ada.svg":3303,"./rewards.svg":8850,"./security.svg":9456,"./security_checkpoint.svg":2453,"./shoe_shine.svg":9519,"./shop.svg":5758,"./spa.svg":7244,"./stadium.svg":1915,"./stairs.svg":2208,"./swimming_pool.svg":646,"./taxi.svg":7342,"./theater.svg":2925,"./ticketing.svg":8034,"./tours.svg":3187,"./train.svg":4340,"./training.svg":6740,"./valet.svg":1644,"./vending_machines.svg":4810,"./water_fountain.svg":9922,"./wedding.svg":2994};function o(e){var t=i(e);return n(t)}function i(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=i,e.exports=o,o.id=323},129:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return be}});var r=function(){function e(e){var t=this;this._insertTag=function(e){var n;n=0===t.tags.length?t.insertionPoint?t.insertionPoint.nextSibling:t.prepend?t.container.firstChild:t.before:t.tags[t.tags.length-1].nextSibling,t.container.insertBefore(e,n),t.tags.push(e)},this.isSpeedy=void 0===e.speedy||e.speedy,this.tags=[],this.ctr=0,this.nonce=e.nonce,this.key=e.key,this.container=e.container,this.prepend=e.prepend,this.insertionPoint=e.insertionPoint,this.before=null}var t=e.prototype;return t.hydrate=function(e){e.forEach(this._insertTag)},t.insert=function(e){this.ctr%(this.isSpeedy?65e3:1)==0&&this._insertTag(function(e){var t=document.createElement("style");return t.setAttribute("data-emotion",e.key),void 0!==e.nonce&&t.setAttribute("nonce",e.nonce),t.appendChild(document.createTextNode("")),t.setAttribute("data-s",""),t}(this));var t=this.tags[this.tags.length-1];if(this.isSpeedy){var n=function(e){if(e.sheet)return e.sheet;for(var t=0;t0?u(b,--y):0,g--,10===_&&(g=1,m--),_}function O(){return _=y2||E(_)>3?"":" "}function M(e,t){for(;--t&&O()&&!(_<48||_>102||_>57&&_<65||_>70&&_<97););return A(e,C()+(t<6&&32==S()&&32==O()))}function R(e){for(;O();)switch(_){case e:return y;case 34:case 39:34!==e&&39!==e&&R(_);break;case 40:41===e&&R(e);break;case 92:O()}return y}function L(e,t){for(;O()&&e+_!==57&&(e+_!==84||47!==S()););return"/*"+A(t,y-1)+"*"+i(47===e?e:O())}function N(e){for(;!E(S());)O();return A(e,y)}var I="-ms-",z="-moz-",F="-webkit-",B="comm",U="rule",$="decl",q="@keyframes";function W(e,t){for(var n="",r=p(e),o=0;o0&&h(z)-v&&d(_>32?J(z+";",r,n,v-1):J(l(z," ","")+";",r,n,v-2),p);break;case 59:z+=";";default:if(d(I=V(z,t,n,m,g,o,f,T,P=[],R=[],v),a),123===E)if(0===g)G(z,t,I,I,P,a,v,f,R);else switch(99===y&&110===u(z,3)?100:y){case 100:case 108:case 109:case 115:G(e,I,I,r&&d(V(e,I,I,0,0,o,f,T,o,P=[],v),R),o,R,v,f,r?P:R);break;default:G(z,I,I,I,[""],R,0,f,R)}}m=g=_=0,w=A=1,T=z="",v=s;break;case 58:v=1+h(z),_=b;default:if(w<1)if(123==E)--w;else if(125==E&&0==w++&&125==x())continue;switch(z+=i(E),E*w){case 38:A=g>0?1:(z+="\f",-1);break;case 44:f[m++]=(h(z)-1)*A,A=1;break;case 64:45===S()&&(z+=D(O())),y=S(),g=v=h(T=z+=N(C())),E++;break;case 45:45===b&&2==h(z)&&(w=0)}}return a}function V(e,t,n,r,i,a,c,u,h,d,m){for(var g=i-1,v=0===i?a:[""],y=p(v),_=0,b=0,k=0;_0?v[x]+" "+O:l(O,/&\f/g,v[x])))&&(h[k++]=S);return w(e,t,n,0===i?U:u,h,d,m)}function X(e,t,n){return w(e,t,n,B,i(_),f(e,2,-2),0)}function J(e,t,n,r){return w(e,t,n,$,f(e,0,r),f(e,r+1,-1),r)}var Y=function(e,t,n){for(var r=0,o=0;r=o,o=S(),38===r&&12===o&&(t[n]=1),!E(o);)O();return A(e,y)},K=new WeakMap,Q=function(e){if("rule"===e.type&&e.parent&&!(e.length<1)){for(var t=e.value,n=e.parent,r=e.column===n.column&&e.line===n.line;"rule"!==n.type;)if(!(n=n.parent))return;if((1!==e.props.length||58===t.charCodeAt(0)||K.get(n))&&!r){K.set(e,!0);for(var o=[],a=function(e,t){return P(function(e,t){var n=-1,r=44;do{switch(E(r)){case 0:38===r&&12===S()&&(t[n]=1),e[n]+=Y(y-1,t,n);break;case 2:e[n]+=D(r);break;case 4:if(44===r){e[++n]=58===S()?"&\f":"",t[n]=e[n].length;break}default:e[n]+=i(r)}}while(r=O());return e}(T(e),t))}(t,o),s=n.props,l=0,c=0;l6)switch(u(e,t+1)){case 109:if(45!==u(e,t+4))break;case 102:return l(e,/(.+:)(.+)-([^]+)/,"$1"+F+"$2-$3$1"+z+(108==u(e,t+3)?"$3":"$2-$3"))+e;case 115:return~c(e,"stretch")?te(l(e,"stretch","fill-available"),t)+e:e}break;case 4949:if(115!==u(e,t+1))break;case 6444:switch(u(e,h(e)-3-(~c(e,"!important")&&10))){case 107:return l(e,":",":"+F)+e;case 101:return l(e,/(.+:)([^;!]+)(;|!.+)?/,"$1"+F+(45===u(e,14)?"inline-":"")+"box$3$1"+F+"$2$3$1"+I+"$2box$3")+e}break;case 5936:switch(u(e,t+11)){case 114:return F+e+I+l(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return F+e+I+l(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return F+e+I+l(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return F+e+I+e+e}return e}var ne=[function(e,t,n,r){if(e.length>-1&&!e.return)switch(e.type){case $:e.return=te(e.value,e.length);break;case q:return W([k(e,{value:l(e.value,"@","@"+F)})],r);case U:if(e.length)return function(e,t){return e.map(t).join("")}(e.props,(function(t){switch(function(e,t){return(e=/(::plac\w+|:read-\w+)/.exec(e))?e[0]:e}(t)){case":read-only":case":read-write":return W([k(e,{props:[l(t,/:(read-\w+)/,":-moz-$1")]})],r);case"::placeholder":return W([k(e,{props:[l(t,/:(plac\w+)/,":"+F+"input-$1")]}),k(e,{props:[l(t,/:(plac\w+)/,":-moz-$1")]}),k(e,{props:[l(t,/:(plac\w+)/,I+"input-$1")]})],r)}return""}))}}],re={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1};function oe(e){var t=Object.create(null);return function(n){return void 0===t[n]&&(t[n]=e(n)),t[n]}}var ie=!1,ae=/[A-Z]|^ms/g,se=/_EMO_([^_]+?)_([^]*?)_EMO_/g,le=function(e){return 45===e.charCodeAt(1)},ce=function(e){return null!=e&&"boolean"!=typeof e},ue=oe((function(e){return le(e)?e:e.replace(ae,"-$&").toLowerCase()})),fe=function(e,t){switch(e){case"animation":case"animationName":if("string"==typeof t)return t.replace(se,(function(e,t,n){return de={name:t,styles:n,next:de},t}))}return 1===re[e]||le(e)||"number"!=typeof t||0===t?t:t+"px"},he="Component selectors can only be used in conjunction with @emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware compiler transform.";function pe(e,t,n){if(null==n)return"";var r=n;if(void 0!==r.__emotion_styles)return r;switch(typeof n){case"boolean":return"";case"object":var o=n;if(1===o.anim)return de={name:o.name,styles:o.styles,next:de},o.name;var i=n;if(void 0!==i.styles){var a=i.next;if(void 0!==a)for(;void 0!==a;)de={name:a.name,styles:a.styles,next:de},a=a.next;return i.styles+";"}return function(e,t,n){var r="";if(Array.isArray(n))for(var o=0;o=4;++r,o-=4)t=1540483477*(65535&(t=255&e.charCodeAt(r)|(255&e.charCodeAt(++r))<<8|(255&e.charCodeAt(++r))<<16|(255&e.charCodeAt(++r))<<24))+(59797*(t>>>16)<<16),n=1540483477*(65535&(t^=t>>>24))+(59797*(t>>>16)<<16)^1540483477*(65535&n)+(59797*(n>>>16)<<16);switch(o){case 3:n^=(255&e.charCodeAt(r+2))<<16;case 2:n^=(255&e.charCodeAt(r+1))<<8;case 1:n=1540483477*(65535&(n^=255&e.charCodeAt(r)))+(59797*(n>>>16)<<16)}return(((n=1540483477*(65535&(n^=n>>>13))+(59797*(n>>>16)<<16))^n>>>15)>>>0).toString(36)}(o)+l;return{name:c,styles:o,next:de}}function ve(e,t,n){var r="";return n.split(" ").forEach((function(n){void 0!==e[n]?t.push(e[n]+";"):r+=n+" "})),r}function ye(e,t){if(void 0===e.inserted[t.name])return e.insert("",t,e.sheet,!0)}function _e(e,t,n){var r=[],o=ve(e,r,n);return r.length<2?n:o+t(r)}var be=function(e){var t=function(e){var t=e.key;if("css"===t){var n=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(n,(function(e){-1!==e.getAttribute("data-emotion").indexOf(" ")&&(document.head.appendChild(e),e.setAttribute("data-s",""))}))}var o,i,a=e.stylisPlugins||ne,s={},l=[];o=e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+t+' "]'),(function(e){for(var t=e.getAttribute("data-emotion").split(" "),n=1;n=0&&(t=e.slice(n+1),e=e.slice(0,n)),e&&!r.hasOwnProperty(e))throw new Error("unknown type: "+e);return{type:e,name:t}}))),l=-1,c=s.length;if(!(arguments.length<2)){if(null!=t&&"function"!=typeof t)throw new Error("invalid callback: "+t);for(;++l0)for(var n,r,o=new Array(n),i=0;i=t||n<0||f&&e-c>=i}function b(){var e=d();if(_(e))return w(e);s=setTimeout(b,function(e){var n=t-(e-l);return f?p(n,i-(e-c)):n}(e))}function w(e){return s=void 0,v&&r?y(e):(r=o=void 0,a)}function k(){var e=d(),n=_(e);if(r=arguments,o=this,l=e,n){if(void 0===s)return function(e){return c=e,s=setTimeout(b,t),u?y(e):a}(l);if(f)return s=setTimeout(b,t),y(l)}return void 0===s&&(s=setTimeout(b,t)),a}return t=g(t)||0,m(n)&&(u=!!n.leading,i=(f="maxWait"in n)?h(g(n.maxWait)||0,t):i,v="trailing"in n?!!n.trailing:v),k.cancel=function(){void 0!==s&&clearTimeout(s),c=0,r=l=o=s=void 0},k.flush=function(){return void 0===s?a:w(d())},k}},1324:function(e,t,n){e=n.nmd(e);var r="__lodash_hash_undefined__",o=1,i=2,a=1/0,s=9007199254740991,l="[object Arguments]",c="[object Array]",u="[object Boolean]",f="[object Date]",h="[object Error]",p="[object Function]",d="[object GeneratorFunction]",m="[object Map]",g="[object Number]",v="[object Object]",y="[object Promise]",_="[object RegExp]",b="[object Set]",w="[object String]",k="[object Symbol]",x="[object WeakMap]",O="[object ArrayBuffer]",S="[object DataView]",C=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,A=/^\w*$/,E=/^\./,T=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,P=/\\(\\)?/g,D=/^\[object .+?Constructor\]$/,j=/^(?:0|[1-9]\d*)$/,M={};M["[object Float32Array]"]=M["[object Float64Array]"]=M["[object Int8Array]"]=M["[object Int16Array]"]=M["[object Int32Array]"]=M["[object Uint8Array]"]=M["[object Uint8ClampedArray]"]=M["[object Uint16Array]"]=M["[object Uint32Array]"]=!0,M[l]=M[c]=M[O]=M[u]=M[S]=M[f]=M[h]=M[p]=M[m]=M[g]=M[v]=M[_]=M[b]=M[w]=M[x]=!1;var R="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,L="object"==typeof self&&self&&self.Object===Object&&self,N=R||L||Function("return this")(),I=t&&!t.nodeType&&t,z=I&&e&&!e.nodeType&&e,F=z&&z.exports===I&&R.process,B=function(){try{return F&&F.binding("util")}catch(e){}}(),U=B&&B.isTypedArray;function $(e,t,n,r){for(var o=-1,i=e?e.length:0;++o-1},Se.prototype.set=function(e,t){var n=this.__data__,r=Te(n,e);return r<0?n.push([e,t]):n[r][1]=t,this},Ce.prototype.clear=function(){this.__data__={hash:new Oe,map:new(fe||Se),string:new Oe}},Ce.prototype.delete=function(e){return Fe(this,e).delete(e)},Ce.prototype.get=function(e){return Fe(this,e).get(e)},Ce.prototype.has=function(e){return Fe(this,e).has(e)},Ce.prototype.set=function(e,t){return Fe(this,e).set(e,t),this},Ae.prototype.add=Ae.prototype.push=function(e){return this.__data__.set(e,r),this},Ae.prototype.has=function(e){return this.__data__.has(e)},Ee.prototype.clear=function(){this.__data__=new Se},Ee.prototype.delete=function(e){return this.__data__.delete(e)},Ee.prototype.get=function(e){return this.__data__.get(e)},Ee.prototype.has=function(e){return this.__data__.has(e)},Ee.prototype.set=function(e,t){var n=this.__data__;if(n instanceof Se){var r=n.__data__;if(!fe||r.length<199)return r.push([e,t]),this;n=this.__data__=new Ce(r)}return n.set(e,t),this};var De,je=(De=function(e,t){return e&&Me(e,t,lt)},function(e,t){if(null==e)return e;if(!tt(e))return De(e,t);for(var n=e.length,r=-1,o=Object(e);++rc))return!1;var f=s.get(e);if(f&&s.get(t))return f==t;var h=-1,p=!0,d=a&o?new Ae:void 0;for(s.set(e,t),s.set(t,e);++h-1&&e%1==0&&e-1&&e%1==0&&e<=s}function ot(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function it(e){return!!e&&"object"==typeof e}function at(e){return"symbol"==typeof e||it(e)&&re.call(e)==k}var st=U?function(e){return function(t){return e(t)}}(U):function(e){return it(e)&&rt(e.length)&&!!M[re.call(e)]};function lt(e){return tt(e)?function(e,t){var n=et(e)||Qe(e)?function(e,t){for(var n=-1,r=Array(e);++n=t||n<0||h&&e-u>=a}function w(){var e=v();if(b(e))return k(e);l=setTimeout(w,function(e){var n=t-(e-c);return h?g(n,a-(e-u)):n}(e))}function k(e){return l=void 0,p&&o?d(e):(o=i=void 0,s)}function x(){var e=v(),n=b(e);if(o=arguments,i=this,c=e,n){if(void 0===l)return function(e){return u=e,l=setTimeout(w,t),f?d(e):s}(c);if(h)return l=setTimeout(w,t),d(c)}return void 0===l&&(l=setTimeout(w,t)),s}return t=_(t)||0,y(n)&&(f=!!n.leading,a=(h="maxWait"in n)?m(_(n.maxWait)||0,t):a,p="trailing"in n?!!n.trailing:p),x.cancel=function(){void 0!==l&&clearTimeout(l),u=0,o=c=i=l=void 0},x.flush=function(){return void 0===l?s:k(v())},x}(e,t,{leading:o,maxWait:t,trailing:i})}},7975:function(e){"use strict";function t(e){if("string"!=typeof e)throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}function n(e,t){for(var n,r="",o=0,i=-1,a=0,s=0;s<=e.length;++s){if(s2){var l=r.lastIndexOf("/");if(l!==r.length-1){-1===l?(r="",o=0):o=(r=r.slice(0,l)).length-1-r.lastIndexOf("/"),i=s,a=0;continue}}else if(2===r.length||1===r.length){r="",o=0,i=s,a=0;continue}t&&(r.length>0?r+="/..":r="..",o=2)}else r.length>0?r+="/"+e.slice(i+1,s):r=e.slice(i+1,s),o=s-i-1;i=s,a=0}else 46===n&&-1!==a?++a:a=-1}return r}var r={resolve:function(){for(var e,r="",o=!1,i=arguments.length-1;i>=-1&&!o;i--){var a;i>=0?a=arguments[i]:(void 0===e&&(e=process.cwd()),a=e),t(a),0!==a.length&&(r=a+"/"+r,o=47===a.charCodeAt(0))}return r=n(r,!o),o?r.length>0?"/"+r:"/":r.length>0?r:"."},normalize:function(e){if(t(e),0===e.length)return".";var r=47===e.charCodeAt(0),o=47===e.charCodeAt(e.length-1);return 0!==(e=n(e,!r)).length||r||(e="."),e.length>0&&o&&(e+="/"),r?"/"+e:e},isAbsolute:function(e){return t(e),e.length>0&&47===e.charCodeAt(0)},join:function(){if(0===arguments.length)return".";for(var e,n=0;n0&&(void 0===e?e=o:e+="/"+o)}return void 0===e?".":r.normalize(e)},relative:function(e,n){if(t(e),t(n),e===n)return"";if((e=r.resolve(e))===(n=r.resolve(n)))return"";for(var o=1;oc){if(47===n.charCodeAt(s+f))return n.slice(s+f+1);if(0===f)return n.slice(s+f)}else a>c&&(47===e.charCodeAt(o+f)?u=f:0===f&&(u=0));break}var h=e.charCodeAt(o+f);if(h!==n.charCodeAt(s+f))break;47===h&&(u=f)}var p="";for(f=o+u+1;f<=i;++f)f!==i&&47!==e.charCodeAt(f)||(0===p.length?p+="..":p+="/..");return p.length>0?p+n.slice(s+u):(s+=u,47===n.charCodeAt(s)&&++s,n.slice(s))},_makeLong:function(e){return e},dirname:function(e){if(t(e),0===e.length)return".";for(var n=e.charCodeAt(0),r=47===n,o=-1,i=!0,a=e.length-1;a>=1;--a)if(47===(n=e.charCodeAt(a))){if(!i){o=a;break}}else i=!1;return-1===o?r?"/":".":r&&1===o?"//":e.slice(0,o)},basename:function(e,n){if(void 0!==n&&"string"!=typeof n)throw new TypeError('"ext" argument must be a string');t(e);var r,o=0,i=-1,a=!0;if(void 0!==n&&n.length>0&&n.length<=e.length){if(n.length===e.length&&n===e)return"";var s=n.length-1,l=-1;for(r=e.length-1;r>=0;--r){var c=e.charCodeAt(r);if(47===c){if(!a){o=r+1;break}}else-1===l&&(a=!1,l=r+1),s>=0&&(c===n.charCodeAt(s)?-1==--s&&(i=r):(s=-1,i=l))}return o===i?i=l:-1===i&&(i=e.length),e.slice(o,i)}for(r=e.length-1;r>=0;--r)if(47===e.charCodeAt(r)){if(!a){o=r+1;break}}else-1===i&&(a=!1,i=r+1);return-1===i?"":e.slice(o,i)},extname:function(e){t(e);for(var n=-1,r=0,o=-1,i=!0,a=0,s=e.length-1;s>=0;--s){var l=e.charCodeAt(s);if(47!==l)-1===o&&(i=!1,o=s+1),46===l?-1===n?n=s:1!==a&&(a=1):-1!==n&&(a=-1);else if(!i){r=s+1;break}}return-1===n||-1===o||0===a||1===a&&n===o-1&&n===r+1?"":e.slice(n,o)},format:function(e){if(null===e||"object"!=typeof e)throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof e);return function(e,t){var n=t.dir||t.root,r=t.base||(t.name||"")+(t.ext||"");return n?n===t.root?n+r:n+"/"+r:r}(0,e)},parse:function(e){t(e);var n={root:"",dir:"",base:"",ext:"",name:""};if(0===e.length)return n;var r,o=e.charCodeAt(0),i=47===o;i?(n.root="/",r=1):r=0;for(var a=-1,s=0,l=-1,c=!0,u=e.length-1,f=0;u>=r;--u)if(47!==(o=e.charCodeAt(u)))-1===l&&(c=!1,l=u+1),46===o?-1===a?a=u:1!==f&&(f=1):-1!==a&&(f=-1);else if(!c){s=u+1;break}return-1===a||-1===l||0===f||1===f&&a===l-1&&a===s+1?-1!==l&&(n.base=n.name=0===s&&i?e.slice(1,l):e.slice(s,l)):(0===s&&i?(n.name=e.slice(1,a),n.base=e.slice(1,l)):(n.name=e.slice(s,a),n.base=e.slice(s,l)),n.ext=e.slice(a,l)),s>0?n.dir=e.slice(0,s-1):i&&(n.dir="/"),n},sep:"/",delimiter:":",win32:null,posix:null};r.posix=r,e.exports=r},3034:function(e,t,n){"use strict";n.r(t),n.d(t,{resetPropWarnings:function(){return a}});var r,o=n(172);null!=(r="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0)&&r.__PREACT_DEVTOOLS__&&r.__PREACT_DEVTOOLS__.attachPreact("10.23.2",o.options,{Fragment:o.Fragment,Component:o.Component});var i={};function a(){i={}}function s(e){return e.type===o.Fragment?"Fragment":"function"==typeof e.type?e.type.displayName||e.type.name:"string"==typeof e.type?e.type:"#text"}var l=[],c=[];function u(){return l.length>0?l[l.length-1]:null}var f=!0;function h(e){return"function"==typeof e.type&&e.type!=o.Fragment}function p(e){for(var t=[e],n=e;null!=n.__o;)t.push(n.__o),n=n.__o;return t.reduce((function(e,t){e+=" in "+s(t);var n=t.__source;return n?e+=" (at "+n.fileName+":"+n.lineNumber+")":f&&console.warn("Add @babel/plugin-transform-react-jsx-source to get a more detailed component stack. Note that you should not add it to production builds of your App for bundle size reasons."),f=!1,e+"\n"}),"")}var d="function"==typeof WeakMap;function m(e){var t=[];return e.__k?(e.__k.forEach((function(e){e&&"function"==typeof e.type?t.push.apply(t,m(e)):e&&"string"==typeof e.type&&t.push(e.type)})),t):t}function g(e){return e?"function"==typeof e.type?null==e.__?null!=e.__e&&null!=e.__e.parentNode?e.__e.parentNode.localName:"":g(e.__):e.type:""}var v=o.Component.prototype.setState;function y(e){return"table"===e||"tfoot"===e||"tbody"===e||"thead"===e||"td"===e||"tr"===e||"th"===e}o.Component.prototype.setState=function(e,t){return null==this.__v&&null==this.state&&console.warn('Calling "this.setState" inside the constructor of a component is a no-op and might be a bug in your application. Instead, set "this.state = {}" directly.\n\n'+p(u())),v.call(this,e,t)};var _=/^(address|article|aside|blockquote|details|div|dl|fieldset|figcaption|figure|footer|form|h1|h2|h3|h4|h5|h6|header|hgroup|hr|main|menu|nav|ol|p|pre|search|section|table|ul)$/,b=o.Component.prototype.forceUpdate;function w(e){var t=e.props,n=s(e),r="";for(var o in t)if(t.hasOwnProperty(o)&&"children"!==o){var i=t[o];"function"==typeof i&&(i="function "+(i.displayName||i.name)+"() {}"),i=Object(i)!==i||i.toString?i+"":Object.prototype.toString.call(i),r+=" "+o+"="+JSON.stringify(i)}var a=t.children;return"<"+n+r+(a&&a.length?">..":" />")}o.Component.prototype.forceUpdate=function(e){return null==this.__v?console.warn('Calling "this.forceUpdate" inside the constructor of a component is a no-op and might be a bug in your application.\n\n'+p(u())):null==this.__P&&console.warn('Can\'t call "this.forceUpdate" on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in the componentWillUnmount method.\n\n'+p(this.__v)),b.call(this,e)},function(){!function(){var e=o.options.__b,t=o.options.diffed,n=o.options.__,r=o.options.vnode,i=o.options.__r;o.options.diffed=function(e){h(e)&&c.pop(),l.pop(),t&&t(e)},o.options.__b=function(t){h(t)&&l.push(t),e&&e(t)},o.options.__=function(e,t){c=[],n&&n(e,t)},o.options.vnode=function(e){e.__o=c.length>0?c[c.length-1]:null,r&&r(e)},o.options.__r=function(e){h(e)&&c.push(e),i&&i(e)}}();var e=!1,t=o.options.__b,n=o.options.diffed,r=o.options.vnode,a=o.options.__r,u=o.options.__e,f=o.options.__,v=o.options.__h,b=d?{useEffect:new WeakMap,useLayoutEffect:new WeakMap,lazyPropTypes:new WeakMap}:null,k=[];o.options.__e=function(e,t,n,r){if(t&&t.__c&&"function"==typeof e.then){var o=e;e=new Error("Missing Suspense. The throwing component was: "+s(t));for(var i=t;i;i=i.__)if(i.__c&&i.__c.__c){e=o;break}if(e instanceof Error)throw e}try{(r=r||{}).componentStack=p(t),u(e,t,n,r),"function"!=typeof e.then&&setTimeout((function(){throw e}))}catch(e){throw e}},o.options.__=function(e,t){if(!t)throw new Error("Undefined parent passed to render(), this is the second argument.\nCheck if the element is available in the DOM/has the correct id.");var n;switch(t.nodeType){case 1:case 11:case 9:n=!0;break;default:n=!1}if(!n){var r=s(e);throw new Error("Expected a valid HTML node as a second argument to render.\tReceived "+t+" instead: render(<"+r+" />, "+t+");")}f&&f(e,t)},o.options.__b=function(n){var r=n.type;if(e=!0,void 0===r)throw new Error("Undefined component passed to createElement()\n\nYou likely forgot to export your component or might have mixed up default and named imports"+w(n)+"\n\n"+p(n));if(null!=r&&"object"==typeof r){if(void 0!==r.__k&&void 0!==r.__e)throw new Error("Invalid type passed to createElement(): "+r+"\n\nDid you accidentally pass a JSX literal as JSX twice?\n\n let My"+s(n)+" = "+w(r)+";\n let vnode = ;\n\nThis usually happens when you export a JSX literal and not the component.\n\n"+p(n));throw new Error("Invalid type passed to createElement(): "+(Array.isArray(r)?"array":r))}if(void 0!==n.ref&&"function"!=typeof n.ref&&"object"!=typeof n.ref&&!("$$typeof"in n))throw new Error('Component\'s "ref" property should be a function, or an object created by createRef(), but got ['+typeof n.ref+"] instead\n"+w(n)+"\n\n"+p(n));if("string"==typeof n.type)for(var o in n.props)if("o"===o[0]&&"n"===o[1]&&"function"!=typeof n.props[o]&&null!=n.props[o])throw new Error("Component's \""+o+'" property should be a function, but got ['+typeof n.props[o]+"] instead\n"+w(n)+"\n\n"+p(n));if("function"==typeof n.type&&n.type.propTypes){if("Lazy"===n.type.displayName&&b&&!b.lazyPropTypes.has(n.type)){var a="PropTypes are not supported on lazy(). Use propTypes on the wrapped component itself. ";try{var l=n.type();b.lazyPropTypes.set(n.type,!0),console.warn(a+"Component wrapped in lazy() is "+s(l))}catch(e){console.warn(a+"We will log the wrapped component's name once it is loaded.")}}var c=n.props;n.type.__f&&delete(c=function(e,t){for(var n in t)e[n]=t[n];return e}({},c)).ref,function(e,t,n,r,o){Object.keys(e).forEach((function(n){var a;try{a=e[n](t,n,r,"prop",null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(e){a=e}a&&!(a.message in i)&&(i[a.message]=!0,console.error("Failed prop type: "+a.message+(o&&"\n"+o()||"")))}))}(n.type.propTypes,c,0,s(n),(function(){return p(n)}))}t&&t(n)};var x,O=0;o.options.__r=function(t){a&&a(t),e=!0;var n=t.__c;if(n===x?O++:O=1,O>=25)throw new Error("Too many re-renders. This is limited to prevent an infinite loop which may lock up your browser. The component causing this is: "+s(t));x=n},o.options.__h=function(t,n,r){if(!t||!e)throw new Error("Hook can only be invoked from render methods.");v&&v(t,n,r)};var S=function(e,t){return{get:function(){var n="get"+e+t;k&&k.indexOf(n)<0&&(k.push(n),console.warn("getting vnode."+e+" is deprecated, "+t))},set:function(){var n="set"+e+t;k&&k.indexOf(n)<0&&(k.push(n),console.warn("setting vnode."+e+" is not allowed, "+t))}}},C={nodeName:S("nodeName","use vnode.type"),attributes:S("attributes","use vnode.props"),children:S("children","use vnode.props.children")},A=Object.create({},C);o.options.vnode=function(e){var t=e.props;if(null!==e.type&&null!=t&&("__source"in t||"__self"in t)){var n=e.props={};for(var o in t){var i=t[o];"__source"===o?e.__source=i:"__self"===o?e.__self=i:n[o]=i}}e.__proto__=A,r&&r(e)},o.options.diffed=function(t){var r,o=t.type,i=t.__;if(t.__k&&t.__k.forEach((function(e){if("object"==typeof e&&e&&void 0===e.type){var n=Object.keys(e).join(",");throw new Error("Objects are not valid as a child. Encountered an object with the keys {"+n+"}.\n\n"+p(t))}})),t.__c===x&&(O=0),"string"==typeof o&&(y(o)||"p"===o||"a"===o||"button"===o)){var a=g(i);if(""!==a&&y(o))"table"===o&&"td"!==a&&y(a)?(console.log(a,i.__e),console.error("Improper nesting of table. Your
should not have a table-node parent."+w(t)+"\n\n"+p(t))):"thead"!==o&&"tfoot"!==o&&"tbody"!==o||"table"===a?"tr"===o&&"thead"!==a&&"tfoot"!==a&&"tbody"!==a?console.error("Improper nesting of table. Your should have a parent."+w(t)+"\n\n"+p(t)):"td"===o&&"tr"!==a?console.error("Improper nesting of table. Your parent."+w(t)+"\n\n"+p(t)):"th"===o&&"tr"!==a&&console.error("Improper nesting of table. Your ."+w(t)+"\n\n"+p(t)):console.error("Improper nesting of table. Your should have a
should have a
should have a
parent."+w(t)+"\n\n"+p(t));else if("p"===o){var l=m(t).filter((function(e){return _.test(e)}));l.length&&console.error("Improper nesting of paragraph. Your

should not have "+l.join(", ")+"as child-elements."+w(t)+"\n\n"+p(t))}else"a"!==o&&"button"!==o||-1!==m(t).indexOf(o)&&console.error("Improper nesting of interactive content. Your <"+o+"> should not have other "+("a"===o?"anchor":"button")+" tags as child-elements."+w(t)+"\n\n"+p(t))}if(e=!1,n&&n(t),null!=t.__k)for(var c=[],u=0;u2&&(s.children=arguments.length>3?r.call(arguments,2):n),"function"==typeof e&&null!=e.defaultProps)for(a in e.defaultProps)void 0===s[a]&&(s[a]=e.defaultProps[a]);return k(e,s,o,i,null)}function k(e,t,n,r,a){var s={type:e,props:t,key:n,ref:r,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:null==a?++i:a,__i:-1,__u:0};return null==a&&null!=o.vnode&&o.vnode(s),s}function x(){return{current:null}}function O(e){return e.children}function S(e,t){this.props=e,this.context=t}function C(e,t){if(null==t)return e.__?C(e.__,e.__i+1):null;for(var n;tt&&s.sort(u));T.__r=0}function P(e,t,n,r,o,i,a,s,l,c,u){var f,h,p,d,v,y=r&&r.__k||g,_=t.length;for(n.__d=l,D(n,t,y),l=n.__d,f=0;f<_;f++)null!=(p=n.__k[f])&&"boolean"!=typeof p&&"function"!=typeof p&&(h=-1===p.__i?m:y[p.__i]||m,p.__i=f,z(e,p,h,o,i,a,s,l,c,u),d=p.__e,p.ref&&h.ref!=p.ref&&(h.ref&&U(h.ref,null,p),u.push(p.ref,p.__c||d,p)),null==v&&null!=d&&(v=d),65536&p.__u||h.__k===p.__k?l=j(p,l,e):"function"==typeof p.type&&void 0!==p.__d?l=p.__d:d&&(l=d.nextSibling),p.__d=void 0,p.__u&=-196609);n.__d=l,n.__e=v}function D(e,t,n){var r,o,i,a,s,l=t.length,c=n.length,u=c,f=0;for(e.__k=[],r=0;r0?k(o.type,o.props,o.key,o.ref?o.ref:null,o.__v):o)?(o.__=e,o.__b=e.__b+1,s=R(o,n,a,u),o.__i=s,i=null,-1!==s&&(u--,(i=n[s])&&(i.__u|=131072)),null==i||null===i.__v?(-1==s&&f--,"function"!=typeof o.type&&(o.__u|=65536)):s!==a&&(s==a-1?f--:s==a+1?f++:s>a?u>l-a?f+=s-a:f--:s(null==l||131072&l.__u?0:1))for(;a>=0||s=0){if((l=t[a])&&!(131072&l.__u)&&o==l.key&&i===l.type)return a;a--}if(s2&&(l.children=arguments.length>3?r.call(arguments,2):n),k(e.type,l,o||e.key,i||e.ref,null)}function G(e,t){var n={__c:t="__cC"+d++,__:e,Consumer:function(e,t){return e.children(t)},Provider:function(e){var n,r;return this.getChildContext||(n=[],(r={})[t]=this,this.getChildContext=function(){return r},this.componentWillUnmount=function(){n=null},this.shouldComponentUpdate=function(e){this.props.value!==e.value&&n.some((function(e){e.__e=!0,E(e)}))},this.sub=function(e){n.push(e);var t=e.componentWillUnmount;e.componentWillUnmount=function(){n&&n.splice(n.indexOf(e),1),t&&t.call(e)}}),e.children}};return n.Provider.__=n.Consumer.contextType=n}r=g.slice,o={__e:function(e,t,n,r){for(var o,i,a;t=t.__;)if((o=t.__c)&&!o.__)try{if((i=o.constructor)&&null!=i.getDerivedStateFromError&&(o.setState(i.getDerivedStateFromError(e)),a=o.__d),null!=o.componentDidCatch&&(o.componentDidCatch(e,r||{}),a=o.__d),a)return o.__E=o}catch(t){e=t}throw e}},i=0,a=function(e){return null!=e&&null==e.constructor},S.prototype.setState=function(e,t){var n;n=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=_({},this.state),"function"==typeof e&&(e=e(_({},n),this.props)),e&&_(n,e),null!=e&&this.__v&&(t&&this._sb.push(t),E(this))},S.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),E(this))},S.prototype.render=O,s=[],c="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,u=function(e,t){return e.__v.__b-t.__v.__b},T.__r=0,f=0,h=I(!1),p=I(!0),d=0},5697:function(e,t,n){"use strict";n.r(t);var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},r(e,t)};function o(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}function i(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a}var a=function(e,t){this.target=t,this.type=e},s=function(e){function t(t,n){var r=e.call(this,"error",n)||this;return r.message=t.message,r.error=t,r}return o(t,e),t}(a),l=function(e){function t(t,n,r){void 0===t&&(t=1e3),void 0===n&&(n="");var o=e.call(this,"close",r)||this;return o.wasClean=!0,o.code=t,o.reason=n,o}return o(t,e),t}(a),c=function(){if("undefined"!=typeof WebSocket)return WebSocket},u={maxReconnectionDelay:1e4,minReconnectionDelay:1e3+4e3*Math.random(),minUptime:5e3,reconnectionDelayGrowFactor:1.3,connectionTimeout:4e3,maxRetries:1/0,maxEnqueuedMessages:1/0,startClosed:!1,debug:!1},f=function(){function e(e,t,n){var r=this;void 0===n&&(n={}),this._listeners={error:[],message:[],open:[],close:[]},this._retryCount=-1,this._shouldReconnect=!0,this._connectLock=!1,this._binaryType="blob",this._closeCalled=!1,this._messageQueue=[],this.onclose=null,this.onerror=null,this.onmessage=null,this.onopen=null,this._handleOpen=function(e){r._debug("open event");var t=r._options.minUptime,n=void 0===t?u.minUptime:t;clearTimeout(r._connectTimeout),r._uptimeTimeout=setTimeout((function(){return r._acceptOpen()}),n),r._ws.binaryType=r._binaryType,r._messageQueue.forEach((function(e){return r._ws.send(e)})),r._messageQueue=[],r.onopen&&r.onopen(e),r._listeners.open.forEach((function(t){return r._callEventListener(e,t)}))},this._handleMessage=function(e){r._debug("message event"),r.onmessage&&r.onmessage(e),r._listeners.message.forEach((function(t){return r._callEventListener(e,t)}))},this._handleError=function(e){r._debug("error event",e.message),r._disconnect(void 0,"TIMEOUT"===e.message?"timeout":void 0),r.onerror&&r.onerror(e),r._debug("exec error listeners"),r._listeners.error.forEach((function(t){return r._callEventListener(e,t)})),r._connect()},this._handleClose=function(e){r._debug("close event"),r._clearTimeouts(),r._shouldReconnect&&r._connect(),r.onclose&&r.onclose(e),r._listeners.close.forEach((function(t){return r._callEventListener(e,t)}))},this._url=e,this._protocols=t,this._options=n,this._options.startClosed&&(this._shouldReconnect=!1),this._connect()}return Object.defineProperty(e,"CONNECTING",{get:function(){return 0},enumerable:!0,configurable:!0}),Object.defineProperty(e,"OPEN",{get:function(){return 1},enumerable:!0,configurable:!0}),Object.defineProperty(e,"CLOSING",{get:function(){return 2},enumerable:!0,configurable:!0}),Object.defineProperty(e,"CLOSED",{get:function(){return 3},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"CONNECTING",{get:function(){return e.CONNECTING},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"OPEN",{get:function(){return e.OPEN},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"CLOSING",{get:function(){return e.CLOSING},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"CLOSED",{get:function(){return e.CLOSED},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"binaryType",{get:function(){return this._ws?this._ws.binaryType:this._binaryType},set:function(e){this._binaryType=e,this._ws&&(this._ws.binaryType=e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"retryCount",{get:function(){return Math.max(this._retryCount,0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"bufferedAmount",{get:function(){return this._messageQueue.reduce((function(e,t){return"string"==typeof t?e+=t.length:t instanceof Blob?e+=t.size:e+=t.byteLength,e}),0)+(this._ws?this._ws.bufferedAmount:0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"extensions",{get:function(){return this._ws?this._ws.extensions:""},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"protocol",{get:function(){return this._ws?this._ws.protocol:""},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"readyState",{get:function(){return this._ws?this._ws.readyState:this._options.startClosed?e.CLOSED:e.CONNECTING},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"url",{get:function(){return this._ws?this._ws.url:""},enumerable:!0,configurable:!0}),e.prototype.close=function(e,t){void 0===e&&(e=1e3),this._closeCalled=!0,this._shouldReconnect=!1,this._clearTimeouts(),this._ws?this._ws.readyState!==this.CLOSED?this._ws.close(e,t):this._debug("close: already closed"):this._debug("close enqueued: no ws instance")},e.prototype.reconnect=function(e,t){this._shouldReconnect=!0,this._closeCalled=!1,this._retryCount=-1,this._ws&&this._ws.readyState!==this.CLOSED?(this._disconnect(e,t),this._connect()):this._connect()},e.prototype.send=function(e){if(this._ws&&this._ws.readyState===this.OPEN)this._debug("send",e),this._ws.send(e);else{var t=this._options.maxEnqueuedMessages,n=void 0===t?u.maxEnqueuedMessages:t;this._messageQueue.length=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}}}(r),i=o.next();!i.done;i=o.next()){var a=i.value;this._callEventListener(e,a)}}catch(e){t={error:e}}finally{try{i&&!i.done&&(n=o.return)&&n.call(o)}finally{if(t)throw t.error}}return!0},e.prototype.removeEventListener=function(e,t){this._listeners[e]&&(this._listeners[e]=this._listeners[e].filter((function(e){return e!==t})))},e.prototype._debug=function(){for(var e=[],t=0;t"],e))},e.prototype._getNextDelay=function(){var e=this._options,t=e.reconnectionDelayGrowFactor,n=void 0===t?u.reconnectionDelayGrowFactor:t,r=e.minReconnectionDelay,o=void 0===r?u.minReconnectionDelay:r,i=e.maxReconnectionDelay,a=void 0===i?u.maxReconnectionDelay:i,s=0;return this._retryCount>0&&(s=o*Math.pow(n,this._retryCount-1))>a&&(s=a),this._debug("next delay",s),s},e.prototype._wait=function(){var e=this;return new Promise((function(t){setTimeout(t,e._getNextDelay())}))},e.prototype._getNextUrl=function(e){if("string"==typeof e)return Promise.resolve(e);if("function"==typeof e){var t=e();if("string"==typeof t)return Promise.resolve(t);if(t.then)return t}throw Error("Invalid URL")},e.prototype._connect=function(){var e=this;if(!this._connectLock&&this._shouldReconnect){this._connectLock=!0;var t=this._options,n=t.maxRetries,r=void 0===n?u.maxRetries:n,o=t.connectionTimeout,i=void 0===o?u.connectionTimeout:o,a=t.WebSocket,s=void 0===a?c():a;if(this._retryCount>=r)this._debug("max retries reached",this._retryCount,">=",r);else{if(this._retryCount++,this._debug("connect",this._retryCount),this._removeListeners(),void 0===(l=s)||!l||2!==l.CLOSING)throw Error("No valid WebSocket class provided");var l;this._wait().then((function(){return e._getNextUrl(e._url)})).then((function(t){e._closeCalled||(e._debug("connect",{url:t,protocols:e._protocols}),e._ws=e._protocols?new s(t,e._protocols):new s(t),e._ws.binaryType=e._binaryType,e._connectLock=!1,e._addListeners(),e._connectTimeout=setTimeout((function(){return e._handleTimeout()}),i))}))}}},e.prototype._handleTimeout=function(){this._debug("timeout event"),this._handleError(new s(Error("TIMEOUT"),this))},e.prototype._disconnect=function(e,t){if(void 0===e&&(e=1e3),this._clearTimeouts(),this._ws){this._removeListeners();try{this._ws.close(e,t),this._handleClose(new l(e,t,this))}catch(e){}}},e.prototype._acceptOpen=function(){this._debug("accept open"),this._retryCount=0},e.prototype._callEventListener=function(e,t){"handleEvent"in t?t.handleEvent(e):t(e)},e.prototype._removeListeners=function(){this._ws&&(this._debug("removeListeners"),this._ws.removeEventListener("open",this._handleOpen),this._ws.removeEventListener("close",this._handleClose),this._ws.removeEventListener("message",this._handleMessage),this._ws.removeEventListener("error",this._handleError))},e.prototype._addListeners=function(){this._ws&&(this._debug("addListeners"),this._ws.addEventListener("open",this._handleOpen),this._ws.addEventListener("close",this._handleClose),this._ws.addEventListener("message",this._handleMessage),this._ws.addEventListener("error",this._handleError))},e.prototype._clearTimeouts=function(){clearTimeout(this._connectTimeout),clearTimeout(this._uptimeTimeout)},e}();t.default=f},78:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=n(172),i=r(n(5843));t.default=({mapZoomFactor:e,annotations:t})=>(0,o.h)("div",{"data-testid":"meridian--private--annotation-layer"},t.map(((t,n)=>"point"===t.type?(0,o.h)(i.default,Object.assign({key:n},t,{mapZoomFactor:e})):null)))},5843:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(172),o=n(2785),i=n(7746),a=({mapZoomFactor:e,x:t,y:n,size:o=24,backgroundColor:a="hsl(207, 65%, 46%)",backgroundSize:c="cover",backgroundImage:u,title:f,onClick:h,data:p={}})=>(0,r.h)("div",{className:s,style:{"--meridian-annotationPoint-x":`${t}px`,"--meridian-annotationPoint-y":`${n}px`,"--meridian-annotationPoint-scale":1/e,"--meridian-annotationPoint-size":`${o}px`,"--meridian-annotationPoint-backgroundColor":a,"--meridian-annotationPoint-backgroundSize":c,"--meridian-annotationPoint-backgroundImage":u?`url('${u}')`:"none",cursor:h?"pointer":"initial"},onClick:h?()=>(0,i.asyncClientCall)(h,p):void 0,"data-testid":"meridian--private--annotation-point"},f?(0,r.h)("div",{className:l,"data-testid":"meridian--private--annotation-point-title"},f):null),s=(0,o.css)({label:"AnnotationPoint",position:"absolute",top:"var(--meridian-annotationPoint-y)",left:"var(--meridian-annotationPoint-x)",transform:"translate(-50%, -50%) scale(var(--meridian-annotationPoint-scale))",width:"var(--meridian-annotationPoint-size)",height:"var(--meridian-annotationPoint-size)",backgroundColor:"var(--meridian-annotationPoint-backgroundColor)",backgroundImage:"var(--meridian-annotationPoint-backgroundImage)",backgroundSize:"var(--meridian-annotationPoint-backgroundSize)",backgroundRepeat:"no-repeat",backgroundPosition:"center",borderRadius:9999,userSelect:"none"}),l=(0,o.css)(o.mixins.textStrokeWhite,{label:"AnnotationPoint-Label",marginLeft:"50%",position:"absolute",minWidth:55,maxWidth:120,fontSize:14,textAlign:"center",marginTop:"var(--meridian-annotationPoint-size)",paddingTop:4,color:"#222",userSelect:"none",transform:"translate(-50%, 0)",fontWeight:"bold"});a.displayName="AnnotationPoint",t.default=a},2150:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=r(n(1324)),i=n(172),a=r(n(2930)),s=r(n(9594)),l=r(n(8828)),c=r(n(6933)),u=n(2785),f=r(n(7866)),h=n(7746);class p extends i.Component{constructor(){super(...arguments),this.state={searchFilter:"",searchType:this.props.showTags?"tags":"placemarks"},this.searchInputRef=(0,i.createRef)(),this.setRadioFilter=e=>{this.setState({searchType:e})}}componentDidMount(){this.searchInputRef.current&&this.searchInputRef.current.focus()}render(){const{floors:e,tagsLoading:t,placemarksLoading:n,toggleAssetListOverlay:r,showTags:a,showPlacemarks:s,language:u}=this.props,p=f.default.lookup("tags",u),g=f.default.lookup("search_tags",u),v=f.default.lookup("placemarks",u),y=f.default.lookup("search_placemarks",u),{searchFilter:_}=this.state,b=(0,h.createSearchMatcher)(_),w=(0,o.default)(e,(e=>e.id)),S={};for(const t of e)S[t.id]=[t.group_name||h.uiText.unnamedBuilding,h.uiText.enDash,t.name].join(" ");return(0,i.h)(l.default,{position:"right",onCloseClicked:()=>{r({open:!1})}},(0,i.h)(c.default,{placeholder:"tags"===this.state.searchType?g:y,value:_,onChange:e=>{this.setState({searchFilter:e})}}),(0,i.h)("div",{className:O(Boolean(a&&s))},a?(0,i.h)(i.Fragment,null,(0,i.h)("input",{type:"radio",name:"searchType",id:"tags",className:x,checked:"tags"===this.state.searchType,onChange:e=>{e.target.checked&&this.setRadioFilter("tags")}}),(0,i.h)("label",{for:"tags",className:k},p)):null,s?(0,i.h)(i.Fragment,null,(0,i.h)("input",{type:"radio",name:"searchType",id:"placemarks",className:x,checked:"placemarks"===this.state.searchType,onChange:e=>{e.target.checked&&this.setRadioFilter("placemarks")}}),(0,i.h)("label",{for:"placemarks",className:k},v)):null),(()=>"tags"===this.state.searchType?(0,i.h)(d,Object.assign({},this.props,{floorToGroup:S,floorsByID:w,match:b,loading:t})):(0,i.h)(m,Object.assign({},this.props,{floorToGroup:S,floorsByID:w,match:b,loading:n})))())}}function d(e){const{currentFloorID:t,updateMap:n,tagOptions:r={},tags:l,loading:c,onTagClick:p,toggleAssetListOverlay:d,match:m,floorsByID:k,floorToGroup:x,language:O}=e,S=f.default.lookup("no_results_found",O),C=l.filter((e=>{const t=k[e.map_id][0];return!t||t.published})).filter((e=>m(e.name||"")||m(e.mac)||(0,h.getTagLabels)(e).some(m))).filter((e=>!0===r.showControlTags||!e.is_control_tag)).sort(((e,t)=>e.namet.name?1:0)),A=(0,o.default)(C,(e=>x[e.map_id])),E=Object.keys(A).sort();return E.forEach(((e,n)=>{if(A[e][0].map_id===t){const[e]=E.splice(n,1);E.unshift(e)}})),c?(0,i.h)("div",{className:w},(0,i.h)(a.default,null)):0===C.length?(0,i.h)("div",{className:w},S,"."):(0,i.h)("div",{className:v},E.map((e=>(0,i.h)("div",{key:e},(0,i.h)("div",{className:g},e),A[e].map((e=>(0,i.h)("button",{key:e.id,"data-testid":`meridian--private--overlay-tag-${e.id}`,className:y,onClick:()=>{n({floorID:e.map_id,tags:Object.assign(Object.assign({},r),{filter:()=>!0})}),p(e),d({open:!1})}},(0,i.h)("div",{className:_},(0,i.h)("div",{className:b},e.name||e.mac),(0,i.h)(s.default,{align:"right",labels:(0,h.getTagLabels)(e),fontSize:u.theme.fontSizeSmallest})))))))))}function m(e){const{currentFloorID:t,updateMap:n,placemarkOptions:r={},toggleAssetListOverlay:s,floorToGroup:l,match:c,placemarks:u,onPlacemarkClick:h,floorsByID:p,loading:d,language:m}=e,_=f.default.lookup("no_results_found",m),k=u.filter((e=>{const t=p[e.map][0];return!t||t.published})).filter((e=>e.is_searchable||null===e.is_searchable||void 0===e.is_searchable)).filter((e=>"exclusion_area"!==e.type&&(!0===r.showHiddenPlacemarks||!e.hide_on_map))).filter((e=>c(e.name||"")||c(e.type_name||""))).sort(((e,t)=>e.namet.name?1:0)),x=(0,o.default)(k,(e=>l[e.map])),O=Object.keys(x).sort();return O.forEach(((e,n)=>{if(x[e][0].map_id===t){const[e]=O.splice(n,1);O.unshift(e)}})),d?(0,i.h)("div",{className:w},(0,i.h)(a.default,null)):0===k.length?(0,i.h)("div",{className:w},_,"."):(0,i.h)("div",{className:v},O.map((e=>(0,i.h)("div",{key:e},(0,i.h)("div",{className:g},e),x[e].map((e=>(0,i.h)("button",{key:e.id,"data-testid":`meridian--private--overlay-tag-${e.id}`,className:y,onClick:()=>{n({floorID:e.map,placemarks:Object.assign(Object.assign({},r),{filter:()=>!0})}),h(e),s({open:!1})}},(0,i.h)("div",{className:b},e.name||e.type_name))))))))}const g=(0,u.css)({label:"overlay-building-name",top:0,position:"sticky",textTransform:"uppercase",fontWeight:"bold",color:u.theme.brandBlue,background:u.theme.almostWhite,fontSize:u.theme.fontSizeSmaller,padding:10}),v=(0,u.css)({label:"asset-list",overflowY:"auto",flex:"1 1 auto"}),y=(0,u.css)(u.mixins.buttonReset,u.mixins.focusRingMenuItem,u.mixins.buttonHoverActive,{label:"overlay-asset-button",minHeight:56,padding:10,paddingLeft:20,display:"block",width:"100%",textAlign:"left"}),_=(0,u.css)(u.mixins.flexRow,{label:"overlay-asset-button-inner",alignItems:"center"}),b=(0,u.css)({label:"overlay-asset-button-name",flex:"1 1 auto"}),w=(0,u.css)({label:"overlay-asset-list-empty",padding:"60px 20px",textAlign:"center",fontSize:u.theme.fontSizeBigger,color:u.theme.textColorBluish}),k=(0,u.css)({label:"overlay-radio-label",color:"white",padding:"2px 10px 0px 4px"}),x=(0,u.css)({label:"overlay-radio-button",WebkitAppearance:"none",position:"relative",boxSizing:"border-box",border:"1px solid rgb(224,224,225)",width:16,height:16,background:"white",borderRadius:9999,cursor:"pointer",boxShadow:"inset 0 2px 2px rgba(0, 0, 0, 0.1)","&:focus":{outline:"none",borderColor:u.theme.searchBarColor,borderWidth:2},"&:checked":{"--circle-color":u.theme.searchBarColor,"--circle-gap":"4px"},"&:checked::after":{content:'" "',position:"absolute",width:"calc(100% - var(--circle-gap))",height:"calc(100% - var(--circle-gap))",left:"calc(var(--circle-gap) / 2)",top:"calc(var(--circle-gap) / 2)",background:"var(--circle-color)",borderRadius:9999},"&:checked:focus":{"--circle-gap":"4px","--circle-color":u.theme.searchBarColor,borderColor:u.theme.searchBarColor,borderWidth:2}}),O=e=>(0,u.css)({label:"overlay-radio-container",display:e?"flex":"none",flexDirection:"row",justifyContent:"baseline",paddingLeft:10,paddingBottom:10,backgroundColor:"rgb(105, 146, 176)",alignItems:"center"});t.default=p},324:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=n(172),i=r(n(9594)),a=r(n(8828)),s=n(2785),l=n(7746),c=n(4221),u=(0,s.css)({label:"overlay-image",width:"100%",backgroundColor:"white",backgroundPosition:"center",backgroundRepeat:"no-repeat",backgroundSize:"cover"}),f=(0,s.css)({label:"overlay-name",fontSize:22}),h=(0,s.css)({label:"overlay-content",padding:"0 20px 15px 20px",overflow:"auto"}),p=(0,s.css)({label:"overlay-tag-data",fontSize:14}),d=(0,s.css)({label:"overlay-placemark-data",fontSize:14});t.default=({kind:e,item:t,toggleDetailsOverlay:n})=>{const r="placemark"===e&&t.image_url?{backgroundImage:`url('${t.image_url}')`,backgroundSize:"contain",height:300,minHeight:220}:"placemark"===e?{backgroundSize:"contain",backgroundImage:`url('${(0,c.placemarkIconURL)(t.type)}')`,backgroundColor:`#${t.color}`,height:300,minHeight:220}:"tag"===e&&t.image_url?{backgroundImage:`url('${t.image_url}')`,height:300}:{background:s.theme.brandBrightBlue,height:300};return(0,o.h)(a.default,{position:"left",onCloseClicked:()=>{n({open:!1})}},(0,o.h)("div",{className:u,style:r}),(0,o.h)("div",{className:(0,s.cx)("meridian-overlay-content",h)},(0,o.h)("p",{className:(0,s.cx)("meridian-overlay-item-name",f)},t.name||t.type_name),"tag"===e?(0,o.h)("div",{className:(0,s.cx)("meridian-overlay-tag-data",p)},(0,o.h)(i.default,{align:"left",labels:(0,l.getTagLabels)(t),fontSize:s.theme.fontSize}),(0,o.h)("p",null,"MAC: ",t.mac)):(0,o.h)("div",{className:(0,s.cx)("meridian-overlay-placemark-description",d),dangerouslySetInnerHTML:function(){if("placemark"===e&&t.description)return{__html:t.description}}()})))}},8812:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=n(172),i=r(n(4145)),a=n(2785),s=(0,a.css)(a.mixins.rounded,{label:"error",position:"absolute",zIndex:4,top:"35%",left:0,right:0,margin:"0 auto",minWidth:300,maxWidth:420,border:"1px solid #dfe1ef",paddingTop:15,paddingRight:20,paddingBottom:15,paddingLeft:25,background:a.theme.white,boxShadow:"0 0 1px rgba(0, 0, 0, 0.15), inset 4px 0 0 #d82e1f"}),l=(0,a.css)(a.mixins.buttonReset,{label:"close",cursor:"pointer",float:"right",width:38,height:38,marginLeft:15,padding:4,fill:"#c3c5c8","&:hover":{fill:a.theme.textColorBluish,cursor:"pointer"},"&:focus":{outline:0}});t.default=({toggleErrorOverlay:e,messages:t=["Unknown"]})=>(0,o.h)("div",{className:s},(0,o.h)("button",{className:l,onClick:()=>{e({open:!1})}},(0,o.h)(i.default,null)),(0,o.h)("p",null,"Sorry, something went wrong. It might be related to:"),(0,o.h)("ul",null,t.map(((e,t)=>(0,o.h)("li",{key:t},e)))))},3169:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(172),o=n(2785),i=(0,o.css)({label:"floor-and-tag-controls",display:"flex",flexDirection:"column",position:"absolute",zIndex:1,right:15,top:15}),a=(0,o.css)(o.mixins.buttonReset,o.mixins.shadow,o.mixins.rounded,o.mixins.buttonHoverActive,o.mixins.focusRing,{label:"control",cursor:"pointer",background:"white",padding:4,width:40,height:40,border:0,fontSize:20,fontWeight:200,fill:o.theme.brandBrightBlue}),s=(0,o.css)(a,{marginTop:10});t.default=({toggleFloorOverlay:e,toggleAssetListOverlay:t,showFloors:n,showSearch:l})=>(0,r.h)("div",{className:i},l?(0,r.h)("button",{className:(0,o.cx)("meridian-tag-control",a),"data-testid":"meridian--private--tag-control",onClick:()=>{t({open:!0})}},(0,r.h)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 36 36"},(0,r.h)("path",{d:"M26.19 25l-4.12-4.12a7.29 7.29 0 001.44-4.35 7.11 7.11 0 00-7-7.2 7.11 7.11 0 00-7 7.2 7.11 7.11 0 007 7.2 6.83 6.83 0 004.16-1.42l4.1 4.1A1 1 0 0026.19 25zm-14.68-8.49a5.11 5.11 0 015-5.2 5.11 5.11 0 015 5.2 5.11 5.11 0 01-5 5.2 5.11 5.11 0 01-5-5.2z"}))):null,n?(0,r.h)("button",{className:(0,o.cx)("meridian-floor-control",n&&l?s:a),"data-testid":"meridian--private--floor-control",onClick:()=>{e({open:!0})}},(0,r.h)("svg",{viewBox:"0 0 36 36"},(0,r.h)("path",{d:"M28.4 14.09a1.84 1.84 0 0 0-.62-.39l-8.48-3.33a3.61 3.61 0 0 0-1.3-.22 3.56 3.56 0 0 0-1.3.22L8.22 13.7a1.83 1.83 0 0 0-.62.39 1.24 1.24 0 0 0 0 1.82 1.85 1.85 0 0 0 .62.39l8.48 3.34a3.92 3.92 0 0 0 2.59 0l8.48-3.34a1.86 1.86 0 0 0 .62-.39 1.24 1.24 0 0 0 0-1.82m-9.83 3.68a2 2 0 0 1-1.13 0l-7-2.77 7-2.77a2 2 0 0 1 1.13 0l7 2.77zm9.83 2.32a1.24 1.24 0 0 1 0 1.82 1.86 1.86 0 0 1-.62.39l-8.47 3.33a3.92 3.92 0 0 1-2.59 0L8.22 22.3a1.85 1.85 0 0 1-.62-.39 1.24 1.24 0 0 1 0-1.82 1.83 1.83 0 0 1 .62-.39L10 19l2.73 1.08-2.34.92 7 2.77a2 2 0 0 0 1.13 0l7-2.77-2.35-.92L26 19l1.79.7a1.84 1.84 0 0 1 .62.39"}))):null)},6670:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(172),o=n(2785),i=n(7746),a=(0,o.css)(o.mixins.buttonReset,o.mixins.rounded,o.mixins.overflowEllipses,{label:"floor-control",background:"rgba(0, 0, 0, 0.4)",color:"white",textShadow:"0 0 2px black",position:"absolute",zIndex:1,bottom:15,left:"50%",transform:"translate(-50%, 0)",textAlign:"center",maxWidth:300,padding:"8px 16px",border:0,fontSize:16});t.default=({buildingName:e,floorName:t})=>(0,r.h)("div",{className:(0,o.cx)("meridian-floor-label",a),"data-testid":"meridian--private--floor-label"},e||i.uiText.unnamedBuilding," ",i.uiText.enDash," ",t)},4144:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=r(n(1324)),i=n(172),a=r(n(8828)),s=r(n(6933)),l=n(2785),c=r(n(7866)),u=n(7746);class f extends i.Component{constructor(){super(...arguments),this.state={searchFilter:""},this.searchInputRef=(0,i.createRef)()}componentDidMount(){this.searchInputRef.current&&this.searchInputRef.current.focus()}render(){const{currentFloorID:e,toggleFloorOverlay:t,selectFloorByID:n,floors:r,language:f}=this.props,y=c.default.lookup("search_floors",f),_=c.default.lookup("no_results_found",f),{searchFilter:b}=this.state,w=(0,u.createSearchMatcher)(b),k=r.filter((e=>e.published&&(w(e.name||"")||w(e.group_name||u.uiText.unnamedBuilding)))),x=(0,o.default)(k,"group_name"),O=Object.keys(x).sort();""===O[0]&&(O.push(O[0]),O.shift());for(const e of O)x[e].sort(((e,t)=>Math.sign(e.level-t.level))),this.props.sortDescending&&x[e].reverse();return(0,i.h)(a.default,{position:"right",onCloseClicked:()=>{t({open:!1})}},(0,i.h)(s.default,{placeholder:y,value:b,onChange:e=>{this.setState({searchFilter:e})}}),0===O.length?(0,i.h)("div",{className:m},_,"."):(0,i.h)("div",{className:p,"data-testid":"meridian--private--floors-list"},O.map((r=>(0,i.h)("div",{key:r},(0,i.h)("div",{className:h},r||u.uiText.unnamedBuilding),x[r].map((r=>(0,i.h)("button",{key:r.name,onClick:()=>{n(r.id),t({open:!1})},className:(0,l.cx)(d,r.id===e?g:void 0),"data-testid":r.id===e?"meridian--private--current-floor":"meridian--private--floor"},r.name,r.id===e?(0,i.h)("svg",{viewBox:"0 0 10 7",className:v},(0,i.h)("path",{d:"M3.9 7C3.7 7 3.4 6.9 3.2 6.7L0.3 3.8C-0.1 3.4 -0.1 2.8 0.3 2.4C0.7 2 1.3 2 1.7 2.4L3.9 4.6L8.2 0.3C8.6 -0.1 9.2 -0.1 9.6 0.3C10 0.7 10 1.3 9.6 1.7L4.6 6.7C4.4 6.9 4.2 7 3.9 7Z"})):null))))))))}}const h=(0,l.css)({label:"overlay-building-name",textTransform:"uppercase",fontWeight:"bold",top:0,position:"sticky",color:l.theme.brandBlue,background:l.theme.almostWhite,fontSize:l.theme.fontSizeSmaller,padding:10}),p=(0,l.css)({label:"floors-list",overflowY:"auto"}),d=(0,l.css)(l.mixins.buttonReset,l.mixins.focusRingMenuItem,l.mixins.buttonHoverActive,{label:"overlay-floor-button",padding:10,paddingLeft:20,display:"block",width:"100%",textAlign:"left"}),m=(0,l.css)({label:"overlay-floor-list-empty",padding:"60px 20px",textAlign:"center",fontSize:l.theme.fontSizeBigger,color:l.theme.textColorBluish}),g=(0,l.css)({label:"overlay-floor-button-curent-floor",color:l.theme.brandBrightBlue,fill:"currentcolor"}),v=(0,l.css)({label:"floor-checkmark",verticalAlign:"middle",marginLeft:"0.5em",width:"0.8em",height:"0.8em"});t.default=f},4145:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(172);t.default=()=>(0,r.h)("svg",{viewBox:"0 0 36 36"},(0,r.h)("path",{d:"M19.41 18l6.36-6.36a1 1 0 0 0-1.41-1.41L18 16.59l-6.36-6.36a1 1 0 0 0-1.41 1.41L16.59 18l-6.36 6.36a1 1 0 1 0 1.41 1.41L18 19.41l6.36 6.36a1 1 0 0 0 1.41-1.41z"}))},2930:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(172),o=n(2785),i=(0,o.keyframes)({from:{transform:"rotate(0turn)"},to:{transform:"rotate(1turn)"}}),a=(0,o.css)({label:"spinner",width:22,height:22,margin:"0 auto",border:"2px rgba(227, 227, 227, 0.9) solid",borderTop:"2px #2e7cbe solid",borderRadius:"50%",animation:`${i} 600ms infinite linear`});t.default=()=>(0,r.h)("div",{className:a})},9594:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(172),o=n(2785),i=(0,o.css)({label:"label-list",fontSize:"var(--meridian-labelList-fontSize)",marginTop:8,marginLeft:3,textAlign:"var(--meridian-labelList-textAlign)",flex:"1 1 auto"}),a=(0,o.css)(o.mixins.maxRounded,{label:"label",display:"inline-block",padding:"3px 8px",marginBottom:8,marginRight:8,background:"rgba(0, 0, 0, 0.035)",border:"1px solid rgba(0, 0, 0, 0.05)",color:"#3b3b3b"});t.default=({align:e,labels:t,fontSize:n=o.theme.fontSize})=>0===t.length?null:(0,r.h)("div",{className:i,style:{"--meridian-labelList-fontSize":n,"--meridian-labelList-textAlign":e}},t.map(((e,t)=>(0,r.h)("div",{key:t,className:a},e))))},4905:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=n(172),i=n(2785),a=r(n(2930)),s=(0,i.css)({label:"loading",position:"absolute",zIndex:1,width:30,left:0,top:"45%",right:0,overflow:"hidden",margin:"0 auto",color:i.theme.textColor,textAlign:"center",pointerEvents:"none"});t.default=()=>(0,o.h)("div",{className:s},(0,o.h)(a.default,null))},529:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=n(9062);n(7662);const i=n(9529),a=n(172),s=r(n(78)),l=r(n(324)),c=r(n(8812)),u=r(n(3169)),f=r(n(6670)),h=r(n(4144)),p=r(n(4905)),d=r(n(6805)),m=r(n(7387)),g=n(2785),v=r(n(8901)),y=r(n(2150)),_=n(7746),b=r(n(5481)),w=r(n(181));class k extends a.Component{constructor(){super(...arguments),this.state={mapImageURL:void 0,isFloorOverlayOpen:!1,isAssetListOverlayOpen:!1,isMapMarkerOverlayOpen:!1,isErrorOverlayOpen:!1,isPanningOrZooming:!1,loadingSources:{},errors:[],mapTransform:"",mapZoomFactor:.5,floors:[],allPlacemarkData:[],svgURL:void 0,tagsConnection:void 0,tagsStatus:"Connecting",selectedItem:void 0,areTagsLoading:Boolean(this.props.showSearchControl&&this.props.loadTags),arePlacemarksLoading:Boolean(this.props.showSearchControl&&this.props.loadPlacemarks),allTagData:[]},this.isMounted=!1,this.isLoaded=!1,this.fetchAllTagsInitialized=!1,this.fetchAllPlacemarksInitialized=!1,this.mapRef=(0,a.createRef)(),this.mapContainerRef=(0,a.createRef)(),this.mapImageref=(0,a.createRef)(),this.debouncedResizeFn=(0,w.default)(this.handleResize.bind(this),250),this.onTagsInit=()=>{this.props.showSearchControl&&this.props.loadTags&&this.fetchAllTags()},this.onPlacemarksInit=()=>{this.props.showSearchControl&&this.props.loadPlacemarks&&this.fetchAllPlacemarks()},this.updateMap=e=>{const{update:t}=this.props;t(e)},this.toggleAssetListOverlay=({open:e})=>{this.isMounted&&this.setState({isAssetListOverlayOpen:e})},this.toggleFloorOverlay=({open:e})=>{this.isMounted&&this.setState({isFloorOverlayOpen:e})},this.toggleErrorOverlay=({open:e,message:t="Unknown"})=>{this.isMounted&&(e?this.setState((e=>({errors:[...e.errors,t],isErrorOverlayOpen:!0}))):this.setState({isErrorOverlayOpen:!1,errors:[]}))},this.toggleLoadingSpinner=({show:e,source:t="unknown"})=>{this.isMounted&&this.setState((n=>({loadingSources:Object.assign(Object.assign({},n.loadingSources),{[t]:e})})))},this.toggleDetailsOverlay=({open:e,selectedItem:t})=>{this.setState({isMapMarkerOverlayOpen:e,selectedItem:t})},this.selectFloorByID=e=>{if(this.updateMap({floorID:e,annotations:[],overlays:[]}),this.props.onFloorChange){const t=this.state.floors.find((t=>t.id===e));t&&(0,_.asyncClientCall)(this.props.onFloorChange,t)}},this.zoomToPoint=(e,t,n)=>{if(!this.mapSelection)throw new Error("mapSelection is not defined");if(!this.zoomD3)throw new Error("zoomD3 is not defined");const{width:r,height:o}=this.getMapRefSize(),a=i.zoomIdentity.translate(-n*e+r/2,-n*t+o/2).scale(n);this.mapSelection.transition().duration(250).call(this.zoomD3.transform,a)},this.zoomBy=e=>{if(!this.mapSelection)throw new Error("mapSelection is not defined");if(!this.zoomD3)throw new Error("zoomD3 is not defined");this.mapSelection.transition().duration(250).call(this.zoomD3.scaleBy,e)},this.zoomIn=()=>{this.zoomBy(1.5)},this.zoomOut=()=>{this.zoomBy(.5)},this.onClick=e=>{var t,n,r;const o=e.target instanceof Element&&((null===(n=null===(t=this.mapRef.current)||void 0===t?void 0:t.isEqualNode)||void 0===n?void 0:n.call(t,e.target))||(null===(r=this.mapImageref.current)||void 0===r?void 0:r.isEqualNode(e.target)));this.props.onMapClick&&o?(0,_.asyncClientCall)(this.props.onMapClick):o&&this.toggleDetailsOverlay({open:!1})},this.onTagClick=async e=>{let t=!0;const{onTagClick:n=(()=>{})}=this.props;try{const r={preventDefault:()=>{t=!1}};await n(e,r)}catch(e){(0,_.logError)(e)}t&&this.toggleDetailsOverlay({open:!0,selectedItem:e})},this.onPlacemarkClick=async e=>{let t=!0;const{onPlacemarkClick:n=(()=>{})}=this.props;try{const r={preventDefault:()=>{t=!1}};await n(e,r)}catch(e){(0,_.logError)(e)}t&&this.toggleDetailsOverlay({open:!0,selectedItem:e})}}componentDidMount(){this.validateFloorID(),this.isMounted=!0;const{api:e,locationID:t}=this.props;(0,_.isEnvOptions)(e.environment)?t?this.loadData():this.toggleErrorOverlay({open:!0,message:'createMap error: "options.locationID" is required'}):this.toggleErrorOverlay({open:!0,message:`API error: "${e.environment}" is not a valid environment`}),this.intervalAutoDestroy=setInterval((()=>{this.isMounted&&this.mapContainerRef.current&&!this.mapContainerRef.current.isConnected&&this.props.destroy()}),1e3),window.addEventListener("resize",this.debouncedResizeFn)}async loadData(){await this.initializeFloors()}componentDidUpdate(e){if(this.props.locationID!==e.locationID)return this.toggleAssetListOverlay({open:!1}),this.toggleErrorOverlay({open:!1}),this.toggleDetailsOverlay({open:!1}),this.toggleFloorOverlay({open:!1}),this.zoomToDefault(),this.freeMapImageURL(),this.setState({mapImageURL:void 0,allPlacemarkData:[]}),void this.loadData();this.props.loadTags&&this.props.showSearchControl&&!e.showSearchControl&&this.fetchAllTags({forceUpdate:!0}),e.floorID!==this.props.floorID?(this.zoomToDefault(),this.validateFloorID(),this.freeMapImageURL(),this.setState({mapImageURL:void 0}),this.fetchMapImageURL()):this.props.loadPlacemarks&&this.props.showSearchControl&&!e.showSearchControl&&this.fetchAllPlacemarks({forceUpdate:!0})}componentWillUnmount(){this.isMounted=!1,this.fetchAllTagsTimeout&&clearTimeout(this.fetchAllTagsTimeout),this.fetchAllPlacemarksTimeout&&clearTimeout(this.fetchAllPlacemarksTimeout),this.freeMapImageURL(),clearInterval(this.intervalAutoDestroy),window.removeEventListener("resize",this.debouncedResizeFn)}handleResize(){const e=this.mapContainerSize,t=this.getMapRefSize(),{width:n,height:r}=e||{},{width:o,height:i}=t;n===o&&r===i||(this.mapContainerSize=t,this.zoomToDefault())}freeMapImageURL(){this.state.mapImageURL&&URL.revokeObjectURL(this.state.mapImageURL)}async fetchMapImageURL(){const{api:e,locationID:t,floorID:n}=this.props,r=this.getMapData();if(!r)return;const o=await e.fetchSVG(r.svg_url);this.isMounted&&(n===this.props.floorID&&t===this.props.locationID?this.setState({mapImageURL:o}):URL.revokeObjectURL(o))}validateFloorID(){const{floorID:e}=this.props;e||this.toggleErrorOverlay({open:!0,message:'createMap error: "options.floorID" is required'})}fetchAllTags(e={forceUpdate:!1}){if(this.fetchAllTagsInitialized&&!e.forceUpdate)return;const t=async()=>{this.fetchAllTagsInitialized=!0;try{this.fetchAllTagsTimeout&&clearTimeout(this.fetchAllTagsTimeout);const{api:e,locationID:n}=this.props;this.setState({areTagsLoading:!0});let r=[];try{r=await e.fetchTagsByLocation(n)}catch(e){return void(0,_.logError)("Failed to load tags; use `loadTags: false` if this location does not have the tags paid feature")}if(!this.isMounted)return;if(n!==this.props.locationID||!this.props.loadTags)return;this.setState({allTagData:r}),this.fetchAllTagsTimeout=setTimeout(t,3e5)}finally{this.setState({areTagsLoading:!1})}};this.props.loadTags&&t()}showLoadingSpinner(){const{loadingSources:e}=this.state,t=Object.keys(e).some((t=>!0===e[t]));return this.props.onLoadingStateChange&&this.isLoaded!==t&&(this.isLoaded=t,(0,_.asyncClientCall)(this.props.onLoadingStateChange,t)),t}fetchAllPlacemarks(e={forceUpdate:!1}){if(this.fetchAllPlacemarksInitialized&&!e.forceUpdate)return;const t=async()=>{this.fetchAllPlacemarksInitialized=!0;try{this.fetchAllPlacemarksTimeout&&clearTimeout(this.fetchAllPlacemarksTimeout);const{locationID:e,api:n}=this.props;let r=[];this.setState({arePlacemarksLoading:!0});try{if(this.props.loadPlacemarks&&(r=await n.fetchPlacemarksByLocation(e)),!this.isMounted)return;this.setState({allPlacemarkData:r})}catch(e){return void(0,_.logError)("Failed to load placemark data")}this.fetchAllPlacemarksTimeout=setTimeout(t,6e5)}finally{this.setState({arePlacemarksLoading:!1})}};this.props.loadPlacemarks&&t()}async getFloors(){const{locationID:e,api:t}=this.props;let n;try{if(n=await t.fetchFloorsByLocation(e),!this.isMounted)return[]}catch(e){e.response&&e.response.data&&e.response.data.detail&&this.toggleErrorOverlay({open:!0,message:e.response.data.detail})}return n&&n.length||this.toggleErrorOverlay({open:!0,message:"Floor data could not be found."}),n}getMapData(){const{floorID:e}=this.props,{floors:t}=this.state;return t.find((t=>t.id===e))}async initializeFloors(){this.toggleLoadingSpinner({show:!0,source:"map"});const{onFloorsUpdate:e=(()=>{}),locationID:t}=this.props,n=await this.getFloors();this.isMounted&&t===this.props.locationID&&(n&&n.length>0&&this.setState({floors:n},(()=>{this.zoomD3||this.addZoomBehavior(),this.zoomToDefault(),(0,_.asyncClientCall)(e,n),this.fetchMapImageURL()})),this.toggleLoadingSpinner({show:!1,source:"map"}))}addZoomBehavior(){if(this.mapRef.current){const e=()=>{if(!this.mapRef.current)return;const{k:e,x:t,y:n}=(0,i.zoomTransform)(this.mapRef.current),r=`translate(${t}px, ${n}px) scale(${e})`;this.setState({mapTransform:r,mapZoomFactor:e,isPanningOrZooming:!0})},t=()=>{this.setState({isPanningOrZooming:!1})};this.zoomD3=(0,i.zoom)().filter((e=>!this.props.shouldMapPanZoom||this.props.shouldMapPanZoom(e))).duration(250).on("zoom",e).on("end.zoom",t),this.mapSelection=(0,o.select)(this.mapRef.current),this.mapSelection.call(this.zoomD3)}}resetExtents(){var e;null===(e=this.zoomD3)||void 0===e||e.scaleExtent([0,1/0]).translateExtent([[-1/0,-1/0],[1/0,1/0]])}setExtents(e,t){var n;const r=this.props.minZoomLevel,o=this.props.maxZoomLevel;if(this.mapRef.current){const{k:a}=(0,i.zoomTransform)(this.mapRef.current),s=this.getMapRefSize(),l=s.width/a/1.5,c=s.height/a/1.5,u=r&&"number"==typeof r?r:a,f=o&&"number"==typeof o?o:8;null===(n=this.zoomD3)||void 0===n||n.scaleExtent([u,f]).translateExtent([[-l,-c],[e+l,t+c]])}}zoomToDefault(){const e=this.getMapData(),t=this.getMapRefSize(),n=null==e?void 0:e.width,r=null==e?void 0:e.height;this.mapContainerSize=t,n&&r&&this.mapSelection&&this.zoomD3&&(this.resetExtents(),this.mapSelection.call(this.zoomD3.translateTo,n/2,r/2),this.mapSelection.call(this.zoomD3.scaleTo,Math.min(.7*t.width/n,.7*t.height/r)),this.setExtents(n,r))}getMapRefSize(){if(!this.mapRef.current)throw new Error("mapRef is not defined");return{width:this.mapRef.current.clientWidth,height:this.mapRef.current.clientHeight}}centerMap(){const e=this.getMapData(),t=null==e?void 0:e.width,n=null==e?void 0:e.height;t&&n&&this.mapSelection&&this.zoomD3&&this.mapSelection.call(this.zoomD3.translateTo,t/2,n/2)}shouldShowFloors(){const{showFloorsControl:e=!0}=this.props,{floors:t}=this.state;return e&&t.length>1}renderFloorLabel(){const e=this.getMapData();return e?(0,a.h)(f.default,{buildingName:e.group_name,floorName:e.name}):null}renderFloorOverlay(){const{floorID:e,api:t}=this.props,{isFloorOverlayOpen:n,floors:r}=this.state;return n?(0,a.h)(h.default,{currentFloorID:e,floors:r,sortDescending:Boolean(this.props.floorsControlSortDescending),toggleFloorOverlay:this.toggleFloorOverlay,selectFloorByID:this.selectFloorByID,language:t.language}):null}renderAssetListOverlay(){var e;const{floorID:t,loadTags:n,loadPlacemarks:r,tags:o,placemarks:i,api:s}=this.props,{isAssetListOverlayOpen:l,floors:c,allTagData:u,areTagsLoading:f,arePlacemarksLoading:h,allPlacemarkData:p}=this.state;return l&&Boolean(r||n)?(0,a.h)(y.default,{onTagClick:this.onTagClick,onPlacemarkClick:this.onPlacemarkClick,showControlTags:Boolean(null!==(e=null==o?void 0:o.showControlTags)&&void 0!==e&&e),floors:c,tagsLoading:f,placemarksLoading:h,tags:u,tagOptions:o,placemarkOptions:i,updateMap:this.updateMap,currentFloorID:t,toggleAssetListOverlay:this.toggleAssetListOverlay,showTags:Boolean(n),showPlacemarks:Boolean(r),placemarks:p,language:s.language}):null}renderDetailsOverlay(){const{isMapMarkerOverlayOpen:e,selectedItem:t}=this.state;return e&&t?(0,a.h)(l.default,{toggleDetailsOverlay:this.toggleDetailsOverlay,kind:"mac"in t?"tag":"placemark",item:t}):null}renderLoadingSpinner(){return this.showLoadingSpinner()?(0,a.h)(p.default,null):null}renderErrorOverlay(){return this.state.isErrorOverlayOpen?(0,a.h)(c.default,{toggleErrorOverlay:this.toggleErrorOverlay,messages:this.state.errors}):null}render(){const e=this.getMapData(),{mapImageURL:t,selectedItem:n,mapTransform:r,mapZoomFactor:o,isPanningOrZooming:i,errors:l}=this.state,{locationID:c,floorID:f,api:h,tags:p,placemarks:y,overlays:_=[],annotations:w=[],width:k="",height:S="",onTagsUpdate:C,onPlacemarksUpdate:A,showSearchControl:E,loadPlacemarks:T,loadTags:P}=this.props;return(0,a.h)("div",{className:(0,g.cx)("meridian-map-container",x),style:{width:k,height:S},"data-testid":"meridian--private--map-container",ref:e=>{this.mapContainerRef.current=e}},(0,a.h)(b.default,{onZoomIn:this.zoomIn,onZoomOut:this.zoomOut}),this.renderErrorOverlay(),this.renderDetailsOverlay(),this.renderFloorOverlay(),this.renderAssetListOverlay(),this.renderLoadingSpinner(),(0,a.h)(u.default,{showFloors:this.shouldShowFloors(),showSearch:Boolean(E&&(T||P)),toggleFloorOverlay:this.toggleFloorOverlay,toggleAssetListOverlay:this.toggleAssetListOverlay}),this.renderFloorLabel(),(0,a.h)("div",{ref:e=>{this.mapRef.current=e},className:(0,g.cx)("meridian-map-background",O),onClick:this.onClick,style:{width:k,height:S}},(0,a.h)("div",{style:{position:"relative",width:0,height:0,transform:r,transformOrigin:"0 0 0"}},(0,a.h)("img",{src:t,ref:this.mapImageref}),0===l.length&&e?(0,a.h)(a.Fragment,null,(0,a.h)(d.default,{mapZoomFactor:o,overlays:_}),this.props.loadPlacemarks?(0,a.h)(m.default,{selectedItem:n,isPanningOrZooming:i,mapZoomFactor:o,locationID:c,floorID:f,api:h,placemarkOptions:y,onPlacemarkClick:this.onPlacemarkClick,onUpdate:A,toggleLoadingSpinner:this.toggleLoadingSpinner,onInit:()=>{this.onPlacemarksInit()}}):null,this.props.loadTags?(0,a.h)(v.default,{selectedItem:n,isPanningOrZooming:i,mapZoomFactor:o,locationID:c,floorID:f,api:h,tagOptions:p,onTagClick:this.onTagClick,onUpdate:C,toggleLoadingSpinner:this.toggleLoadingSpinner,onInit:()=>{this.onTagsInit()}}):null,(0,a.h)(s.default,{mapZoomFactor:o,annotations:w})):null)))}}k.defaultProps={loadTags:!0,loadPlacemarks:!0,showSearchControl:!0,showFloorsControl:!0,floorsControlSortDescending:!1,shouldMapPanZoom:()=>!0,width:"100%",height:"400px",placemarks:{},tags:{},overlays:[],annotations:[],onTagsUpdate:()=>{},onFloorChange:()=>{},onLoadingStateChange:()=>{},onFloorsUpdate:()=>{}};const x=(0,g.css)({label:"map-container",display:"block",position:"relative",borderRadius:"inherit",background:"#fafafa",color:"#000",fontFamily:"inherit",textAlign:"left"}),O=(0,g.css)({label:"map-outer",borderRadius:"inherit",display:"block",overflow:"hidden"});t.default=k},8828:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=n(172),i=r(n(4145)),a=n(2785),s=(0,a.css)(a.mixins.shadow,a.mixins.rounded,{label:"details-overlay",overflow:"hidden",display:"flex",flexDirection:"column",background:a.theme.white,color:a.theme.textColor,fill:"#000",position:"absolute",margin:0,left:15,top:15,right:15,maxHeight:600,zIndex:2,maxWidth:400}),l=(0,a.css)(s,{marginRight:"auto"}),c=(0,a.css)(s,{marginLeft:"auto"}),u=(0,a.css)(a.mixins.buttonReset,a.mixins.buttonHoverActive,a.mixins.focusRing,{label:"details-overlay-close",cursor:"pointer",position:"absolute",zIndex:2,top:10,right:10,padding:4,width:32,height:32,fontSize:11,textAlign:"center",background:a.theme.white,color:a.theme.textColor,borderRadius:"100%",fontWeight:"bold",boxShadow:"0 0 2px rgba(0, 0, 0, 0.4)"});t.default=({position:e,onCloseClicked:t,children:n})=>(0,o.h)("div",{className:(0,a.cx)("meridian-details-overlay","left"===e?l:c),"data-testid":"meridian--private--map-overlay"},(0,o.h)("button",{className:u,onClick:t,"data-testid":"meridian--private--close-overlay"},(0,o.h)(i.default,null)),n)},7096:function(e,t,n){"use strict";var r=this&&this.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o{var{defs:t=!1,id:n,className:a,style:s={},cx:l,cy:c,r:u,pathLength:f,fill:h="black",fillOpacity:p="1",stroke:d="none",strokeWidth:m=4,strokeLineJoin:g,strokeLineCap:v,strokeDasharray:y,strokeDashoffset:_,strokeOpacity:b,animate:w={},animateMotion:k={},mpath:x,data:O={},onClick:S,mapZoomFactor:C}=e,A=r(e,["defs","id","className","style","cx","cy","r","pathLength","fill","fillOpacity","stroke","strokeWidth","strokeLineJoin","strokeLineCap","strokeDasharray","strokeDashoffset","strokeOpacity","animate","animateMotion","mpath","data","onClick","mapZoomFactor"]);const E=1/C;let T=null,P=null;const D=Object.assign({transform:`scale(${E})`},s);Object.keys(k).length&&(P=x?(0,o.h)("animateMotion",Object.assign({},k),(0,o.h)("mpath",{xlinkHref:`#${x}`})):(0,o.h)("animateMotion",Object.assign({},k))),Object.keys(w).length&&(T=(0,o.h)("animate",Object.assign({},w)));const j=(0,o.h)("circle",Object.assign({id:n,className:a,style:D,cx:l,cy:c,r:u,"path-length":f,fill:h,"fill-opacity":p,stroke:d,"stroke-width":m/C,"stroke-linejoin":g,"stroke-linecap":v,"stroke-dasharray":y,"stroke-dashoffset":_,"stroke-opacity":b,onClick:S?()=>(0,i.asyncClientCall)(S,O):void 0,cursor:S?"pointer":void 0,"pointer-events":S?"all":void 0},A),T,P);return t?(0,o.h)("defs",null,j):j};a.displayName="OverlayCircle",t.default=a},2865:function(e,t,n){"use strict";var r=this&&this.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o{var{defs:t=!1,id:n,className:a,style:s={},width:l,height:c,href:u,x:f,y:h,animate:p={},animateMotion:d={},mpath:m,mapZoomFactor:g,onClick:v,data:y={}}=e,_=r(e,["defs","id","className","style","width","height","href","x","y","animate","animateMotion","mpath","mapZoomFactor","onClick","data"]);const b=1/g;let w=null,k=null;const x=Object.assign({transform:`translate(-${l/g/2}px, -${c/g/2}px) scale(${b})`},s);Object.keys(d).length&&(k=m?(0,o.h)("animateMotion",Object.assign({},d),(0,o.h)("mpath",{xlinkHref:`#${m}`})):(0,o.h)("animateMotion",Object.assign({},d))),Object.keys(p).length&&(w=(0,o.h)("animate",Object.assign({},p)));const O=(0,o.h)("image",Object.assign({id:n,className:a,style:x,width:l,height:c,href:u,x:f,y:h,onClick:v?()=>(0,i.asyncClientCall)(v,y):void 0,cursor:v?"pointer":void 0,"pointer-events":v?"all":void 0},_),w,k);return t?(0,o.h)("defs",null,O):O};a.displayName="OverlayImage",t.default=a},6805:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=n(172),i=r(n(7096)),a=r(n(2865)),s=r(n(2578)),l=r(n(3861)),c=r(n(3496)),u=r(n(4012)),f=r(n(9159)),h=(0,n(2785).css)({label:"overlay-layer",position:"absolute",overflow:"visible",top:0,left:0,right:0,bottom:0});t.default=({mapZoomFactor:e,overlays:t})=>(0,o.h)("svg",{className:h,"data-testid":"meridian--private--overlay-layer"},t.map(((t,n)=>{switch(t.type){case"polygon":return(0,o.h)(c.default,Object.assign({key:n},t,{mapZoomFactor:e}));case"polyline":return(0,o.h)(u.default,Object.assign({key:n},t,{mapZoomFactor:e}));case"path":return(0,o.h)(l.default,Object.assign({key:n},t,{mapZoomFactor:e}));case"circle":return(0,o.h)(i.default,Object.assign({key:n},t,{mapZoomFactor:e}));case"image":return(0,o.h)(a.default,Object.assign({key:n},t,{mapZoomFactor:e}));case"marker":return(0,o.h)(s.default,Object.assign({key:n},t,{mapZoomFactor:e}));case"use":return(0,o.h)(f.default,Object.assign({key:n},t,{mapZoomFactor:e}));default:return null}})))},2578:function(e,t,n){"use strict";var r=this&&this.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o{var{defs:t=!0,id:n,className:i,style:a,viewBox:s,refX:l,refY:c,markerWidth:u,markerHeight:f,orient:h,fill:p="none",fillOpacity:d,stroke:m="hsl(207, 65%, 46%)",strokeWidth:g,strokeLineJoin:v,strokeLineCap:y,strokeDasharray:_,strokeDashoffset:b,strokeOpacity:w,shapeElementType:k,shapeElementAttributes:x,mapZoomFactor:O}=e,S=r(e,["defs","id","className","style","viewBox","refX","refY","markerWidth","markerHeight","orient","fill","fillOpacity","stroke","strokeWidth","strokeLineJoin","strokeLineCap","strokeDasharray","strokeDashoffset","strokeOpacity","shapeElementType","shapeElementAttributes","mapZoomFactor"]);let C=null;if(Object.keys(x).length&&k)switch(k){case"path":C=(0,o.h)("path",Object.assign({},x));break;case"polyline":C=(0,o.h)("polyline",Object.assign({},x));break;case"polygon":C=(0,o.h)("polygon",Object.assign({},x));break;case"circle":C=(0,o.h)("circle",Object.assign({},x));break;case"image":C=(0,o.h)("image",Object.assign({},x))}const A=(0,o.h)("marker",Object.assign({id:n,className:i,style:a,viewBox:s,refX:l,refY:c,markerWidth:u,markerHeight:f,orient:h,fill:p,"fill-opacity":d,stroke:m,"stroke-width":g,"stroke-linejoin":v,"stroke-linecap":y,"stroke-dasharray":_,"stroke-dashoffset":b,"stroke-opacity":w},S),C);return t?(0,o.h)("defs",null,A):A};i.displayName="OverlayMarker",t.default=i},3861:function(e,t,n){"use strict";var r=this&&this.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o{var{defs:t=!1,id:n,className:i,style:a={},shape:s,fill:l="none",stroke:c="hsl(207, 65%, 46%)",strokeWidth:u=2,strokeLineJoin:f="miter",strokeLineCap:h="butt",strokeDasharray:p,strokeDashoffset:d,strokeOpacity:m,markerStart:g,markerMid:v,markerEnd:y,animate:_={},animateMotion:b={},mpath:w,mapZoomFactor:k}=e,x=r(e,["defs","id","className","style","shape","fill","stroke","strokeWidth","strokeLineJoin","strokeLineCap","strokeDasharray","strokeDashoffset","strokeOpacity","markerStart","markerMid","markerEnd","animate","animateMotion","mpath","mapZoomFactor"]);let O=null,S=null;Object.keys(b).length&&(S=w?(0,o.h)("animateMotion",Object.assign({},b),(0,o.h)("mpath",{xlinkHref:`#${w}`})):(0,o.h)("animateMotion",Object.assign({},b))),Object.keys(_).length&&(O=(0,o.h)("animate",Object.assign({},_)));const C=(0,o.h)("path",Object.assign({id:n,className:i,style:a,d:s,fill:l,stroke:c,"stroke-width":u/k,"stroke-linejoin":f,"stroke-linecap":h,"stroke-dasharray":p,"stroke-dashoffset":d,"stroke-opacity":m,"marker-start":g,"marker-mid":v,"marker-end":y},x),O,S);return t?(0,o.h)("defs",null,C):C};i.displayName="OverlayPath",t.default=i},3496:function(e,t,n){"use strict";var r=this&&this.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o{var{defs:t=!1,id:n,className:a,style:s,points:l,fill:c="hsla(207, 65%, 46%, 0.5)",fillOpacity:u,stroke:f="hsl(207, 65%, 46%)",strokeWidth:h=2,strokeLineJoin:p="miter",strokeDasharray:d,strokeDashoffset:m,strokeOpacity:g,markerStart:v,markerMid:y,markerEnd:_,mapZoomFactor:b,animate:w={},data:k={},onClick:x}=e,O=r(e,["defs","id","className","style","points","fill","fillOpacity","stroke","strokeWidth","strokeLineJoin","strokeDasharray","strokeDashoffset","strokeOpacity","markerStart","markerMid","markerEnd","mapZoomFactor","animate","data","onClick"]);let S=null;Object.keys(w).length&&(S=(0,o.h)("animate",Object.assign({},w)));const C=(0,o.h)("polygon",Object.assign({id:n,className:a,style:s,points:l.join(" "),fill:c,"fill-opacity":u,stroke:f,"stroke-width":h/b,"stroke-linejoin":p,"stroke-dasharray":d,"stroke-dashoffset":m,"stroke-opacity":g,"marker-start":v,"marker-mid":y,"marker-end":_,onClick:x?()=>(0,i.asyncClientCall)(x,k):void 0,cursor:x?"pointer":void 0,"pointer-events":x?"all":void 0},O),S);return t?(0,o.h)("defs",null,C):C};a.displayName="OverlayPolygon",t.default=a},4012:function(e,t,n){"use strict";var r=this&&this.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o{var{defs:t=!1,id:n,className:i,style:a,points:s,fill:l="none",fillOpacity:c,stroke:u="hsl(207, 65%, 46%)",strokeWidth:f=2,strokeLineJoin:h="miter",strokeLineCap:p="butt",strokeDasharray:d,strokeDashoffset:m,strokeOpacity:g,markerStart:v,markerMid:y,markerEnd:_,animate:b={},mapZoomFactor:w}=e,k=r(e,["defs","id","className","style","points","fill","fillOpacity","stroke","strokeWidth","strokeLineJoin","strokeLineCap","strokeDasharray","strokeDashoffset","strokeOpacity","markerStart","markerMid","markerEnd","animate","mapZoomFactor"]);let x=null;Object.keys(b).length&&(x=(0,o.h)("animate",Object.assign({},b)));const O=(0,o.h)("polyline",Object.assign({id:n,className:i,style:a,points:s.join(" "),fill:l,"fill-opacity":c,stroke:u,"stroke-width":f/w,"stroke-linejoin":h,"stroke-linecap":p,"stroke-dasharray":d,"stroke-dashoffset":m,"stroke-opacity":g,"marker-start":v,"marker-mid":y,"marker-end":_},k),x);return t?(0,o.h)("defs",null,O):O};i.displayName="OverlayPolyline",t.default=i},6933:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(172),o=n(2785);class i extends r.Component{constructor(){super(...arguments),this.input=null}componentDidMount(){this.input&&this.input.focus()}render(){const{value:e,onChange:t,placeholder:n}=this.props;return(0,r.h)("div",{className:l},(0,r.h)("svg",{viewBox:"0 0 15 15",className:s},(0,r.h)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M13.2454 12.5741L9.55123 8.73956C10.2134 7.80246 10.5682 6.66953 10.5632 5.50756C10.5506 2.47441 8.18614 0.0175744 5.26286 5.57178e-05C3.8639 -0.00651157 2.52051 0.567712 1.53197 1.59481C0.543427 2.6219 -0.0081584 4.01655 9.12228e-05 5.46806C0.0127262 8.50148 2.37737 10.9585 5.30093 10.9761C6.42539 10.9811 7.52128 10.6088 8.42505 9.91456L8.4289 9.91156L12.1197 13.7431C12.3193 13.9603 12.6166 14.0482 12.8966 13.9728C13.1765 13.8973 13.395 13.6704 13.4675 13.3799C13.5399 13.0894 13.455 12.7809 13.2454 12.5741ZM5.29738 9.87819C2.95866 9.86423 1.06697 7.8988 1.05671 5.47219C1.0504 4.31114 1.4917 3.19564 2.28239 2.37403C3.07307 1.55242 4.14751 1.09287 5.26653 1.09769C7.60525 1.11165 9.49694 3.07709 9.5072 5.50369C9.51352 6.66475 9.07221 7.78024 8.28152 8.60186C7.49084 9.42347 6.4164 9.88302 5.29738 9.87819Z",transform:"translate(0.637695)"})),(0,r.h)("input",{"data-testid":"meridian--private--overlay-search",value:e,type:"text",placeholder:n,className:a,onInput:e=>{e.target instanceof HTMLInputElement&&t(e.target.value)},ref:e=>{this.input=e}}))}}const a=(0,o.css)(o.mixins.buttonReset,o.mixins.rounded,o.mixins.focusRing,{label:"overlay-search-input",flex:"1 1 auto",marginRight:42,fontSize:16,padding:"4px 8px",paddingLeft:30,background:o.theme.borderColor,color:o.theme.black,border:0,height:24,"&::placeholder":{color:o.theme.textColorBluishLightGrey}}),s=(0,o.css)({label:"overlay-search-icon",position:"absolute",zIndex:1,fill:o.theme.textColorBluish,width:16,height:16,top:18,left:18}),l=(0,o.css)({label:"overlay-search-bar",position:"relative",zIndex:1,flex:"0 0 auto",display:"flex",flexDirection:"column",padding:10,backgroundColor:"rgb(105, 146, 176)"});t.default=i},9159:function(e,t,n){"use strict";var r=this&&this.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o{var{defs:t=!1,id:n,className:i,style:a={},width:s,height:l,href:c,x:u,y:f,fill:h="none",stroke:p="hsl(207, 65%, 46%)",strokeWidth:d=2,strokeLineJoin:m="miter",strokeLineCap:g="butt",strokeDasharray:v,strokeDashoffset:y,strokeOpacity:_,animate:b={},animateMotion:w={},mpath:k,mapZoomFactor:x}=e,O=r(e,["defs","id","className","style","width","height","href","x","y","fill","stroke","strokeWidth","strokeLineJoin","strokeLineCap","strokeDasharray","strokeDashoffset","strokeOpacity","animate","animateMotion","mpath","mapZoomFactor"]);const S=1/x;let C=null,A=null;const E=Object.assign({transform:`translate(-${s/x/2}px, -${l/x/2}px) scale(${S})`},a);Object.keys(w).length&&(A=k?(0,o.h)("animateMotion",Object.assign({},w),(0,o.h)("mpath",{xlinkHref:`#${k}`})):(0,o.h)("animateMotion",Object.assign({},w))),Object.keys(b).length&&(C=(0,o.h)("animate",Object.assign({},b)));const T=(0,o.h)("use",Object.assign({id:n,className:i,style:E,width:s,height:l,href:c,x:u,y:f,fill:h,stroke:p,"stroke-width":d/x,"stroke-linejoin":m,"stroke-linecap":g,"stroke-dasharray":v,"stroke-dashoffset":y,"stroke-opacity":_},O),C,A);return t?(0,o.h)("defs",null,T):T};i.displayName="OverlayUse",t.default=i},2858:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(172),o=n(2785),i=n(7746),a=n(4221),s=(0,o.css)(o.mixins.textStrokeWhite,{label:"placemark-label",marginLeft:"50%",position:"absolute",minWidth:55,maxWidth:120,fontSize:14,textAlign:"center",paddingTop:4,color:"#222",userSelect:"none",transform:"translate(-50%, 0)",fontWeight:"bold",visibility:"hidden",pointerEvents:"none","[data-meridian-placemark-label-mode='always'] > &":{visibility:"visible"},"[data-meridian-placemark-label-mode='never'] > &":{visibility:"hidden"},"[data-meridian-placemark-label-mode='hover']:hover > &":{visibility:"visible",background:"#333",color:"#eee",textShadow:"none",borderRadius:4,padding:4,bottom:30,maxWidth:240,width:"max-content",boxShadow:"0 0 1px 1px white"},"[data-meridian-placemark-label-mode='zoom'] > &[data-meridian-placemark-label-zoom-visible='false']":{visibility:"hidden"},"[data-meridian-placemark-label-mode='zoom'] > &[data-meridian-placemark-label-zoom-visible='true']":{visibility:"visible"}}),l=(0,o.css)({label:"placemark-labelOnly",textTransform:"uppercase",color:"#666",fontSize:16}),c=(0,o.css)({label:"placemark",position:"absolute","&[data-meridian-placemark-label-mode='hover']:hover":{zIndex:1}}),u=(0,o.css)(o.mixins.buttonReset,o.mixins.pointer,o.mixins.focusNone,{label:"placemark-icon","--meridian-placemark-backgroundColor":o.theme.brandBlue,transition:"width 80ms ease, height 80ms ease",display:"block",width:24,height:24,borderRadius:"100%",backgroundColor:"var(--meridian-placemark-backgroundColor)",backgroundImage:"var(--meridian-placemark-iconURL)",backgroundPosition:"center",backgroundRepeat:"no-repeat",backgroundSize:"cover",border:"2px solid transparent",overflow:"hidden",zIndex:1}),f=(0,o.css)(u,{zIndex:3,width:30,height:30,boxShadow:"0 0 4px black"});t.default=({isSelected:e,data:t,mapZoomFactor:n,onClick:h=(()=>{}),disabled:p=!1,labelMode:d,labelZoomLevel:m=.2})=>{const g=`meridian-placemark-type-${t.type}`,v=!t.type||0===t.type.indexOf("label_"),y=1/n,_=`#${t.color}`,b=(0,a.placemarkIconURL)(t.type),w=(t.id||"").split("_").pop(),k=e?(0,o.cx)("meridian-placemark-icon-selected","meridian-placemark-icon",g,f):(0,o.cx)("meridian-placemark-icon",g,u),x={left:t.x,top:t.y,transform:`translate(-50%, -50%) scale(${y})`};return v?(0,r.h)("div",{className:(0,o.cx)("meridian-placemark",c),"data-meridian-placemark-label-mode":"zoom",style:x},(0,r.h)("div",{className:(0,o.cx)(s,l,"meridian-label","meridian-label-only"),"data-meridian-placemark-id":w,"data-meridian-placemark-label-zoom-visible":String(n>=m)},t.name)):(0,r.h)("div",{"data-meridian-placemark-label-mode":d,className:(0,o.cx)("meridian-placemark",c),style:x},(0,r.h)("button",{disabled:p,className:(0,o.cx)((0,i.getPlacemarkCategories)(t).map((e=>`meridian-placemark-category-${e=e.replace(/ /g,"-").replace(/[^a-z0-9_-]/i,"").toLowerCase()}`)),k),"data-meridian-placemark-id":w,style:{"--meridian-placemark-iconURL":`url('${b}')`,"--meridian-placemark-borderColor":_,"--meridian-placemark-backgroundColor":_},onClick:e=>{e.target instanceof HTMLElement&&e.target.focus(),h(t)},onMouseDown:e=>{e.stopPropagation()}}),(0,r.h)("div",{className:(0,o.cx)("meridian-label",s),"data-meridian-placemark-label-zoom-visible":String(n>=m)},t.name))}},7387:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=n(172),i=r(n(2858)),a=n(7746);class s extends o.Component{constructor(){super(...arguments),this.state={fetchedPlacemarks:[]},this.isMounted=!1}componentDidMount(){this.isMounted=!0,this.fetchPlacemarks()}shouldComponentUpdate(e){return!(this.props.isPanningOrZooming&&e.mapZoomFactor===this.props.mapZoomFactor)}async componentDidUpdate(e,t){const{placemarkOptions:n,onUpdate:r}=this.props;if(e.floorID!==this.props.floorID&&await this.fetchPlacemarks(),r&&(t.fetchedPlacemarks!==this.state.fetchedPlacemarks||n!==e.placemarkOptions)){const e=this.state.fetchedPlacemarks;(0,a.asyncClientCall)(r,{allPlacemarks:e,filteredPlacemarks:this.getFilteredPlacemarks(e)})}}componentWillUnmount(){this.isMounted=!1}async fetchPlacemarks(){if(!this.isMounted)return;const{locationID:e,floorID:t,api:n,toggleLoadingSpinner:r,onInit:o}=this.props;r({show:!0,source:"placemarks"});const i=await n.fetchPlacemarksByFloor(e,t);this.setState({fetchedPlacemarks:i},(()=>{r({show:!1,source:"placemarks"})})),o()}getFilteredPlacemarks(e){var t;const{placemarkOptions:n,floorID:r}=this.props,o=null!==(t=null==n?void 0:n.filter)&&void 0!==t?t:()=>!0;return e.filter((e=>"exclusion_area"!==e.type&&e.map===r&&(!0===(null==n?void 0:n.showHiddenPlacemarks)||!e.hide_on_map))).filter(o)}render(){const e=this.getFilteredPlacemarks(this.state.fetchedPlacemarks);return(0,o.h)("div",{"data-testid":"meridian--private--placemark-layer"},e.map((e=>{var t,n,r,a;return(0,o.h)(i.default,{key:e.id,isSelected:!!this.props.selectedItem&&this.props.selectedItem.id===e.id,mapZoomFactor:this.props.mapZoomFactor,data:e,onClick:this.props.onPlacemarkClick,disabled:null===(t=this.props.placemarkOptions)||void 0===t?void 0:t.disabled,labelMode:null!==(r=null===(n=this.props.placemarkOptions)||void 0===n?void 0:n.labelMode)&&void 0!==r?r:"zoom",labelZoomLevel:null===(a=this.props.placemarkOptions)||void 0===a?void 0:a.labelZoomLevel})})))}}t.default=s},3996:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=n(172),i=r(n(192)),a=n(2785),s=n(7746),l=(0,a.css)(a.mixins.shadow,a.mixins.buttonReset,a.mixins.pointer,a.mixins.focusNone,{label:"tag",width:48,height:48,borderRadius:"100%",position:"absolute",backgroundColor:"white",backgroundPosition:"center",backgroundRepeat:"no-repeat",backgroundSize:"cover",border:"2px solid white",overflow:"hidden",transition:"\n width 80ms ease,\n height 80ms ease,\n top 500ms ease,\n left 500ms ease\n ",zIndex:2}),c=(0,a.css)(l,{width:60,height:60,zIndex:3,boxShadow:"0 0 0 2px white, 0 0 4px black"});t.default=({isSelected:e,data:t,mapZoomFactor:n,onClick:r=(()=>{}),disabled:u=!1})=>{const f=1/n/(n<.2?1.4:1),h=t.image_url||i.default;return(0,o.h)("button",{"data-meridian-tag-id":t.id,disabled:u,className:(0,a.cx)("meridian-tag",l,(0,s.getTagLabels)(t).map((e=>`meridian-tag-label-${e=e.replace(/ /g,"-").replace(/[^a-z0-9_-]/i,"")}`)),e&&["meridian-tag-selected",c],(0,a.css)({backgroundImage:`url('${h}')`})),style:{left:t.x,top:t.y,transform:`translate(-50%, -50%) scale(${f})`},onClick:e=>{e.target instanceof HTMLElement&&e.target.focus(),r(t)},onMouseDown:e=>{e.stopPropagation()}})}},8901:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=r(n(5858)),i=n(172),a=r(n(3996)),s=n(7746);class l extends i.Component{constructor(){var e;super(...arguments),this.state={tagsByMAC:{},connectionsByFloorID:{}},this.tagUpdates={},this.isMounted=!1,this.commitTagUpdates=(0,o.default)((()=>{this.isMounted&&this.setState((e=>({tagsByMAC:Object.assign(Object.assign({},e.tagsByMAC),this.tagUpdates)})),(()=>{this.tagUpdates={},this.onUpdate()}))}),(null===(e=this.props.tagOptions)||void 0===e?void 0:e.updateInterval)||5e3),this.onUpdate=()=>{const{tagsByMAC:e}=this.state,{onUpdate:t,tagOptions:n={}}=this.props,{filter:r=(()=>!0)}=n,o=this.filterControlTags(Object.values(e)),i=o.filter(r);t&&t({allTags:o,filteredTags:i})}}componentDidMount(){this.isMounted=!0;const{floorID:e}=this.props;e&&this.connect(e)}shouldComponentUpdate(e){return!(this.props.isPanningOrZooming&&e.mapZoomFactor===this.props.mapZoomFactor)}componentDidUpdate(e){e.floorID!==this.props.floorID&&(this.disconnect(e.floorID),this.connect(this.props.floorID))}componentWillUnmount(){this.isMounted=!1,this.disconnect(this.props.floorID)}connect(e){const{locationID:t,api:n,toggleLoadingSpinner:r,onInit:o}=this.props;r({show:!0,source:"tags"});const i=n.openStream({locationID:t,floorID:e,onInitialTags:t=>{e===this.props.floorID&&this.isMounted&&(this.setState({tagsByMAC:(0,s.keyBy)(t,(e=>e.mac))},(()=>{this.onUpdate(),this.props.toggleLoadingSpinner({show:!1,source:"tags"})})),o())},onTagUpdate:t=>{e===this.props.floorID&&this.isMounted&&(e!==t.map_id?this.setState((e=>({tagsByMAC:(0,s.objectWithoutKey)(e.tagsByMAC,t.mac)})),(()=>{this.onUpdate()})):(this.tagUpdates=Object.assign(Object.assign({},this.tagUpdates),{[t.mac]:t}),this.props.isPanningOrZooming||this.commitTagUpdates()))},onException:()=>{this.props.toggleLoadingSpinner({show:!1,source:"tags"})}});this.isMounted&&this.setState((t=>({connectionsByFloorID:Object.assign(Object.assign({},t.connectionsByFloorID),{[e]:i})})),(()=>{this.onUpdate()}))}disconnect(e){const t=this.state.connectionsByFloorID[e];t&&(this.props.toggleLoadingSpinner({show:!1,source:"tags"}),t.close()),this.tagUpdates={},this.isMounted&&this.setState((t=>({tagsByMAC:{},connectionsByFloorID:(0,s.objectWithoutKey)(t.connectionsByFloorID,e)})),(()=>{this.onUpdate()}))}filterControlTags(e){const{tagOptions:t}=this.props;return e.filter((e=>!0===(null==t?void 0:t.showControlTags)||!e.is_control_tag))}render(){const{selectedItem:e,tagOptions:t={},onTagClick:n,mapZoomFactor:r}=this.props,{tagsByMAC:o}=this.state,{filter:s=(()=>!0)}=t,l=Object.values(o);return(0,i.h)("div",{"data-testid":"meridian--private--tag-layer"},this.filterControlTags(l).filter(s).map((o=>(0,i.h)(a.default,{key:o.mac,isSelected:!!e&&e.mac===o.mac,mapZoomFactor:r,data:o,onClick:n,disabled:t.disabled}))))}}t.default=l},7866:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n={en:{tags:"Tags",placemarks:"Placemarks",floors:"Floors",search:"Search",search_tags:"Search Tags",search_placemarks:"Search Placemarks",search_floors:"Search Floors",no_results_found:"No results found",close:"Close"},ar:{tags:"العلامات",placemarks:" العلامات الموضعية",floors:" الطوابق",search:" بحث",search_tags:" بحث عن علامات",search_placemarks:" بحث عن علامات موضعية",search_floors:" بحث عن طوابق",no_results_found:" لم يتم العثور على نتائج",close:"إغلاق"},ca:{tags:"Etiquetes",placemarks:"Marques de posició",floors:"Pisos",search:"Cerca",search_tags:"Cerca etiquetes",search_placemarks:"Cerca marcadors de posició",search_floors:"Cerca pisos",no_results_found:"Sense resultats",close:"Tanca"},es:{tags:"Etiquetas",placemarks:"Marcas de posición",floors:"Pisos",search:"Buscar",search_tags:"Buscar etiquetas",search_placemarks:"Buscar marcas de posición",search_floors:"Buscar pisos",no_results_found:"No se han encontrado resultados",close:"Cerrar"},cs:{tags:"Tagy",placemarks:"Značky míst",floors:"Patra",search:"Hledat",search_tags:"Hledat tagy",search_placemarks:"Hledat značky míst",search_floors:"Hledat patra",no_results_found:"Nebyly nalezeny žádné výsledky",close:"Zavřít"},de:{tags:"Stichworte",placemarks:"Ortsmarken",floors:"Etagen",search:"Suche",search_tags:"Such-Tags",search_placemarks:"In den Ortsmarken (Räumen, Sälen) suchen",search_floors:"In den Stockwerken suchen",no_results_found:"Keine Ergebnisse gefunden",close:"Schließen"},fr:{tags:"Mots clés",placemarks:"Repères",floors:"Étages",search:"Rechercher",search_tags:"Rechercher des mots clés",search_placemarks:"Rechercher des repères",search_floors:"Rechercher des étages",no_results_found:"Aucun résultat trouvé",close:"Fermer"},it:{tags:"Tag",placemarks:"Segnaposto",floors:"Piani",search:"Cerca",search_tags:"Cerca tag",search_placemarks:"Cerca segnaposto",search_floors:"Cerca piani",no_results_found:"Nessun risultato trovato",close:"Chiudi"},iw:{tags:"תגים",placemarks:"סימני מקום",floors:"קומות",search:"חפש",search_tags:"חפש תגיות",search_placemarks:"חפש סימני מקום",search_floors:"חפש קומות",no_results_found:"לא נמצאו תוצאות",close:"סגור"},ja:{tags:"タグ",placemarks:"目印",floors:"フロア",search:"探す",search_tags:"検索タグ",search_placemarks:"目印を検索する",search_floors:"フロアを検索する",no_results_found:"結果が見つからない",close:"近い"},ko:{tags:"태그",placemarks:"장소표시<",floors:"바닥",search:"검색",search_tags:"태그검색<",search_placemarks:"장소표시 검색<",search_floors:"층수검색<",no_results_found:"검색결과가 없습니다<",close:"닫기"},nl:{tags:"Tags",placemarks:"Plaatsaanduidingen",floors:"Verdiepingen",search:"Zoeken",search_tags:"Zoek tags",search_placemarks:"Zoek plaatsaanduidingen",search_floors:"Zoek verdiepingen",no_results_found:"Geen resultaten gevonden",close:"Sluiten"},no:{tags:"Tagger",placemarks:"Stedsmarkeringer",floors:"Gulv",search:"Søk",search_tags:"Søk i etiketter",search_placemarks:"Søk i stedsmarkeringer",search_floors:"Søk i etasjer",no_results_found:"Ingen resultater",close:"Lukk"},pt:{tags:"Tags",placemarks:"Marcadores",floors:"Andares",search:"Procurar",search_tags:"Tags de pesquisa",search_placemarks:"Pesquisar marcadores",search_floors:"Pesquisar andares",no_results_found:"Nenhum resultado encontrado",close:"Perto"},ru:{tags:"Taggar",placemarks:"Platsmärken",floors:"Golv",search:"Sök",search_tags:"Sök taggar",search_placemarks:"Sök efter platsmärken",search_floors:"Sök Golv",no_results_found:"Inga resultat funna",close:"Stänga"},sv:{tags:"Taggar",placemarks:"Platsmärken",floors:"Golv",search:"Sök",search_tags:"Sök taggar",search_placemarks:"Sök efter platsmärken",search_floors:"Sök Golv",no_results_found:"Inga resultat funna",close:"Stänga"},uk:{tags:"Теги",placemarks:"Мітки",floors:"Поверхи",search:"Пошук",search_tags:"Пошук тегів",search_placemarks:"Пошук міток",search_floors:"Пошук поверхів",no_results_found:"Нічого не знайдено",close:"Закрити"},vi:{tags:"Thẻ",placemarks:"Dấu vị trí",floors:"Tầng",search:"Tìm kiếm ",search_tags:"Thẻ tìm kiếm",search_placemarks:"Dấu vị trí tìm kiếm",search_floors:"Tầng tìm kiếm",no_results_found:"Không có kết quả nào được tìm thấy",close:"Đóng"},"zh-cn":{tags:"标签",placemarks:"地标",floors:"楼层",search:"搜索",search_tags:"搜索标签",search_placemarks:"搜索地标",search_floors:"搜索楼层",no_results_found:"未找到结果",close:"关闭"},"zh-tw":{tags:"標籤",placemarks:"地標",floors:"樓層",search:"搜尋",search_tags:"搜尋標籤",search_placemarks:"搜尋地標",search_floors:"搜尋樓層",no_results_found:"未找到結果",close:"關閉"}};t.default={lookup:function(e,t){var r,o,i;const a=t||(navigator.languages&&navigator.languages[0]||navigator.language||"en").toLowerCase(),s=null!==(r=a.split("-").shift())&&void 0!==r?r:"en",l=n;return(null===(o=null==l?void 0:l[a])||void 0===o?void 0:o[e])||(null===(i=null==l?void 0:l[s])||void 0===i?void 0:i[e])||l.en[e]||e}}},5481:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(172),o=n(2785),i=({onClick:e,dir:t})=>"in"===t?(0,r.h)("button",{className:(0,o.cx)("meridian-zoom-button","meridian-zoom-button-in",l),"data-testid":"meridian--private--zoom-button-in",onClick:e},(0,r.h)("svg",{viewBox:"0 0 36 36"},(0,r.h)("path",{d:"M26 17h-7v-7a1 1 0 0 0-2 0v7h-7a1 1 0 0 0 0 2h7v7a1 1 0 0 0 2 0v-7h7a1 1 0 0 0 0-2"}))):(0,r.h)("button",{className:(0,o.cx)("meridian-zoom-button","meridian-zoom-button-out",c),"data-testid":"meridian--private--zoom-button-out",onClick:e},(0,r.h)("svg",{viewBox:"0 0 36 36"},(0,r.h)("path",{d:"M26 19H10a1 1 0 0 1 0-2h16a1 1 0 0 1 0 2"}))),a=(0,o.css)(o.mixins.shadow,o.mixins.rounded,{position:"absolute",display:"flex",flexDirection:"column",zIndex:1,right:15,bottom:15}),s=(0,o.css)(o.mixins.buttonReset,o.mixins.focusRing,o.mixins.buttonHoverActive,o.mixins.rounded,{cursor:"pointer",padding:4,width:40,height:40,border:0,fontSize:20,fontWeight:200,fill:o.theme.brandBrightBlue,background:"white"}),l=(0,o.css)(s,{borderBottomLeftRadius:0,borderBottomRightRadius:0,borderBottom:`1px solid ${o.theme.buttonSeparatorColor}`}),c=(0,o.css)(s,{borderTopLeftRadius:0,borderTopRightRadius:0});t.default=({onZoomIn:e,onZoomOut:t})=>(0,r.h)("div",{className:(0,o.cx)("meridian-zoom-controls",a)},(0,r.h)(i,{onClick:e,dir:"in"}),(0,r.h)(i,{onClick:t,dir:"out"}))},5396:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.sendAnalyticsCodeEvent=void 0;const r=n(4221),o=window.devicePixelRatio||1,i=window.screen,a=`${i.width*o}x${i.height*o}`;t.sendAnalyticsCodeEvent=async function(e){if("Cypress"in window)return;const{action:t,locationID:n,onTagsUpdate:o=!1,tagsFilter:i=!1,placemarksFilter:s=!1,internalUpdate:l=!1}=e,c={session_id:n,v:"1",app_name:"MeridianSDK",data_src:"app",app_version:r.version,uid:n,cid:n,hit_type:"event",event_category:"code",event_action:t,event_value:1,event_label:l?"internal":"external",tag_update:o?1:0,tags_filter:i?1:0,placemarks_filter:s?1:0,language:navigator.language,screen_res:a,anonymize_ip:1,user_agent:window.navigator.userAgent,z:Math.random().toString(36).substring(7)};fetch("https://www.google-analytics.com/mp/collect?measurement_id=G-GCT86YZLFE&api_secret=1v79k_rPSLyvvcHpzSDqFQ",{method:"POST",body:JSON.stringify({client_id:n,events:[{name:"page_event",params:Object.assign({},c)}]})})}},2785:function(e,t,n){"use strict";var r,o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.css=t.keyframes=t.cx=t.mixins=t.theme=void 0;const i=o(n(129));t.theme={fontSizeSmallest:"12px",fontSizeSmaller:"14px",fontSize:"16px",fontSizeBigger:"18px",black:"#000",white:"#fff",almostWhite:"#fafafa",textColor:"#1b1b1b",textColorBluishLightGrey:"#9fa8ae",textColorBluish:"hsl(208, 17%, 42%)",brandOrange:"#ff8300",brandBlue:"hsl(203, 100%, 23%)",brandBrightBlue:"hsl(207, 65%, 46%)",buttonActiveColor:"hsl(201, 55%, 94%)",buttonHoverColor:"hsl(200, 60%, 97%)",buttonSeparatorColor:"#f0f0f0",borderColor:"#ebeef2",borderColorDarker:"#dfe1e5",borderRadius:6,searchBarColor:"#297BC0"},t.mixins={flexRow:{display:"flex",flexDirection:"row"},flexColumn:{display:"flex",flexDirection:"column"},overflowEllipses:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},textStrokeWhite:{WebkitFontSmoothing:"antialiased",textShadow:["rgba(255, 255, 255, 0.5) 1px 1px 0","rgba(255, 255, 255, 0.5) -1px -1px 0","white 0 0 1px","white 0 0 2px","white 0 0 3px","white 0 0 4px"].join(", ")},buttonReset:{padding:0,margin:0,font:"inherit",border:0,borderRadius:0,background:"transparent",color:"inherit","&::-moz-focus-inner":{border:0}},buttonHoverActive:{"&:hover":{background:t.theme.buttonHoverColor},"&:active":{background:t.theme.buttonActiveColor}},borderBox:{boxSizing:"border-box"},focusRing:{"&:focus":{outline:0,boxShadow:`inset 0 0 0 1px ${t.theme.brandBrightBlue}`}},focusRingMenuItem:{"&:focus":{outline:0,boxShadow:`\n inset 0 0 0 1px white,\n inset 0 0 0 2px ${t.theme.brandBrightBlue}\n `}},focusOutline:{"&:focus":{outline:0,boxShadow:"0 0 0 2px currentcolor"}},focusDarken:{"&:focus":{outline:0,boxShadow:"inset 0 0 0 9999px rgba(0, 0, 0, 0.1)"}},focusNone:{"&:focus":{outline:"none"}},shadow:{boxShadow:"0 0 3px rgba(0, 0, 0, 0.25)"},rounded:{borderRadius:t.theme.borderRadius},maxRounded:{borderRadius:99999},paddingMedium:{padding:"20px"},pointer:{cursor:"pointer","&:disabled":{cursor:"default"}}},r=(0,i.default)({key:"meridian--private-"}),t.cx=r.cx,t.keyframes=r.keyframes,t.css=r.css},7746:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.debouncedPlacemarkSearch=t.placemarkSearchParams=t.cleanQuery=t.isEnvOptions=t.asyncClientCall=t.requiredParam=t.getPlacemarkCategories=t.getTagLabels=t.createSearchMatcher=t.keyBy=t.objectWithoutKey=t.uiText=t.logDeprecated=t.logError=t.logWarn=void 0;const n="[@meridian/web-sdk]";t.logWarn=console.warn.bind(console,n),t.logError=console.error.bind(console,n),t.logDeprecated=t.logWarn.bind(null,"[deprecated]"),t.uiText={enDash:"–",unnamedBuilding:"Unassigned"},t.objectWithoutKey=function(e,t){const n=Object.assign({},e);return delete n[t],n},t.keyBy=function(e,t){const n={};for(const r of e)n[t(r)]=r;return n},t.createSearchMatcher=function(e){return t=>t.toLowerCase().indexOf(e.toLowerCase().trim())>=0},t.getTagLabels=function(e){return(e.tags||[]).map((e=>e.name))},t.getPlacemarkCategories=function(e){return(e.categories||[]).map((e=>e.name))},t.requiredParam=function(e,n){(0,t.logError)(`${e}: argument \`${n}\` is required`)},t.asyncClientCall=function(e,...t){setTimeout(e,0,...t)},t.isEnvOptions=function(e){return"staging"===e||"production"===e||"eu"===e||"development"===e||"devCloud"===e},t.cleanQuery=function(e){return e.replace(/-/g," ").replace(/:/g," ").replace(/[\\)"(]/g," ").replace(/[ ]{2,}/g," ").trim()},t.placemarkSearchParams="is_map_published=true AND kind:placemark AND NOT is_searchable=false AND NOT type=exclusion_area",t.debouncedPlacemarkSearch=function e(t,n=0){let r,o,i;return function(...t){return o?(i=!0,new Promise((i=>{o=i,r=setTimeout(a.bind(e,t,i),n)}))):new Promise((i=>{o=i,r=setTimeout(a.bind(e,t,i),n)}))};function a(n,a){i&&a!==o?a(null):(t.apply(e,n).then(a).catch(a),i=!1,clearTimeout(r),r=o=null)}}},4221:function(e,t,n){"use strict";var r,o,i,a=this&&this.__classPrivateFieldGet||function(e,t,n,r){if("a"===n&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!r:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?r:"a"===n?r.call(e):r?r.value:t.get(e)},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.API=t.createAPI=t.createMap=t.init=t.mapPointToLatLng=t.latLngToMapPoint=t.restrictedPanZoom=t.version=t.pointsFromArea=t.placemarkIconURL=void 0;const l=s(n(6425)),c=s(n(7975)),u=n(172),f=s(n(5697)),h=s(n(9101)),p=n(5396),d=s(n(529)),m=n(7746),g=n(323),v=new Map;for(const e of g.keys()){const t=c.default.basename(e,".svg"),n=g(e).default;v.set(t,n)}t.placemarkIconURL=function(e){if(!e||e.startsWith("label_"))return h.default;return v.get(e)||((0,m.logError)(`placemarkIconURL: no such icon '${e}'`),h.default)},t.pointsFromArea=function(e){return e?e.split(",").map(Number):[]};const y=()=>n(3034);"complete"===document.readyState?setTimeout(y,0):document.addEventListener("DOMContentLoaded",y,!1);const _={api:void 0};t.version="1.22.7",t.restrictedPanZoom=function(e){return"wheel"===e.type?e.shiftKey||e.altKey||e.ctrlKey||e.metaKey:"touch"!==e.type||e.touches.length>=2},t.latLngToMapPoint=function(e,{lat:t,lng:n}){const r=t,o=n,i=[];e.gps_ref_points.split(",").forEach((e=>{i.push(Number(e))}));const a={lat:i[0],lng:i[1],x:i[4],y:i[5]},s={lat:i[2],lng:i[3],x:i[6],y:i[7]},l=6371;a.globalCoordinateX=l*a.lng*Math.cos((a.lat+s.lat)/2),a.globalCoordinateY=l*a.lat,s.globalCoordinateX=l*s.lng*Math.cos((a.lat+s.lat)/2),s.globalCoordinateY=l*s.lat;const c=l*r,u=(l*o*Math.cos((a.lat+s.lat)/2)-a.globalCoordinateX)/(s.globalCoordinateX-a.globalCoordinateX),f=(c-a.globalCoordinateY)/(s.globalCoordinateY-a.globalCoordinateY);return{x:a.x+(s.x-a.x)*u,y:a.y+(s.y-a.y)*f}},t.mapPointToLatLng=function(e,{x:t,y:n}){const r=[];e.gps_ref_points.split(",").forEach((e=>{r.push(Number(e))}));const o={lat:r[0],lng:r[1],x:r[4],y:r[5]},i={lat:r[2],lng:r[3],x:r[6],y:r[7]},a=o.lng,s=i.lng-a,l=function(){let e;return e=o.y{l.isDestroyed?(0,m.logError)("can't call update on a destroyed MeridianMap"):(l.isDestroyed=!0,(0,u.render)(null,e),t.onDestroy&&t.onDestroy())};let r=null;const o=e=>{r=e},i=(r,{internalUpdate:a=!0}={})=>{t=Object.assign(Object.assign({},t),r);const l=_.api||t.api;if(!l)throw(0,m.requiredParam)("createMap","options.api"),new Error("couldn't create MeridianMap");s=(0,u.render)((0,u.h)(d.default,Object.assign({api:l},t,{update:i,ref:o,destroy:n})),e,s),(0,p.sendAnalyticsCodeEvent)({action:"map.update",locationID:t.locationID,onTagsUpdate:Boolean(t.onTagsUpdate),tagsFilter:Boolean(t.tags&&t.tags.filter),placemarksFilter:Boolean(t.placemarks&&t.placemarks.filter),internalUpdate:a})},a=_.api||t.api;if(!a)throw(0,m.requiredParam)("createMap","options.api"),new Error("couldn't create MeridianMap");let s=(0,u.render)((0,u.h)(d.default,Object.assign({api:a},t,{update:i,ref:o,destroy:n})),e);(0,p.sendAnalyticsCodeEvent)({action:"createMap",locationID:t.locationID,onTagsUpdate:Boolean(t.onTagsUpdate),tagsFilter:Boolean(t.tags&&t.tags.filter),placemarksFilter:Boolean(t.placemarks&&t.placemarks.filter)});const l={destroy:n,isDestroyed:!1,update:e=>{l.isDestroyed?(0,m.logError)("can't call update on a destroyed MeridianMap"):i(e,{internalUpdate:!1})},zoomToDefault:()=>{l.isDestroyed?(0,m.logError)("can't call zoomToDefault on a destroyed MeridianMap"):null==r||r.zoomToDefault()},zoomToPoint:e=>{l.isDestroyed?(0,m.logError)("can't call update on a destroyed MeridianMap"):(e||(0,m.requiredParam)("map.zoomToPoint","options"),void 0===e.x&&(0,m.requiredParam)("map.zoomToPoint","options.x"),void 0===e.y&&(0,m.requiredParam)("map.zoomToPoint","options.y"),void 0===e.scale&&(0,m.requiredParam)("map.zoomToPoint","options.scale"),null==r||r.zoomToPoint(e.x,e.y,e.scale))},centerMap:()=>{l.isDestroyed?(0,m.logError)("can't call update on a destroyed MeridianMap"):null==r||r.centerMap()}};return l},t.createAPI=function(e){return(0,m.logDeprecated)("use `new MeridianSDK.API(options)` instead of `MeridianSDK.createAPI(options)`"),e||(0,m.requiredParam)("createAPI","options"),new b(e)};class b{constructor(e){var n;r.add(this),this.debouncedPlacemarkSearchBeta=(0,m.debouncedPlacemarkSearch)(a(this,r,"m",o).bind(this),600),e.token||(0,m.requiredParam)("API","token"),this.token=e.token,this.environment=("devcloud"===(n=e.environment)?"devCloud":n)||"production",this.language=e.language,this._placemarkSearchAbortController=null,this._localSearchAbortController=null;let i={};this.language&&(i={"accept-language":this.language}),this._axiosEditorAPI=l.default.create({baseURL:S[this.environment],headers:Object.assign({Authorization:`Token ${e.token}`,"Meridian-SDK":`WebSDK/${t.version}`},i)}),this._axiosTagsAPI=l.default.create({baseURL:k[this.environment],headers:{Authorization:`Token ${e.token}`}}),this._axiosTagDetailAPI=l.default.create({baseURL:x[this.environment],headers:{Authorization:`Token ${e.token}`}})}get axios(){return(0,m.logDeprecated)("axios is deprecated; use the MeridianSDK.API fetch methods"),this._axiosEditorAPI}async getDirections(e){e.locationID||(0,m.requiredParam)("getDirections","locationID"),e.startFloorID||(0,m.requiredParam)("getDirections","startFloorID"),e.startPlacemarkID||(0,m.requiredParam)("getDirections","startPlacemarkID"),e.endPlacemarkID||(0,m.requiredParam)("getDirections","endPlacemarkID");const t=new URLSearchParams({from_map_id:e.startFloorID,from_placemark_id:e.startPlacemarkID,to_placemark_ids:e.endPlacemarkID,transport_type:e.transportType||"normal"}),n=`/locations/${e.locationID}/directions?${t}`;return(await this._axiosEditorAPI.get(n)).data}async fetchTagsByFloor(e,t){return e||(0,m.requiredParam)("fetchTagsByFloor","locationID"),t||(0,m.requiredParam)("fetchTagsByFloor","floorID"),(await this._axiosTagsAPI.post("/assets",{floor_id:t,location_id:e})).data.asset_updates}async fetchTagsByLocation(e){return e||(0,m.requiredParam)("fetchTagsByLocation","locationID"),(await this._axiosTagsAPI.post("/assets",{location_id:e})).data.asset_updates}async fetchTagDetail(e){return e||(0,m.requiredParam)("fetchTagDetail","mac"),(await this._axiosTagDetailAPI.get(`/tagsinfo/detail/${e}`)).data}async fetchPlacemarksByLocation(e){return e||(0,m.requiredParam)("fetchPlacemarksByLocation","locationID"),await w((async e=>{const{data:t}=await this._axiosEditorAPI.get(e);return t}),`locations/${e}/placemarks`)}async fetchPlacemarksByFloor(e,t){return e||(0,m.requiredParam)("fetchPlacemarksByFloor","locationID"),t||(0,m.requiredParam)("fetchPlacemarksByFloor","floorID"),await w((async e=>{const{data:t}=await this._axiosEditorAPI.get(e);return t}),`locations/${e}/maps/${t}/placemarks`)}async fetchFloorsByLocation(e){return e||(0,m.requiredParam)("fetchFloorsByLocation","locationID"),await w((async e=>{const{data:t}=await this._axiosEditorAPI.get(e);return t}),`locations/${e}/maps`)}async fetchFloorData(e,t){e||(0,m.requiredParam)("fetchFloorData","locationID"),t||(0,m.requiredParam)("fetchFloorData","floorID");const n=`locations/${e}/maps/${t}`,{data:r}=await this._axiosEditorAPI.get(n);return r}async fetchSVG(e){e||(0,m.requiredParam)("fetchSVG","svgURL");const{data:t}=await this._axiosEditorAPI.get(e,{responseType:"blob"});return URL.createObjectURL(t)}openStream({locationID:e,floorID:t,resourceIDs:n,resourceType:r="FLOOR",onInitialTags:o=(()=>{}),onTagUpdate:i=(()=>{}),onException:a=(()=>{}),onClose:s=(()=>{}),onOpen:l=(()=>{})}){"FLOOR"===r&&t&&!n&&(n=[t]),"LOCATION"===r&&e&&!n&&(n=[e]),e||(0,m.requiredParam)("openStream","locationID"),"FLOOR"!==r||t||(0,m.requiredParam)("openStream","floorID"),n||(0,m.requiredParam)("openStream","resourceIDs");let c=!1;const u=new URLSearchParams({method:"POST",authorization:`Token ${this.token}`}),h=O[this.environment],p=new f.default(`${h}?${u}`),d={asset_requests:[{resource_type:r,location_id:e,resource_ids:n}]},g=()=>{c||(c=!0,(0,m.asyncClientCall)(s),p.close())};return p.addEventListener("open",(()=>{c||(l(),p.send(JSON.stringify(d)))})),p.addEventListener("message",(e=>{if(c)return;const t=JSON.parse(e.data);if(t.error)a(new Error(t.error.message));else{if(!t.result)throw new Error(`Unknown message: ${e.data}`);for(const e of t.result.asset_updates){const t=e.event_type;if("UPDATE"!==t)throw new Error(`Unknown event type: ${t}`);(0,m.asyncClientCall)(i,e)}}})),p.addEventListener("error",(()=>{c||a(new Error("MeridianSDK.openStream connection error"))})),p.addEventListener("close",(()=>{c||s()})),(async()=>{if(t&&"FLOOR"===r)try{const n=await this.fetchTagsByFloor(e,t);(0,m.asyncClientCall)(o,n)}catch(e){(0,m.asyncClientCall)(a,e),g()}else if(e&&"LOCATION"===r)try{const t=await this.fetchTagsByLocation(e);(0,m.asyncClientCall)(o,t)}catch(e){(0,m.asyncClientCall)(a,e),g()}else(0,m.asyncClientCall)(o,[])})(),{close:g}}}async function w(e,t){const n=await e(t),r=n.results;let o=n.next;for(;o;){const t=await e(o);r.push(...t.results),o=t.next}return r}t.API=b,r=new WeakSet,o=async function(e){const t=(0,m.cleanQuery)(e.searchStr);if(e.locationID||(0,m.requiredParam)("placemarkSearch","locationID"),this._placemarkSearchAbortController&&this._placemarkSearchAbortController.abort(),this._localSearchAbortController&&this._localSearchAbortController.abort(),!t)return[];this._placemarkSearchAbortController=new AbortController;const n=new URLSearchParams({q:`${t} AND (${m.placemarkSearchParams})`,page_size:"100"});try{return await this._axiosEditorAPI.get(`locations/${e.locationID}/search`,{signal:this._placemarkSearchAbortController.signal,params:n}).then((async n=>{const o=n.data.results;if(e.refPoint&&e.refFloorID&&o.length){const n=await a(this,r,"m",i).call(this,{locationID:e.locationID,searchStr:t,point:e.refPoint,mapID:e.refFloorID}),s=[],l=n.map((e=>e.id));return o.forEach((e=>{l.includes(e.id)||s.push(e)})),this._placemarkSearchAbortController=null,[...n,...s]}return this._placemarkSearchAbortController=null,o}))}catch(e){return"canceled"===e.message?null:(console.warn(e),[])}},i=async function(e){const t=(0,m.cleanQuery)(e.searchStr);if(this._localSearchAbortController&&this._localSearchAbortController.abort(),!t)return[];this._localSearchAbortController=new AbortController;const n=new URLSearchParams({q:`${t} AND (${m.placemarkSearchParams})`,limit:"10",appid:e.locationID,map_id:e.mapID,point:e.point});return this._axiosEditorAPI.get("search/local",{signal:this._localSearchAbortController.signal,params:n}).then((e=>(this._localSearchAbortController=null,e.data.results)))};const k={development:"http://localhost:8091/api/v1",devCloud:"https://dev-tags.meridianapps.com/api/v1",production:"https://tags.meridianapps.com/api/v1",eu:"https://tags-eu.meridianapps.com/api/v1",staging:"https://staging-tags.meridianapps.com/api/v1"},x={development:"http://localhost:8091/api",devCloud:"https://dev-tags.meridianapps.com/api",production:"https://tags.meridianapps.com/api",eu:"https://tags-eu.meridianapps.com/api",staging:"https://staging-tags.meridianapps.com/api"},O={development:"ws://localhost:8091/streams/v1/assets",devCloud:"wss://dev-tags.meridianapps.com/streams/v1/assets",production:"wss://tags.meridianapps.com/streams/v1/assets",eu:"wss://tags-eu.meridianapps.com/streams/v1/assets",staging:"wss://staging-tags.meridianapps.com/streams/v1/assets"},S={development:"http://localhost:8091/api",devCloud:"https://dev-edit.meridianapps.com/api",production:"https://edit.meridianapps.com/api",eu:"https://edit-eu.meridianapps.com/api",staging:"https://staging-edit.meridianapps.com/api"}},6425:function(e,t,n){"use strict";function r(e,t){return function(){return e.apply(t,arguments)}}const{toString:o}=Object.prototype,{getPrototypeOf:i}=Object,a=(s=Object.create(null),e=>{const t=o.call(e);return s[t]||(s[t]=t.slice(8,-1).toLowerCase())});var s;const l=e=>(e=e.toLowerCase(),t=>a(t)===e),c=e=>t=>typeof t===e,{isArray:u}=Array,f=c("undefined"),h=l("ArrayBuffer"),p=c("string"),d=c("function"),m=c("number"),g=e=>null!==e&&"object"==typeof e,v=e=>{if("object"!==a(e))return!1;const t=i(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||Symbol.toStringTag in e||Symbol.iterator in e)},y=l("Date"),_=l("File"),b=l("Blob"),w=l("FileList"),k=l("URLSearchParams"),[x,O,S,C]=["ReadableStream","Request","Response","Headers"].map(l);function A(e,t,{allOwnKeys:n=!1}={}){if(null==e)return;let r,o;if("object"!=typeof e&&(e=[e]),u(e))for(r=0,o=e.length;r0;)if(r=n[o],t===r.toLowerCase())return r;return null}const T="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:n.g,P=e=>!f(e)&&e!==T,D=(j="undefined"!=typeof Uint8Array&&i(Uint8Array),e=>j&&e instanceof j);var j;const M=l("HTMLFormElement"),R=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),L=l("RegExp"),N=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};A(n,((n,o)=>{let i;!1!==(i=t(n,o,e))&&(r[o]=i||n)})),Object.defineProperties(e,r)},I="abcdefghijklmnopqrstuvwxyz",z="0123456789",F={DIGIT:z,ALPHA:I,ALPHA_DIGIT:I+I.toUpperCase()+z},B=l("AsyncFunction"),U=($="function"==typeof setImmediate,q=d(T.postMessage),$?setImmediate:q?(W=`axios@${Math.random()}`,H=[],T.addEventListener("message",(({source:e,data:t})=>{e===T&&t===W&&H.length&&H.shift()()}),!1),e=>{H.push(e),T.postMessage(W,"*")}):e=>setTimeout(e));var $,q,W,H;const Z="undefined"!=typeof queueMicrotask?queueMicrotask.bind(T):"undefined"!=typeof process&&process.nextTick||U;var G={isArray:u,isArrayBuffer:h,isBuffer:function(e){return null!==e&&!f(e)&&null!==e.constructor&&!f(e.constructor)&&d(e.constructor.isBuffer)&&e.constructor.isBuffer(e)},isFormData:e=>{let t;return e&&("function"==typeof FormData&&e instanceof FormData||d(e.append)&&("formdata"===(t=a(e))||"object"===t&&d(e.toString)&&"[object FormData]"===e.toString()))},isArrayBufferView:function(e){let t;return t="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&h(e.buffer),t},isString:p,isNumber:m,isBoolean:e=>!0===e||!1===e,isObject:g,isPlainObject:v,isReadableStream:x,isRequest:O,isResponse:S,isHeaders:C,isUndefined:f,isDate:y,isFile:_,isBlob:b,isRegExp:L,isFunction:d,isStream:e=>g(e)&&d(e.pipe),isURLSearchParams:k,isTypedArray:D,isFileList:w,forEach:A,merge:function e(){const{caseless:t}=P(this)&&this||{},n={},r=(r,o)=>{const i=t&&E(n,o)||o;v(n[i])&&v(r)?n[i]=e(n[i],r):v(r)?n[i]=e({},r):u(r)?n[i]=r.slice():n[i]=r};for(let e=0,t=arguments.length;e(A(t,((t,o)=>{n&&d(t)?e[o]=r(t,n):e[o]=t}),{allOwnKeys:o}),e),trim:e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:e=>(65279===e.charCodeAt(0)&&(e=e.slice(1)),e),inherits:(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},toFlatObject:(e,t,n,r)=>{let o,a,s;const l={};if(t=t||{},null==e)return t;do{for(o=Object.getOwnPropertyNames(e),a=o.length;a-- >0;)s=o[a],r&&!r(s,e,t)||l[s]||(t[s]=e[s],l[s]=!0);e=!1!==n&&i(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},kindOf:a,kindOfTest:l,endsWith:(e,t,n)=>{e=String(e),(void 0===n||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return-1!==r&&r===n},toArray:e=>{if(!e)return null;if(u(e))return e;let t=e.length;if(!m(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},forEachEntry:(e,t)=>{const n=(e&&e[Symbol.iterator]).call(e);let r;for(;(r=n.next())&&!r.done;){const n=r.value;t.call(e,n[0],n[1])}},matchAll:(e,t)=>{let n;const r=[];for(;null!==(n=e.exec(t));)r.push(n);return r},isHTMLForm:M,hasOwnProperty:R,hasOwnProp:R,reduceDescriptors:N,freezeMethods:e=>{N(e,((t,n)=>{if(d(e)&&-1!==["arguments","caller","callee"].indexOf(n))return!1;const r=e[n];d(r)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")}))}))},toObjectSet:(e,t)=>{const n={},r=e=>{e.forEach((e=>{n[e]=!0}))};return u(e)?r(e):r(String(e).split(t)),n},toCamelCase:e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(e,t,n){return t.toUpperCase()+n})),noop:()=>{},toFiniteNumber:(e,t)=>null!=e&&Number.isFinite(e=+e)?e:t,findKey:E,global:T,isContextDefined:P,ALPHABET:F,generateString:(e=16,t=F.ALPHA_DIGIT)=>{let n="";const{length:r}=t;for(;e--;)n+=t[Math.random()*r|0];return n},isSpecCompliantForm:function(e){return!!(e&&d(e.append)&&"FormData"===e[Symbol.toStringTag]&&e[Symbol.iterator])},toJSONObject:e=>{const t=new Array(10),n=(e,r)=>{if(g(e)){if(t.indexOf(e)>=0)return;if(!("toJSON"in e)){t[r]=e;const o=u(e)?[]:{};return A(e,((e,t)=>{const i=n(e,r+1);!f(i)&&(o[t]=i)})),t[r]=void 0,o}}return e};return n(e,0)},isAsyncFn:B,isThenable:e=>e&&(g(e)||d(e))&&d(e.then)&&d(e.catch),setImmediate:U,asap:Z};function V(e,t,n,r,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),o&&(this.response=o,this.status=o.status?o.status:null)}G.inherits(V,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:G.toJSONObject(this.config),code:this.code,status:this.status}}});const X=V.prototype,J={};function Y(e){return G.isPlainObject(e)||G.isArray(e)}function K(e){return G.endsWith(e,"[]")?e.slice(0,-2):e}function Q(e,t,n){return e?e.concat(t).map((function(e,t){return e=K(e),!n&&t?"["+e+"]":e})).join(n?".":""):t}["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((e=>{J[e]={value:e}})),Object.defineProperties(V,J),Object.defineProperty(X,"isAxiosError",{value:!0}),V.from=(e,t,n,r,o,i)=>{const a=Object.create(X);return G.toFlatObject(e,a,(function(e){return e!==Error.prototype}),(e=>"isAxiosError"!==e)),V.call(a,e.message,t,n,r,o),a.cause=e,a.name=e.name,i&&Object.assign(a,i),a};const ee=G.toFlatObject(G,{},null,(function(e){return/^is[A-Z]/.test(e)}));function te(e,t,n){if(!G.isObject(e))throw new TypeError("target must be an object");t=t||new FormData;const r=(n=G.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(e,t){return!G.isUndefined(t[e])}))).metaTokens,o=n.visitor||c,i=n.dots,a=n.indexes,s=(n.Blob||"undefined"!=typeof Blob&&Blob)&&G.isSpecCompliantForm(t);if(!G.isFunction(o))throw new TypeError("visitor must be a function");function l(e){if(null===e)return"";if(G.isDate(e))return e.toISOString();if(!s&&G.isBlob(e))throw new V("Blob is not supported. Use a Buffer instead.");return G.isArrayBuffer(e)||G.isTypedArray(e)?s&&"function"==typeof Blob?new Blob([e]):Buffer.from(e):e}function c(e,n,o){let s=e;if(e&&!o&&"object"==typeof e)if(G.endsWith(n,"{}"))n=r?n:n.slice(0,-2),e=JSON.stringify(e);else if(G.isArray(e)&&function(e){return G.isArray(e)&&!e.some(Y)}(e)||(G.isFileList(e)||G.endsWith(n,"[]"))&&(s=G.toArray(e)))return n=K(n),s.forEach((function(e,r){!G.isUndefined(e)&&null!==e&&t.append(!0===a?Q([n],r,i):null===a?n:n+"[]",l(e))})),!1;return!!Y(e)||(t.append(Q(o,n,i),l(e)),!1)}const u=[],f=Object.assign(ee,{defaultVisitor:c,convertValue:l,isVisitable:Y});if(!G.isObject(e))throw new TypeError("data must be an object");return function e(n,r){if(!G.isUndefined(n)){if(-1!==u.indexOf(n))throw Error("Circular reference detected in "+r.join("."));u.push(n),G.forEach(n,(function(n,i){!0===(!(G.isUndefined(n)||null===n)&&o.call(t,n,G.isString(i)?i.trim():i,r,f))&&e(n,r?r.concat(i):[i])})),u.pop()}}(e),t}function ne(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,(function(e){return t[e]}))}function re(e,t){this._pairs=[],e&&te(e,this,t)}const oe=re.prototype;function ie(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function ae(e,t,n){if(!t)return e;const r=n&&n.encode||ie,o=n&&n.serialize;let i;if(i=o?o(t,n):G.isURLSearchParams(t)?t.toString():new re(t,n).toString(r),i){const t=e.indexOf("#");-1!==t&&(e=e.slice(0,t)),e+=(-1===e.indexOf("?")?"?":"&")+i}return e}oe.append=function(e,t){this._pairs.push([e,t])},oe.toString=function(e){const t=e?function(t){return e.call(this,t,ne)}:ne;return this._pairs.map((function(e){return t(e[0])+"="+t(e[1])}),"").join("&")};var se=class{constructor(){this.handlers=[]}use(e,t,n){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){G.forEach(this.handlers,(function(t){null!==t&&e(t)}))}},le={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},ce={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:re,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]};const ue="undefined"!=typeof window&&"undefined"!=typeof document,fe="object"==typeof navigator&&navigator||void 0,he=ue&&(!fe||["ReactNative","NativeScript","NS"].indexOf(fe.product)<0),pe="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,de=ue&&window.location.href||"http://localhost";var me={...Object.freeze({__proto__:null,hasBrowserEnv:ue,hasStandardBrowserWebWorkerEnv:pe,hasStandardBrowserEnv:he,navigator:fe,origin:de}),...ce};function ge(e){function t(e,n,r,o){let i=e[o++];if("__proto__"===i)return!0;const a=Number.isFinite(+i),s=o>=e.length;return i=!i&&G.isArray(r)?r.length:i,s?(G.hasOwnProp(r,i)?r[i]=[r[i],n]:r[i]=n,!a):(r[i]&&G.isObject(r[i])||(r[i]=[]),t(e,n,r[i],o)&&G.isArray(r[i])&&(r[i]=function(e){const t={},n=Object.keys(e);let r;const o=n.length;let i;for(r=0;r{t(function(e){return G.matchAll(/\w+|\[(\w*)]/g,e).map((e=>"[]"===e[0]?"":e[1]||e[0]))}(e),r,n,0)})),n}return null}const ve={transitional:le,adapter:["xhr","http","fetch"],transformRequest:[function(e,t){const n=t.getContentType()||"",r=n.indexOf("application/json")>-1,o=G.isObject(e);if(o&&G.isHTMLForm(e)&&(e=new FormData(e)),G.isFormData(e))return r?JSON.stringify(ge(e)):e;if(G.isArrayBuffer(e)||G.isBuffer(e)||G.isStream(e)||G.isFile(e)||G.isBlob(e)||G.isReadableStream(e))return e;if(G.isArrayBufferView(e))return e.buffer;if(G.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let i;if(o){if(n.indexOf("application/x-www-form-urlencoded")>-1)return function(e,t){return te(e,new me.classes.URLSearchParams,Object.assign({visitor:function(e,t,n,r){return me.isNode&&G.isBuffer(e)?(this.append(t,e.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)}},t))}(e,this.formSerializer).toString();if((i=G.isFileList(e))||n.indexOf("multipart/form-data")>-1){const t=this.env&&this.env.FormData;return te(i?{"files[]":e}:e,t&&new t,this.formSerializer)}}return o||r?(t.setContentType("application/json",!1),function(e,t,n){if(G.isString(e))try{return(0,JSON.parse)(e),G.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(0,JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){const t=this.transitional||ve.transitional,n=t&&t.forcedJSONParsing,r="json"===this.responseType;if(G.isResponse(e)||G.isReadableStream(e))return e;if(e&&G.isString(e)&&(n&&!this.responseType||r)){const n=!(t&&t.silentJSONParsing)&&r;try{return JSON.parse(e)}catch(e){if(n){if("SyntaxError"===e.name)throw V.from(e,V.ERR_BAD_RESPONSE,this,null,this.response);throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:me.classes.FormData,Blob:me.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};G.forEach(["delete","get","head","post","put","patch"],(e=>{ve.headers[e]={}}));var ye=ve;const _e=G.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),be=Symbol("internals");function we(e){return e&&String(e).trim().toLowerCase()}function ke(e){return!1===e||null==e?e:G.isArray(e)?e.map(ke):String(e)}function xe(e,t,n,r,o){return G.isFunction(r)?r.call(this,t,n):(o&&(t=n),G.isString(t)?G.isString(r)?-1!==t.indexOf(r):G.isRegExp(r)?r.test(t):void 0:void 0)}class Oe{constructor(e){e&&this.set(e)}set(e,t,n){const r=this;function o(e,t,n){const o=we(t);if(!o)throw new Error("header name must be a non-empty string");const i=G.findKey(r,o);(!i||void 0===r[i]||!0===n||void 0===n&&!1!==r[i])&&(r[i||t]=ke(e))}const i=(e,t)=>G.forEach(e,((e,n)=>o(e,n,t)));if(G.isPlainObject(e)||e instanceof this.constructor)i(e,t);else if(G.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim()))i((e=>{const t={};let n,r,o;return e&&e.split("\n").forEach((function(e){o=e.indexOf(":"),n=e.substring(0,o).trim().toLowerCase(),r=e.substring(o+1).trim(),!n||t[n]&&_e[n]||("set-cookie"===n?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)})),t})(e),t);else if(G.isHeaders(e))for(const[t,r]of e.entries())o(r,t,n);else null!=e&&o(t,e,n);return this}get(e,t){if(e=we(e)){const n=G.findKey(this,e);if(n){const e=this[n];if(!t)return e;if(!0===t)return function(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}(e);if(G.isFunction(t))return t.call(this,e,n);if(G.isRegExp(t))return t.exec(e);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=we(e)){const n=G.findKey(this,e);return!(!n||void 0===this[n]||t&&!xe(0,this[n],n,t))}return!1}delete(e,t){const n=this;let r=!1;function o(e){if(e=we(e)){const o=G.findKey(n,e);!o||t&&!xe(0,n[o],o,t)||(delete n[o],r=!0)}}return G.isArray(e)?e.forEach(o):o(e),r}clear(e){const t=Object.keys(this);let n=t.length,r=!1;for(;n--;){const o=t[n];e&&!xe(0,this[o],o,e,!0)||(delete this[o],r=!0)}return r}normalize(e){const t=this,n={};return G.forEach(this,((r,o)=>{const i=G.findKey(n,o);if(i)return t[i]=ke(r),void delete t[o];const a=e?function(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((e,t,n)=>t.toUpperCase()+n))}(o):String(o).trim();a!==o&&delete t[o],t[a]=ke(r),n[a]=!0})),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return G.forEach(this,((n,r)=>{null!=n&&!1!==n&&(t[r]=e&&G.isArray(n)?n.join(", "):n)})),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([e,t])=>e+": "+t)).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const n=new this(e);return t.forEach((e=>n.set(e))),n}static accessor(e){const t=(this[be]=this[be]={accessors:{}}).accessors,n=this.prototype;function r(e){const r=we(e);t[r]||(function(e,t){const n=G.toCamelCase(" "+t);["get","set","has"].forEach((r=>{Object.defineProperty(e,r+n,{value:function(e,n,o){return this[r].call(this,t,e,n,o)},configurable:!0})}))}(n,e),t[r]=!0)}return G.isArray(e)?e.forEach(r):r(e),this}}Oe.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),G.reduceDescriptors(Oe.prototype,(({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[n]=e}}})),G.freezeMethods(Oe);var Se=Oe;function Ce(e,t){const n=this||ye,r=t||n,o=Se.from(r.headers);let i=r.data;return G.forEach(e,(function(e){i=e.call(n,i,o.normalize(),t?t.status:void 0)})),o.normalize(),i}function Ae(e){return!(!e||!e.__CANCEL__)}function Ee(e,t,n){V.call(this,null==e?"canceled":e,V.ERR_CANCELED,t,n),this.name="CanceledError"}function Te(e,t,n){const r=n.config.validateStatus;n.status&&r&&!r(n.status)?t(new V("Request failed with status code "+n.status,[V.ERR_BAD_REQUEST,V.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n)):e(n)}G.inherits(Ee,V,{__CANCEL__:!0});const Pe=(e,t,n=3)=>{let r=0;const o=function(e,t){e=e||10;const n=new Array(e),r=new Array(e);let o,i=0,a=0;return t=void 0!==t?t:1e3,function(s){const l=Date.now(),c=r[a];o||(o=l),n[i]=s,r[i]=l;let u=a,f=0;for(;u!==i;)f+=n[u++],u%=e;if(i=(i+1)%e,i===a&&(a=(a+1)%e),l-o{o=i,n=null,r&&(clearTimeout(r),r=null),e.apply(null,t)};return[(...e)=>{const t=Date.now(),s=t-o;s>=i?a(e,t):(n=e,r||(r=setTimeout((()=>{r=null,a(n)}),i-s)))},()=>n&&a(n)]}((n=>{const i=n.loaded,a=n.lengthComputable?n.total:void 0,s=i-r,l=o(s);r=i,e({loaded:i,total:a,progress:a?i/a:void 0,bytes:s,rate:l||void 0,estimated:l&&a&&i<=a?(a-i)/l:void 0,event:n,lengthComputable:null!=a,[t?"download":"upload"]:!0})}),n)},De=(e,t)=>{const n=null!=e;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},je=e=>(...t)=>G.asap((()=>e(...t)));var Me=me.hasStandardBrowserEnv?function(){const e=me.navigator&&/(msie|trident)/i.test(me.navigator.userAgent),t=document.createElement("a");let n;function r(n){let r=n;return e&&(t.setAttribute("href",r),r=t.href),t.setAttribute("href",r),{href:t.href,protocol:t.protocol?t.protocol.replace(/:$/,""):"",host:t.host,search:t.search?t.search.replace(/^\?/,""):"",hash:t.hash?t.hash.replace(/^#/,""):"",hostname:t.hostname,port:t.port,pathname:"/"===t.pathname.charAt(0)?t.pathname:"/"+t.pathname}}return n=r(window.location.href),function(e){const t=G.isString(e)?r(e):e;return t.protocol===n.protocol&&t.host===n.host}}():function(){return!0},Re=me.hasStandardBrowserEnv?{write(e,t,n,r,o,i){const a=[e+"="+encodeURIComponent(t)];G.isNumber(n)&&a.push("expires="+new Date(n).toGMTString()),G.isString(r)&&a.push("path="+r),G.isString(o)&&a.push("domain="+o),!0===i&&a.push("secure"),document.cookie=a.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function Le(e,t){return e&&!/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)?function(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}(e,t):t}const Ne=e=>e instanceof Se?{...e}:e;function Ie(e,t){t=t||{};const n={};function r(e,t,n){return G.isPlainObject(e)&&G.isPlainObject(t)?G.merge.call({caseless:n},e,t):G.isPlainObject(t)?G.merge({},t):G.isArray(t)?t.slice():t}function o(e,t,n){return G.isUndefined(t)?G.isUndefined(e)?void 0:r(void 0,e,n):r(e,t,n)}function i(e,t){if(!G.isUndefined(t))return r(void 0,t)}function a(e,t){return G.isUndefined(t)?G.isUndefined(e)?void 0:r(void 0,e):r(void 0,t)}function s(n,o,i){return i in t?r(n,o):i in e?r(void 0,n):void 0}const l={url:i,method:i,data:i,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,withXSRFToken:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:s,headers:(e,t)=>o(Ne(e),Ne(t),!0)};return G.forEach(Object.keys(Object.assign({},e,t)),(function(r){const i=l[r]||o,a=i(e[r],t[r],r);G.isUndefined(a)&&i!==s||(n[r]=a)})),n}var ze=e=>{const t=Ie({},e);let n,{data:r,withXSRFToken:o,xsrfHeaderName:i,xsrfCookieName:a,headers:s,auth:l}=t;if(t.headers=s=Se.from(s),t.url=ae(Le(t.baseURL,t.url),e.params,e.paramsSerializer),l&&s.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):""))),G.isFormData(r))if(me.hasStandardBrowserEnv||me.hasStandardBrowserWebWorkerEnv)s.setContentType(void 0);else if(!1!==(n=s.getContentType())){const[e,...t]=n?n.split(";").map((e=>e.trim())).filter(Boolean):[];s.setContentType([e||"multipart/form-data",...t].join("; "))}if(me.hasStandardBrowserEnv&&(o&&G.isFunction(o)&&(o=o(t)),o||!1!==o&&Me(t.url))){const e=i&&a&&Re.read(a);e&&s.set(i,e)}return t},Fe="undefined"!=typeof XMLHttpRequest&&function(e){return new Promise((function(t,n){const r=ze(e);let o=r.data;const i=Se.from(r.headers).normalize();let a,s,l,c,u,{responseType:f,onUploadProgress:h,onDownloadProgress:p}=r;function d(){c&&c(),u&&u(),r.cancelToken&&r.cancelToken.unsubscribe(a),r.signal&&r.signal.removeEventListener("abort",a)}let m=new XMLHttpRequest;function g(){if(!m)return;const r=Se.from("getAllResponseHeaders"in m&&m.getAllResponseHeaders());Te((function(e){t(e),d()}),(function(e){n(e),d()}),{data:f&&"text"!==f&&"json"!==f?m.response:m.responseText,status:m.status,statusText:m.statusText,headers:r,config:e,request:m}),m=null}m.open(r.method.toUpperCase(),r.url,!0),m.timeout=r.timeout,"onloadend"in m?m.onloadend=g:m.onreadystatechange=function(){m&&4===m.readyState&&(0!==m.status||m.responseURL&&0===m.responseURL.indexOf("file:"))&&setTimeout(g)},m.onabort=function(){m&&(n(new V("Request aborted",V.ECONNABORTED,e,m)),m=null)},m.onerror=function(){n(new V("Network Error",V.ERR_NETWORK,e,m)),m=null},m.ontimeout=function(){let t=r.timeout?"timeout of "+r.timeout+"ms exceeded":"timeout exceeded";const o=r.transitional||le;r.timeoutErrorMessage&&(t=r.timeoutErrorMessage),n(new V(t,o.clarifyTimeoutError?V.ETIMEDOUT:V.ECONNABORTED,e,m)),m=null},void 0===o&&i.setContentType(null),"setRequestHeader"in m&&G.forEach(i.toJSON(),(function(e,t){m.setRequestHeader(t,e)})),G.isUndefined(r.withCredentials)||(m.withCredentials=!!r.withCredentials),f&&"json"!==f&&(m.responseType=r.responseType),p&&([l,u]=Pe(p,!0),m.addEventListener("progress",l)),h&&m.upload&&([s,c]=Pe(h),m.upload.addEventListener("progress",s),m.upload.addEventListener("loadend",c)),(r.cancelToken||r.signal)&&(a=t=>{m&&(n(!t||t.type?new Ee(null,e,m):t),m.abort(),m=null)},r.cancelToken&&r.cancelToken.subscribe(a),r.signal&&(r.signal.aborted?a():r.signal.addEventListener("abort",a)));const v=function(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}(r.url);v&&-1===me.protocols.indexOf(v)?n(new V("Unsupported protocol "+v+":",V.ERR_BAD_REQUEST,e)):m.send(o||null)}))},Be=(e,t)=>{let n,r=new AbortController;const o=function(e){if(!n){n=!0,a();const t=e instanceof Error?e:this.reason;r.abort(t instanceof V?t:new Ee(t instanceof Error?t.message:t))}};let i=t&&setTimeout((()=>{o(new V(`timeout ${t} of ms exceeded`,V.ETIMEDOUT))}),t);const a=()=>{e&&(i&&clearTimeout(i),i=null,e.forEach((e=>{e&&(e.removeEventListener?e.removeEventListener("abort",o):e.unsubscribe(o))})),e=null)};e.forEach((e=>e&&e.addEventListener&&e.addEventListener("abort",o)));const{signal:s}=r;return s.unsubscribe=a,[s,()=>{i&&clearTimeout(i),i=null}]};const Ue=function*(e,t){let n=e.byteLength;if(!t||n{const i=async function*(e,t,n){for await(const r of e)yield*Ue(ArrayBuffer.isView(r)?r:await n(String(r)),t)}(e,t,o);let a,s=0,l=e=>{a||(a=!0,r&&r(e))};return new ReadableStream({async pull(e){try{const{done:t,value:r}=await i.next();if(t)return l(),void e.close();let o=r.byteLength;if(n){let e=s+=o;n(e)}e.enqueue(new Uint8Array(r))}catch(e){throw l(e),e}},cancel(e){return l(e),i.return()}},{highWaterMark:2})},qe="function"==typeof fetch&&"function"==typeof Request&&"function"==typeof Response,We=qe&&"function"==typeof ReadableStream,He=qe&&("function"==typeof TextEncoder?(Ze=new TextEncoder,e=>Ze.encode(e)):async e=>new Uint8Array(await new Response(e).arrayBuffer()));var Ze;const Ge=(e,...t)=>{try{return!!e(...t)}catch(e){return!1}},Ve=We&&Ge((()=>{let e=!1;const t=new Request(me.origin,{body:new ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type");return e&&!t})),Xe=We&&Ge((()=>G.isReadableStream(new Response("").body))),Je={stream:Xe&&(e=>e.body)};var Ye;qe&&(Ye=new Response,["text","arrayBuffer","blob","formData","stream"].forEach((e=>{!Je[e]&&(Je[e]=G.isFunction(Ye[e])?t=>t[e]():(t,n)=>{throw new V(`Response type '${e}' is not supported`,V.ERR_NOT_SUPPORT,n)})})));const Ke={http:null,xhr:Fe,fetch:qe&&(async e=>{let{url:t,method:n,data:r,signal:o,cancelToken:i,timeout:a,onDownloadProgress:s,onUploadProgress:l,responseType:c,headers:u,withCredentials:f="same-origin",fetchOptions:h}=ze(e);c=c?(c+"").toLowerCase():"text";let p,d,[m,g]=o||i||a?Be([o,i],a):[];const v=()=>{!p&&setTimeout((()=>{m&&m.unsubscribe()})),p=!0};let y;try{if(l&&Ve&&"get"!==n&&"head"!==n&&0!==(y=await(async(e,t)=>{const n=G.toFiniteNumber(e.getContentLength());return null==n?(async e=>null==e?0:G.isBlob(e)?e.size:G.isSpecCompliantForm(e)?(await new Request(e).arrayBuffer()).byteLength:G.isArrayBufferView(e)||G.isArrayBuffer(e)?e.byteLength:(G.isURLSearchParams(e)&&(e+=""),G.isString(e)?(await He(e)).byteLength:void 0))(t):n})(u,r))){let e,n=new Request(t,{method:"POST",body:r,duplex:"half"});if(G.isFormData(r)&&(e=n.headers.get("content-type"))&&u.setContentType(e),n.body){const[e,t]=De(y,Pe(je(l)));r=$e(n.body,65536,e,t,He)}}G.isString(f)||(f=f?"include":"omit");const o="credentials"in Request.prototype;d=new Request(t,{...h,signal:m,method:n.toUpperCase(),headers:u.normalize().toJSON(),body:r,duplex:"half",credentials:o?f:void 0});let i=await fetch(d);const a=Xe&&("stream"===c||"response"===c);if(Xe&&(s||a)){const e={};["status","statusText","headers"].forEach((t=>{e[t]=i[t]}));const t=G.toFiniteNumber(i.headers.get("content-length")),[n,r]=s&&De(t,Pe(je(s),!0))||[];i=new Response($e(i.body,65536,n,(()=>{r&&r(),a&&v()}),He),e)}c=c||"text";let p=await Je[G.findKey(Je,c)||"text"](i,e);return!a&&v(),g&&g(),await new Promise(((t,n)=>{Te(t,n,{data:p,headers:Se.from(i.headers),status:i.status,statusText:i.statusText,config:e,request:d})}))}catch(t){if(v(),t&&"TypeError"===t.name&&/fetch/i.test(t.message))throw Object.assign(new V("Network Error",V.ERR_NETWORK,e,d),{cause:t.cause||t});throw V.from(t,t&&t.code,e,d)}})};G.forEach(Ke,((e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch(e){}Object.defineProperty(e,"adapterName",{value:t})}}));const Qe=e=>`- ${e}`,et=e=>G.isFunction(e)||null===e||!1===e;var tt=e=>{e=G.isArray(e)?e:[e];const{length:t}=e;let n,r;const o={};for(let i=0;i`adapter ${e} `+(!1===t?"is not supported by the environment":"is not available in the build")));throw new V("There is no suitable adapter to dispatch the request "+(t?e.length>1?"since :\n"+e.map(Qe).join("\n"):" "+Qe(e[0]):"as no adapter specified"),"ERR_NOT_SUPPORT")}return r};function nt(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Ee(null,e)}function rt(e){return nt(e),e.headers=Se.from(e.headers),e.data=Ce.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1),tt(e.adapter||ye.adapter)(e).then((function(t){return nt(e),t.data=Ce.call(e,e.transformResponse,t),t.headers=Se.from(t.headers),t}),(function(t){return Ae(t)||(nt(e),t&&t.response&&(t.response.data=Ce.call(e,e.transformResponse,t.response),t.response.headers=Se.from(t.response.headers))),Promise.reject(t)}))}const ot={};["object","boolean","number","function","string","symbol"].forEach(((e,t)=>{ot[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}}));const it={};ot.transitional=function(e,t,n){function r(e,t){return"[Axios v1.7.5] Transitional option '"+e+"'"+t+(n?". "+n:"")}return(n,o,i)=>{if(!1===e)throw new V(r(o," has been removed"+(t?" in "+t:"")),V.ERR_DEPRECATED);return t&&!it[o]&&(it[o]=!0,console.warn(r(o," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(n,o,i)}};var at={assertOptions:function(e,t,n){if("object"!=typeof e)throw new V("options must be an object",V.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let o=r.length;for(;o-- >0;){const i=r[o],a=t[i];if(a){const t=e[i],n=void 0===t||a(t,i,e);if(!0!==n)throw new V("option "+i+" must be "+n,V.ERR_BAD_OPTION_VALUE)}else if(!0!==n)throw new V("Unknown option "+i,V.ERR_BAD_OPTION)}},validators:ot};const st=at.validators;class lt{constructor(e){this.defaults=e,this.interceptors={request:new se,response:new se}}async request(e,t){try{return await this._request(e,t)}catch(e){if(e instanceof Error){let t;Error.captureStackTrace?Error.captureStackTrace(t={}):t=new Error;const n=t.stack?t.stack.replace(/^.+\n/,""):"";try{e.stack?n&&!String(e.stack).endsWith(n.replace(/^.+\n.+\n/,""))&&(e.stack+="\n"+n):e.stack=n}catch(e){}}throw e}}_request(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{},t=Ie(this.defaults,t);const{transitional:n,paramsSerializer:r,headers:o}=t;void 0!==n&&at.assertOptions(n,{silentJSONParsing:st.transitional(st.boolean),forcedJSONParsing:st.transitional(st.boolean),clarifyTimeoutError:st.transitional(st.boolean)},!1),null!=r&&(G.isFunction(r)?t.paramsSerializer={serialize:r}:at.assertOptions(r,{encode:st.function,serialize:st.function},!0)),t.method=(t.method||this.defaults.method||"get").toLowerCase();let i=o&&G.merge(o.common,o[t.method]);o&&G.forEach(["delete","get","head","post","put","patch","common"],(e=>{delete o[e]})),t.headers=Se.concat(i,o);const a=[];let s=!0;this.interceptors.request.forEach((function(e){"function"==typeof e.runWhen&&!1===e.runWhen(t)||(s=s&&e.synchronous,a.unshift(e.fulfilled,e.rejected))}));const l=[];let c;this.interceptors.response.forEach((function(e){l.push(e.fulfilled,e.rejected)}));let u,f=0;if(!s){const e=[rt.bind(this),void 0];for(e.unshift.apply(e,a),e.push.apply(e,l),u=e.length,c=Promise.resolve(t);f{if(!n._listeners)return;let t=n._listeners.length;for(;t-- >0;)n._listeners[t](e);n._listeners=null})),this.promise.then=e=>{let t;const r=new Promise((e=>{n.subscribe(e),t=e})).then(e);return r.cancel=function(){n.unsubscribe(t)},r},e((function(e,r,o){n.reason||(n.reason=new Ee(e,r,o),t(n.reason))}))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}static source(){let e;return{token:new ut((function(t){e=t})),cancel:e}}}var ft=ut;const ht={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(ht).forEach((([e,t])=>{ht[t]=e}));var pt=ht;const dt=function e(t){const n=new ct(t),o=r(ct.prototype.request,n);return G.extend(o,ct.prototype,n,{allOwnKeys:!0}),G.extend(o,n,null,{allOwnKeys:!0}),o.create=function(n){return e(Ie(t,n))},o}(ye);dt.Axios=ct,dt.CanceledError=Ee,dt.CancelToken=ft,dt.isCancel=Ae,dt.VERSION="1.7.5",dt.toFormData=te,dt.AxiosError=V,dt.Cancel=dt.CanceledError,dt.all=function(e){return Promise.all(e)},dt.spread=function(e){return function(t){return e.apply(null,t)}},dt.isAxiosError=function(e){return G.isObject(e)&&!0===e.isAxiosError},dt.mergeConfig=Ie,dt.AxiosHeaders=Se,dt.formToJSON=e=>ge(G.isHTMLForm(e)?new FormData(e):e),dt.getAdapter=tt,dt.HttpStatusCode=pt,dt.default=dt,e.exports=dt},5478:function(e,t,n){"use strict";function r(e){return null==e?[]:Array.isArray(e)?e:Array.from(e)}n.d(t,{A:function(){return r}})},3663:function(e,t,n){"use strict";n.d(t,{A:function(){return s}});var r=n(7268),o=n(7947);function i(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===o.g&&t.documentElement.namespaceURI===o.g?t.createElement(e):t.createElementNS(n,e)}}function a(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function s(e){var t=(0,r.A)(e);return(t.local?a:i)(t)}},9062:function(e,t,n){"use strict";n.r(t),n.d(t,{create:function(){return i},creator:function(){return r.A},local:function(){return s},matcher:function(){return c.A},namespace:function(){return u.A},namespaces:function(){return f.A},pointer:function(){return h.A},pointers:function(){return d},select:function(){return o.A},selectAll:function(){return v},selection:function(){return g.Ay},selector:function(){return y.A},selectorAll:function(){return _.A},style:function(){return b.j},window:function(){return w.A}});var r=n(3663),o=n(183);function i(e){return(0,o.A)((0,r.A)(e).call(document.documentElement))}var a=0;function s(){return new l}function l(){this._="@"+(++a).toString(36)}l.prototype=s.prototype={constructor:l,get:function(e){for(var t=this._;!(t in e);)if(!(e=e.parentNode))return;return e[t]},set:function(e,t){return e[this._]=t},remove:function(e){return this._ in e&&delete e[this._]},toString:function(){return this._}};var c=n(6541),u=n(7268),f=n(7947),h=n(5970),p=n(2324);function d(e,t){return e.target&&(e=(0,p.A)(e),void 0===t&&(t=e.currentTarget),e=e.touches||[e]),Array.from(e,(e=>(0,h.A)(e,t)))}var m=n(5478),g=n(6452);function v(e){return"string"==typeof e?new g.LN([document.querySelectorAll(e)],[document.documentElement]):new g.LN([(0,m.A)(e)],g.zr)}var y=n(574),_=n(747),b=n(3683),w=n(6747)},6541:function(e,t,n){"use strict";function r(e){return function(){return this.matches(e)}}function o(e){return function(t){return t.matches(e)}}n.d(t,{A:function(){return r},j:function(){return o}})},7268:function(e,t,n){"use strict";n.d(t,{A:function(){return o}});var r=n(7947);function o(e){var t=e+="",n=t.indexOf(":");return n>=0&&"xmlns"!==(t=e.slice(0,n))&&(e=e.slice(n+1)),r.A.hasOwnProperty(t)?{space:r.A[t],local:e}:e}},7947:function(e,t,n){"use strict";n.d(t,{g:function(){return r}});var r="http://www.w3.org/1999/xhtml";t.A={svg:"http://www.w3.org/2000/svg",xhtml:r,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"}},5970:function(e,t,n){"use strict";n.d(t,{A:function(){return o}});var r=n(2324);function o(e,t){if(e=(0,r.A)(e),void 0===t&&(t=e.currentTarget),t){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var o=n.createSVGPoint();return o.x=e.clientX,o.y=e.clientY,[(o=o.matrixTransform(t.getScreenCTM().inverse())).x,o.y]}if(t.getBoundingClientRect){var i=t.getBoundingClientRect();return[e.clientX-i.left-t.clientLeft,e.clientY-i.top-t.clientTop]}}return[e.pageX,e.pageY]}},183:function(e,t,n){"use strict";n.d(t,{A:function(){return o}});var r=n(6452);function o(e){return"string"==typeof e?new r.LN([[document.querySelector(e)]],[document.documentElement]):new r.LN([[e]],r.zr)}},6452:function(e,t,n){"use strict";n.d(t,{LN:function(){return re},Ay:function(){return ie},zr:function(){return ne}});var r=n(574),o=n(5478),i=n(747),a=n(6541),s=Array.prototype.find;function l(){return this.firstElementChild}var c=Array.prototype.filter;function u(){return Array.from(this.children)}function f(e){return new Array(e.length)}function h(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}function p(e,t,n,r,o,i){for(var a,s=0,l=t.length,c=i.length;st?1:e>=t?0:NaN}h.prototype={constructor:h,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,t){return this._parent.insertBefore(e,t)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};var y=n(7268);function _(e){return function(){this.removeAttribute(e)}}function b(e){return function(){this.removeAttributeNS(e.space,e.local)}}function w(e,t){return function(){this.setAttribute(e,t)}}function k(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function x(e,t){return function(){var n=t.apply(this,arguments);null==n?this.removeAttribute(e):this.setAttribute(e,n)}}function O(e,t){return function(){var n=t.apply(this,arguments);null==n?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}}var S=n(3683);function C(e){return function(){delete this[e]}}function A(e,t){return function(){this[e]=t}}function E(e,t){return function(){var n=t.apply(this,arguments);null==n?delete this[e]:this[e]=n}}function T(e){return e.trim().split(/^|\s+/)}function P(e){return e.classList||new D(e)}function D(e){this._node=e,this._names=T(e.getAttribute("class")||"")}function j(e,t){for(var n=P(e),r=-1,o=t.length;++r=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};var H=n(3663);function Z(){return null}function G(){var e=this.parentNode;e&&e.removeChild(this)}function V(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function X(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function J(e){return function(){var t=this.__on;if(t){for(var n,r=0,o=-1,i=t.length;r=S&&(S=O+1);!(x=w[S])&&++S<_;);k._next=x||null}}return(s=new re(s,o))._enter=l,s._exit=c,s},enter:function(){return new re(this._enter||this._groups.map(f),this._parents)},exit:function(){return new re(this._exit||this._groups.map(f),this._parents)},join:function(e,t,n){var r=this.enter(),o=this,i=this.exit();return"function"==typeof e?(r=e(r))&&(r=r.selection()):r=r.append(e+""),null!=t&&(o=t(o))&&(o=o.selection()),null==n?i.remove():n(i),r&&o?r.merge(o).order():o},merge:function(e){for(var t=e.selection?e.selection():e,n=this._groups,r=t._groups,o=n.length,i=r.length,a=Math.min(o,i),s=new Array(o),l=0;l=0;)(r=o[i])&&(a&&4^r.compareDocumentPosition(a)&&a.parentNode.insertBefore(r,a),a=r);return this},sort:function(e){function t(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}e||(e=v);for(var n=this._groups,r=n.length,o=new Array(r),i=0;i1?this.each((null==t?C:"function"==typeof t?E:A)(e,t)):this.node()[e]},classed:function(e,t){var n=T(e+"");if(arguments.length<2){for(var r=P(this.node()),o=-1,i=n.length;++o=0&&(t=e.slice(n+1),e=e.slice(0,n)),{type:e,name:t}}))}(e+""),a=i.length;if(!(arguments.length<2)){for(s=t?Y:J,r=0;r1?this.each((null==t?o:"function"==typeof t?a:i)(e,t,null==n?"":n)):l(this.node(),e)}function l(e,t){return e.style.getPropertyValue(t)||(0,r.A)(e).getComputedStyle(e,null).getPropertyValue(t)}},574:function(e,t,n){"use strict";function r(){}function o(e){return null==e?r:function(){return this.querySelector(e)}}n.d(t,{A:function(){return o}})},747:function(e,t,n){"use strict";function r(){return[]}function o(e){return null==e?r:function(){return this.querySelectorAll(e)}}n.d(t,{A:function(){return o}})},2324:function(e,t,n){"use strict";function r(e){let t;for(;t=e.sourceEvent;)e=t;return e}n.d(t,{A:function(){return r}})},6747:function(e,t,n){"use strict";function r(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}n.d(t,{A:function(){return r}})},7662:function(e,t,n){"use strict";n.r(t),n.d(t,{active:function(){return ut},interrupt:function(){return N},transition:function(){return ot}});var r,o,i=n(6452),a=n(2996),s=0,l=0,c=0,u=1e3,f=0,h=0,p=0,d="object"==typeof performance&&performance.now?performance:Date,m="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function g(){return h||(m(v),h=d.now()+p)}function v(){h=0}function y(){this._call=this._time=this._next=null}function _(e,t,n){var r=new y;return r.restart(e,t,n),r}function b(){h=(f=d.now())+p,s=l=0;try{!function(){g(),++s;for(var e,t=r;t;)(e=h-t._time)>=0&&t._call.call(null,e),t=t._next;--s}()}finally{s=0,function(){for(var e,t,n=r,i=1/0;n;)n._call?(i>n._time&&(i=n._time),e=n,n=n._next):(t=n._next,n._next=null,n=e?e._next=t:r=t);o=e,k(i)}(),h=0}}function w(){var e=d.now(),t=e-f;t>u&&(p-=t,f=e)}function k(e){s||(l&&(l=clearTimeout(l)),e-h>24?(e<1/0&&(l=setTimeout(b,e-d.now()-p)),c&&(c=clearInterval(c))):(c||(f=d.now(),c=setInterval(w,u)),s=1,m(b)))}function x(e,t,n){var r=new y;return t=null==t?0:+t,r.restart((n=>{r.stop(),e(n+t)}),t,n),r}y.prototype=_.prototype={constructor:y,restart:function(e,t,n){if("function"!=typeof e)throw new TypeError("callback is not a function");n=(null==n?g():+n)+(null==t?0:+t),this._next||o===this||(o?o._next=this:r=this,o=this),this._call=e,this._time=n,k()},stop:function(){this._call&&(this._call=null,this._time=1/0,k())}};var O=(0,a.A)("start","end","cancel","interrupt"),S=[],C=0,A=1,E=2,T=3,P=5,D=6;function j(e,t,n,r,o,i){var a=e.__transition;if(a){if(n in a)return}else e.__transition={};!function(e,t,n){var r,o=e.__transition;function i(l){var c,u,f,h;if(n.state!==A)return s();for(c in o)if((h=o[c]).name===n.name){if(h.state===T)return x(i);4===h.state?(h.state=D,h.timer.stop(),h.on.call("interrupt",e,e.__data__,h.index,h.group),delete o[c]):+cC)throw new Error("too late; already scheduled");return n}function R(e,t){var n=L(e,t);if(n.state>T)throw new Error("too late; already running");return n}function L(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function N(e,t){var n,r,o,i=e.__transition,a=!0;if(i){for(o in t=null==t?null:t+"",i)(n=i[o]).name===t?(r=n.state>E&&n.state180?t+=360:t-e>180&&(e+=360),i.push({i:n.push(o(n)+"rotate(",null,r)-2,x:I(e,t)})):t&&n.push(o(n)+"rotate("+t+r)}(i.rotate,a.rotate,s,l),function(e,t,n,i){e!==t?i.push({i:n.push(o(n)+"skewX(",null,r)-2,x:I(e,t)}):t&&n.push(o(n)+"skewX("+t+r)}(i.skewX,a.skewX,s,l),function(e,t,n,r,i,a){if(e!==n||t!==r){var s=i.push(o(i)+"scale(",null,",",null,")");a.push({i:s-4,x:I(e,n)},{i:s-2,x:I(t,r)})}else 1===n&&1===r||i.push(o(i)+"scale("+n+","+r+")")}(i.scaleX,i.scaleY,a.scaleX,a.scaleY,s,l),i=a=null,function(e){for(var t,n=-1,r=l.length;++n>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===n?me(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===n?me(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=oe.exec(e))?new ve(t[1],t[2],t[3],1):(t=ie.exec(e))?new ve(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=ae.exec(e))?me(t[1],t[2],t[3],t[4]):(t=se.exec(e))?me(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=le.exec(e))?xe(t[1],t[2]/100,t[3]/100,1):(t=ce.exec(e))?xe(t[1],t[2]/100,t[3]/100,t[4]):ue.hasOwnProperty(e)?de(ue[e]):"transparent"===e?new ve(NaN,NaN,NaN,0):null}function de(e){return new ve(e>>16&255,e>>8&255,255&e,1)}function me(e,t,n,r){return r<=0&&(e=t=n=NaN),new ve(e,t,n,r)}function ge(e,t,n,r){return 1===arguments.length?((o=e)instanceof Y||(o=pe(o)),o?new ve((o=o.rgb()).r,o.g,o.b,o.opacity):new ve):new ve(e,t,n,null==r?1:r);var o}function ve(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}function ye(){return`#${ke(this.r)}${ke(this.g)}${ke(this.b)}`}function _e(){const e=be(this.opacity);return`${1===e?"rgb(":"rgba("}${we(this.r)}, ${we(this.g)}, ${we(this.b)}${1===e?")":`, ${e})`}`}function be(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function we(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function ke(e){return((e=we(e))<16?"0":"")+e.toString(16)}function xe(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new Se(e,t,n,r)}function Oe(e){if(e instanceof Se)return new Se(e.h,e.s,e.l,e.opacity);if(e instanceof Y||(e=pe(e)),!e)return new Se;if(e instanceof Se)return e;var t=(e=e.rgb()).r/255,n=e.g/255,r=e.b/255,o=Math.min(t,n,r),i=Math.max(t,n,r),a=NaN,s=i-o,l=(i+o)/2;return s?(a=t===i?(n-r)/s+6*(n0&&l<1?0:a,new Se(a,s,l,e.opacity)}function Se(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}function Ce(e){return(e=(e||0)%360)<0?e+360:e}function Ae(e){return Math.max(0,Math.min(1,e||0))}function Ee(e,t,n){return 255*(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)}function Te(e,t,n,r,o){var i=e*e,a=i*e;return((1-3*e+3*i-a)*t+(4-6*i+3*a)*n+(1+3*e+3*i-3*a)*r+a*o)/6}X(Y,pe,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:fe,formatHex:fe,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return Oe(this).formatHsl()},formatRgb:he,toString:he}),X(ve,ge,J(Y,{brighter(e){return e=null==e?Q:Math.pow(Q,e),new ve(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=null==e?K:Math.pow(K,e),new ve(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new ve(we(this.r),we(this.g),we(this.b),be(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:ye,formatHex:ye,formatHex8:function(){return`#${ke(this.r)}${ke(this.g)}${ke(this.b)}${ke(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:_e,toString:_e})),X(Se,(function(e,t,n,r){return 1===arguments.length?Oe(e):new Se(e,t,n,null==r?1:r)}),J(Y,{brighter(e){return e=null==e?Q:Math.pow(Q,e),new Se(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=null==e?K:Math.pow(K,e),new Se(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+360*(this.h<0),t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,o=2*n-r;return new ve(Ee(e>=240?e-240:e+120,o,r),Ee(e,o,r),Ee(e<120?e+240:e-120,o,r),this.opacity)},clamp(){return new Se(Ce(this.h),Ae(this.s),Ae(this.l),be(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=be(this.opacity);return`${1===e?"hsl(":"hsla("}${Ce(this.h)}, ${100*Ae(this.s)}%, ${100*Ae(this.l)}%${1===e?")":`, ${e})`}`}}));var Pe=e=>()=>e;function De(e,t){var n=t-e;return n?function(e,t){return function(n){return e+n*t}}(e,n):Pe(isNaN(e)?t:e)}var je=function e(t){var n=function(e){return 1==(e=+e)?De:function(t,n){return n-t?function(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}(t,n,e):Pe(isNaN(t)?n:t)}}(t);function r(e,t){var r=n((e=ge(e)).r,(t=ge(t)).r),o=n(e.g,t.g),i=n(e.b,t.b),a=De(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=o(t),e.b=i(t),e.opacity=a(t),e+""}}return r.gamma=e,r}(1);function Me(e){return function(t){var n,r,o=t.length,i=new Array(o),a=new Array(o),s=new Array(o);for(n=0;n=1?(n=1,t-1):Math.floor(n*t),o=e[r],i=e[r+1],a=r>0?e[r-1]:2*o-i,s=ri&&(o=t.slice(i,o),s[a]?s[a]+=o:s[++a]=o),(n=n[0])===(r=r[0])?s[a]?s[a]+=r:s[++a]=r:(s[++a]=null,l.push({i:a,x:I(n,r)})),i=Le.lastIndex;return i=0&&(e=e.slice(0,t)),!e||"start"===e}))}(t)?M:R;return function(){var a=i(this,e),s=a.on;s!==r&&(o=(r=s).copy()).on(t,n),a.on=o}}(n,e,t))},attr:function(e,t){var n=(0,H.A)(e),r="transform"===n?W:Ie;return this.attrTween(e,"function"==typeof t?(n.local?qe:$e)(n,r,V(this,"attr."+e,t)):null==t?(n.local?Fe:ze)(n):(n.local?Ue:Be)(n,r,t))},attrTween:function(e,t){var n="attr."+e;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(null==t)return this.tween(n,null);if("function"!=typeof t)throw new Error;var r=(0,H.A)(e);return this.tween(n,(r.local?We:He)(r,t))},style:function(e,t,n){var r="transform"==(e+="")?q:Ie;return null==t?this.styleTween(e,function(e,t){var n,r,o;return function(){var i=(0,et.j)(this,e),a=(this.style.removeProperty(e),(0,et.j)(this,e));return i===a?null:i===n&&a===r?o:o=t(n=i,r=a)}}(e,r)).on("end.style."+e,tt(e)):"function"==typeof t?this.styleTween(e,function(e,t,n){var r,o,i;return function(){var a=(0,et.j)(this,e),s=n(this),l=s+"";return null==s&&(this.style.removeProperty(e),l=s=(0,et.j)(this,e)),a===l?null:a===r&&l===o?i:(o=l,i=t(r=a,s))}}(e,r,V(this,"style."+e,t))).each(function(e,t){var n,r,o,i,a="style."+t,s="end."+a;return function(){var l=R(this,e),c=l.on,u=null==l.value[a]?i||(i=tt(t)):void 0;c===n&&o===u||(r=(n=c).copy()).on(s,o=u),l.on=r}}(this._id,e)):this.styleTween(e,function(e,t,n){var r,o,i=n+"";return function(){var a=(0,et.j)(this,e);return a===i?null:a===r?o:o=t(r=a,n)}}(e,r,t),n).on("end.style."+e,null)},styleTween:function(e,t,n){var r="style."+(e+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==t)return this.tween(r,null);if("function"!=typeof t)throw new Error;return this.tween(r,function(e,t,n){var r,o;function i(){var i=t.apply(this,arguments);return i!==o&&(r=(o=i)&&function(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}(e,i,n)),r}return i._value=t,i}(e,t,null==n?"":n))},text:function(e){return this.tween("text","function"==typeof e?function(e){return function(){var t=e(this);this.textContent=null==t?"":t}}(V(this,"text",e)):function(e){return function(){this.textContent=e}}(null==e?"":e+""))},textTween:function(e){var t="text";if(arguments.length<1)return(t=this.tween(t))&&t._value;if(null==e)return this.tween(t,null);if("function"!=typeof e)throw new Error;return this.tween(t,function(e){var t,n;function r(){var r=e.apply(this,arguments);return r!==n&&(t=(n=r)&&function(e){return function(t){this.textContent=e.call(this,t)}}(r)),t}return r._value=e,r}(e))},remove:function(){return this.on("end.remove",function(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}(this._id))},tween:function(e,t){var n=this._id;if(e+="",arguments.length<2){for(var r,o=L(this.node(),n).tween,i=0,a=o.length;iA&&n.name===t)return new rt([[e]],ct,t,+r);return null}},9529:function(e,t,n){"use strict";n.r(t),n.d(t,{ZoomTransform:function(){return be},zoom:function(){return De},zoomIdentity:function(){return we},zoomTransform:function(){return ke}});var r=n(2996);function o(){}function i(e){return null==e?o:function(){return this.querySelector(e)}}function a(e){return"object"==typeof e&&"length"in e?e:Array.from(e)}function s(){return[]}function l(e){return function(t){return t.matches(e)}}var c=Array.prototype.find;function u(){return this.firstElementChild}var f=Array.prototype.filter;function h(){return this.children}function p(e){return new Array(e.length)}function d(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}function m(e,t,n,r,o,i){for(var a,s=0,l=t.length,c=i.length;st?1:e>=t?0:NaN}d.prototype={constructor:d,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,t){return this._parent.insertBefore(e,t)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};var _="http://www.w3.org/1999/xhtml",b={svg:"http://www.w3.org/2000/svg",xhtml:_,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function w(e){var t=e+="",n=t.indexOf(":");return n>=0&&"xmlns"!==(t=e.slice(0,n))&&(e=e.slice(n+1)),b.hasOwnProperty(t)?{space:b[t],local:e}:e}function k(e){return function(){this.removeAttribute(e)}}function x(e){return function(){this.removeAttributeNS(e.space,e.local)}}function O(e,t){return function(){this.setAttribute(e,t)}}function S(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function C(e,t){return function(){var n=t.apply(this,arguments);null==n?this.removeAttribute(e):this.setAttribute(e,n)}}function A(e,t){return function(){var n=t.apply(this,arguments);null==n?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}}function E(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function T(e){return function(){this.style.removeProperty(e)}}function P(e,t,n){return function(){this.style.setProperty(e,t,n)}}function D(e,t,n){return function(){var r=t.apply(this,arguments);null==r?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function j(e){return function(){delete this[e]}}function M(e,t){return function(){this[e]=t}}function R(e,t){return function(){var n=t.apply(this,arguments);null==n?delete this[e]:this[e]=n}}function L(e){return e.trim().split(/^|\s+/)}function N(e){return e.classList||new I(e)}function I(e){this._node=e,this._names=L(e.getAttribute("class")||"")}function z(e,t){for(var n=N(e),r=-1,o=t.length;++r=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};var ce=[null];function ue(e,t){this._groups=e,this._parents=t}function fe(e){return"string"==typeof e?new ue([[document.querySelector(e)]],[document.documentElement]):new ue([[e]],ce)}function he(e){e.preventDefault(),e.stopImmediatePropagation()}function pe(e){return((e=Math.exp(e))+1/e)/2}ue.prototype=function(){return new ue([[document.documentElement]],ce)}.prototype={constructor:ue,select:function(e){"function"!=typeof e&&(e=i(e));for(var t=this._groups,n=t.length,r=new Array(n),o=0;o=S&&(S=O+1);!(x=w[S])&&++S<_;);k._next=x||null}}return(l=new ue(l,o))._enter=c,l._exit=u,l},enter:function(){return new ue(this._enter||this._groups.map(p),this._parents)},exit:function(){return new ue(this._exit||this._groups.map(p),this._parents)},join:function(e,t,n){var r=this.enter(),o=this,i=this.exit();return r="function"==typeof e?e(r):r.append(e+""),null!=t&&(o=t(o)),null==n?i.remove():n(i),r&&o?r.merge(o).order():o},merge:function(e){if(!(e instanceof ue))throw new Error("invalid merge");for(var t=this._groups,n=e._groups,r=t.length,o=n.length,i=Math.min(r,o),a=new Array(r),s=0;s=0;)(r=o[i])&&(a&&4^r.compareDocumentPosition(a)&&a.parentNode.insertBefore(r,a),a=r);return this},sort:function(e){function t(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}e||(e=y);for(var n=this._groups,r=n.length,o=new Array(r),i=0;i1?this.each((null==t?T:"function"==typeof t?D:P)(e,t,null==n?"":n)):function(e,t){return e.style.getPropertyValue(t)||E(e).getComputedStyle(e,null).getPropertyValue(t)}(this.node(),e)},property:function(e,t){return arguments.length>1?this.each((null==t?j:"function"==typeof t?R:M)(e,t)):this.node()[e]},classed:function(e,t){var n=L(e+"");if(arguments.length<2){for(var r=N(this.node()),o=-1,i=n.length;++o=0&&(t=e.slice(n+1),e=e.slice(0,n)),{type:e,name:t}}))}(e+""),a=i.length;if(!(arguments.length<2)){for(s=t?ie:oe,r=0;r()=>e;function _e(e,{sourceEvent:t,target:n,transform:r,dispatch:o}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:o}})}function be(e,t,n){this.k=e,this.x=t,this.y=n}be.prototype={constructor:be,scale:function(e){return 1===e?this:new be(this.k*e,this.x,this.y)},translate:function(e,t){return 0===e&0===t?this:new be(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var we=new be(1,0,0);function ke(e){for(;!e.__zoom;)if(!(e=e.parentNode))return we;return e.__zoom}function xe(e){e.stopImmediatePropagation()}function Oe(e){e.preventDefault(),e.stopImmediatePropagation()}function Se(e){return!(e.ctrlKey&&"wheel"!==e.type||e.button)}function Ce(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e).hasAttribute("viewBox")?[[(e=e.viewBox.baseVal).x,e.y],[e.x+e.width,e.y+e.height]]:[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]:[[0,0],[e.clientWidth,e.clientHeight]]}function Ae(){return this.__zoom||we}function Ee(e){return-e.deltaY*(1===e.deltaMode?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function Te(){return navigator.maxTouchPoints||"ontouchstart"in this}function Pe(e,t,n){var r=e.invertX(t[0][0])-n[0][0],o=e.invertX(t[1][0])-n[1][0],i=e.invertY(t[0][1])-n[0][1],a=e.invertY(t[1][1])-n[1][1];return e.translate(o>r?(r+o)/2:Math.min(0,r)||Math.max(0,o),a>i?(i+a)/2:Math.min(0,i)||Math.max(0,a))}function De(){var e,t,n,o=Se,i=Ce,a=Pe,s=Ee,l=Te,c=[0,1/0],u=[[-1/0,-1/0],[1/0,1/0]],f=250,h=de,p=(0,r.A)("start","zoom","end"),d=500,m=150,g=0,v=10;function y(e){e.property("__zoom",Ae).on("wheel.zoom",S,{passive:!1}).on("mousedown.zoom",C).on("dblclick.zoom",A).filter(l).on("touchstart.zoom",E).on("touchmove.zoom",T).on("touchend.zoom touchcancel.zoom",P).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function _(e,t){return(t=Math.max(c[0],Math.min(c[1],t)))===e.k?e:new be(t,e.x,e.y)}function b(e,t,n){var r=t[0]-n[0]*e.k,o=t[1]-n[1]*e.k;return r===e.x&&o===e.y?e:new be(e.k,r,o)}function w(e){return[(+e[0][0]+ +e[1][0])/2,(+e[0][1]+ +e[1][1])/2]}function k(e,t,n,r){e.on("start.zoom",(function(){x(this,arguments).event(r).start()})).on("interrupt.zoom end.zoom",(function(){x(this,arguments).event(r).end()})).tween("zoom",(function(){var e=this,o=arguments,a=x(e,o).event(r),s=i.apply(e,o),l=null==n?w(s):"function"==typeof n?n.apply(e,o):n,c=Math.max(s[1][0]-s[0][0],s[1][1]-s[0][1]),u=e.__zoom,f="function"==typeof t?t.apply(e,o):t,p=h(u.invert(l).concat(c/u.k),f.invert(l).concat(c/f.k));return function(e){if(1===e)e=f;else{var t=p(e),n=c/t[2];e=new be(n,l[0]-t[0]*n,l[1]-t[1]*n)}a.zoom(null,e)}}))}function x(e,t,n){return!n&&e.__zooming||new O(e,t)}function O(e,t){this.that=e,this.args=t,this.active=0,this.sourceEvent=null,this.extent=i.apply(e,t),this.taps=0}function S(e,...t){if(o.apply(this,arguments)){var n=x(this,t).event(e),r=this.__zoom,i=Math.max(c[0],Math.min(c[1],r.k*Math.pow(2,s.apply(this,arguments)))),l=(0,ge.A)(e);if(n.wheel)n.mouse[0][0]===l[0]&&n.mouse[0][1]===l[1]||(n.mouse[1]=r.invert(n.mouse[0]=l)),clearTimeout(n.wheel);else{if(r.k===i)return;n.mouse=[l,r.invert(l)],(0,ve.interrupt)(this),n.start()}Oe(e),n.wheel=setTimeout((function(){n.wheel=null,n.end()}),m),n.zoom("mouse",a(b(_(r,i),n.mouse[0],n.mouse[1]),n.extent,u))}}function C(e,...t){if(!n&&o.apply(this,arguments)){var r=e.currentTarget,i=x(this,t,!0).event(e),s=(0,me.A)(e.view).on("mousemove.zoom",(function(e){if(Oe(e),!i.moved){var t=e.clientX-c,n=e.clientY-f;i.moved=t*t+n*n>g}i.event(e).zoom("mouse",a(b(i.that.__zoom,i.mouse[0]=(0,ge.A)(e,r),i.mouse[1]),i.extent,u))}),!0).on("mouseup.zoom",(function(e){s.on("mousemove.zoom mouseup.zoom",null),function(e,t){var n=e.document.documentElement,r=fe(e).on("dragstart.drag",null);t&&(r.on("click.drag",he,!0),setTimeout((function(){r.on("click.drag",null)}),0)),"onselectstart"in n?r.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}(e.view,i.moved),Oe(e),i.event(e).end()}),!0),l=(0,ge.A)(e,r),c=e.clientX,f=e.clientY;!function(e){var t=e.document.documentElement,n=fe(e).on("dragstart.drag",he,!0);"onselectstart"in t?n.on("selectstart.drag",he,!0):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}(e.view),xe(e),i.mouse=[l,this.__zoom.invert(l)],(0,ve.interrupt)(this),i.start()}}function A(e,...t){if(o.apply(this,arguments)){var n=this.__zoom,r=(0,ge.A)(e.changedTouches?e.changedTouches[0]:e,this),s=n.invert(r),l=n.k*(e.shiftKey?.5:2),c=a(b(_(n,l),r,s),i.apply(this,t),u);Oe(e),f>0?(0,me.A)(this).transition().duration(f).call(k,c,r,e):(0,me.A)(this).call(y.transform,c,r,e)}}function E(n,...r){if(o.apply(this,arguments)){var i,a,s,l,c=n.touches,u=c.length,f=x(this,r,n.changedTouches.length===u).event(n);for(xe(n),a=0;a; +export default AnnotationLayer; diff --git a/gcs-files/1.22.7/src/AnnotationPoint.d.ts b/gcs-files/1.22.7/src/AnnotationPoint.d.ts new file mode 100644 index 00000000..bc87e5c0 --- /dev/null +++ b/gcs-files/1.22.7/src/AnnotationPoint.d.ts @@ -0,0 +1,7 @@ +/** @jsx h */ +import { CustomAnnotationPoint } from "./web-sdk"; +interface AnnotationPointProps extends CustomAnnotationPoint { + mapZoomFactor: number; +} +declare const AnnotationPoint: FunctionComponent; +export default AnnotationPoint; diff --git a/gcs-files/1.22.7/src/AssetListOverlay.d.ts b/gcs-files/1.22.7/src/AssetListOverlay.d.ts new file mode 100644 index 00000000..afe0b2f9 --- /dev/null +++ b/gcs-files/1.22.7/src/AssetListOverlay.d.ts @@ -0,0 +1,36 @@ +/** @jsx h */ +import { Component, h } from "preact"; +import { LanguageCodes } from "./Translations"; +import { CreateMapOptions, FloorData, PlacemarkData, TagData } from "./web-sdk"; +type SearchType = "tags" | "placemarks"; +interface AssetListOverlayProps { + onTagClick: (tag: TagData) => void; + onPlacemarkClick: (placemark: PlacemarkData) => void; + tagsLoading: boolean; + placemarksLoading: boolean; + tags: TagData[]; + placemarks: PlacemarkData[]; + showControlTags: boolean; + floors: FloorData[]; + tagOptions: CreateMapOptions["tags"]; + placemarkOptions: CreateMapOptions["placemarks"]; + updateMap: (options: Partial) => void; + currentFloorID: string; + toggleAssetListOverlay: (options: { + open: boolean; + }) => void; + showTags: boolean; + showPlacemarks: boolean; + language?: LanguageCodes; +} +declare class AssetListOverlay extends Component { + state: { + searchFilter: string; + searchType: SearchType; + }; + searchInputRef: import("preact").RefObject; + setRadioFilter: (filter: SearchType) => void; + componentDidMount(): void; + render(): h.JSX.Element; +} +export default AssetListOverlay; diff --git a/gcs-files/1.22.7/src/DetailsOverlay.d.ts b/gcs-files/1.22.7/src/DetailsOverlay.d.ts new file mode 100644 index 00000000..02de0e95 --- /dev/null +++ b/gcs-files/1.22.7/src/DetailsOverlay.d.ts @@ -0,0 +1,10 @@ +/** @jsx h */ +import MapComponent from "./MapComponent"; +import { PlacemarkData, TagData } from "./web-sdk"; +interface DetailsOverlayProps { + kind: "tag" | "placemark"; + item: TagData | PlacemarkData; + toggleDetailsOverlay: MapComponent["toggleDetailsOverlay"]; +} +declare const DetailsOverlay: FunctionComponent; +export default DetailsOverlay; diff --git a/gcs-files/1.22.7/src/ErrorOverlay.d.ts b/gcs-files/1.22.7/src/ErrorOverlay.d.ts new file mode 100644 index 00000000..c65d74b2 --- /dev/null +++ b/gcs-files/1.22.7/src/ErrorOverlay.d.ts @@ -0,0 +1,8 @@ +/** @jsx h */ +import MapComponent from "./MapComponent"; +interface ErrorOverlayProps { + toggleErrorOverlay: MapComponent["toggleErrorOverlay"]; + messages: string[]; +} +declare const ErrorOverlay: FunctionComponent; +export default ErrorOverlay; diff --git a/gcs-files/1.22.7/src/FloorAndSearchControls.d.ts b/gcs-files/1.22.7/src/FloorAndSearchControls.d.ts new file mode 100644 index 00000000..ec99c419 --- /dev/null +++ b/gcs-files/1.22.7/src/FloorAndSearchControls.d.ts @@ -0,0 +1,10 @@ +/** @jsx h */ +import MapComponent from "./MapComponent"; +interface FloorAndTagControlsProps { + showFloors: boolean; + showSearch: boolean; + toggleFloorOverlay: MapComponent["toggleFloorOverlay"]; + toggleAssetListOverlay: MapComponent["toggleAssetListOverlay"]; +} +declare const FloorAndTagControls: FunctionComponent; +export default FloorAndTagControls; diff --git a/gcs-files/1.22.7/src/FloorLabel.d.ts b/gcs-files/1.22.7/src/FloorLabel.d.ts new file mode 100644 index 00000000..9e4ecea4 --- /dev/null +++ b/gcs-files/1.22.7/src/FloorLabel.d.ts @@ -0,0 +1,7 @@ +/** @jsx h */ +interface FloorLabelProps { + buildingName: string; + floorName: string; +} +declare const FloorLabel: FunctionComponent; +export default FloorLabel; diff --git a/gcs-files/1.22.7/src/FloorOverlay.d.ts b/gcs-files/1.22.7/src/FloorOverlay.d.ts new file mode 100644 index 00000000..ecb38346 --- /dev/null +++ b/gcs-files/1.22.7/src/FloorOverlay.d.ts @@ -0,0 +1,23 @@ +/** @jsx h */ +import { Component, h } from "preact"; +import { LanguageCodes } from "./Translations"; +import { FloorData } from "./web-sdk"; +export interface FloorOverlayProps { + toggleFloorOverlay: (options: { + open: boolean; + }) => void; + currentFloorID: string; + floors: FloorData[]; + sortDescending: boolean; + selectFloorByID: (floorID: string) => void; + language?: LanguageCodes; +} +declare class FloorOverlay extends Component { + state: { + searchFilter: string; + }; + searchInputRef: import("preact").RefObject; + componentDidMount(): void; + render(): h.JSX.Element; +} +export default FloorOverlay; diff --git a/gcs-files/1.22.7/src/IconClose.d.ts b/gcs-files/1.22.7/src/IconClose.d.ts new file mode 100644 index 00000000..14b7c009 --- /dev/null +++ b/gcs-files/1.22.7/src/IconClose.d.ts @@ -0,0 +1,3 @@ +/** @jsx h */ +declare const IconClose: FunctionComponent; +export default IconClose; diff --git a/gcs-files/1.22.7/src/IconSpinner.d.ts b/gcs-files/1.22.7/src/IconSpinner.d.ts new file mode 100644 index 00000000..03cf83c6 --- /dev/null +++ b/gcs-files/1.22.7/src/IconSpinner.d.ts @@ -0,0 +1,3 @@ +/** @jsx h */ +declare const IconSpinner: FunctionComponent; +export default IconSpinner; diff --git a/gcs-files/1.22.7/src/LabelList.d.ts b/gcs-files/1.22.7/src/LabelList.d.ts new file mode 100644 index 00000000..65436b4a --- /dev/null +++ b/gcs-files/1.22.7/src/LabelList.d.ts @@ -0,0 +1,8 @@ +/** @jsx h */ +interface LabelListProps { + align: "left" | "right"; + fontSize?: string | number; + labels: string[]; +} +declare const LabelList: FunctionComponent; +export default LabelList; diff --git a/gcs-files/1.22.7/src/LoadingSpinner.d.ts b/gcs-files/1.22.7/src/LoadingSpinner.d.ts new file mode 100644 index 00000000..62692d36 --- /dev/null +++ b/gcs-files/1.22.7/src/LoadingSpinner.d.ts @@ -0,0 +1,3 @@ +/** @jsx h */ +declare const LoadingOverlay: FunctionComponent; +export default LoadingOverlay; diff --git a/gcs-files/1.22.7/src/MapComponent.d.ts b/gcs-files/1.22.7/src/MapComponent.d.ts new file mode 100644 index 00000000..7011d86e --- /dev/null +++ b/gcs-files/1.22.7/src/MapComponent.d.ts @@ -0,0 +1,136 @@ +/** @jsx h */ +/// +import "d3-transition"; +import { ZoomBehavior } from "d3-zoom"; +import { Component, h } from "preact"; +import { API, CreateMapOptions, FloorData, PlacemarkData, TagData } from "./web-sdk"; +interface Box { + width: number; + height: number; +} +export interface MapComponentProps extends CreateMapOptions { + destroy: () => void; + update: (options: Partial) => void; + api: API; +} +export interface MapComponentState { + mapImageURL?: string; + isFloorOverlayOpen: boolean; + isAssetListOverlayOpen: boolean; + isMapMarkerOverlayOpen: boolean; + isErrorOverlayOpen: boolean; + isPanningOrZooming: boolean; + loadingSources: Record; + errors: any[]; + mapTransform: string; + mapZoomFactor: number; + floors: FloorData[]; + allPlacemarkData: PlacemarkData[]; + svgURL?: string; + tagsConnection: any; + tagsStatus: string; + selectedItem?: PlacemarkData | TagData; + areTagsLoading: boolean; + arePlacemarksLoading: boolean; + allTagData: TagData[]; +} +declare class MapComponent extends Component { + static defaultProps: { + loadTags: boolean; + loadPlacemarks: boolean; + showSearchControl: boolean; + showFloorsControl: boolean; + floorsControlSortDescending: boolean; + shouldMapPanZoom: () => boolean; + width: string; + height: string; + placemarks: {}; + tags: {}; + overlays: never[]; + annotations: never[]; + onTagsUpdate: () => void; + onFloorChange: () => void; + onLoadingStateChange: () => void; + onFloorsUpdate: () => void; + }; + state: MapComponentState; + isMounted: boolean; + isLoaded: boolean; + fetchAllTagsTimeout: any; + fetchAllTagsInitialized: boolean; + fetchAllPlacemarksTimeout: any; + fetchAllPlacemarksInitialized: boolean; + mapRef: import("preact").RefObject; + mapContainerRef: import("preact").RefObject; + mapImageref: import("preact").RefObject; + intervalAutoDestroy: any; + zoomD3?: ZoomBehavior; + mapSelection?: Selection; + mapContainerSize: Box | undefined; + debouncedResizeFn: import("lodash").DebouncedFunc<() => void>; + componentDidMount(): void; + loadData(): Promise; + componentDidUpdate(prevProps: MapComponentProps): void; + componentWillUnmount(): void; + handleResize(): void; + freeMapImageURL(): void; + fetchMapImageURL(): Promise; + onTagsInit: () => void; + onPlacemarksInit: () => void; + updateMap: (newOptions: Partial) => void; + validateFloorID(): void; + fetchAllTags(options?: { + forceUpdate: boolean; + }): void; + toggleAssetListOverlay: ({ open }: { + open: boolean; + }) => void; + toggleFloorOverlay: ({ open }: { + open: boolean; + }) => void; + toggleErrorOverlay: ({ open, message, }: { + open: boolean; + message?: string | undefined; + }) => void; + toggleLoadingSpinner: ({ show, source, }: { + show: boolean; + source?: string | undefined; + }) => void; + showLoadingSpinner(): boolean; + toggleDetailsOverlay: ({ open, selectedItem, }: { + open: boolean; + selectedItem?: MapComponentState["selectedItem"]; + }) => void; + selectFloorByID: (floorID: string) => void; + fetchAllPlacemarks(options?: { + forceUpdate: boolean; + }): void; + getFloors(): Promise; + getMapData(): FloorData | undefined; + initializeFloors(): Promise; + addZoomBehavior(): void; + resetExtents(): void; + setExtents(mapWidth: number, mapHeight: number): void; + zoomToDefault(): void; + getMapRefSize(): { + width: number; + height: number; + }; + centerMap(): void; + zoomToPoint: (x: number, y: number, k: number) => void; + zoomBy: (factor: number) => void; + zoomIn: () => void; + zoomOut: () => void; + onClick: (event: Event) => void; + onTagClick: (tag: TagData) => Promise; + onPlacemarkClick: (placemark: PlacemarkData) => Promise; + shouldShowFloors(): boolean; + renderFloorLabel(): h.JSX.Element | null; + renderFloorOverlay(): h.JSX.Element | null; + renderAssetListOverlay(): h.JSX.Element | null; + renderDetailsOverlay(): h.JSX.Element | null; + renderLoadingSpinner(): h.JSX.Element | null; + renderErrorOverlay(): h.JSX.Element | null; + render(): h.JSX.Element; +} +export default MapComponent; diff --git a/gcs-files/1.22.7/src/Overlay.d.ts b/gcs-files/1.22.7/src/Overlay.d.ts new file mode 100644 index 00000000..52e3f2ce --- /dev/null +++ b/gcs-files/1.22.7/src/Overlay.d.ts @@ -0,0 +1,7 @@ +/** @jsx h */ +interface OverlayProps { + position: "left" | "right"; + onCloseClicked: () => void; +} +declare const Overlay: FunctionComponent; +export default Overlay; diff --git a/gcs-files/1.22.7/src/OverlayCircle.d.ts b/gcs-files/1.22.7/src/OverlayCircle.d.ts new file mode 100644 index 00000000..70167cc6 --- /dev/null +++ b/gcs-files/1.22.7/src/OverlayCircle.d.ts @@ -0,0 +1,7 @@ +/** @jsx h */ +import { CustomOverlayCircle } from "./web-sdk"; +interface OverlayCircleProps extends CustomOverlayCircle { + mapZoomFactor: number; +} +declare const OverlayCircle: FunctionComponent; +export default OverlayCircle; diff --git a/gcs-files/1.22.7/src/OverlayImage.d.ts b/gcs-files/1.22.7/src/OverlayImage.d.ts new file mode 100644 index 00000000..db4181db --- /dev/null +++ b/gcs-files/1.22.7/src/OverlayImage.d.ts @@ -0,0 +1,7 @@ +/** @jsx h */ +import { CustomOverlayImage } from "./web-sdk"; +interface OverlayImage extends CustomOverlayImage { + mapZoomFactor: number; +} +declare const OverlayImage: FunctionComponent; +export default OverlayImage; diff --git a/gcs-files/1.22.7/src/OverlayLayer.d.ts b/gcs-files/1.22.7/src/OverlayLayer.d.ts new file mode 100644 index 00000000..ddaa325f --- /dev/null +++ b/gcs-files/1.22.7/src/OverlayLayer.d.ts @@ -0,0 +1,8 @@ +/** @jsx h */ +import { CustomOverlay } from "./web-sdk"; +interface OverlayLayerProps { + mapZoomFactor: number; + overlays: CustomOverlay[]; +} +declare const OverlayLayer: FunctionComponent; +export default OverlayLayer; diff --git a/gcs-files/1.22.7/src/OverlayMarker.d.ts b/gcs-files/1.22.7/src/OverlayMarker.d.ts new file mode 100644 index 00000000..e4dd2296 --- /dev/null +++ b/gcs-files/1.22.7/src/OverlayMarker.d.ts @@ -0,0 +1,7 @@ +/** @jsx h */ +import { CustomOverlayMarker } from "./web-sdk"; +interface OverlayMarkerProps extends CustomOverlayMarker { + mapZoomFactor: number; +} +declare const OverlayMarker: FunctionComponent; +export default OverlayMarker; diff --git a/gcs-files/1.22.7/src/OverlayPath.d.ts b/gcs-files/1.22.7/src/OverlayPath.d.ts new file mode 100644 index 00000000..c462162d --- /dev/null +++ b/gcs-files/1.22.7/src/OverlayPath.d.ts @@ -0,0 +1,7 @@ +/** @jsx h */ +import { CustomOverlayPath } from "./web-sdk"; +interface OverlayPathProps extends CustomOverlayPath { + mapZoomFactor: number; +} +declare const OverlayPath: FunctionComponent; +export default OverlayPath; diff --git a/gcs-files/1.22.7/src/OverlayPolygon.d.ts b/gcs-files/1.22.7/src/OverlayPolygon.d.ts new file mode 100644 index 00000000..d9821ab3 --- /dev/null +++ b/gcs-files/1.22.7/src/OverlayPolygon.d.ts @@ -0,0 +1,7 @@ +/** @jsx h */ +import { CustomOverlayPolygon } from "./web-sdk"; +interface OverlayPolygonProps extends CustomOverlayPolygon { + mapZoomFactor: number; +} +declare const OverlayPolygon: FunctionComponent; +export default OverlayPolygon; diff --git a/gcs-files/1.22.7/src/OverlayPolyline.d.ts b/gcs-files/1.22.7/src/OverlayPolyline.d.ts new file mode 100644 index 00000000..bd9ed116 --- /dev/null +++ b/gcs-files/1.22.7/src/OverlayPolyline.d.ts @@ -0,0 +1,7 @@ +/** @jsx h */ +import { CustomOverlayPolyline } from "./web-sdk"; +interface OverlayPolygonProps extends CustomOverlayPolyline { + mapZoomFactor: number; +} +declare const OverlayPolyline: FunctionComponent; +export default OverlayPolyline; diff --git a/gcs-files/1.22.7/src/OverlaySearchBar.d.ts b/gcs-files/1.22.7/src/OverlaySearchBar.d.ts new file mode 100644 index 00000000..e5f09ad6 --- /dev/null +++ b/gcs-files/1.22.7/src/OverlaySearchBar.d.ts @@ -0,0 +1,12 @@ +/** @jsx h */ +interface OverlayLayerSearchBarProps { + placeholder: string; + value: string; + onChange: (value: string) => void; +} +declare class OverlaySearchBar extends Component { + input: HTMLInputElement | null; + componentDidMount(): void; + render(): h.JSX.Element; +} +export default OverlaySearchBar; diff --git a/gcs-files/1.22.7/src/OverlayUse.d.ts b/gcs-files/1.22.7/src/OverlayUse.d.ts new file mode 100644 index 00000000..9b36a0a0 --- /dev/null +++ b/gcs-files/1.22.7/src/OverlayUse.d.ts @@ -0,0 +1,7 @@ +/** @jsx h */ +import { CustomOverlayUse } from "./web-sdk"; +interface OverlayUseProps extends CustomOverlayUse { + mapZoomFactor: number; +} +declare const OverlayUse: FunctionComponent; +export default OverlayUse; diff --git a/gcs-files/1.22.7/src/Placemark.d.ts b/gcs-files/1.22.7/src/Placemark.d.ts new file mode 100644 index 00000000..bae4794e --- /dev/null +++ b/gcs-files/1.22.7/src/Placemark.d.ts @@ -0,0 +1,13 @@ +/** @jsx h */ +import { CreateMapPlacemarksOptions, PlacemarkData } from "./web-sdk"; +interface PlacemarkProps { + isSelected: boolean; + data: PlacemarkData; + mapZoomFactor: number; + onClick?: (placemark: PlacemarkData) => void; + disabled?: boolean; + labelMode: CreateMapPlacemarksOptions["labelMode"]; + labelZoomLevel: CreateMapPlacemarksOptions["labelZoomLevel"]; +} +declare const Placemark: FunctionComponent; +export default Placemark; diff --git a/gcs-files/1.22.7/src/PlacemarkLayer.d.ts b/gcs-files/1.22.7/src/PlacemarkLayer.d.ts new file mode 100644 index 00000000..52d306be --- /dev/null +++ b/gcs-files/1.22.7/src/PlacemarkLayer.d.ts @@ -0,0 +1,33 @@ +/** @jsx h */ +import { MapComponentProps } from "./MapComponent"; +import { API, CreateMapOptions, PlacemarkData, TagData } from "./web-sdk"; +export interface PlacemarkLayerProps { + selectedItem?: TagData | PlacemarkData; + isPanningOrZooming: boolean; + mapZoomFactor: number; + locationID: string; + floorID: string; + api: API; + placemarkOptions: CreateMapOptions["placemarks"]; + onPlacemarkClick: (placemark: PlacemarkData) => void; + onUpdate: MapComponentProps["onPlacemarksUpdate"]; + toggleLoadingSpinner: (options: { + show: boolean; + source: string; + }) => void; + onInit: () => void; +} +export interface PlacemarkLayerState { + fetchedPlacemarks: PlacemarkData[]; +} +export default class PlacemarkLayer extends Component { + state: PlacemarkLayerState; + isMounted: boolean; + componentDidMount(): void; + shouldComponentUpdate(nextProps: PlacemarkLayerProps): boolean; + componentDidUpdate(prevProps: PlacemarkLayerProps, prevState: PlacemarkLayerState): Promise; + componentWillUnmount(): void; + fetchPlacemarks(): Promise; + getFilteredPlacemarks(placemarks: PlacemarkData[]): PlacemarkData[]; + render(): h.JSX.Element; +} diff --git a/gcs-files/1.22.7/src/Tag.d.ts b/gcs-files/1.22.7/src/Tag.d.ts new file mode 100644 index 00000000..0b77e3d9 --- /dev/null +++ b/gcs-files/1.22.7/src/Tag.d.ts @@ -0,0 +1,11 @@ +/** @jsx h */ +import { TagData } from "./web-sdk"; +interface TagProps { + isSelected: boolean; + data: TagData; + mapZoomFactor: number; + onClick?: (tag: TagData) => void; + disabled?: boolean; +} +declare const Tag: FunctionComponent; +export default Tag; diff --git a/gcs-files/1.22.7/src/TagLayer.d.ts b/gcs-files/1.22.7/src/TagLayer.d.ts new file mode 100644 index 00000000..536343ba --- /dev/null +++ b/gcs-files/1.22.7/src/TagLayer.d.ts @@ -0,0 +1,45 @@ +/** @jsx h */ +/// +import { Component, h } from "preact"; +import { MapComponentProps } from "./MapComponent"; +import { API, PlacemarkData, TagData } from "./web-sdk"; +export interface TagLayerProps { + selectedItem?: TagData | PlacemarkData; + isPanningOrZooming: boolean; + mapZoomFactor: number; + locationID: string; + floorID: string; + api: API; + tagOptions?: { + filter?: (tag: TagData) => boolean; + showControlTags?: boolean; + disabled?: boolean; + updateInterval?: number; + }; + onTagClick: (tag: TagData) => void; + onUpdate: MapComponentProps["onTagsUpdate"]; + toggleLoadingSpinner: (options: { + show: boolean; + source: string; + }) => void; + onInit: () => void; +} +export interface TagLayerState { + tagsByMAC: Record; + connectionsByFloorID: Record; +} +export default class TagLayer extends Component { + state: TagLayerState; + tagUpdates: {}; + isMounted: boolean; + componentDidMount(): void; + shouldComponentUpdate(nextProps: TagLayerProps): boolean; + componentDidUpdate(prevProps: TagLayerProps): void; + componentWillUnmount(): void; + commitTagUpdates: import("lodash").DebouncedFunc<() => void>; + connect(floorID: string): void; + disconnect(floorID: string): void; + filterControlTags(tags: TagData[]): TagData[]; + onUpdate: () => void; + render(): h.JSX.Element; +} diff --git a/gcs-files/1.22.7/src/Translations.d.ts b/gcs-files/1.22.7/src/Translations.d.ts new file mode 100644 index 00000000..07bfed73 --- /dev/null +++ b/gcs-files/1.22.7/src/Translations.d.ts @@ -0,0 +1,228 @@ +declare const translations: { + readonly en: { + readonly tags: "Tags"; + readonly placemarks: "Placemarks"; + readonly floors: "Floors"; + readonly search: "Search"; + readonly search_tags: "Search Tags"; + readonly search_placemarks: "Search Placemarks"; + readonly search_floors: "Search Floors"; + readonly no_results_found: "No results found"; + readonly close: "Close"; + }; + readonly ar: { + readonly tags: "العلامات"; + readonly placemarks: " العلامات الموضعية"; + readonly floors: " الطوابق"; + readonly search: " بحث"; + readonly search_tags: " بحث عن علامات"; + readonly search_placemarks: " بحث عن علامات موضعية"; + readonly search_floors: " بحث عن طوابق"; + readonly no_results_found: " لم يتم العثور على نتائج"; + readonly close: "إغلاق"; + }; + readonly ca: { + readonly tags: "Etiquetes"; + readonly placemarks: "Marques de posició"; + readonly floors: "Pisos"; + readonly search: "Cerca"; + readonly search_tags: "Cerca etiquetes"; + readonly search_placemarks: "Cerca marcadors de posició"; + readonly search_floors: "Cerca pisos"; + readonly no_results_found: "Sense resultats"; + readonly close: "Tanca"; + }; + readonly es: { + readonly tags: "Etiquetas"; + readonly placemarks: "Marcas de posición"; + readonly floors: "Pisos"; + readonly search: "Buscar"; + readonly search_tags: "Buscar etiquetas"; + readonly search_placemarks: "Buscar marcas de posición"; + readonly search_floors: "Buscar pisos"; + readonly no_results_found: "No se han encontrado resultados"; + readonly close: "Cerrar"; + }; + readonly cs: { + readonly tags: "Tagy"; + readonly placemarks: "Značky míst"; + readonly floors: "Patra"; + readonly search: "Hledat"; + readonly search_tags: "Hledat tagy"; + readonly search_placemarks: "Hledat značky míst"; + readonly search_floors: "Hledat patra"; + readonly no_results_found: "Nebyly nalezeny žádné výsledky"; + readonly close: "Zavřít"; + }; + readonly de: { + readonly tags: "Stichworte"; + readonly placemarks: "Ortsmarken"; + readonly floors: "Etagen"; + readonly search: "Suche"; + readonly search_tags: "Such-Tags"; + readonly search_placemarks: "In den Ortsmarken (Räumen, Sälen) suchen"; + readonly search_floors: "In den Stockwerken suchen"; + readonly no_results_found: "Keine Ergebnisse gefunden"; + readonly close: "Schließen"; + }; + readonly fr: { + readonly tags: "Mots clés"; + readonly placemarks: "Repères"; + readonly floors: "Étages"; + readonly search: "Rechercher"; + readonly search_tags: "Rechercher des mots clés"; + readonly search_placemarks: "Rechercher des repères"; + readonly search_floors: "Rechercher des étages"; + readonly no_results_found: "Aucun résultat trouvé"; + readonly close: "Fermer"; + }; + readonly it: { + readonly tags: "Tag"; + readonly placemarks: "Segnaposto"; + readonly floors: "Piani"; + readonly search: "Cerca"; + readonly search_tags: "Cerca tag"; + readonly search_placemarks: "Cerca segnaposto"; + readonly search_floors: "Cerca piani"; + readonly no_results_found: "Nessun risultato trovato"; + readonly close: "Chiudi"; + }; + readonly iw: { + readonly tags: "תגים"; + readonly placemarks: "סימני מקום"; + readonly floors: "קומות"; + readonly search: "חפש"; + readonly search_tags: "חפש תגיות"; + readonly search_placemarks: "חפש סימני מקום"; + readonly search_floors: "חפש קומות"; + readonly no_results_found: "לא נמצאו תוצאות"; + readonly close: "סגור"; + }; + readonly ja: { + readonly tags: "タグ"; + readonly placemarks: "目印"; + readonly floors: "フロア"; + readonly search: "探す"; + readonly search_tags: "検索タグ"; + readonly search_placemarks: "目印を検索する"; + readonly search_floors: "フロアを検索する"; + readonly no_results_found: "結果が見つからない"; + readonly close: "近い"; + }; + readonly ko: { + readonly tags: "태그"; + readonly placemarks: "장소표시<"; + readonly floors: "바닥"; + readonly search: "검색"; + readonly search_tags: "태그검색<"; + readonly search_placemarks: "장소표시 검색<"; + readonly search_floors: "층수검색<"; + readonly no_results_found: "검색결과가 없습니다<"; + readonly close: "닫기"; + }; + readonly nl: { + readonly tags: "Tags"; + readonly placemarks: "Plaatsaanduidingen"; + readonly floors: "Verdiepingen"; + readonly search: "Zoeken"; + readonly search_tags: "Zoek tags"; + readonly search_placemarks: "Zoek plaatsaanduidingen"; + readonly search_floors: "Zoek verdiepingen"; + readonly no_results_found: "Geen resultaten gevonden"; + readonly close: "Sluiten"; + }; + readonly no: { + readonly tags: "Tagger"; + readonly placemarks: "Stedsmarkeringer"; + readonly floors: "Gulv"; + readonly search: "Søk"; + readonly search_tags: "Søk i etiketter"; + readonly search_placemarks: "Søk i stedsmarkeringer"; + readonly search_floors: "Søk i etasjer"; + readonly no_results_found: "Ingen resultater"; + readonly close: "Lukk"; + }; + readonly pt: { + readonly tags: "Tags"; + readonly placemarks: "Marcadores"; + readonly floors: "Andares"; + readonly search: "Procurar"; + readonly search_tags: "Tags de pesquisa"; + readonly search_placemarks: "Pesquisar marcadores"; + readonly search_floors: "Pesquisar andares"; + readonly no_results_found: "Nenhum resultado encontrado"; + readonly close: "Perto"; + }; + readonly ru: { + readonly tags: "Taggar"; + readonly placemarks: "Platsmärken"; + readonly floors: "Golv"; + readonly search: "Sök"; + readonly search_tags: "Sök taggar"; + readonly search_placemarks: "Sök efter platsmärken"; + readonly search_floors: "Sök Golv"; + readonly no_results_found: "Inga resultat funna"; + readonly close: "Stänga"; + }; + readonly sv: { + readonly tags: "Taggar"; + readonly placemarks: "Platsmärken"; + readonly floors: "Golv"; + readonly search: "Sök"; + readonly search_tags: "Sök taggar"; + readonly search_placemarks: "Sök efter platsmärken"; + readonly search_floors: "Sök Golv"; + readonly no_results_found: "Inga resultat funna"; + readonly close: "Stänga"; + }; + readonly uk: { + readonly tags: "Теги"; + readonly placemarks: "Мітки"; + readonly floors: "Поверхи"; + readonly search: "Пошук"; + readonly search_tags: "Пошук тегів"; + readonly search_placemarks: "Пошук міток"; + readonly search_floors: "Пошук поверхів"; + readonly no_results_found: "Нічого не знайдено"; + readonly close: "Закрити"; + }; + readonly vi: { + readonly tags: "Thẻ"; + readonly placemarks: "Dấu vị trí"; + readonly floors: "Tầng"; + readonly search: "Tìm kiếm "; + readonly search_tags: "Thẻ tìm kiếm"; + readonly search_placemarks: "Dấu vị trí tìm kiếm"; + readonly search_floors: "Tầng tìm kiếm"; + readonly no_results_found: "Không có kết quả nào được tìm thấy"; + readonly close: "Đóng"; + }; + readonly "zh-cn": { + readonly tags: "标签"; + readonly placemarks: "地标"; + readonly floors: "楼层"; + readonly search: "搜索"; + readonly search_tags: "搜索标签"; + readonly search_placemarks: "搜索地标"; + readonly search_floors: "搜索楼层"; + readonly no_results_found: "未找到结果"; + readonly close: "关闭"; + }; + readonly "zh-tw": { + readonly tags: "標籤"; + readonly placemarks: "地標"; + readonly floors: "樓層"; + readonly search: "搜尋"; + readonly search_tags: "搜尋標籤"; + readonly search_placemarks: "搜尋地標"; + readonly search_floors: "搜尋樓層"; + readonly no_results_found: "未找到結果"; + readonly close: "關閉"; + }; +}; +export type LanguageCodes = keyof typeof translations; +declare function lookup(str: keyof typeof translations["en"], lng?: LanguageCodes): any; +declare const _default: { + lookup: typeof lookup; +}; +export default _default; diff --git a/gcs-files/1.22.7/src/ZoomControls.d.ts b/gcs-files/1.22.7/src/ZoomControls.d.ts new file mode 100644 index 00000000..943ee874 --- /dev/null +++ b/gcs-files/1.22.7/src/ZoomControls.d.ts @@ -0,0 +1,7 @@ +/** @jsx h */ +interface ZoomControlsProps { + onZoomIn: (event: MouseEvent) => void; + onZoomOut: (event: MouseEvent) => void; +} +declare const ZoomControls: FunctionComponent; +export default ZoomControls; diff --git a/gcs-files/1.22.7/src/analytics.d.ts b/gcs-files/1.22.7/src/analytics.d.ts new file mode 100644 index 00000000..785e7e20 --- /dev/null +++ b/gcs-files/1.22.7/src/analytics.d.ts @@ -0,0 +1,14 @@ +/** + * @internal + * @packageDocumentation + */ +interface SendAnalyticsCodeEventOptions { + action: string; + locationID: string; + onTagsUpdate?: boolean; + tagsFilter?: boolean; + placemarksFilter?: boolean; + internalUpdate?: boolean; +} +export declare function sendAnalyticsCodeEvent(options: SendAnalyticsCodeEventOptions): Promise; +export {}; diff --git a/gcs-files/1.22.7/src/style.d.ts b/gcs-files/1.22.7/src/style.d.ts new file mode 100644 index 00000000..0be70848 --- /dev/null +++ b/gcs-files/1.22.7/src/style.d.ts @@ -0,0 +1,52 @@ +/** + * @internal + * @packageDocumentation + */ +export declare const theme: { + readonly fontSizeSmallest: "12px"; + readonly fontSizeSmaller: "14px"; + readonly fontSize: "16px"; + readonly fontSizeBigger: "18px"; + readonly black: "#000"; + readonly white: "#fff"; + readonly almostWhite: "#fafafa"; + readonly textColor: "#1b1b1b"; + readonly textColorBluishLightGrey: "#9fa8ae"; + readonly textColorBluish: "hsl(208, 17%, 42%)"; + readonly brandOrange: "#ff8300"; + readonly brandBlue: "hsl(203, 100%, 23%)"; + readonly brandBrightBlue: "hsl(207, 65%, 46%)"; + readonly buttonActiveColor: "hsl(201, 55%, 94%)"; + readonly buttonHoverColor: "hsl(200, 60%, 97%)"; + readonly buttonSeparatorColor: "#f0f0f0"; + readonly borderColor: "#ebeef2"; + readonly borderColorDarker: "#dfe1e5"; + readonly borderRadius: 6; + readonly searchBarColor: "#297BC0"; +}; +export declare const mixins: { + readonly flexRow: CSSInterpolation; + readonly flexColumn: CSSInterpolation; + readonly overflowEllipses: CSSInterpolation; + readonly textStrokeWhite: CSSInterpolation; + readonly buttonReset: CSSInterpolation; + readonly buttonHoverActive: CSSInterpolation; + readonly borderBox: CSSInterpolation; + readonly focusRing: CSSInterpolation; + readonly focusRingMenuItem: CSSInterpolation; + readonly focusOutline: CSSInterpolation; + readonly focusDarken: CSSInterpolation; + readonly focusNone: CSSInterpolation; + readonly shadow: CSSInterpolation; + readonly rounded: CSSInterpolation; + readonly maxRounded: CSSInterpolation; + readonly paddingMedium: CSSInterpolation; + readonly pointer: CSSInterpolation; +}; +export declare const cx: (...classNames: import("@emotion/css/create-instance").ClassNamesArg[]) => string, keyframes: { + (template: TemplateStringsArray, ...args: CSSInterpolation[]): string; + (...args: CSSInterpolation[]): string; +}, css: { + (template: TemplateStringsArray, ...args: CSSInterpolation[]): string; + (...args: CSSInterpolation[]): string; +}; diff --git a/gcs-files/1.22.7/src/util.d.ts b/gcs-files/1.22.7/src/util.d.ts new file mode 100644 index 00000000..b8661461 --- /dev/null +++ b/gcs-files/1.22.7/src/util.d.ts @@ -0,0 +1,23 @@ +/** + * @internal + * @packageDocumentation + */ +export declare const logWarn: (...args: any[]) => void; +export declare const logError: (...args: any[]) => void; +export declare const logDeprecated: (...args: any[]) => void; +export declare const uiText: { + enDash: string; + unnamedBuilding: string; +}; +/** New object with just one key missing from it. */ +export declare function objectWithoutKey(object: T, key: keyof typeof object): T; +/** Like lodash.groupBy, but the values are not in arrays. */ +export declare function keyBy(data: T[], fn: (item: T) => K): Record; +export declare function createSearchMatcher(query: string): (target: string) => boolean; +export declare function getTagLabels(tag: TagData): any; +export declare function getPlacemarkCategories(placemark: PlacemarkData): any; +export declare function requiredParam(funcName: string, argName: string): void; +export declare function isEnvOptions(env: string): env is EnvOptions; +export declare function cleanQuery(query: string): string; +export declare const placemarkSearchParams = "is_map_published=true AND kind:placemark AND NOT is_searchable=false AND NOT type=exclusion_area"; +export declare function debouncedPlacemarkSearch(func: any, wait?: number): () => Promise; diff --git a/gcs-files/1.22.7/src/web-sdk.d.ts b/gcs-files/1.22.7/src/web-sdk.d.ts new file mode 100644 index 00000000..f6fd009b --- /dev/null +++ b/gcs-files/1.22.7/src/web-sdk.d.ts @@ -0,0 +1,915 @@ +/** @jsx h */ +/*! + * @license + * Copyright 2022 Hewlett Packard Enterprise Development LP + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +/** + * See {@link init} and {@link createMap} for getting started. + * + * ```js + * const api = new MeridianSDK.API({ token: "" }); + * const map = MeridianSDK.createMap( + * document.querySelector("#map-container"), + * { + * api: api, + * locationID: "", + * floorID: "", + * height: "500px" + * } + * ); + * ``` + * + * Call this before navigating to a new page, to close network connections. This + * is critical for usage within a single page application, or even just an + * interactive page with JS that unmounts the map container element (e.g. + * removing it from the DOM or setting the `innerHTML`). + * + * ```js + * map.destroy(); + * ``` + * @packageDocumentation + */ +import { AxiosInstance } from "axios"; +import { h } from "preact"; +import { LanguageCodes } from "./Translations"; +/** + * Takes a placemark type and returns a URL to a white SVG icon representing it + * + * @example + * ```ts + * function onPlacemarkClick(placemark) { + * const url = MeridianSDK.placemarkIconURL(placemark.type); + * console.log(url); + * } + * ``` + */ +export declare function placemarkIconURL(type: string): string; +/** + * Returns an array of points (numbers) based on a placemarks's area property + */ +export declare function pointsFromArea(area: string | null | undefined): number[]; +/** + * The current version of the Meridian Web SDK. Useful for checking which + * version is running. + * + * ```js + * console.log(MeridianSDK.version); + * ``` + */ +export declare const version: string; +/** + * This function can be used to restrict pan/zoom events unless the user is + * holding down a modifier key (Control, Alt, Command, Shift) on their keyboard. + * This prevents accidental map interactions in pages with lots of scrolling + * content. + * + * Pass this to `shouldMapPanZoom` in {@link createMap} if you would like the user + * to use two fingers or hold down a modifier key in order to zoom the map. + * + * ```js + * const api = new MeridianSDK.API({ token: "" }); + * + * const map = MeridianSDK.createMap( + * document.querySelector("#map-container"), + * { + * api, + * locationID: "", + * floorID: "", + * height: "500px", + * shouldMapPanZoom: MeridianSDK.restrictedPanZoom, + * } + * ) + * ``` + */ +export declare function restrictedPanZoom(event: any): boolean; +/** + * Convert from latitude and longitude to a point on a referenced map. Uses equirectangular projection. + * + * The basic formula to achieve this is as follows: + * + * x = radius(longitude - central meridian of map) * cos(standard parallels with scale) + * + * y = radius(latitude - central parallel of map) + * + */ +export declare function latLngToMapPoint(floorData: Partial, { lat, lng }: { + lat: number; + lng: number; +}): { + x: number; + y: number; +}; +/** + * Convert from a point on a referenced map to latitude and longitude. Uses mercator projection. + * + * The basic formula to achieve this is as follows: + * + * latitute = 2(tan^-1)[exp(y / radius)] + * longitude = central parallel of map + (x / radius) - PI / 2 + * + */ +export declare function mapPointToLatLng(floorData: Partial, { x, y }: { + x: number; + y: number; +}): { + lat: number; + lng: number; +}; +/** + * Initializes a share MeridianSDK API instance for use across all calls to + * {@link createMap}. You can either call this function or pass your {@link API} + * instance directly to {@link createMap}. + * + * ```js + * const api = new MeridianSDK.API({ + * token: "" + * }); + * + * MeridianSDK.init({ api: api }); + * ``` + */ +export declare function init(options: { + api: API; +}): void; +export interface CreateMapTagsOptions { + /** Should we show control tags? Defaults to `false`. */ + showControlTags?: boolean; + /** + * Filter function used to hide tags. Return `false` to hide a tag. Defaults + * to `() => true`. + */ + filter?: (tag: TagData) => boolean; + /** Disable clicking tags when `true`. Defaults to `false`. */ + disabled?: boolean; + /** Update interval in milliseconds, defaults to 5000 */ + updateInterval?: number; +} +export interface CreateMapPlacemarksOptions { + /** Should we show hidden placemarks? Defaults to `false`. */ + showHiddenPlacemarks?: boolean; + /** + * Filter function used to hide placemarks. Return `false` to hide a + * placemark. Defaults to `() => true`. + */ + filter?: (placemark: PlacemarkData) => boolean; + /** Disable clicking placemarks when `true`. Defaults to `false`. */ + disabled?: boolean; + /** + * Which mode should we use for displaying placemark labels + * + * - always: shown at all times regardless of zoom level + * - never: never shown + * - hover: only shown when the placemark is hovered + * - zoom: [default] only shown when a certain zoom level is reached + */ + labelMode?: "always" | "never" | "hover" | "zoom"; + /** Zoom level at which placemark lables appear when label mode is "zoom" */ + labelZoomLevel?: number; +} +/** + * Object describing an SVG `` element drawn on the map + * + * + */ +export interface CustomOverlayPolygon { + type: "polygon"; + /** + * `true` will result in the element being wrapped in a `` (default: `false`) + * + * + */ + defs?: boolean; + id?: string; + className?: string; + style?: h.JSX.CSSProperties; + points: number[]; + fill?: string; + fillOpacity?: number | string; + stroke?: string; + strokeWidth?: number; + strokeLineJoin?: "miter" | "round"; + strokeDasharray?: string | number; + strokeDashoffset?: string | number; + strokeOpacity?: number | string; + markerStart: string; + markerMid: string; + markerEnd: string; + animate?: h.JSX.SVGAttributes; + /** Arbitrary data for use with onClick handler */ + data?: Record; + onClick?: (data: Record) => void; +} +/** + * Object describing an SVG `` element drawn on the map + * + * + */ +export interface CustomOverlayPolyline { + type: "polyline"; + /** + * `true` will result in the element being wrapped in a `` (default: `false`) + * + * + */ + defs?: boolean; + id?: string; + className?: string; + style?: h.JSX.CSSProperties; + points: number[]; + fill?: string; + fillOpacity?: number | string; + stroke?: string; + strokeWidth?: number; + strokeLineJoin?: "miter" | "round"; + strokeLineCap?: "butt" | "round" | "square"; + strokeDasharray?: string | number; + strokeDashoffset?: string | number; + strokeOpacity?: number | string; + markerStart: string; + markerMid: string; + markerEnd: string; + animate?: h.JSX.SVGAttributes; +} +/** + * Object describing an SVG `` element drawn on the map + * + * + */ +export interface CustomOverlayPath { + type: "path"; + /** + * `true` will result in the element being wrapped in a `` (default: `false`) + * + * + */ + defs?: boolean; + id?: string; + className?: string; + style?: h.JSX.CSSProperties; + shape: string; + fill?: string; + stroke?: string; + strokeWidth?: number; + strokeLineJoin?: "miter" | "round"; + strokeLineCap?: "butt" | "round" | "square"; + strokeDasharray?: string | number; + strokeDashoffset?: string | number; + strokeOpacity?: number | string; + markerStart: string; + markerMid: string; + markerEnd: string; + animate?: h.JSX.SVGAttributes; + animateMotion?: h.JSX.SVGAttributes; + mpath?: SVGMPathElement; +} +/** + * Object describing an SVG `` element drawn on the map + * + * + */ +export interface CustomOverlayCircle { + type: "circle"; + /** + * `true` will result in the element being wrapped in a `` (default: `false`) + * + * + */ + defs?: boolean; + id?: string; + className?: string; + style?: h.JSX.CSSProperties; + cx: string; + cy: string; + r: string; + pathLength: number; + fill?: string; + fillOpacity?: number | string; + stroke?: string; + strokeWidth?: number; + strokeLineJoin?: "miter" | "round"; + strokeLineCap?: "butt" | "round" | "square"; + strokeDasharray?: string | number; + strokeDashoffset?: string | number; + strokeOpacity?: number | string; + animate?: h.JSX.SVGAttributes; + animateMotion?: h.JSX.SVGAttributes; + mpath?: SVGMPathElement; + /** Arbitrary data for use with onClick handler */ + data?: Record; + onClick?: (data: Record) => void; +} +/** + * Object describing an SVG `` element drawn on the map + * + * + */ +export interface CustomOverlayImage { + type: "image"; + /** + * `true` will result in the element being wrapped in a `` (default: `false`) + * + * + */ + defs?: boolean; + id?: string; + className?: string; + style?: h.JSX.CSSProperties; + x?: number; + y?: number; + width: number; + height: number; + href: string; + animateMotion?: h.JSX.SVGAttributes; + animate?: h.JSX.SVGAttributes; + mpath?: SVGMPathElement; + /** Arbitrary data for use with onClick handler */ + data?: Record; + onClick?: (data: Record) => void; +} +/** + * Object describing an SVG `` element drawn on the map + * + * + */ +export interface CustomOverlayMarker { + type: "marker"; + /** + * `true` will result in the element being wrapped in a `` (default: `false`) + * + * + */ + defs?: boolean; + id?: string; + className?: string; + style?: h.JSX.CSSProperties; + viewBox: string; + refX: string; + refY: string; + markerWidth: number; + markerHeight: number; + orient: string; + fill?: string; + fillOpacity?: number | string; + stroke?: string; + strokeWidth?: number; + strokeLineJoin?: "miter" | "round"; + strokeLineCap?: "butt" | "round" | "square"; + strokeDasharray?: string | number; + strokeDashoffset?: string | number; + strokeOpacity?: number | string; + shapeElementType: "circle" | "polygon" | "polyline" | "path" | "image"; + shapeElementAttributes: Record; +} +/** + * Object describing an SVG `` element drawn on the map. + * + * + */ +export interface CustomOverlayUse { + type: "use"; + /** + * `true` will result in the element being wrapped in a `` (default: `false`) + * + * + */ + defs?: boolean; + id?: string; + className?: string; + style?: h.JSX.CSSProperties; + x?: number; + y?: number; + width: number; + height: number; + href: string; + fill?: string; + stroke?: string; + strokeWidth?: number; + strokeLineJoin?: "miter" | "round"; + strokeLineCap?: "butt" | "round" | "square"; + strokeDasharray?: string | number; + strokeDashoffset?: string | number; + strokeOpacity?: number | string; + animate?: h.JSX.SVGAttributes; + animateMotion?: h.JSX.SVGAttributes; + mpath?: SVGMPathElement; +} +/** + * Object describing a custom overlay + */ +export type CustomOverlay = CustomOverlayImage | CustomOverlayPath | CustomOverlayPolygon | CustomOverlayPolyline | CustomOverlayCircle | CustomOverlayMarker | CustomOverlayUse; +/** + * Object describing a point annotation drawn on the map + */ +export interface CustomAnnotationPoint { + type: "point"; + x: number; + y: number; + size?: number; + backgroundColor?: string; + backgroundSize?: string; + backgroundImage?: string; + title?: string; + /** Arbitrary data for use with onClick handler */ + data?: Record; + onClick?: (data: Record) => void; +} +/** + * Object describing a custom annotation + */ +export type CustomAnnotation = CustomAnnotationPoint; +/** + * Options passed to {@link createMap}. + */ +export interface CreateMapOptions { + /** See {@link restrictedPanZoom}. */ + shouldMapPanZoom?: (event: any) => boolean; + /** Width of the map (e.g. "100%" or "300px"). */ + width?: string; + /** Height of the map (e.g. "100%" or "200px") */ + height?: string; + /** Meridian location ID. */ + locationID: string; + /** Meridian floor ID. */ + floorID: string; + /** An {@link API} instance. Defaults to the one passed to {@link init}. */ + api?: API; + /** Should we show the floor switcher UI control? Defaults to `true`. */ + showFloorsControl?: boolean; + /** Should we show the Search UI control? Defaults to `true`. */ + showSearchControl?: boolean; + /** + * Sort the floors in the Floor Switcher UI descending in order. + * Defaults to `false` (ascending in order). + */ + floorsControlSortDescending?: boolean; + /** + * Set to `false` to disable loading tags. Defaults to `true`. + * This is required for locations without a TAGS SKU license + */ + loadTags?: boolean; + /** Options related to tags. */ + tags?: CreateMapTagsOptions; + /** Set to `false` to disable loading placemarks. Defaults to `true`. */ + loadPlacemarks?: boolean; + /** Options related to placemarks. */ + placemarks?: CreateMapPlacemarksOptions; + /** An array of custom overlays to draw on the map. */ + overlays?: CustomOverlay[]; + /** An array of custom annotations to draw on the map. */ + annotations?: CustomAnnotation[]; + /** + * Minimum zoom level. Default value is dynamically calculated and matches + * the initial map scale (further zooming out is not allowed + */ + minZoomLevel?: number; + /** + * Maximum zoom level. Default value is 8 which equals eight times the + * actual scale of the map. + */ + maxZoomLevel?: number; + /** + * Called when the user clicks on the map. This is mostly useful as a way of + * knowing that the user has potentially unfocused a tag or placemark. This is + * NOT called when the user pans or zooms the map. + */ + onMapClick?: () => void; + /** + * Called when a tag is clicked. Use `event.preventDefault()` to prevent the + * default dialog from appearing. + */ + onTagClick?: (tag: TagData, event: MeridianEvent) => void; + /** + * Called when a placemark is clicked. Use `event.preventDefault()` to prevent + * the default dialog from appearing. + */ + onPlacemarkClick?: (placemark: PlacemarkData, event: MeridianEvent) => void; + /** + * Called when tags on the current floor are updated. `allTags` is every tag + * on the current floor, even ones not shown on the map. `filteredTags` is + * only the tags shown on the map (i.e. it respects `showControlTags` and + * `filter`). + */ + onTagsUpdate?: (tags: { + allTags: TagData[]; + filteredTags: TagData[]; + }) => void; + /** + * Called when tags on the current floor are updated. `allPlacemarks` is every + * placemark on the current floor, even ones not shown on the map. + * `filteredPlacemarks` is only the tags shown on the map (i.e. it respects + * `showHiddenPlacemarks` and `filter`). + */ + onPlacemarksUpdate?: (placemarks: { + allPlacemarks: PlacemarkData[]; + filteredPlacemarks: PlacemarkData[]; + }) => void; + /** Called after the floors list is updated. */ + onFloorsUpdate?: (floors: FloorData[]) => void; + /** Called after the floor is changed. */ + onFloorChange?: (floor: FloorData) => void; + /** Called when the loading state changes. */ + onLoadingStateChange?: (isLoading: boolean) => void; + /** + * Called when the map has been destroyed, either by manually calling + * map.destroy() or by being automatically destroyed when its DOM is tampered + * with. + */ + onDestroy?: () => void; +} +/** + * MeridanSDK specific event object, used to `preventDefault` when overriding a + * handler. + */ +export interface MeridianEvent { + preventDefault: () => void; +} +/** + * Returned from {@link createMap}, this object allows you to manipulate a map that + * has already been created in the page. + */ +export interface MeridianMap { + /** + * Remove the Meridian Map from the DOM and clean up all ongoing network + * connections. + * + * If you are writing a single page app you MUST use this call before hiding + * the Meridian Map, or you will having network connections that keep going in + * the background. + */ + destroy: () => void; + /** Has this map been destroyed */ + isDestroyed: boolean; + /** + * Update the Meridian map to have new options. + */ + update: (updatedOptions: Partial) => void; + /** + * Set zoom to the default level and pan to the default position. + */ + zoomToDefault: () => void; + /** + * Pan to x/y coordinate and scale to a given zoom factor. + */ + zoomToPoint: (options: { + x: number; + y: number; + scale: number; + }) => void; + /** + * Center the map while retaining the current scale. + */ + centerMap: () => void; +} +/** + * Creates and returns a map object mounted at the given HTML element. If you + * are using the tags.filter or onTagClick or onTagsUpdate functions, refer to + * for the schema. + * + * ```js + * const api = new MeridianSDK.API({ token: "" }); + * const map = MeridianSDK.createMap( + * document.querySelector("#map-container"), + * { + * api: api, + * locationID: "", + * floorID: "", + * height: "500px" + * } + * ); + * ``` + */ +export declare function createMap(element: HTMLElement, options: CreateMapOptions): MeridianMap; +/** + * @deprecated + * Deprecated function used to create an instance of {@link API}. Instead of + * `createAPI(options)` you should now use `new API(options)`. + */ +export declare function createAPI(options: APIOptions): API; +/** + * Options passed to {@link API.openStream}. + */ +export interface OpenStreamOptions { + /** Meridian location ID */ + locationID: string; + /** Meridian floor ID */ + floorID?: string; + /** + * Default: [floorID] if resourceType === "FLOOR" OR [locationID] if resourceType === "LOCATION", + * Valid values: [locationID | floorIDs | tagIDs | tagLabelIDs | zoneIDs] + */ + resourceIDs?: string[]; + /** + * Default: "FLOOR" if floorID is defined + * Valid values: "LOCATION" | "TAG" | "FLOOR" | "LABEL" | "ZONE" + */ + resourceType?: "LOCATION" | "TAG" | "FLOOR" | "LABEL" | "ZONE"; + /** Called with ALL tags on first load */ + onInitialTags?: (tags: TagData[]) => void; + /** Called when a tag location updates */ + onTagUpdate?: (tag: TagData) => void; + /** Called when an error happens */ + onException?: (error: Error) => void; + /** Called when the stream closes */ + onClose?: () => void; + /** Called when the stream opens */ + onOpen?: () => void; +} +/** + * Options passed to {@link API.getDirections}. + */ +export interface getDirectionsOptions { + /** Meridian Location ID */ + locationID: string; + /** Meridian start Floor ID */ + startFloorID: string; + /** Meridian start Placemark ID */ + startPlacemarkID: string; + /** Meridian end Placemark ID */ + endPlacemarkID: string; + /** Transport Type ("accessible" or undefined). Default is undefined */ + transportType?: string; +} +/** + * Options passed to {@link API.debouncedPlacemarkSearchBeta}. + */ +export interface placemarkSearchOptions { + /** Location ID */ + locationID: string; + /** Search String */ + searchStr: string; + /** + * Floor ID to be used in combination with `refPoint` + * See {@link API.debouncedPlacemarkSearchBeta} + */ + refFloorID?: string; + /** + * Map Point X/Y to be used in combination with `refFloorID` + * See {@link API.debouncedPlacemarkSearchBeta} + */ + refPoint?: string; +} +/** + * Holds an API token and environment. Can be used to access an `axios` instance + * for REST API calls, or `openStream()` for opening a tag stream. You can + * create multiple API instances in case you want to use multiple tokens (e.g. + * to show data from multiple locations or organizations on a single page). + * + * @example + * ```ts + * // Basic usage + * const api = new MeridianSDK.API({ + * token: "" + * }); + * + * // Multiple APIs at once + * const apiOrg1 = new MeridianSDK.API({ + * token: "Insert Org 1 token here" + * }); + * MeridianSDK.createMap(elementOrg1, { + * api: apiOrg1, + * locationID: "Insert Org 1 location ID here", + * floorID: "Insert Org 1 floor ID here" + * }); + * + * const apiOrg2 = new MeridianSDK.API({ + * token: "Insert Org 2 token here" + * }); + * MeridianSDK.createMap(elementOrg2, { + * api: apiOrg2, + * locationID: "Insert Org 2 location ID here", + * floorID: "Insert Org 2 floor ID here" + * }); + * ``` + */ +export declare class API { + #private; + /** + * Meridian API token. Make sure to create a **READ ONLY** token for security. + * Otherwise anyone using your page could take your token and modify all of + * your Meridian data. + */ + readonly token: string; + /** + * Language code that matches a supported language for this location. + * Note: The LanguageCodes Type includes all possible language codes. See + * "Translations" in Meridian Editor to learn exactly what languages are + * supported for this location. + */ + readonly language: LanguageCodes | undefined; + /** + * Meridian environment (`"production"` or `"eu"`). Defaults to + * `"production"`. + */ + readonly environment: EnvOptions; + /** + * Pass the result to `init()` or `createMap()`. + */ + constructor(options: APIOptions); + /** + * @deprecated + * Use the fetch methods instead + */ + get axios(): AxiosInstance; + /** + * [async] Returns an Object with routes to the destination (endPlacemarkID) + */ + getDirections(options: getDirectionsOptions): Promise>; + /** + * [async] Returns an array of all tags on the specified location and floor + */ + fetchTagsByFloor(locationID: string, floorID: string): Promise; + /** + * [async] Returns an array of all tags at the specified location + */ + fetchTagsByLocation(locationID: string): Promise; + /** + * [async] Returns dynamicly updated data for a specific tag. + */ + fetchTagDetail(mac: string): Promise; + /** + * [async] Returns an array of all placemarks at the specified location + */ + fetchPlacemarksByLocation(locationID: string): Promise; + /** + * [async] Returns an array of all placemarks on the specified location and + * floor + */ + fetchPlacemarksByFloor(locationID: string, floorID: string): Promise; + /** + * [async] Returns an array of all floors at the specified location + */ + fetchFloorsByLocation(locationID: string): Promise; + /** + * [async] Returns the data of specified floor + */ + fetchFloorData(locationID: string, floorID: string): Promise; + /** + * [async] Returns an object URL for the given SVG URL + * + * This object URL can be used as the `src` for an `img` tag. + * + * This method fetches the SVG URL using your API token, since `img` tags + * can't pass API tokens. The SVG URL can be obtained from the `svg_url` + * property on a floor. When you're finished using this URL, you should call + * `URL.revokeObjectURL` with the URL, so the browser can save memory by + * releasing the data. + */ + fetchSVG(svgURL: string): Promise; + /** + * + * @experimental + * [async] Returns an array of results or `null` when a request is cancelled + * or debounced. Cancellation happens when a new request is made before the + * previous request completes. The Debounce wait time is 6ms and the function + * is invoked with the last arguments provided. + * + * Both cancelled and debounced requests will eventually resolve with an array + * of results (possibly empty). + * + * Requests that throw an exception will return an empty array and output a + * warning message to the Web console. + * + * Local/Nearby Search integration. If both refFloorID AND refPoint are + * provided, a second API call will be made and the results will be ordered + * where placemarks closest to the refPoint (x/y) will appear first. + * + * Placemark Search defaults to a single instance per API. This should work + * fine for most use cases, but if you need to make multiple unique search + * calls simultaneously, each will need a unique API instance like shown below. + * ```ts + * // Search Widget One API Instance. + * const apiInstance1 = new MeridianSDK.API({ + * token: "" + * }); + * + * // Search Widget Two API Instance + * const apiInstance2 = new MeridianSDK.API({ + * token: "" + * }); + * ``` + */ + debouncedPlacemarkSearchBeta: (options: placemarkSearchOptions) => Promise[] | null>; + /** + * Opens a tag stream for a given location and floor. `onInitialTags` is + * called with the full list of tags for that floor. + * + * Note: When resourceType is set to "ZONE", `onTagUpdate` is called when + * a tag/resource exits or enters the zone. Otherwise, `onTagUpdate` is + * called every time a tag/resource is updated. + * + * @example + * ```ts + * const api = new MeridianSDK.API({ + * token: token, + * environment: "production" + * }); + * + * const stream = api.openStream({ + * locationID: locationID, + * floorID: floorID, + * onInitialTags: (tags) => { + * console.log("tags", tags); + * }, + * onTagUpdate: (tag) => { + * console.log("update", tag); + * } + * }); + * + * // Tag Zones + * + * const stream = api.openStream({ + * locationID: locationID, + * floorID: floorID, + * resourceIDs: ["1218"], + * resourceType: "ZONE", + * onTagUpdate: (tag) => { + * console.log("update", tag); + * } + * }); + * + * // call `stream.close()` when switching pages to avoid leaving the stream + * // open and wasting bandwidth in the background + * ``` + */ + openStream({ locationID, floorID, resourceIDs, resourceType, onInitialTags, onTagUpdate, onException, onClose, onOpen, }: OpenStreamOptions): Stream; +} +/** + * Environment name used in {@link APIOptions}. If unsure, use `"production"`. + */ +export type EnvOptions = "production" | "staging" | "eu" | "development" | "devCloud"; +/** + * Options passed to {@link createAPI}. + * + * ```js + * const api = new MeridianSDK.API({ + * environment: "production", // or "eu" + * token: "", + * language: "" // optional, defaults to "en" + * }); + * ``` + */ +export interface APIOptions { + environment?: EnvOptions; + token: string; + language?: LanguageCodes; +} +/** + * An open tag stream that can be closed. Returned by {@link API.openStream}. + * + * ```js + * const api = new MeridianSDK.API({ + * // ... + * }); + * + * const stream = api.openStream({ + * // ... + * }); + * + * stream.close(); + * ``` + */ +export interface Stream { + close: () => void; +} +/** Meridian Tag data */ +export interface TagData { + [key: string]: any; + /** Tag MAC address (uppercase, no punctuation) */ + mac: string; +} +/** Meridian Placemark data */ +export interface PlacemarkData { + [key: string]: any; + /** Placemark ID */ + id: string; +} +/** Meridian Floor data */ +export interface FloorData { + [key: string]: any; + /** Floor ID */ + id: string; +} +/** Meridian Location data */ +export interface LocationData { + [key: string]: any; + /** Location ID */ + id: string; +} diff --git a/gcs-files/1.22.7/web-sdk.js b/gcs-files/1.22.7/web-sdk.js new file mode 100644 index 00000000..f9e9aba4 --- /dev/null +++ b/gcs-files/1.22.7/web-sdk.js @@ -0,0 +1,2 @@ +/*! For license information please see web-sdk.js.LICENSE.txt */ +(()=>{var e={323:(e,t,a)=>{var s={"./aed.svg":852,"./amusement_park.svg":1968,"./atm.svg":5150,"./attraction.svg":1541,"./baggage.svg":3412,"./baggage_carts.svg":2096,"./bank.svg":136,"./bar.svg":5861,"./bike.svg":8113,"./bus.svg":7536,"./cafe.svg":2873,"./cafeteria.svg":3884,"./cashier.svg":9005,"./changing_room.svg":8327,"./changing_station.svg":7126,"./charging_station.svg":6906,"./clinic.svg":9138,"./club.svg":1174,"./coat_check.svg":3826,"./conference_room.svg":1606,"./currency_exchange.svg":7501,"./customer_service.svg":5738,"./desk.svg":9477,"./device_charging.svg":2630,"./elevator.svg":4,"./emergency_dept.svg":2053,"./escalator.svg":4266,"./exclusion_area.svg":2890,"./exhibit.svg":1641,"./exit.svg":9458,"./fire_extinguisher.svg":6624,"./first_aid.svg":1535,"./fitness_center.svg":1902,"./fountain.svg":3614,"./gallery.svg":6848,"./gaming.svg":5781,"./garden.svg":1841,"./gate.svg":5995,"./generic.svg":9101,"./global_entry_office.svg":1393,"./handicap.svg":2914,"./information.svg":8208,"./kiosk.svg":6175,"./lab.svg":7903,"./laptop_lounge.svg":4067,"./lost_found.svg":1833,"./lounge.svg":1900,"./mailbox.svg":2086,"./museum.svg":2002,"./nursing_station.svg":1565,"./operating_room.svg":2515,"./outdoor_area.svg":4525,"./paging_phone.svg":9563,"./parking.svg":8854,"./pet_relief.svg":4975,"./pharmacy.svg":593,"./phone.svg":9338,"./play_area.svg":9484,"./printer.svg":7774,"./registration.svg":9333,"./rental_cars.svg":3622,"./restaurant.svg":2311,"./restroom.svg":4965,"./restroom_ada.svg":2804,"./restroom_family.svg":504,"./restroom_men.svg":5584,"./restroom_men_ada.svg":7073,"./restroom_women.svg":8098,"./restroom_women_ada.svg":3303,"./rewards.svg":8850,"./security.svg":9456,"./security_checkpoint.svg":2453,"./shoe_shine.svg":9519,"./shop.svg":5758,"./spa.svg":7244,"./stadium.svg":1915,"./stairs.svg":2208,"./swimming_pool.svg":646,"./taxi.svg":7342,"./theater.svg":2925,"./ticketing.svg":8034,"./tours.svg":3187,"./train.svg":4340,"./training.svg":6740,"./valet.svg":1644,"./vending_machines.svg":4810,"./water_fountain.svg":9922,"./wedding.svg":2994};function o(e){var t=r(e);return a(t)}function r(e){if(!a.o(s,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return s[e]}o.keys=function(){return Object.keys(s)},o.resolve=r,e.exports=o,o.id=323},852:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/aed.svg"},1968:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/amusement_park.svg"},5150:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/atm.svg"},1541:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/attraction.svg"},3412:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/baggage.svg"},2096:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/baggage_carts.svg"},136:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/bank.svg"},5861:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/bar.svg"},8113:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/bike.svg"},7536:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/bus.svg"},2873:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/cafe.svg"},3884:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/cafeteria.svg"},9005:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/cashier.svg"},8327:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/changing_room.svg"},7126:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/changing_station.svg"},6906:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/charging_station.svg"},9138:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/clinic.svg"},1174:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/club.svg"},3826:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/coat_check.svg"},1606:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/conference_room.svg"},7501:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/currency_exchange.svg"},5738:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/customer_service.svg"},9477:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/desk.svg"},2630:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/device_charging.svg"},4:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/elevator.svg"},2053:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/emergency_dept.svg"},4266:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/escalator.svg"},2890:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/exclusion_area.svg"},1641:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/exhibit.svg"},9458:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/exit.svg"},6624:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/fire_extinguisher.svg"},1535:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/first_aid.svg"},1902:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/fitness_center.svg"},3614:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/fountain.svg"},6848:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/gallery.svg"},5781:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/gaming.svg"},1841:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/garden.svg"},5995:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/gate.svg"},9101:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/generic.svg"},1393:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/global_entry_office.svg"},2914:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/handicap.svg"},8208:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/information.svg"},6175:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/kiosk.svg"},7903:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/lab.svg"},4067:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/laptop_lounge.svg"},1833:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/lost_found.svg"},1900:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/lounge.svg"},2086:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/mailbox.svg"},2002:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/museum.svg"},1565:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/nursing_station.svg"},2515:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/operating_room.svg"},4525:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/outdoor_area.svg"},9563:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/paging_phone.svg"},8854:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/parking.svg"},4975:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/pet_relief.svg"},593:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/pharmacy.svg"},9338:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/phone.svg"},9484:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/play_area.svg"},7774:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/printer.svg"},9333:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/registration.svg"},3622:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/rental_cars.svg"},2311:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/restaurant.svg"},4965:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/restroom.svg"},2804:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/restroom_ada.svg"},504:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/restroom_family.svg"},5584:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/restroom_men.svg"},7073:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/restroom_men_ada.svg"},8098:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/restroom_women.svg"},3303:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/restroom_women_ada.svg"},8850:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/rewards.svg"},9456:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/security.svg"},2453:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/security_checkpoint.svg"},9519:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/shoe_shine.svg"},5758:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/shop.svg"},7244:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/spa.svg"},1915:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/stadium.svg"},2208:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/stairs.svg"},646:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/swimming_pool.svg"},7342:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/taxi.svg"},2925:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/theater.svg"},8034:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/ticketing.svg"},3187:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/tours.svg"},4340:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/train.svg"},6740:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/training.svg"},1644:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/valet.svg"},4810:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/vending_machines.svg"},9922:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/water_fountain.svg"},2994:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/placemarks/wedding.svg"},192:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"files/tags/generic.png"},78:function(e,t,a){"use strict";var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=a(5403),r=s(a(5843));t.default=({mapZoomFactor:e,annotations:t})=>(0,o.h)("div",{"data-testid":"meridian--private--annotation-layer"},t.map(((t,a)=>"point"===t.type?(0,o.h)(r.default,Object.assign({key:a},t,{mapZoomFactor:e})):null)))},5843:(e,t,a)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const s=a(5403),o=a(2785),r=a(7746),i=({mapZoomFactor:e,x:t,y:a,size:o=24,backgroundColor:i="hsl(207, 65%, 46%)",backgroundSize:c="cover",backgroundImage:d,title:p,onClick:h,data:u={}})=>(0,s.h)("div",{className:n,style:{"--meridian-annotationPoint-x":`${t}px`,"--meridian-annotationPoint-y":`${a}px`,"--meridian-annotationPoint-scale":1/e,"--meridian-annotationPoint-size":`${o}px`,"--meridian-annotationPoint-backgroundColor":i,"--meridian-annotationPoint-backgroundSize":c,"--meridian-annotationPoint-backgroundImage":d?`url('${d}')`:"none",cursor:h?"pointer":"initial"},onClick:h?()=>(0,r.asyncClientCall)(h,u):void 0,"data-testid":"meridian--private--annotation-point"},p?(0,s.h)("div",{className:l,"data-testid":"meridian--private--annotation-point-title"},p):null),n=(0,o.css)({label:"AnnotationPoint",position:"absolute",top:"var(--meridian-annotationPoint-y)",left:"var(--meridian-annotationPoint-x)",transform:"translate(-50%, -50%) scale(var(--meridian-annotationPoint-scale))",width:"var(--meridian-annotationPoint-size)",height:"var(--meridian-annotationPoint-size)",backgroundColor:"var(--meridian-annotationPoint-backgroundColor)",backgroundImage:"var(--meridian-annotationPoint-backgroundImage)",backgroundSize:"var(--meridian-annotationPoint-backgroundSize)",backgroundRepeat:"no-repeat",backgroundPosition:"center",borderRadius:9999,userSelect:"none"}),l=(0,o.css)(o.mixins.textStrokeWhite,{label:"AnnotationPoint-Label",marginLeft:"50%",position:"absolute",minWidth:55,maxWidth:120,fontSize:14,textAlign:"center",marginTop:"var(--meridian-annotationPoint-size)",paddingTop:4,color:"#222",userSelect:"none",transform:"translate(-50%, 0)",fontWeight:"bold"});i.displayName="AnnotationPoint",t.default=i},2150:function(e,t,a){"use strict";var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=s(a(3669)),r=a(5403),i=s(a(2930)),n=s(a(9594)),l=s(a(8828)),c=s(a(6933)),d=a(2785),p=s(a(7866)),h=a(7746);class u extends r.Component{constructor(){super(...arguments),this.state={searchFilter:"",searchType:this.props.showTags?"tags":"placemarks"},this.searchInputRef=(0,r.createRef)(),this.setRadioFilter=e=>{this.setState({searchType:e})}}componentDidMount(){this.searchInputRef.current&&this.searchInputRef.current.focus()}render(){const{floors:e,tagsLoading:t,placemarksLoading:a,toggleAssetListOverlay:s,showTags:i,showPlacemarks:n,language:d}=this.props,u=p.default.lookup("tags",d),f=p.default.lookup("search_tags",d),v=p.default.lookup("placemarks",d),k=p.default.lookup("search_placemarks",d),{searchFilter:b}=this.state,y=(0,h.createSearchMatcher)(b),_=(0,o.default)(e,(e=>e.id)),C={};for(const t of e)C[t.id]=[t.group_name||h.uiText.unnamedBuilding,h.uiText.enDash,t.name].join(" ");return(0,r.h)(l.default,{position:"right",onCloseClicked:()=>{s({open:!1})}},(0,r.h)(c.default,{placeholder:"tags"===this.state.searchType?f:k,value:b,onChange:e=>{this.setState({searchFilter:e})}}),(0,r.h)("div",{className:w(Boolean(i&&n))},i?(0,r.h)(r.Fragment,null,(0,r.h)("input",{type:"radio",name:"searchType",id:"tags",className:O,checked:"tags"===this.state.searchType,onChange:e=>{e.target.checked&&this.setRadioFilter("tags")}}),(0,r.h)("label",{for:"tags",className:x},u)):null,n?(0,r.h)(r.Fragment,null,(0,r.h)("input",{type:"radio",name:"searchType",id:"placemarks",className:O,checked:"placemarks"===this.state.searchType,onChange:e=>{e.target.checked&&this.setRadioFilter("placemarks")}}),(0,r.h)("label",{for:"placemarks",className:x},v)):null),(()=>"tags"===this.state.searchType?(0,r.h)(m,Object.assign({},this.props,{floorToGroup:C,floorsByID:_,match:y,loading:t})):(0,r.h)(g,Object.assign({},this.props,{floorToGroup:C,floorsByID:_,match:y,loading:a})))())}}function m(e){const{currentFloorID:t,updateMap:a,tagOptions:s={},tags:l,loading:c,onTagClick:u,toggleAssetListOverlay:m,match:g,floorsByID:x,floorToGroup:O,language:w}=e,C=p.default.lookup("no_results_found",w),P=l.filter((e=>{const t=x[e.map_id][0];return!t||t.published})).filter((e=>g(e.name||"")||g(e.mac)||(0,h.getTagLabels)(e).some(g))).filter((e=>!0===s.showControlTags||!e.is_control_tag)).sort(((e,t)=>e.namet.name?1:0)),S=(0,o.default)(P,(e=>O[e.map_id])),D=Object.keys(S).sort();return D.forEach(((e,a)=>{if(S[e][0].map_id===t){const[e]=D.splice(a,1);D.unshift(e)}})),c?(0,r.h)("div",{className:_},(0,r.h)(i.default,null)):0===P.length?(0,r.h)("div",{className:_},C,"."):(0,r.h)("div",{className:v},D.map((e=>(0,r.h)("div",{key:e},(0,r.h)("div",{className:f},e),S[e].map((e=>(0,r.h)("button",{key:e.id,"data-testid":`meridian--private--overlay-tag-${e.id}`,className:k,onClick:()=>{a({floorID:e.map_id,tags:Object.assign(Object.assign({},s),{filter:()=>!0})}),u(e),m({open:!1})}},(0,r.h)("div",{className:b},(0,r.h)("div",{className:y},e.name||e.mac),(0,r.h)(n.default,{align:"right",labels:(0,h.getTagLabels)(e),fontSize:d.theme.fontSizeSmallest})))))))))}function g(e){const{currentFloorID:t,updateMap:a,placemarkOptions:s={},toggleAssetListOverlay:n,floorToGroup:l,match:c,placemarks:d,onPlacemarkClick:h,floorsByID:u,loading:m,language:g}=e,b=p.default.lookup("no_results_found",g),x=d.filter((e=>{const t=u[e.map][0];return!t||t.published})).filter((e=>e.is_searchable||null===e.is_searchable||void 0===e.is_searchable)).filter((e=>"exclusion_area"!==e.type&&(!0===s.showHiddenPlacemarks||!e.hide_on_map))).filter((e=>c(e.name||"")||c(e.type_name||""))).sort(((e,t)=>e.namet.name?1:0)),O=(0,o.default)(x,(e=>l[e.map])),w=Object.keys(O).sort();return w.forEach(((e,a)=>{if(O[e][0].map_id===t){const[e]=w.splice(a,1);w.unshift(e)}})),m?(0,r.h)("div",{className:_},(0,r.h)(i.default,null)):0===x.length?(0,r.h)("div",{className:_},b,"."):(0,r.h)("div",{className:v},w.map((e=>(0,r.h)("div",{key:e},(0,r.h)("div",{className:f},e),O[e].map((e=>(0,r.h)("button",{key:e.id,"data-testid":`meridian--private--overlay-tag-${e.id}`,className:k,onClick:()=>{a({floorID:e.map,placemarks:Object.assign(Object.assign({},s),{filter:()=>!0})}),h(e),n({open:!1})}},(0,r.h)("div",{className:y},e.name||e.type_name))))))))}const f=(0,d.css)({label:"overlay-building-name",top:0,position:"sticky",textTransform:"uppercase",fontWeight:"bold",color:d.theme.brandBlue,background:d.theme.almostWhite,fontSize:d.theme.fontSizeSmaller,padding:10}),v=(0,d.css)({label:"asset-list",overflowY:"auto",flex:"1 1 auto"}),k=(0,d.css)(d.mixins.buttonReset,d.mixins.focusRingMenuItem,d.mixins.buttonHoverActive,{label:"overlay-asset-button",minHeight:56,padding:10,paddingLeft:20,display:"block",width:"100%",textAlign:"left"}),b=(0,d.css)(d.mixins.flexRow,{label:"overlay-asset-button-inner",alignItems:"center"}),y=(0,d.css)({label:"overlay-asset-button-name",flex:"1 1 auto"}),_=(0,d.css)({label:"overlay-asset-list-empty",padding:"60px 20px",textAlign:"center",fontSize:d.theme.fontSizeBigger,color:d.theme.textColorBluish}),x=(0,d.css)({label:"overlay-radio-label",color:"white",padding:"2px 10px 0px 4px"}),O=(0,d.css)({label:"overlay-radio-button",WebkitAppearance:"none",position:"relative",boxSizing:"border-box",border:"1px solid rgb(224,224,225)",width:16,height:16,background:"white",borderRadius:9999,cursor:"pointer",boxShadow:"inset 0 2px 2px rgba(0, 0, 0, 0.1)","&:focus":{outline:"none",borderColor:d.theme.searchBarColor,borderWidth:2},"&:checked":{"--circle-color":d.theme.searchBarColor,"--circle-gap":"4px"},"&:checked::after":{content:'" "',position:"absolute",width:"calc(100% - var(--circle-gap))",height:"calc(100% - var(--circle-gap))",left:"calc(var(--circle-gap) / 2)",top:"calc(var(--circle-gap) / 2)",background:"var(--circle-color)",borderRadius:9999},"&:checked:focus":{"--circle-gap":"4px","--circle-color":d.theme.searchBarColor,borderColor:d.theme.searchBarColor,borderWidth:2}}),w=e=>(0,d.css)({label:"overlay-radio-container",display:e?"flex":"none",flexDirection:"row",justifyContent:"baseline",paddingLeft:10,paddingBottom:10,backgroundColor:"rgb(105, 146, 176)",alignItems:"center"});t.default=u},324:function(e,t,a){"use strict";var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=a(5403),r=s(a(9594)),i=s(a(8828)),n=a(2785),l=a(7746),c=a(4221),d=(0,n.css)({label:"overlay-image",width:"100%",backgroundColor:"white",backgroundPosition:"center",backgroundRepeat:"no-repeat",backgroundSize:"cover"}),p=(0,n.css)({label:"overlay-name",fontSize:22}),h=(0,n.css)({label:"overlay-content",padding:"0 20px 15px 20px",overflow:"auto"}),u=(0,n.css)({label:"overlay-tag-data",fontSize:14}),m=(0,n.css)({label:"overlay-placemark-data",fontSize:14});t.default=({kind:e,item:t,toggleDetailsOverlay:a})=>{const s="placemark"===e&&t.image_url?{backgroundImage:`url('${t.image_url}')`,backgroundSize:"contain",height:300,minHeight:220}:"placemark"===e?{backgroundSize:"contain",backgroundImage:`url('${(0,c.placemarkIconURL)(t.type)}')`,backgroundColor:`#${t.color}`,height:300,minHeight:220}:"tag"===e&&t.image_url?{backgroundImage:`url('${t.image_url}')`,height:300}:{background:n.theme.brandBrightBlue,height:300};return(0,o.h)(i.default,{position:"left",onCloseClicked:()=>{a({open:!1})}},(0,o.h)("div",{className:d,style:s}),(0,o.h)("div",{className:(0,n.cx)("meridian-overlay-content",h)},(0,o.h)("p",{className:(0,n.cx)("meridian-overlay-item-name",p)},t.name||t.type_name),"tag"===e?(0,o.h)("div",{className:(0,n.cx)("meridian-overlay-tag-data",u)},(0,o.h)(r.default,{align:"left",labels:(0,l.getTagLabels)(t),fontSize:n.theme.fontSize}),(0,o.h)("p",null,"MAC: ",t.mac)):(0,o.h)("div",{className:(0,n.cx)("meridian-overlay-placemark-description",m),dangerouslySetInnerHTML:function(){if("placemark"===e&&t.description)return{__html:t.description}}()})))}},8812:function(e,t,a){"use strict";var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=a(5403),r=s(a(4145)),i=a(2785),n=(0,i.css)(i.mixins.rounded,{label:"error",position:"absolute",zIndex:4,top:"35%",left:0,right:0,margin:"0 auto",minWidth:300,maxWidth:420,border:"1px solid #dfe1ef",paddingTop:15,paddingRight:20,paddingBottom:15,paddingLeft:25,background:i.theme.white,boxShadow:"0 0 1px rgba(0, 0, 0, 0.15), inset 4px 0 0 #d82e1f"}),l=(0,i.css)(i.mixins.buttonReset,{label:"close",cursor:"pointer",float:"right",width:38,height:38,marginLeft:15,padding:4,fill:"#c3c5c8","&:hover":{fill:i.theme.textColorBluish,cursor:"pointer"},"&:focus":{outline:0}});t.default=({toggleErrorOverlay:e,messages:t=["Unknown"]})=>(0,o.h)("div",{className:n},(0,o.h)("button",{className:l,onClick:()=>{e({open:!1})}},(0,o.h)(r.default,null)),(0,o.h)("p",null,"Sorry, something went wrong. It might be related to:"),(0,o.h)("ul",null,t.map(((e,t)=>(0,o.h)("li",{key:t},e)))))},3169:(e,t,a)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const s=a(5403),o=a(2785),r=(0,o.css)({label:"floor-and-tag-controls",display:"flex",flexDirection:"column",position:"absolute",zIndex:1,right:15,top:15}),i=(0,o.css)(o.mixins.buttonReset,o.mixins.shadow,o.mixins.rounded,o.mixins.buttonHoverActive,o.mixins.focusRing,{label:"control",cursor:"pointer",background:"white",padding:4,width:40,height:40,border:0,fontSize:20,fontWeight:200,fill:o.theme.brandBrightBlue}),n=(0,o.css)(i,{marginTop:10});t.default=({toggleFloorOverlay:e,toggleAssetListOverlay:t,showFloors:a,showSearch:l})=>(0,s.h)("div",{className:r},l?(0,s.h)("button",{className:(0,o.cx)("meridian-tag-control",i),"data-testid":"meridian--private--tag-control",onClick:()=>{t({open:!0})}},(0,s.h)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 36 36"},(0,s.h)("path",{d:"M26.19 25l-4.12-4.12a7.29 7.29 0 001.44-4.35 7.11 7.11 0 00-7-7.2 7.11 7.11 0 00-7 7.2 7.11 7.11 0 007 7.2 6.83 6.83 0 004.16-1.42l4.1 4.1A1 1 0 0026.19 25zm-14.68-8.49a5.11 5.11 0 015-5.2 5.11 5.11 0 015 5.2 5.11 5.11 0 01-5 5.2 5.11 5.11 0 01-5-5.2z"}))):null,a?(0,s.h)("button",{className:(0,o.cx)("meridian-floor-control",a&&l?n:i),"data-testid":"meridian--private--floor-control",onClick:()=>{e({open:!0})}},(0,s.h)("svg",{viewBox:"0 0 36 36"},(0,s.h)("path",{d:"M28.4 14.09a1.84 1.84 0 0 0-.62-.39l-8.48-3.33a3.61 3.61 0 0 0-1.3-.22 3.56 3.56 0 0 0-1.3.22L8.22 13.7a1.83 1.83 0 0 0-.62.39 1.24 1.24 0 0 0 0 1.82 1.85 1.85 0 0 0 .62.39l8.48 3.34a3.92 3.92 0 0 0 2.59 0l8.48-3.34a1.86 1.86 0 0 0 .62-.39 1.24 1.24 0 0 0 0-1.82m-9.83 3.68a2 2 0 0 1-1.13 0l-7-2.77 7-2.77a2 2 0 0 1 1.13 0l7 2.77zm9.83 2.32a1.24 1.24 0 0 1 0 1.82 1.86 1.86 0 0 1-.62.39l-8.47 3.33a3.92 3.92 0 0 1-2.59 0L8.22 22.3a1.85 1.85 0 0 1-.62-.39 1.24 1.24 0 0 1 0-1.82 1.83 1.83 0 0 1 .62-.39L10 19l2.73 1.08-2.34.92 7 2.77a2 2 0 0 0 1.13 0l7-2.77-2.35-.92L26 19l1.79.7a1.84 1.84 0 0 1 .62.39"}))):null)},6670:(e,t,a)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const s=a(5403),o=a(2785),r=a(7746),i=(0,o.css)(o.mixins.buttonReset,o.mixins.rounded,o.mixins.overflowEllipses,{label:"floor-control",background:"rgba(0, 0, 0, 0.4)",color:"white",textShadow:"0 0 2px black",position:"absolute",zIndex:1,bottom:15,left:"50%",transform:"translate(-50%, 0)",textAlign:"center",maxWidth:300,padding:"8px 16px",border:0,fontSize:16});t.default=({buildingName:e,floorName:t})=>(0,s.h)("div",{className:(0,o.cx)("meridian-floor-label",i),"data-testid":"meridian--private--floor-label"},e||r.uiText.unnamedBuilding," ",r.uiText.enDash," ",t)},4144:function(e,t,a){"use strict";var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=s(a(3669)),r=a(5403),i=s(a(8828)),n=s(a(6933)),l=a(2785),c=s(a(7866)),d=a(7746);class p extends r.Component{constructor(){super(...arguments),this.state={searchFilter:""},this.searchInputRef=(0,r.createRef)()}componentDidMount(){this.searchInputRef.current&&this.searchInputRef.current.focus()}render(){const{currentFloorID:e,toggleFloorOverlay:t,selectFloorByID:a,floors:s,language:p}=this.props,k=c.default.lookup("search_floors",p),b=c.default.lookup("no_results_found",p),{searchFilter:y}=this.state,_=(0,d.createSearchMatcher)(y),x=s.filter((e=>e.published&&(_(e.name||"")||_(e.group_name||d.uiText.unnamedBuilding)))),O=(0,o.default)(x,"group_name"),w=Object.keys(O).sort();""===w[0]&&(w.push(w[0]),w.shift());for(const e of w)O[e].sort(((e,t)=>Math.sign(e.level-t.level))),this.props.sortDescending&&O[e].reverse();return(0,r.h)(i.default,{position:"right",onCloseClicked:()=>{t({open:!1})}},(0,r.h)(n.default,{placeholder:k,value:y,onChange:e=>{this.setState({searchFilter:e})}}),0===w.length?(0,r.h)("div",{className:g},b,"."):(0,r.h)("div",{className:u,"data-testid":"meridian--private--floors-list"},w.map((s=>(0,r.h)("div",{key:s},(0,r.h)("div",{className:h},s||d.uiText.unnamedBuilding),O[s].map((s=>(0,r.h)("button",{key:s.name,onClick:()=>{a(s.id),t({open:!1})},className:(0,l.cx)(m,s.id===e?f:void 0),"data-testid":s.id===e?"meridian--private--current-floor":"meridian--private--floor"},s.name,s.id===e?(0,r.h)("svg",{viewBox:"0 0 10 7",className:v},(0,r.h)("path",{d:"M3.9 7C3.7 7 3.4 6.9 3.2 6.7L0.3 3.8C-0.1 3.4 -0.1 2.8 0.3 2.4C0.7 2 1.3 2 1.7 2.4L3.9 4.6L8.2 0.3C8.6 -0.1 9.2 -0.1 9.6 0.3C10 0.7 10 1.3 9.6 1.7L4.6 6.7C4.4 6.9 4.2 7 3.9 7Z"})):null))))))))}}const h=(0,l.css)({label:"overlay-building-name",textTransform:"uppercase",fontWeight:"bold",top:0,position:"sticky",color:l.theme.brandBlue,background:l.theme.almostWhite,fontSize:l.theme.fontSizeSmaller,padding:10}),u=(0,l.css)({label:"floors-list",overflowY:"auto"}),m=(0,l.css)(l.mixins.buttonReset,l.mixins.focusRingMenuItem,l.mixins.buttonHoverActive,{label:"overlay-floor-button",padding:10,paddingLeft:20,display:"block",width:"100%",textAlign:"left"}),g=(0,l.css)({label:"overlay-floor-list-empty",padding:"60px 20px",textAlign:"center",fontSize:l.theme.fontSizeBigger,color:l.theme.textColorBluish}),f=(0,l.css)({label:"overlay-floor-button-curent-floor",color:l.theme.brandBrightBlue,fill:"currentcolor"}),v=(0,l.css)({label:"floor-checkmark",verticalAlign:"middle",marginLeft:"0.5em",width:"0.8em",height:"0.8em"});t.default=p},4145:(e,t,a)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const s=a(5403);t.default=()=>(0,s.h)("svg",{viewBox:"0 0 36 36"},(0,s.h)("path",{d:"M19.41 18l6.36-6.36a1 1 0 0 0-1.41-1.41L18 16.59l-6.36-6.36a1 1 0 0 0-1.41 1.41L16.59 18l-6.36 6.36a1 1 0 1 0 1.41 1.41L18 19.41l6.36 6.36a1 1 0 0 0 1.41-1.41z"}))},2930:(e,t,a)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const s=a(5403),o=a(2785),r=(0,o.keyframes)({from:{transform:"rotate(0turn)"},to:{transform:"rotate(1turn)"}}),i=(0,o.css)({label:"spinner",width:22,height:22,margin:"0 auto",border:"2px rgba(227, 227, 227, 0.9) solid",borderTop:"2px #2e7cbe solid",borderRadius:"50%",animation:`${r} 600ms infinite linear`});t.default=()=>(0,s.h)("div",{className:i})},9594:(e,t,a)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const s=a(5403),o=a(2785),r=(0,o.css)({label:"label-list",fontSize:"var(--meridian-labelList-fontSize)",marginTop:8,marginLeft:3,textAlign:"var(--meridian-labelList-textAlign)",flex:"1 1 auto"}),i=(0,o.css)(o.mixins.maxRounded,{label:"label",display:"inline-block",padding:"3px 8px",marginBottom:8,marginRight:8,background:"rgba(0, 0, 0, 0.035)",border:"1px solid rgba(0, 0, 0, 0.05)",color:"#3b3b3b"});t.default=({align:e,labels:t,fontSize:a=o.theme.fontSize})=>0===t.length?null:(0,s.h)("div",{className:r,style:{"--meridian-labelList-fontSize":a,"--meridian-labelList-textAlign":e}},t.map(((e,t)=>(0,s.h)("div",{key:t,className:i},e))))},4905:function(e,t,a){"use strict";var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=a(5403),r=a(2785),i=s(a(2930)),n=(0,r.css)({label:"loading",position:"absolute",zIndex:1,width:30,left:0,top:"45%",right:0,overflow:"hidden",margin:"0 auto",color:r.theme.textColor,textAlign:"center",pointerEvents:"none"});t.default=()=>(0,o.h)("div",{className:n},(0,o.h)(i.default,null))},529:function(e,t,a){"use strict";var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=a(4870);a(3755);const r=a(5491),i=a(5403),n=s(a(78)),l=s(a(324)),c=s(a(8812)),d=s(a(3169)),p=s(a(6670)),h=s(a(4144)),u=s(a(4905)),m=s(a(6805)),g=s(a(7387)),f=a(2785),v=s(a(8901)),k=s(a(2150)),b=a(7746),y=s(a(5481)),_=s(a(9862));class x extends i.Component{constructor(){super(...arguments),this.state={mapImageURL:void 0,isFloorOverlayOpen:!1,isAssetListOverlayOpen:!1,isMapMarkerOverlayOpen:!1,isErrorOverlayOpen:!1,isPanningOrZooming:!1,loadingSources:{},errors:[],mapTransform:"",mapZoomFactor:.5,floors:[],allPlacemarkData:[],svgURL:void 0,tagsConnection:void 0,tagsStatus:"Connecting",selectedItem:void 0,areTagsLoading:Boolean(this.props.showSearchControl&&this.props.loadTags),arePlacemarksLoading:Boolean(this.props.showSearchControl&&this.props.loadPlacemarks),allTagData:[]},this.isMounted=!1,this.isLoaded=!1,this.fetchAllTagsInitialized=!1,this.fetchAllPlacemarksInitialized=!1,this.mapRef=(0,i.createRef)(),this.mapContainerRef=(0,i.createRef)(),this.mapImageref=(0,i.createRef)(),this.debouncedResizeFn=(0,_.default)(this.handleResize.bind(this),250),this.onTagsInit=()=>{this.props.showSearchControl&&this.props.loadTags&&this.fetchAllTags()},this.onPlacemarksInit=()=>{this.props.showSearchControl&&this.props.loadPlacemarks&&this.fetchAllPlacemarks()},this.updateMap=e=>{const{update:t}=this.props;t(e)},this.toggleAssetListOverlay=({open:e})=>{this.isMounted&&this.setState({isAssetListOverlayOpen:e})},this.toggleFloorOverlay=({open:e})=>{this.isMounted&&this.setState({isFloorOverlayOpen:e})},this.toggleErrorOverlay=({open:e,message:t="Unknown"})=>{this.isMounted&&(e?this.setState((e=>({errors:[...e.errors,t],isErrorOverlayOpen:!0}))):this.setState({isErrorOverlayOpen:!1,errors:[]}))},this.toggleLoadingSpinner=({show:e,source:t="unknown"})=>{this.isMounted&&this.setState((a=>({loadingSources:Object.assign(Object.assign({},a.loadingSources),{[t]:e})})))},this.toggleDetailsOverlay=({open:e,selectedItem:t})=>{this.setState({isMapMarkerOverlayOpen:e,selectedItem:t})},this.selectFloorByID=e=>{if(this.updateMap({floorID:e,annotations:[],overlays:[]}),this.props.onFloorChange){const t=this.state.floors.find((t=>t.id===e));t&&(0,b.asyncClientCall)(this.props.onFloorChange,t)}},this.zoomToPoint=(e,t,a)=>{if(!this.mapSelection)throw new Error("mapSelection is not defined");if(!this.zoomD3)throw new Error("zoomD3 is not defined");const{width:s,height:o}=this.getMapRefSize(),i=r.zoomIdentity.translate(-a*e+s/2,-a*t+o/2).scale(a);this.mapSelection.transition().duration(250).call(this.zoomD3.transform,i)},this.zoomBy=e=>{if(!this.mapSelection)throw new Error("mapSelection is not defined");if(!this.zoomD3)throw new Error("zoomD3 is not defined");this.mapSelection.transition().duration(250).call(this.zoomD3.scaleBy,e)},this.zoomIn=()=>{this.zoomBy(1.5)},this.zoomOut=()=>{this.zoomBy(.5)},this.onClick=e=>{var t,a,s;const o=e.target instanceof Element&&((null===(a=null===(t=this.mapRef.current)||void 0===t?void 0:t.isEqualNode)||void 0===a?void 0:a.call(t,e.target))||(null===(s=this.mapImageref.current)||void 0===s?void 0:s.isEqualNode(e.target)));this.props.onMapClick&&o?(0,b.asyncClientCall)(this.props.onMapClick):o&&this.toggleDetailsOverlay({open:!1})},this.onTagClick=async e=>{let t=!0;const{onTagClick:a=(()=>{})}=this.props;try{const s={preventDefault:()=>{t=!1}};await a(e,s)}catch(e){(0,b.logError)(e)}t&&this.toggleDetailsOverlay({open:!0,selectedItem:e})},this.onPlacemarkClick=async e=>{let t=!0;const{onPlacemarkClick:a=(()=>{})}=this.props;try{const s={preventDefault:()=>{t=!1}};await a(e,s)}catch(e){(0,b.logError)(e)}t&&this.toggleDetailsOverlay({open:!0,selectedItem:e})}}componentDidMount(){this.validateFloorID(),this.isMounted=!0;const{api:e,locationID:t}=this.props;(0,b.isEnvOptions)(e.environment)?t?this.loadData():this.toggleErrorOverlay({open:!0,message:'createMap error: "options.locationID" is required'}):this.toggleErrorOverlay({open:!0,message:`API error: "${e.environment}" is not a valid environment`}),this.intervalAutoDestroy=setInterval((()=>{this.isMounted&&this.mapContainerRef.current&&!this.mapContainerRef.current.isConnected&&this.props.destroy()}),1e3),window.addEventListener("resize",this.debouncedResizeFn)}async loadData(){await this.initializeFloors()}componentDidUpdate(e){if(this.props.locationID!==e.locationID)return this.toggleAssetListOverlay({open:!1}),this.toggleErrorOverlay({open:!1}),this.toggleDetailsOverlay({open:!1}),this.toggleFloorOverlay({open:!1}),this.zoomToDefault(),this.freeMapImageURL(),this.setState({mapImageURL:void 0,allPlacemarkData:[]}),void this.loadData();this.props.loadTags&&this.props.showSearchControl&&!e.showSearchControl&&this.fetchAllTags({forceUpdate:!0}),e.floorID!==this.props.floorID?(this.zoomToDefault(),this.validateFloorID(),this.freeMapImageURL(),this.setState({mapImageURL:void 0}),this.fetchMapImageURL()):this.props.loadPlacemarks&&this.props.showSearchControl&&!e.showSearchControl&&this.fetchAllPlacemarks({forceUpdate:!0})}componentWillUnmount(){this.isMounted=!1,this.fetchAllTagsTimeout&&clearTimeout(this.fetchAllTagsTimeout),this.fetchAllPlacemarksTimeout&&clearTimeout(this.fetchAllPlacemarksTimeout),this.freeMapImageURL(),clearInterval(this.intervalAutoDestroy),window.removeEventListener("resize",this.debouncedResizeFn)}handleResize(){const e=this.mapContainerSize,t=this.getMapRefSize(),{width:a,height:s}=e||{},{width:o,height:r}=t;a===o&&s===r||(this.mapContainerSize=t,this.zoomToDefault())}freeMapImageURL(){this.state.mapImageURL&&URL.revokeObjectURL(this.state.mapImageURL)}async fetchMapImageURL(){const{api:e,locationID:t,floorID:a}=this.props,s=this.getMapData();if(!s)return;const o=await e.fetchSVG(s.svg_url);this.isMounted&&(a===this.props.floorID&&t===this.props.locationID?this.setState({mapImageURL:o}):URL.revokeObjectURL(o))}validateFloorID(){const{floorID:e}=this.props;e||this.toggleErrorOverlay({open:!0,message:'createMap error: "options.floorID" is required'})}fetchAllTags(e={forceUpdate:!1}){if(this.fetchAllTagsInitialized&&!e.forceUpdate)return;const t=async()=>{this.fetchAllTagsInitialized=!0;try{this.fetchAllTagsTimeout&&clearTimeout(this.fetchAllTagsTimeout);const{api:e,locationID:a}=this.props;this.setState({areTagsLoading:!0});let s=[];try{s=await e.fetchTagsByLocation(a)}catch(e){return void(0,b.logError)("Failed to load tags; use `loadTags: false` if this location does not have the tags paid feature")}if(!this.isMounted)return;if(a!==this.props.locationID||!this.props.loadTags)return;this.setState({allTagData:s}),this.fetchAllTagsTimeout=setTimeout(t,3e5)}finally{this.setState({areTagsLoading:!1})}};this.props.loadTags&&t()}showLoadingSpinner(){const{loadingSources:e}=this.state,t=Object.keys(e).some((t=>!0===e[t]));return this.props.onLoadingStateChange&&this.isLoaded!==t&&(this.isLoaded=t,(0,b.asyncClientCall)(this.props.onLoadingStateChange,t)),t}fetchAllPlacemarks(e={forceUpdate:!1}){if(this.fetchAllPlacemarksInitialized&&!e.forceUpdate)return;const t=async()=>{this.fetchAllPlacemarksInitialized=!0;try{this.fetchAllPlacemarksTimeout&&clearTimeout(this.fetchAllPlacemarksTimeout);const{locationID:e,api:a}=this.props;let s=[];this.setState({arePlacemarksLoading:!0});try{if(this.props.loadPlacemarks&&(s=await a.fetchPlacemarksByLocation(e)),!this.isMounted)return;this.setState({allPlacemarkData:s})}catch(e){return void(0,b.logError)("Failed to load placemark data")}this.fetchAllPlacemarksTimeout=setTimeout(t,6e5)}finally{this.setState({arePlacemarksLoading:!1})}};this.props.loadPlacemarks&&t()}async getFloors(){const{locationID:e,api:t}=this.props;let a;try{if(a=await t.fetchFloorsByLocation(e),!this.isMounted)return[]}catch(e){e.response&&e.response.data&&e.response.data.detail&&this.toggleErrorOverlay({open:!0,message:e.response.data.detail})}return a&&a.length||this.toggleErrorOverlay({open:!0,message:"Floor data could not be found."}),a}getMapData(){const{floorID:e}=this.props,{floors:t}=this.state;return t.find((t=>t.id===e))}async initializeFloors(){this.toggleLoadingSpinner({show:!0,source:"map"});const{onFloorsUpdate:e=(()=>{}),locationID:t}=this.props,a=await this.getFloors();this.isMounted&&t===this.props.locationID&&(a&&a.length>0&&this.setState({floors:a},(()=>{this.zoomD3||this.addZoomBehavior(),this.zoomToDefault(),(0,b.asyncClientCall)(e,a),this.fetchMapImageURL()})),this.toggleLoadingSpinner({show:!1,source:"map"}))}addZoomBehavior(){if(this.mapRef.current){const e=()=>{if(!this.mapRef.current)return;const{k:e,x:t,y:a}=(0,r.zoomTransform)(this.mapRef.current),s=`translate(${t}px, ${a}px) scale(${e})`;this.setState({mapTransform:s,mapZoomFactor:e,isPanningOrZooming:!0})},t=()=>{this.setState({isPanningOrZooming:!1})};this.zoomD3=(0,r.zoom)().filter((e=>!this.props.shouldMapPanZoom||this.props.shouldMapPanZoom(e))).duration(250).on("zoom",e).on("end.zoom",t),this.mapSelection=(0,o.select)(this.mapRef.current),this.mapSelection.call(this.zoomD3)}}resetExtents(){var e;null===(e=this.zoomD3)||void 0===e||e.scaleExtent([0,1/0]).translateExtent([[-1/0,-1/0],[1/0,1/0]])}setExtents(e,t){var a;const s=this.props.minZoomLevel,o=this.props.maxZoomLevel;if(this.mapRef.current){const{k:i}=(0,r.zoomTransform)(this.mapRef.current),n=this.getMapRefSize(),l=n.width/i/1.5,c=n.height/i/1.5,d=s&&"number"==typeof s?s:i,p=o&&"number"==typeof o?o:8;null===(a=this.zoomD3)||void 0===a||a.scaleExtent([d,p]).translateExtent([[-l,-c],[e+l,t+c]])}}zoomToDefault(){const e=this.getMapData(),t=this.getMapRefSize(),a=null==e?void 0:e.width,s=null==e?void 0:e.height;this.mapContainerSize=t,a&&s&&this.mapSelection&&this.zoomD3&&(this.resetExtents(),this.mapSelection.call(this.zoomD3.translateTo,a/2,s/2),this.mapSelection.call(this.zoomD3.scaleTo,Math.min(.7*t.width/a,.7*t.height/s)),this.setExtents(a,s))}getMapRefSize(){if(!this.mapRef.current)throw new Error("mapRef is not defined");return{width:this.mapRef.current.clientWidth,height:this.mapRef.current.clientHeight}}centerMap(){const e=this.getMapData(),t=null==e?void 0:e.width,a=null==e?void 0:e.height;t&&a&&this.mapSelection&&this.zoomD3&&this.mapSelection.call(this.zoomD3.translateTo,t/2,a/2)}shouldShowFloors(){const{showFloorsControl:e=!0}=this.props,{floors:t}=this.state;return e&&t.length>1}renderFloorLabel(){const e=this.getMapData();return e?(0,i.h)(p.default,{buildingName:e.group_name,floorName:e.name}):null}renderFloorOverlay(){const{floorID:e,api:t}=this.props,{isFloorOverlayOpen:a,floors:s}=this.state;return a?(0,i.h)(h.default,{currentFloorID:e,floors:s,sortDescending:Boolean(this.props.floorsControlSortDescending),toggleFloorOverlay:this.toggleFloorOverlay,selectFloorByID:this.selectFloorByID,language:t.language}):null}renderAssetListOverlay(){var e;const{floorID:t,loadTags:a,loadPlacemarks:s,tags:o,placemarks:r,api:n}=this.props,{isAssetListOverlayOpen:l,floors:c,allTagData:d,areTagsLoading:p,arePlacemarksLoading:h,allPlacemarkData:u}=this.state;return l&&Boolean(s||a)?(0,i.h)(k.default,{onTagClick:this.onTagClick,onPlacemarkClick:this.onPlacemarkClick,showControlTags:Boolean(null!==(e=null==o?void 0:o.showControlTags)&&void 0!==e&&e),floors:c,tagsLoading:p,placemarksLoading:h,tags:d,tagOptions:o,placemarkOptions:r,updateMap:this.updateMap,currentFloorID:t,toggleAssetListOverlay:this.toggleAssetListOverlay,showTags:Boolean(a),showPlacemarks:Boolean(s),placemarks:u,language:n.language}):null}renderDetailsOverlay(){const{isMapMarkerOverlayOpen:e,selectedItem:t}=this.state;return e&&t?(0,i.h)(l.default,{toggleDetailsOverlay:this.toggleDetailsOverlay,kind:"mac"in t?"tag":"placemark",item:t}):null}renderLoadingSpinner(){return this.showLoadingSpinner()?(0,i.h)(u.default,null):null}renderErrorOverlay(){return this.state.isErrorOverlayOpen?(0,i.h)(c.default,{toggleErrorOverlay:this.toggleErrorOverlay,messages:this.state.errors}):null}render(){const e=this.getMapData(),{mapImageURL:t,selectedItem:a,mapTransform:s,mapZoomFactor:o,isPanningOrZooming:r,errors:l}=this.state,{locationID:c,floorID:p,api:h,tags:u,placemarks:k,overlays:b=[],annotations:_=[],width:x="",height:C="",onTagsUpdate:P,onPlacemarksUpdate:S,showSearchControl:D,loadPlacemarks:I,loadTags:M}=this.props;return(0,i.h)("div",{className:(0,f.cx)("meridian-map-container",O),style:{width:x,height:C},"data-testid":"meridian--private--map-container",ref:e=>{this.mapContainerRef.current=e}},(0,i.h)(y.default,{onZoomIn:this.zoomIn,onZoomOut:this.zoomOut}),this.renderErrorOverlay(),this.renderDetailsOverlay(),this.renderFloorOverlay(),this.renderAssetListOverlay(),this.renderLoadingSpinner(),(0,i.h)(d.default,{showFloors:this.shouldShowFloors(),showSearch:Boolean(D&&(I||M)),toggleFloorOverlay:this.toggleFloorOverlay,toggleAssetListOverlay:this.toggleAssetListOverlay}),this.renderFloorLabel(),(0,i.h)("div",{ref:e=>{this.mapRef.current=e},className:(0,f.cx)("meridian-map-background",w),onClick:this.onClick,style:{width:x,height:C}},(0,i.h)("div",{style:{position:"relative",width:0,height:0,transform:s,transformOrigin:"0 0 0"}},(0,i.h)("img",{src:t,ref:this.mapImageref}),0===l.length&&e?(0,i.h)(i.Fragment,null,(0,i.h)(m.default,{mapZoomFactor:o,overlays:b}),this.props.loadPlacemarks?(0,i.h)(g.default,{selectedItem:a,isPanningOrZooming:r,mapZoomFactor:o,locationID:c,floorID:p,api:h,placemarkOptions:k,onPlacemarkClick:this.onPlacemarkClick,onUpdate:S,toggleLoadingSpinner:this.toggleLoadingSpinner,onInit:()=>{this.onPlacemarksInit()}}):null,this.props.loadTags?(0,i.h)(v.default,{selectedItem:a,isPanningOrZooming:r,mapZoomFactor:o,locationID:c,floorID:p,api:h,tagOptions:u,onTagClick:this.onTagClick,onUpdate:P,toggleLoadingSpinner:this.toggleLoadingSpinner,onInit:()=>{this.onTagsInit()}}):null,(0,i.h)(n.default,{mapZoomFactor:o,annotations:_})):null)))}}x.defaultProps={loadTags:!0,loadPlacemarks:!0,showSearchControl:!0,showFloorsControl:!0,floorsControlSortDescending:!1,shouldMapPanZoom:()=>!0,width:"100%",height:"400px",placemarks:{},tags:{},overlays:[],annotations:[],onTagsUpdate:()=>{},onFloorChange:()=>{},onLoadingStateChange:()=>{},onFloorsUpdate:()=>{}};const O=(0,f.css)({label:"map-container",display:"block",position:"relative",borderRadius:"inherit",background:"#fafafa",color:"#000",fontFamily:"inherit",textAlign:"left"}),w=(0,f.css)({label:"map-outer",borderRadius:"inherit",display:"block",overflow:"hidden"});t.default=x},8828:function(e,t,a){"use strict";var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=a(5403),r=s(a(4145)),i=a(2785),n=(0,i.css)(i.mixins.shadow,i.mixins.rounded,{label:"details-overlay",overflow:"hidden",display:"flex",flexDirection:"column",background:i.theme.white,color:i.theme.textColor,fill:"#000",position:"absolute",margin:0,left:15,top:15,right:15,maxHeight:600,zIndex:2,maxWidth:400}),l=(0,i.css)(n,{marginRight:"auto"}),c=(0,i.css)(n,{marginLeft:"auto"}),d=(0,i.css)(i.mixins.buttonReset,i.mixins.buttonHoverActive,i.mixins.focusRing,{label:"details-overlay-close",cursor:"pointer",position:"absolute",zIndex:2,top:10,right:10,padding:4,width:32,height:32,fontSize:11,textAlign:"center",background:i.theme.white,color:i.theme.textColor,borderRadius:"100%",fontWeight:"bold",boxShadow:"0 0 2px rgba(0, 0, 0, 0.4)"});t.default=({position:e,onCloseClicked:t,children:a})=>(0,o.h)("div",{className:(0,i.cx)("meridian-details-overlay","left"===e?l:c),"data-testid":"meridian--private--map-overlay"},(0,o.h)("button",{className:d,onClick:t,"data-testid":"meridian--private--close-overlay"},(0,o.h)(r.default,null)),a)},7096:function(e,t,a){"use strict";var s=this&&this.__rest||function(e,t){var a={};for(var s in e)Object.prototype.hasOwnProperty.call(e,s)&&t.indexOf(s)<0&&(a[s]=e[s]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(s=Object.getOwnPropertySymbols(e);o{var{defs:t=!1,id:a,className:i,style:n={},cx:l,cy:c,r:d,pathLength:p,fill:h="black",fillOpacity:u="1",stroke:m="none",strokeWidth:g=4,strokeLineJoin:f,strokeLineCap:v,strokeDasharray:k,strokeDashoffset:b,strokeOpacity:y,animate:_={},animateMotion:x={},mpath:O,data:w={},onClick:C,mapZoomFactor:P}=e,S=s(e,["defs","id","className","style","cx","cy","r","pathLength","fill","fillOpacity","stroke","strokeWidth","strokeLineJoin","strokeLineCap","strokeDasharray","strokeDashoffset","strokeOpacity","animate","animateMotion","mpath","data","onClick","mapZoomFactor"]);const D=1/P;let I=null,M=null;const T=Object.assign({transform:`scale(${D})`},n);Object.keys(x).length&&(M=O?(0,o.h)("animateMotion",Object.assign({},x),(0,o.h)("mpath",{xlinkHref:`#${O}`})):(0,o.h)("animateMotion",Object.assign({},x))),Object.keys(_).length&&(I=(0,o.h)("animate",Object.assign({},_)));const L=(0,o.h)("circle",Object.assign({id:a,className:i,style:T,cx:l,cy:c,r:d,"path-length":p,fill:h,"fill-opacity":u,stroke:m,"stroke-width":g/P,"stroke-linejoin":f,"stroke-linecap":v,"stroke-dasharray":k,"stroke-dashoffset":b,"stroke-opacity":y,onClick:C?()=>(0,r.asyncClientCall)(C,w):void 0,cursor:C?"pointer":void 0,"pointer-events":C?"all":void 0},S),I,M);return t?(0,o.h)("defs",null,L):L};i.displayName="OverlayCircle",t.default=i},2865:function(e,t,a){"use strict";var s=this&&this.__rest||function(e,t){var a={};for(var s in e)Object.prototype.hasOwnProperty.call(e,s)&&t.indexOf(s)<0&&(a[s]=e[s]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(s=Object.getOwnPropertySymbols(e);o{var{defs:t=!1,id:a,className:i,style:n={},width:l,height:c,href:d,x:p,y:h,animate:u={},animateMotion:m={},mpath:g,mapZoomFactor:f,onClick:v,data:k={}}=e,b=s(e,["defs","id","className","style","width","height","href","x","y","animate","animateMotion","mpath","mapZoomFactor","onClick","data"]);const y=1/f;let _=null,x=null;const O=Object.assign({transform:`translate(-${l/f/2}px, -${c/f/2}px) scale(${y})`},n);Object.keys(m).length&&(x=g?(0,o.h)("animateMotion",Object.assign({},m),(0,o.h)("mpath",{xlinkHref:`#${g}`})):(0,o.h)("animateMotion",Object.assign({},m))),Object.keys(u).length&&(_=(0,o.h)("animate",Object.assign({},u)));const w=(0,o.h)("image",Object.assign({id:a,className:i,style:O,width:l,height:c,href:d,x:p,y:h,onClick:v?()=>(0,r.asyncClientCall)(v,k):void 0,cursor:v?"pointer":void 0,"pointer-events":v?"all":void 0},b),_,x);return t?(0,o.h)("defs",null,w):w};i.displayName="OverlayImage",t.default=i},6805:function(e,t,a){"use strict";var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=a(5403),r=s(a(7096)),i=s(a(2865)),n=s(a(2578)),l=s(a(3861)),c=s(a(3496)),d=s(a(4012)),p=s(a(9159)),h=(0,a(2785).css)({label:"overlay-layer",position:"absolute",overflow:"visible",top:0,left:0,right:0,bottom:0});t.default=({mapZoomFactor:e,overlays:t})=>(0,o.h)("svg",{className:h,"data-testid":"meridian--private--overlay-layer"},t.map(((t,a)=>{switch(t.type){case"polygon":return(0,o.h)(c.default,Object.assign({key:a},t,{mapZoomFactor:e}));case"polyline":return(0,o.h)(d.default,Object.assign({key:a},t,{mapZoomFactor:e}));case"path":return(0,o.h)(l.default,Object.assign({key:a},t,{mapZoomFactor:e}));case"circle":return(0,o.h)(r.default,Object.assign({key:a},t,{mapZoomFactor:e}));case"image":return(0,o.h)(i.default,Object.assign({key:a},t,{mapZoomFactor:e}));case"marker":return(0,o.h)(n.default,Object.assign({key:a},t,{mapZoomFactor:e}));case"use":return(0,o.h)(p.default,Object.assign({key:a},t,{mapZoomFactor:e}));default:return null}})))},2578:function(e,t,a){"use strict";var s=this&&this.__rest||function(e,t){var a={};for(var s in e)Object.prototype.hasOwnProperty.call(e,s)&&t.indexOf(s)<0&&(a[s]=e[s]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(s=Object.getOwnPropertySymbols(e);o{var{defs:t=!0,id:a,className:r,style:i,viewBox:n,refX:l,refY:c,markerWidth:d,markerHeight:p,orient:h,fill:u="none",fillOpacity:m,stroke:g="hsl(207, 65%, 46%)",strokeWidth:f,strokeLineJoin:v,strokeLineCap:k,strokeDasharray:b,strokeDashoffset:y,strokeOpacity:_,shapeElementType:x,shapeElementAttributes:O,mapZoomFactor:w}=e,C=s(e,["defs","id","className","style","viewBox","refX","refY","markerWidth","markerHeight","orient","fill","fillOpacity","stroke","strokeWidth","strokeLineJoin","strokeLineCap","strokeDasharray","strokeDashoffset","strokeOpacity","shapeElementType","shapeElementAttributes","mapZoomFactor"]);let P=null;if(Object.keys(O).length&&x)switch(x){case"path":P=(0,o.h)("path",Object.assign({},O));break;case"polyline":P=(0,o.h)("polyline",Object.assign({},O));break;case"polygon":P=(0,o.h)("polygon",Object.assign({},O));break;case"circle":P=(0,o.h)("circle",Object.assign({},O));break;case"image":P=(0,o.h)("image",Object.assign({},O))}const S=(0,o.h)("marker",Object.assign({id:a,className:r,style:i,viewBox:n,refX:l,refY:c,markerWidth:d,markerHeight:p,orient:h,fill:u,"fill-opacity":m,stroke:g,"stroke-width":f,"stroke-linejoin":v,"stroke-linecap":k,"stroke-dasharray":b,"stroke-dashoffset":y,"stroke-opacity":_},C),P);return t?(0,o.h)("defs",null,S):S};r.displayName="OverlayMarker",t.default=r},3861:function(e,t,a){"use strict";var s=this&&this.__rest||function(e,t){var a={};for(var s in e)Object.prototype.hasOwnProperty.call(e,s)&&t.indexOf(s)<0&&(a[s]=e[s]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(s=Object.getOwnPropertySymbols(e);o{var{defs:t=!1,id:a,className:r,style:i={},shape:n,fill:l="none",stroke:c="hsl(207, 65%, 46%)",strokeWidth:d=2,strokeLineJoin:p="miter",strokeLineCap:h="butt",strokeDasharray:u,strokeDashoffset:m,strokeOpacity:g,markerStart:f,markerMid:v,markerEnd:k,animate:b={},animateMotion:y={},mpath:_,mapZoomFactor:x}=e,O=s(e,["defs","id","className","style","shape","fill","stroke","strokeWidth","strokeLineJoin","strokeLineCap","strokeDasharray","strokeDashoffset","strokeOpacity","markerStart","markerMid","markerEnd","animate","animateMotion","mpath","mapZoomFactor"]);let w=null,C=null;Object.keys(y).length&&(C=_?(0,o.h)("animateMotion",Object.assign({},y),(0,o.h)("mpath",{xlinkHref:`#${_}`})):(0,o.h)("animateMotion",Object.assign({},y))),Object.keys(b).length&&(w=(0,o.h)("animate",Object.assign({},b)));const P=(0,o.h)("path",Object.assign({id:a,className:r,style:i,d:n,fill:l,stroke:c,"stroke-width":d/x,"stroke-linejoin":p,"stroke-linecap":h,"stroke-dasharray":u,"stroke-dashoffset":m,"stroke-opacity":g,"marker-start":f,"marker-mid":v,"marker-end":k},O),w,C);return t?(0,o.h)("defs",null,P):P};r.displayName="OverlayPath",t.default=r},3496:function(e,t,a){"use strict";var s=this&&this.__rest||function(e,t){var a={};for(var s in e)Object.prototype.hasOwnProperty.call(e,s)&&t.indexOf(s)<0&&(a[s]=e[s]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(s=Object.getOwnPropertySymbols(e);o{var{defs:t=!1,id:a,className:i,style:n,points:l,fill:c="hsla(207, 65%, 46%, 0.5)",fillOpacity:d,stroke:p="hsl(207, 65%, 46%)",strokeWidth:h=2,strokeLineJoin:u="miter",strokeDasharray:m,strokeDashoffset:g,strokeOpacity:f,markerStart:v,markerMid:k,markerEnd:b,mapZoomFactor:y,animate:_={},data:x={},onClick:O}=e,w=s(e,["defs","id","className","style","points","fill","fillOpacity","stroke","strokeWidth","strokeLineJoin","strokeDasharray","strokeDashoffset","strokeOpacity","markerStart","markerMid","markerEnd","mapZoomFactor","animate","data","onClick"]);let C=null;Object.keys(_).length&&(C=(0,o.h)("animate",Object.assign({},_)));const P=(0,o.h)("polygon",Object.assign({id:a,className:i,style:n,points:l.join(" "),fill:c,"fill-opacity":d,stroke:p,"stroke-width":h/y,"stroke-linejoin":u,"stroke-dasharray":m,"stroke-dashoffset":g,"stroke-opacity":f,"marker-start":v,"marker-mid":k,"marker-end":b,onClick:O?()=>(0,r.asyncClientCall)(O,x):void 0,cursor:O?"pointer":void 0,"pointer-events":O?"all":void 0},w),C);return t?(0,o.h)("defs",null,P):P};i.displayName="OverlayPolygon",t.default=i},4012:function(e,t,a){"use strict";var s=this&&this.__rest||function(e,t){var a={};for(var s in e)Object.prototype.hasOwnProperty.call(e,s)&&t.indexOf(s)<0&&(a[s]=e[s]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(s=Object.getOwnPropertySymbols(e);o{var{defs:t=!1,id:a,className:r,style:i,points:n,fill:l="none",fillOpacity:c,stroke:d="hsl(207, 65%, 46%)",strokeWidth:p=2,strokeLineJoin:h="miter",strokeLineCap:u="butt",strokeDasharray:m,strokeDashoffset:g,strokeOpacity:f,markerStart:v,markerMid:k,markerEnd:b,animate:y={},mapZoomFactor:_}=e,x=s(e,["defs","id","className","style","points","fill","fillOpacity","stroke","strokeWidth","strokeLineJoin","strokeLineCap","strokeDasharray","strokeDashoffset","strokeOpacity","markerStart","markerMid","markerEnd","animate","mapZoomFactor"]);let O=null;Object.keys(y).length&&(O=(0,o.h)("animate",Object.assign({},y)));const w=(0,o.h)("polyline",Object.assign({id:a,className:r,style:i,points:n.join(" "),fill:l,"fill-opacity":c,stroke:d,"stroke-width":p/_,"stroke-linejoin":h,"stroke-linecap":u,"stroke-dasharray":m,"stroke-dashoffset":g,"stroke-opacity":f,"marker-start":v,"marker-mid":k,"marker-end":b},x),O);return t?(0,o.h)("defs",null,w):w};r.displayName="OverlayPolyline",t.default=r},6933:(e,t,a)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const s=a(5403),o=a(2785);class r extends s.Component{constructor(){super(...arguments),this.input=null}componentDidMount(){this.input&&this.input.focus()}render(){const{value:e,onChange:t,placeholder:a}=this.props;return(0,s.h)("div",{className:l},(0,s.h)("svg",{viewBox:"0 0 15 15",className:n},(0,s.h)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M13.2454 12.5741L9.55123 8.73956C10.2134 7.80246 10.5682 6.66953 10.5632 5.50756C10.5506 2.47441 8.18614 0.0175744 5.26286 5.57178e-05C3.8639 -0.00651157 2.52051 0.567712 1.53197 1.59481C0.543427 2.6219 -0.0081584 4.01655 9.12228e-05 5.46806C0.0127262 8.50148 2.37737 10.9585 5.30093 10.9761C6.42539 10.9811 7.52128 10.6088 8.42505 9.91456L8.4289 9.91156L12.1197 13.7431C12.3193 13.9603 12.6166 14.0482 12.8966 13.9728C13.1765 13.8973 13.395 13.6704 13.4675 13.3799C13.5399 13.0894 13.455 12.7809 13.2454 12.5741ZM5.29738 9.87819C2.95866 9.86423 1.06697 7.8988 1.05671 5.47219C1.0504 4.31114 1.4917 3.19564 2.28239 2.37403C3.07307 1.55242 4.14751 1.09287 5.26653 1.09769C7.60525 1.11165 9.49694 3.07709 9.5072 5.50369C9.51352 6.66475 9.07221 7.78024 8.28152 8.60186C7.49084 9.42347 6.4164 9.88302 5.29738 9.87819Z",transform:"translate(0.637695)"})),(0,s.h)("input",{"data-testid":"meridian--private--overlay-search",value:e,type:"text",placeholder:a,className:i,onInput:e=>{e.target instanceof HTMLInputElement&&t(e.target.value)},ref:e=>{this.input=e}}))}}const i=(0,o.css)(o.mixins.buttonReset,o.mixins.rounded,o.mixins.focusRing,{label:"overlay-search-input",flex:"1 1 auto",marginRight:42,fontSize:16,padding:"4px 8px",paddingLeft:30,background:o.theme.borderColor,color:o.theme.black,border:0,height:24,"&::placeholder":{color:o.theme.textColorBluishLightGrey}}),n=(0,o.css)({label:"overlay-search-icon",position:"absolute",zIndex:1,fill:o.theme.textColorBluish,width:16,height:16,top:18,left:18}),l=(0,o.css)({label:"overlay-search-bar",position:"relative",zIndex:1,flex:"0 0 auto",display:"flex",flexDirection:"column",padding:10,backgroundColor:"rgb(105, 146, 176)"});t.default=r},9159:function(e,t,a){"use strict";var s=this&&this.__rest||function(e,t){var a={};for(var s in e)Object.prototype.hasOwnProperty.call(e,s)&&t.indexOf(s)<0&&(a[s]=e[s]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(s=Object.getOwnPropertySymbols(e);o{var{defs:t=!1,id:a,className:r,style:i={},width:n,height:l,href:c,x:d,y:p,fill:h="none",stroke:u="hsl(207, 65%, 46%)",strokeWidth:m=2,strokeLineJoin:g="miter",strokeLineCap:f="butt",strokeDasharray:v,strokeDashoffset:k,strokeOpacity:b,animate:y={},animateMotion:_={},mpath:x,mapZoomFactor:O}=e,w=s(e,["defs","id","className","style","width","height","href","x","y","fill","stroke","strokeWidth","strokeLineJoin","strokeLineCap","strokeDasharray","strokeDashoffset","strokeOpacity","animate","animateMotion","mpath","mapZoomFactor"]);const C=1/O;let P=null,S=null;const D=Object.assign({transform:`translate(-${n/O/2}px, -${l/O/2}px) scale(${C})`},i);Object.keys(_).length&&(S=x?(0,o.h)("animateMotion",Object.assign({},_),(0,o.h)("mpath",{xlinkHref:`#${x}`})):(0,o.h)("animateMotion",Object.assign({},_))),Object.keys(y).length&&(P=(0,o.h)("animate",Object.assign({},y)));const I=(0,o.h)("use",Object.assign({id:a,className:r,style:D,width:n,height:l,href:c,x:d,y:p,fill:h,stroke:u,"stroke-width":m/O,"stroke-linejoin":g,"stroke-linecap":f,"stroke-dasharray":v,"stroke-dashoffset":k,"stroke-opacity":b},w),P,S);return t?(0,o.h)("defs",null,I):I};r.displayName="OverlayUse",t.default=r},2858:(e,t,a)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const s=a(5403),o=a(2785),r=a(7746),i=a(4221),n=(0,o.css)(o.mixins.textStrokeWhite,{label:"placemark-label",marginLeft:"50%",position:"absolute",minWidth:55,maxWidth:120,fontSize:14,textAlign:"center",paddingTop:4,color:"#222",userSelect:"none",transform:"translate(-50%, 0)",fontWeight:"bold",visibility:"hidden",pointerEvents:"none","[data-meridian-placemark-label-mode='always'] > &":{visibility:"visible"},"[data-meridian-placemark-label-mode='never'] > &":{visibility:"hidden"},"[data-meridian-placemark-label-mode='hover']:hover > &":{visibility:"visible",background:"#333",color:"#eee",textShadow:"none",borderRadius:4,padding:4,bottom:30,maxWidth:240,width:"max-content",boxShadow:"0 0 1px 1px white"},"[data-meridian-placemark-label-mode='zoom'] > &[data-meridian-placemark-label-zoom-visible='false']":{visibility:"hidden"},"[data-meridian-placemark-label-mode='zoom'] > &[data-meridian-placemark-label-zoom-visible='true']":{visibility:"visible"}}),l=(0,o.css)({label:"placemark-labelOnly",textTransform:"uppercase",color:"#666",fontSize:16}),c=(0,o.css)({label:"placemark",position:"absolute","&[data-meridian-placemark-label-mode='hover']:hover":{zIndex:1}}),d=(0,o.css)(o.mixins.buttonReset,o.mixins.pointer,o.mixins.focusNone,{label:"placemark-icon","--meridian-placemark-backgroundColor":o.theme.brandBlue,transition:"width 80ms ease, height 80ms ease",display:"block",width:24,height:24,borderRadius:"100%",backgroundColor:"var(--meridian-placemark-backgroundColor)",backgroundImage:"var(--meridian-placemark-iconURL)",backgroundPosition:"center",backgroundRepeat:"no-repeat",backgroundSize:"cover",border:"2px solid transparent",overflow:"hidden",zIndex:1}),p=(0,o.css)(d,{zIndex:3,width:30,height:30,boxShadow:"0 0 4px black"});t.default=({isSelected:e,data:t,mapZoomFactor:a,onClick:h=(()=>{}),disabled:u=!1,labelMode:m,labelZoomLevel:g=.2})=>{const f=`meridian-placemark-type-${t.type}`,v=!t.type||0===t.type.indexOf("label_"),k=1/a,b=`#${t.color}`,y=(0,i.placemarkIconURL)(t.type),_=(t.id||"").split("_").pop(),x=e?(0,o.cx)("meridian-placemark-icon-selected","meridian-placemark-icon",f,p):(0,o.cx)("meridian-placemark-icon",f,d),O={left:t.x,top:t.y,transform:`translate(-50%, -50%) scale(${k})`};return v?(0,s.h)("div",{className:(0,o.cx)("meridian-placemark",c),"data-meridian-placemark-label-mode":"zoom",style:O},(0,s.h)("div",{className:(0,o.cx)(n,l,"meridian-label","meridian-label-only"),"data-meridian-placemark-id":_,"data-meridian-placemark-label-zoom-visible":String(a>=g)},t.name)):(0,s.h)("div",{"data-meridian-placemark-label-mode":m,className:(0,o.cx)("meridian-placemark",c),style:O},(0,s.h)("button",{disabled:u,className:(0,o.cx)((0,r.getPlacemarkCategories)(t).map((e=>`meridian-placemark-category-${e=e.replace(/ /g,"-").replace(/[^a-z0-9_-]/i,"").toLowerCase()}`)),x),"data-meridian-placemark-id":_,style:{"--meridian-placemark-iconURL":`url('${y}')`,"--meridian-placemark-borderColor":b,"--meridian-placemark-backgroundColor":b},onClick:e=>{e.target instanceof HTMLElement&&e.target.focus(),h(t)},onMouseDown:e=>{e.stopPropagation()}}),(0,s.h)("div",{className:(0,o.cx)("meridian-label",n),"data-meridian-placemark-label-zoom-visible":String(a>=g)},t.name))}},7387:function(e,t,a){"use strict";var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=a(5403),r=s(a(2858)),i=a(7746);class n extends o.Component{constructor(){super(...arguments),this.state={fetchedPlacemarks:[]},this.isMounted=!1}componentDidMount(){this.isMounted=!0,this.fetchPlacemarks()}shouldComponentUpdate(e){return!(this.props.isPanningOrZooming&&e.mapZoomFactor===this.props.mapZoomFactor)}async componentDidUpdate(e,t){const{placemarkOptions:a,onUpdate:s}=this.props;if(e.floorID!==this.props.floorID&&await this.fetchPlacemarks(),s&&(t.fetchedPlacemarks!==this.state.fetchedPlacemarks||a!==e.placemarkOptions)){const e=this.state.fetchedPlacemarks;(0,i.asyncClientCall)(s,{allPlacemarks:e,filteredPlacemarks:this.getFilteredPlacemarks(e)})}}componentWillUnmount(){this.isMounted=!1}async fetchPlacemarks(){if(!this.isMounted)return;const{locationID:e,floorID:t,api:a,toggleLoadingSpinner:s,onInit:o}=this.props;s({show:!0,source:"placemarks"});const r=await a.fetchPlacemarksByFloor(e,t);this.setState({fetchedPlacemarks:r},(()=>{s({show:!1,source:"placemarks"})})),o()}getFilteredPlacemarks(e){var t;const{placemarkOptions:a,floorID:s}=this.props,o=null!==(t=null==a?void 0:a.filter)&&void 0!==t?t:()=>!0;return e.filter((e=>"exclusion_area"!==e.type&&e.map===s&&(!0===(null==a?void 0:a.showHiddenPlacemarks)||!e.hide_on_map))).filter(o)}render(){const e=this.getFilteredPlacemarks(this.state.fetchedPlacemarks);return(0,o.h)("div",{"data-testid":"meridian--private--placemark-layer"},e.map((e=>{var t,a,s,i;return(0,o.h)(r.default,{key:e.id,isSelected:!!this.props.selectedItem&&this.props.selectedItem.id===e.id,mapZoomFactor:this.props.mapZoomFactor,data:e,onClick:this.props.onPlacemarkClick,disabled:null===(t=this.props.placemarkOptions)||void 0===t?void 0:t.disabled,labelMode:null!==(s=null===(a=this.props.placemarkOptions)||void 0===a?void 0:a.labelMode)&&void 0!==s?s:"zoom",labelZoomLevel:null===(i=this.props.placemarkOptions)||void 0===i?void 0:i.labelZoomLevel})})))}}t.default=n},3996:function(e,t,a){"use strict";var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=a(5403),r=s(a(192)),i=a(2785),n=a(7746),l=(0,i.css)(i.mixins.shadow,i.mixins.buttonReset,i.mixins.pointer,i.mixins.focusNone,{label:"tag",width:48,height:48,borderRadius:"100%",position:"absolute",backgroundColor:"white",backgroundPosition:"center",backgroundRepeat:"no-repeat",backgroundSize:"cover",border:"2px solid white",overflow:"hidden",transition:"\n width 80ms ease,\n height 80ms ease,\n top 500ms ease,\n left 500ms ease\n ",zIndex:2}),c=(0,i.css)(l,{width:60,height:60,zIndex:3,boxShadow:"0 0 0 2px white, 0 0 4px black"});t.default=({isSelected:e,data:t,mapZoomFactor:a,onClick:s=(()=>{}),disabled:d=!1})=>{const p=1/a/(a<.2?1.4:1),h=t.image_url||r.default;return(0,o.h)("button",{"data-meridian-tag-id":t.id,disabled:d,className:(0,i.cx)("meridian-tag",l,(0,n.getTagLabels)(t).map((e=>`meridian-tag-label-${e=e.replace(/ /g,"-").replace(/[^a-z0-9_-]/i,"")}`)),e&&["meridian-tag-selected",c],(0,i.css)({backgroundImage:`url('${h}')`})),style:{left:t.x,top:t.y,transform:`translate(-50%, -50%) scale(${p})`},onClick:e=>{e.target instanceof HTMLElement&&e.target.focus(),s(t)},onMouseDown:e=>{e.stopPropagation()}})}},8901:function(e,t,a){"use strict";var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=s(a(1389)),r=a(5403),i=s(a(3996)),n=a(7746);class l extends r.Component{constructor(){var e;super(...arguments),this.state={tagsByMAC:{},connectionsByFloorID:{}},this.tagUpdates={},this.isMounted=!1,this.commitTagUpdates=(0,o.default)((()=>{this.isMounted&&this.setState((e=>({tagsByMAC:Object.assign(Object.assign({},e.tagsByMAC),this.tagUpdates)})),(()=>{this.tagUpdates={},this.onUpdate()}))}),(null===(e=this.props.tagOptions)||void 0===e?void 0:e.updateInterval)||5e3),this.onUpdate=()=>{const{tagsByMAC:e}=this.state,{onUpdate:t,tagOptions:a={}}=this.props,{filter:s=(()=>!0)}=a,o=this.filterControlTags(Object.values(e)),r=o.filter(s);t&&t({allTags:o,filteredTags:r})}}componentDidMount(){this.isMounted=!0;const{floorID:e}=this.props;e&&this.connect(e)}shouldComponentUpdate(e){return!(this.props.isPanningOrZooming&&e.mapZoomFactor===this.props.mapZoomFactor)}componentDidUpdate(e){e.floorID!==this.props.floorID&&(this.disconnect(e.floorID),this.connect(this.props.floorID))}componentWillUnmount(){this.isMounted=!1,this.disconnect(this.props.floorID)}connect(e){const{locationID:t,api:a,toggleLoadingSpinner:s,onInit:o}=this.props;s({show:!0,source:"tags"});const r=a.openStream({locationID:t,floorID:e,onInitialTags:t=>{e===this.props.floorID&&this.isMounted&&(this.setState({tagsByMAC:(0,n.keyBy)(t,(e=>e.mac))},(()=>{this.onUpdate(),this.props.toggleLoadingSpinner({show:!1,source:"tags"})})),o())},onTagUpdate:t=>{e===this.props.floorID&&this.isMounted&&(e!==t.map_id?this.setState((e=>({tagsByMAC:(0,n.objectWithoutKey)(e.tagsByMAC,t.mac)})),(()=>{this.onUpdate()})):(this.tagUpdates=Object.assign(Object.assign({},this.tagUpdates),{[t.mac]:t}),this.props.isPanningOrZooming||this.commitTagUpdates()))},onException:()=>{this.props.toggleLoadingSpinner({show:!1,source:"tags"})}});this.isMounted&&this.setState((t=>({connectionsByFloorID:Object.assign(Object.assign({},t.connectionsByFloorID),{[e]:r})})),(()=>{this.onUpdate()}))}disconnect(e){const t=this.state.connectionsByFloorID[e];t&&(this.props.toggleLoadingSpinner({show:!1,source:"tags"}),t.close()),this.tagUpdates={},this.isMounted&&this.setState((t=>({tagsByMAC:{},connectionsByFloorID:(0,n.objectWithoutKey)(t.connectionsByFloorID,e)})),(()=>{this.onUpdate()}))}filterControlTags(e){const{tagOptions:t}=this.props;return e.filter((e=>!0===(null==t?void 0:t.showControlTags)||!e.is_control_tag))}render(){const{selectedItem:e,tagOptions:t={},onTagClick:a,mapZoomFactor:s}=this.props,{tagsByMAC:o}=this.state,{filter:n=(()=>!0)}=t,l=Object.values(o);return(0,r.h)("div",{"data-testid":"meridian--private--tag-layer"},this.filterControlTags(l).filter(n).map((o=>(0,r.h)(i.default,{key:o.mac,isSelected:!!e&&e.mac===o.mac,mapZoomFactor:s,data:o,onClick:a,disabled:t.disabled}))))}}t.default=l},7866:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const a={en:{tags:"Tags",placemarks:"Placemarks",floors:"Floors",search:"Search",search_tags:"Search Tags",search_placemarks:"Search Placemarks",search_floors:"Search Floors",no_results_found:"No results found",close:"Close"},ar:{tags:"العلامات",placemarks:" العلامات الموضعية",floors:" الطوابق",search:" بحث",search_tags:" بحث عن علامات",search_placemarks:" بحث عن علامات موضعية",search_floors:" بحث عن طوابق",no_results_found:" لم يتم العثور على نتائج",close:"إغلاق"},ca:{tags:"Etiquetes",placemarks:"Marques de posició",floors:"Pisos",search:"Cerca",search_tags:"Cerca etiquetes",search_placemarks:"Cerca marcadors de posició",search_floors:"Cerca pisos",no_results_found:"Sense resultats",close:"Tanca"},es:{tags:"Etiquetas",placemarks:"Marcas de posición",floors:"Pisos",search:"Buscar",search_tags:"Buscar etiquetas",search_placemarks:"Buscar marcas de posición",search_floors:"Buscar pisos",no_results_found:"No se han encontrado resultados",close:"Cerrar"},cs:{tags:"Tagy",placemarks:"Značky míst",floors:"Patra",search:"Hledat",search_tags:"Hledat tagy",search_placemarks:"Hledat značky míst",search_floors:"Hledat patra",no_results_found:"Nebyly nalezeny žádné výsledky",close:"Zavřít"},de:{tags:"Stichworte",placemarks:"Ortsmarken",floors:"Etagen",search:"Suche",search_tags:"Such-Tags",search_placemarks:"In den Ortsmarken (Räumen, Sälen) suchen",search_floors:"In den Stockwerken suchen",no_results_found:"Keine Ergebnisse gefunden",close:"Schließen"},fr:{tags:"Mots clés",placemarks:"Repères",floors:"Étages",search:"Rechercher",search_tags:"Rechercher des mots clés",search_placemarks:"Rechercher des repères",search_floors:"Rechercher des étages",no_results_found:"Aucun résultat trouvé",close:"Fermer"},it:{tags:"Tag",placemarks:"Segnaposto",floors:"Piani",search:"Cerca",search_tags:"Cerca tag",search_placemarks:"Cerca segnaposto",search_floors:"Cerca piani",no_results_found:"Nessun risultato trovato",close:"Chiudi"},iw:{tags:"תגים",placemarks:"סימני מקום",floors:"קומות",search:"חפש",search_tags:"חפש תגיות",search_placemarks:"חפש סימני מקום",search_floors:"חפש קומות",no_results_found:"לא נמצאו תוצאות",close:"סגור"},ja:{tags:"タグ",placemarks:"目印",floors:"フロア",search:"探す",search_tags:"検索タグ",search_placemarks:"目印を検索する",search_floors:"フロアを検索する",no_results_found:"結果が見つからない",close:"近い"},ko:{tags:"태그",placemarks:"장소표시<",floors:"바닥",search:"검색",search_tags:"태그검색<",search_placemarks:"장소표시 검색<",search_floors:"층수검색<",no_results_found:"검색결과가 없습니다<",close:"닫기"},nl:{tags:"Tags",placemarks:"Plaatsaanduidingen",floors:"Verdiepingen",search:"Zoeken",search_tags:"Zoek tags",search_placemarks:"Zoek plaatsaanduidingen",search_floors:"Zoek verdiepingen",no_results_found:"Geen resultaten gevonden",close:"Sluiten"},no:{tags:"Tagger",placemarks:"Stedsmarkeringer",floors:"Gulv",search:"Søk",search_tags:"Søk i etiketter",search_placemarks:"Søk i stedsmarkeringer",search_floors:"Søk i etasjer",no_results_found:"Ingen resultater",close:"Lukk"},pt:{tags:"Tags",placemarks:"Marcadores",floors:"Andares",search:"Procurar",search_tags:"Tags de pesquisa",search_placemarks:"Pesquisar marcadores",search_floors:"Pesquisar andares",no_results_found:"Nenhum resultado encontrado",close:"Perto"},ru:{tags:"Taggar",placemarks:"Platsmärken",floors:"Golv",search:"Sök",search_tags:"Sök taggar",search_placemarks:"Sök efter platsmärken",search_floors:"Sök Golv",no_results_found:"Inga resultat funna",close:"Stänga"},sv:{tags:"Taggar",placemarks:"Platsmärken",floors:"Golv",search:"Sök",search_tags:"Sök taggar",search_placemarks:"Sök efter platsmärken",search_floors:"Sök Golv",no_results_found:"Inga resultat funna",close:"Stänga"},uk:{tags:"Теги",placemarks:"Мітки",floors:"Поверхи",search:"Пошук",search_tags:"Пошук тегів",search_placemarks:"Пошук міток",search_floors:"Пошук поверхів",no_results_found:"Нічого не знайдено",close:"Закрити"},vi:{tags:"Thẻ",placemarks:"Dấu vị trí",floors:"Tầng",search:"Tìm kiếm ",search_tags:"Thẻ tìm kiếm",search_placemarks:"Dấu vị trí tìm kiếm",search_floors:"Tầng tìm kiếm",no_results_found:"Không có kết quả nào được tìm thấy",close:"Đóng"},"zh-cn":{tags:"标签",placemarks:"地标",floors:"楼层",search:"搜索",search_tags:"搜索标签",search_placemarks:"搜索地标",search_floors:"搜索楼层",no_results_found:"未找到结果",close:"关闭"},"zh-tw":{tags:"標籤",placemarks:"地標",floors:"樓層",search:"搜尋",search_tags:"搜尋標籤",search_placemarks:"搜尋地標",search_floors:"搜尋樓層",no_results_found:"未找到結果",close:"關閉"}};t.default={lookup:function(e,t){var s,o,r;const i=t||(navigator.languages&&navigator.languages[0]||navigator.language||"en").toLowerCase(),n=null!==(s=i.split("-").shift())&&void 0!==s?s:"en",l=a;return(null===(o=null==l?void 0:l[i])||void 0===o?void 0:o[e])||(null===(r=null==l?void 0:l[n])||void 0===r?void 0:r[e])||l.en[e]||e}}},5481:(e,t,a)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const s=a(5403),o=a(2785),r=({onClick:e,dir:t})=>"in"===t?(0,s.h)("button",{className:(0,o.cx)("meridian-zoom-button","meridian-zoom-button-in",l),"data-testid":"meridian--private--zoom-button-in",onClick:e},(0,s.h)("svg",{viewBox:"0 0 36 36"},(0,s.h)("path",{d:"M26 17h-7v-7a1 1 0 0 0-2 0v7h-7a1 1 0 0 0 0 2h7v7a1 1 0 0 0 2 0v-7h7a1 1 0 0 0 0-2"}))):(0,s.h)("button",{className:(0,o.cx)("meridian-zoom-button","meridian-zoom-button-out",c),"data-testid":"meridian--private--zoom-button-out",onClick:e},(0,s.h)("svg",{viewBox:"0 0 36 36"},(0,s.h)("path",{d:"M26 19H10a1 1 0 0 1 0-2h16a1 1 0 0 1 0 2"}))),i=(0,o.css)(o.mixins.shadow,o.mixins.rounded,{position:"absolute",display:"flex",flexDirection:"column",zIndex:1,right:15,bottom:15}),n=(0,o.css)(o.mixins.buttonReset,o.mixins.focusRing,o.mixins.buttonHoverActive,o.mixins.rounded,{cursor:"pointer",padding:4,width:40,height:40,border:0,fontSize:20,fontWeight:200,fill:o.theme.brandBrightBlue,background:"white"}),l=(0,o.css)(n,{borderBottomLeftRadius:0,borderBottomRightRadius:0,borderBottom:`1px solid ${o.theme.buttonSeparatorColor}`}),c=(0,o.css)(n,{borderTopLeftRadius:0,borderTopRightRadius:0});t.default=({onZoomIn:e,onZoomOut:t})=>(0,s.h)("div",{className:(0,o.cx)("meridian-zoom-controls",i)},(0,s.h)(r,{onClick:e,dir:"in"}),(0,s.h)(r,{onClick:t,dir:"out"}))},5396:(e,t,a)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.sendAnalyticsCodeEvent=void 0;const s=a(4221),o=window.devicePixelRatio||1,r=window.screen,i=`${r.width*o}x${r.height*o}`;t.sendAnalyticsCodeEvent=async function(e){if("Cypress"in window)return;const{action:t,locationID:a,onTagsUpdate:o=!1,tagsFilter:r=!1,placemarksFilter:n=!1,internalUpdate:l=!1}=e,c={session_id:a,v:"1",app_name:"MeridianSDK",data_src:"app",app_version:s.version,uid:a,cid:a,hit_type:"event",event_category:"code",event_action:t,event_value:1,event_label:l?"internal":"external",tag_update:o?1:0,tags_filter:r?1:0,placemarks_filter:n?1:0,language:navigator.language,screen_res:i,anonymize_ip:1,user_agent:window.navigator.userAgent,z:Math.random().toString(36).substring(7)};fetch("https://www.google-analytics.com/mp/collect?measurement_id=G-GCT86YZLFE&api_secret=1v79k_rPSLyvvcHpzSDqFQ",{method:"POST",body:JSON.stringify({client_id:a,events:[{name:"page_event",params:Object.assign({},c)}]})})}},2785:function(e,t,a){"use strict";var s,o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.css=t.keyframes=t.cx=t.mixins=t.theme=void 0;const r=o(a(9918));t.theme={fontSizeSmallest:"12px",fontSizeSmaller:"14px",fontSize:"16px",fontSizeBigger:"18px",black:"#000",white:"#fff",almostWhite:"#fafafa",textColor:"#1b1b1b",textColorBluishLightGrey:"#9fa8ae",textColorBluish:"hsl(208, 17%, 42%)",brandOrange:"#ff8300",brandBlue:"hsl(203, 100%, 23%)",brandBrightBlue:"hsl(207, 65%, 46%)",buttonActiveColor:"hsl(201, 55%, 94%)",buttonHoverColor:"hsl(200, 60%, 97%)",buttonSeparatorColor:"#f0f0f0",borderColor:"#ebeef2",borderColorDarker:"#dfe1e5",borderRadius:6,searchBarColor:"#297BC0"},t.mixins={flexRow:{display:"flex",flexDirection:"row"},flexColumn:{display:"flex",flexDirection:"column"},overflowEllipses:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},textStrokeWhite:{WebkitFontSmoothing:"antialiased",textShadow:["rgba(255, 255, 255, 0.5) 1px 1px 0","rgba(255, 255, 255, 0.5) -1px -1px 0","white 0 0 1px","white 0 0 2px","white 0 0 3px","white 0 0 4px"].join(", ")},buttonReset:{padding:0,margin:0,font:"inherit",border:0,borderRadius:0,background:"transparent",color:"inherit","&::-moz-focus-inner":{border:0}},buttonHoverActive:{"&:hover":{background:t.theme.buttonHoverColor},"&:active":{background:t.theme.buttonActiveColor}},borderBox:{boxSizing:"border-box"},focusRing:{"&:focus":{outline:0,boxShadow:`inset 0 0 0 1px ${t.theme.brandBrightBlue}`}},focusRingMenuItem:{"&:focus":{outline:0,boxShadow:`\n inset 0 0 0 1px white,\n inset 0 0 0 2px ${t.theme.brandBrightBlue}\n `}},focusOutline:{"&:focus":{outline:0,boxShadow:"0 0 0 2px currentcolor"}},focusDarken:{"&:focus":{outline:0,boxShadow:"inset 0 0 0 9999px rgba(0, 0, 0, 0.1)"}},focusNone:{"&:focus":{outline:"none"}},shadow:{boxShadow:"0 0 3px rgba(0, 0, 0, 0.25)"},rounded:{borderRadius:t.theme.borderRadius},maxRounded:{borderRadius:99999},paddingMedium:{padding:"20px"},pointer:{cursor:"pointer","&:disabled":{cursor:"default"}}},s=(0,r.default)({key:"meridian--private-"}),t.cx=s.cx,t.keyframes=s.keyframes,t.css=s.css},7746:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.debouncedPlacemarkSearch=t.placemarkSearchParams=t.cleanQuery=t.isEnvOptions=t.asyncClientCall=t.requiredParam=t.getPlacemarkCategories=t.getTagLabels=t.createSearchMatcher=t.keyBy=t.objectWithoutKey=t.uiText=t.logDeprecated=t.logError=t.logWarn=void 0;const a="[@meridian/web-sdk]";t.logWarn=console.warn.bind(console,a),t.logError=console.error.bind(console,a),t.logDeprecated=t.logWarn.bind(null,"[deprecated]"),t.uiText={enDash:"–",unnamedBuilding:"Unassigned"},t.objectWithoutKey=function(e,t){const a=Object.assign({},e);return delete a[t],a},t.keyBy=function(e,t){const a={};for(const s of e)a[t(s)]=s;return a},t.createSearchMatcher=function(e){return t=>t.toLowerCase().indexOf(e.toLowerCase().trim())>=0},t.getTagLabels=function(e){return(e.tags||[]).map((e=>e.name))},t.getPlacemarkCategories=function(e){return(e.categories||[]).map((e=>e.name))},t.requiredParam=function(e,a){(0,t.logError)(`${e}: argument \`${a}\` is required`)},t.asyncClientCall=function(e,...t){setTimeout(e,0,...t)},t.isEnvOptions=function(e){return"staging"===e||"production"===e||"eu"===e||"development"===e||"devCloud"===e},t.cleanQuery=function(e){return e.replace(/-/g," ").replace(/:/g," ").replace(/[\\)"(]/g," ").replace(/[ ]{2,}/g," ").trim()},t.placemarkSearchParams="is_map_published=true AND kind:placemark AND NOT is_searchable=false AND NOT type=exclusion_area",t.debouncedPlacemarkSearch=function e(t,a=0){let s,o,r;return function(...t){return o?(r=!0,new Promise((r=>{o=r,s=setTimeout(i.bind(e,t,r),a)}))):new Promise((r=>{o=r,s=setTimeout(i.bind(e,t,r),a)}))};function i(a,i){r&&i!==o?i(null):(t.apply(e,a).then(i).catch(i),r=!1,clearTimeout(s),s=o=null)}}},4221:function(e,t,a){"use strict";var s,o,r,i=this&&this.__classPrivateFieldGet||function(e,t,a,s){if("a"===a&&!s)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!s:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===a?s:"a"===a?s.call(e):s?s.value:t.get(e)},n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.API=t.createAPI=t.createMap=t.init=t.mapPointToLatLng=t.latLngToMapPoint=t.restrictedPanZoom=t.version=t.pointsFromArea=t.placemarkIconURL=void 0;const l=n(a(8938)),c=n(a(6928)),d=a(5403),p=n(a(4717)),h=n(a(9101)),u=a(5396),m=n(a(529)),g=a(7746),f=a(323),v=new Map;for(const e of f.keys()){const t=c.default.basename(e,".svg"),a=f(e).default;v.set(t,a)}t.placemarkIconURL=function(e){if(!e||e.startsWith("label_"))return h.default;return v.get(e)||((0,g.logError)(`placemarkIconURL: no such icon '${e}'`),h.default)},t.pointsFromArea=function(e){return e?e.split(",").map(Number):[]};const k=()=>a(3351);"complete"===document.readyState?setTimeout(k,0):document.addEventListener("DOMContentLoaded",k,!1);const b={api:void 0};t.version="1.22.7",t.restrictedPanZoom=function(e){return"wheel"===e.type?e.shiftKey||e.altKey||e.ctrlKey||e.metaKey:"touch"!==e.type||e.touches.length>=2},t.latLngToMapPoint=function(e,{lat:t,lng:a}){const s=t,o=a,r=[];e.gps_ref_points.split(",").forEach((e=>{r.push(Number(e))}));const i={lat:r[0],lng:r[1],x:r[4],y:r[5]},n={lat:r[2],lng:r[3],x:r[6],y:r[7]},l=6371;i.globalCoordinateX=l*i.lng*Math.cos((i.lat+n.lat)/2),i.globalCoordinateY=l*i.lat,n.globalCoordinateX=l*n.lng*Math.cos((i.lat+n.lat)/2),n.globalCoordinateY=l*n.lat;const c=l*s,d=(l*o*Math.cos((i.lat+n.lat)/2)-i.globalCoordinateX)/(n.globalCoordinateX-i.globalCoordinateX),p=(c-i.globalCoordinateY)/(n.globalCoordinateY-i.globalCoordinateY);return{x:i.x+(n.x-i.x)*d,y:i.y+(n.y-i.y)*p}},t.mapPointToLatLng=function(e,{x:t,y:a}){const s=[];e.gps_ref_points.split(",").forEach((e=>{s.push(Number(e))}));const o={lat:s[0],lng:s[1],x:s[4],y:s[5]},r={lat:s[2],lng:s[3],x:s[6],y:s[7]},i=o.lng,n=r.lng-i,l=function(){let e;return e=o.y{l.isDestroyed?(0,g.logError)("can't call update on a destroyed MeridianMap"):(l.isDestroyed=!0,(0,d.render)(null,e),t.onDestroy&&t.onDestroy())};let s=null;const o=e=>{s=e},r=(s,{internalUpdate:i=!0}={})=>{t=Object.assign(Object.assign({},t),s);const l=b.api||t.api;if(!l)throw(0,g.requiredParam)("createMap","options.api"),new Error("couldn't create MeridianMap");n=(0,d.render)((0,d.h)(m.default,Object.assign({api:l},t,{update:r,ref:o,destroy:a})),e,n),(0,u.sendAnalyticsCodeEvent)({action:"map.update",locationID:t.locationID,onTagsUpdate:Boolean(t.onTagsUpdate),tagsFilter:Boolean(t.tags&&t.tags.filter),placemarksFilter:Boolean(t.placemarks&&t.placemarks.filter),internalUpdate:i})},i=b.api||t.api;if(!i)throw(0,g.requiredParam)("createMap","options.api"),new Error("couldn't create MeridianMap");let n=(0,d.render)((0,d.h)(m.default,Object.assign({api:i},t,{update:r,ref:o,destroy:a})),e);(0,u.sendAnalyticsCodeEvent)({action:"createMap",locationID:t.locationID,onTagsUpdate:Boolean(t.onTagsUpdate),tagsFilter:Boolean(t.tags&&t.tags.filter),placemarksFilter:Boolean(t.placemarks&&t.placemarks.filter)});const l={destroy:a,isDestroyed:!1,update:e=>{l.isDestroyed?(0,g.logError)("can't call update on a destroyed MeridianMap"):r(e,{internalUpdate:!1})},zoomToDefault:()=>{l.isDestroyed?(0,g.logError)("can't call zoomToDefault on a destroyed MeridianMap"):null==s||s.zoomToDefault()},zoomToPoint:e=>{l.isDestroyed?(0,g.logError)("can't call update on a destroyed MeridianMap"):(e||(0,g.requiredParam)("map.zoomToPoint","options"),void 0===e.x&&(0,g.requiredParam)("map.zoomToPoint","options.x"),void 0===e.y&&(0,g.requiredParam)("map.zoomToPoint","options.y"),void 0===e.scale&&(0,g.requiredParam)("map.zoomToPoint","options.scale"),null==s||s.zoomToPoint(e.x,e.y,e.scale))},centerMap:()=>{l.isDestroyed?(0,g.logError)("can't call update on a destroyed MeridianMap"):null==s||s.centerMap()}};return l},t.createAPI=function(e){return(0,g.logDeprecated)("use `new MeridianSDK.API(options)` instead of `MeridianSDK.createAPI(options)`"),e||(0,g.requiredParam)("createAPI","options"),new y(e)};class y{constructor(e){var a;s.add(this),this.debouncedPlacemarkSearchBeta=(0,g.debouncedPlacemarkSearch)(i(this,s,"m",o).bind(this),600),e.token||(0,g.requiredParam)("API","token"),this.token=e.token,this.environment=("devcloud"===(a=e.environment)?"devCloud":a)||"production",this.language=e.language,this._placemarkSearchAbortController=null,this._localSearchAbortController=null;let r={};this.language&&(r={"accept-language":this.language}),this._axiosEditorAPI=l.default.create({baseURL:C[this.environment],headers:Object.assign({Authorization:`Token ${e.token}`,"Meridian-SDK":`WebSDK/${t.version}`},r)}),this._axiosTagsAPI=l.default.create({baseURL:x[this.environment],headers:{Authorization:`Token ${e.token}`}}),this._axiosTagDetailAPI=l.default.create({baseURL:O[this.environment],headers:{Authorization:`Token ${e.token}`}})}get axios(){return(0,g.logDeprecated)("axios is deprecated; use the MeridianSDK.API fetch methods"),this._axiosEditorAPI}async getDirections(e){e.locationID||(0,g.requiredParam)("getDirections","locationID"),e.startFloorID||(0,g.requiredParam)("getDirections","startFloorID"),e.startPlacemarkID||(0,g.requiredParam)("getDirections","startPlacemarkID"),e.endPlacemarkID||(0,g.requiredParam)("getDirections","endPlacemarkID");const t=new URLSearchParams({from_map_id:e.startFloorID,from_placemark_id:e.startPlacemarkID,to_placemark_ids:e.endPlacemarkID,transport_type:e.transportType||"normal"}),a=`/locations/${e.locationID}/directions?${t}`;return(await this._axiosEditorAPI.get(a)).data}async fetchTagsByFloor(e,t){return e||(0,g.requiredParam)("fetchTagsByFloor","locationID"),t||(0,g.requiredParam)("fetchTagsByFloor","floorID"),(await this._axiosTagsAPI.post("/assets",{floor_id:t,location_id:e})).data.asset_updates}async fetchTagsByLocation(e){return e||(0,g.requiredParam)("fetchTagsByLocation","locationID"),(await this._axiosTagsAPI.post("/assets",{location_id:e})).data.asset_updates}async fetchTagDetail(e){return e||(0,g.requiredParam)("fetchTagDetail","mac"),(await this._axiosTagDetailAPI.get(`/tagsinfo/detail/${e}`)).data}async fetchPlacemarksByLocation(e){return e||(0,g.requiredParam)("fetchPlacemarksByLocation","locationID"),await _((async e=>{const{data:t}=await this._axiosEditorAPI.get(e);return t}),`locations/${e}/placemarks`)}async fetchPlacemarksByFloor(e,t){return e||(0,g.requiredParam)("fetchPlacemarksByFloor","locationID"),t||(0,g.requiredParam)("fetchPlacemarksByFloor","floorID"),await _((async e=>{const{data:t}=await this._axiosEditorAPI.get(e);return t}),`locations/${e}/maps/${t}/placemarks`)}async fetchFloorsByLocation(e){return e||(0,g.requiredParam)("fetchFloorsByLocation","locationID"),await _((async e=>{const{data:t}=await this._axiosEditorAPI.get(e);return t}),`locations/${e}/maps`)}async fetchFloorData(e,t){e||(0,g.requiredParam)("fetchFloorData","locationID"),t||(0,g.requiredParam)("fetchFloorData","floorID");const a=`locations/${e}/maps/${t}`,{data:s}=await this._axiosEditorAPI.get(a);return s}async fetchSVG(e){e||(0,g.requiredParam)("fetchSVG","svgURL");const{data:t}=await this._axiosEditorAPI.get(e,{responseType:"blob"});return URL.createObjectURL(t)}openStream({locationID:e,floorID:t,resourceIDs:a,resourceType:s="FLOOR",onInitialTags:o=(()=>{}),onTagUpdate:r=(()=>{}),onException:i=(()=>{}),onClose:n=(()=>{}),onOpen:l=(()=>{})}){"FLOOR"===s&&t&&!a&&(a=[t]),"LOCATION"===s&&e&&!a&&(a=[e]),e||(0,g.requiredParam)("openStream","locationID"),"FLOOR"!==s||t||(0,g.requiredParam)("openStream","floorID"),a||(0,g.requiredParam)("openStream","resourceIDs");let c=!1;const d=new URLSearchParams({method:"POST",authorization:`Token ${this.token}`}),h=w[this.environment],u=new p.default(`${h}?${d}`),m={asset_requests:[{resource_type:s,location_id:e,resource_ids:a}]},f=()=>{c||(c=!0,(0,g.asyncClientCall)(n),u.close())};return u.addEventListener("open",(()=>{c||(l(),u.send(JSON.stringify(m)))})),u.addEventListener("message",(e=>{if(c)return;const t=JSON.parse(e.data);if(t.error)i(new Error(t.error.message));else{if(!t.result)throw new Error(`Unknown message: ${e.data}`);for(const e of t.result.asset_updates){const t=e.event_type;if("UPDATE"!==t)throw new Error(`Unknown event type: ${t}`);(0,g.asyncClientCall)(r,e)}}})),u.addEventListener("error",(()=>{c||i(new Error("MeridianSDK.openStream connection error"))})),u.addEventListener("close",(()=>{c||n()})),(async()=>{if(t&&"FLOOR"===s)try{const a=await this.fetchTagsByFloor(e,t);(0,g.asyncClientCall)(o,a)}catch(e){(0,g.asyncClientCall)(i,e),f()}else if(e&&"LOCATION"===s)try{const t=await this.fetchTagsByLocation(e);(0,g.asyncClientCall)(o,t)}catch(e){(0,g.asyncClientCall)(i,e),f()}else(0,g.asyncClientCall)(o,[])})(),{close:f}}}async function _(e,t){const a=await e(t),s=a.results;let o=a.next;for(;o;){const t=await e(o);s.push(...t.results),o=t.next}return s}t.API=y,s=new WeakSet,o=async function(e){const t=(0,g.cleanQuery)(e.searchStr);if(e.locationID||(0,g.requiredParam)("placemarkSearch","locationID"),this._placemarkSearchAbortController&&this._placemarkSearchAbortController.abort(),this._localSearchAbortController&&this._localSearchAbortController.abort(),!t)return[];this._placemarkSearchAbortController=new AbortController;const a=new URLSearchParams({q:`${t} AND (${g.placemarkSearchParams})`,page_size:"100"});try{return await this._axiosEditorAPI.get(`locations/${e.locationID}/search`,{signal:this._placemarkSearchAbortController.signal,params:a}).then((async a=>{const o=a.data.results;if(e.refPoint&&e.refFloorID&&o.length){const a=await i(this,s,"m",r).call(this,{locationID:e.locationID,searchStr:t,point:e.refPoint,mapID:e.refFloorID}),n=[],l=a.map((e=>e.id));return o.forEach((e=>{l.includes(e.id)||n.push(e)})),this._placemarkSearchAbortController=null,[...a,...n]}return this._placemarkSearchAbortController=null,o}))}catch(e){return"canceled"===e.message?null:(console.warn(e),[])}},r=async function(e){const t=(0,g.cleanQuery)(e.searchStr);if(this._localSearchAbortController&&this._localSearchAbortController.abort(),!t)return[];this._localSearchAbortController=new AbortController;const a=new URLSearchParams({q:`${t} AND (${g.placemarkSearchParams})`,limit:"10",appid:e.locationID,map_id:e.mapID,point:e.point});return this._axiosEditorAPI.get("search/local",{signal:this._localSearchAbortController.signal,params:a}).then((e=>(this._localSearchAbortController=null,e.data.results)))};const x={development:"http://localhost:8091/api/v1",devCloud:"https://dev-tags.meridianapps.com/api/v1",production:"https://tags.meridianapps.com/api/v1",eu:"https://tags-eu.meridianapps.com/api/v1",staging:"https://staging-tags.meridianapps.com/api/v1"},O={development:"http://localhost:8091/api",devCloud:"https://dev-tags.meridianapps.com/api",production:"https://tags.meridianapps.com/api",eu:"https://tags-eu.meridianapps.com/api",staging:"https://staging-tags.meridianapps.com/api"},w={development:"ws://localhost:8091/streams/v1/assets",devCloud:"wss://dev-tags.meridianapps.com/streams/v1/assets",production:"wss://tags.meridianapps.com/streams/v1/assets",eu:"wss://tags-eu.meridianapps.com/streams/v1/assets",staging:"wss://staging-tags.meridianapps.com/streams/v1/assets"},C={development:"http://localhost:8091/api",devCloud:"https://dev-edit.meridianapps.com/api",production:"https://edit.meridianapps.com/api",eu:"https://edit-eu.meridianapps.com/api",staging:"https://staging-edit.meridianapps.com/api"}},9918:e=>{"use strict";e.exports=require("@emotion/css/create-instance")},8938:e=>{"use strict";e.exports=require("axios")},4870:e=>{"use strict";e.exports=require("d3-selection")},3755:e=>{"use strict";e.exports=require("d3-transition")},5491:e=>{"use strict";e.exports=require("d3-zoom")},9862:e=>{"use strict";e.exports=require("lodash.debounce")},3669:e=>{"use strict";e.exports=require("lodash.groupby")},1389:e=>{"use strict";e.exports=require("lodash.throttle")},5403:e=>{"use strict";e.exports=require("preact")},3351:e=>{"use strict";e.exports=require("preact/debug")},4717:e=>{"use strict";e.exports=require("reconnecting-websocket")},6928:e=>{"use strict";e.exports=require("path")}},t={};function a(s){var o=t[s];if(void 0!==o)return o.exports;var r=t[s]={exports:{}};return e[s].call(r.exports,r,r.exports,a),r.exports}a.d=(e,t)=>{for(var s in t)a.o(t,s)&&!a.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.p="https://files.meridianapps.com/meridian-web-sdk/1.22.7/";var s=a(4221),o=exports;for(var r in s)o[r]=s[r];s.__esModule&&Object.defineProperty(o,"__esModule",{value:!0})})(); \ No newline at end of file diff --git a/gcs-files/1.22.7/web-sdk.js.LICENSE.txt b/gcs-files/1.22.7/web-sdk.js.LICENSE.txt new file mode 100644 index 00000000..d67438c5 --- /dev/null +++ b/gcs-files/1.22.7/web-sdk.js.LICENSE.txt @@ -0,0 +1,22 @@ +/*! + * @license + * Copyright 2022 Hewlett Packard Enterprise Development LP + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ diff --git a/interfaces/APIOptions.html b/interfaces/APIOptions.html index 22f5e77b..793fde64 100644 --- a/interfaces/APIOptions.html +++ b/interfaces/APIOptions.html @@ -1,7 +1,7 @@ APIOptions | @meridian/web-sdk

Interface APIOptions

Options passed to createAPI.

const api = new MeridianSDK.API({
environment: "production", // or "eu"
token: "<token>",
language: "<languageCode>" // optional, defaults to "en"
});
-
interface APIOptions {
    environment?: EnvOptions;
    language?: "no" | "en" | "ar" | "ca" | "es" | "cs" | "de" | "fr" | "it" | "iw" | "ja" | "ko" | "nl" | "pt" | "ru" | "sv" | "uk" | "vi" | "zh-cn" | "zh-tw";
    token: string;
}

Properties

interface APIOptions {
    environment?: EnvOptions;
    language?: "no" | "en" | "ar" | "ca" | "es" | "cs" | "de" | "fr" | "it" | "iw" | "ja" | "ko" | "nl" | "pt" | "ru" | "sv" | "uk" | "vi" | "zh-cn" | "zh-tw";
    token: string;
}

Properties

environment?: EnvOptions
language?: "no" | "en" | "ar" | "ca" | "es" | "cs" | "de" | "fr" | "it" | "iw" | "ja" | "ko" | "nl" | "pt" | "ru" | "sv" | "uk" | "vi" | "zh-cn" | "zh-tw"
token: string
\ No newline at end of file +

Properties

environment?: EnvOptions
language?: "no" | "en" | "ar" | "ca" | "es" | "cs" | "de" | "fr" | "it" | "iw" | "ja" | "ko" | "nl" | "pt" | "ru" | "sv" | "uk" | "vi" | "zh-cn" | "zh-tw"
token: string
\ No newline at end of file diff --git a/interfaces/CreateMapOptions.html b/interfaces/CreateMapOptions.html index 5b0ec40c..7ceb9645 100644 --- a/interfaces/CreateMapOptions.html +++ b/interfaces/CreateMapOptions.html @@ -1,5 +1,5 @@ CreateMapOptions | @meridian/web-sdk

Interface CreateMapOptions

Options passed to createMap.

-
interface CreateMapOptions {
    annotations?: CustomAnnotationPoint[];
    api?: API;
    floorID: string;
    floorsControlSortDescending?: boolean;
    height?: string;
    loadPlacemarks?: boolean;
    loadTags?: boolean;
    locationID: string;
    maxZoomLevel?: number;
    minZoomLevel?: number;
    onDestroy?: (() => void);
    onFloorChange?: ((floor) => void);
    onFloorsUpdate?: ((floors) => void);
    onLoadingStateChange?: ((isLoading) => void);
    onMapClick?: (() => void);
    onPlacemarkClick?: ((placemark, event) => void);
    onPlacemarksUpdate?: ((placemarks) => void);
    onTagClick?: ((tag, event) => void);
    onTagsUpdate?: ((tags) => void);
    overlays?: CustomOverlay[];
    placemarks?: CreateMapPlacemarksOptions;
    shouldMapPanZoom?: ((event) => boolean);
    showFloorsControl?: boolean;
    showSearchControl?: boolean;
    tags?: CreateMapTagsOptions;
    width?: string;
}

Properties

interface CreateMapOptions {
    annotations?: CustomAnnotationPoint[];
    api?: API;
    floorID: string;
    floorsControlSortDescending?: boolean;
    height?: string;
    loadPlacemarks?: boolean;
    loadTags?: boolean;
    locationID: string;
    maxZoomLevel?: number;
    minZoomLevel?: number;
    onDestroy?: (() => void);
    onFloorChange?: ((floor) => void);
    onFloorsUpdate?: ((floors) => void);
    onLoadingStateChange?: ((isLoading) => void);
    onMapClick?: (() => void);
    onPlacemarkClick?: ((placemark, event) => void);
    onPlacemarksUpdate?: ((placemarks) => void);
    onTagClick?: ((tag, event) => void);
    onTagsUpdate?: ((tags) => void);
    overlays?: CustomOverlay[];
    placemarks?: CreateMapPlacemarksOptions;
    shouldMapPanZoom?: ((event) => boolean);
    showFloorsControl?: boolean;
    showSearchControl?: boolean;
    tags?: CreateMapTagsOptions;
    width?: string;
}

Properties

annotations?: CustomAnnotationPoint[]

An array of custom annotations to draw on the map.

-
api?: API

An API instance. Defaults to the one passed to init.

-
floorID: string

Meridian floor ID.

-
floorsControlSortDescending?: boolean

Sort the floors in the Floor Switcher UI descending in order. +

api?: API

An API instance. Defaults to the one passed to init.

+
floorID: string

Meridian floor ID.

+
floorsControlSortDescending?: boolean

Sort the floors in the Floor Switcher UI descending in order. Defaults to false (ascending in order).

-
height?: string

Height of the map (e.g. "100%" or "200px")

-
loadPlacemarks?: boolean

Set to false to disable loading placemarks. Defaults to true.

-
loadTags?: boolean

Set to false to disable loading tags. Defaults to true. +

height?: string

Height of the map (e.g. "100%" or "200px")

+
loadPlacemarks?: boolean

Set to false to disable loading placemarks. Defaults to true.

+
loadTags?: boolean

Set to false to disable loading tags. Defaults to true. This is required for locations without a TAGS SKU license

-
locationID: string

Meridian location ID.

-
maxZoomLevel?: number

Maximum zoom level. Default value is 8 which equals eight times the +

locationID: string

Meridian location ID.

+
maxZoomLevel?: number

Maximum zoom level. Default value is 8 which equals eight times the actual scale of the map.

-
minZoomLevel?: number

Minimum zoom level. Default value is dynamically calculated and matches +

minZoomLevel?: number

Minimum zoom level. Default value is dynamically calculated and matches the initial map scale (further zooming out is not allowed

-
onDestroy?: (() => void)

Called when the map has been destroyed, either by manually calling +

onDestroy?: (() => void)

Called when the map has been destroyed, either by manually calling map.destroy() or by being automatically destroyed when its DOM is tampered with.

-

Type declaration

    • (): void
    • Returns void

onFloorChange?: ((floor) => void)

Called after the floor is changed.

-

Type declaration

    • (floor): void
    • Parameters

      Returns void

onFloorsUpdate?: ((floors) => void)

Called after the floors list is updated.

-

Type declaration

    • (floors): void
    • Parameters

      Returns void

onLoadingStateChange?: ((isLoading) => void)

Called when the loading state changes.

-

Type declaration

    • (isLoading): void
    • Parameters

      • isLoading: boolean

      Returns void

onMapClick?: (() => void)

Called when the user clicks on the map. This is mostly useful as a way of +

Type declaration

    • (): void
    • Returns void

onFloorChange?: ((floor) => void)

Called after the floor is changed.

+

Type declaration

    • (floor): void
    • Parameters

      Returns void

onFloorsUpdate?: ((floors) => void)

Called after the floors list is updated.

+

Type declaration

    • (floors): void
    • Parameters

      Returns void

onLoadingStateChange?: ((isLoading) => void)

Called when the loading state changes.

+

Type declaration

    • (isLoading): void
    • Parameters

      • isLoading: boolean

      Returns void

onMapClick?: (() => void)

Called when the user clicks on the map. This is mostly useful as a way of knowing that the user has potentially unfocused a tag or placemark. This is NOT called when the user pans or zooms the map.

-

Type declaration

    • (): void
    • Returns void

onPlacemarkClick?: ((placemark, event) => void)

Called when a placemark is clicked. Use event.preventDefault() to prevent +

Type declaration

    • (): void
    • Returns void

onPlacemarkClick?: ((placemark, event) => void)

Called when a placemark is clicked. Use event.preventDefault() to prevent the default dialog from appearing.

-

Type declaration

onPlacemarksUpdate?: ((placemarks) => void)

Called when tags on the current floor are updated. allPlacemarks is every +

Type declaration

onPlacemarksUpdate?: ((placemarks) => void)

Called when tags on the current floor are updated. allPlacemarks is every placemark on the current floor, even ones not shown on the map. filteredPlacemarks is only the tags shown on the map (i.e. it respects showHiddenPlacemarks and filter).

-

Type declaration

onTagClick?: ((tag, event) => void)

Called when a tag is clicked. Use event.preventDefault() to prevent the +

Type declaration

onTagClick?: ((tag, event) => void)

Called when a tag is clicked. Use event.preventDefault() to prevent the default dialog from appearing.

-

Type declaration

onTagsUpdate?: ((tags) => void)

Called when tags on the current floor are updated. allTags is every tag +

Type declaration

onTagsUpdate?: ((tags) => void)

Called when tags on the current floor are updated. allTags is every tag on the current floor, even ones not shown on the map. filteredTags is only the tags shown on the map (i.e. it respects showControlTags and filter).

-

Type declaration

    • (tags): void
    • Parameters

      Returns void

overlays?: CustomOverlay[]

An array of custom overlays to draw on the map.

-

Options related to placemarks.

-
shouldMapPanZoom?: ((event) => boolean)

Type declaration

    • (event): boolean
    • Parameters

      • event: any

      Returns boolean

showFloorsControl?: boolean

Should we show the floor switcher UI control? Defaults to true.

-
showSearchControl?: boolean

Should we show the Search UI control? Defaults to true.

-

Options related to tags.

-
width?: string

Width of the map (e.g. "100%" or "300px").

-
\ No newline at end of file +

Type declaration

    • (tags): void
    • Parameters

      Returns void

overlays?: CustomOverlay[]

An array of custom overlays to draw on the map.

+

Options related to placemarks.

+
shouldMapPanZoom?: ((event) => boolean)

Type declaration

    • (event): boolean
    • Parameters

      • event: any

      Returns boolean

showFloorsControl?: boolean

Should we show the floor switcher UI control? Defaults to true.

+
showSearchControl?: boolean

Should we show the Search UI control? Defaults to true.

+

Options related to tags.

+
width?: string

Width of the map (e.g. "100%" or "300px").

+
\ No newline at end of file diff --git a/interfaces/CreateMapPlacemarksOptions.html b/interfaces/CreateMapPlacemarksOptions.html index c4823de5..2933e4fc 100644 --- a/interfaces/CreateMapPlacemarksOptions.html +++ b/interfaces/CreateMapPlacemarksOptions.html @@ -1,18 +1,18 @@ -CreateMapPlacemarksOptions | @meridian/web-sdk

Interface CreateMapPlacemarksOptions

interface CreateMapPlacemarksOptions {
    disabled?: boolean;
    filter?: ((placemark) => boolean);
    labelMode?: "always" | "never" | "zoom" | "hover";
    labelZoomLevel?: number;
    showHiddenPlacemarks?: boolean;
}

Properties

disabled? +CreateMapPlacemarksOptions | @meridian/web-sdk

Interface CreateMapPlacemarksOptions

interface CreateMapPlacemarksOptions {
    disabled?: boolean;
    filter?: ((placemark) => boolean);
    labelMode?: "always" | "never" | "zoom" | "hover";
    labelZoomLevel?: number;
    showHiddenPlacemarks?: boolean;
}

Properties

disabled?: boolean

Disable clicking placemarks when true. Defaults to false.

-
filter?: ((placemark) => boolean)

Filter function used to hide placemarks. Return false to hide a +

filter?: ((placemark) => boolean)

Filter function used to hide placemarks. Return false to hide a placemark. Defaults to () => true.

-

Type declaration

    • (placemark): boolean
    • Parameters

      Returns boolean

labelMode?: "always" | "never" | "zoom" | "hover"

Which mode should we use for displaying placemark labels

+

Type declaration

    • (placemark): boolean
    • Parameters

      Returns boolean

labelMode?: "always" | "never" | "zoom" | "hover"

Which mode should we use for displaying placemark labels

  • always: shown at all times regardless of zoom level
  • never: never shown
  • hover: only shown when the placemark is hovered
  • zoom: [default] only shown when a certain zoom level is reached
-
labelZoomLevel?: number

Zoom level at which placemark lables appear when label mode is "zoom"

-
showHiddenPlacemarks?: boolean

Should we show hidden placemarks? Defaults to false.

-
\ No newline at end of file +
labelZoomLevel?: number

Zoom level at which placemark lables appear when label mode is "zoom"

+
showHiddenPlacemarks?: boolean

Should we show hidden placemarks? Defaults to false.

+
\ No newline at end of file diff --git a/interfaces/CreateMapTagsOptions.html b/interfaces/CreateMapTagsOptions.html index 02179547..76b469be 100644 --- a/interfaces/CreateMapTagsOptions.html +++ b/interfaces/CreateMapTagsOptions.html @@ -1,10 +1,10 @@ -CreateMapTagsOptions | @meridian/web-sdk

Interface CreateMapTagsOptions

interface CreateMapTagsOptions {
    disabled?: boolean;
    filter?: ((tag) => boolean);
    showControlTags?: boolean;
    updateInterval?: number;
}

Properties

disabled? +CreateMapTagsOptions | @meridian/web-sdk

Interface CreateMapTagsOptions

interface CreateMapTagsOptions {
    disabled?: boolean;
    filter?: ((tag) => boolean);
    showControlTags?: boolean;
    updateInterval?: number;
}

Properties

disabled?: boolean

Disable clicking tags when true. Defaults to false.

-
filter?: ((tag) => boolean)

Filter function used to hide tags. Return false to hide a tag. Defaults +

filter?: ((tag) => boolean)

Filter function used to hide tags. Return false to hide a tag. Defaults to () => true.

-

Type declaration

    • (tag): boolean
    • Parameters

      Returns boolean

showControlTags?: boolean

Should we show control tags? Defaults to false.

-
updateInterval?: number

Update interval in milliseconds, defaults to 5000

-
\ No newline at end of file +

Type declaration

    • (tag): boolean
    • Parameters

      Returns boolean

showControlTags?: boolean

Should we show control tags? Defaults to false.

+
updateInterval?: number

Update interval in milliseconds, defaults to 5000

+
\ No newline at end of file diff --git a/interfaces/CustomAnnotationPoint.html b/interfaces/CustomAnnotationPoint.html index a791d398..66e5f53f 100644 --- a/interfaces/CustomAnnotationPoint.html +++ b/interfaces/CustomAnnotationPoint.html @@ -1,5 +1,5 @@ CustomAnnotationPoint | @meridian/web-sdk

Interface CustomAnnotationPoint

Object describing a point annotation drawn on the map

-
interface CustomAnnotationPoint {
    backgroundColor?: string;
    backgroundImage?: string;
    backgroundSize?: string;
    data?: Record<string, any>;
    onClick?: ((data) => void);
    size?: number;
    title?: string;
    type: "point";
    x: number;
    y: number;
}

Properties

interface CustomAnnotationPoint {
    backgroundColor?: string;
    backgroundImage?: string;
    backgroundSize?: string;
    data?: Record<string, any>;
    onClick?: ((data) => void);
    size?: number;
    title?: string;
    type: "point";
    x: number;
    y: number;
}

Properties

backgroundColor?: string
backgroundImage?: string
backgroundSize?: string
data?: Record<string, any>

Arbitrary data for use with onClick handler

-
onClick?: ((data) => void)

Type declaration

    • (data): void
    • Parameters

      • data: Record<string, any>

      Returns void

size?: number
title?: string
type: "point"
x: number
y: number
\ No newline at end of file +

Properties

backgroundColor?: string
backgroundImage?: string
backgroundSize?: string
data?: Record<string, any>

Arbitrary data for use with onClick handler

+
onClick?: ((data) => void)

Type declaration

    • (data): void
    • Parameters

      • data: Record<string, any>

      Returns void

size?: number
title?: string
type: "point"
x: number
y: number
\ No newline at end of file diff --git a/interfaces/CustomOverlayCircle.html b/interfaces/CustomOverlayCircle.html index 0dc39972..c3447c01 100644 --- a/interfaces/CustomOverlayCircle.html +++ b/interfaces/CustomOverlayCircle.html @@ -1,6 +1,6 @@ CustomOverlayCircle | @meridian/web-sdk

Interface CustomOverlayCircle

Object describing an SVG <circle> element drawn on the map

https://developer.mozilla.org/en-US/docs/Web/SVG/Element/circle

-
interface CustomOverlayCircle {
    animate?: SVGAttributes<SVGAnimateElement>;
    animateMotion?: SVGAttributes<SVGAnimateMotionElement>;
    className?: string;
    cx: string;
    cy: string;
    data?: Record<string, any>;
    defs?: boolean;
    fill?: string;
    fillOpacity?: string | number;
    id?: string;
    mpath?: SVGMPathElement;
    onClick?: ((data) => void);
    pathLength: number;
    r: string;
    stroke?: string;
    strokeDasharray?: string | number;
    strokeDashoffset?: string | number;
    strokeLineCap?: "square" | "butt" | "round";
    strokeLineJoin?: "round" | "miter";
    strokeOpacity?: string | number;
    strokeWidth?: number;
    style?: CSSProperties;
    type: "circle";
}

Properties

interface CustomOverlayCircle {
    animate?: SVGAttributes<SVGAnimateElement>;
    animateMotion?: SVGAttributes<SVGAnimateMotionElement>;
    className?: string;
    cx: string;
    cy: string;
    data?: Record<string, any>;
    defs?: boolean;
    fill?: string;
    fillOpacity?: string | number;
    id?: string;
    mpath?: SVGMPathElement;
    onClick?: ((data) => void);
    pathLength: number;
    r: string;
    stroke?: string;
    strokeDasharray?: string | number;
    strokeDashoffset?: string | number;
    strokeLineCap?: "square" | "butt" | "round";
    strokeLineJoin?: "round" | "miter";
    strokeOpacity?: string | number;
    strokeWidth?: number;
    style?: CSSProperties;
    type: "circle";
}

Properties

animate?: SVGAttributes<SVGAnimateElement>
animateMotion?: SVGAttributes<SVGAnimateMotionElement>
className?: string
cx: string
cy: string
data?: Record<string, any>

Arbitrary data for use with onClick handler

-
defs?: boolean

true will result in the element being wrapped in a <defs> (default: false)

+

Properties

animate?: SVGAttributes<SVGAnimateElement>
animateMotion?: SVGAttributes<SVGAnimateMotionElement>
className?: string
cx: string
cy: string
data?: Record<string, any>

Arbitrary data for use with onClick handler

+
defs?: boolean

true will result in the element being wrapped in a <defs> (default: false)

https://developer.mozilla.org/en-US/docs/Web/SVG/Element/defs

-
fill?: string
fillOpacity?: string | number
id?: string
mpath?: SVGMPathElement
onClick?: ((data) => void)

Type declaration

    • (data): void
    • Parameters

      • data: Record<string, any>

      Returns void

pathLength: number
r: string
stroke?: string
strokeDasharray?: string | number
strokeDashoffset?: string | number
strokeLineCap?: "square" | "butt" | "round"
strokeLineJoin?: "round" | "miter"
strokeOpacity?: string | number
strokeWidth?: number
style?: CSSProperties
type: "circle"
\ No newline at end of file +
fill?: string
fillOpacity?: string | number
id?: string
mpath?: SVGMPathElement
onClick?: ((data) => void)

Type declaration

    • (data): void
    • Parameters

      • data: Record<string, any>

      Returns void

pathLength: number
r: string
stroke?: string
strokeDasharray?: string | number
strokeDashoffset?: string | number
strokeLineCap?: "square" | "butt" | "round"
strokeLineJoin?: "round" | "miter"
strokeOpacity?: string | number
strokeWidth?: number
style?: CSSProperties
type: "circle"
\ No newline at end of file diff --git a/interfaces/CustomOverlayImage.html b/interfaces/CustomOverlayImage.html index b0d57d99..0dcb41b0 100644 --- a/interfaces/CustomOverlayImage.html +++ b/interfaces/CustomOverlayImage.html @@ -1,6 +1,6 @@ CustomOverlayImage | @meridian/web-sdk

Interface CustomOverlayImage

Object describing an SVG <image> element drawn on the map

https://developer.mozilla.org/en-US/docs/Web/SVG/Element/image

-
interface CustomOverlayImage {
    animate?: SVGAttributes<SVGAnimateElement>;
    animateMotion?: SVGAttributes<SVGAnimateMotionElement>;
    className?: string;
    data?: Record<string, any>;
    defs?: boolean;
    height: number;
    href: string;
    id?: string;
    mpath?: SVGMPathElement;
    onClick?: ((data) => void);
    style?: CSSProperties;
    type: "image";
    width: number;
    x?: number;
    y?: number;
}

Properties

interface CustomOverlayImage {
    animate?: SVGAttributes<SVGAnimateElement>;
    animateMotion?: SVGAttributes<SVGAnimateMotionElement>;
    className?: string;
    data?: Record<string, any>;
    defs?: boolean;
    height: number;
    href: string;
    id?: string;
    mpath?: SVGMPathElement;
    onClick?: ((data) => void);
    style?: CSSProperties;
    type: "image";
    width: number;
    x?: number;
    y?: number;
}

Properties

Properties

animate?: SVGAttributes<SVGAnimateElement>
animateMotion?: SVGAttributes<SVGAnimateMotionElement>
className?: string
data?: Record<string, any>

Arbitrary data for use with onClick handler

-
defs?: boolean

true will result in the element being wrapped in a <defs> (default: false)

+

Properties

animate?: SVGAttributes<SVGAnimateElement>
animateMotion?: SVGAttributes<SVGAnimateMotionElement>
className?: string
data?: Record<string, any>

Arbitrary data for use with onClick handler

+
defs?: boolean

true will result in the element being wrapped in a <defs> (default: false)

https://developer.mozilla.org/en-US/docs/Web/SVG/Element/defs

-
height: number
href: string
id?: string
mpath?: SVGMPathElement
onClick?: ((data) => void)

Type declaration

    • (data): void
    • Parameters

      • data: Record<string, any>

      Returns void

style?: CSSProperties
type: "image"
width: number
x?: number
y?: number
\ No newline at end of file +
height: number
href: string
id?: string
mpath?: SVGMPathElement
onClick?: ((data) => void)

Type declaration

    • (data): void
    • Parameters

      • data: Record<string, any>

      Returns void

style?: CSSProperties
type: "image"
width: number
x?: number
y?: number
\ No newline at end of file diff --git a/interfaces/CustomOverlayMarker.html b/interfaces/CustomOverlayMarker.html index a6f31c13..bbf75dab 100644 --- a/interfaces/CustomOverlayMarker.html +++ b/interfaces/CustomOverlayMarker.html @@ -1,6 +1,6 @@ CustomOverlayMarker | @meridian/web-sdk

Interface CustomOverlayMarker

Object describing an SVG <marker> element drawn on the map

https://developer.mozilla.org/en-US/docs/Web/SVG/Element/marker

-
interface CustomOverlayMarker {
    className?: string;
    defs?: boolean;
    fill?: string;
    fillOpacity?: string | number;
    id?: string;
    markerHeight: number;
    markerWidth: number;
    orient: string;
    refX: string;
    refY: string;
    shapeElementAttributes: Record<string, any>;
    shapeElementType: "circle" | "image" | "path" | "polygon" | "polyline";
    stroke?: string;
    strokeDasharray?: string | number;
    strokeDashoffset?: string | number;
    strokeLineCap?: "square" | "butt" | "round";
    strokeLineJoin?: "round" | "miter";
    strokeOpacity?: string | number;
    strokeWidth?: number;
    style?: CSSProperties;
    type: "marker";
    viewBox: string;
}

Properties

interface CustomOverlayMarker {
    className?: string;
    defs?: boolean;
    fill?: string;
    fillOpacity?: string | number;
    id?: string;
    markerHeight: number;
    markerWidth: number;
    orient: string;
    refX: string;
    refY: string;
    shapeElementAttributes: Record<string, any>;
    shapeElementType: "circle" | "image" | "path" | "polygon" | "polyline";
    stroke?: string;
    strokeDasharray?: string | number;
    strokeDashoffset?: string | number;
    strokeLineCap?: "square" | "butt" | "round";
    strokeLineJoin?: "round" | "miter";
    strokeOpacity?: string | number;
    strokeWidth?: number;
    style?: CSSProperties;
    type: "marker";
    viewBox: string;
}

Properties

Properties

className?: string
defs?: boolean

true will result in the element being wrapped in a <defs> (default: false)

+

Properties

className?: string
defs?: boolean

true will result in the element being wrapped in a <defs> (default: false)

https://developer.mozilla.org/en-US/docs/Web/SVG/Element/defs

-
fill?: string
fillOpacity?: string | number
id?: string
markerHeight: number
markerWidth: number
orient: string
refX: string
refY: string
shapeElementAttributes: Record<string, any>
shapeElementType: "circle" | "image" | "path" | "polygon" | "polyline"
stroke?: string
strokeDasharray?: string | number
strokeDashoffset?: string | number
strokeLineCap?: "square" | "butt" | "round"
strokeLineJoin?: "round" | "miter"
strokeOpacity?: string | number
strokeWidth?: number
style?: CSSProperties
type: "marker"
viewBox: string
\ No newline at end of file +
fill?: string
fillOpacity?: string | number
id?: string
markerHeight: number
markerWidth: number
orient: string
refX: string
refY: string
shapeElementAttributes: Record<string, any>
shapeElementType: "circle" | "image" | "path" | "polygon" | "polyline"
stroke?: string
strokeDasharray?: string | number
strokeDashoffset?: string | number
strokeLineCap?: "square" | "butt" | "round"
strokeLineJoin?: "round" | "miter"
strokeOpacity?: string | number
strokeWidth?: number
style?: CSSProperties
type: "marker"
viewBox: string
\ No newline at end of file diff --git a/interfaces/CustomOverlayPath.html b/interfaces/CustomOverlayPath.html index 57b1465e..1e0af576 100644 --- a/interfaces/CustomOverlayPath.html +++ b/interfaces/CustomOverlayPath.html @@ -1,6 +1,6 @@ CustomOverlayPath | @meridian/web-sdk

Interface CustomOverlayPath

Object describing an SVG <path> element drawn on the map

https://developer.mozilla.org/en-US/docs/Web/SVG/Element/path

-
interface CustomOverlayPath {
    animate?: SVGAttributes<SVGAnimateElement>;
    animateMotion?: SVGAttributes<SVGAnimateMotionElement>;
    className?: string;
    defs?: boolean;
    fill?: string;
    id?: string;
    markerEnd: string;
    markerMid: string;
    markerStart: string;
    mpath?: SVGMPathElement;
    shape: string;
    stroke?: string;
    strokeDasharray?: string | number;
    strokeDashoffset?: string | number;
    strokeLineCap?: "square" | "butt" | "round";
    strokeLineJoin?: "round" | "miter";
    strokeOpacity?: string | number;
    strokeWidth?: number;
    style?: CSSProperties;
    type: "path";
}

Properties

interface CustomOverlayPath {
    animate?: SVGAttributes<SVGAnimateElement>;
    animateMotion?: SVGAttributes<SVGAnimateMotionElement>;
    className?: string;
    defs?: boolean;
    fill?: string;
    id?: string;
    markerEnd: string;
    markerMid: string;
    markerStart: string;
    mpath?: SVGMPathElement;
    shape: string;
    stroke?: string;
    strokeDasharray?: string | number;
    strokeDashoffset?: string | number;
    strokeLineCap?: "square" | "butt" | "round";
    strokeLineJoin?: "round" | "miter";
    strokeOpacity?: string | number;
    strokeWidth?: number;
    style?: CSSProperties;
    type: "path";
}

Properties

animate?: SVGAttributes<SVGAnimateElement>
animateMotion?: SVGAttributes<SVGAnimateMotionElement>
className?: string
defs?: boolean

true will result in the element being wrapped in a <defs> (default: false)

+

Properties

animate?: SVGAttributes<SVGAnimateElement>
animateMotion?: SVGAttributes<SVGAnimateMotionElement>
className?: string
defs?: boolean

true will result in the element being wrapped in a <defs> (default: false)

https://developer.mozilla.org/en-US/docs/Web/SVG/Element/defs

-
fill?: string
id?: string
markerEnd: string
markerMid: string
markerStart: string
mpath?: SVGMPathElement
shape: string
stroke?: string
strokeDasharray?: string | number
strokeDashoffset?: string | number
strokeLineCap?: "square" | "butt" | "round"
strokeLineJoin?: "round" | "miter"
strokeOpacity?: string | number
strokeWidth?: number
style?: CSSProperties
type: "path"
\ No newline at end of file +
fill?: string
id?: string
markerEnd: string
markerMid: string
markerStart: string
mpath?: SVGMPathElement
shape: string
stroke?: string
strokeDasharray?: string | number
strokeDashoffset?: string | number
strokeLineCap?: "square" | "butt" | "round"
strokeLineJoin?: "round" | "miter"
strokeOpacity?: string | number
strokeWidth?: number
style?: CSSProperties
type: "path"
\ No newline at end of file diff --git a/interfaces/CustomOverlayPolygon.html b/interfaces/CustomOverlayPolygon.html index 14c53240..578c80a0 100644 --- a/interfaces/CustomOverlayPolygon.html +++ b/interfaces/CustomOverlayPolygon.html @@ -1,6 +1,6 @@ CustomOverlayPolygon | @meridian/web-sdk

Interface CustomOverlayPolygon

Object describing an SVG <polygon> element drawn on the map

https://developer.mozilla.org/en-US/docs/Web/SVG/Element/polygon

-
interface CustomOverlayPolygon {
    animate?: SVGAttributes<SVGAnimateElement>;
    className?: string;
    data?: Record<string, any>;
    defs?: boolean;
    fill?: string;
    fillOpacity?: string | number;
    id?: string;
    markerEnd: string;
    markerMid: string;
    markerStart: string;
    onClick?: ((data) => void);
    points: number[];
    stroke?: string;
    strokeDasharray?: string | number;
    strokeDashoffset?: string | number;
    strokeLineJoin?: "round" | "miter";
    strokeOpacity?: string | number;
    strokeWidth?: number;
    style?: CSSProperties;
    type: "polygon";
}

Properties

interface CustomOverlayPolygon {
    animate?: SVGAttributes<SVGAnimateElement>;
    className?: string;
    data?: Record<string, any>;
    defs?: boolean;
    fill?: string;
    fillOpacity?: string | number;
    id?: string;
    markerEnd: string;
    markerMid: string;
    markerStart: string;
    onClick?: ((data) => void);
    points: number[];
    stroke?: string;
    strokeDasharray?: string | number;
    strokeDashoffset?: string | number;
    strokeLineJoin?: "round" | "miter";
    strokeOpacity?: string | number;
    strokeWidth?: number;
    style?: CSSProperties;
    type: "polygon";
}

Properties

Properties

animate?: SVGAttributes<SVGAnimateElement>
className?: string
data?: Record<string, any>

Arbitrary data for use with onClick handler

-
defs?: boolean

true will result in the element being wrapped in a <defs> (default: false)

+

Properties

animate?: SVGAttributes<SVGAnimateElement>
className?: string
data?: Record<string, any>

Arbitrary data for use with onClick handler

+
defs?: boolean

true will result in the element being wrapped in a <defs> (default: false)

https://developer.mozilla.org/en-US/docs/Web/SVG/Element/defs

-
fill?: string
fillOpacity?: string | number
id?: string
markerEnd: string
markerMid: string
markerStart: string
onClick?: ((data) => void)

Type declaration

    • (data): void
    • Parameters

      • data: Record<string, any>

      Returns void

points: number[]
stroke?: string
strokeDasharray?: string | number
strokeDashoffset?: string | number
strokeLineJoin?: "round" | "miter"
strokeOpacity?: string | number
strokeWidth?: number
style?: CSSProperties
type: "polygon"
\ No newline at end of file +
fill?: string
fillOpacity?: string | number
id?: string
markerEnd: string
markerMid: string
markerStart: string
onClick?: ((data) => void)

Type declaration

    • (data): void
    • Parameters

      • data: Record<string, any>

      Returns void

points: number[]
stroke?: string
strokeDasharray?: string | number
strokeDashoffset?: string | number
strokeLineJoin?: "round" | "miter"
strokeOpacity?: string | number
strokeWidth?: number
style?: CSSProperties
type: "polygon"
\ No newline at end of file diff --git a/interfaces/CustomOverlayPolyline.html b/interfaces/CustomOverlayPolyline.html index 9f8d7a89..0fd74a3e 100644 --- a/interfaces/CustomOverlayPolyline.html +++ b/interfaces/CustomOverlayPolyline.html @@ -1,6 +1,6 @@ CustomOverlayPolyline | @meridian/web-sdk

Interface CustomOverlayPolyline

Object describing an SVG <polyline> element drawn on the map

https://developer.mozilla.org/en-US/docs/Web/SVG/Element/polyline

-
interface CustomOverlayPolyline {
    animate?: SVGAttributes<SVGAnimateElement>;
    className?: string;
    defs?: boolean;
    fill?: string;
    fillOpacity?: string | number;
    id?: string;
    markerEnd: string;
    markerMid: string;
    markerStart: string;
    points: number[];
    stroke?: string;
    strokeDasharray?: string | number;
    strokeDashoffset?: string | number;
    strokeLineCap?: "square" | "butt" | "round";
    strokeLineJoin?: "round" | "miter";
    strokeOpacity?: string | number;
    strokeWidth?: number;
    style?: CSSProperties;
    type: "polyline";
}

Properties

interface CustomOverlayPolyline {
    animate?: SVGAttributes<SVGAnimateElement>;
    className?: string;
    defs?: boolean;
    fill?: string;
    fillOpacity?: string | number;
    id?: string;
    markerEnd: string;
    markerMid: string;
    markerStart: string;
    points: number[];
    stroke?: string;
    strokeDasharray?: string | number;
    strokeDashoffset?: string | number;
    strokeLineCap?: "square" | "butt" | "round";
    strokeLineJoin?: "round" | "miter";
    strokeOpacity?: string | number;
    strokeWidth?: number;
    style?: CSSProperties;
    type: "polyline";
}

Properties

Properties

animate?: SVGAttributes<SVGAnimateElement>
className?: string
defs?: boolean

true will result in the element being wrapped in a <defs> (default: false)

+

Properties

animate?: SVGAttributes<SVGAnimateElement>
className?: string
defs?: boolean

true will result in the element being wrapped in a <defs> (default: false)

https://developer.mozilla.org/en-US/docs/Web/SVG/Element/defs

-
fill?: string
fillOpacity?: string | number
id?: string
markerEnd: string
markerMid: string
markerStart: string
points: number[]
stroke?: string
strokeDasharray?: string | number
strokeDashoffset?: string | number
strokeLineCap?: "square" | "butt" | "round"
strokeLineJoin?: "round" | "miter"
strokeOpacity?: string | number
strokeWidth?: number
style?: CSSProperties
type: "polyline"
\ No newline at end of file +
fill?: string
fillOpacity?: string | number
id?: string
markerEnd: string
markerMid: string
markerStart: string
points: number[]
stroke?: string
strokeDasharray?: string | number
strokeDashoffset?: string | number
strokeLineCap?: "square" | "butt" | "round"
strokeLineJoin?: "round" | "miter"
strokeOpacity?: string | number
strokeWidth?: number
style?: CSSProperties
type: "polyline"
\ No newline at end of file diff --git a/interfaces/CustomOverlayUse.html b/interfaces/CustomOverlayUse.html index ec475d9c..61fa87da 100644 --- a/interfaces/CustomOverlayUse.html +++ b/interfaces/CustomOverlayUse.html @@ -1,6 +1,6 @@ CustomOverlayUse | @meridian/web-sdk

Interface CustomOverlayUse

Object describing an SVG <use> element drawn on the map.

https://developer.mozilla.org/en-US/docs/Web/SVG/Element/use

-
interface CustomOverlayUse {
    animate?: SVGAttributes<SVGAnimateElement>;
    animateMotion?: SVGAttributes<SVGAnimateMotionElement>;
    className?: string;
    defs?: boolean;
    fill?: string;
    height: number;
    href: string;
    id?: string;
    mpath?: SVGMPathElement;
    stroke?: string;
    strokeDasharray?: string | number;
    strokeDashoffset?: string | number;
    strokeLineCap?: "square" | "butt" | "round";
    strokeLineJoin?: "round" | "miter";
    strokeOpacity?: string | number;
    strokeWidth?: number;
    style?: CSSProperties;
    type: "use";
    width: number;
    x?: number;
    y?: number;
}

Properties

interface CustomOverlayUse {
    animate?: SVGAttributes<SVGAnimateElement>;
    animateMotion?: SVGAttributes<SVGAnimateMotionElement>;
    className?: string;
    defs?: boolean;
    fill?: string;
    height: number;
    href: string;
    id?: string;
    mpath?: SVGMPathElement;
    stroke?: string;
    strokeDasharray?: string | number;
    strokeDashoffset?: string | number;
    strokeLineCap?: "square" | "butt" | "round";
    strokeLineJoin?: "round" | "miter";
    strokeOpacity?: string | number;
    strokeWidth?: number;
    style?: CSSProperties;
    type: "use";
    width: number;
    x?: number;
    y?: number;
}

Properties

Properties

animate?: SVGAttributes<SVGAnimateElement>
animateMotion?: SVGAttributes<SVGAnimateMotionElement>
className?: string
defs?: boolean

true will result in the element being wrapped in a <defs> (default: false)

+

Properties

animate?: SVGAttributes<SVGAnimateElement>
animateMotion?: SVGAttributes<SVGAnimateMotionElement>
className?: string
defs?: boolean

true will result in the element being wrapped in a <defs> (default: false)

https://developer.mozilla.org/en-US/docs/Web/SVG/Element/defs

-
fill?: string
height: number
href: string
id?: string
mpath?: SVGMPathElement
stroke?: string
strokeDasharray?: string | number
strokeDashoffset?: string | number
strokeLineCap?: "square" | "butt" | "round"
strokeLineJoin?: "round" | "miter"
strokeOpacity?: string | number
strokeWidth?: number
style?: CSSProperties
type: "use"
width: number
x?: number
y?: number
\ No newline at end of file +
fill?: string
height: number
href: string
id?: string
mpath?: SVGMPathElement
stroke?: string
strokeDasharray?: string | number
strokeDashoffset?: string | number
strokeLineCap?: "square" | "butt" | "round"
strokeLineJoin?: "round" | "miter"
strokeOpacity?: string | number
strokeWidth?: number
style?: CSSProperties
type: "use"
width: number
x?: number
y?: number
\ No newline at end of file diff --git a/interfaces/FloorData.html b/interfaces/FloorData.html index 8f037cf8..524aed29 100644 --- a/interfaces/FloorData.html +++ b/interfaces/FloorData.html @@ -1,4 +1,4 @@ FloorData | @meridian/web-sdk

Interface FloorData

Meridian Floor data

-
interface FloorData {
    id: string;
    [key: string]: any;
}

Indexable

[key: string]: any

Properties

id +
interface FloorData {
    id: string;
    [key: string]: any;
}

Indexable

[key: string]: any

Properties

Properties

id: string

Floor ID

-
\ No newline at end of file +
\ No newline at end of file diff --git a/interfaces/LocationData.html b/interfaces/LocationData.html index 63ac0e5a..0f5a5c33 100644 --- a/interfaces/LocationData.html +++ b/interfaces/LocationData.html @@ -1,4 +1,4 @@ LocationData | @meridian/web-sdk

Interface LocationData

Meridian Location data

-
interface LocationData {
    id: string;
    [key: string]: any;
}

Indexable

[key: string]: any

Properties

id +
interface LocationData {
    id: string;
    [key: string]: any;
}

Indexable

[key: string]: any

Properties

Properties

id: string

Location ID

-
\ No newline at end of file +
\ No newline at end of file diff --git a/interfaces/MeridianEvent.html b/interfaces/MeridianEvent.html index 5f60b4fc..ed22afa1 100644 --- a/interfaces/MeridianEvent.html +++ b/interfaces/MeridianEvent.html @@ -1,4 +1,4 @@ MeridianEvent | @meridian/web-sdk

Interface MeridianEvent

MeridanSDK specific event object, used to preventDefault when overriding a handler.

-
interface MeridianEvent {
    preventDefault: (() => void);
}

Properties

Properties

preventDefault: (() => void)

Type declaration

    • (): void
    • Returns void

\ No newline at end of file +
interface MeridianEvent {
    preventDefault: (() => void);
}

Properties

Properties

preventDefault: (() => void)

Type declaration

    • (): void
    • Returns void

\ No newline at end of file diff --git a/interfaces/MeridianMap.html b/interfaces/MeridianMap.html index f63c656f..dfad2e63 100644 --- a/interfaces/MeridianMap.html +++ b/interfaces/MeridianMap.html @@ -1,19 +1,19 @@ MeridianMap | @meridian/web-sdk

Interface MeridianMap

Returned from createMap, this object allows you to manipulate a map that has already been created in the page.

-
interface MeridianMap {
    centerMap: (() => void);
    destroy: (() => void);
    isDestroyed: boolean;
    update: ((updatedOptions) => void);
    zoomToDefault: (() => void);
    zoomToPoint: ((options) => void);
}

Properties

interface MeridianMap {
    centerMap: (() => void);
    destroy: (() => void);
    isDestroyed: boolean;
    update: ((updatedOptions) => void);
    zoomToDefault: (() => void);
    zoomToPoint: ((options) => void);
}

Properties

centerMap: (() => void)

Center the map while retaining the current scale.

-

Type declaration

    • (): void
    • Returns void

destroy: (() => void)

Remove the Meridian Map from the DOM and clean up all ongoing network +

Type declaration

    • (): void
    • Returns void

destroy: (() => void)

Remove the Meridian Map from the DOM and clean up all ongoing network connections.

If you are writing a single page app you MUST use this call before hiding the Meridian Map, or you will having network connections that keep going in the background.

-

Type declaration

    • (): void
    • Returns void

isDestroyed: boolean

Has this map been destroyed

-
update: ((updatedOptions) => void)

Update the Meridian map to have new options.

-

Type declaration

    • (updatedOptions): void
    • Parameters

      Returns void

zoomToDefault: (() => void)

Set zoom to the default level and pan to the default position.

-

Type declaration

    • (): void
    • Returns void

zoomToPoint: ((options) => void)

Pan to x/y coordinate and scale to a given zoom factor.

-

Type declaration

    • (options): void
    • Parameters

      • options: {
            scale: number;
            x: number;
            y: number;
        }
        • scale: number
        • x: number
        • y: number

      Returns void

\ No newline at end of file +

Type declaration

    • (): void
    • Returns void

isDestroyed: boolean

Has this map been destroyed

+
update: ((updatedOptions) => void)

Update the Meridian map to have new options.

+

Type declaration

    • (updatedOptions): void
    • Parameters

      Returns void

zoomToDefault: (() => void)

Set zoom to the default level and pan to the default position.

+

Type declaration

    • (): void
    • Returns void

zoomToPoint: ((options) => void)

Pan to x/y coordinate and scale to a given zoom factor.

+

Type declaration

    • (options): void
    • Parameters

      • options: {
            scale: number;
            x: number;
            y: number;
        }
        • scale: number
        • x: number
        • y: number

      Returns void

\ No newline at end of file diff --git a/interfaces/OpenStreamOptions.html b/interfaces/OpenStreamOptions.html index 4c71f9b6..9dfa0311 100644 --- a/interfaces/OpenStreamOptions.html +++ b/interfaces/OpenStreamOptions.html @@ -1,5 +1,5 @@ OpenStreamOptions | @meridian/web-sdk

Interface OpenStreamOptions

Options passed to API.openStream.

-
interface OpenStreamOptions {
    floorID?: string;
    locationID: string;
    onClose?: (() => void);
    onException?: ((error) => void);
    onInitialTags?: ((tags) => void);
    onOpen?: (() => void);
    onTagUpdate?: ((tag) => void);
    resourceIDs?: string[];
    resourceType?: "LOCATION" | "TAG" | "FLOOR" | "LABEL" | "ZONE";
}

Properties

interface OpenStreamOptions {
    floorID?: string;
    locationID: string;
    onClose?: (() => void);
    onException?: ((error) => void);
    onInitialTags?: ((tags) => void);
    onOpen?: (() => void);
    onTagUpdate?: ((tag) => void);
    resourceIDs?: string[];
    resourceType?: "LOCATION" | "TAG" | "FLOOR" | "LABEL" | "ZONE";
}

Properties

floorID?: string

Meridian floor ID

-
locationID: string

Meridian location ID

-
onClose?: (() => void)

Called when the stream closes

-

Type declaration

    • (): void
    • Returns void

onException?: ((error) => void)

Called when an error happens

-

Type declaration

    • (error): void
    • Parameters

      • error: Error

      Returns void

onInitialTags?: ((tags) => void)

Called with ALL tags on first load

-

Type declaration

    • (tags): void
    • Parameters

      Returns void

onOpen?: (() => void)

Called when the stream opens

-

Type declaration

    • (): void
    • Returns void

onTagUpdate?: ((tag) => void)

Called when a tag location updates

-

Type declaration

    • (tag): void
    • Parameters

      Returns void

resourceIDs?: string[]

Default: [floorID] if resourceType === "FLOOR" OR [locationID] if resourceType === "LOCATION", +

locationID: string

Meridian location ID

+
onClose?: (() => void)

Called when the stream closes

+

Type declaration

    • (): void
    • Returns void

onException?: ((error) => void)

Called when an error happens

+

Type declaration

    • (error): void
    • Parameters

      • error: Error

      Returns void

onInitialTags?: ((tags) => void)

Called with ALL tags on first load

+

Type declaration

    • (tags): void
    • Parameters

      Returns void

onOpen?: (() => void)

Called when the stream opens

+

Type declaration

    • (): void
    • Returns void

onTagUpdate?: ((tag) => void)

Called when a tag location updates

+

Type declaration

    • (tag): void
    • Parameters

      Returns void

resourceIDs?: string[]

Default: [floorID] if resourceType === "FLOOR" OR [locationID] if resourceType === "LOCATION", Valid values: [locationID | floorIDs | tagIDs | tagLabelIDs | zoneIDs]

-
resourceType?: "LOCATION" | "TAG" | "FLOOR" | "LABEL" | "ZONE"

Default: "FLOOR" if floorID is defined +

resourceType?: "LOCATION" | "TAG" | "FLOOR" | "LABEL" | "ZONE"

Default: "FLOOR" if floorID is defined Valid values: "LOCATION" | "TAG" | "FLOOR" | "LABEL" | "ZONE"

-
\ No newline at end of file +
\ No newline at end of file diff --git a/interfaces/PlacemarkData.html b/interfaces/PlacemarkData.html index af197c4d..570f097b 100644 --- a/interfaces/PlacemarkData.html +++ b/interfaces/PlacemarkData.html @@ -1,4 +1,4 @@ PlacemarkData | @meridian/web-sdk

Interface PlacemarkData

Meridian Placemark data

-
interface PlacemarkData {
    id: string;
    [key: string]: any;
}

Indexable

[key: string]: any

Properties

id +
interface PlacemarkData {
    id: string;
    [key: string]: any;
}

Indexable

[key: string]: any

Properties

Properties

id: string

Placemark ID

-
\ No newline at end of file +
\ No newline at end of file diff --git a/interfaces/Stream.html b/interfaces/Stream.html index ba7f7256..c85c4a98 100644 --- a/interfaces/Stream.html +++ b/interfaces/Stream.html @@ -1,5 +1,5 @@ Stream | @meridian/web-sdk

Interface Stream

An open tag stream that can be closed. Returned by API.openStream.

const api = new MeridianSDK.API({
// ...
});

const stream = api.openStream({
// ...
});

stream.close();
-
interface Stream {
    close: (() => void);
}

Properties

Properties

close: (() => void)

Type declaration

    • (): void
    • Returns void

\ No newline at end of file +
interface Stream {
    close: (() => void);
}

Properties

Properties

close: (() => void)

Type declaration

    • (): void
    • Returns void

\ No newline at end of file diff --git a/interfaces/TagData.html b/interfaces/TagData.html index 25b31dae..e081f6d6 100644 --- a/interfaces/TagData.html +++ b/interfaces/TagData.html @@ -1,4 +1,4 @@ TagData | @meridian/web-sdk

Interface TagData

Meridian Tag data

-
interface TagData {
    mac: string;
    [key: string]: any;
}

Indexable

[key: string]: any

Properties

mac +
interface TagData {
    mac: string;
    [key: string]: any;
}

Indexable

[key: string]: any

Properties

Properties

mac: string

Tag MAC address (uppercase, no punctuation)

-
\ No newline at end of file +
\ No newline at end of file diff --git a/interfaces/getDirectionsOptions.html b/interfaces/getDirectionsOptions.html index 371553ff..32fa4a78 100644 --- a/interfaces/getDirectionsOptions.html +++ b/interfaces/getDirectionsOptions.html @@ -1,12 +1,12 @@ getDirectionsOptions | @meridian/web-sdk

Interface getDirectionsOptions

Options passed to API.getDirections.

-
interface getDirectionsOptions {
    endPlacemarkID: string;
    locationID: string;
    startFloorID: string;
    startPlacemarkID: string;
    transportType?: string;
}

Properties

interface getDirectionsOptions {
    endPlacemarkID: string;
    locationID: string;
    startFloorID: string;
    startPlacemarkID: string;
    transportType?: string;
}

Properties

endPlacemarkID: string

Meridian end Placemark ID

-
locationID: string

Meridian Location ID

-
startFloorID: string

Meridian start Floor ID

-
startPlacemarkID: string

Meridian start Placemark ID

-
transportType?: string

Transport Type ("accessible" or undefined). Default is undefined

-
\ No newline at end of file +
locationID: string

Meridian Location ID

+
startFloorID: string

Meridian start Floor ID

+
startPlacemarkID: string

Meridian start Placemark ID

+
transportType?: string

Transport Type ("accessible" or undefined). Default is undefined

+
\ No newline at end of file diff --git a/interfaces/placemarkSearchOptions.html b/interfaces/placemarkSearchOptions.html index 98cf9a0b..97f3e645 100644 --- a/interfaces/placemarkSearchOptions.html +++ b/interfaces/placemarkSearchOptions.html @@ -1,12 +1,12 @@ placemarkSearchOptions | @meridian/web-sdk

Interface placemarkSearchOptions

interface placemarkSearchOptions {
    locationID: string;
    refFloorID?: string;
    refPoint?: string;
    searchStr: string;
}

Properties

interface placemarkSearchOptions {
    locationID: string;
    refFloorID?: string;
    refPoint?: string;
    searchStr: string;
}

Properties

locationID: string

Location ID

-
refFloorID?: string

Floor ID to be used in combination with refPoint +

refFloorID?: string

Floor ID to be used in combination with refPoint See API.debouncedPlacemarkSearchBeta

-
refPoint?: string

Map Point X/Y to be used in combination with refFloorID +

refPoint?: string

Map Point X/Y to be used in combination with refFloorID See API.debouncedPlacemarkSearchBeta

-
searchStr: string

Search String

-
\ No newline at end of file +
searchStr: string

Search String

+
\ No newline at end of file diff --git a/types/CustomAnnotation.html b/types/CustomAnnotation.html index 6bd9ef73..a56dda86 100644 --- a/types/CustomAnnotation.html +++ b/types/CustomAnnotation.html @@ -1,2 +1,2 @@ CustomAnnotation | @meridian/web-sdk

Type alias CustomAnnotation

CustomAnnotation: CustomAnnotationPoint

Object describing a custom annotation

-
\ No newline at end of file +
\ No newline at end of file diff --git a/types/CustomOverlay.html b/types/CustomOverlay.html index 5d1ea365..4006efee 100644 --- a/types/CustomOverlay.html +++ b/types/CustomOverlay.html @@ -1,2 +1,2 @@ CustomOverlay | @meridian/web-sdk
\ No newline at end of file +
\ No newline at end of file diff --git a/types/EnvOptions.html b/types/EnvOptions.html index c370b93e..d0ba343b 100644 --- a/types/EnvOptions.html +++ b/types/EnvOptions.html @@ -1,2 +1,2 @@ EnvOptions | @meridian/web-sdk

Type alias EnvOptions

EnvOptions: "production" | "staging" | "eu" | "development" | "devCloud"

Environment name used in APIOptions. If unsure, use "production".

-
\ No newline at end of file +
\ No newline at end of file diff --git a/variables/version.html b/variables/version.html index fb59306a..98593c5b 100644 --- a/variables/version.html +++ b/variables/version.html @@ -2,4 +2,4 @@ version is running.

console.log(MeridianSDK.version);
 
-
\ No newline at end of file +
\ No newline at end of file

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℘Ws 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