@twinmatrix/spatialverse-sdk-web 0.0.2 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. package/lib/cjs/index.js +9 -9
  2. package/lib/cjs/index.js.map +1 -1
  3. package/lib/cjs/meta-atlas-sdk/3DMap/CustomThreeJsWrapper/CustomThreeJsWrapper.js +213 -294
  4. package/lib/cjs/meta-atlas-sdk/3DMap/CustomThreeJsWrapper/CustomThreeJsWrapper.js.map +1 -1
  5. package/lib/cjs/meta-atlas-sdk/3DMap/CustomThreeJsWrapper/utility/utils.js +40 -41
  6. package/lib/cjs/meta-atlas-sdk/3DMap/CustomThreeJsWrapper/utility/utils.js.map +1 -1
  7. package/lib/cjs/meta-atlas-sdk/3DMap/MainMap.js +170 -196
  8. package/lib/cjs/meta-atlas-sdk/3DMap/MainMap.js.map +1 -1
  9. package/lib/cjs/meta-atlas-sdk/MetaAtlasCore/fetch-published-json.js +167 -215
  10. package/lib/cjs/meta-atlas-sdk/MetaAtlasCore/fetch-published-json.js.map +1 -1
  11. package/lib/cjs/meta-atlas-sdk/MetaAtlasCore/fetchMapObjectsData.js +28 -30
  12. package/lib/cjs/meta-atlas-sdk/MetaAtlasCore/fetchMapObjectsData.js.map +1 -1
  13. package/lib/cjs/meta-atlas-sdk/MetaAtlasCore/meta-atlas-sdk-core.js +861 -1170
  14. package/lib/cjs/meta-atlas-sdk/MetaAtlasCore/meta-atlas-sdk-core.js.map +1 -1
  15. package/lib/cjs/meta-atlas-sdk/MetaAtlasCore/routing-core/index.js +166 -159
  16. package/lib/cjs/meta-atlas-sdk/MetaAtlasCore/routing-core/index.js.map +1 -1
  17. package/lib/cjs/meta-atlas-sdk/MetaAtlasCore/routing-core/interfaces.js +6 -6
  18. package/lib/cjs/meta-atlas-sdk/MetaAtlasCore/routing-core/interfaces.js.map +1 -1
  19. package/lib/cjs/meta-atlas-sdk/MetaAtlasCore/routing-core/mapObjectsHelper.js +6 -6
  20. package/lib/cjs/meta-atlas-sdk/MetaAtlasCore/routing-core/mapObjectsHelper.js.map +1 -1
  21. package/lib/cjs/meta-atlas-sdk/MetaAtlasCore/routing-core/routeLayers.js +3 -3
  22. package/lib/cjs/meta-atlas-sdk/MetaAtlasCore/routing-core/routeLayers.js.map +1 -1
  23. package/lib/cjs/meta-atlas-sdk/MetaAtlasCore/routing-core/routing-helpers.js +523 -610
  24. package/lib/cjs/meta-atlas-sdk/MetaAtlasCore/routing-core/routing-helpers.js.map +1 -1
  25. package/lib/cjs/meta-atlas-sdk/MetaAtlasCore/routing-core/utils.js +149 -154
  26. package/lib/cjs/meta-atlas-sdk/MetaAtlasCore/routing-core/utils.js.map +1 -1
  27. package/lib/cjs/meta-atlas-sdk/customStyles.js +2 -2
  28. package/lib/cjs/meta-atlas-sdk/customStyles.js.map +1 -1
  29. package/lib/cjs/meta-atlas-sdk/customerLayer.js +15 -29
  30. package/lib/cjs/meta-atlas-sdk/customerLayer.js.map +1 -1
  31. package/lib/cjs/meta-atlas-sdk/customerLayerVariant.js +5 -5
  32. package/lib/cjs/meta-atlas-sdk/customerLayerVariant.js.map +1 -1
  33. package/lib/cjs/meta-atlas-sdk/meta-atlas-sdk.js +809 -1033
  34. package/lib/cjs/meta-atlas-sdk/meta-atlas-sdk.js.map +1 -1
  35. package/lib/cjs/meta-atlas-sdk/utils/helpers.js +32 -49
  36. package/lib/cjs/meta-atlas-sdk/utils/helpers.js.map +1 -1
  37. package/lib/cjs/meta-atlas-sdk/utils/local-storage.js +21 -34
  38. package/lib/cjs/meta-atlas-sdk/utils/local-storage.js.map +1 -1
  39. package/lib/cjs/meta-atlas-sdk/utils/mapobjects-store.js +6 -6
  40. package/lib/cjs/meta-atlas-sdk/utils/mapobjects-store.js.map +1 -1
  41. package/lib/cjs/meta-atlas-sdk/utils/routing-store.js +6 -6
  42. package/lib/cjs/meta-atlas-sdk/utils/routing-store.js.map +1 -1
  43. package/lib/cjs/meta-atlas-sdk/utils/routing-visualizer/index.js +363 -491
  44. package/lib/cjs/meta-atlas-sdk/utils/routing-visualizer/index.js.map +1 -1
  45. package/lib/cjs/react/MetaAtlasMap.js +127 -0
  46. package/lib/cjs/react/MetaAtlasMap.js.map +1 -0
  47. package/lib/cjs/react/hooks/useDrawing/index.js +17 -18
  48. package/lib/cjs/react/hooks/useDrawing/index.js.map +1 -1
  49. package/lib/cjs/react/hooks/useFocus/index.js +48 -55
  50. package/lib/cjs/react/hooks/useFocus/index.js.map +1 -1
  51. package/lib/cjs/react/hooks/useMapEvents/index.js +40 -47
  52. package/lib/cjs/react/hooks/useMapEvents/index.js.map +1 -1
  53. package/lib/cjs/react/hooks/useMapOverlays/index.js +20 -21
  54. package/lib/cjs/react/hooks/useMapOverlays/index.js.map +1 -1
  55. package/lib/cjs/react/hooks/useMetaAtlas/index.js +77 -95
  56. package/lib/cjs/react/hooks/useMetaAtlas/index.js.map +1 -1
  57. package/lib/cjs/react/hooks/useMetaAtlas.js +78 -96
  58. package/lib/cjs/react/hooks/useMetaAtlas.js.map +1 -1
  59. package/lib/cjs/react/hooks/useRouting/index.js +21 -20
  60. package/lib/cjs/react/hooks/useRouting/index.js.map +1 -1
  61. package/lib/cjs/react/hooks/useSearch/index.js +35 -34
  62. package/lib/cjs/react/hooks/useSearch/index.js.map +1 -1
  63. package/lib/cjs/react/hooks/useStampRally/index.js +26 -23
  64. package/lib/cjs/react/hooks/useStampRally/index.js.map +1 -1
  65. package/lib/cjs/react/hooks/useStampRally/utils.js +2 -2
  66. package/lib/cjs/react/hooks/useStampRally/utils.js.map +1 -1
  67. package/lib/cjs/react/index.js +31 -31
  68. package/lib/cjs/react/index.js.map +1 -1
  69. package/lib/cjs/react/stores/useMapDataStore.js +47 -62
  70. package/lib/cjs/react/stores/useMapDataStore.js.map +1 -1
  71. package/lib/cjs/react/stores/useMetaAtlasStore.js +27 -40
  72. package/lib/cjs/react/stores/useMetaAtlasStore.js.map +1 -1
  73. package/lib/esm/index.js +3 -7
  74. package/lib/esm/index.js.map +1 -1
  75. package/lib/esm/meta-atlas-sdk/3DMap/CustomThreeJsWrapper/CustomThreeJsWrapper.js +4 -3
  76. package/lib/esm/meta-atlas-sdk/3DMap/CustomThreeJsWrapper/CustomThreeJsWrapper.js.map +1 -1
  77. package/lib/esm/meta-atlas-sdk/3DMap/CustomThreeJsWrapper/utility/utils.js +14 -12
  78. package/lib/esm/meta-atlas-sdk/3DMap/CustomThreeJsWrapper/utility/utils.js.map +1 -1
  79. package/lib/esm/meta-atlas-sdk/3DMap/MainMap.js +204 -200
  80. package/lib/esm/meta-atlas-sdk/3DMap/MainMap.js.map +1 -1
  81. package/lib/esm/meta-atlas-sdk/MetaAtlasCore/fetch-published-json.js +6 -6
  82. package/lib/esm/meta-atlas-sdk/MetaAtlasCore/fetch-published-json.js.map +1 -1
  83. package/lib/esm/meta-atlas-sdk/MetaAtlasCore/fetchMapObjectsData.js +4 -3
  84. package/lib/esm/meta-atlas-sdk/MetaAtlasCore/fetchMapObjectsData.js.map +1 -1
  85. package/lib/esm/meta-atlas-sdk/MetaAtlasCore/meta-atlas-sdk-core.js +53 -42
  86. package/lib/esm/meta-atlas-sdk/MetaAtlasCore/meta-atlas-sdk-core.js.map +1 -1
  87. package/lib/esm/meta-atlas-sdk/MetaAtlasCore/routing-core/index.js +18 -16
  88. package/lib/esm/meta-atlas-sdk/MetaAtlasCore/routing-core/index.js.map +1 -1
  89. package/lib/esm/meta-atlas-sdk/MetaAtlasCore/routing-core/mapObjectsHelper.js +3 -3
  90. package/lib/esm/meta-atlas-sdk/MetaAtlasCore/routing-core/mapObjectsHelper.js.map +1 -1
  91. package/lib/esm/meta-atlas-sdk/MetaAtlasCore/routing-core/routing-helpers.js +73 -79
  92. package/lib/esm/meta-atlas-sdk/MetaAtlasCore/routing-core/routing-helpers.js.map +1 -1
  93. package/lib/esm/meta-atlas-sdk/MetaAtlasCore/routing-core/utils.js +16 -15
  94. package/lib/esm/meta-atlas-sdk/MetaAtlasCore/routing-core/utils.js.map +1 -1
  95. package/lib/esm/meta-atlas-sdk/customerLayer.js +4 -1
  96. package/lib/esm/meta-atlas-sdk/customerLayer.js.map +1 -1
  97. package/lib/esm/meta-atlas-sdk/meta-atlas-sdk.js +148 -124
  98. package/lib/esm/meta-atlas-sdk/meta-atlas-sdk.js.map +1 -1
  99. package/lib/esm/meta-atlas-sdk/utils/helpers.js +4 -2
  100. package/lib/esm/meta-atlas-sdk/utils/helpers.js.map +1 -1
  101. package/lib/esm/meta-atlas-sdk/utils/local-storage.js +6 -1
  102. package/lib/esm/meta-atlas-sdk/utils/local-storage.js.map +1 -1
  103. package/lib/esm/meta-atlas-sdk/utils/routing-visualizer/index.js +115 -109
  104. package/lib/esm/meta-atlas-sdk/utils/routing-visualizer/index.js.map +1 -1
  105. package/lib/esm/react/MetaAtlasMap.js +120 -0
  106. package/lib/esm/react/MetaAtlasMap.js.map +1 -0
  107. package/lib/esm/react/hooks/useDrawing/index.js +2 -2
  108. package/lib/esm/react/hooks/useDrawing/index.js.map +1 -1
  109. package/lib/esm/react/hooks/useFocus/index.js +4 -3
  110. package/lib/esm/react/hooks/useFocus/index.js.map +1 -1
  111. package/lib/esm/react/hooks/useMapEvents/index.js +9 -6
  112. package/lib/esm/react/hooks/useMapEvents/index.js.map +1 -1
  113. package/lib/esm/react/hooks/useMapOverlays/index.js +2 -2
  114. package/lib/esm/react/hooks/useMapOverlays/index.js.map +1 -1
  115. package/lib/esm/react/hooks/useMetaAtlas/index.js +162 -60
  116. package/lib/esm/react/hooks/useMetaAtlas/index.js.map +1 -1
  117. package/lib/esm/react/hooks/useMetaAtlas.js +162 -60
  118. package/lib/esm/react/hooks/useMetaAtlas.js.map +1 -1
  119. package/lib/esm/react/hooks/useRouting/index.js +2 -2
  120. package/lib/esm/react/hooks/useRouting/index.js.map +1 -1
  121. package/lib/esm/react/hooks/useSearch/index.js +2 -2
  122. package/lib/esm/react/hooks/useSearch/index.js.map +1 -1
  123. package/lib/esm/react/hooks/useStampRally/index.js +15 -12
  124. package/lib/esm/react/hooks/useStampRally/index.js.map +1 -1
  125. package/lib/esm/react/hooks/useStampRally/utils.js +1 -1
  126. package/lib/esm/react/hooks/useStampRally/utils.js.map +1 -1
  127. package/lib/esm/react/index.js +11 -15
  128. package/lib/esm/react/index.js.map +1 -1
  129. package/lib/esm/react/stores/useMapDataStore.js +17 -21
  130. package/lib/esm/react/stores/useMapDataStore.js.map +1 -1
  131. package/lib/types/meta-atlas-sdk/3DMap/CustomThreeJsWrapper/utility/CameraSync.d.ts +30 -0
  132. package/lib/types/meta-atlas-sdk/3DMap/CustomThreeJsWrapper/utility/CameraSync.d.ts.map +1 -0
  133. package/lib/types/meta-atlas-sdk/3DMap/CustomThreeJsWrapper/utility/CameraUtils.d.ts +5 -0
  134. package/lib/types/meta-atlas-sdk/3DMap/CustomThreeJsWrapper/utility/CameraUtils.d.ts.map +1 -0
  135. package/lib/types/meta-atlas-sdk/3DMap/CustomThreeJsWrapper/utility/constants.d.ts +21 -0
  136. package/lib/types/meta-atlas-sdk/3DMap/CustomThreeJsWrapper/utility/constants.d.ts.map +1 -0
  137. package/lib/types/meta-atlas-sdk/3DMap/CustomThreeJsWrapper/utility/suncalc.d.ts +27 -0
  138. package/lib/types/meta-atlas-sdk/3DMap/CustomThreeJsWrapper/utility/suncalc.d.ts.map +1 -0
  139. package/lib/types/meta-atlas-sdk/mapbox_draw_custom_modes/draw_marker.d.ts +18 -0
  140. package/lib/types/meta-atlas-sdk/mapbox_draw_custom_modes/draw_marker.d.ts.map +1 -0
  141. package/lib/types/meta-atlas-sdk/mapbox_draw_custom_modes/marker_select.d.ts +37 -0
  142. package/lib/types/meta-atlas-sdk/mapbox_draw_custom_modes/marker_select.d.ts.map +1 -0
  143. package/package.json +10 -7
@@ -1 +1 @@
1
- {"version":3,"file":"meta-atlas-sdk.js","names":["maplibregl","_interopRequireWildcard","require","_jquery","_interopRequireDefault","_invariant","_helpers","_length","_area","_cloneDeep","_mapboxGlDraw","_customStyles","_draw_marker","_marker_select","_metaAtlasSdkCore","_MainMap","_app","_analytics","_routingVisualizer","_customerLayer","_customerLayerVariant","_booleanPointInPolygon","e","__esModule","t","WeakMap","r","n","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","Symbol","iterator","constructor","prototype","_regenerator","toStringTag","c","Generator","u","create","_regeneratorDefine2","p","y","G","v","a","d","bind","length","l","TypeError","done","value","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","displayName","w","m","_regeneratorDefine","_invoke","enumerable","configurable","writable","asyncGeneratorStep","Promise","resolve","then","_asyncToGenerator","arguments","apply","_next","_throw","ownKeys","keys","getOwnPropertySymbols","filter","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_createForOfIteratorHelper","Array","isArray","_unsupportedIterableToArray","_n","F","s","next","_arrayLikeToArray","toString","slice","name","from","test","_classCallCheck","_defineProperties","_toPropertyKey","key","_createClass","_toPrimitive","toPrimitive","String","Number","FilterType","EventSource","exports","DEFAULT_MAP_STYLE","MetaAtlasSdk","accessToken","secretKey","_this","onLoad","undefined","onLoadFail","errorMessage","onRoutingStatusUpdate","onSearchStatusUpdate","defaultFocusedTaxonomy","RoutingVisualizer","type","features","map","jsonToPass","onLoaded","customerLayerUrl","sourceLayer","$","getJSON","customerLayers","CustomerLayers","_iterator","_step","layer","addLayer","on","id","clickedFeature","overRideSelectionOfDrawnPointGeometry","console","log","logAnalyticsEvent","feature_clicked","properties","title","isSearchable","coords","geometry","JSON","parse","center","coordinates","metaAtlasCore","setLastClickedFeature","mapObjectId","myMapObjectId","whatDimension","dimension_what","whereDimension","dimension_where","clickEvent","err","onLoadCallback","onLoadFailCallback","mapBoxDraw","CustomerLayer","CustomerLayersVariant","CustomerLayerVariant","roleName","verNum","MetaAtlasCore","initMetaAtlasCore","setupFirebase","firebaseConfig","apiKey","authDomain","projectId","storageBucket","messagingSenderId","appId","measurementId","firebaseApp","initializeApp","analytics","getAnalytics","eventName","warn","logEvent","mapLoaded","apiAuthenticationCallbackReceived","routingVisualizer","setupRouting","message","onFailCallbackSent","_this2","init","empApiURL","data","authenticated","setupMapObjectSearch","map3D","MainMap","setupMap","role","mapDivOrMap","_this3","Map","container","style","zoom","pitch","bearing","antialias","attributionControl","setupLayers","addSource","url","tileServer","token","lastClickedDrawing","setDrawing","layersToAdd","_iterator2","_step2","includes","setupMapBoxDraw","loaded","error","_this4","MapboxDraw","displayControlsDefault","userProperties","modes","draw_marker","DrawMarker","marker_select","MarkerSelect","styles","mapBoxDrawDefaultStyles","addControl","mapBoxDrawSourceID","drawGeojsonData","index","customStyles","element","getDrawingById","feature","getMode","getAll","mapBoxDrawFeature","deleteAll","directSelectOptions","featureId","getFocusTree","where","geom","props","getLastClickedFeature","getLastClickedDrawing","clickedDrawing","getMidPointOfFeature","dropPin","mapItemSelected","popupStyle","replaceLast","pinObj","markerElement","document","createElement","innerHTML","popup","Marker","setLngLat","addTo","popups","remove","dropMarkerForRouting","destinations","_this5","destination","_destination$selected","_destination$selected2","selectedLocation","marker","color","markers","clearMarker","extractLocation","text","match","hidePin","pinId","targetPinId","lastPin","pinToHide","find","pin","popupElem","getElement","display","concat","hidePins","obj","showPin","showPins","clearPin","targetPinIndex","findIndex","splice","clearPins","removePin","getCurrentFocus","getCurrentFocusBuilding","getCurrentFocusFloor","addUserLayer","_this6","UserLayers","filterWhereDimension","dimensionWhere","userLayers","cloneDeep","updatedUserLayersData","filterBaseMapWhereDimension","layerID","layerFilter","setFilter","layers","getFilter","updatedLayersData","focusTo","whereTaxonomyPath","moveCamera","isMobile","window","innerWidth","flyToConfig","getFlyToLocation","flyTo","getCenter","getZoom","getBearing","speed","filterLayersByCategories","filterType","filterValues","geomType","dimensionWhat","filterLayersByType","styleLayersByType","property","styleJson","getStyle","layerStyle","paint","layerType","setPaintProperty","clearStyleLayersByType","changeTerminalInFocusToUserViewpoint","defaultFloor","wrap","centerArray","lng","lat","checkUserViewport","building","getUserViewportBuilding","isLocationWithinHongKong","location","polygonCoordinates","polygon","turfPolygon","point","turfPoint","isInside","booleanPointInPolygon","getMapObjectsByFilteredLocalRef","_this$metaAtlasCore","getMapObjectsByName","_this$metaAtlasCore2","getMapObjectById","_this$metaAtlasCore3","getMapObjectByLocalRef","_this$metaAtlasCore4","getMapObjectMatchingLocalRef","_this$metaAtlasCore5","getMapObjectsMatchingLocalRefs","_this$metaAtlasCore6","getMapObjectsByWhatTaxonomy","_this$metaAtlasCore7","getMapObjectsByWhatTaxonomyAPI","_this$metaAtlasCore8","getMapObjectsByWhereTaxonomy","_this$metaAtlasCore9","getMapObjectsByWhatAndWhereTaxonomy","_this$metaAtlasCore0","getMapObjectsInWhatTaxonomy","_this$metaAtlasCore1","getMapObjectsInWhereTaxonomy","_this$metaAtlasCore10","computeRoute","_this$routingVisualiz","computeRoutes","mapObjectIds","_this7","wheelChairAccessibleRouteOnly","source","ref","logRouteEvent","_ref","_callee2","getNameByIdAsync","getNamesFromIds","names","_context2","mapObj","_mapObj$","_ref2","_callee","idList","namePromises","_context","all","_x","route_per_object_event_source","route_event_source","setActiveRoute","_this$routingVisualiz2","getActiveRoute","_this$routingVisualiz3","highlightRouteSegment","_this$routingVisualiz4","clearRoute","_this$routingVisualiz5","drawGeometryOnMap","onDrawEnd","_this8","onlyVisibleAtCurrentFocus","modeChanged","changeMode","once","drawings","finalDrawing","isInDrawMode","addDrawingsToBaseMap","getSource","setData","drawing","editDrawing","_this9","featureCollection","saveEditsToBaseMap","updatedFeature","featureFoundInBaseMapData","featureToEditSelectedAlready","onSelectionChanged","selectionData","off","removeDrawing","createMarker","options","draggable","setDraggable","querySelectorAll","_color","setAttribute","getCoordinates","getCoords","getLength","units","getArea","area","getMap3D"],"sources":["../../../src/meta-atlas-sdk/meta-atlas-sdk.ts"],"sourcesContent":["// const maplibregl = require('maplibre-gl');\nimport * as maplibregl from 'maplibre-gl';\nimport $ from \"jquery\";\n\nimport 'maplibre-gl/dist/maplibre-gl.css';\nimport { getCoords } from '@turf/invariant';\nimport { Units, feature as turfFeature, lineString as turfLine, point as turfPoint, polygon as turfPolygon, multiPolygon as turfMultiPolygon } from '@turf/helpers';\nimport { Position } from 'geojson';\nimport length from '@turf/length';\nimport area from '@turf/area';\nimport cloneDeep from 'lodash/cloneDeep';\n\nimport MapboxDraw from '@mapbox/mapbox-gl-draw';\nimport {customStyles, mapBoxDrawDefaultStyles} from './customStyles';\nimport DrawMarker from './mapbox_draw_custom_modes/draw_marker';\nimport MarkerSelect from './mapbox_draw_custom_modes/marker_select';\n\nimport { MetaAtlasCore, metaFeature, clickedMetaFeature } from './MetaAtlasCore/meta-atlas-sdk-core';\n\nimport MainMap from './3DMap/MainMap';\n\nimport { FirebaseApp, initializeApp } from 'firebase/app';\nimport { Analytics, getAnalytics, logEvent } from \"firebase/analytics\";\nimport { StatusUpdateCallbackType } from './MetaAtlasCore/fetch-published-json';\n\nimport { RoutingVisualizer } from './utils/routing-visualizer';\nimport { routeLayers } from './MetaAtlasCore/routing-core/routeLayers';\n\nimport CustomerLayer from './customerLayer';\nimport CustomerLayerVariant from './customerLayerVariant';\nimport combinedStyles from './combined_style.json';\n\nimport booleanPointInPolygon from '@turf/boolean-point-in-polygon';\nimport { getAvatarInitials, stringToHslColor } from './utils/helpers';\nenum FilterType {\n Name = 'title',\n LocalRef = 'localRef',\n WhatTaxonomy = 'dimension_what'\n}\n\nexport enum EventSource {\n UrlLoad = 'url_load',\n MapClick = 'map_click',\n BannerClick = 'banner_click',\n SearchInput = 'search_input',\n ListClick = 'list_click',\n InfoPopupClick = 'info_popup_click',\n Chatbot = 'chatbot',\n RoutingUI = 'routing_ui',\n StampRallyClick = 'stamp_rally_click',\n}\n\nexport const DEFAULT_MAP_STYLE = 'https://api.maptiler.com/maps/01985ac8-56d2-707b-afa8-68abfe8f18be/style.json?key=12H5hrITUbJ1sDrVPqkq';\n\nexport class MetaAtlasSdk {\n accessToken: string;\n secretKey: string;\n onLoadCallback: () => void = undefined;\n onLoadFailCallback: (errorMessage: string) => void = undefined;\n\n map: maplibregl.Map;\n mapBoxDraw: MapboxDraw;\n maplibregl: any;\n mapLoaded = false;\n onFailCallbackSent = false;\n \n CustomerLayers: any;\n CustomerLayersVariant: any;\n\n UserLayers: any = [];\n floorOptions: any;\n buildingRef: string;\n defaultFocusedTaxonomy = 'where.gbtb';\n currentFocus = this.defaultFocusedTaxonomy;\n \n lastClickedDrawing: any;\n map3D: MainMap;\n firebaseApp: FirebaseApp;\n analytics: Analytics;\n\n metaAtlasCore: MetaAtlasCore;\n apiAuthenticationCallbackReceived = false;\n\n routingVisualizer = new RoutingVisualizer(this);\n\n roleName: string;\n verNum: string;\n \n // When token middleware is online that will check the tokens.\n tileServer = 'https://atoms-map-tiles-middleware.sandbox.spatialverse.online';\n // HOST = 'https://atoms-sdk.qa.cag.spatialverse.online/2.0.0/';\n HOST = 'https://atoms-sdk.sandbox.spatialverse.online/';\n //empApiURL = 'https://atoms-api.changiairport.com';\n empApiURL = 'https://atoms-api.sandbox.spatialverse.online';\n // empApiURL = 'https://atoms-api.dev.cag.spatialverse.online';\n\n mapBoxDrawSourceID = 'drawnDataSource';\n drawGeojsonData = {\n type: 'FeatureCollection',\n features: [] as maplibregl.Feature[]\n };\n popups: any[] = [];\n markers: any[] = [];\n\n setupFirebase() {\n const firebaseConfig = {\n apiKey: \"AIzaSyBDWO2wNkotbgjbkyqVrC_OEAJ3mbvlheI\",\n authDomain: \"tmt-lenovo-tech-day-26-id.firebaseapp.com\",\n projectId: \"tmt-lenovo-tech-day-26-id\",\n storageBucket: \"tmt-lenovo-tech-day-26-id.firebasestorage.app\",\n messagingSenderId: \"618619544262\",\n appId: \"1:618619544262:web:cb7a7953a908aeed212dc7\",\n measurementId: \"G-HN2FS1L0P4\"\n };\n this.firebaseApp = initializeApp(firebaseConfig);\n this.analytics = getAnalytics(this.firebaseApp);\n console.log('analytics: ', this.analytics);\n }\n\n logAnalyticsEvent(eventName: string, properties?: any) {\n console.log('logAnalyticsEvent: ', eventName, properties);\n\n if (!this.analytics) {\n console.warn('Analytics is not initialized. Event not logged:', eventName);\n return;\n }\n\n if (properties) logEvent(this.analytics, eventName, properties);\n else logEvent(this.analytics, eventName);\n }\n\n onLoad() {\n if (\n this.mapLoaded === true &&\n this.apiAuthenticationCallbackReceived === true\n ) {\n // Setup routing visualizer\n this.routingVisualizer.setupRouting(this.map);\n\n // this.map3D.init(this.map);\n \n if (this.onLoadCallback) {\n this.onLoadCallback();\n }\n }\n };\n\n onLoadFail(message: string) {\n if (this.onFailCallbackSent === false) {\n this.onFailCallbackSent = true;\n if (this.onLoadFailCallback) {\n this.onLoadFailCallback(message);\n }\n }\n };\n\n initMetaAtlasCore(onRoutingStatusUpdate: StatusUpdateCallbackType, onSearchStatusUpdate: StatusUpdateCallbackType) { \n this.metaAtlasCore.init(\n this.empApiURL,\n this.accessToken,\n this.secretKey,\n (data: any) => {\n this.apiAuthenticationCallbackReceived = true;\n if (data.authenticated) {\n // Load routing data\n this.metaAtlasCore.setupRouting(onRoutingStatusUpdate);\n this.metaAtlasCore.setupMapObjectSearch(onSearchStatusUpdate);\n\n this.map3D = new MainMap(this.metaAtlasCore);\n\n this.onLoad();\n } else {\n this.onLoadFail('Failed to authenticate token');\n }\n },\n );\n }\n\n constructor(accessToken: string, secretKey: string, \n onLoad = () => {}, onLoadFail = (errorMessage: string) => {}, onRoutingStatusUpdate: StatusUpdateCallbackType = () => {}, onSearchStatusUpdate: StatusUpdateCallbackType = () => {}) {\n this.accessToken = accessToken;\n this.secretKey = secretKey;\n this.onLoadCallback = onLoad;\n this.onLoadFailCallback = onLoadFail;\n\n this.map = null;\n this.mapBoxDraw = null;\n this.maplibregl = maplibregl;\n this.CustomerLayers = CustomerLayer;\n this.CustomerLayersVariant = CustomerLayerVariant;\n this.roleName = \"changipublic\";\n this.verNum = \"1\";\n\n this.metaAtlasCore = new MetaAtlasCore();\n this.initMetaAtlasCore(onRoutingStatusUpdate, onSearchStatusUpdate);\n\n this.setupFirebase();\n }\n\n setupMap(role: string, mapDivOrMap: string | maplibregl.Map) {\n this.roleName = role;\n\n // Support both vanilla (string DOM ID) and React (Map instance) modes\n if (typeof mapDivOrMap === 'string') {\n // Vanilla mode: create new map instance\n this.map = new maplibregl.Map({\n container: mapDivOrMap,\n style: DEFAULT_MAP_STYLE,\n center: [110.40560122701005, 1.5626614114987702],\n zoom: 18,\n pitch: 42,\n bearing: 23.4,\n antialias: true,\n attributionControl: false\n });\n } else {\n // React mode: use provided map instance\n this.map = mapDivOrMap;\n }\n\n // Initialize map setup (common for both modes)\n const setupLayers = () => {\n this.map.addSource('custom', {\n type: 'vector',\n url: this.tileServer+'/'+this.roleName+'/'+this.verNum+'/geojson?accessToken='+this.accessToken,\n });\n\n this.logAnalyticsEvent('open_app', { type: 'web', token: this.accessToken })\n\n this.map.on('click', (e) => {\n // Reset last clicks\n this.metaAtlasCore.setLastClickedFeature({\n mapObjectId: null,\n coordinates: null,\n name: null,\n whatDimension: null,\n whereDimension: null,\n geometry: null,\n properties: null,\n clickEvent: e,\n });\n this.lastClickedDrawing = this.setDrawing();\n });\n\n // Setup map box draw after customerLayers so that draw geomertry shows up on top\n const layersToAdd = this.CustomerLayers;\n for (const layer of layersToAdd) {\n layer[\"source-layer\"] = 'geojson';\n this.map.addLayer(layer);\n \n this.map.on('click', layer.id, (e) => { \n //setup new clicked feature\n var clickedFeature = e.features[0];\n console.log(clickedFeature); \n this.logAnalyticsEvent('feature_clicked', { feature_clicked: clickedFeature.properties.title });\n this.overRideSelectionOfDrawnPointGeometry(clickedFeature as any);\n if (clickedFeature.properties.dimension_what.includes('what.infra.garden') || clickedFeature.properties.isSearchable && clickedFeature.properties.title != 'Transit' && clickedFeature.properties.title != 'Public') {\n const coords = clickedFeature.geometry.type === \"Polygon\" || clickedFeature.geometry.type === \"MultiPolygon\" ?\n JSON.parse(clickedFeature.properties.center) :\n (clickedFeature.geometry as any).coordinates;\n this.metaAtlasCore.setLastClickedFeature({\n mapObjectId: clickedFeature.properties.myMapObjectId,\n coordinates: coords,\n name: clickedFeature.properties.title,\n whatDimension: clickedFeature.properties.dimension_what,\n whereDimension: clickedFeature.properties.dimension_where,\n geometry: clickedFeature.geometry,\n properties: clickedFeature.properties as any,\n clickEvent: e,\n });\n }\n });\n }\n \n this.mapLoaded = true;\n this.setupMapBoxDraw();\n };\n\n // Check if map is already loaded (React mode with pre-existing map instance)\n if (this.map.loaded()) {\n // Map is already loaded, execute initialization directly\n setupLayers();\n } else {\n // Map not loaded yet, wait for load event (Vanilla mode)\n this.map.on('load', setupLayers);\n }\n\n this.map.on('error', (error: ErrorEvent) => {\n this.onLoadFail(error.message);\n });\n }\n\n setupMapBoxDraw() {\n this.mapBoxDraw = new MapboxDraw({\n displayControlsDefault: false,\n userProperties: true,\n modes: {\n ...MapboxDraw.modes,\n draw_marker: DrawMarker,\n marker_select: MarkerSelect\n },\n styles: mapBoxDrawDefaultStyles,\n });\n\n this.map.addControl(this.mapBoxDraw as any);\n\n this.map.addSource(this.mapBoxDrawSourceID, {\n 'type': 'geojson',\n 'data': this.drawGeojsonData\n });\n\n for (let index = 0; index < customStyles.length; index++) {\n const element = customStyles[index];\n element['source'] = this.mapBoxDrawSourceID\n this.map.addLayer(element as any)\n\n this.map.on('click', element.id, (e) => {\n this.metaAtlasCore.setLastClickedFeature({\n mapObjectId: null,\n coordinates: null,\n name: null,\n whatDimension: null,\n whereDimension: null,\n geometry: null,\n properties: null,\n clickEvent: e,\n });\n var clickedFeature = e.features[0];\n this.overRideSelectionOfDrawnPointGeometry(clickedFeature as any);\n if (clickedFeature.properties.id) this.lastClickedDrawing = this.getDrawingById(clickedFeature.properties.id);\n else this.lastClickedDrawing = this.setDrawing();\n });\n }\n\n this.mapLoaded = true;\n this.onLoad();\n }\n\n addCustomerLayer = (map: any, jsonToPass: any, onLoaded: Function) => {\n let customerLayerUrl = jsonToPass.customerLayerUrl;\n let sourceLayer = jsonToPass.sourceLayer;\n $.getJSON(customerLayerUrl, (customerLayers) => {\n this.CustomerLayers = customerLayers;\n for (const layer of this.CustomerLayers) {\n layer[\"source-layer\"] = sourceLayer;\n map.addLayer(layer);\n\n this.map.on('click', layer.id, (e) => { \n //setup new clicked feature\n const clickedFeature = e.features[0];\n this.overRideSelectionOfDrawnPointGeometry(clickedFeature as any);\n console.log('clickedFeature: ', clickedFeature)\n this.logAnalyticsEvent('feature_clicked', { feature_clicked: clickedFeature.properties.title })\n if (clickedFeature.properties.isSearchable && clickedFeature.properties.title != 'Transit' && clickedFeature.properties.title != 'Public') {\n const coords = clickedFeature.geometry.type === \"Polygon\" ?\n JSON.parse(clickedFeature.properties.center) :\n (clickedFeature.geometry as any).coordinates;\n this.metaAtlasCore.setLastClickedFeature({\n mapObjectId: clickedFeature.properties.myMapObjectId,\n coordinates: coords,\n name: clickedFeature.properties.title,\n whatDimension: clickedFeature.properties.dimension_what,\n whereDimension: clickedFeature.properties.dimension_where,\n geometry: clickedFeature.geometry,\n properties: clickedFeature.properties as any,\n clickEvent: e,\n });\n }\n });\n }\n\n onLoaded();\n });\n }\n\n overRideSelectionOfDrawnPointGeometry(feature: maplibregl.Feature) {\n // Check if a drawn point geometry is currently selected, it will be consider selected both in highlighted & non-highlighted state.\n if (this.mapBoxDraw && this.mapBoxDraw.getMode() === 'simple_select' && this.mapBoxDraw.getAll().features.length === 1) {\n const mapBoxDrawFeature = this.mapBoxDraw.getAll().features;\n // If the passed in feature is not a drawn feature, then unselect drawn point type geometry\n if (feature.properties.id === undefined) this.mapBoxDraw.deleteAll();\n // If the passed in feature is a drawn feature, then unselect drawn point type geometry & highlight the passed in drawn geometry\n else if (feature.properties.id !== undefined && mapBoxDrawFeature[0].id !== feature.properties.id) {\n this.mapBoxDraw.deleteAll();\n const directSelectOptions = {\n featureId: feature.properties.id\n };\n // TODO: figure out why this doesn't work\n // this.mapBoxDraw.changeMode('direct_select', directSelectOptions)\n }\n } \n }\n\n getFocusTree() {\n return this.metaAtlasCore.getFocusTree();\n }\n\n setDrawing(id=null, where=null, geom=null, props=null) {\n const clickedFeature = {\n \"id\": id,\n \"where\": where,\n \"geometry\": geom,\n \"properties\": props\n }\n return clickedFeature;\n }\n\n getLastClickedFeature() {\n return this.metaAtlasCore.getLastClickedFeature();\n }\n\n getLastClickedDrawing() {\n let clickedDrawing = this.lastClickedDrawing;\n if (!this.lastClickedDrawing || (this.lastClickedDrawing && (this.lastClickedDrawing.id === null || this.lastClickedDrawing.where === null))) {\n clickedDrawing = this.setDrawing();\n }\n return clickedDrawing;\n }\n\n getMidPointOfFeature(feature: any) {\n return this.metaAtlasCore.getMidPointOfFeature(feature);\n }\n\n dropPin(mapItemSelected: any, popupStyle: string, replaceLast: boolean = true) {\n const pinObj = {\n feature: mapItemSelected,\n popupStyle: popupStyle\n };\n\n const markerElement = document.createElement('div');\n markerElement.innerHTML = pinObj.popupStyle;\n\n const popup = new maplibregl.Marker({ element: markerElement })\n .setLngLat(this.getMidPointOfFeature(pinObj.feature))\n .addTo(this.map);\n\n if (replaceLast) {\n if (this.popups.length > 1) {\n this.popups[this.popups.length - 1].popup.remove();\n this.popups[this.popups.length - 1].popup = popup;\n this.popups[this.popups.length - 1].id = pinObj.feature.mapObjectId;\n } else {\n if (this.popups.length > 0) this.popups[this.popups.length - 1].popup.remove();\n this.popups = [{ popup: popup, id: pinObj.feature.mapObjectId }];\n }\n } else {\n this.popups.push({ popup: popup, id: pinObj.feature.mapObjectId });\n }\n\n return this.popups[this.popups.length - 1].id;\n }\n\n dropMarkerForRouting(destinations: any[]) {\n destinations.forEach(destination => {\n console.log(destination.selectedLocation, 'destination.selectedLocation');\n const coordinates = destination.selectedLocation?.coordinates\n ? destination.selectedLocation.coordinates\n : destination.selectedLocation?.geometry?.coordinates;\n\n console.log(coordinates, 'Coordinates'); // Debugging line\n\n if (coordinates && coordinates.length === 2) {\n const marker = new this.maplibregl.Marker({ color: '#188689' })\n .setLngLat([coordinates[0], coordinates[1]]) // Ensure correct format\n .addTo(this.map as any);\n\n this.markers.push(marker);\n } else {\n console.error('Invalid coordinates:', coordinates);\n }\n });\n }\n\n clearMarker() {\n if (this.markers && this.markers.length > 0) {\n this.markers.forEach((marker: any) => {\n marker.remove();\n });\n }\n this.markers = [];\n }\n\n extractLocation(text: string) {\n const match = text.match(/^(?:[^_]*_){3}([^_]*)/);\n return match ? match[1] : null;\n }\n\n hidePin(pinId: string = '-1'): void {\n let targetPinId: string;\n\n if (pinId === '-1') {\n const lastPin = this.popups[this.popups.length - 1];\n if (!lastPin) {\n console.warn('No pins available to hide.');\n return;\n }\n targetPinId = lastPin.id;\n } else {\n targetPinId = pinId;\n }\n\n const pinToHide = this.popups.find(pin => pin.id === targetPinId);\n\n if (pinToHide) {\n let popupElem = pinToHide.popup.getElement();\n if (popupElem) {\n popupElem.style.display = 'none';\n }\n console.log(`Pin with ID: ${targetPinId} is now hidden.`);\n } else {\n console.warn(`Pin with ID: ${targetPinId} not found.`);\n }\n }\n\n hidePins() {\n if (this.popups.length > 0) {\n this.popups.forEach(obj => {\n let popupElem = obj.popup.getElement();\n if (popupElem) {\n console.log(popupElem.style.display);\n\n popupElem.style.display = 'none';\n }\n });\n }\n }\n\n showPin(pinId: string = '-1'): void {\n let targetPinId: string;\n\n if (pinId === '-1') {\n const lastPin = this.popups[this.popups.length - 1];\n if (!lastPin) {\n console.warn('No pins available to show.');\n return;\n }\n targetPinId = lastPin.id;\n } else {\n targetPinId = pinId;\n }\n\n const pinToHide = this.popups.find(pin => pin.id === targetPinId);\n\n if (pinToHide) {\n let popupElem = pinToHide.popup.getElement();\n if (popupElem) {\n popupElem.style.display = 'flex';\n }\n console.log(`Pin with ID: ${targetPinId} is now visible.`);\n } else {\n console.warn(`Pin with ID: ${targetPinId} not found.`);\n }\n }\n\n showPins() {\n if (this.popups.length > 0) {\n this.popups.forEach(obj => {\n let popupElem = obj.popup.getElement();\n if (popupElem) {\n popupElem.style.display = 'flex';\n }\n });\n }\n }\n\n clearPin(pinId: string = '-1'): void {\n let targetPinIndex: number;\n\n if (pinId === '-1') {\n targetPinIndex = this.popups.length - 1;\n if (targetPinIndex < 0) {\n console.warn('No pins available to clear.');\n return;\n }\n } else {\n targetPinIndex = this.popups.findIndex(pin => pin.id === pinId);\n if (targetPinIndex === -1) {\n console.warn(`Pin with ID: ${pinId} not found.`);\n return;\n }\n }\n\n if (this.popups[targetPinIndex]) {\n this.popups[targetPinIndex].popup.remove();\n this.popups.splice(targetPinIndex, 1);\n }\n }\n\n clearPins() {\n if (this.popups.length > 0) {\n this.popups.forEach(obj => {\n obj.popup.remove();\n });\n this.popups.length = 0;\n }\n }\n\n removePin() {\n $('.mapboxgl-popup').remove();\n }\n\n getCurrentFocus() {\n return this.metaAtlasCore.getCurrentFocus();\n }\n\n getCurrentFocusBuilding(){\n return this.metaAtlasCore.getCurrentFocusBuilding();\n }\n\n getCurrentFocusFloor(){\n return this.metaAtlasCore.getCurrentFocusFloor();\n }\n\n addUserLayer(layer: any) {\n this.UserLayers.push(layer);\n this.map.addLayer(layer);\n\n this.map.on('click', layer.id, (e) => { \n //setup new clicked feature\n var clickedFeature = e.features[0];\n const coords = clickedFeature.geometry.type === \"Polygon\" ?\n JSON.parse(clickedFeature.properties.center) :\n (clickedFeature.geometry as any).coordinates;\n this.metaAtlasCore.setLastClickedFeature({\n mapObjectId: clickedFeature.properties.id,\n coordinates: coords,\n name: clickedFeature.properties.name,\n whatDimension: clickedFeature.properties.dimension_what,\n whereDimension: clickedFeature.properties.dimension_where,\n geometry: clickedFeature.geometry,\n properties: clickedFeature.properties as any,\n clickEvent: e,\n });\n });\n }\n\n filterWhereDimension(dimensionWhere: string) {\n // filter user layers\n let userLayers = cloneDeep(this.UserLayers);\n if (userLayers.length > 0) {\n let updatedUserLayersData = this.metaAtlasCore.filterBaseMapWhereDimension(userLayers, dimensionWhere);\n for (let index = 0; index < updatedUserLayersData.length; index++) {\n const layerID = updatedUserLayersData[index].id;\n const layerFilter = updatedUserLayersData[index].filter;\n userLayers[index].filter = layerFilter;\n this.map.setFilter(layerID, layerFilter);\n }\n }\n\n // filter basemap layers\n let layers = cloneDeep(this.CustomerLayers);\n for (let index = 0; index < layers.length; index += 1) {\n const layerID = layers[index].id;\n const layerFilter = this.map.getFilter(layerID);\n layers[index].filter = layerFilter;\n }\n let updatedLayersData =\n this.metaAtlasCore.filterBaseMapWhereDimension(\n layers,\n dimensionWhere,\n );\n \n for (let index = 0; index < updatedLayersData.length; index += 1) {\n const layerID = updatedLayersData[index].id;\n const layerFilter = updatedLayersData[index].filter;\n this.map.setFilter(layerID, (layerFilter));\n }\n\n // // filter non-basemap layers\n // layers = cloneDeep(customStyles.concat(routeLayers));\n // for (let index = 0; index < layers.length; index += 1) {\n // const layerID = layers[index].id;\n // const layerFilter = this.map.getFilter(layerID);\n // layers[index].filter = layerFilter;\n // }\n // updatedLayersData =\n // this.metaAtlasCore.filterLayersWhereDimension(\n // layers,\n // dimensionWhere,\n // );\n \n // for (let index = 0; index < updatedLayersData.length; index += 1) {\n // const layerID = updatedLayersData[index].id;\n // const layerFilter = updatedLayersData[index].filter;\n // }\n }\n\n focusTo(whereTaxonomyPath: string, moveCamera: boolean = true){\n const map = this.map;\n let dimensionWhere = whereTaxonomyPath;\n if (!dimensionWhere || !map) return;\n\n console.log(whereTaxonomyPath, 'whereTaxonomyPath');\n \n this.filterWhereDimension(dimensionWhere);\n const isMobile = window.innerWidth < 768;\n if (moveCamera) {\n const flyToConfig = this.metaAtlasCore.getFlyToLocation(dimensionWhere, isMobile);\n this.map.flyTo({\n center: flyToConfig.center ? flyToConfig.center : this.map.getCenter(),\n zoom: flyToConfig.zoom ? flyToConfig.zoom : this.map.getZoom(),\n bearing: flyToConfig.bearing ? flyToConfig.bearing : this.map.getBearing(),\n speed: 0.8,\n });\n\n // track inside so that only user requested focus is tracked\n // logEvent(this.analytics, 'focus_changed', { location: dimensionWhere });\n }\n }\n\n filterLayersByCategories(filterType: FilterType, filterValues: string[], geomType: string, dimensionWhat: string) {\n const map = this.map;\n if (!filterValues || !map) return;\n\n let layers = cloneDeep(this.CustomerLayers);\n for (let index = 0; index < layers.length; index += 1) {\n const layerID = layers[index].id;\n const layerFilter = this.map.getFilter(layerID);\n layers[index].filter = layerFilter;\n }\n let updatedLayersData = this.metaAtlasCore.filterLayersByCategories(layers, filterType, filterValues, geomType, dimensionWhat, this.map);\n\n for (let index = 0; index < updatedLayersData.length; index += 1) {\n const layerID = updatedLayersData[index].id;\n const layerFilter = updatedLayersData[index].filter;\n this.map.setFilter(layerID, layerFilter);\n }\n }\n\n filterLayersByType(filterType: FilterType, filterValues: string[], geomType = '') {\n const map = this.map;\n if (!filterValues || !map) return;\n\n let userLayers = cloneDeep(this.UserLayers);\n if (userLayers.length > 0) {\n let updatedUserLayersData = this.metaAtlasCore.filterLayersByType(userLayers, filterType, filterValues, geomType);\n for (let index = 0; index < updatedUserLayersData.length; index++) {\n const layerID = updatedUserLayersData[index].id;\n const layerFilter = updatedUserLayersData[index].filter;\n userLayers[index].filter = layerFilter;\n this.map.setFilter(layerID, layerFilter);\n }\n }\n }\n\n styleLayersByType(filterType: FilterType, filterValues: string[], property: string, value: string) {\n if (!filterValues || !this.map) return;\n\n let styleJson = this.map.getStyle();\n let layers = styleJson.layers;\n\n let updatedLayersData = this.metaAtlasCore.styleLayersByType(layers, filterType, filterValues, property, value);\n\n for (let index = 0; index < updatedLayersData.length; index += 1) {\n const layerID = updatedLayersData[index].id;\n const layerStyle = updatedLayersData[index].paint;\n const layerType = updatedLayersData[index].type;\n if (layerType && (layerType === 'fill' || layerType === 'line')) {\n if (layerStyle[property]) {\n this.map.setPaintProperty(layerID, property, layerStyle[property]);\n }\n }\n }\n }\n\n clearStyleLayersByType(filterType: FilterType, filterValues: string[], property: string) {\n if (!this.map) return;\n\n let styleJson = this.map.getStyle();\n let layers = styleJson.layers;\n\n let updatedLayersData = this.metaAtlasCore.clearStyleLayersByType(layers, filterType, filterValues, property);\n\n for (let index = 0; index < updatedLayersData.length; index += 1) {\n const layerID = updatedLayersData[index].id;\n const layerStyle = updatedLayersData[index].paint;\n const layerType = updatedLayersData[index].type;\n if (layerType && (layerType === 'fill' || layerType === 'line')) {\n if (layerStyle[property]) {\n this.map.setPaintProperty(layerID, property, layerStyle[property]);\n }\n }\n }\n }\n\n changeTerminalInFocusToUserViewpoint(defaultFloor: object = {}) {\n let center = this.map.getCenter().wrap();\n const centerArray: [number, number] = [center.lng, center.lat];\n // console.log('center: ', center);\n if (this.metaAtlasCore.checkUserViewport(centerArray, this.getCurrentFocusBuilding(), this.getCurrentFocusFloor())) return true;\n //get building to focus to\n let building = this.metaAtlasCore.getUserViewportBuilding(centerArray);\n // console.log(\"focus to:\");\n // console.log(building);\n if (!building) return false;\n //focus to default floor provided\n if (building[\"name\"] in defaultFloor) {\n this.focusTo(defaultFloor[building[\"name\"]], false);\n return true;\n }\n //focus to default floor in focusTree\n // if (!building.hasOwnProperty(\"defaultFloorPath\")) return true;\n // this.focusTo(building[\"defaultFloorPath\"], false);\n\n return true;\n }\n\n isLocationWithinHongKong(location: Position) {\n // Define the polygon coordinates\n const polygonCoordinates = [\n [\n 103.59716039266556,\n 1.2570288388163817\n ],\n [\n 103.5792058079661,\n 1.2001127572538621\n ],\n [\n 103.69481581677104,\n 1.2005505778590049\n ],\n [\n 103.9124604166791,\n 1.2408297702235416\n ],\n [\n 104.07843084598773,\n 1.3003717948835174\n ],\n [\n 104.09332001378709,\n 1.3428384139758691\n ],\n [\n 104.06568408463107,\n 1.4395702492902842\n ],\n [\n 104.01405273250049,\n 1.430831826129534\n ],\n [\n 103.94486100905976,\n 1.4264524124152587\n ],\n [\n 103.88661860370877,\n 1.4347670822090777\n ],\n [\n 103.84020398120549,\n 1.470670314084117\n ],\n [\n 103.79466396668937,\n 1.467591709607774\n ],\n [\n 103.75700361138325,\n 1.4470255906078648\n ],\n [\n 103.72197278477057,\n 1.4605952336399213\n ],\n [\n 103.68041038922672,\n 1.4408697939934143\n ],\n [\n 103.64577440712543,\n 1.379174061413977\n ],\n [\n 103.59716039266556,\n 1.2570288388163817\n ],\n [\n 103.59716039266556,\n 1.2570288388163817\n ] // Close the polygon by repeating the first point\n ];\n\n // Create the polygon using Turf.js\n const polygon = turfPolygon([polygonCoordinates]);\n\n // Define the point to check\n const point = turfPoint(location); // Replace with your point's coordinates\n\n // Check if the point is within the polygon\n const isInside = booleanPointInPolygon(point, polygon);\n\n return isInside;\n }\n\n getMapObjectsByFilteredLocalRef(...args: Parameters<typeof this.metaAtlasCore.getMapObjectsByName>) {\n return this.metaAtlasCore.getMapObjectsByFilteredLocalRef(...args);\n }\n\n getMapObjectsByName(...args: Parameters<typeof this.metaAtlasCore.getMapObjectsByName>) {\n return this.metaAtlasCore.getMapObjectsByName(...args);\n }\n\n getMapObjectById(...args: Parameters<typeof this.metaAtlasCore.getMapObjectById>) {\n return this.metaAtlasCore.getMapObjectById(...args);\n }\n\n getMapObjectByLocalRef(...args: Parameters<typeof this.metaAtlasCore.getMapObjectByLocalRef>) {\n return this.metaAtlasCore.getMapObjectByLocalRef(...args);\n }\n\n getMapObjectMatchingLocalRef(...args: Parameters<typeof this.metaAtlasCore.getMapObjectMatchingLocalRef>) {\n return this.metaAtlasCore.getMapObjectMatchingLocalRef(...args);\n }\n \n getMapObjectsMatchingLocalRefs(...args: Parameters<typeof this.metaAtlasCore.getMapObjectsMatchingLocalRefs>) {\n return this.metaAtlasCore.getMapObjectsMatchingLocalRefs(...args);\n }\n\n getMapObjectsByWhatTaxonomy(...args: Parameters<typeof this.metaAtlasCore.getMapObjectsByWhatTaxonomy>) {\n return this.metaAtlasCore.getMapObjectsByWhatTaxonomy(...args);\n }\n\n getMapObjectsByWhatTaxonomyAPI(...args: Parameters<typeof this.metaAtlasCore.getMapObjectsByWhatTaxonomyAPI>) {\n return this.metaAtlasCore.getMapObjectsByWhatTaxonomyAPI(...args);\n }\n\n getMapObjectsByWhereTaxonomy(...args: Parameters<typeof this.metaAtlasCore.getMapObjectsByWhereTaxonomy>) {\n return this.metaAtlasCore.getMapObjectsByWhereTaxonomy(...args);\n }\n \n getMapObjectsByWhatAndWhereTaxonomy(...args: Parameters<typeof this.metaAtlasCore.getMapObjectsByWhatAndWhereTaxonomy>) {\n return this.metaAtlasCore.getMapObjectsByWhatAndWhereTaxonomy(...args);\n }\n\n getMapObjectsInWhatTaxonomy(...args: Parameters<typeof this.metaAtlasCore.getMapObjectsInWhatTaxonomy>) {\n return this.metaAtlasCore.getMapObjectsInWhatTaxonomy(...args);\n }\n\n getMapObjectsInWhereTaxonomy(...args: Parameters<typeof this.metaAtlasCore.getMapObjectsInWhereTaxonomy>) {\n return this.metaAtlasCore.getMapObjectsInWhereTaxonomy(...args);\n }\n\n // Routing\n computeRoute(...args: Parameters<typeof this.routingVisualizer.computeRoute>) {\n return this.routingVisualizer.computeRoute(...args);\n }\n \n computeRoutes(mapObjectIds: string[], wheelChairAccessibleRouteOnly = false, source: EventSource) {\n const ref = this;\n const logRouteEvent = async () => {\n const getNameByIdAsync = (id) => {\n return new Promise((resolve) => {\n if (typeof id !== 'string') resolve('User GPS Location');\n ref.getMapObjectById(id, (mapObj: metaFeature[]) => {\n resolve(mapObj[0]?.name);\n });\n });\n }\n\n const getNamesFromIds = async (idList) => {\n const namePromises = idList.map(id => getNameByIdAsync(id));\n return await Promise.all(namePromises);\n }\n\n const names = await getNamesFromIds(mapObjectIds);\n names.forEach(name => {\n this.logAnalyticsEvent('route_per_object', { \n destination: name,\n route_per_object_event_source: source,\n }) \n });\n this.logAnalyticsEvent('route', { \n destinations: names,\n route_event_source: source,\n }) \n };\n\n logRouteEvent();\n return this.routingVisualizer.computeRoutes(mapObjectIds, wheelChairAccessibleRouteOnly);\n }\n\n setActiveRoute(...args: Parameters<typeof this.routingVisualizer.setActiveRoute>) {\n return this.routingVisualizer.setActiveRoute(...args);\n }\n\n getActiveRoute(...args: Parameters<typeof this.routingVisualizer.getActiveRoute>) {\n return this.routingVisualizer.getActiveRoute(...args);\n }\n\n highlightRouteSegment(...args: Parameters<typeof this.routingVisualizer.highlightRouteSegment>) {\n return this.routingVisualizer.highlightRouteSegment(...args);\n } \n\n clearRoute(...args: Parameters<typeof this.routingVisualizer.clearRoute>) {\n return this.routingVisualizer.clearRoute(...args);\n }\n\n // Drawing\n drawGeometryOnMap(type: string, onDrawEnd: (drawnFeature: maplibregl.Feature) => void, onlyVisibleAtCurrentFocus = false) : boolean {\n //if already in edit mode\n if (this.mapBoxDraw.getMode() !== 'simple_select') return false;\n\n let modeChanged = false;\n if (type === 'draw_point') {\n this.mapBoxDraw.changeMode(\"draw_point\");\n modeChanged = true;\n }\n else if (type === 'draw_line_string') {\n this.mapBoxDraw.changeMode(\"draw_line_string\");\n modeChanged = true;\n }\n else if (type === 'draw_polygon') {\n this.mapBoxDraw.changeMode(\"draw_polygon\");\n modeChanged = true;\n }\n else if (type === 'draw_marker') {\n this.mapBoxDraw.changeMode(\"draw_marker\");\n modeChanged = true;\n }\n else console.warn(\"Unsupported mode passed to drawGeometryOnMap\");\n\n if (modeChanged) {\n this.map.once('draw.create', (drawings: Array<Object>) => {\n let finalDrawing = drawings['features'][0];\n finalDrawing.properties.id = finalDrawing.id;\n if (onlyVisibleAtCurrentFocus) finalDrawing.properties.dimension_where = this.getCurrentFocus();\n else finalDrawing.properties.dimension_where = this.defaultFocusedTaxonomy;\n onDrawEnd(finalDrawing);\n })\n\n this.map.once('draw.modechange', () => {\n this.mapBoxDraw.deleteAll();\n // if (this.mapBoxDraw.getMode() === 'simple_select') onDrawEnd();\n // else console.warn(\"Unexpected mode received in mode change callback\");\n })\n }\n\n return modeChanged;\n }\n\n isInDrawMode() {\n return (this.mapBoxDraw && this.mapBoxDraw.getAll().features.length > 0);\n }\n\n addDrawingsToBaseMap(drawings: Array<maplibregl.Feature>) {\n this.drawGeojsonData.features = this.drawGeojsonData.features.concat(drawings);\n (this.map.getSource(this.mapBoxDrawSourceID) as maplibregl.GeoJSONSource).setData(this.drawGeojsonData as any);\n }\n\n getDrawingById(id: string) {\n for (let index = 0; index < this.drawGeojsonData.features.length; index++) {\n const drawing = this.drawGeojsonData.features[index];\n if (drawing.id === id) {\n return drawing;\n }\n }\n return undefined;\n }\n\n editDrawing(id: string) {\n if (id === undefined) {\n console.warn(\"maplibregl.Feature data passed to editDrawing does not contain an id. Edit request cancelled. Make sure the feature data passed in was created using draw\");\n return false;\n }\n let drawing = this.getDrawingById(id);\n if (drawing === undefined) {\n console.warn(\"There is no data against the id passed in to editDrawing, operation cancelled.\");\n return false;\n }\n\n let featureCollection = {\n type: 'FeatureCollection',\n features: [drawing],\n }\n //console.log(featureCollection)\n this.mapBoxDraw.set(featureCollection as any);\n \n const saveEditsToBaseMap = (featureId) => {\n const updatedFeature = this.mapBoxDraw.get(featureId);\n this.mapBoxDraw.deleteAll();\n\n if (updatedFeature) {\n let featureFoundInBaseMapData = false;\n for (let index = 0; index < this.drawGeojsonData.features.length; index++) {\n const feature = this.drawGeojsonData.features[index];\n if (feature.id === updatedFeature.id) {\n this.drawGeojsonData.features[index] = updatedFeature as any;\n featureFoundInBaseMapData = true;\n }\n }\n\n if (featureFoundInBaseMapData) (this.map.getSource(this.mapBoxDrawSourceID) as maplibregl.GeoJSONSource).setData(this.drawGeojsonData as any);\n else console.warn(\"Edited feature data not found in base map. Make sure addFeaturesToBaseMap was called on feature data before editing.\");\n }\n }\n\n if ((drawing.geometry as any).type !== 'Point') {\n if (drawing.properties.marker !== undefined) {\n this.mapBoxDraw.changeMode('marker_select', {\n featureId: drawing.id\n });\n }\n else {\n this.mapBoxDraw.changeMode('direct_select', {\n featureId: drawing.id\n });\n }\n\n this.map.once('draw.modechange', () => {\n if (this.mapBoxDraw.getMode() !== 'simple_select') return\n saveEditsToBaseMap(drawing.id);\n })\n }\n else {\n let featureToEditSelectedAlready = false;\n const onSelectionChanged = (selectionData) => {\n //console.log(selectionData, drawing)\n if (selectionData.features.length > 0 && selectionData.features[0].id === drawing.id) {\n if (!featureToEditSelectedAlready) {\n featureToEditSelectedAlready = true;\n }\n }\n else if (featureToEditSelectedAlready) {\n saveEditsToBaseMap(drawing.id);\n this.map.off('draw.selectionchange', onSelectionChanged);\n }\n }\n this.map.on('draw.selectionchange', onSelectionChanged);\n }\n\n return true;\n }\n\n removeDrawing(id: string) {\n for (let index = 0; index < this.drawGeojsonData.features.length; index++) {\n const drawing = this.drawGeojsonData.features[index];\n if (drawing.id === id) {\n this.drawGeojsonData.features.splice(index, 1);\n (this.map.getSource(this.mapBoxDrawSourceID) as maplibregl.GeoJSONSource).setData(this.drawGeojsonData as any);\n return true;\n }\n }\n return false;\n }\n\n createMarker(options: maplibregl.MarkerOptions) {\n if (options === undefined) options = {};\n\n options.draggable = true;\n options.color = '#FFB52E';\n const marker = new maplibregl.Marker(options)\n .setLngLat(this.map.getCenter())\n .addTo(this.map);\n\n this.map.once('click', () => {\n marker.setDraggable(false);\n\n // update color\n const color = '#3FB1CE'\n let markerElement = marker.getElement();\n markerElement\n .querySelectorAll('svg g[fill=\"' + marker._color + '\"]')[0]\n .setAttribute(\"fill\", color);\n marker._color = color;\n })\n\n return marker;\n }\n\n getCoordinates(feature: maplibregl.Feature) : any[] {\n return getCoords(feature as any);\n }\n\n getLength(feature: maplibregl.Feature, options = { units: 'kilometers' as Units }) : number | undefined {\n if (feature.geometry && (feature.geometry as any).type) {\n const type = (feature.geometry as any).type;\n if (type === 'LineString' || type === 'MultiLineString') {\n return length(feature as any, options as any)\n }\n }\n console.warn(\"Unsupported geometry type provided to getLength\");\n return undefined;\n }\n\n getArea(feature: maplibregl.Feature) : number {\n return area(feature as any);\n }\n\n /**\n * Get the 3D map instance for 3D model operations\n */\n getMap3D() {\n return this.map3D;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"meta-atlas-sdk.js","names":["maplibregl","_interopRequireWildcard","require","_jquery","_interopRequireDefault","_invariant","_helpers","_length","_area","_cloneDeep","_mapboxGlDraw","_customStyles","_draw_marker","_marker_select","_metaAtlasSdkCore","_MainMap","_app","_analytics","_index","_customerLayer","_customerLayerVariant","_booleanPointInPolygon","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","FilterType","EventSource","exports","DEFAULT_MAP_STYLE","MetaAtlasSdk","setupFirebase","firebaseConfig","apiKey","authDomain","projectId","storageBucket","messagingSenderId","appId","measurementId","firebaseApp","initializeApp","analytics","getAnalytics","console","log","logAnalyticsEvent","eventName","properties","warn","logEvent","onLoad","mapLoaded","apiAuthenticationCallbackReceived","routingVisualizer","setupRouting","map","onLoadCallback","onLoadFail","message","onFailCallbackSent","onLoadFailCallback","initMetaAtlasCore","onRoutingStatusUpdate","onSearchStatusUpdate","metaAtlasCore","init","empApiURL","accessToken","secretKey","data","authenticated","setupMapObjectSearch","map3D","MainMap","constructor","undefined","errorMessage","defaultFocusedTaxonomy","RoutingVisualizer","type","features","jsonToPass","onLoaded","customerLayerUrl","sourceLayer","$","getJSON","customerLayers","CustomerLayers","layer","addLayer","on","id","clickedFeature","overRideSelectionOfDrawnPointGeometry","feature_clicked","title","isSearchable","coords","geometry","JSON","parse","center","coordinates","setLastClickedFeature","mapObjectId","myMapObjectId","name","whatDimension","dimension_what","whereDimension","dimension_where","clickEvent","mapBoxDraw","CustomerLayer","CustomerLayersVariant","CustomerLayerVariant","roleName","verNum","MetaAtlasCore","setupMap","role","mapDivOrMap","Map","container","style","zoom","pitch","bearing","antialias","attributionControl","setupLayers","addSource","url","tileServer","token","lastClickedDrawing","setDrawing","layersToAdd","includes","setupMapBoxDraw","loaded","error","MapboxDraw","displayControlsDefault","userProperties","modes","draw_marker","DrawMarker","marker_select","MarkerSelect","styles","mapBoxDrawDefaultStyles","addControl","mapBoxDrawSourceID","drawGeojsonData","index","customStyles","element","getDrawingById","feature","getMode","getAll","mapBoxDrawFeature","deleteAll","directSelectOptions","featureId","getFocusTree","where","geom","props","getLastClickedFeature","getLastClickedDrawing","clickedDrawing","getMidPointOfFeature","dropPin","mapItemSelected","popupStyle","replaceLast","pinObj","markerElement","document","createElement","innerHTML","popup","Marker","setLngLat","addTo","popups","remove","dropMarkerForRouting","destinations","destination","_destination$selected","_destination$selected2","selectedLocation","marker","color","markers","clearMarker","extractLocation","text","match","hidePin","pinId","targetPinId","lastPin","pinToHide","find","pin","popupElem","getElement","display","concat","hidePins","obj","showPin","showPins","clearPin","targetPinIndex","findIndex","splice","clearPins","removePin","getCurrentFocus","getCurrentFocusBuilding","getCurrentFocusFloor","addUserLayer","UserLayers","filterWhereDimension","dimensionWhere","userLayers","cloneDeep","updatedUserLayersData","filterBaseMapWhereDimension","layerID","layerFilter","setFilter","layers","getFilter","updatedLayersData","focusTo","whereTaxonomyPath","moveCamera","isMobile","window","innerWidth","flyToConfig","getFlyToLocation","flyTo","getCenter","getZoom","getBearing","speed","filterLayersByCategories","filterType","filterValues","geomType","dimensionWhat","filterLayersByType","styleLayersByType","property","styleJson","getStyle","layerStyle","paint","layerType","setPaintProperty","clearStyleLayersByType","changeTerminalInFocusToUserViewpoint","defaultFloor","wrap","centerArray","lng","lat","checkUserViewport","building","getUserViewportBuilding","isLocationWithinHongKong","location","polygonCoordinates","polygon","turfPolygon","point","turfPoint","isInside","booleanPointInPolygon","getMapObjectsByFilteredLocalRef","getMapObjectsByName","getMapObjectById","getMapObjectByLocalRef","getMapObjectMatchingLocalRef","getMapObjectsMatchingLocalRefs","getMapObjectsByWhatTaxonomy","getMapObjectsByWhatTaxonomyAPI","getMapObjectsByWhereTaxonomy","getMapObjectsByWhatAndWhereTaxonomy","getMapObjectsInWhatTaxonomy","getMapObjectsInWhereTaxonomy","computeRoute","computeRoutes","mapObjectIds","wheelChairAccessibleRouteOnly","source","ref","logRouteEvent","getNameByIdAsync","Promise","resolve","mapObj","_mapObj$","getNamesFromIds","idList","namePromises","all","names","route_per_object_event_source","route_event_source","setActiveRoute","getActiveRoute","highlightRouteSegment","clearRoute","drawGeometryOnMap","onDrawEnd","onlyVisibleAtCurrentFocus","modeChanged","changeMode","once","drawings","finalDrawing","isInDrawMode","addDrawingsToBaseMap","getSource","setData","drawing","editDrawing","featureCollection","saveEditsToBaseMap","updatedFeature","featureFoundInBaseMapData","featureToEditSelectedAlready","onSelectionChanged","selectionData","off","removeDrawing","createMarker","options","draggable","setDraggable","querySelectorAll","_color","setAttribute","getCoordinates","getCoords","getLength","units","getArea","area","getMap3D"],"sources":["../../../src/meta-atlas-sdk/meta-atlas-sdk.ts"],"sourcesContent":["// const maplibregl = require('maplibre-gl');\nimport * as maplibregl from 'maplibre-gl';\nimport $ from \"jquery\";\n\nimport 'maplibre-gl/dist/maplibre-gl.css';\nimport { getCoords } from '@turf/invariant';\nimport { Units, feature as turfFeature, lineString as turfLine, point as turfPoint, polygon as turfPolygon, multiPolygon as turfMultiPolygon } from '@turf/helpers';\nimport { Position } from 'geojson';\nimport length from '@turf/length';\nimport area from '@turf/area';\nimport cloneDeep from 'lodash/cloneDeep';\n\nimport MapboxDraw from '@mapbox/mapbox-gl-draw';\nimport {customStyles, mapBoxDrawDefaultStyles} from './customStyles';\nimport DrawMarker from './mapbox_draw_custom_modes/draw_marker';\nimport MarkerSelect from './mapbox_draw_custom_modes/marker_select';\n\nimport { MetaAtlasCore, metaFeature, clickedMetaFeature } from './MetaAtlasCore/meta-atlas-sdk-core';\n\nimport MainMap from './3DMap/MainMap';\n\nimport { FirebaseApp, initializeApp } from 'firebase/app';\nimport { Analytics, getAnalytics, logEvent } from \"firebase/analytics\";\nimport { StatusUpdateCallbackType } from './MetaAtlasCore/fetch-published-json';\n\nimport { RoutingVisualizer } from './utils/routing-visualizer';\nimport { routeLayers } from './MetaAtlasCore/routing-core/routeLayers';\n\nimport CustomerLayer from './customerLayer';\nimport CustomerLayerVariant from './customerLayerVariant';\nimport combinedStyles from './combined_style.json';\n\nimport booleanPointInPolygon from '@turf/boolean-point-in-polygon';\nimport { getAvatarInitials, stringToHslColor } from './utils/helpers';\nenum FilterType {\n Name = 'title',\n LocalRef = 'localRef',\n WhatTaxonomy = 'dimension_what'\n}\n\nexport enum EventSource {\n UrlLoad = 'url_load',\n MapClick = 'map_click',\n BannerClick = 'banner_click',\n SearchInput = 'search_input',\n ListClick = 'list_click',\n InfoPopupClick = 'info_popup_click',\n Chatbot = 'chatbot',\n RoutingUI = 'routing_ui',\n StampRallyClick = 'stamp_rally_click',\n}\n\nexport const DEFAULT_MAP_STYLE = 'https://api.maptiler.com/maps/01985ac8-56d2-707b-afa8-68abfe8f18be/style.json?key=12H5hrITUbJ1sDrVPqkq';\n\nexport class MetaAtlasSdk {\n accessToken: string;\n secretKey: string;\n onLoadCallback: () => void = undefined;\n onLoadFailCallback: (errorMessage: string) => void = undefined;\n\n map: maplibregl.Map;\n mapBoxDraw: MapboxDraw;\n maplibregl: any;\n mapLoaded = false;\n onFailCallbackSent = false;\n \n CustomerLayers: any;\n CustomerLayersVariant: any;\n\n UserLayers: any = [];\n floorOptions: any;\n buildingRef: string;\n defaultFocusedTaxonomy = 'where.gbtb';\n currentFocus = this.defaultFocusedTaxonomy;\n \n lastClickedDrawing: any;\n map3D: MainMap;\n firebaseApp: FirebaseApp;\n analytics: Analytics;\n\n metaAtlasCore: MetaAtlasCore;\n apiAuthenticationCallbackReceived = false;\n\n routingVisualizer = new RoutingVisualizer(this);\n\n roleName: string;\n verNum: string;\n \n // When token middleware is online that will check the tokens.\n tileServer = 'https://atoms-map-tiles-middleware.sandbox.spatialverse.online';\n // HOST = 'https://atoms-sdk.qa.cag.spatialverse.online/2.0.0/';\n HOST = 'https://atoms-sdk.sandbox.spatialverse.online/';\n //empApiURL = 'https://atoms-api.changiairport.com';\n empApiURL = 'https://atoms-api.sandbox.spatialverse.online';\n // empApiURL = 'https://atoms-api.dev.cag.spatialverse.online';\n\n mapBoxDrawSourceID = 'drawnDataSource';\n drawGeojsonData = {\n type: 'FeatureCollection',\n features: [] as maplibregl.Feature[]\n };\n popups: any[] = [];\n markers: any[] = [];\n\n setupFirebase() {\n const firebaseConfig = {\n apiKey: \"AIzaSyBDWO2wNkotbgjbkyqVrC_OEAJ3mbvlheI\",\n authDomain: \"tmt-lenovo-tech-day-26-id.firebaseapp.com\",\n projectId: \"tmt-lenovo-tech-day-26-id\",\n storageBucket: \"tmt-lenovo-tech-day-26-id.firebasestorage.app\",\n messagingSenderId: \"618619544262\",\n appId: \"1:618619544262:web:cb7a7953a908aeed212dc7\",\n measurementId: \"G-HN2FS1L0P4\"\n };\n this.firebaseApp = initializeApp(firebaseConfig);\n this.analytics = getAnalytics(this.firebaseApp);\n console.log('analytics: ', this.analytics);\n }\n\n logAnalyticsEvent(eventName: string, properties?: any) {\n console.log('logAnalyticsEvent: ', eventName, properties);\n\n if (!this.analytics) {\n console.warn('Analytics is not initialized. Event not logged:', eventName);\n return;\n }\n\n if (properties) logEvent(this.analytics, eventName, properties);\n else logEvent(this.analytics, eventName);\n }\n\n onLoad() {\n if (\n this.mapLoaded === true &&\n this.apiAuthenticationCallbackReceived === true\n ) {\n // Setup routing visualizer\n this.routingVisualizer.setupRouting(this.map);\n\n // this.map3D.init(this.map);\n \n if (this.onLoadCallback) {\n this.onLoadCallback();\n }\n }\n };\n\n onLoadFail(message: string) {\n if (this.onFailCallbackSent === false) {\n this.onFailCallbackSent = true;\n if (this.onLoadFailCallback) {\n this.onLoadFailCallback(message);\n }\n }\n };\n\n initMetaAtlasCore(onRoutingStatusUpdate: StatusUpdateCallbackType, onSearchStatusUpdate: StatusUpdateCallbackType) { \n this.metaAtlasCore.init(\n this.empApiURL,\n this.accessToken,\n this.secretKey,\n (data: any) => {\n this.apiAuthenticationCallbackReceived = true;\n if (data.authenticated) {\n // Load routing data\n this.metaAtlasCore.setupRouting(onRoutingStatusUpdate);\n this.metaAtlasCore.setupMapObjectSearch(onSearchStatusUpdate);\n\n this.map3D = new MainMap(this.metaAtlasCore);\n\n this.onLoad();\n } else {\n this.onLoadFail('Failed to authenticate token');\n }\n },\n );\n }\n\n constructor(accessToken: string, secretKey: string, \n onLoad = () => {}, onLoadFail = (errorMessage: string) => {}, onRoutingStatusUpdate: StatusUpdateCallbackType = () => {}, onSearchStatusUpdate: StatusUpdateCallbackType = () => {}) {\n this.accessToken = accessToken;\n this.secretKey = secretKey;\n this.onLoadCallback = onLoad;\n this.onLoadFailCallback = onLoadFail;\n\n this.map = null;\n this.mapBoxDraw = null;\n this.maplibregl = maplibregl;\n this.CustomerLayers = CustomerLayer;\n this.CustomerLayersVariant = CustomerLayerVariant;\n this.roleName = \"changipublic\";\n this.verNum = \"1\";\n\n this.metaAtlasCore = new MetaAtlasCore();\n this.initMetaAtlasCore(onRoutingStatusUpdate, onSearchStatusUpdate);\n\n this.setupFirebase();\n }\n\n setupMap(role: string, mapDivOrMap: string | maplibregl.Map) {\n this.roleName = role;\n\n // Support both vanilla (string DOM ID) and React (Map instance) modes\n if (typeof mapDivOrMap === 'string') {\n // Vanilla mode: create new map instance\n this.map = new maplibregl.Map({\n container: mapDivOrMap,\n style: DEFAULT_MAP_STYLE,\n center: [110.40560122701005, 1.5626614114987702],\n zoom: 18,\n pitch: 42,\n bearing: 23.4,\n antialias: true,\n attributionControl: false\n });\n } else {\n // React mode: use provided map instance\n this.map = mapDivOrMap;\n }\n\n // Initialize map setup (common for both modes)\n const setupLayers = () => {\n this.map.addSource('custom', {\n type: 'vector',\n url: this.tileServer+'/'+this.roleName+'/'+this.verNum+'/geojson?accessToken='+this.accessToken,\n });\n\n this.logAnalyticsEvent('open_app', { type: 'web', token: this.accessToken })\n\n this.map.on('click', (e) => {\n // Reset last clicks\n this.metaAtlasCore.setLastClickedFeature({\n mapObjectId: null,\n coordinates: null,\n name: null,\n whatDimension: null,\n whereDimension: null,\n geometry: null,\n properties: null,\n clickEvent: e,\n });\n this.lastClickedDrawing = this.setDrawing();\n });\n\n // Setup map box draw after customerLayers so that draw geomertry shows up on top\n const layersToAdd = this.CustomerLayers;\n for (const layer of layersToAdd) {\n layer[\"source-layer\"] = 'geojson';\n this.map.addLayer(layer);\n \n this.map.on('click', layer.id, (e) => { \n //setup new clicked feature\n var clickedFeature = e.features[0];\n console.log(clickedFeature); \n this.logAnalyticsEvent('feature_clicked', { feature_clicked: clickedFeature.properties.title });\n this.overRideSelectionOfDrawnPointGeometry(clickedFeature as any);\n if (clickedFeature.properties.dimension_what.includes('what.infra.garden') || clickedFeature.properties.isSearchable && clickedFeature.properties.title != 'Transit' && clickedFeature.properties.title != 'Public') {\n const coords = clickedFeature.geometry.type === \"Polygon\" || clickedFeature.geometry.type === \"MultiPolygon\" ?\n JSON.parse(clickedFeature.properties.center) :\n (clickedFeature.geometry as any).coordinates;\n this.metaAtlasCore.setLastClickedFeature({\n mapObjectId: clickedFeature.properties.myMapObjectId,\n coordinates: coords,\n name: clickedFeature.properties.title,\n whatDimension: clickedFeature.properties.dimension_what,\n whereDimension: clickedFeature.properties.dimension_where,\n geometry: clickedFeature.geometry,\n properties: clickedFeature.properties as any,\n clickEvent: e,\n });\n }\n });\n }\n \n this.mapLoaded = true;\n this.setupMapBoxDraw();\n };\n\n // Check if map is already loaded (React mode with pre-existing map instance)\n if (this.map.loaded()) {\n // Map is already loaded, execute initialization directly\n setupLayers();\n } else {\n // Map not loaded yet, wait for load event (Vanilla mode)\n this.map.on('load', setupLayers);\n }\n\n this.map.on('error', (error: ErrorEvent) => {\n this.onLoadFail(error.message);\n });\n }\n\n setupMapBoxDraw() {\n this.mapBoxDraw = new MapboxDraw({\n displayControlsDefault: false,\n userProperties: true,\n modes: {\n ...MapboxDraw.modes,\n draw_marker: DrawMarker,\n marker_select: MarkerSelect\n },\n styles: mapBoxDrawDefaultStyles,\n });\n\n this.map.addControl(this.mapBoxDraw as any);\n\n this.map.addSource(this.mapBoxDrawSourceID, {\n 'type': 'geojson',\n 'data': this.drawGeojsonData\n });\n\n for (let index = 0; index < customStyles.length; index++) {\n const element = customStyles[index];\n element['source'] = this.mapBoxDrawSourceID\n this.map.addLayer(element as any)\n\n this.map.on('click', element.id, (e) => {\n this.metaAtlasCore.setLastClickedFeature({\n mapObjectId: null,\n coordinates: null,\n name: null,\n whatDimension: null,\n whereDimension: null,\n geometry: null,\n properties: null,\n clickEvent: e,\n });\n var clickedFeature = e.features[0];\n this.overRideSelectionOfDrawnPointGeometry(clickedFeature as any);\n if (clickedFeature.properties.id) this.lastClickedDrawing = this.getDrawingById(clickedFeature.properties.id);\n else this.lastClickedDrawing = this.setDrawing();\n });\n }\n\n this.mapLoaded = true;\n this.onLoad();\n }\n\n addCustomerLayer = (map: any, jsonToPass: any, onLoaded: Function) => {\n let customerLayerUrl = jsonToPass.customerLayerUrl;\n let sourceLayer = jsonToPass.sourceLayer;\n $.getJSON(customerLayerUrl, (customerLayers) => {\n this.CustomerLayers = customerLayers;\n for (const layer of this.CustomerLayers) {\n layer[\"source-layer\"] = sourceLayer;\n map.addLayer(layer);\n\n this.map.on('click', layer.id, (e) => { \n //setup new clicked feature\n const clickedFeature = e.features[0];\n this.overRideSelectionOfDrawnPointGeometry(clickedFeature as any);\n console.log('clickedFeature: ', clickedFeature)\n this.logAnalyticsEvent('feature_clicked', { feature_clicked: clickedFeature.properties.title })\n if (clickedFeature.properties.isSearchable && clickedFeature.properties.title != 'Transit' && clickedFeature.properties.title != 'Public') {\n const coords = clickedFeature.geometry.type === \"Polygon\" ?\n JSON.parse(clickedFeature.properties.center) :\n (clickedFeature.geometry as any).coordinates;\n this.metaAtlasCore.setLastClickedFeature({\n mapObjectId: clickedFeature.properties.myMapObjectId,\n coordinates: coords,\n name: clickedFeature.properties.title,\n whatDimension: clickedFeature.properties.dimension_what,\n whereDimension: clickedFeature.properties.dimension_where,\n geometry: clickedFeature.geometry,\n properties: clickedFeature.properties as any,\n clickEvent: e,\n });\n }\n });\n }\n\n onLoaded();\n });\n }\n\n overRideSelectionOfDrawnPointGeometry(feature: maplibregl.Feature) {\n // Check if a drawn point geometry is currently selected, it will be consider selected both in highlighted & non-highlighted state.\n if (this.mapBoxDraw && this.mapBoxDraw.getMode() === 'simple_select' && this.mapBoxDraw.getAll().features.length === 1) {\n const mapBoxDrawFeature = this.mapBoxDraw.getAll().features;\n // If the passed in feature is not a drawn feature, then unselect drawn point type geometry\n if (feature.properties.id === undefined) this.mapBoxDraw.deleteAll();\n // If the passed in feature is a drawn feature, then unselect drawn point type geometry & highlight the passed in drawn geometry\n else if (feature.properties.id !== undefined && mapBoxDrawFeature[0].id !== feature.properties.id) {\n this.mapBoxDraw.deleteAll();\n const directSelectOptions = {\n featureId: feature.properties.id\n };\n // TODO: figure out why this doesn't work\n // this.mapBoxDraw.changeMode('direct_select', directSelectOptions)\n }\n } \n }\n\n getFocusTree() {\n return this.metaAtlasCore.getFocusTree();\n }\n\n setDrawing(id=null, where=null, geom=null, props=null) {\n const clickedFeature = {\n \"id\": id,\n \"where\": where,\n \"geometry\": geom,\n \"properties\": props\n }\n return clickedFeature;\n }\n\n getLastClickedFeature() {\n return this.metaAtlasCore.getLastClickedFeature();\n }\n\n getLastClickedDrawing() {\n let clickedDrawing = this.lastClickedDrawing;\n if (!this.lastClickedDrawing || (this.lastClickedDrawing && (this.lastClickedDrawing.id === null || this.lastClickedDrawing.where === null))) {\n clickedDrawing = this.setDrawing();\n }\n return clickedDrawing;\n }\n\n getMidPointOfFeature(feature: any) {\n return this.metaAtlasCore.getMidPointOfFeature(feature);\n }\n\n dropPin(mapItemSelected: any, popupStyle: string, replaceLast: boolean = true) {\n const pinObj = {\n feature: mapItemSelected,\n popupStyle: popupStyle\n };\n\n const markerElement = document.createElement('div');\n markerElement.innerHTML = pinObj.popupStyle;\n\n const popup = new maplibregl.Marker({ element: markerElement })\n .setLngLat(this.getMidPointOfFeature(pinObj.feature))\n .addTo(this.map);\n\n if (replaceLast) {\n if (this.popups.length > 1) {\n this.popups[this.popups.length - 1].popup.remove();\n this.popups[this.popups.length - 1].popup = popup;\n this.popups[this.popups.length - 1].id = pinObj.feature.mapObjectId;\n } else {\n if (this.popups.length > 0) this.popups[this.popups.length - 1].popup.remove();\n this.popups = [{ popup: popup, id: pinObj.feature.mapObjectId }];\n }\n } else {\n this.popups.push({ popup: popup, id: pinObj.feature.mapObjectId });\n }\n\n return this.popups[this.popups.length - 1].id;\n }\n\n dropMarkerForRouting(destinations: any[]) {\n destinations.forEach(destination => {\n console.log(destination.selectedLocation, 'destination.selectedLocation');\n const coordinates = destination.selectedLocation?.coordinates\n ? destination.selectedLocation.coordinates\n : destination.selectedLocation?.geometry?.coordinates;\n\n console.log(coordinates, 'Coordinates'); // Debugging line\n\n if (coordinates && coordinates.length === 2) {\n const marker = new this.maplibregl.Marker({ color: '#188689' })\n .setLngLat([coordinates[0], coordinates[1]]) // Ensure correct format\n .addTo(this.map as any);\n\n this.markers.push(marker);\n } else {\n console.error('Invalid coordinates:', coordinates);\n }\n });\n }\n\n clearMarker() {\n if (this.markers && this.markers.length > 0) {\n this.markers.forEach((marker: any) => {\n marker.remove();\n });\n }\n this.markers = [];\n }\n\n extractLocation(text: string) {\n const match = text.match(/^(?:[^_]*_){3}([^_]*)/);\n return match ? match[1] : null;\n }\n\n hidePin(pinId: string = '-1'): void {\n let targetPinId: string;\n\n if (pinId === '-1') {\n const lastPin = this.popups[this.popups.length - 1];\n if (!lastPin) {\n console.warn('No pins available to hide.');\n return;\n }\n targetPinId = lastPin.id;\n } else {\n targetPinId = pinId;\n }\n\n const pinToHide = this.popups.find(pin => pin.id === targetPinId);\n\n if (pinToHide) {\n let popupElem = pinToHide.popup.getElement();\n if (popupElem) {\n popupElem.style.display = 'none';\n }\n console.log(`Pin with ID: ${targetPinId} is now hidden.`);\n } else {\n console.warn(`Pin with ID: ${targetPinId} not found.`);\n }\n }\n\n hidePins() {\n if (this.popups.length > 0) {\n this.popups.forEach(obj => {\n let popupElem = obj.popup.getElement();\n if (popupElem) {\n console.log(popupElem.style.display);\n\n popupElem.style.display = 'none';\n }\n });\n }\n }\n\n showPin(pinId: string = '-1'): void {\n let targetPinId: string;\n\n if (pinId === '-1') {\n const lastPin = this.popups[this.popups.length - 1];\n if (!lastPin) {\n console.warn('No pins available to show.');\n return;\n }\n targetPinId = lastPin.id;\n } else {\n targetPinId = pinId;\n }\n\n const pinToHide = this.popups.find(pin => pin.id === targetPinId);\n\n if (pinToHide) {\n let popupElem = pinToHide.popup.getElement();\n if (popupElem) {\n popupElem.style.display = 'flex';\n }\n console.log(`Pin with ID: ${targetPinId} is now visible.`);\n } else {\n console.warn(`Pin with ID: ${targetPinId} not found.`);\n }\n }\n\n showPins() {\n if (this.popups.length > 0) {\n this.popups.forEach(obj => {\n let popupElem = obj.popup.getElement();\n if (popupElem) {\n popupElem.style.display = 'flex';\n }\n });\n }\n }\n\n clearPin(pinId: string = '-1'): void {\n let targetPinIndex: number;\n\n if (pinId === '-1') {\n targetPinIndex = this.popups.length - 1;\n if (targetPinIndex < 0) {\n console.warn('No pins available to clear.');\n return;\n }\n } else {\n targetPinIndex = this.popups.findIndex(pin => pin.id === pinId);\n if (targetPinIndex === -1) {\n console.warn(`Pin with ID: ${pinId} not found.`);\n return;\n }\n }\n\n if (this.popups[targetPinIndex]) {\n this.popups[targetPinIndex].popup.remove();\n this.popups.splice(targetPinIndex, 1);\n }\n }\n\n clearPins() {\n if (this.popups.length > 0) {\n this.popups.forEach(obj => {\n obj.popup.remove();\n });\n this.popups.length = 0;\n }\n }\n\n removePin() {\n $('.mapboxgl-popup').remove();\n }\n\n getCurrentFocus() {\n return this.metaAtlasCore.getCurrentFocus();\n }\n\n getCurrentFocusBuilding(){\n return this.metaAtlasCore.getCurrentFocusBuilding();\n }\n\n getCurrentFocusFloor(){\n return this.metaAtlasCore.getCurrentFocusFloor();\n }\n\n addUserLayer(layer: any) {\n this.UserLayers.push(layer);\n this.map.addLayer(layer);\n\n this.map.on('click', layer.id, (e) => { \n //setup new clicked feature\n var clickedFeature = e.features[0];\n const coords = clickedFeature.geometry.type === \"Polygon\" ?\n JSON.parse(clickedFeature.properties.center) :\n (clickedFeature.geometry as any).coordinates;\n this.metaAtlasCore.setLastClickedFeature({\n mapObjectId: clickedFeature.properties.id,\n coordinates: coords,\n name: clickedFeature.properties.name,\n whatDimension: clickedFeature.properties.dimension_what,\n whereDimension: clickedFeature.properties.dimension_where,\n geometry: clickedFeature.geometry,\n properties: clickedFeature.properties as any,\n clickEvent: e,\n });\n });\n }\n\n filterWhereDimension(dimensionWhere: string) {\n // filter user layers\n let userLayers = cloneDeep(this.UserLayers);\n if (userLayers.length > 0) {\n let updatedUserLayersData = this.metaAtlasCore.filterBaseMapWhereDimension(userLayers, dimensionWhere);\n for (let index = 0; index < updatedUserLayersData.length; index++) {\n const layerID = updatedUserLayersData[index].id;\n const layerFilter = updatedUserLayersData[index].filter;\n userLayers[index].filter = layerFilter;\n this.map.setFilter(layerID, layerFilter);\n }\n }\n\n // filter basemap layers\n let layers = cloneDeep(this.CustomerLayers);\n for (let index = 0; index < layers.length; index += 1) {\n const layerID = layers[index].id;\n const layerFilter = this.map.getFilter(layerID);\n layers[index].filter = layerFilter;\n }\n let updatedLayersData =\n this.metaAtlasCore.filterBaseMapWhereDimension(\n layers,\n dimensionWhere,\n );\n \n for (let index = 0; index < updatedLayersData.length; index += 1) {\n const layerID = updatedLayersData[index].id;\n const layerFilter = updatedLayersData[index].filter;\n this.map.setFilter(layerID, (layerFilter));\n }\n\n // // filter non-basemap layers\n // layers = cloneDeep(customStyles.concat(routeLayers));\n // for (let index = 0; index < layers.length; index += 1) {\n // const layerID = layers[index].id;\n // const layerFilter = this.map.getFilter(layerID);\n // layers[index].filter = layerFilter;\n // }\n // updatedLayersData =\n // this.metaAtlasCore.filterLayersWhereDimension(\n // layers,\n // dimensionWhere,\n // );\n \n // for (let index = 0; index < updatedLayersData.length; index += 1) {\n // const layerID = updatedLayersData[index].id;\n // const layerFilter = updatedLayersData[index].filter;\n // }\n }\n\n focusTo(whereTaxonomyPath: string, moveCamera: boolean = true){\n const map = this.map;\n let dimensionWhere = whereTaxonomyPath;\n if (!dimensionWhere || !map) return;\n\n console.log(whereTaxonomyPath, 'whereTaxonomyPath');\n \n this.filterWhereDimension(dimensionWhere);\n const isMobile = window.innerWidth < 768;\n if (moveCamera) {\n const flyToConfig = this.metaAtlasCore.getFlyToLocation(dimensionWhere, isMobile);\n this.map.flyTo({\n center: flyToConfig.center ? flyToConfig.center : this.map.getCenter(),\n zoom: flyToConfig.zoom ? flyToConfig.zoom : this.map.getZoom(),\n bearing: flyToConfig.bearing ? flyToConfig.bearing : this.map.getBearing(),\n speed: 0.8,\n });\n\n // track inside so that only user requested focus is tracked\n // logEvent(this.analytics, 'focus_changed', { location: dimensionWhere });\n }\n }\n\n filterLayersByCategories(filterType: FilterType, filterValues: string[], geomType: string, dimensionWhat: string) {\n const map = this.map;\n if (!filterValues || !map) return;\n\n let layers = cloneDeep(this.CustomerLayers);\n for (let index = 0; index < layers.length; index += 1) {\n const layerID = layers[index].id;\n const layerFilter = this.map.getFilter(layerID);\n layers[index].filter = layerFilter;\n }\n let updatedLayersData = this.metaAtlasCore.filterLayersByCategories(layers, filterType, filterValues, geomType, dimensionWhat, this.map);\n\n for (let index = 0; index < updatedLayersData.length; index += 1) {\n const layerID = updatedLayersData[index].id;\n const layerFilter = updatedLayersData[index].filter;\n this.map.setFilter(layerID, layerFilter);\n }\n }\n\n filterLayersByType(filterType: FilterType, filterValues: string[], geomType = '') {\n const map = this.map;\n if (!filterValues || !map) return;\n\n let userLayers = cloneDeep(this.UserLayers);\n if (userLayers.length > 0) {\n let updatedUserLayersData = this.metaAtlasCore.filterLayersByType(userLayers, filterType, filterValues, geomType);\n for (let index = 0; index < updatedUserLayersData.length; index++) {\n const layerID = updatedUserLayersData[index].id;\n const layerFilter = updatedUserLayersData[index].filter;\n userLayers[index].filter = layerFilter;\n this.map.setFilter(layerID, layerFilter);\n }\n }\n }\n\n styleLayersByType(filterType: FilterType, filterValues: string[], property: string, value: string) {\n if (!filterValues || !this.map) return;\n\n let styleJson = this.map.getStyle();\n let layers = styleJson.layers;\n\n let updatedLayersData = this.metaAtlasCore.styleLayersByType(layers, filterType, filterValues, property, value);\n\n for (let index = 0; index < updatedLayersData.length; index += 1) {\n const layerID = updatedLayersData[index].id;\n const layerStyle = updatedLayersData[index].paint;\n const layerType = updatedLayersData[index].type;\n if (layerType && (layerType === 'fill' || layerType === 'line')) {\n if (layerStyle[property]) {\n this.map.setPaintProperty(layerID, property, layerStyle[property]);\n }\n }\n }\n }\n\n clearStyleLayersByType(filterType: FilterType, filterValues: string[], property: string) {\n if (!this.map) return;\n\n let styleJson = this.map.getStyle();\n let layers = styleJson.layers;\n\n let updatedLayersData = this.metaAtlasCore.clearStyleLayersByType(layers, filterType, filterValues, property);\n\n for (let index = 0; index < updatedLayersData.length; index += 1) {\n const layerID = updatedLayersData[index].id;\n const layerStyle = updatedLayersData[index].paint;\n const layerType = updatedLayersData[index].type;\n if (layerType && (layerType === 'fill' || layerType === 'line')) {\n if (layerStyle[property]) {\n this.map.setPaintProperty(layerID, property, layerStyle[property]);\n }\n }\n }\n }\n\n changeTerminalInFocusToUserViewpoint(defaultFloor: object = {}) {\n let center = this.map.getCenter().wrap();\n const centerArray: [number, number] = [center.lng, center.lat];\n // console.log('center: ', center);\n if (this.metaAtlasCore.checkUserViewport(centerArray, this.getCurrentFocusBuilding(), this.getCurrentFocusFloor())) return true;\n //get building to focus to\n let building = this.metaAtlasCore.getUserViewportBuilding(centerArray);\n // console.log(\"focus to:\");\n // console.log(building);\n if (!building) return false;\n //focus to default floor provided\n if (building[\"name\"] in defaultFloor) {\n this.focusTo(defaultFloor[building[\"name\"]], false);\n return true;\n }\n //focus to default floor in focusTree\n // if (!building.hasOwnProperty(\"defaultFloorPath\")) return true;\n // this.focusTo(building[\"defaultFloorPath\"], false);\n\n return true;\n }\n\n isLocationWithinHongKong(location: Position) {\n // Define the polygon coordinates\n const polygonCoordinates = [\n [\n 103.59716039266556,\n 1.2570288388163817\n ],\n [\n 103.5792058079661,\n 1.2001127572538621\n ],\n [\n 103.69481581677104,\n 1.2005505778590049\n ],\n [\n 103.9124604166791,\n 1.2408297702235416\n ],\n [\n 104.07843084598773,\n 1.3003717948835174\n ],\n [\n 104.09332001378709,\n 1.3428384139758691\n ],\n [\n 104.06568408463107,\n 1.4395702492902842\n ],\n [\n 104.01405273250049,\n 1.430831826129534\n ],\n [\n 103.94486100905976,\n 1.4264524124152587\n ],\n [\n 103.88661860370877,\n 1.4347670822090777\n ],\n [\n 103.84020398120549,\n 1.470670314084117\n ],\n [\n 103.79466396668937,\n 1.467591709607774\n ],\n [\n 103.75700361138325,\n 1.4470255906078648\n ],\n [\n 103.72197278477057,\n 1.4605952336399213\n ],\n [\n 103.68041038922672,\n 1.4408697939934143\n ],\n [\n 103.64577440712543,\n 1.379174061413977\n ],\n [\n 103.59716039266556,\n 1.2570288388163817\n ],\n [\n 103.59716039266556,\n 1.2570288388163817\n ] // Close the polygon by repeating the first point\n ];\n\n // Create the polygon using Turf.js\n const polygon = turfPolygon([polygonCoordinates]);\n\n // Define the point to check\n const point = turfPoint(location); // Replace with your point's coordinates\n\n // Check if the point is within the polygon\n const isInside = booleanPointInPolygon(point, polygon);\n\n return isInside;\n }\n\n getMapObjectsByFilteredLocalRef(...args: Parameters<typeof this.metaAtlasCore.getMapObjectsByName>) {\n return this.metaAtlasCore.getMapObjectsByFilteredLocalRef(...args);\n }\n\n getMapObjectsByName(...args: Parameters<typeof this.metaAtlasCore.getMapObjectsByName>) {\n return this.metaAtlasCore.getMapObjectsByName(...args);\n }\n\n getMapObjectById(...args: Parameters<typeof this.metaAtlasCore.getMapObjectById>) {\n return this.metaAtlasCore.getMapObjectById(...args);\n }\n\n getMapObjectByLocalRef(...args: Parameters<typeof this.metaAtlasCore.getMapObjectByLocalRef>) {\n return this.metaAtlasCore.getMapObjectByLocalRef(...args);\n }\n\n getMapObjectMatchingLocalRef(...args: Parameters<typeof this.metaAtlasCore.getMapObjectMatchingLocalRef>) {\n return this.metaAtlasCore.getMapObjectMatchingLocalRef(...args);\n }\n \n getMapObjectsMatchingLocalRefs(...args: Parameters<typeof this.metaAtlasCore.getMapObjectsMatchingLocalRefs>) {\n return this.metaAtlasCore.getMapObjectsMatchingLocalRefs(...args);\n }\n\n getMapObjectsByWhatTaxonomy(...args: Parameters<typeof this.metaAtlasCore.getMapObjectsByWhatTaxonomy>) {\n return this.metaAtlasCore.getMapObjectsByWhatTaxonomy(...args);\n }\n\n getMapObjectsByWhatTaxonomyAPI(...args: Parameters<typeof this.metaAtlasCore.getMapObjectsByWhatTaxonomyAPI>) {\n return this.metaAtlasCore.getMapObjectsByWhatTaxonomyAPI(...args);\n }\n\n getMapObjectsByWhereTaxonomy(...args: Parameters<typeof this.metaAtlasCore.getMapObjectsByWhereTaxonomy>) {\n return this.metaAtlasCore.getMapObjectsByWhereTaxonomy(...args);\n }\n \n getMapObjectsByWhatAndWhereTaxonomy(...args: Parameters<typeof this.metaAtlasCore.getMapObjectsByWhatAndWhereTaxonomy>) {\n return this.metaAtlasCore.getMapObjectsByWhatAndWhereTaxonomy(...args);\n }\n\n getMapObjectsInWhatTaxonomy(...args: Parameters<typeof this.metaAtlasCore.getMapObjectsInWhatTaxonomy>) {\n return this.metaAtlasCore.getMapObjectsInWhatTaxonomy(...args);\n }\n\n getMapObjectsInWhereTaxonomy(...args: Parameters<typeof this.metaAtlasCore.getMapObjectsInWhereTaxonomy>) {\n return this.metaAtlasCore.getMapObjectsInWhereTaxonomy(...args);\n }\n\n // Routing\n computeRoute(...args: Parameters<typeof this.routingVisualizer.computeRoute>) {\n return this.routingVisualizer.computeRoute(...args);\n }\n \n computeRoutes(mapObjectIds: string[], wheelChairAccessibleRouteOnly = false, source: EventSource) {\n const ref = this;\n const logRouteEvent = async () => {\n const getNameByIdAsync = (id) => {\n return new Promise((resolve) => {\n if (typeof id !== 'string') resolve('User GPS Location');\n ref.getMapObjectById(id, (mapObj: metaFeature[]) => {\n resolve(mapObj[0]?.name);\n });\n });\n }\n\n const getNamesFromIds = async (idList) => {\n const namePromises = idList.map(id => getNameByIdAsync(id));\n return await Promise.all(namePromises);\n }\n\n const names = await getNamesFromIds(mapObjectIds);\n names.forEach(name => {\n this.logAnalyticsEvent('route_per_object', { \n destination: name,\n route_per_object_event_source: source,\n }) \n });\n this.logAnalyticsEvent('route', { \n destinations: names,\n route_event_source: source,\n }) \n };\n\n logRouteEvent();\n return this.routingVisualizer.computeRoutes(mapObjectIds, wheelChairAccessibleRouteOnly);\n }\n\n setActiveRoute(...args: Parameters<typeof this.routingVisualizer.setActiveRoute>) {\n return this.routingVisualizer.setActiveRoute(...args);\n }\n\n getActiveRoute(...args: Parameters<typeof this.routingVisualizer.getActiveRoute>) {\n return this.routingVisualizer.getActiveRoute(...args);\n }\n\n highlightRouteSegment(...args: Parameters<typeof this.routingVisualizer.highlightRouteSegment>) {\n return this.routingVisualizer.highlightRouteSegment(...args);\n } \n\n clearRoute(...args: Parameters<typeof this.routingVisualizer.clearRoute>) {\n return this.routingVisualizer.clearRoute(...args);\n }\n\n // Drawing\n drawGeometryOnMap(type: string, onDrawEnd: (drawnFeature: maplibregl.Feature) => void, onlyVisibleAtCurrentFocus = false) : boolean {\n //if already in edit mode\n if (this.mapBoxDraw.getMode() !== 'simple_select') return false;\n\n let modeChanged = false;\n if (type === 'draw_point') {\n this.mapBoxDraw.changeMode(\"draw_point\");\n modeChanged = true;\n }\n else if (type === 'draw_line_string') {\n this.mapBoxDraw.changeMode(\"draw_line_string\");\n modeChanged = true;\n }\n else if (type === 'draw_polygon') {\n this.mapBoxDraw.changeMode(\"draw_polygon\");\n modeChanged = true;\n }\n else if (type === 'draw_marker') {\n this.mapBoxDraw.changeMode(\"draw_marker\");\n modeChanged = true;\n }\n else console.warn(\"Unsupported mode passed to drawGeometryOnMap\");\n\n if (modeChanged) {\n this.map.once('draw.create', (drawings: Array<Object>) => {\n let finalDrawing = drawings['features'][0];\n finalDrawing.properties.id = finalDrawing.id;\n if (onlyVisibleAtCurrentFocus) finalDrawing.properties.dimension_where = this.getCurrentFocus();\n else finalDrawing.properties.dimension_where = this.defaultFocusedTaxonomy;\n onDrawEnd(finalDrawing);\n })\n\n this.map.once('draw.modechange', () => {\n this.mapBoxDraw.deleteAll();\n // if (this.mapBoxDraw.getMode() === 'simple_select') onDrawEnd();\n // else console.warn(\"Unexpected mode received in mode change callback\");\n })\n }\n\n return modeChanged;\n }\n\n isInDrawMode() {\n return (this.mapBoxDraw && this.mapBoxDraw.getAll().features.length > 0);\n }\n\n addDrawingsToBaseMap(drawings: Array<maplibregl.Feature>) {\n this.drawGeojsonData.features = this.drawGeojsonData.features.concat(drawings);\n (this.map.getSource(this.mapBoxDrawSourceID) as maplibregl.GeoJSONSource).setData(this.drawGeojsonData as any);\n }\n\n getDrawingById(id: string) {\n for (let index = 0; index < this.drawGeojsonData.features.length; index++) {\n const drawing = this.drawGeojsonData.features[index];\n if (drawing.id === id) {\n return drawing;\n }\n }\n return undefined;\n }\n\n editDrawing(id: string) {\n if (id === undefined) {\n console.warn(\"maplibregl.Feature data passed to editDrawing does not contain an id. Edit request cancelled. Make sure the feature data passed in was created using draw\");\n return false;\n }\n let drawing = this.getDrawingById(id);\n if (drawing === undefined) {\n console.warn(\"There is no data against the id passed in to editDrawing, operation cancelled.\");\n return false;\n }\n\n let featureCollection = {\n type: 'FeatureCollection',\n features: [drawing],\n }\n //console.log(featureCollection)\n this.mapBoxDraw.set(featureCollection as any);\n \n const saveEditsToBaseMap = (featureId) => {\n const updatedFeature = this.mapBoxDraw.get(featureId);\n this.mapBoxDraw.deleteAll();\n\n if (updatedFeature) {\n let featureFoundInBaseMapData = false;\n for (let index = 0; index < this.drawGeojsonData.features.length; index++) {\n const feature = this.drawGeojsonData.features[index];\n if (feature.id === updatedFeature.id) {\n this.drawGeojsonData.features[index] = updatedFeature as any;\n featureFoundInBaseMapData = true;\n }\n }\n\n if (featureFoundInBaseMapData) (this.map.getSource(this.mapBoxDrawSourceID) as maplibregl.GeoJSONSource).setData(this.drawGeojsonData as any);\n else console.warn(\"Edited feature data not found in base map. Make sure addFeaturesToBaseMap was called on feature data before editing.\");\n }\n }\n\n if ((drawing.geometry as any).type !== 'Point') {\n if (drawing.properties.marker !== undefined) {\n this.mapBoxDraw.changeMode('marker_select', {\n featureId: drawing.id\n });\n }\n else {\n this.mapBoxDraw.changeMode('direct_select', {\n featureId: drawing.id\n });\n }\n\n this.map.once('draw.modechange', () => {\n if (this.mapBoxDraw.getMode() !== 'simple_select') return\n saveEditsToBaseMap(drawing.id);\n })\n }\n else {\n let featureToEditSelectedAlready = false;\n const onSelectionChanged = (selectionData) => {\n //console.log(selectionData, drawing)\n if (selectionData.features.length > 0 && selectionData.features[0].id === drawing.id) {\n if (!featureToEditSelectedAlready) {\n featureToEditSelectedAlready = true;\n }\n }\n else if (featureToEditSelectedAlready) {\n saveEditsToBaseMap(drawing.id);\n this.map.off('draw.selectionchange', onSelectionChanged);\n }\n }\n this.map.on('draw.selectionchange', onSelectionChanged);\n }\n\n return true;\n }\n\n removeDrawing(id: string) {\n for (let index = 0; index < this.drawGeojsonData.features.length; index++) {\n const drawing = this.drawGeojsonData.features[index];\n if (drawing.id === id) {\n this.drawGeojsonData.features.splice(index, 1);\n (this.map.getSource(this.mapBoxDrawSourceID) as maplibregl.GeoJSONSource).setData(this.drawGeojsonData as any);\n return true;\n }\n }\n return false;\n }\n\n createMarker(options: maplibregl.MarkerOptions) {\n if (options === undefined) options = {};\n\n options.draggable = true;\n options.color = '#FFB52E';\n const marker = new maplibregl.Marker(options)\n .setLngLat(this.map.getCenter())\n .addTo(this.map);\n\n this.map.once('click', () => {\n marker.setDraggable(false);\n\n // update color\n const color = '#3FB1CE'\n let markerElement = marker.getElement();\n markerElement\n .querySelectorAll('svg g[fill=\"' + marker._color + '\"]')[0]\n .setAttribute(\"fill\", color);\n marker._color = color;\n })\n\n return marker;\n }\n\n getCoordinates(feature: maplibregl.Feature) : any[] {\n return getCoords(feature as any);\n }\n\n getLength(feature: maplibregl.Feature, options = { units: 'kilometers' as Units }) : number | undefined {\n if (feature.geometry && (feature.geometry as any).type) {\n const type = (feature.geometry as any).type;\n if (type === 'LineString' || type === 'MultiLineString') {\n return length(feature as any, options as any)\n }\n }\n console.warn(\"Unsupported geometry type provided to getLength\");\n return undefined;\n }\n\n getArea(feature: maplibregl.Feature) : number {\n return area(feature as any);\n }\n\n /**\n * Get the 3D map instance for 3D model operations\n */\n getMap3D() {\n return this.map3D;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -4,69 +4,52 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.stringToHslColor = exports.getAvatarInitials = exports.decryptFile = void 0;
7
- function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
8
- function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
9
- function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
10
- function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
11
7
  // Utility function to convert hex string to ArrayBuffer
12
8
  function hexStringToBuffer(hexString) {
13
- var buffer = new Uint8Array(hexString.length / 2);
14
- for (var i = 0; i < hexString.length; i += 2) {
9
+ const buffer = new Uint8Array(hexString.length / 2);
10
+ for (let i = 0; i < hexString.length; i += 2) {
15
11
  buffer[i / 2] = parseInt(hexString.substr(i, 2), 16);
16
12
  }
17
13
  return buffer;
18
14
  }
19
- var decryptFile = exports.decryptFile = /*#__PURE__*/function () {
20
- var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(data, tag, secretKey) {
21
- var algorithm, originalData, importedKey, decryptedBuffer, decryptedData;
22
- return _regenerator().w(function (_context) {
23
- while (1) switch (_context.n) {
24
- case 0:
25
- algorithm = 'AES-CBC'; // Has to convert iv to
26
- originalData = Uint8Array.from(atob(tag), function (c) {
27
- return c.charCodeAt(0);
28
- }); // Import the secret key
29
- _context.n = 1;
30
- return crypto.subtle.importKey('raw', new TextEncoder().encode(secretKey), {
31
- name: algorithm
32
- }, false, ['decrypt']);
33
- case 1:
34
- importedKey = _context.v;
35
- _context.n = 2;
36
- return crypto.subtle.decrypt({
37
- name: algorithm,
38
- iv: originalData
39
- }, importedKey, hexStringToBuffer(data));
40
- case 2:
41
- decryptedBuffer = _context.v;
42
- // Convert the decrypted buffer to a UTF-8 string
43
- decryptedData = new TextDecoder().decode(decryptedBuffer);
44
- decryptedData = JSON.parse(decryptedData);
45
- console.log(decryptedData);
46
- return _context.a(2, decryptedData);
47
- }
48
- }, _callee);
49
- }));
50
- return function decryptFile(_x, _x2, _x3) {
51
- return _ref.apply(this, arguments);
52
- };
53
- }();
54
- var getAvatarInitials = exports.getAvatarInitials = function getAvatarInitials(name) {
15
+ const decryptFile = async (data, tag, secretKey) => {
16
+ const algorithm = 'AES-CBC';
17
+ // Has to convert iv to
18
+ const originalData = Uint8Array.from(atob(tag), c => c.charCodeAt(0));
19
+ // Import the secret key
20
+ const importedKey = await crypto.subtle.importKey('raw', new TextEncoder().encode(secretKey), {
21
+ name: algorithm
22
+ }, false, ['decrypt']);
23
+ // Decrypt the data
24
+ const decryptedBuffer = await crypto.subtle.decrypt({
25
+ name: algorithm,
26
+ iv: originalData
27
+ }, importedKey, hexStringToBuffer(data));
28
+ // Convert the decrypted buffer to a UTF-8 string
29
+ let decryptedData = new TextDecoder().decode(decryptedBuffer);
30
+ decryptedData = JSON.parse(decryptedData);
31
+ console.log(decryptedData);
32
+ return decryptedData;
33
+ };
34
+ exports.decryptFile = decryptFile;
35
+ const getAvatarInitials = name => {
55
36
  if (!name) return "";
56
- var words = name.trim().split(/\s+/);
37
+ const words = name.trim().split(/\s+/);
57
38
  if (words.length === 1) {
58
39
  return words[0].substring(0, 2).toUpperCase();
59
40
  }
60
41
  return (words[0][0] + words[1][0]).toUpperCase();
61
42
  };
62
- var stringToHslColor = exports.stringToHslColor = function stringToHslColor(str) {
63
- var saturation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 70;
64
- var lightness = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 50;
65
- var hash = 0;
66
- for (var i = 0; i < str.length; i++) {
43
+ exports.getAvatarInitials = getAvatarInitials;
44
+ const stringToHslColor = function (str) {
45
+ let saturation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 70;
46
+ let lightness = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 50;
47
+ let hash = 0;
48
+ for (let i = 0; i < str.length; i++) {
67
49
  hash = str.charCodeAt(i) + ((hash << 5) - hash);
68
50
  }
69
- var hue = hash % 360;
51
+ const hue = hash % 360;
70
52
  return "hsl(".concat(hue, ", ").concat(saturation, "%, ").concat(lightness, "%)");
71
53
  };
54
+ exports.stringToHslColor = stringToHslColor;
72
55
  //# sourceMappingURL=helpers.js.map