@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,5 +1,5 @@
1
- import { useMetaAtlas } from '../useMetaAtlas';
2
- import { useMetaAtlasStore } from '../../stores/useMetaAtlasStore';
1
+ import { useMetaAtlas } from "../useMetaAtlas/index.js";
2
+ import { useMetaAtlasStore } from "../../stores/useMetaAtlasStore.js";
3
3
  export function useFocus() {
4
4
  const {
5
5
  focusTo,
@@ -90,7 +90,8 @@ export function useFocus() {
90
90
  }
91
91
  return levels;
92
92
  };
93
- const getRootSiteCameraProps = (platform = 'web') => {
93
+ const getRootSiteCameraProps = function () {
94
+ let platform = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'web';
94
95
  const focusTree = getFocusTree();
95
96
  if (!focusTree || !focusTree.site || !focusTree.site.cameraConfigs) {
96
97
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["useMetaAtlas","useMetaAtlasStore","useFocus","focusTo","getCurrentFocus","getCurrentFocusBuilding","getCurrentFocusFloor","getFocusTree","mapCoreReady","state","getBuildingList","focusTree","site","buildings","buildingsObj","Array","isArray","map","building","name","whereTaxonomy","taxonomyPath","key","push","getLevelList","buildingTaxonomy","levels","targetBuilding","find","floors","floorsObj","floor","getRootSiteCameraProps","platform","cameraConfigs","config","web","mobile","center","length","longitude","latitude","zoom","bearing","pitch","isReady"],"sources":["../../../../../src/react/hooks/useFocus/index.ts"],"sourcesContent":["import { useMetaAtlas } from '../useMetaAtlas';\nimport { useMetaAtlasStore } from '../../stores/useMetaAtlasStore';\nimport { UseFocusReturn, BuildingInfo, LevelInfo, CameraProps } from './types';\n\nexport function useFocus(): UseFocusReturn {\n const { focusTo, getCurrentFocus, getCurrentFocusBuilding, getCurrentFocusFloor, getFocusTree } = useMetaAtlas();\n const mapCoreReady = useMetaAtlasStore((state) => state.mapCoreReady);\n\n const getBuildingList = (): BuildingInfo[] => {\n if (!mapCoreReady) {\n return [];\n }\n const focusTree = getFocusTree();\n if (!focusTree || !focusTree.site || !focusTree.site.buildings) {\n return [];\n }\n\n const buildings: BuildingInfo[] = [];\n const buildingsObj: any = focusTree.site.buildings;\n \n // Handle both array and object formats\n if (Array.isArray(buildingsObj)) {\n return buildingsObj.map((building: any) => ({\n name: building.name || '',\n whereTaxonomy: building.taxonomyPath || '',\n }));\n } else {\n // Object format (key-value pairs)\n for (const key in buildingsObj) {\n const building: any = buildingsObj[key];\n if (building && building.taxonomyPath) {\n buildings.push({\n name: building.name || '',\n whereTaxonomy: building.taxonomyPath || '',\n });\n }\n }\n }\n\n return buildings;\n };\n\n const getLevelList = (buildingTaxonomy: string): LevelInfo[] => {\n if (!mapCoreReady) {\n return [];\n }\n const focusTree = getFocusTree();\n if (!focusTree || !focusTree.site || !focusTree.site.buildings) {\n return [];\n }\n\n const levels: LevelInfo[] = [];\n const buildingsObj: any = focusTree.site.buildings;\n \n // Find the building by taxonomy path\n let targetBuilding: any = null;\n \n if (Array.isArray(buildingsObj)) {\n targetBuilding = buildingsObj.find((building: any) => \n building.taxonomyPath === buildingTaxonomy\n );\n } else {\n // Object format (key-value pairs)\n for (const key in buildingsObj) {\n const building: any = buildingsObj[key];\n if (building && building.taxonomyPath === buildingTaxonomy) {\n targetBuilding = building;\n break;\n }\n }\n }\n\n if (!targetBuilding || !targetBuilding.floors) {\n return [];\n }\n\n const floorsObj: any = targetBuilding.floors;\n \n // Handle both array and object formats for floors\n if (Array.isArray(floorsObj)) {\n return floorsObj.map((floor: any) => ({\n name: floor.name || '',\n whereTaxonomy: floor.taxonomyPath || '',\n }));\n } else {\n // Object format (key-value pairs)\n for (const key in floorsObj) {\n const floor: any = floorsObj[key];\n if (floor && floor.taxonomyPath) {\n levels.push({\n name: floor.name || '',\n whereTaxonomy: floor.taxonomyPath || '',\n });\n }\n }\n }\n\n return levels;\n };\n\n const getRootSiteCameraProps = (platform: 'web' | 'mobile' = 'web'): CameraProps | null => {\n const focusTree = getFocusTree();\n if (!focusTree || !focusTree.site || !focusTree.site.cameraConfigs) {\n return null;\n }\n\n const cameraConfigs: any = focusTree.site.cameraConfigs;\n const config = cameraConfigs[platform] || cameraConfigs.web || cameraConfigs.mobile;\n \n if (!config || !config.center || !Array.isArray(config.center) || config.center.length < 2) {\n return null;\n }\n\n return {\n longitude: config.center[0],\n latitude: config.center[1],\n zoom: config.zoom || 0,\n bearing: config.bearing,\n pitch: config.pitch,\n };\n };\n\n return {\n focusTo,\n getCurrentFocus,\n getCurrentFocusBuilding,\n getCurrentFocusFloor,\n getFocusTree,\n getBuildingList,\n getLevelList,\n getRootSiteCameraProps,\n isReady: mapCoreReady, // Use mapCoreReady flag\n };\n}\n\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["useMetaAtlas","useMetaAtlasStore","useFocus","focusTo","getCurrentFocus","getCurrentFocusBuilding","getCurrentFocusFloor","getFocusTree","mapCoreReady","state","getBuildingList","focusTree","site","buildings","buildingsObj","Array","isArray","map","building","name","whereTaxonomy","taxonomyPath","key","push","getLevelList","buildingTaxonomy","levels","targetBuilding","find","floors","floorsObj","floor","getRootSiteCameraProps","platform","arguments","length","undefined","cameraConfigs","config","web","mobile","center","longitude","latitude","zoom","bearing","pitch","isReady"],"sources":["../../../../../src/react/hooks/useFocus/index.ts"],"sourcesContent":["import { useMetaAtlas } from '../useMetaAtlas';\nimport { useMetaAtlasStore } from '../../stores/useMetaAtlasStore';\nimport { UseFocusReturn, BuildingInfo, LevelInfo, CameraProps } from './types';\n\nexport function useFocus(): UseFocusReturn {\n const { focusTo, getCurrentFocus, getCurrentFocusBuilding, getCurrentFocusFloor, getFocusTree } = useMetaAtlas();\n const mapCoreReady = useMetaAtlasStore((state) => state.mapCoreReady);\n\n const getBuildingList = (): BuildingInfo[] => {\n if (!mapCoreReady) {\n return [];\n }\n const focusTree = getFocusTree();\n if (!focusTree || !focusTree.site || !focusTree.site.buildings) {\n return [];\n }\n\n const buildings: BuildingInfo[] = [];\n const buildingsObj: any = focusTree.site.buildings;\n \n // Handle both array and object formats\n if (Array.isArray(buildingsObj)) {\n return buildingsObj.map((building: any) => ({\n name: building.name || '',\n whereTaxonomy: building.taxonomyPath || '',\n }));\n } else {\n // Object format (key-value pairs)\n for (const key in buildingsObj) {\n const building: any = buildingsObj[key];\n if (building && building.taxonomyPath) {\n buildings.push({\n name: building.name || '',\n whereTaxonomy: building.taxonomyPath || '',\n });\n }\n }\n }\n\n return buildings;\n };\n\n const getLevelList = (buildingTaxonomy: string): LevelInfo[] => {\n if (!mapCoreReady) {\n return [];\n }\n const focusTree = getFocusTree();\n if (!focusTree || !focusTree.site || !focusTree.site.buildings) {\n return [];\n }\n\n const levels: LevelInfo[] = [];\n const buildingsObj: any = focusTree.site.buildings;\n \n // Find the building by taxonomy path\n let targetBuilding: any = null;\n \n if (Array.isArray(buildingsObj)) {\n targetBuilding = buildingsObj.find((building: any) => \n building.taxonomyPath === buildingTaxonomy\n );\n } else {\n // Object format (key-value pairs)\n for (const key in buildingsObj) {\n const building: any = buildingsObj[key];\n if (building && building.taxonomyPath === buildingTaxonomy) {\n targetBuilding = building;\n break;\n }\n }\n }\n\n if (!targetBuilding || !targetBuilding.floors) {\n return [];\n }\n\n const floorsObj: any = targetBuilding.floors;\n \n // Handle both array and object formats for floors\n if (Array.isArray(floorsObj)) {\n return floorsObj.map((floor: any) => ({\n name: floor.name || '',\n whereTaxonomy: floor.taxonomyPath || '',\n }));\n } else {\n // Object format (key-value pairs)\n for (const key in floorsObj) {\n const floor: any = floorsObj[key];\n if (floor && floor.taxonomyPath) {\n levels.push({\n name: floor.name || '',\n whereTaxonomy: floor.taxonomyPath || '',\n });\n }\n }\n }\n\n return levels;\n };\n\n const getRootSiteCameraProps = (platform: 'web' | 'mobile' = 'web'): CameraProps | null => {\n const focusTree = getFocusTree();\n if (!focusTree || !focusTree.site || !focusTree.site.cameraConfigs) {\n return null;\n }\n\n const cameraConfigs: any = focusTree.site.cameraConfigs;\n const config = cameraConfigs[platform] || cameraConfigs.web || cameraConfigs.mobile;\n \n if (!config || !config.center || !Array.isArray(config.center) || config.center.length < 2) {\n return null;\n }\n\n return {\n longitude: config.center[0],\n latitude: config.center[1],\n zoom: config.zoom || 0,\n bearing: config.bearing,\n pitch: config.pitch,\n };\n };\n\n return {\n focusTo,\n getCurrentFocus,\n getCurrentFocusBuilding,\n getCurrentFocusFloor,\n getFocusTree,\n getBuildingList,\n getLevelList,\n getRootSiteCameraProps,\n isReady: mapCoreReady, // Use mapCoreReady flag\n };\n}\n\n"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,10 @@
1
+ const _excluded = ["clickEvent"];
2
+ function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
3
+ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
1
4
  import { useEffect, useRef } from 'react';
2
- import { useMetaAtlas } from '../useMetaAtlas';
3
- import { useMetaAtlasStore } from '../../stores/useMetaAtlasStore';
4
- import { useMapDataStore } from '../../stores/useMapDataStore';
5
+ import { useMetaAtlas } from "../useMetaAtlas/index.js";
6
+ import { useMetaAtlasStore } from "../../stores/useMetaAtlasStore.js";
7
+ import { useMapDataStore } from "../../stores/useMapDataStore.js";
5
8
  export function useMapEvents() {
6
9
  const {
7
10
  map,
@@ -28,9 +31,9 @@ export function useMapEvents() {
28
31
 
29
32
  // Extract metaFeature part (without clickEvent) and update store
30
33
  const {
31
- clickEvent,
32
- ...metaFeaturePart
33
- } = clickedFeature;
34
+ clickEvent
35
+ } = clickedFeature,
36
+ metaFeaturePart = _objectWithoutProperties(clickedFeature, _excluded);
34
37
  useMapDataStore.getState().setActiveObject(metaFeaturePart);
35
38
  console.log('clickHandler clickedMetaFeature: ', clickedFeature);
36
39
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["useEffect","useRef","useMetaAtlas","useMetaAtlasStore","useMapDataStore","useMapEvents","map","getLastClickedFeature","mapCoreReady","state","clickHandlersRef","Set","loadHandlersRef","moveEndHandlersRef","clickOnceHandlersRef","clickHandler","e","clickedFeature","clickEvent","metaFeaturePart","getState","setActiveObject","console","log","current","forEach","handler","size","clear","on","loadHandler","moveEndHandler","off","onMapClick","add","delete","onMapLoad","onMapMoveEnd","onceMapClick","isReady"],"sources":["../../../../../src/react/hooks/useMapEvents/index.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport { useMetaAtlas } from '../useMetaAtlas';\nimport { UseMapEventsReturn } from './types';\nimport * as maplibregl from 'maplibre-gl';\nimport { useMetaAtlasStore } from '../../stores/useMetaAtlasStore';\nimport { clickedMetaFeature } from '../../../meta-atlas-sdk/MetaAtlasCore/meta-atlas-sdk-core';\nimport { useMapDataStore } from '../../stores/useMapDataStore';\n\nexport function useMapEvents(): UseMapEventsReturn {\n const { map, getLastClickedFeature } = useMetaAtlas();\n const mapCoreReady = useMetaAtlasStore((state) => state.mapCoreReady);\n const clickHandlersRef = useRef<Set<(feature: clickedMetaFeature) => void>>(new Set());\n const loadHandlersRef = useRef<Set<() => void>>(new Set());\n const moveEndHandlersRef = useRef<Set<() => void>>(new Set());\n\n // ONCE handlers\n const clickOnceHandlersRef = useRef<Set<(feature: clickedMetaFeature) => void>>(new Set());\n\n // Attach event listeners when map is ready\n useEffect(() => {\n if (!map || !mapCoreReady) return;\n\n // Click event - get clickedMetaFeature from SDK (includes metaFeature + raw click event)\n const clickHandler = (e: maplibregl.MapMouseEvent) => {\n // Get the clickedMetaFeature from SDK's getLastClickedFeature\n // This includes both the metaFeature data and the raw click event\n const clickedFeature = getLastClickedFeature();\n if (!clickedFeature.clickEvent) clickedFeature.clickEvent = e;\n \n // Extract metaFeature part (without clickEvent) and update store\n const { clickEvent, ...metaFeaturePart } = clickedFeature;\n useMapDataStore.getState().setActiveObject(metaFeaturePart);\n \n console.log('clickHandler clickedMetaFeature: ', clickedFeature);\n\n // normal handlers\n clickHandlersRef.current.forEach(handler => handler(clickedFeature));\n\n // --- ONCE handlers ---\n if (clickOnceHandlersRef.current.size > 0) {\n clickOnceHandlersRef.current.forEach(handler => handler(clickedFeature));\n clickOnceHandlersRef.current.clear();\n }\n };\n map.on('click', clickHandler);\n\n // Load event\n const loadHandler = () => {\n loadHandlersRef.current.forEach(handler => handler());\n };\n map.on('load', loadHandler);\n\n // MoveEnd event\n const moveEndHandler = () => {\n moveEndHandlersRef.current.forEach(handler => handler());\n };\n map.on('moveend', moveEndHandler);\n\n return () => {\n map.off('click', clickHandler);\n map.off('load', loadHandler);\n map.off('moveend', moveEndHandler);\n };\n }, [map, mapCoreReady]);\n\n const onMapClick = (handler: (feature: clickedMetaFeature) => void) => {\n clickHandlersRef.current.add(handler);\n return () => {\n clickHandlersRef.current.delete(handler);\n };\n };\n\n const onMapLoad = (handler: () => void) => {\n loadHandlersRef.current.add(handler);\n return () => {\n loadHandlersRef.current.delete(handler);\n };\n };\n\n const onMapMoveEnd = (handler: () => void) => {\n moveEndHandlersRef.current.add(handler);\n return () => {\n moveEndHandlersRef.current.delete(handler);\n };\n };\n\n // ONCE registration methods\n const onceMapClick = (handler: (feature: clickedMetaFeature) => void) => {\n clickOnceHandlersRef.current.add(handler);\n };\n\n\n return {\n onMapClick,\n onMapLoad,\n onMapMoveEnd,\n onceMapClick,\n isReady: mapCoreReady,\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["useEffect","useRef","useMetaAtlas","useMetaAtlasStore","useMapDataStore","useMapEvents","map","getLastClickedFeature","mapCoreReady","state","clickHandlersRef","Set","loadHandlersRef","moveEndHandlersRef","clickOnceHandlersRef","clickHandler","e","clickedFeature","clickEvent","metaFeaturePart","_objectWithoutProperties","_excluded","getState","setActiveObject","console","log","current","forEach","handler","size","clear","on","loadHandler","moveEndHandler","off","onMapClick","add","delete","onMapLoad","onMapMoveEnd","onceMapClick","isReady"],"sources":["../../../../../src/react/hooks/useMapEvents/index.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport { useMetaAtlas } from '../useMetaAtlas';\nimport { UseMapEventsReturn } from './types';\nimport * as maplibregl from 'maplibre-gl';\nimport { useMetaAtlasStore } from '../../stores/useMetaAtlasStore';\nimport { clickedMetaFeature } from '../../../meta-atlas-sdk/MetaAtlasCore/meta-atlas-sdk-core';\nimport { useMapDataStore } from '../../stores/useMapDataStore';\n\nexport function useMapEvents(): UseMapEventsReturn {\n const { map, getLastClickedFeature } = useMetaAtlas();\n const mapCoreReady = useMetaAtlasStore((state) => state.mapCoreReady);\n const clickHandlersRef = useRef<Set<(feature: clickedMetaFeature) => void>>(new Set());\n const loadHandlersRef = useRef<Set<() => void>>(new Set());\n const moveEndHandlersRef = useRef<Set<() => void>>(new Set());\n\n // ONCE handlers\n const clickOnceHandlersRef = useRef<Set<(feature: clickedMetaFeature) => void>>(new Set());\n\n // Attach event listeners when map is ready\n useEffect(() => {\n if (!map || !mapCoreReady) return;\n\n // Click event - get clickedMetaFeature from SDK (includes metaFeature + raw click event)\n const clickHandler = (e: maplibregl.MapMouseEvent) => {\n // Get the clickedMetaFeature from SDK's getLastClickedFeature\n // This includes both the metaFeature data and the raw click event\n const clickedFeature = getLastClickedFeature();\n if (!clickedFeature.clickEvent) clickedFeature.clickEvent = e;\n \n // Extract metaFeature part (without clickEvent) and update store\n const { clickEvent, ...metaFeaturePart } = clickedFeature;\n useMapDataStore.getState().setActiveObject(metaFeaturePart);\n \n console.log('clickHandler clickedMetaFeature: ', clickedFeature);\n\n // normal handlers\n clickHandlersRef.current.forEach(handler => handler(clickedFeature));\n\n // --- ONCE handlers ---\n if (clickOnceHandlersRef.current.size > 0) {\n clickOnceHandlersRef.current.forEach(handler => handler(clickedFeature));\n clickOnceHandlersRef.current.clear();\n }\n };\n map.on('click', clickHandler);\n\n // Load event\n const loadHandler = () => {\n loadHandlersRef.current.forEach(handler => handler());\n };\n map.on('load', loadHandler);\n\n // MoveEnd event\n const moveEndHandler = () => {\n moveEndHandlersRef.current.forEach(handler => handler());\n };\n map.on('moveend', moveEndHandler);\n\n return () => {\n map.off('click', clickHandler);\n map.off('load', loadHandler);\n map.off('moveend', moveEndHandler);\n };\n }, [map, mapCoreReady]);\n\n const onMapClick = (handler: (feature: clickedMetaFeature) => void) => {\n clickHandlersRef.current.add(handler);\n return () => {\n clickHandlersRef.current.delete(handler);\n };\n };\n\n const onMapLoad = (handler: () => void) => {\n loadHandlersRef.current.add(handler);\n return () => {\n loadHandlersRef.current.delete(handler);\n };\n };\n\n const onMapMoveEnd = (handler: () => void) => {\n moveEndHandlersRef.current.add(handler);\n return () => {\n moveEndHandlersRef.current.delete(handler);\n };\n };\n\n // ONCE registration methods\n const onceMapClick = (handler: (feature: clickedMetaFeature) => void) => {\n clickOnceHandlersRef.current.add(handler);\n };\n\n\n return {\n onMapClick,\n onMapLoad,\n onMapMoveEnd,\n onceMapClick,\n isReady: mapCoreReady,\n };\n}\n"],"mappings":";;;AAAA,SAASA,SAAS,EAAEC,MAAM,QAAkB,OAAO;AAAC,SAC3CC,YAAY;AAAA,SAGZC,iBAAiB;AAAA,SAEjBC,eAAe;AAExB,OAAO,SAASC,YAAYA,CAAA,EAAuB;EACjD,MAAM;IAAEC,GAAG;IAAEC;EAAsB,CAAC,GAAGL,YAAY,CAAC,CAAC;EACrD,MAAMM,YAAY,GAAGL,iBAAiB,CAAEM,KAAK,IAAKA,KAAK,CAACD,YAAY,CAAC;EACrE,MAAME,gBAAgB,GAAGT,MAAM,CAA6C,IAAIU,GAAG,CAAC,CAAC,CAAC;EACtF,MAAMC,eAAe,GAAGX,MAAM,CAAkB,IAAIU,GAAG,CAAC,CAAC,CAAC;EAC1D,MAAME,kBAAkB,GAAGZ,MAAM,CAAkB,IAAIU,GAAG,CAAC,CAAC,CAAC;;EAE7D;EACA,MAAMG,oBAAoB,GAAGb,MAAM,CAA6C,IAAIU,GAAG,CAAC,CAAC,CAAC;;EAE1F;EACAX,SAAS,CAAC,MAAM;IACd,IAAI,CAACM,GAAG,IAAI,CAACE,YAAY,EAAE;;IAE3B;IACA,MAAMO,YAAY,GAAIC,CAA2B,IAAK;MACpD;MACA;MACA,MAAMC,cAAc,GAAGV,qBAAqB,CAAC,CAAC;MAC9C,IAAI,CAACU,cAAc,CAACC,UAAU,EAAED,cAAc,CAACC,UAAU,GAAGF,CAAC;;MAE7D;MACA,MAAM;UAAEE;QAA+B,CAAC,GAAGD,cAAc;QAAlCE,eAAe,GAAAC,wBAAA,CAAKH,cAAc,EAAAI,SAAA;MACzDjB,eAAe,CAACkB,QAAQ,CAAC,CAAC,CAACC,eAAe,CAACJ,eAAe,CAAC;MAE3DK,OAAO,CAACC,GAAG,CAAC,mCAAmC,EAAER,cAAc,CAAC;;MAEhE;MACAP,gBAAgB,CAACgB,OAAO,CAACC,OAAO,CAACC,OAAO,IAAIA,OAAO,CAACX,cAAc,CAAC,CAAC;;MAEpE;MACA,IAAIH,oBAAoB,CAACY,OAAO,CAACG,IAAI,GAAG,CAAC,EAAE;QACzCf,oBAAoB,CAACY,OAAO,CAACC,OAAO,CAACC,OAAO,IAAIA,OAAO,CAACX,cAAc,CAAC,CAAC;QACxEH,oBAAoB,CAACY,OAAO,CAACI,KAAK,CAAC,CAAC;MACtC;IACF,CAAC;IACDxB,GAAG,CAACyB,EAAE,CAAC,OAAO,EAAEhB,YAAY,CAAC;;IAE7B;IACA,MAAMiB,WAAW,GAAGA,CAAA,KAAM;MACxBpB,eAAe,CAACc,OAAO,CAACC,OAAO,CAACC,OAAO,IAAIA,OAAO,CAAC,CAAC,CAAC;IACvD,CAAC;IACDtB,GAAG,CAACyB,EAAE,CAAC,MAAM,EAAEC,WAAW,CAAC;;IAE3B;IACA,MAAMC,cAAc,GAAGA,CAAA,KAAM;MAC3BpB,kBAAkB,CAACa,OAAO,CAACC,OAAO,CAACC,OAAO,IAAIA,OAAO,CAAC,CAAC,CAAC;IAC1D,CAAC;IACDtB,GAAG,CAACyB,EAAE,CAAC,SAAS,EAAEE,cAAc,CAAC;IAEjC,OAAO,MAAM;MACX3B,GAAG,CAAC4B,GAAG,CAAC,OAAO,EAAEnB,YAAY,CAAC;MAC9BT,GAAG,CAAC4B,GAAG,CAAC,MAAM,EAAEF,WAAW,CAAC;MAC5B1B,GAAG,CAAC4B,GAAG,CAAC,SAAS,EAAED,cAAc,CAAC;IACpC,CAAC;EACH,CAAC,EAAE,CAAC3B,GAAG,EAAEE,YAAY,CAAC,CAAC;EAEvB,MAAM2B,UAAU,GAAIP,OAA8C,IAAK;IACrElB,gBAAgB,CAACgB,OAAO,CAACU,GAAG,CAACR,OAAO,CAAC;IACrC,OAAO,MAAM;MACXlB,gBAAgB,CAACgB,OAAO,CAACW,MAAM,CAACT,OAAO,CAAC;IAC1C,CAAC;EACH,CAAC;EAED,MAAMU,SAAS,GAAIV,OAAmB,IAAK;IACzChB,eAAe,CAACc,OAAO,CAACU,GAAG,CAACR,OAAO,CAAC;IACpC,OAAO,MAAM;MACXhB,eAAe,CAACc,OAAO,CAACW,MAAM,CAACT,OAAO,CAAC;IACzC,CAAC;EACH,CAAC;EAED,MAAMW,YAAY,GAAIX,OAAmB,IAAK;IAC5Cf,kBAAkB,CAACa,OAAO,CAACU,GAAG,CAACR,OAAO,CAAC;IACvC,OAAO,MAAM;MACXf,kBAAkB,CAACa,OAAO,CAACW,MAAM,CAACT,OAAO,CAAC;IAC5C,CAAC;EACH,CAAC;;EAED;EACA,MAAMY,YAAY,GAAIZ,OAA8C,IAAK;IACvEd,oBAAoB,CAACY,OAAO,CAACU,GAAG,CAACR,OAAO,CAAC;EAC3C,CAAC;EAGD,OAAO;IACLO,UAAU;IACVG,SAAS;IACTC,YAAY;IACZC,YAAY;IACZC,OAAO,EAAEjC;EACX,CAAC;AACH","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  import { createRoot } from 'react-dom/client';
2
2
  import { Popup, Marker } from 'maplibre-gl';
3
- import { useMetaAtlas } from '../useMetaAtlas';
4
- import { useMetaAtlasStore } from '../../stores/useMetaAtlasStore';
3
+ import { useMetaAtlas } from "../useMetaAtlas/index.js";
4
+ import { useMetaAtlasStore } from "../../stores/useMetaAtlasStore.js";
5
5
  /**
6
6
  * Hook for managing React-based map overlays (popups) on the MapLibre map.
7
7
  * Provides a function to create popups with React components that automatically
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["createRoot","Popup","Marker","useMetaAtlas","useMetaAtlasStore","useMapOverlays","map","addUserLayer","mapCoreReady","state","createReactPopup","lngLat","component","options","console","warn","container","document","createElement","root","render","popup","setLngLat","setDOMContent","addTo","cleanup","unmount","off","on","addLayer","layer","createMarker","marker","setPopup","togglePopup","isReady"],"sources":["../../../../../src/react/hooks/useMapOverlays/index.ts"],"sourcesContent":["import { createRoot, Root } from 'react-dom/client';\nimport { ReactElement } from 'react';\nimport { Popup, PopupOptions, LngLatLike, Marker, MarkerOptions } from 'maplibre-gl';\nimport { useMetaAtlas } from '../useMetaAtlas';\nimport { useMetaAtlasStore } from '../../stores/useMetaAtlasStore';\nimport { UseMapOverlaysReturn } from './types';\n\n/**\n * Hook for managing React-based map overlays (popups) on the MapLibre map.\n * Provides a function to create popups with React components that automatically\n * handle lifecycle and cleanup.\n */\nexport function useMapOverlays(): UseMapOverlaysReturn {\n const { map, addUserLayer } = useMetaAtlas();\n const mapCoreReady = useMetaAtlasStore((state) => state.mapCoreReady);\n \n /**\n * Creates a React popup on the map at the specified location.\n * Uses React's createRoot to render the component and automatically\n * cleans up when the popup is closed.\n */\n const createReactPopup = (\n lngLat: LngLatLike,\n component: ReactElement,\n options?: PopupOptions\n ): Popup | null => {\n if (!map || !mapCoreReady) {\n console.warn('Map is not ready. Cannot create popup.');\n return null;\n }\n\n // Create a container div for React\n const container = document.createElement('div');\n \n // Create React root and render component\n const root: Root = createRoot(container);\n root.render(component);\n \n // Create popup and set the DOM content\n const popup = new Popup(options)\n .setLngLat(lngLat)\n .setDOMContent(container) // Pass the container, not the React element\n .addTo(map);\n \n // Cleanup function\n const cleanup = () => {\n root.unmount(); // Clean up React root\n popup.off('close', cleanup); // Remove event listener\n };\n \n // Cleanup when popup is removed\n popup.on('close', cleanup);\n \n return popup;\n };\n\n /**\n * Adds a user layer to the map.\n * Internally uses addUserLayer from the SDK, which also sets up click handlers\n * to update the last clicked feature.\n * \n * @param layer - The layer configuration object to add to the map\n */\n const addLayer = (layer: any): void => {\n if (!mapCoreReady) {\n console.warn('Map is not ready. Cannot add layer.');\n return;\n }\n addUserLayer(layer);\n };\n\n /**\n * Creates a marker on the map at the specified location.\n * Can optionally attach a popup to the marker.\n * \n * @param lngLat - The geographical location [longitude, latitude] or LngLat object\n * @param options - Optional marker configuration (element, etc.)\n * @param popup - Optional popup to attach to the marker\n * @returns The marker instance, or null if map is not ready\n * \n * @example\n * ```tsx\n * const { createMarker, createReactPopup } = useMapOverlays();\n * \n * const el = document.createElement('img');\n * el.src = '/icons/marker.png';\n * el.style.width = '40px';\n * el.style.height = '40px';\n * \n * const popup = createReactPopup([lng, lat], <MyComponent />);\n * const marker = createMarker(\n * [lng, lat],\n * { element: el },\n * popup\n * );\n * ```\n */\n const createMarker = (\n lngLat: LngLatLike,\n options?: MarkerOptions,\n popup?: Popup | null\n ): Marker | null => {\n if (!map || !mapCoreReady) {\n console.warn('Map is not ready. Cannot create marker.');\n return null;\n }\n\n const marker = new Marker(options)\n .setLngLat(lngLat)\n .addTo(map);\n\n // Set popup if provided\n if (popup) {\n marker.setPopup(popup);\n marker.togglePopup();\n }\n\n return marker;\n };\n\n return {\n createReactPopup,\n addLayer,\n createMarker,\n isReady: mapCoreReady,\n };\n}\n\n"],"mappings":"AAAA,SAASA,UAAU,QAAc,kBAAkB;AAEnD,SAASC,KAAK,EAA4BC,MAAM,QAAuB,aAAa;AACpF,SAASC,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,iBAAiB,QAAQ,gCAAgC;AAGlE;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,cAAcA,CAAA,EAAyB;EACrD,MAAM;IAAEC,GAAG;IAAEC;EAAa,CAAC,GAAGJ,YAAY,CAAC,CAAC;EAC5C,MAAMK,YAAY,GAAGJ,iBAAiB,CAAEK,KAAK,IAAKA,KAAK,CAACD,YAAY,CAAC;;EAErE;AACF;AACA;AACA;AACA;EACE,MAAME,gBAAgB,GAAGA,CACvBC,MAAkB,EAClBC,SAAuB,EACvBC,OAAsB,KACL;IACjB,IAAI,CAACP,GAAG,IAAI,CAACE,YAAY,EAAE;MACzBM,OAAO,CAACC,IAAI,CAAC,wCAAwC,CAAC;MACtD,OAAO,IAAI;IACb;;IAEA;IACA,MAAMC,SAAS,GAAGC,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;;IAE/C;IACA,MAAMC,IAAU,GAAGnB,UAAU,CAACgB,SAAS,CAAC;IACxCG,IAAI,CAACC,MAAM,CAACR,SAAS,CAAC;;IAEtB;IACA,MAAMS,KAAK,GAAG,IAAIpB,KAAK,CAACY,OAAO,CAAC,CAC7BS,SAAS,CAACX,MAAM,CAAC,CACjBY,aAAa,CAACP,SAAS,CAAC,CAAC;IAAA,CACzBQ,KAAK,CAAClB,GAAG,CAAC;;IAEb;IACA,MAAMmB,OAAO,GAAGA,CAAA,KAAM;MACpBN,IAAI,CAACO,OAAO,CAAC,CAAC,CAAC,CAAC;MAChBL,KAAK,CAACM,GAAG,CAAC,OAAO,EAAEF,OAAO,CAAC,CAAC,CAAC;IAC/B,CAAC;;IAED;IACAJ,KAAK,CAACO,EAAE,CAAC,OAAO,EAAEH,OAAO,CAAC;IAE1B,OAAOJ,KAAK;EACd,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;AACA;EACE,MAAMQ,QAAQ,GAAIC,KAAU,IAAW;IACrC,IAAI,CAACtB,YAAY,EAAE;MACjBM,OAAO,CAACC,IAAI,CAAC,qCAAqC,CAAC;MACnD;IACF;IACAR,YAAY,CAACuB,KAAK,CAAC;EACrB,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAMC,YAAY,GAAGA,CACnBpB,MAAkB,EAClBE,OAAuB,EACvBQ,KAAoB,KACF;IAClB,IAAI,CAACf,GAAG,IAAI,CAACE,YAAY,EAAE;MACzBM,OAAO,CAACC,IAAI,CAAC,yCAAyC,CAAC;MACvD,OAAO,IAAI;IACb;IAEA,MAAMiB,MAAM,GAAG,IAAI9B,MAAM,CAACW,OAAO,CAAC,CAC/BS,SAAS,CAACX,MAAM,CAAC,CACjBa,KAAK,CAAClB,GAAG,CAAC;;IAEb;IACA,IAAIe,KAAK,EAAE;MACTW,MAAM,CAACC,QAAQ,CAACZ,KAAK,CAAC;MACtBW,MAAM,CAACE,WAAW,CAAC,CAAC;IACtB;IAEA,OAAOF,MAAM;EACf,CAAC;EAED,OAAO;IACLtB,gBAAgB;IAChBmB,QAAQ;IACRE,YAAY;IACZI,OAAO,EAAE3B;EACX,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["createRoot","Popup","Marker","useMetaAtlas","useMetaAtlasStore","useMapOverlays","map","addUserLayer","mapCoreReady","state","createReactPopup","lngLat","component","options","console","warn","container","document","createElement","root","render","popup","setLngLat","setDOMContent","addTo","cleanup","unmount","off","on","addLayer","layer","createMarker","marker","setPopup","togglePopup","isReady"],"sources":["../../../../../src/react/hooks/useMapOverlays/index.ts"],"sourcesContent":["import { createRoot, Root } from 'react-dom/client';\nimport { ReactElement } from 'react';\nimport { Popup, PopupOptions, LngLatLike, Marker, MarkerOptions } from 'maplibre-gl';\nimport { useMetaAtlas } from '../useMetaAtlas';\nimport { useMetaAtlasStore } from '../../stores/useMetaAtlasStore';\nimport { UseMapOverlaysReturn } from './types';\n\n/**\n * Hook for managing React-based map overlays (popups) on the MapLibre map.\n * Provides a function to create popups with React components that automatically\n * handle lifecycle and cleanup.\n */\nexport function useMapOverlays(): UseMapOverlaysReturn {\n const { map, addUserLayer } = useMetaAtlas();\n const mapCoreReady = useMetaAtlasStore((state) => state.mapCoreReady);\n \n /**\n * Creates a React popup on the map at the specified location.\n * Uses React's createRoot to render the component and automatically\n * cleans up when the popup is closed.\n */\n const createReactPopup = (\n lngLat: LngLatLike,\n component: ReactElement,\n options?: PopupOptions\n ): Popup | null => {\n if (!map || !mapCoreReady) {\n console.warn('Map is not ready. Cannot create popup.');\n return null;\n }\n\n // Create a container div for React\n const container = document.createElement('div');\n \n // Create React root and render component\n const root: Root = createRoot(container);\n root.render(component);\n \n // Create popup and set the DOM content\n const popup = new Popup(options)\n .setLngLat(lngLat)\n .setDOMContent(container) // Pass the container, not the React element\n .addTo(map);\n \n // Cleanup function\n const cleanup = () => {\n root.unmount(); // Clean up React root\n popup.off('close', cleanup); // Remove event listener\n };\n \n // Cleanup when popup is removed\n popup.on('close', cleanup);\n \n return popup;\n };\n\n /**\n * Adds a user layer to the map.\n * Internally uses addUserLayer from the SDK, which also sets up click handlers\n * to update the last clicked feature.\n * \n * @param layer - The layer configuration object to add to the map\n */\n const addLayer = (layer: any): void => {\n if (!mapCoreReady) {\n console.warn('Map is not ready. Cannot add layer.');\n return;\n }\n addUserLayer(layer);\n };\n\n /**\n * Creates a marker on the map at the specified location.\n * Can optionally attach a popup to the marker.\n * \n * @param lngLat - The geographical location [longitude, latitude] or LngLat object\n * @param options - Optional marker configuration (element, etc.)\n * @param popup - Optional popup to attach to the marker\n * @returns The marker instance, or null if map is not ready\n * \n * @example\n * ```tsx\n * const { createMarker, createReactPopup } = useMapOverlays();\n * \n * const el = document.createElement('img');\n * el.src = '/icons/marker.png';\n * el.style.width = '40px';\n * el.style.height = '40px';\n * \n * const popup = createReactPopup([lng, lat], <MyComponent />);\n * const marker = createMarker(\n * [lng, lat],\n * { element: el },\n * popup\n * );\n * ```\n */\n const createMarker = (\n lngLat: LngLatLike,\n options?: MarkerOptions,\n popup?: Popup | null\n ): Marker | null => {\n if (!map || !mapCoreReady) {\n console.warn('Map is not ready. Cannot create marker.');\n return null;\n }\n\n const marker = new Marker(options)\n .setLngLat(lngLat)\n .addTo(map);\n\n // Set popup if provided\n if (popup) {\n marker.setPopup(popup);\n marker.togglePopup();\n }\n\n return marker;\n };\n\n return {\n createReactPopup,\n addLayer,\n createMarker,\n isReady: mapCoreReady,\n };\n}\n\n"],"mappings":"AAAA,SAASA,UAAU,QAAc,kBAAkB;AAEnD,SAASC,KAAK,EAA4BC,MAAM,QAAuB,aAAa;AAAC,SAC5EC,YAAY;AAAA,SACZC,iBAAiB;AAG1B;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,cAAcA,CAAA,EAAyB;EACrD,MAAM;IAAEC,GAAG;IAAEC;EAAa,CAAC,GAAGJ,YAAY,CAAC,CAAC;EAC5C,MAAMK,YAAY,GAAGJ,iBAAiB,CAAEK,KAAK,IAAKA,KAAK,CAACD,YAAY,CAAC;;EAErE;AACF;AACA;AACA;AACA;EACE,MAAME,gBAAgB,GAAGA,CACvBC,MAAkB,EAClBC,SAAuB,EACvBC,OAAsB,KACL;IACjB,IAAI,CAACP,GAAG,IAAI,CAACE,YAAY,EAAE;MACzBM,OAAO,CAACC,IAAI,CAAC,wCAAwC,CAAC;MACtD,OAAO,IAAI;IACb;;IAEA;IACA,MAAMC,SAAS,GAAGC,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;;IAE/C;IACA,MAAMC,IAAU,GAAGnB,UAAU,CAACgB,SAAS,CAAC;IACxCG,IAAI,CAACC,MAAM,CAACR,SAAS,CAAC;;IAEtB;IACA,MAAMS,KAAK,GAAG,IAAIpB,KAAK,CAACY,OAAO,CAAC,CAC7BS,SAAS,CAACX,MAAM,CAAC,CACjBY,aAAa,CAACP,SAAS,CAAC,CAAC;IAAA,CACzBQ,KAAK,CAAClB,GAAG,CAAC;;IAEb;IACA,MAAMmB,OAAO,GAAGA,CAAA,KAAM;MACpBN,IAAI,CAACO,OAAO,CAAC,CAAC,CAAC,CAAC;MAChBL,KAAK,CAACM,GAAG,CAAC,OAAO,EAAEF,OAAO,CAAC,CAAC,CAAC;IAC/B,CAAC;;IAED;IACAJ,KAAK,CAACO,EAAE,CAAC,OAAO,EAAEH,OAAO,CAAC;IAE1B,OAAOJ,KAAK;EACd,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;AACA;EACE,MAAMQ,QAAQ,GAAIC,KAAU,IAAW;IACrC,IAAI,CAACtB,YAAY,EAAE;MACjBM,OAAO,CAACC,IAAI,CAAC,qCAAqC,CAAC;MACnD;IACF;IACAR,YAAY,CAACuB,KAAK,CAAC;EACrB,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAMC,YAAY,GAAGA,CACnBpB,MAAkB,EAClBE,OAAuB,EACvBQ,KAAoB,KACF;IAClB,IAAI,CAACf,GAAG,IAAI,CAACE,YAAY,EAAE;MACzBM,OAAO,CAACC,IAAI,CAAC,yCAAyC,CAAC;MACvD,OAAO,IAAI;IACb;IAEA,MAAMiB,MAAM,GAAG,IAAI9B,MAAM,CAACW,OAAO,CAAC,CAC/BS,SAAS,CAACX,MAAM,CAAC,CACjBa,KAAK,CAAClB,GAAG,CAAC;;IAEb;IACA,IAAIe,KAAK,EAAE;MACTW,MAAM,CAACC,QAAQ,CAACZ,KAAK,CAAC;MACtBW,MAAM,CAACE,WAAW,CAAC,CAAC;IACtB;IAEA,OAAOF,MAAM;EACf,CAAC;EAED,OAAO;IACLtB,gBAAgB;IAChBmB,QAAQ;IACRE,YAAY;IACZI,OAAO,EAAE3B;EACX,CAAC;AACH","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import { useMemo } from 'react';
2
- import { useMetaAtlasStore, useServicesReady } from '../../stores/useMetaAtlasStore';
2
+ import { useMetaAtlasStore, useServicesReady } from "../../stores/useMetaAtlasStore.js";
3
3
  export function useMetaAtlas() {
4
4
  const sdk = useMetaAtlasStore(state => state.sdk);
5
5
  const mapCoreReady = useMetaAtlasStore(state => state.mapCoreReady);
@@ -76,43 +76,43 @@ export function useMetaAtlas() {
76
76
  // Helper to guard search functions with servicesReady
77
77
  // Preserves the original return type (Promise or void)
78
78
  const guardSearch = fn => {
79
- return (...args) => {
79
+ return function () {
80
80
  if (!servicesReady) {
81
81
  const error = new Error('Search services are not ready. Please wait for initialization.');
82
82
  // Return rejected promise - TypeScript will handle type compatibility
83
83
  return Promise.reject(error);
84
84
  }
85
- return fn(...args);
85
+ return fn(...arguments);
86
86
  };
87
87
  };
88
88
 
89
89
  // Helper to guard routing functions with servicesReady
90
90
  const guardRouting = fn => {
91
- return (...args) => {
91
+ return function () {
92
92
  if (!servicesReady) {
93
93
  throw new Error('Routing services are not ready. Please wait for initialization.');
94
94
  }
95
- return fn(...args);
95
+ return fn(...arguments);
96
96
  };
97
97
  };
98
98
 
99
99
  // Helper to guard other functions with mapCoreReady
100
100
  const guardMapCore = fn => {
101
- return (...args) => {
101
+ return function () {
102
102
  if (!mapCoreReady) {
103
103
  throw new Error('Map core is not ready. Please wait for initialization.');
104
104
  }
105
- return fn(...args);
105
+ return fn(...arguments);
106
106
  };
107
107
  };
108
108
 
109
109
  // Helper for async functions that need mapCoreReady
110
110
  const guardMapCoreAsync = fn => {
111
- return (...args) => {
111
+ return function () {
112
112
  if (!mapCoreReady) {
113
113
  return Promise.reject(new Error('Map core is not ready. Please wait for initialization.'));
114
114
  }
115
- return fn(...args);
115
+ return fn(...arguments);
116
116
  };
117
117
  };
118
118
  return {
@@ -120,68 +120,170 @@ export function useMetaAtlas() {
120
120
  error,
121
121
  map: sdk.map,
122
122
  // Focus methods - require mapCoreReady
123
- focusTo: guardMapCore((...args) => sdk.focusTo(...args)),
124
- getCurrentFocus: guardMapCore((...args) => sdk.getCurrentFocus(...args)),
125
- getCurrentFocusBuilding: guardMapCore((...args) => sdk.getCurrentFocusBuilding(...args)),
126
- getCurrentFocusFloor: guardMapCore((...args) => sdk.getCurrentFocusFloor(...args)),
127
- getFocusTree: guardMapCore((...args) => sdk.getFocusTree(...args)),
123
+ focusTo: guardMapCore(function () {
124
+ return sdk.focusTo(...arguments);
125
+ }),
126
+ getCurrentFocus: guardMapCore(function () {
127
+ return sdk.getCurrentFocus(...arguments);
128
+ }),
129
+ getCurrentFocusBuilding: guardMapCore(function () {
130
+ return sdk.getCurrentFocusBuilding(...arguments);
131
+ }),
132
+ getCurrentFocusFloor: guardMapCore(function () {
133
+ return sdk.getCurrentFocusFloor(...arguments);
134
+ }),
135
+ getFocusTree: guardMapCore(function () {
136
+ return sdk.getFocusTree(...arguments);
137
+ }),
128
138
  // Search methods - require servicesReady
129
- getMapObjectsByName: guardSearch((...args) => sdk.getMapObjectsByName(...args)),
130
- getMapObjectById: guardSearch((...args) => sdk.getMapObjectById(...args)),
131
- getMapObjectByLocalRef: guardSearch((...args) => sdk.getMapObjectByLocalRef(...args)),
132
- getMapObjectsByWhatTaxonomy: guardSearch((...args) => sdk.getMapObjectsByWhatTaxonomy(...args)),
133
- getMapObjectsByWhereTaxonomy: guardSearch((...args) => sdk.getMapObjectsByWhereTaxonomy(...args)),
134
- getMapObjectsByWhatAndWhereTaxonomy: guardSearch((...args) => sdk.getMapObjectsByWhatAndWhereTaxonomy(...args)),
135
- getMapObjectsInWhatTaxonomy: guardSearch((...args) => sdk.getMapObjectsInWhatTaxonomy(...args)),
136
- getMapObjectsInWhereTaxonomy: guardSearch((...args) => sdk.getMapObjectsInWhereTaxonomy(...args)),
137
- getMapObjectsByFilteredLocalRef: guardSearch((...args) => sdk.getMapObjectsByFilteredLocalRef(...args)),
138
- getMapObjectMatchingLocalRef: guardSearch((...args) => sdk.getMapObjectMatchingLocalRef(...args)),
139
- getMapObjectsMatchingLocalRefs: guardSearch((...args) => sdk.getMapObjectsMatchingLocalRefs(...args)),
140
- getMapObjectsByWhatTaxonomyAPI: guardSearch((...args) => sdk.getMapObjectsByWhatTaxonomyAPI(...args)),
139
+ getMapObjectsByName: guardSearch(function () {
140
+ return sdk.getMapObjectsByName(...arguments);
141
+ }),
142
+ getMapObjectById: guardSearch(function () {
143
+ return sdk.getMapObjectById(...arguments);
144
+ }),
145
+ getMapObjectByLocalRef: guardSearch(function () {
146
+ return sdk.getMapObjectByLocalRef(...arguments);
147
+ }),
148
+ getMapObjectsByWhatTaxonomy: guardSearch(function () {
149
+ return sdk.getMapObjectsByWhatTaxonomy(...arguments);
150
+ }),
151
+ getMapObjectsByWhereTaxonomy: guardSearch(function () {
152
+ return sdk.getMapObjectsByWhereTaxonomy(...arguments);
153
+ }),
154
+ getMapObjectsByWhatAndWhereTaxonomy: guardSearch(function () {
155
+ return sdk.getMapObjectsByWhatAndWhereTaxonomy(...arguments);
156
+ }),
157
+ getMapObjectsInWhatTaxonomy: guardSearch(function () {
158
+ return sdk.getMapObjectsInWhatTaxonomy(...arguments);
159
+ }),
160
+ getMapObjectsInWhereTaxonomy: guardSearch(function () {
161
+ return sdk.getMapObjectsInWhereTaxonomy(...arguments);
162
+ }),
163
+ getMapObjectsByFilteredLocalRef: guardSearch(function () {
164
+ return sdk.getMapObjectsByFilteredLocalRef(...arguments);
165
+ }),
166
+ getMapObjectMatchingLocalRef: guardSearch(function () {
167
+ return sdk.getMapObjectMatchingLocalRef(...arguments);
168
+ }),
169
+ getMapObjectsMatchingLocalRefs: guardSearch(function () {
170
+ return sdk.getMapObjectsMatchingLocalRefs(...arguments);
171
+ }),
172
+ getMapObjectsByWhatTaxonomyAPI: guardSearch(function () {
173
+ return sdk.getMapObjectsByWhatTaxonomyAPI(...arguments);
174
+ }),
141
175
  getWhatTaxonomies: guardMapCore(() => sdk.metaAtlasCore.getWhatTaxonomies()),
142
176
  // Filtering methods - require mapCoreReady
143
- filterWhereDimension: guardMapCore((...args) => sdk.filterWhereDimension(...args)),
144
- filterLayersByType: guardMapCore((...args) => sdk.filterLayersByType(...args)),
145
- filterLayersByCategories: guardMapCore((...args) => sdk.filterLayersByCategories(...args)),
146
- styleLayersByType: guardMapCore((...args) => sdk.styleLayersByType(...args)),
147
- clearStyleLayersByType: guardMapCore((...args) => sdk.clearStyleLayersByType(...args)),
177
+ filterWhereDimension: guardMapCore(function () {
178
+ return sdk.filterWhereDimension(...arguments);
179
+ }),
180
+ filterLayersByType: guardMapCore(function () {
181
+ return sdk.filterLayersByType(...arguments);
182
+ }),
183
+ filterLayersByCategories: guardMapCore(function () {
184
+ return sdk.filterLayersByCategories(...arguments);
185
+ }),
186
+ styleLayersByType: guardMapCore(function () {
187
+ return sdk.styleLayersByType(...arguments);
188
+ }),
189
+ clearStyleLayersByType: guardMapCore(function () {
190
+ return sdk.clearStyleLayersByType(...arguments);
191
+ }),
148
192
  // Click handlers - require mapCoreReady
149
- getLastClickedFeature: guardMapCore((...args) => sdk.getLastClickedFeature(...args)),
150
- getLastClickedDrawing: guardMapCore((...args) => sdk.getLastClickedDrawing(...args)),
193
+ getLastClickedFeature: guardMapCore(function () {
194
+ return sdk.getLastClickedFeature(...arguments);
195
+ }),
196
+ getLastClickedDrawing: guardMapCore(function () {
197
+ return sdk.getLastClickedDrawing(...arguments);
198
+ }),
151
199
  // Drawing methods - require mapCoreReady
152
- drawGeometryOnMap: guardMapCore((...args) => sdk.drawGeometryOnMap(...args)),
153
- addDrawingsToBaseMap: guardMapCore((...args) => sdk.addDrawingsToBaseMap(...args)),
154
- editDrawing: guardMapCore((...args) => sdk.editDrawing(...args)),
155
- removeDrawing: guardMapCore((...args) => sdk.removeDrawing(...args)),
156
- getDrawingById: guardMapCore((...args) => sdk.getDrawingById(...args)),
157
- isInDrawMode: guardMapCore((...args) => sdk.isInDrawMode(...args)),
200
+ drawGeometryOnMap: guardMapCore(function () {
201
+ return sdk.drawGeometryOnMap(...arguments);
202
+ }),
203
+ addDrawingsToBaseMap: guardMapCore(function () {
204
+ return sdk.addDrawingsToBaseMap(...arguments);
205
+ }),
206
+ editDrawing: guardMapCore(function () {
207
+ return sdk.editDrawing(...arguments);
208
+ }),
209
+ removeDrawing: guardMapCore(function () {
210
+ return sdk.removeDrawing(...arguments);
211
+ }),
212
+ getDrawingById: guardMapCore(function () {
213
+ return sdk.getDrawingById(...arguments);
214
+ }),
215
+ isInDrawMode: guardMapCore(function () {
216
+ return sdk.isInDrawMode(...arguments);
217
+ }),
158
218
  // Routing methods - require servicesReady
159
- computeRoute: guardRouting((...args) => sdk.computeRoute(...args)),
160
- computeRoutes: guardRouting((...args) => sdk.computeRoutes(...args)),
161
- setActiveRoute: guardRouting((...args) => sdk.setActiveRoute(...args)),
162
- getActiveRoute: guardRouting((...args) => sdk.getActiveRoute(...args)),
163
- highlightRouteSegment: guardRouting((...args) => sdk.highlightRouteSegment(...args)),
164
- clearRoute: guardRouting((...args) => sdk.clearRoute(...args)),
219
+ computeRoute: guardRouting(function () {
220
+ return sdk.computeRoute(...arguments);
221
+ }),
222
+ computeRoutes: guardRouting(function () {
223
+ return sdk.computeRoutes(...arguments);
224
+ }),
225
+ setActiveRoute: guardRouting(function () {
226
+ return sdk.setActiveRoute(...arguments);
227
+ }),
228
+ getActiveRoute: guardRouting(function () {
229
+ return sdk.getActiveRoute(...arguments);
230
+ }),
231
+ highlightRouteSegment: guardRouting(function () {
232
+ return sdk.highlightRouteSegment(...arguments);
233
+ }),
234
+ clearRoute: guardRouting(function () {
235
+ return sdk.clearRoute(...arguments);
236
+ }),
165
237
  // Pin/Marker methods - require mapCoreReady
166
- dropPin: guardMapCore((...args) => sdk.dropPin(...args)),
167
- dropMarkerForRouting: guardRouting((...args) => sdk.dropMarkerForRouting(...args)),
168
- clearMarker: guardMapCore((...args) => sdk.clearMarker(...args)),
169
- hidePin: guardMapCore((...args) => sdk.hidePin(...args)),
170
- showPin: guardMapCore((...args) => sdk.showPin(...args)),
171
- clearPin: guardMapCore((...args) => sdk.clearPin(...args)),
172
- clearPins: guardMapCore((...args) => sdk.clearPins(...args)),
238
+ dropPin: guardMapCore(function () {
239
+ return sdk.dropPin(...arguments);
240
+ }),
241
+ dropMarkerForRouting: guardRouting(function () {
242
+ return sdk.dropMarkerForRouting(...arguments);
243
+ }),
244
+ clearMarker: guardMapCore(function () {
245
+ return sdk.clearMarker(...arguments);
246
+ }),
247
+ hidePin: guardMapCore(function () {
248
+ return sdk.hidePin(...arguments);
249
+ }),
250
+ showPin: guardMapCore(function () {
251
+ return sdk.showPin(...arguments);
252
+ }),
253
+ clearPin: guardMapCore(function () {
254
+ return sdk.clearPin(...arguments);
255
+ }),
256
+ clearPins: guardMapCore(function () {
257
+ return sdk.clearPins(...arguments);
258
+ }),
173
259
  // Layer methods - require mapCoreReady
174
- addUserLayer: guardMapCore((...args) => sdk.addUserLayer(...args)),
260
+ addUserLayer: guardMapCore(function () {
261
+ return sdk.addUserLayer(...arguments);
262
+ }),
175
263
  // Utility methods - require mapCoreReady
176
- getCoordinates: guardMapCore((...args) => sdk.getCoordinates(...args)),
177
- getLength: guardMapCore((...args) => sdk.getLength(...args)),
178
- getArea: guardMapCore((...args) => sdk.getArea(...args)),
179
- changeTerminalInFocusToUserViewpoint: guardMapCore((...args) => sdk.changeTerminalInFocusToUserViewpoint(...args)),
180
- isLocationWithinHongKong: guardMapCore((...args) => sdk.isLocationWithinHongKong(...args)),
264
+ getCoordinates: guardMapCore(function () {
265
+ return sdk.getCoordinates(...arguments);
266
+ }),
267
+ getLength: guardMapCore(function () {
268
+ return sdk.getLength(...arguments);
269
+ }),
270
+ getArea: guardMapCore(function () {
271
+ return sdk.getArea(...arguments);
272
+ }),
273
+ changeTerminalInFocusToUserViewpoint: guardMapCore(function () {
274
+ return sdk.changeTerminalInFocusToUserViewpoint(...arguments);
275
+ }),
276
+ isLocationWithinHongKong: guardMapCore(function () {
277
+ return sdk.isLocationWithinHongKong(...arguments);
278
+ }),
181
279
  // 3D methods - require mapCoreReady
182
- getMap3D: guardMapCore((...args) => sdk.getMap3D(...args)),
280
+ getMap3D: guardMapCore(function () {
281
+ return sdk.getMap3D(...arguments);
282
+ }),
183
283
  // Analytics methods - require mapCoreReady
184
- logAnalyticsEvent: guardMapCore((...args) => sdk.logAnalyticsEvent(...args))
284
+ logAnalyticsEvent: guardMapCore(function () {
285
+ return sdk.logAnalyticsEvent(...arguments);
286
+ })
185
287
  };
186
288
  }, [sdk, mapCoreReady, servicesReady, error]);
187
289
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["useMemo","useMetaAtlasStore","useServicesReady","useMetaAtlas","sdk","state","mapCoreReady","error","servicesReady","noop","noopAsync","Promise","resolve","noopAsyncReject","reject","Error","noopBool","noopString","noopAny","map","focusTo","getCurrentFocus","getCurrentFocusBuilding","getCurrentFocusFloor","getFocusTree","getMapObjectsByName","getMapObjectById","getMapObjectByLocalRef","getMapObjectsByWhatTaxonomy","getMapObjectsByWhereTaxonomy","getMapObjectsByWhatAndWhereTaxonomy","getMapObjectsInWhatTaxonomy","getMapObjectsInWhereTaxonomy","getMapObjectsByFilteredLocalRef","getMapObjectMatchingLocalRef","getMapObjectsMatchingLocalRefs","getMapObjectsByWhatTaxonomyAPI","getWhatTaxonomies","filterWhereDimension","filterLayersByType","filterLayersByCategories","styleLayersByType","clearStyleLayersByType","getLastClickedFeature","getLastClickedDrawing","drawGeometryOnMap","addDrawingsToBaseMap","editDrawing","removeDrawing","getDrawingById","isInDrawMode","computeRoute","computeRoutes","setActiveRoute","getActiveRoute","highlightRouteSegment","clearRoute","dropPin","dropMarkerForRouting","clearMarker","hidePin","showPin","clearPin","clearPins","addUserLayer","getCoordinates","getLength","getArea","changeTerminalInFocusToUserViewpoint","isLocationWithinHongKong","getMap3D","logAnalyticsEvent","guardSearch","fn","args","guardRouting","guardMapCore","guardMapCoreAsync","metaAtlasCore"],"sources":["../../../../../src/react/hooks/useMetaAtlas/index.ts"],"sourcesContent":["import { useMemo } from 'react';\nimport { useMetaAtlasStore, useServicesReady } from '../../stores/useMetaAtlasStore';\nimport { UseMetaAtlasReturn } from '../../types';\n\nexport function useMetaAtlas(): UseMetaAtlasReturn {\n const sdk = useMetaAtlasStore((state) => state.sdk);\n const mapCoreReady = useMetaAtlasStore((state) => state.mapCoreReady);\n const error = useMetaAtlasStore((state) => state.error);\n const servicesReady = useServicesReady();\n\n return useMemo(() => {\n if (!sdk) {\n // Return no-op functions when SDK is not ready\n const noop = () => {};\n const noopAsync = () => Promise.resolve([]);\n const noopAsyncReject = () => Promise.reject(new Error('SDK not ready')) as Promise<any>;\n const noopBool = () => false;\n const noopString = () => '';\n const noopAny = () => null;\n \n return {\n sdk: null,\n error,\n map: null,\n focusTo: noop,\n getCurrentFocus: noopString,\n getCurrentFocusBuilding: noopAny,\n getCurrentFocusFloor: noopAny,\n getFocusTree: noopAny,\n getMapObjectsByName: noopAsync,\n getMapObjectById: noopAsync,\n getMapObjectByLocalRef: noopAsync,\n getMapObjectsByWhatTaxonomy: noopAsync,\n getMapObjectsByWhereTaxonomy: noopAsync,\n getMapObjectsByWhatAndWhereTaxonomy: noopAsync,\n getMapObjectsInWhatTaxonomy: noopAsync,\n getMapObjectsInWhereTaxonomy: noopAsync,\n getMapObjectsByFilteredLocalRef: noopAsync,\n getMapObjectMatchingLocalRef: noopAsync,\n getMapObjectsMatchingLocalRefs: noopAsync,\n getMapObjectsByWhatTaxonomyAPI: noopAsync,\n getWhatTaxonomies: noopAny,\n filterWhereDimension: noop,\n filterLayersByType: noop,\n filterLayersByCategories: noop,\n styleLayersByType: noop,\n clearStyleLayersByType: noop,\n getLastClickedFeature: noopAny,\n getLastClickedDrawing: noopAny,\n drawGeometryOnMap: noopBool,\n addDrawingsToBaseMap: noop,\n editDrawing: noopBool,\n removeDrawing: noopBool,\n getDrawingById: noopAny,\n isInDrawMode: noopBool,\n computeRoute: noopAsyncReject,\n computeRoutes: noopAsyncReject, \n setActiveRoute: noop,\n getActiveRoute: noopAny,\n highlightRouteSegment: noop,\n clearRoute: noop,\n dropPin: noopString,\n dropMarkerForRouting: noop,\n clearMarker: noop,\n hidePin: noop,\n showPin: noop,\n clearPin: noop,\n clearPins: noop,\n addUserLayer: noop,\n getCoordinates: noopAny,\n getLength: noopAny,\n getArea: noopAny,\n changeTerminalInFocusToUserViewpoint: noopBool,\n isLocationWithinHongKong: noopBool,\n getMap3D: noopAny,\n logAnalyticsEvent: noop,\n };\n }\n\n // Helper to guard search functions with servicesReady\n // Preserves the original return type (Promise or void)\n const guardSearch = <T extends (...args: any[]) => any>(fn: T): T => {\n return ((...args: Parameters<T>) => {\n if (!servicesReady) {\n const error = new Error('Search services are not ready. Please wait for initialization.');\n // Return rejected promise - TypeScript will handle type compatibility\n return Promise.reject(error) as ReturnType<T>;\n }\n return fn(...args);\n }) as T;\n };\n\n // Helper to guard routing functions with servicesReady\n const guardRouting = <T extends (...args: any[]) => any>(fn: T): T => {\n return ((...args: any[]) => {\n if (!servicesReady) {\n throw new Error('Routing services are not ready. Please wait for initialization.');\n }\n return fn(...args);\n }) as T;\n };\n\n // Helper to guard other functions with mapCoreReady\n const guardMapCore = <T extends (...args: any[]) => any>(fn: T): T => {\n return ((...args: any[]) => {\n if (!mapCoreReady) {\n throw new Error('Map core is not ready. Please wait for initialization.');\n }\n return fn(...args);\n }) as T;\n };\n\n // Helper for async functions that need mapCoreReady\n const guardMapCoreAsync = <T extends (...args: any[]) => Promise<any>>(fn: T): T => {\n return ((...args: any[]) => {\n if (!mapCoreReady) {\n return Promise.reject(new Error('Map core is not ready. Please wait for initialization.'));\n }\n return fn(...args);\n }) as T;\n };\n\n return {\n sdk,\n error,\n map: sdk.map,\n \n // Focus methods - require mapCoreReady\n focusTo: guardMapCore((...args) => sdk.focusTo(...args)),\n getCurrentFocus: guardMapCore((...args) => sdk.getCurrentFocus(...args)),\n getCurrentFocusBuilding: guardMapCore((...args) => sdk.getCurrentFocusBuilding(...args)),\n getCurrentFocusFloor: guardMapCore((...args) => sdk.getCurrentFocusFloor(...args)),\n getFocusTree: guardMapCore((...args) => sdk.getFocusTree(...args)),\n \n // Search methods - require servicesReady\n getMapObjectsByName: guardSearch((...args) => sdk.getMapObjectsByName(...args)),\n getMapObjectById: guardSearch((...args) => sdk.getMapObjectById(...args)),\n getMapObjectByLocalRef: guardSearch((...args) => sdk.getMapObjectByLocalRef(...args)),\n getMapObjectsByWhatTaxonomy: guardSearch((...args) => sdk.getMapObjectsByWhatTaxonomy(...args)),\n getMapObjectsByWhereTaxonomy: guardSearch((...args) => sdk.getMapObjectsByWhereTaxonomy(...args)),\n getMapObjectsByWhatAndWhereTaxonomy: guardSearch((...args) => sdk.getMapObjectsByWhatAndWhereTaxonomy(...args)),\n getMapObjectsInWhatTaxonomy: guardSearch((...args) => sdk.getMapObjectsInWhatTaxonomy(...args)),\n getMapObjectsInWhereTaxonomy: guardSearch((...args) => sdk.getMapObjectsInWhereTaxonomy(...args)),\n getMapObjectsByFilteredLocalRef: guardSearch((...args) => sdk.getMapObjectsByFilteredLocalRef(...args)),\n getMapObjectMatchingLocalRef: guardSearch((...args) => sdk.getMapObjectMatchingLocalRef(...args)),\n getMapObjectsMatchingLocalRefs: guardSearch((...args) => sdk.getMapObjectsMatchingLocalRefs(...args)),\n getMapObjectsByWhatTaxonomyAPI: guardSearch((...args) => sdk.getMapObjectsByWhatTaxonomyAPI(...args)),\n getWhatTaxonomies: guardMapCore(() => sdk.metaAtlasCore.getWhatTaxonomies()),\n \n // Filtering methods - require mapCoreReady\n filterWhereDimension: guardMapCore((...args) => sdk.filterWhereDimension(...args)),\n filterLayersByType: guardMapCore((...args) => sdk.filterLayersByType(...args)),\n filterLayersByCategories: guardMapCore((...args) => sdk.filterLayersByCategories(...args)),\n styleLayersByType: guardMapCore((...args) => sdk.styleLayersByType(...args)),\n clearStyleLayersByType: guardMapCore((...args) => sdk.clearStyleLayersByType(...args)),\n \n // Click handlers - require mapCoreReady\n getLastClickedFeature: guardMapCore((...args) => sdk.getLastClickedFeature(...args)),\n getLastClickedDrawing: guardMapCore((...args) => sdk.getLastClickedDrawing(...args)),\n \n // Drawing methods - require mapCoreReady\n drawGeometryOnMap: guardMapCore((...args) => sdk.drawGeometryOnMap(...args)),\n addDrawingsToBaseMap: guardMapCore((...args) => sdk.addDrawingsToBaseMap(...args)),\n editDrawing: guardMapCore((...args) => sdk.editDrawing(...args)),\n removeDrawing: guardMapCore((...args) => sdk.removeDrawing(...args)),\n getDrawingById: guardMapCore((...args) => sdk.getDrawingById(...args)),\n isInDrawMode: guardMapCore((...args) => sdk.isInDrawMode(...args)),\n \n // Routing methods - require servicesReady\n computeRoute: guardRouting((...args) => sdk.computeRoute(...args)),\n computeRoutes: guardRouting((...args) => sdk.computeRoutes(...args)),\n setActiveRoute: guardRouting((...args) => sdk.setActiveRoute(...args)),\n getActiveRoute: guardRouting((...args) => sdk.getActiveRoute(...args)),\n highlightRouteSegment: guardRouting((...args) => sdk.highlightRouteSegment(...args)),\n clearRoute: guardRouting((...args) => sdk.clearRoute(...args)),\n \n // Pin/Marker methods - require mapCoreReady\n dropPin: guardMapCore((...args) => sdk.dropPin(...args)),\n dropMarkerForRouting: guardRouting((...args) => sdk.dropMarkerForRouting(...args)),\n clearMarker: guardMapCore((...args) => sdk.clearMarker(...args)),\n hidePin: guardMapCore((...args) => sdk.hidePin(...args)),\n showPin: guardMapCore((...args) => sdk.showPin(...args)),\n clearPin: guardMapCore((...args) => sdk.clearPin(...args)),\n clearPins: guardMapCore((...args) => sdk.clearPins(...args)),\n \n // Layer methods - require mapCoreReady\n addUserLayer: guardMapCore((...args) => sdk.addUserLayer(...args)),\n \n // Utility methods - require mapCoreReady\n getCoordinates: guardMapCore((...args) => sdk.getCoordinates(...args)),\n getLength: guardMapCore((...args) => sdk.getLength(...args)),\n getArea: guardMapCore((...args) => sdk.getArea(...args)),\n changeTerminalInFocusToUserViewpoint: guardMapCore((...args) => sdk.changeTerminalInFocusToUserViewpoint(...args)),\n isLocationWithinHongKong: guardMapCore((...args) => sdk.isLocationWithinHongKong(...args)),\n \n // 3D methods - require mapCoreReady\n getMap3D: guardMapCore((...args) => sdk.getMap3D(...args)),\n \n // Analytics methods - require mapCoreReady\n logAnalyticsEvent: guardMapCore((...args) => sdk.logAnalyticsEvent(...args)),\n };\n }, [sdk, mapCoreReady, servicesReady, error]);\n}\n\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["useMemo","useMetaAtlasStore","useServicesReady","useMetaAtlas","sdk","state","mapCoreReady","error","servicesReady","noop","noopAsync","Promise","resolve","noopAsyncReject","reject","Error","noopBool","noopString","noopAny","map","focusTo","getCurrentFocus","getCurrentFocusBuilding","getCurrentFocusFloor","getFocusTree","getMapObjectsByName","getMapObjectById","getMapObjectByLocalRef","getMapObjectsByWhatTaxonomy","getMapObjectsByWhereTaxonomy","getMapObjectsByWhatAndWhereTaxonomy","getMapObjectsInWhatTaxonomy","getMapObjectsInWhereTaxonomy","getMapObjectsByFilteredLocalRef","getMapObjectMatchingLocalRef","getMapObjectsMatchingLocalRefs","getMapObjectsByWhatTaxonomyAPI","getWhatTaxonomies","filterWhereDimension","filterLayersByType","filterLayersByCategories","styleLayersByType","clearStyleLayersByType","getLastClickedFeature","getLastClickedDrawing","drawGeometryOnMap","addDrawingsToBaseMap","editDrawing","removeDrawing","getDrawingById","isInDrawMode","computeRoute","computeRoutes","setActiveRoute","getActiveRoute","highlightRouteSegment","clearRoute","dropPin","dropMarkerForRouting","clearMarker","hidePin","showPin","clearPin","clearPins","addUserLayer","getCoordinates","getLength","getArea","changeTerminalInFocusToUserViewpoint","isLocationWithinHongKong","getMap3D","logAnalyticsEvent","guardSearch","fn","arguments","guardRouting","guardMapCore","guardMapCoreAsync","metaAtlasCore"],"sources":["../../../../../src/react/hooks/useMetaAtlas/index.ts"],"sourcesContent":["import { useMemo } from 'react';\nimport { useMetaAtlasStore, useServicesReady } from '../../stores/useMetaAtlasStore';\nimport { UseMetaAtlasReturn } from '../../types';\n\nexport function useMetaAtlas(): UseMetaAtlasReturn {\n const sdk = useMetaAtlasStore((state) => state.sdk);\n const mapCoreReady = useMetaAtlasStore((state) => state.mapCoreReady);\n const error = useMetaAtlasStore((state) => state.error);\n const servicesReady = useServicesReady();\n\n return useMemo(() => {\n if (!sdk) {\n // Return no-op functions when SDK is not ready\n const noop = () => {};\n const noopAsync = () => Promise.resolve([]);\n const noopAsyncReject = () => Promise.reject(new Error('SDK not ready')) as Promise<any>;\n const noopBool = () => false;\n const noopString = () => '';\n const noopAny = () => null;\n \n return {\n sdk: null,\n error,\n map: null,\n focusTo: noop,\n getCurrentFocus: noopString,\n getCurrentFocusBuilding: noopAny,\n getCurrentFocusFloor: noopAny,\n getFocusTree: noopAny,\n getMapObjectsByName: noopAsync,\n getMapObjectById: noopAsync,\n getMapObjectByLocalRef: noopAsync,\n getMapObjectsByWhatTaxonomy: noopAsync,\n getMapObjectsByWhereTaxonomy: noopAsync,\n getMapObjectsByWhatAndWhereTaxonomy: noopAsync,\n getMapObjectsInWhatTaxonomy: noopAsync,\n getMapObjectsInWhereTaxonomy: noopAsync,\n getMapObjectsByFilteredLocalRef: noopAsync,\n getMapObjectMatchingLocalRef: noopAsync,\n getMapObjectsMatchingLocalRefs: noopAsync,\n getMapObjectsByWhatTaxonomyAPI: noopAsync,\n getWhatTaxonomies: noopAny,\n filterWhereDimension: noop,\n filterLayersByType: noop,\n filterLayersByCategories: noop,\n styleLayersByType: noop,\n clearStyleLayersByType: noop,\n getLastClickedFeature: noopAny,\n getLastClickedDrawing: noopAny,\n drawGeometryOnMap: noopBool,\n addDrawingsToBaseMap: noop,\n editDrawing: noopBool,\n removeDrawing: noopBool,\n getDrawingById: noopAny,\n isInDrawMode: noopBool,\n computeRoute: noopAsyncReject,\n computeRoutes: noopAsyncReject, \n setActiveRoute: noop,\n getActiveRoute: noopAny,\n highlightRouteSegment: noop,\n clearRoute: noop,\n dropPin: noopString,\n dropMarkerForRouting: noop,\n clearMarker: noop,\n hidePin: noop,\n showPin: noop,\n clearPin: noop,\n clearPins: noop,\n addUserLayer: noop,\n getCoordinates: noopAny,\n getLength: noopAny,\n getArea: noopAny,\n changeTerminalInFocusToUserViewpoint: noopBool,\n isLocationWithinHongKong: noopBool,\n getMap3D: noopAny,\n logAnalyticsEvent: noop,\n };\n }\n\n // Helper to guard search functions with servicesReady\n // Preserves the original return type (Promise or void)\n const guardSearch = <T extends (...args: any[]) => any>(fn: T): T => {\n return ((...args: Parameters<T>) => {\n if (!servicesReady) {\n const error = new Error('Search services are not ready. Please wait for initialization.');\n // Return rejected promise - TypeScript will handle type compatibility\n return Promise.reject(error) as ReturnType<T>;\n }\n return fn(...args);\n }) as T;\n };\n\n // Helper to guard routing functions with servicesReady\n const guardRouting = <T extends (...args: any[]) => any>(fn: T): T => {\n return ((...args: any[]) => {\n if (!servicesReady) {\n throw new Error('Routing services are not ready. Please wait for initialization.');\n }\n return fn(...args);\n }) as T;\n };\n\n // Helper to guard other functions with mapCoreReady\n const guardMapCore = <T extends (...args: any[]) => any>(fn: T): T => {\n return ((...args: any[]) => {\n if (!mapCoreReady) {\n throw new Error('Map core is not ready. Please wait for initialization.');\n }\n return fn(...args);\n }) as T;\n };\n\n // Helper for async functions that need mapCoreReady\n const guardMapCoreAsync = <T extends (...args: any[]) => Promise<any>>(fn: T): T => {\n return ((...args: any[]) => {\n if (!mapCoreReady) {\n return Promise.reject(new Error('Map core is not ready. Please wait for initialization.'));\n }\n return fn(...args);\n }) as T;\n };\n\n return {\n sdk,\n error,\n map: sdk.map,\n \n // Focus methods - require mapCoreReady\n focusTo: guardMapCore((...args) => sdk.focusTo(...args)),\n getCurrentFocus: guardMapCore((...args) => sdk.getCurrentFocus(...args)),\n getCurrentFocusBuilding: guardMapCore((...args) => sdk.getCurrentFocusBuilding(...args)),\n getCurrentFocusFloor: guardMapCore((...args) => sdk.getCurrentFocusFloor(...args)),\n getFocusTree: guardMapCore((...args) => sdk.getFocusTree(...args)),\n \n // Search methods - require servicesReady\n getMapObjectsByName: guardSearch((...args) => sdk.getMapObjectsByName(...args)),\n getMapObjectById: guardSearch((...args) => sdk.getMapObjectById(...args)),\n getMapObjectByLocalRef: guardSearch((...args) => sdk.getMapObjectByLocalRef(...args)),\n getMapObjectsByWhatTaxonomy: guardSearch((...args) => sdk.getMapObjectsByWhatTaxonomy(...args)),\n getMapObjectsByWhereTaxonomy: guardSearch((...args) => sdk.getMapObjectsByWhereTaxonomy(...args)),\n getMapObjectsByWhatAndWhereTaxonomy: guardSearch((...args) => sdk.getMapObjectsByWhatAndWhereTaxonomy(...args)),\n getMapObjectsInWhatTaxonomy: guardSearch((...args) => sdk.getMapObjectsInWhatTaxonomy(...args)),\n getMapObjectsInWhereTaxonomy: guardSearch((...args) => sdk.getMapObjectsInWhereTaxonomy(...args)),\n getMapObjectsByFilteredLocalRef: guardSearch((...args) => sdk.getMapObjectsByFilteredLocalRef(...args)),\n getMapObjectMatchingLocalRef: guardSearch((...args) => sdk.getMapObjectMatchingLocalRef(...args)),\n getMapObjectsMatchingLocalRefs: guardSearch((...args) => sdk.getMapObjectsMatchingLocalRefs(...args)),\n getMapObjectsByWhatTaxonomyAPI: guardSearch((...args) => sdk.getMapObjectsByWhatTaxonomyAPI(...args)),\n getWhatTaxonomies: guardMapCore(() => sdk.metaAtlasCore.getWhatTaxonomies()),\n \n // Filtering methods - require mapCoreReady\n filterWhereDimension: guardMapCore((...args) => sdk.filterWhereDimension(...args)),\n filterLayersByType: guardMapCore((...args) => sdk.filterLayersByType(...args)),\n filterLayersByCategories: guardMapCore((...args) => sdk.filterLayersByCategories(...args)),\n styleLayersByType: guardMapCore((...args) => sdk.styleLayersByType(...args)),\n clearStyleLayersByType: guardMapCore((...args) => sdk.clearStyleLayersByType(...args)),\n \n // Click handlers - require mapCoreReady\n getLastClickedFeature: guardMapCore((...args) => sdk.getLastClickedFeature(...args)),\n getLastClickedDrawing: guardMapCore((...args) => sdk.getLastClickedDrawing(...args)),\n \n // Drawing methods - require mapCoreReady\n drawGeometryOnMap: guardMapCore((...args) => sdk.drawGeometryOnMap(...args)),\n addDrawingsToBaseMap: guardMapCore((...args) => sdk.addDrawingsToBaseMap(...args)),\n editDrawing: guardMapCore((...args) => sdk.editDrawing(...args)),\n removeDrawing: guardMapCore((...args) => sdk.removeDrawing(...args)),\n getDrawingById: guardMapCore((...args) => sdk.getDrawingById(...args)),\n isInDrawMode: guardMapCore((...args) => sdk.isInDrawMode(...args)),\n \n // Routing methods - require servicesReady\n computeRoute: guardRouting((...args) => sdk.computeRoute(...args)),\n computeRoutes: guardRouting((...args) => sdk.computeRoutes(...args)),\n setActiveRoute: guardRouting((...args) => sdk.setActiveRoute(...args)),\n getActiveRoute: guardRouting((...args) => sdk.getActiveRoute(...args)),\n highlightRouteSegment: guardRouting((...args) => sdk.highlightRouteSegment(...args)),\n clearRoute: guardRouting((...args) => sdk.clearRoute(...args)),\n \n // Pin/Marker methods - require mapCoreReady\n dropPin: guardMapCore((...args) => sdk.dropPin(...args)),\n dropMarkerForRouting: guardRouting((...args) => sdk.dropMarkerForRouting(...args)),\n clearMarker: guardMapCore((...args) => sdk.clearMarker(...args)),\n hidePin: guardMapCore((...args) => sdk.hidePin(...args)),\n showPin: guardMapCore((...args) => sdk.showPin(...args)),\n clearPin: guardMapCore((...args) => sdk.clearPin(...args)),\n clearPins: guardMapCore((...args) => sdk.clearPins(...args)),\n \n // Layer methods - require mapCoreReady\n addUserLayer: guardMapCore((...args) => sdk.addUserLayer(...args)),\n \n // Utility methods - require mapCoreReady\n getCoordinates: guardMapCore((...args) => sdk.getCoordinates(...args)),\n getLength: guardMapCore((...args) => sdk.getLength(...args)),\n getArea: guardMapCore((...args) => sdk.getArea(...args)),\n changeTerminalInFocusToUserViewpoint: guardMapCore((...args) => sdk.changeTerminalInFocusToUserViewpoint(...args)),\n isLocationWithinHongKong: guardMapCore((...args) => sdk.isLocationWithinHongKong(...args)),\n \n // 3D methods - require mapCoreReady\n getMap3D: guardMapCore((...args) => sdk.getMap3D(...args)),\n \n // Analytics methods - require mapCoreReady\n logAnalyticsEvent: guardMapCore((...args) => sdk.logAnalyticsEvent(...args)),\n };\n }, [sdk, mapCoreReady, servicesReady, error]);\n}\n\n"],"mappings":"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","ignoreList":[]}