@twinmatrix/spatialverse-sdk-web 0.0.2 → 0.0.3

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 (125) 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 +43 -45
  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 +241 -271
  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 +876 -1188
  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 +173 -163
  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 +546 -620
  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 +155 -160
  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 +832 -1060
  34. package/lib/cjs/meta-atlas-sdk/meta-atlas-sdk.js.map +1 -1
  35. package/lib/cjs/meta-atlas-sdk/utils/helpers.js +33 -50
  36. package/lib/cjs/meta-atlas-sdk/utils/helpers.js.map +1 -1
  37. package/lib/cjs/meta-atlas-sdk/utils/local-storage.js +18 -36
  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 +428 -556
  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 -50
  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 +30 -29
  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 +53 -64
  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 +2 -1
  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 +10 -9
  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 +2 -2
  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 +3 -3
  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 +22 -14
  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 +8 -8
  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 +18 -11
  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 +4 -3
  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 +80 -61
  98. package/lib/esm/meta-atlas-sdk/meta-atlas-sdk.js.map +1 -1
  99. package/lib/esm/meta-atlas-sdk/utils/helpers.js +3 -1
  100. package/lib/esm/meta-atlas-sdk/utils/helpers.js.map +1 -1
  101. package/lib/esm/meta-atlas-sdk/utils/routing-visualizer/index.js +19 -15
  102. package/lib/esm/meta-atlas-sdk/utils/routing-visualizer/index.js.map +1 -1
  103. package/lib/esm/react/MetaAtlasMap.js +120 -0
  104. package/lib/esm/react/MetaAtlasMap.js.map +1 -0
  105. package/lib/esm/react/hooks/useDrawing/index.js +2 -2
  106. package/lib/esm/react/hooks/useDrawing/index.js.map +1 -1
  107. package/lib/esm/react/hooks/useFocus/index.js +4 -3
  108. package/lib/esm/react/hooks/useFocus/index.js.map +1 -1
  109. package/lib/esm/react/hooks/useMapEvents/index.js +3 -3
  110. package/lib/esm/react/hooks/useMapEvents/index.js.map +1 -1
  111. package/lib/esm/react/hooks/useMapOverlays/index.js +2 -2
  112. package/lib/esm/react/hooks/useMapOverlays/index.js.map +1 -1
  113. package/lib/esm/react/hooks/useMetaAtlas/index.js +162 -60
  114. package/lib/esm/react/hooks/useMetaAtlas/index.js.map +1 -1
  115. package/lib/esm/react/hooks/useMetaAtlas.js +162 -60
  116. package/lib/esm/react/hooks/useMetaAtlas.js.map +1 -1
  117. package/lib/esm/react/hooks/useRouting/index.js +2 -2
  118. package/lib/esm/react/hooks/useRouting/index.js.map +1 -1
  119. package/lib/esm/react/hooks/useSearch/index.js +2 -2
  120. package/lib/esm/react/hooks/useSearch/index.js.map +1 -1
  121. package/lib/esm/react/hooks/useStampRally/index.js +8 -7
  122. package/lib/esm/react/hooks/useStampRally/index.js.map +1 -1
  123. package/lib/esm/react/index.js +11 -15
  124. package/lib/esm/react/index.js.map +1 -1
  125. package/package.json +9 -6
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_ngraph","require","_ngraph2","_interopRequireDefault","_helpers","turf","_interopRequireWildcard","_lodash","_interfaces","_mapObjectsHelper","_routingHelpers","_utils","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","Symbol","iterator","constructor","prototype","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","toPrimitive","TypeError","String","Number","RoutingCore","wheelChairAccessibleRouteOnly","startNode","endNode","changeZoneCheckEnabled","runIntersection","portalData","edgeData","lines","addVertex","graph","coords","mapObjectId","where","what","zone","updateMapObjectId","undefined","vertexName","concat","toString","vertex","getNode","data","zoneUnionVertex","addNode","addLink","vertex1","vertex2","cost","description","timeInSeconds","isPortal","WALK_SPEED","wheelChairAccesible","id","weight","getDistance","coords1","coords2","point1","point","point2","distance","units","addEdgeToGraph","edge","node","index","line","getCoords","RouteDimension","Edge","properties","direction","LineDirection","Forward","TwoWay","wheelchair","Backward","addNetworkToGraph","networkFeatures","feature","geometry","type","lineCoords","dimension_where","Network","addVertexByEdge","addPortalLinksToGraph","portalEdgeData","mapObjectId1","portal","links","portalLink","toInteger","portal1","portal2","initLineString","coordinates","pathToFeatures","source","destination","vertices","segments","segmentStartVertexData","geojsonPaths","curVertex","prevVertex","segment","isPortalTaxonomy","console","warn","portalPath","isMovingPortalTaxonomy","getPortalPath","invertStart","prevVertexMapObjId","Set","add","portalDataForSet","filterPortalEdgeDataByList","prevVertexPortalData","j","link","pathFeatures","start","end","distanceToStart","distanceToEnd","coordsToUse","slice","reverse","lineString","getLink","geojson","multiPoint","edges","startFloor","endFloor","nextVertex","log","pop","copyOfCurrentVertex","cloneDeep","result","routes","findPath","pathFinder","aStar","oriented","fromNode","toNode","blocked","isZoneCrossing","parentWhereDimensionOfFromNode","getParentDimension","parentWhereDimensionOfStartNode","parentWhereDimensionOfToNode","path","find","setupGraphAndFindPath","networkData","createGraph","geojsonPath","getRouteWithAllPortals","performance","now","getNetworkFeatures","DEFAULT_DIMENSION","concatenatedEdgeFeatures","concatenatedNetworkFeatures","optimized","getRouteWithSpecificPortals","routeWithAllAvailablePortals","portalsToUse","portalDataForList","getDirectRoute","networkFeaturesSourceNode","networkFeaturesDestinationNode","portalDataSourceNode","filterPortalEdgeDataByWhere","portalDataDestinationNode","getRoute","mapObjectId2","wheelChairAccessibleRouteOnlyParam","node1","getEdge","node2","getPortalDataForDimension","runRouteIteration","directRoute","isEmpty","routeWithAllPortals","finalRoute","route","_default","exports"],"sources":["../../../../../src/meta-atlas-sdk/MetaAtlasCore/routing-core/index.ts"],"sourcesContent":["/* eslint-disable guard-for-in */\n/* eslint-disable no-restricted-syntax */\nimport { aStar } from 'ngraph.path';\nimport createGraph, { Graph, Node } from 'ngraph.graph';\nimport {\n point,\n multiPoint,\n} from '@turf/helpers';\nimport { Feature, LineString, MultiPoint } from 'geojson';\n// import turfDistance from '@turf/distance';\nimport * as turf from '@turf/turf';\nimport { cloneDeep, isEmpty, toInteger } from 'lodash';\nimport {\n CalculationResult, Edge, LineDirection, RouteDimension, RouteResult, WALK_SPEED, EdgeLine, Portal, PortalEdgeData, UserPosition\n} from './interfaces';\nimport {\n getNetworkFeatures, getEdge,\n getPortalDataForDimension,\n} from './mapObjectsHelper';\nimport { isMovingPortalTaxonomy, isPortalTaxonomy } from './routing-helpers';\nimport {\n DEFAULT_DIMENSION, filterPortalEdgeDataByList, filterPortalEdgeDataByWhere, getParentDimension, getPortalEdgeData, optimized,\n} from './utils';\n\n/* eslint-disable @typescript-eslint/no-shadow */\n\nconst RoutingCore = (function () {\n let wheelChairAccessibleRouteOnly = true;\n let startNode: Edge | undefined;\n let endNode: Edge | undefined;\n let changeZoneCheckEnabled = true;\n let runIntersection = false;\n\n let portalData: {\n edgeData: PortalEdgeData,\n lines: EdgeLine[],\n } = { edgeData: {}, lines: [] };\n\n function addVertex(\n graph: Graph,\n coords: number[],\n mapObjectId: string,\n where: string,\n what: string,\n zone: string,\n updateMapObjectId = false,\n ) {\n const vertexName = `${(coords).toString()},${where}`;\n let vertex = graph.getNode(vertexName);\n if (vertex === undefined) {\n const data = {\n mapObjectId,\n coords,\n where,\n what,\n zone,\n zoneUnionVertex: false,\n };\n vertex = graph.addNode(vertexName, data);\n } else if (updateMapObjectId) {\n vertex.data.mapObjectId = mapObjectId;\n\n // Mark the vertex as common vertex between zones\n if (vertex.data.zone !== zone) vertex.data.zoneUnionVertex = true;\n vertex.data.zone = zone;\n }\n return vertex;\n }\n\n function addLink(graph: Graph<any, any>, vertex1 : Node<any>, vertex2 : Node<any>, data :{\n wheelChairAccesible: number,\n cost: number,\n isPortal: boolean,\n description: string | null,\n }) {\n const { cost, description } = data;\n const timeInSeconds = data.isPortal ? cost / WALK_SPEED : cost;\n if (!wheelChairAccessibleRouteOnly || (wheelChairAccessibleRouteOnly && data.wheelChairAccesible)) { graph.addLink(vertex1.id, vertex2.id, { weight: timeInSeconds, cost, description }); }\n }\n\n function getDistance(coords1: number[], coords2: number[]) {\n const point1 = point(coords1);\n const point2 = point(coords2);\n const distance = turf.distance(point1, point2, { units: 'meters' });\n return distance;\n }\n\n function addEdgeToGraph(graph: Graph, edge: Edge) {\n const node = edge;\n if (node) {\n const vertex = addVertex(\n graph,\n node.coords,\n node.id,\n node.where,\n node.what,\n node.zone,\n true,\n );\n for (let index = 0; index < node.lines.length; index += 1) {\n const line = node.lines[index];\n // add edges for coord pairs\n const coords = turf.getCoords(line);\n for (let i = 0; i < coords.length - 1; i += 1) {\n const vertex1 = addVertex(\n graph,\n coords[i],\n 'vertex',\n node.where,\n RouteDimension.Edge,\n line.properties.zone,\n );\n const vertex2 = addVertex(\n graph,\n coords[i + 1],\n 'vertex',\n node.where,\n RouteDimension.Edge,\n line.properties.zone,\n );\n if (vertex1.id !== vertex2.id) {\n const distance = getDistance(coords[i], coords[i + 1]);\n if (line.properties.direction === LineDirection.Forward || line.properties.direction === LineDirection.TwoWay) {\n addLink(graph, vertex1, vertex2, {\n wheelChairAccesible: line.properties.wheelchair,\n cost: distance,\n isPortal: false,\n description: null,\n });\n }\n if (line.properties.direction === LineDirection.Backward || line.properties.direction === LineDirection.TwoWay) {\n addLink(graph, vertex2, vertex1, {\n wheelChairAccesible: line.properties.wheelchair,\n cost: distance,\n isPortal: false,\n description: null,\n });\n }\n }\n }\n }\n return vertex;\n }\n\n return undefined;\n }\n\n function addNetworkToGraph(graph: Graph, networkFeatures: Feature[]) {\n for (let index = 0; index < networkFeatures.length; index += 1) {\n const feature = networkFeatures[index];\n if (feature.geometry.type === 'LineString') {\n // get line\n const lineCoords = turf.getCoords(feature as any);\n if (feature.properties) {\n const where = feature.properties.dimension_where;\n const what = RouteDimension.Network; // feature.properties.dimension_what;\n const { zone } = feature.properties;\n // add edges for coord pairs\n for (let i = 0; i < lineCoords.length - 1; i += 1) {\n const vertex1 = addVertex(graph, lineCoords[i], 'vertex', where, what, zone, true);\n const vertex2 = addVertex(\n graph,\n lineCoords[i + 1],\n 'vertex',\n where,\n what,\n zone,\n true,\n );\n if (vertex1.id !== vertex2.id) {\n const distance = getDistance(lineCoords[i], lineCoords[i + 1]);\n if (feature.properties.direction === LineDirection.Forward || feature.properties.direction === LineDirection.TwoWay) {\n addLink(graph, vertex1, vertex2, {\n wheelChairAccesible: feature.properties.wheelchair,\n cost: distance,\n isPortal: false,\n description: null,\n });\n }\n if (feature.properties.direction === LineDirection.Backward || feature.properties.direction === LineDirection.TwoWay) {\n addLink(graph, vertex2, vertex1, {\n wheelChairAccesible: feature.properties.wheelchair,\n cost: distance,\n isPortal: false,\n description: null,\n });\n }\n }\n }\n }\n }\n }\n }\n\n function addVertexByEdge(graph: Graph, edge: Edge) {\n const node = edge;\n if (node === undefined) {\n return undefined;\n }\n return addVertex(\n graph,\n node.coords,\n node.id,\n node.where,\n node.what,\n node.zone,\n true,\n );\n }\n\n function addPortalLinksToGraph(graph: Graph, portalEdgeData: PortalEdgeData) {\n for (const mapObjectId1 in portalEdgeData) {\n const portal = portalEdgeData[mapObjectId1];\n\n for (let index = 0; index < portal.links.length; index += 1) {\n const portalLink = portal.links[index];\n let { cost } = portalLink;\n cost = toInteger(cost);\n // if (cost <= 1) {\n // cost = portalWeight;\n // }\n const { direction, wheelchair, description } = portalLink;\n const portal1 = addVertexByEdge(graph, portal);\n const portal2 = addVertexByEdge(graph, portalLink);\n if (portal1 !== undefined && portal2 !== undefined && portal1.id !== portal2.id) {\n if (direction === LineDirection.Forward || direction === LineDirection.TwoWay) {\n addLink(graph, portal1, portal2, {\n wheelChairAccesible: wheelchair,\n cost,\n description,\n isPortal: true,\n });\n }\n if (direction === LineDirection.Backward || direction === LineDirection.TwoWay) {\n addLink(graph, portal2, portal1, {\n wheelChairAccesible: wheelchair,\n cost,\n description,\n isPortal: true,\n });\n }\n\n addEdgeToGraph(graph, portalLink);\n }\n }\n\n addEdgeToGraph(graph, portal);\n }\n }\n\n function initLineString(vertex: any) {\n return {\n type: 'Feature',\n geometry: { type: 'LineString', coordinates: [vertex.data.coords] },\n properties: {\n dimension_where: vertex.data.where,\n zone: vertex.data.zone,\n cost: 0,\n },\n } as Feature<LineString | MultiPoint, any>;\n }\n\n function pathToFeatures(source: Edge, destination : Edge, vertices: Node<any>[], graph: Graph) {\n if (vertices.length <= 1) {\n return {} as CalculationResult;\n } // if no path found\n\n const startNode = source;\n const endNode = destination;\n\n const segments: RouteResult[] = [];\n let segmentStartVertexData = vertices[0].data;\n const geojsonPaths = [initLineString(vertices[0])];\n\n for (let i = 1; i < vertices.length; i += 1) {\n const curVertex = vertices[i];\n const prevVertex = vertices[i - 1];\n const line = geojsonPaths[geojsonPaths.length - 1];\n\n // if vertex is map object\n if (curVertex.data.mapObjectId !== 'vertex' || curVertex.data.zoneUnionVertex) {\n let segment;\n if (isPortalTaxonomy(prevVertex.data.what) && isPortalTaxonomy(curVertex.data.what)) {\n if (prevVertex.data.zone !== curVertex.data.zone) {\n console.warn('A portal is triggering a change in zone');\n }\n\n // check if portal path is available to visualize\n let portalPath;\n if (isMovingPortalTaxonomy(prevVertex.data.what)) {\n const getPortalPath = (portalEdgeData: PortalEdgeData, curVertex: Node<any>, prevVertex: Node<any>, invertStart = false) => {\n const prevVertexMapObjId = prevVertex.data.mapObjectId;\n const set = new Set<string>().add(prevVertexMapObjId);\n const portalDataForSet = filterPortalEdgeDataByList(portalEdgeData, set);\n if (portalDataForSet && portalDataForSet.edgeData[prevVertexMapObjId]) {\n const prevVertexPortalData = portalDataForSet.edgeData[prevVertexMapObjId];\n for (let j = 0; j < prevVertexPortalData.links.length; j += 1) {\n const link = prevVertexPortalData.links[j];\n if (link.id === curVertex.data.mapObjectId) {\n if (link.pathFeatures && link.pathFeatures.length > 0) {\n const line = link.pathFeatures[0];\n const start = invertStart === false ? prevVertex.data.coords : curVertex.data.coords;\n const end = invertStart === false ? curVertex.data.coords : prevVertex.data.coords;\n\n const distanceToStart = turf.distance(start, line.geometry.coordinates[0]);\n const distanceToEnd = turf.distance(end, line.geometry.coordinates[0]);\n const coordsToUse = distanceToStart < distanceToEnd ? line.geometry.coordinates : line.geometry.coordinates.slice().reverse();\n return turf.lineString(coordsToUse);\n }\n }\n }\n }\n\n return null;\n };\n\n portalPath = getPortalPath(portalData.edgeData, curVertex, prevVertex, false);\n if (!portalPath) portalPath = getPortalPath(portalData.edgeData, prevVertex, curVertex, true);\n }\n\n // TODO: read description here\n const link = graph.getLink(prevVertex.id, curVertex.id);\n const cost = link ? link.data.cost ? link.data.cost : undefined : undefined;\n const description = link ? link.data.description ? link.data.description : undefined : undefined;\n segment = {\n geojson: multiPoint([\n prevVertex.data.coords,\n curVertex.data.coords,\n ], {\n zone: curVertex.data.zone,\n }),\n edges: [prevVertex.data.mapObjectId, curVertex.data.mapObjectId],\n startFloor: prevVertex.data.where,\n endFloor: curVertex.data.where,\n isPortal: true,\n portalPath,\n cost,\n description,\n } as RouteResult;\n\n segments.push(segment);\n segmentStartVertexData = curVertex.data;\n } else {\n const nextVertex = (i + 1 < vertices.length) ? vertices[i + 1] : undefined;\n if (curVertex.data.zoneUnionVertex\n && (prevVertex && nextVertex && prevVertex?.data.zone === nextVertex?.data.zone)) {\n console.log('ignore zoneUnionVertex in segment');\n } else {\n segment = {\n geojson: line,\n edges: [segmentStartVertexData.mapObjectId, curVertex.data.mapObjectId],\n startFloor: segmentStartVertexData.where,\n endFloor: segmentStartVertexData.where,\n isPortal: false,\n portalPath: undefined,\n cost: line.properties.cost,\n };\n\n segments.push(segment);\n segmentStartVertexData = curVertex.data;\n }\n }\n }\n\n // same line\n if (!(isPortalTaxonomy(prevVertex.data.what) && isPortalTaxonomy(curVertex.data.what))) {\n const link = graph.getLink(prevVertex.id, curVertex.id); // returns a link from 'hello' to 'world'\n const cost = link ? link.data.cost ? link.data.cost : undefined : undefined;\n\n line.geometry.coordinates.push(curVertex.data.coords);\n line.properties.cost += cost;\n } else {\n // new line\n if (line.geometry.coordinates.length < 2) {\n geojsonPaths.pop();\n }\n geojsonPaths.push(initLineString(curVertex));\n }\n\n // new line due to change in zone\n if (curVertex.data.zoneUnionVertex) {\n const prevVertex = (i > 0) ? vertices[i - 1] : undefined;\n const nextVertex = (i + 1 < vertices.length) ? vertices[i + 1] : undefined;\n if (prevVertex && nextVertex && prevVertex?.data.zone === nextVertex?.data.zone) {\n console.log('ignore zoneUnionVertex');\n } else\n // Use zone value of next vertex (when available) as current vertex is a common vertex and can have either of the zone values\n if (nextVertex) {\n const copyOfCurrentVertex = cloneDeep(curVertex);\n copyOfCurrentVertex.data.zone = nextVertex.data.zone;\n geojsonPaths.push(initLineString(copyOfCurrentVertex));\n } else {\n geojsonPaths.push(initLineString(curVertex));\n }\n }\n }\n\n const result: CalculationResult = {\n startNode,\n endNode,\n routes: segments,\n distance: 0,\n };\n\n return result;\n }\n\n function findPath(vertex1: Node<any>, vertex2: Node<any>, graph: Graph) {\n // setup ngraph pathfinder\n const pathFinder = aStar(graph, {\n oriented: true,\n distance(fromNode, toNode, link) {\n return link.data.weight;\n },\n blocked(fromNode, toNode, link) {\n if (changeZoneCheckEnabled) {\n const isZoneCrossing = fromNode?.data.zone !== toNode?.data.zone;\n if (isZoneCrossing) {\n const parentWhereDimensionOfFromNode = getParentDimension(fromNode.data.where);\n const parentWhereDimensionOfStartNode = getParentDimension((startNode as Edge).where);\n const parentWhereDimensionOfToNode = getParentDimension(toNode.data.where);\n if (parentWhereDimensionOfFromNode !== parentWhereDimensionOfStartNode && parentWhereDimensionOfToNode !== parentWhereDimensionOfStartNode) {\n return true;\n }\n }\n }\n return false;\n },\n });\n\n // get shortest path\n const path = pathFinder.find(vertex1.id, vertex2.id).reverse();\n return path;\n }\n\n function setupGraphAndFindPath(source: Edge, destination: Edge, portalEdgeData: PortalEdgeData, networkData: Feature[]) {\n // create ngraph graph\n const graph = createGraph();\n\n // add node & node lines to graph\n const vertex1 = addEdgeToGraph(graph, source);\n const vertex2 = addEdgeToGraph(graph, destination);\n\n if (vertex1 && vertex2) {\n // Add portal links\n addPortalLinksToGraph(graph, portalEdgeData);\n\n // add networks to graph\n addNetworkToGraph(graph, networkData);\n\n const path = findPath(vertex1, vertex2, graph);\n // reconstruct path into geojson features\n const geojsonPath = pathToFeatures(source, destination, path, graph);\n return geojsonPath;\n }\n\n return {} as CalculationResult;\n }\n\n function getRouteWithAllPortals(source: Edge, destination: Edge) {\n let start = performance.now();\n\n // Load network data\n const networkFeatures = getNetworkFeatures(DEFAULT_DIMENSION);\n console.log('time load: ', (performance.now() - start) / 1000);\n\n start = performance.now();\n const concatenatedEdgeFeatures = source.lines.concat(destination.lines, portalData.lines);\n const concatenatedNetworkFeatures = networkFeatures;\n\n if (runIntersection) optimized(concatenatedEdgeFeatures, concatenatedNetworkFeatures);\n console.log('time network: ', (performance.now() - start) / 1000, networkFeatures.length);\n\n return setupGraphAndFindPath(source, destination, portalData.edgeData, concatenatedNetworkFeatures);\n }\n\n function getRouteWithSpecificPortals(source: Edge, destination: Edge, routeWithAllAvailablePortals: CalculationResult) {\n const portalsToUse = new Set<string>();\n for (let index = 0; routeWithAllAvailablePortals.routes && index < routeWithAllAvailablePortals.routes.length; index += 1) {\n const segment = routeWithAllAvailablePortals.routes[index];\n if (segment.isPortal) {\n portalsToUse.add(segment.edges[0]);\n portalsToUse.add(segment.edges[1]);\n }\n }\n\n let start = performance.now();\n // Load data\n // Load network data\n const networkFeatures = getNetworkFeatures(DEFAULT_DIMENSION);\n // Load portal data\n const portalDataForList = filterPortalEdgeDataByList(portalData.edgeData, portalsToUse);\n console.log('time load: ', (performance.now() - start) / 1000);\n\n start = performance.now();\n const concatenatedEdgeFeatures = source.lines.concat(destination.lines, portalDataForList.lines);\n const concatenatedNetworkFeatures = networkFeatures;\n\n if (runIntersection) optimized(concatenatedEdgeFeatures, concatenatedNetworkFeatures);\n console.log('time network: ', (performance.now() - start) / 1000, networkFeatures.length);\n\n return setupGraphAndFindPath(source, destination, portalDataForList.edgeData, concatenatedNetworkFeatures);\n }\n\n function getDirectRoute(source: Edge, destination: Edge) {\n let start = performance.now();\n // Load data\n // Load network data\n const networkFeaturesSourceNode = getNetworkFeatures(getParentDimension(source.where));\n const networkFeaturesDestinationNode = getNetworkFeatures(getParentDimension(destination.where));\n // Load portal data\n const portalDataSourceNode = filterPortalEdgeDataByWhere(portalData.edgeData, getParentDimension(source.where));\n const portalDataDestinationNode = filterPortalEdgeDataByWhere(portalData.edgeData, getParentDimension(destination.where));\n\n console.log('time load: ', (performance.now() - start) / 1000);\n\n start = performance.now();\n const concatenatedEdgeFeatures = source.lines.concat(destination.lines, portalDataSourceNode.lines, portalDataDestinationNode.lines);\n const concatenatedNetworkFeatures = networkFeaturesSourceNode.concat(networkFeaturesDestinationNode);\n\n if (runIntersection) optimized(concatenatedEdgeFeatures, concatenatedNetworkFeatures);\n console.log('time network: ', (performance.now() - start) / 1000, networkFeaturesSourceNode.length);\n\n const portalEdgeData = {\n ...portalDataSourceNode.edgeData,\n ...portalDataDestinationNode.edgeData,\n };\n return setupGraphAndFindPath(source, destination, portalEdgeData, concatenatedNetworkFeatures);\n }\n\n // function to get shortest route\n function getRoute(\n mapObjectId1: string | UserPosition,\n mapObjectId2: string,\n wheelChairAccessibleRouteOnlyParam: boolean\n ) {\n wheelChairAccessibleRouteOnly = wheelChairAccessibleRouteOnlyParam;\n // if same start & end\n if (mapObjectId1 === mapObjectId2) {\n return {} as CalculationResult;\n }\n\n if(typeof(mapObjectId1) !== 'string'\n || typeof(mapObjectId2) !== 'string'\n ) runIntersection = true;\n\n const node1 = getEdge(mapObjectId1);\n const node2 = getEdge(mapObjectId2);\n\n startNode = node1;\n endNode = node2;\n\n let start = performance.now();\n portalData = getPortalDataForDimension(DEFAULT_DIMENSION);\n console.log('time portal load with extrapolation: ', (performance.now() - start) / 1000);\n\n start = performance.now();\n if (startNode && endNode) {\n changeZoneCheckEnabled = true;\n const runRouteIteration = () => {\n const directRoute = getDirectRoute(startNode as Edge, endNode as Edge);\n console.log('Direct route', directRoute);\n if (isEmpty(directRoute)) {\n const routeWithAllPortals = getRouteWithAllPortals(startNode as Edge, endNode as Edge);\n const finalRoute = getRouteWithSpecificPortals(startNode as Edge, endNode as Edge, routeWithAllPortals);\n return finalRoute;\n }\n\n const finalRoute = getRouteWithSpecificPortals(startNode as Edge, endNode as Edge, directRoute);\n return finalRoute;\n };\n\n let route = runRouteIteration();\n if (isEmpty(route)) {\n changeZoneCheckEnabled = false;\n route = runRouteIteration();\n }\n\n console.log('time total: ', (performance.now() - start) / 1000);\n return route;\n }\n\n return {} as CalculationResult;\n }\n\n return { getRoute };\n}());\n\nexport default RoutingCore;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_ngraph","require","_ngraph2","_interopRequireDefault","_helpers","turf","_interopRequireWildcard","_lodash","_interfaces","_mapObjectsHelper","_routingHelpers","_utils","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","RoutingCore","wheelChairAccessibleRouteOnly","startNode","endNode","changeZoneCheckEnabled","runIntersection","portalData","edgeData","lines","addVertex","graph","coords","mapObjectId","where","what","zone","updateMapObjectId","arguments","length","undefined","vertexName","toString","vertex","getNode","data","zoneUnionVertex","addNode","addLink","vertex1","vertex2","cost","description","timeInSeconds","isPortal","WALK_SPEED","wheelChairAccesible","id","weight","getDistance","coords1","coords2","point1","point","point2","distance","units","addEdgeToGraph","edge","node","index","line","getCoords","RouteDimension","Edge","properties","direction","LineDirection","Forward","TwoWay","wheelchair","Backward","addNetworkToGraph","networkFeatures","feature","geometry","type","lineCoords","dimension_where","Network","addVertexByEdge","addPortalLinksToGraph","portalEdgeData","mapObjectId1","portal","links","portalLink","toInteger","portal1","portal2","initLineString","coordinates","pathToFeatures","source","destination","vertices","segments","segmentStartVertexData","geojsonPaths","curVertex","prevVertex","segment","isPortalTaxonomy","console","warn","portalPath","isMovingPortalTaxonomy","getPortalPath","invertStart","prevVertexMapObjId","Set","add","portalDataForSet","filterPortalEdgeDataByList","prevVertexPortalData","j","link","pathFeatures","start","end","distanceToStart","distanceToEnd","coordsToUse","slice","reverse","lineString","getLink","geojson","multiPoint","edges","startFloor","endFloor","push","nextVertex","log","pop","copyOfCurrentVertex","cloneDeep","result","routes","findPath","pathFinder","aStar","oriented","fromNode","toNode","blocked","isZoneCrossing","parentWhereDimensionOfFromNode","getParentDimension","parentWhereDimensionOfStartNode","parentWhereDimensionOfToNode","path","find","setupGraphAndFindPath","networkData","createGraph","geojsonPath","getRouteWithAllPortals","performance","now","getNetworkFeatures","DEFAULT_DIMENSION","concatenatedEdgeFeatures","concat","concatenatedNetworkFeatures","optimized","getRouteWithSpecificPortals","routeWithAllAvailablePortals","portalsToUse","portalDataForList","getDirectRoute","networkFeaturesSourceNode","networkFeaturesDestinationNode","portalDataSourceNode","filterPortalEdgeDataByWhere","portalDataDestinationNode","getRoute","mapObjectId2","wheelChairAccessibleRouteOnlyParam","node1","getEdge","node2","getPortalDataForDimension","runRouteIteration","directRoute","isEmpty","routeWithAllPortals","finalRoute","route","_default","exports"],"sources":["../../../../../src/meta-atlas-sdk/MetaAtlasCore/routing-core/index.ts"],"sourcesContent":["/* eslint-disable guard-for-in */\n/* eslint-disable no-restricted-syntax */\nimport { aStar } from 'ngraph.path';\nimport createGraph, { Graph, Node } from 'ngraph.graph';\nimport {\n point,\n multiPoint,\n} from '@turf/helpers';\nimport { Feature, LineString, MultiPoint } from 'geojson';\n// import turfDistance from '@turf/distance';\nimport * as turf from '@turf/turf';\nimport { cloneDeep, isEmpty, toInteger } from 'lodash';\nimport {\n CalculationResult, Edge, LineDirection, RouteDimension, RouteResult, WALK_SPEED, EdgeLine, Portal, PortalEdgeData, UserPosition\n} from './interfaces';\nimport {\n getNetworkFeatures, getEdge,\n getPortalDataForDimension,\n} from './mapObjectsHelper';\nimport { isMovingPortalTaxonomy, isPortalTaxonomy } from './routing-helpers';\nimport {\n DEFAULT_DIMENSION, filterPortalEdgeDataByList, filterPortalEdgeDataByWhere, getParentDimension, getPortalEdgeData, optimized,\n} from './utils';\n\n/* eslint-disable @typescript-eslint/no-shadow */\n\nconst RoutingCore = (function () {\n let wheelChairAccessibleRouteOnly = true;\n let startNode: Edge | undefined;\n let endNode: Edge | undefined;\n let changeZoneCheckEnabled = true;\n let runIntersection = false;\n\n let portalData: {\n edgeData: PortalEdgeData,\n lines: EdgeLine[],\n } = { edgeData: {}, lines: [] };\n\n function addVertex(\n graph: Graph,\n coords: number[],\n mapObjectId: string,\n where: string,\n what: string,\n zone: string,\n updateMapObjectId = false,\n ) {\n const vertexName = `${(coords).toString()},${where}`;\n let vertex = graph.getNode(vertexName);\n if (vertex === undefined) {\n const data = {\n mapObjectId,\n coords,\n where,\n what,\n zone,\n zoneUnionVertex: false,\n };\n vertex = graph.addNode(vertexName, data);\n } else if (updateMapObjectId) {\n vertex.data.mapObjectId = mapObjectId;\n\n // Mark the vertex as common vertex between zones\n if (vertex.data.zone !== zone) vertex.data.zoneUnionVertex = true;\n vertex.data.zone = zone;\n }\n return vertex;\n }\n\n function addLink(graph: Graph<any, any>, vertex1 : Node<any>, vertex2 : Node<any>, data :{\n wheelChairAccesible: number,\n cost: number,\n isPortal: boolean,\n description: string | null,\n }) {\n const { cost, description } = data;\n const timeInSeconds = data.isPortal ? cost / WALK_SPEED : cost;\n if (!wheelChairAccessibleRouteOnly || (wheelChairAccessibleRouteOnly && data.wheelChairAccesible)) { graph.addLink(vertex1.id, vertex2.id, { weight: timeInSeconds, cost, description }); }\n }\n\n function getDistance(coords1: number[], coords2: number[]) {\n const point1 = point(coords1);\n const point2 = point(coords2);\n const distance = turf.distance(point1, point2, { units: 'meters' });\n return distance;\n }\n\n function addEdgeToGraph(graph: Graph, edge: Edge) {\n const node = edge;\n if (node) {\n const vertex = addVertex(\n graph,\n node.coords,\n node.id,\n node.where,\n node.what,\n node.zone,\n true,\n );\n for (let index = 0; index < node.lines.length; index += 1) {\n const line = node.lines[index];\n // add edges for coord pairs\n const coords = turf.getCoords(line);\n for (let i = 0; i < coords.length - 1; i += 1) {\n const vertex1 = addVertex(\n graph,\n coords[i],\n 'vertex',\n node.where,\n RouteDimension.Edge,\n line.properties.zone,\n );\n const vertex2 = addVertex(\n graph,\n coords[i + 1],\n 'vertex',\n node.where,\n RouteDimension.Edge,\n line.properties.zone,\n );\n if (vertex1.id !== vertex2.id) {\n const distance = getDistance(coords[i], coords[i + 1]);\n if (line.properties.direction === LineDirection.Forward || line.properties.direction === LineDirection.TwoWay) {\n addLink(graph, vertex1, vertex2, {\n wheelChairAccesible: line.properties.wheelchair,\n cost: distance,\n isPortal: false,\n description: null,\n });\n }\n if (line.properties.direction === LineDirection.Backward || line.properties.direction === LineDirection.TwoWay) {\n addLink(graph, vertex2, vertex1, {\n wheelChairAccesible: line.properties.wheelchair,\n cost: distance,\n isPortal: false,\n description: null,\n });\n }\n }\n }\n }\n return vertex;\n }\n\n return undefined;\n }\n\n function addNetworkToGraph(graph: Graph, networkFeatures: Feature[]) {\n for (let index = 0; index < networkFeatures.length; index += 1) {\n const feature = networkFeatures[index];\n if (feature.geometry.type === 'LineString') {\n // get line\n const lineCoords = turf.getCoords(feature as any);\n if (feature.properties) {\n const where = feature.properties.dimension_where;\n const what = RouteDimension.Network; // feature.properties.dimension_what;\n const { zone } = feature.properties;\n // add edges for coord pairs\n for (let i = 0; i < lineCoords.length - 1; i += 1) {\n const vertex1 = addVertex(graph, lineCoords[i], 'vertex', where, what, zone, true);\n const vertex2 = addVertex(\n graph,\n lineCoords[i + 1],\n 'vertex',\n where,\n what,\n zone,\n true,\n );\n if (vertex1.id !== vertex2.id) {\n const distance = getDistance(lineCoords[i], lineCoords[i + 1]);\n if (feature.properties.direction === LineDirection.Forward || feature.properties.direction === LineDirection.TwoWay) {\n addLink(graph, vertex1, vertex2, {\n wheelChairAccesible: feature.properties.wheelchair,\n cost: distance,\n isPortal: false,\n description: null,\n });\n }\n if (feature.properties.direction === LineDirection.Backward || feature.properties.direction === LineDirection.TwoWay) {\n addLink(graph, vertex2, vertex1, {\n wheelChairAccesible: feature.properties.wheelchair,\n cost: distance,\n isPortal: false,\n description: null,\n });\n }\n }\n }\n }\n }\n }\n }\n\n function addVertexByEdge(graph: Graph, edge: Edge) {\n const node = edge;\n if (node === undefined) {\n return undefined;\n }\n return addVertex(\n graph,\n node.coords,\n node.id,\n node.where,\n node.what,\n node.zone,\n true,\n );\n }\n\n function addPortalLinksToGraph(graph: Graph, portalEdgeData: PortalEdgeData) {\n for (const mapObjectId1 in portalEdgeData) {\n const portal = portalEdgeData[mapObjectId1];\n\n for (let index = 0; index < portal.links.length; index += 1) {\n const portalLink = portal.links[index];\n let { cost } = portalLink;\n cost = toInteger(cost);\n // if (cost <= 1) {\n // cost = portalWeight;\n // }\n const { direction, wheelchair, description } = portalLink;\n const portal1 = addVertexByEdge(graph, portal);\n const portal2 = addVertexByEdge(graph, portalLink);\n if (portal1 !== undefined && portal2 !== undefined && portal1.id !== portal2.id) {\n if (direction === LineDirection.Forward || direction === LineDirection.TwoWay) {\n addLink(graph, portal1, portal2, {\n wheelChairAccesible: wheelchair,\n cost,\n description,\n isPortal: true,\n });\n }\n if (direction === LineDirection.Backward || direction === LineDirection.TwoWay) {\n addLink(graph, portal2, portal1, {\n wheelChairAccesible: wheelchair,\n cost,\n description,\n isPortal: true,\n });\n }\n\n addEdgeToGraph(graph, portalLink);\n }\n }\n\n addEdgeToGraph(graph, portal);\n }\n }\n\n function initLineString(vertex: any) {\n return {\n type: 'Feature',\n geometry: { type: 'LineString', coordinates: [vertex.data.coords] },\n properties: {\n dimension_where: vertex.data.where,\n zone: vertex.data.zone,\n cost: 0,\n },\n } as Feature<LineString | MultiPoint, any>;\n }\n\n function pathToFeatures(source: Edge, destination : Edge, vertices: Node<any>[], graph: Graph) {\n if (vertices.length <= 1) {\n return {} as CalculationResult;\n } // if no path found\n\n const startNode = source;\n const endNode = destination;\n\n const segments: RouteResult[] = [];\n let segmentStartVertexData = vertices[0].data;\n const geojsonPaths = [initLineString(vertices[0])];\n\n for (let i = 1; i < vertices.length; i += 1) {\n const curVertex = vertices[i];\n const prevVertex = vertices[i - 1];\n const line = geojsonPaths[geojsonPaths.length - 1];\n\n // if vertex is map object\n if (curVertex.data.mapObjectId !== 'vertex' || curVertex.data.zoneUnionVertex) {\n let segment;\n if (isPortalTaxonomy(prevVertex.data.what) && isPortalTaxonomy(curVertex.data.what)) {\n if (prevVertex.data.zone !== curVertex.data.zone) {\n console.warn('A portal is triggering a change in zone');\n }\n\n // check if portal path is available to visualize\n let portalPath;\n if (isMovingPortalTaxonomy(prevVertex.data.what)) {\n const getPortalPath = (portalEdgeData: PortalEdgeData, curVertex: Node<any>, prevVertex: Node<any>, invertStart = false) => {\n const prevVertexMapObjId = prevVertex.data.mapObjectId;\n const set = new Set<string>().add(prevVertexMapObjId);\n const portalDataForSet = filterPortalEdgeDataByList(portalEdgeData, set);\n if (portalDataForSet && portalDataForSet.edgeData[prevVertexMapObjId]) {\n const prevVertexPortalData = portalDataForSet.edgeData[prevVertexMapObjId];\n for (let j = 0; j < prevVertexPortalData.links.length; j += 1) {\n const link = prevVertexPortalData.links[j];\n if (link.id === curVertex.data.mapObjectId) {\n if (link.pathFeatures && link.pathFeatures.length > 0) {\n const line = link.pathFeatures[0];\n const start = invertStart === false ? prevVertex.data.coords : curVertex.data.coords;\n const end = invertStart === false ? curVertex.data.coords : prevVertex.data.coords;\n\n const distanceToStart = turf.distance(start, line.geometry.coordinates[0]);\n const distanceToEnd = turf.distance(end, line.geometry.coordinates[0]);\n const coordsToUse = distanceToStart < distanceToEnd ? line.geometry.coordinates : line.geometry.coordinates.slice().reverse();\n return turf.lineString(coordsToUse);\n }\n }\n }\n }\n\n return null;\n };\n\n portalPath = getPortalPath(portalData.edgeData, curVertex, prevVertex, false);\n if (!portalPath) portalPath = getPortalPath(portalData.edgeData, prevVertex, curVertex, true);\n }\n\n // TODO: read description here\n const link = graph.getLink(prevVertex.id, curVertex.id);\n const cost = link ? link.data.cost ? link.data.cost : undefined : undefined;\n const description = link ? link.data.description ? link.data.description : undefined : undefined;\n segment = {\n geojson: multiPoint([\n prevVertex.data.coords,\n curVertex.data.coords,\n ], {\n zone: curVertex.data.zone,\n }),\n edges: [prevVertex.data.mapObjectId, curVertex.data.mapObjectId],\n startFloor: prevVertex.data.where,\n endFloor: curVertex.data.where,\n isPortal: true,\n portalPath,\n cost,\n description,\n } as RouteResult;\n\n segments.push(segment);\n segmentStartVertexData = curVertex.data;\n } else {\n const nextVertex = (i + 1 < vertices.length) ? vertices[i + 1] : undefined;\n if (curVertex.data.zoneUnionVertex\n && (prevVertex && nextVertex && prevVertex?.data.zone === nextVertex?.data.zone)) {\n console.log('ignore zoneUnionVertex in segment');\n } else {\n segment = {\n geojson: line,\n edges: [segmentStartVertexData.mapObjectId, curVertex.data.mapObjectId],\n startFloor: segmentStartVertexData.where,\n endFloor: segmentStartVertexData.where,\n isPortal: false,\n portalPath: undefined,\n cost: line.properties.cost,\n };\n\n segments.push(segment);\n segmentStartVertexData = curVertex.data;\n }\n }\n }\n\n // same line\n if (!(isPortalTaxonomy(prevVertex.data.what) && isPortalTaxonomy(curVertex.data.what))) {\n const link = graph.getLink(prevVertex.id, curVertex.id); // returns a link from 'hello' to 'world'\n const cost = link ? link.data.cost ? link.data.cost : undefined : undefined;\n\n line.geometry.coordinates.push(curVertex.data.coords);\n line.properties.cost += cost;\n } else {\n // new line\n if (line.geometry.coordinates.length < 2) {\n geojsonPaths.pop();\n }\n geojsonPaths.push(initLineString(curVertex));\n }\n\n // new line due to change in zone\n if (curVertex.data.zoneUnionVertex) {\n const prevVertex = (i > 0) ? vertices[i - 1] : undefined;\n const nextVertex = (i + 1 < vertices.length) ? vertices[i + 1] : undefined;\n if (prevVertex && nextVertex && prevVertex?.data.zone === nextVertex?.data.zone) {\n console.log('ignore zoneUnionVertex');\n } else\n // Use zone value of next vertex (when available) as current vertex is a common vertex and can have either of the zone values\n if (nextVertex) {\n const copyOfCurrentVertex = cloneDeep(curVertex);\n copyOfCurrentVertex.data.zone = nextVertex.data.zone;\n geojsonPaths.push(initLineString(copyOfCurrentVertex));\n } else {\n geojsonPaths.push(initLineString(curVertex));\n }\n }\n }\n\n const result: CalculationResult = {\n startNode,\n endNode,\n routes: segments,\n distance: 0,\n };\n\n return result;\n }\n\n function findPath(vertex1: Node<any>, vertex2: Node<any>, graph: Graph) {\n // setup ngraph pathfinder\n const pathFinder = aStar(graph, {\n oriented: true,\n distance(fromNode, toNode, link) {\n return link.data.weight;\n },\n blocked(fromNode, toNode, link) {\n if (changeZoneCheckEnabled) {\n const isZoneCrossing = fromNode?.data.zone !== toNode?.data.zone;\n if (isZoneCrossing) {\n const parentWhereDimensionOfFromNode = getParentDimension(fromNode.data.where);\n const parentWhereDimensionOfStartNode = getParentDimension((startNode as Edge).where);\n const parentWhereDimensionOfToNode = getParentDimension(toNode.data.where);\n if (parentWhereDimensionOfFromNode !== parentWhereDimensionOfStartNode && parentWhereDimensionOfToNode !== parentWhereDimensionOfStartNode) {\n return true;\n }\n }\n }\n return false;\n },\n });\n\n // get shortest path\n const path = pathFinder.find(vertex1.id, vertex2.id).reverse();\n return path;\n }\n\n function setupGraphAndFindPath(source: Edge, destination: Edge, portalEdgeData: PortalEdgeData, networkData: Feature[]) {\n // create ngraph graph\n const graph = createGraph();\n\n // add node & node lines to graph\n const vertex1 = addEdgeToGraph(graph, source);\n const vertex2 = addEdgeToGraph(graph, destination);\n\n if (vertex1 && vertex2) {\n // Add portal links\n addPortalLinksToGraph(graph, portalEdgeData);\n\n // add networks to graph\n addNetworkToGraph(graph, networkData);\n\n const path = findPath(vertex1, vertex2, graph);\n // reconstruct path into geojson features\n const geojsonPath = pathToFeatures(source, destination, path, graph);\n return geojsonPath;\n }\n\n return {} as CalculationResult;\n }\n\n function getRouteWithAllPortals(source: Edge, destination: Edge) {\n let start = performance.now();\n\n // Load network data\n const networkFeatures = getNetworkFeatures(DEFAULT_DIMENSION);\n console.log('time load: ', (performance.now() - start) / 1000);\n\n start = performance.now();\n const concatenatedEdgeFeatures = source.lines.concat(destination.lines, portalData.lines);\n const concatenatedNetworkFeatures = networkFeatures;\n\n if (runIntersection) optimized(concatenatedEdgeFeatures, concatenatedNetworkFeatures);\n console.log('time network: ', (performance.now() - start) / 1000, networkFeatures.length);\n\n return setupGraphAndFindPath(source, destination, portalData.edgeData, concatenatedNetworkFeatures);\n }\n\n function getRouteWithSpecificPortals(source: Edge, destination: Edge, routeWithAllAvailablePortals: CalculationResult) {\n const portalsToUse = new Set<string>();\n for (let index = 0; routeWithAllAvailablePortals.routes && index < routeWithAllAvailablePortals.routes.length; index += 1) {\n const segment = routeWithAllAvailablePortals.routes[index];\n if (segment.isPortal) {\n portalsToUse.add(segment.edges[0]);\n portalsToUse.add(segment.edges[1]);\n }\n }\n\n let start = performance.now();\n // Load data\n // Load network data\n const networkFeatures = getNetworkFeatures(DEFAULT_DIMENSION);\n // Load portal data\n const portalDataForList = filterPortalEdgeDataByList(portalData.edgeData, portalsToUse);\n console.log('time load: ', (performance.now() - start) / 1000);\n\n start = performance.now();\n const concatenatedEdgeFeatures = source.lines.concat(destination.lines, portalDataForList.lines);\n const concatenatedNetworkFeatures = networkFeatures;\n\n if (runIntersection) optimized(concatenatedEdgeFeatures, concatenatedNetworkFeatures);\n console.log('time network: ', (performance.now() - start) / 1000, networkFeatures.length);\n\n return setupGraphAndFindPath(source, destination, portalDataForList.edgeData, concatenatedNetworkFeatures);\n }\n\n function getDirectRoute(source: Edge, destination: Edge) {\n let start = performance.now();\n // Load data\n // Load network data\n const networkFeaturesSourceNode = getNetworkFeatures(getParentDimension(source.where));\n const networkFeaturesDestinationNode = getNetworkFeatures(getParentDimension(destination.where));\n // Load portal data\n const portalDataSourceNode = filterPortalEdgeDataByWhere(portalData.edgeData, getParentDimension(source.where));\n const portalDataDestinationNode = filterPortalEdgeDataByWhere(portalData.edgeData, getParentDimension(destination.where));\n\n console.log('time load: ', (performance.now() - start) / 1000);\n\n start = performance.now();\n const concatenatedEdgeFeatures = source.lines.concat(destination.lines, portalDataSourceNode.lines, portalDataDestinationNode.lines);\n const concatenatedNetworkFeatures = networkFeaturesSourceNode.concat(networkFeaturesDestinationNode);\n\n if (runIntersection) optimized(concatenatedEdgeFeatures, concatenatedNetworkFeatures);\n console.log('time network: ', (performance.now() - start) / 1000, networkFeaturesSourceNode.length);\n\n const portalEdgeData = {\n ...portalDataSourceNode.edgeData,\n ...portalDataDestinationNode.edgeData,\n };\n return setupGraphAndFindPath(source, destination, portalEdgeData, concatenatedNetworkFeatures);\n }\n\n // function to get shortest route\n function getRoute(\n mapObjectId1: string | UserPosition,\n mapObjectId2: string,\n wheelChairAccessibleRouteOnlyParam: boolean\n ) {\n wheelChairAccessibleRouteOnly = wheelChairAccessibleRouteOnlyParam;\n // if same start & end\n if (mapObjectId1 === mapObjectId2) {\n return {} as CalculationResult;\n }\n\n if(typeof(mapObjectId1) !== 'string'\n || typeof(mapObjectId2) !== 'string'\n ) runIntersection = true;\n\n const node1 = getEdge(mapObjectId1);\n const node2 = getEdge(mapObjectId2);\n\n startNode = node1;\n endNode = node2;\n\n let start = performance.now();\n portalData = getPortalDataForDimension(DEFAULT_DIMENSION);\n console.log('time portal load with extrapolation: ', (performance.now() - start) / 1000);\n\n start = performance.now();\n if (startNode && endNode) {\n changeZoneCheckEnabled = true;\n const runRouteIteration = () => {\n const directRoute = getDirectRoute(startNode as Edge, endNode as Edge);\n console.log('Direct route', directRoute);\n if (isEmpty(directRoute)) {\n const routeWithAllPortals = getRouteWithAllPortals(startNode as Edge, endNode as Edge);\n const finalRoute = getRouteWithSpecificPortals(startNode as Edge, endNode as Edge, routeWithAllPortals);\n return finalRoute;\n }\n\n const finalRoute = getRouteWithSpecificPortals(startNode as Edge, endNode as Edge, directRoute);\n return finalRoute;\n };\n\n let route = runRouteIteration();\n if (isEmpty(route)) {\n changeZoneCheckEnabled = false;\n route = runRouteIteration();\n }\n\n console.log('time total: ', (performance.now() - start) / 1000);\n return route;\n }\n\n return {} as CalculationResult;\n }\n\n return { getRoute };\n}());\n\nexport default RoutingCore;\n"],"mappings":"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","ignoreList":[]}
@@ -4,26 +4,26 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.Zone = exports.WALK_SPEED = exports.RouteDimension = exports.PortalType = exports.LineDirection = exports.DISTANCE_UNIT = void 0;
7
- var DISTANCE_UNIT = exports.DISTANCE_UNIT = 'meters';
8
- var WALK_SPEED = exports.WALK_SPEED = 1.42; // meters/second
9
- var LineDirection = exports.LineDirection = /*#__PURE__*/function (LineDirection) {
7
+ const DISTANCE_UNIT = exports.DISTANCE_UNIT = 'meters';
8
+ const WALK_SPEED = exports.WALK_SPEED = 1.42; // meters/second
9
+ let LineDirection = exports.LineDirection = /*#__PURE__*/function (LineDirection) {
10
10
  LineDirection[LineDirection["TwoWay"] = 2] = "TwoWay";
11
11
  LineDirection[LineDirection["Forward"] = 1] = "Forward";
12
12
  LineDirection[LineDirection["Backward"] = -1] = "Backward";
13
13
  return LineDirection;
14
14
  }({});
15
- var Zone = exports.Zone = /*#__PURE__*/function (Zone) {
15
+ let Zone = exports.Zone = /*#__PURE__*/function (Zone) {
16
16
  Zone["Transit"] = "transit";
17
17
  Zone["Public"] = "public";
18
18
  return Zone;
19
19
  }({});
20
- var RouteDimension = exports.RouteDimension = /*#__PURE__*/function (RouteDimension) {
20
+ let RouteDimension = exports.RouteDimension = /*#__PURE__*/function (RouteDimension) {
21
21
  RouteDimension["Edge"] = "what.route_edge";
22
22
  RouteDimension["Network"] = "what.route_network";
23
23
  RouteDimension["PortalNetwork"] = "what.link";
24
24
  return RouteDimension;
25
25
  }({});
26
- var PortalType = exports.PortalType = /*#__PURE__*/function (PortalType) {
26
+ let PortalType = exports.PortalType = /*#__PURE__*/function (PortalType) {
27
27
  PortalType["escalator"] = "escalator";
28
28
  PortalType["lift"] = "lift";
29
29
  PortalType["liftAnchor"] = "liftAnchor";
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.js","names":["DISTANCE_UNIT","exports","WALK_SPEED","LineDirection","Zone","RouteDimension","PortalType"],"sources":["../../../../../src/meta-atlas-sdk/MetaAtlasCore/routing-core/interfaces.ts"],"sourcesContent":["import {\n Coord,\n} from '@turf/helpers';\n\nimport { Feature, LineString, MultiPoint, Position, GeoJsonProperties } from 'geojson';\n\nexport const DISTANCE_UNIT = 'meters';\nexport const WALK_SPEED = 1.42; // meters/second\n\nexport interface Geometry {\n coordinates: number[][] | number[];\n type: string;\n}\n\nexport enum LineDirection {\n TwoWay = 2,\n Forward = 1,\n Backward = -1\n}\n\nexport enum Zone {\n Transit = 'transit',\n Public = 'public',\n}\n\nexport interface Properties {\n zone: Zone;\n wheelchair: number;\n direction: LineDirection;\n}\n\nexport interface Line {\n type: string;\n geometry: Geometry;\n properties: Properties;\n}\n\nexport type EdgeLine = Feature<LineString, Properties>;\n\nexport interface UserPosition{\n sourceCoords: Position,\n whereDimension: string\n}\n\nexport interface Edge {\n coords: number[];\n lines: EdgeLine[];\n zone: Zone;\n where: string;\n what: string;\n name: string;\n id: string;\n}\n\nexport type PortalEdge = Edge & {\n cost: number;\n wheelchair : number;\n direction: LineDirection;\n pathFeatures : Feature<LineString, any>[] | null;\n description: string | null;\n}\n\nexport type Portal = Edge & {\n links: PortalEdge[];\n}\n\nexport interface MapObject {\n geometry: Geometry;\n lngLat: number[] | null;\n mapObjectId: string;\n name: string;\n what: string;\n where: string;\n properties: {\n dimension_what: string;\n dimension_where: string;\n isSearchable: boolean;\n localRef: string;\n myMapObjectId: string;\n myMapObjectInstanceId?: string;\n property_dtdx?: string;\n tags?: string;\n title: string;\n };\n}\n\nexport interface NodesObject {\n [key: string]: {\n [key: string]: Edge;\n };\n}\n\nexport interface Tree {\n where: string;\n paths: string[];\n destinations: {\n [key: string]: any;\n };\n}\n\nexport type SwitchLevel = 'building' | 'floor' | null | false;\n\nexport interface RouteResult {\n geojson?: Feature<LineString | MultiPoint, GeoJsonProperties>;\n edges: string[];\n startFloor: string;\n endFloor: string;\n isPortal: boolean;\n portalPath: EdgeLine | undefined;\n cost: number; // Only used when isPortal = true\n description: string | null;\n}\n\nexport interface CalculationResult {\n startNode?: Edge;\n endNode?: Edge;\n routes?: RouteResult[];\n distance?: number;\n}\n\nexport enum RouteDimension {\n Edge = 'what.route_edge',\n Network = 'what.route_network',\n PortalNetwork = 'what.link'\n}\n\nexport enum PortalType {\n escalator = 'escalator',\n lift = 'lift',\n liftAnchor = 'liftAnchor',\n bus = 'airport_transfer',\n skytrain = 'skytrain',\n entrance = 'entrance',\n exit = 'exit',\n staircase = 'staircase',\n unknown = ''\n}\n\nexport interface LinkData {\n id: string;\n firstRelatedId: string;\n secondRelatedId: string;\n targetLocalRef: string;\n direction: number;\n wheelchair: boolean;\n cost: number;\n description?: string;\n isNew?: boolean;\n isParallel?: boolean;\n index?: number;\n isAnchor?: boolean;\n whereTaxonomy?: string;\n firstPortalType?: string;\n secondPortalType: string;\n disableEmail?: boolean;\n}\n\nexport type PortalEdgeData = {[key: string] : Portal};\n\nexport type PortalLinks = {[key: string] : {\n type: PortalType,\n links: Array<any>,\n}}\n"],"mappings":";;;;;;AAMO,IAAMA,aAAa,GAAAC,OAAA,CAAAD,aAAA,GAAG,QAAQ;AAC9B,IAAME,UAAU,GAAAD,OAAA,CAAAC,UAAA,GAAG,IAAI,CAAC,CAAC;AAAA,IAOpBC,aAAa,GAAAF,OAAA,CAAAE,aAAA,0BAAbA,aAAa;EAAbA,aAAa,CAAbA,aAAa;EAAbA,aAAa,CAAbA,aAAa;EAAbA,aAAa,CAAbA,aAAa;EAAA,OAAbA,aAAa;AAAA;AAAA,IAMbC,IAAI,GAAAH,OAAA,CAAAG,IAAA,0BAAJA,IAAI;EAAJA,IAAI;EAAJA,IAAI;EAAA,OAAJA,IAAI;AAAA;AAAA,IAoGJC,cAAc,GAAAJ,OAAA,CAAAI,cAAA,0BAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAA,OAAdA,cAAc;AAAA;AAAA,IAMdC,UAAU,GAAAL,OAAA,CAAAK,UAAA,0BAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAA,OAAVA,UAAU;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"interfaces.js","names":["DISTANCE_UNIT","exports","WALK_SPEED","LineDirection","Zone","RouteDimension","PortalType"],"sources":["../../../../../src/meta-atlas-sdk/MetaAtlasCore/routing-core/interfaces.ts"],"sourcesContent":["import {\n Coord,\n} from '@turf/helpers';\n\nimport { Feature, LineString, MultiPoint, Position, GeoJsonProperties } from 'geojson';\n\nexport const DISTANCE_UNIT = 'meters';\nexport const WALK_SPEED = 1.42; // meters/second\n\nexport interface Geometry {\n coordinates: number[][] | number[];\n type: string;\n}\n\nexport enum LineDirection {\n TwoWay = 2,\n Forward = 1,\n Backward = -1\n}\n\nexport enum Zone {\n Transit = 'transit',\n Public = 'public',\n}\n\nexport interface Properties {\n zone: Zone;\n wheelchair: number;\n direction: LineDirection;\n}\n\nexport interface Line {\n type: string;\n geometry: Geometry;\n properties: Properties;\n}\n\nexport type EdgeLine = Feature<LineString, Properties>;\n\nexport interface UserPosition{\n sourceCoords: Position,\n whereDimension: string\n}\n\nexport interface Edge {\n coords: number[];\n lines: EdgeLine[];\n zone: Zone;\n where: string;\n what: string;\n name: string;\n id: string;\n}\n\nexport type PortalEdge = Edge & {\n cost: number;\n wheelchair : number;\n direction: LineDirection;\n pathFeatures : Feature<LineString, any>[] | null;\n description: string | null;\n}\n\nexport type Portal = Edge & {\n links: PortalEdge[];\n}\n\nexport interface MapObject {\n geometry: Geometry;\n lngLat: number[] | null;\n mapObjectId: string;\n name: string;\n what: string;\n where: string;\n properties: {\n dimension_what: string;\n dimension_where: string;\n isSearchable: boolean;\n localRef: string;\n myMapObjectId: string;\n myMapObjectInstanceId?: string;\n property_dtdx?: string;\n tags?: string;\n title: string;\n };\n}\n\nexport interface NodesObject {\n [key: string]: {\n [key: string]: Edge;\n };\n}\n\nexport interface Tree {\n where: string;\n paths: string[];\n destinations: {\n [key: string]: any;\n };\n}\n\nexport type SwitchLevel = 'building' | 'floor' | null | false;\n\nexport interface RouteResult {\n geojson?: Feature<LineString | MultiPoint, GeoJsonProperties>;\n edges: string[];\n startFloor: string;\n endFloor: string;\n isPortal: boolean;\n portalPath: EdgeLine | undefined;\n cost: number; // Only used when isPortal = true\n description: string | null;\n}\n\nexport interface CalculationResult {\n startNode?: Edge;\n endNode?: Edge;\n routes?: RouteResult[];\n distance?: number;\n}\n\nexport enum RouteDimension {\n Edge = 'what.route_edge',\n Network = 'what.route_network',\n PortalNetwork = 'what.link'\n}\n\nexport enum PortalType {\n escalator = 'escalator',\n lift = 'lift',\n liftAnchor = 'liftAnchor',\n bus = 'airport_transfer',\n skytrain = 'skytrain',\n entrance = 'entrance',\n exit = 'exit',\n staircase = 'staircase',\n unknown = ''\n}\n\nexport interface LinkData {\n id: string;\n firstRelatedId: string;\n secondRelatedId: string;\n targetLocalRef: string;\n direction: number;\n wheelchair: boolean;\n cost: number;\n description?: string;\n isNew?: boolean;\n isParallel?: boolean;\n index?: number;\n isAnchor?: boolean;\n whereTaxonomy?: string;\n firstPortalType?: string;\n secondPortalType: string;\n disableEmail?: boolean;\n}\n\nexport type PortalEdgeData = {[key: string] : Portal};\n\nexport type PortalLinks = {[key: string] : {\n type: PortalType,\n links: Array<any>,\n}}\n"],"mappings":";;;;;;AAMO,MAAMA,aAAa,GAAAC,OAAA,CAAAD,aAAA,GAAG,QAAQ;AAC9B,MAAME,UAAU,GAAAD,OAAA,CAAAC,UAAA,GAAG,IAAI,CAAC,CAAC;AAAA,IAOpBC,aAAa,GAAAF,OAAA,CAAAE,aAAA,0BAAbA,aAAa;EAAbA,aAAa,CAAbA,aAAa;EAAbA,aAAa,CAAbA,aAAa;EAAbA,aAAa,CAAbA,aAAa;EAAA,OAAbA,aAAa;AAAA;AAAA,IAMbC,IAAI,GAAAH,OAAA,CAAAG,IAAA,0BAAJA,IAAI;EAAJA,IAAI;EAAJA,IAAI;EAAA,OAAJA,IAAI;AAAA;AAAA,IAoGJC,cAAc,GAAAJ,OAAA,CAAAI,cAAA,0BAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAA,OAAdA,cAAc;AAAA;AAAA,IAMdC,UAAU,GAAAL,OAAA,CAAAK,UAAA,0BAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAA,OAAVA,UAAU;AAAA","ignoreList":[]}
@@ -8,27 +8,27 @@ exports.getImmigrationPolygonFeaturesForWhereTaxonomy = getImmigrationPolygonFea
8
8
  exports.getNetworkFeatures = getNetworkFeatures;
9
9
  exports.getPortalDataForDimension = getPortalDataForDimension;
10
10
  exports.getPortalDataForMapObjects = getPortalDataForMapObjects;
11
- var _fetchMapObjectsData = require("../fetchMapObjectsData");
11
+ var _fetchMapObjectsData = require("../fetchMapObjectsData.js");
12
12
  /* eslint-disable camelcase */
13
13
 
14
14
  function getNetworkFeatures(whereDimension) {
15
- var includeChildren = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
15
+ let includeChildren = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
16
16
  return (0, _fetchMapObjectsData.getRouteNetworkData)(whereDimension, includeChildren);
17
17
  }
18
18
  function getEdge(mapObjectId) {
19
- var edge = (0, _fetchMapObjectsData.getEdgeData)(mapObjectId);
19
+ const edge = (0, _fetchMapObjectsData.getEdgeData)(mapObjectId);
20
20
  return edge;
21
21
  }
22
22
  function getPortalDataForDimension(whereDimension) {
23
- var portalData = (0, _fetchMapObjectsData.getPortalLinks)(whereDimension);
23
+ const portalData = (0, _fetchMapObjectsData.getPortalLinks)(whereDimension);
24
24
  return portalData;
25
25
  }
26
26
  function getPortalDataForMapObjects(mapObjectIds) {
27
- var portalData = (0, _fetchMapObjectsData.getPortalDataForIds)(Array.from(mapObjectIds));
27
+ const portalData = (0, _fetchMapObjectsData.getPortalDataForIds)(Array.from(mapObjectIds));
28
28
  return portalData;
29
29
  }
30
30
  function getImmigrationPolygonFeaturesForWhereTaxonomy(whereDimension) {
31
- var taxonomy1Path = whereDimension;
31
+ const taxonomy1Path = whereDimension;
32
32
  return (0, _fetchMapObjectsData.getImmigrationDataForTaxonomy1)(taxonomy1Path);
33
33
  }
34
34
  //# sourceMappingURL=mapObjectsHelper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mapObjectsHelper.js","names":["_fetchMapObjectsData","require","getNetworkFeatures","whereDimension","includeChildren","arguments","length","undefined","getRouteNetworkData","getEdge","mapObjectId","edge","getEdgeData","getPortalDataForDimension","portalData","getPortalLinks","getPortalDataForMapObjects","mapObjectIds","getPortalDataForIds","Array","from","getImmigrationPolygonFeaturesForWhereTaxonomy","taxonomy1Path","getImmigrationDataForTaxonomy1"],"sources":["../../../../../src/meta-atlas-sdk/MetaAtlasCore/routing-core/mapObjectsHelper.ts"],"sourcesContent":["/* eslint-disable camelcase */\nimport {\n Edge,\n UserPosition,\n} from './interfaces';\nimport {\n getEdgeData, getPortalDataForIds, getImmigrationDataForTaxonomy1, getPortalLinks, getRouteNetworkData,\n} from '../fetchMapObjectsData';\n\nexport function getNetworkFeatures(whereDimension: string, includeChildren = true) {\n return getRouteNetworkData(whereDimension, includeChildren);\n}\n\nexport function getEdge(mapObjectId: string | UserPosition) : Edge | undefined {\n const edge = getEdgeData(mapObjectId);\n return edge;\n}\n\nexport function getPortalDataForDimension(whereDimension: string) {\n const portalData = getPortalLinks(whereDimension);\n return portalData;\n}\n\nexport function getPortalDataForMapObjects(mapObjectIds: Set<string>) {\n const portalData = getPortalDataForIds(Array.from(mapObjectIds));\n return portalData;\n}\n\nexport function getImmigrationPolygonFeaturesForWhereTaxonomy(whereDimension: string) {\n const taxonomy1Path = whereDimension;\n return getImmigrationDataForTaxonomy1(taxonomy1Path);\n}\n"],"mappings":";;;;;;;;;;AAKA,IAAAA,oBAAA,GAAAC,OAAA;AALA;;AASO,SAASC,kBAAkBA,CAACC,cAAsB,EAA0B;EAAA,IAAxBC,eAAe,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;EAC/E,OAAO,IAAAG,wCAAmB,EAACL,cAAc,EAAEC,eAAe,CAAC;AAC7D;AAEO,SAASK,OAAOA,CAACC,WAAkC,EAAqB;EAC7E,IAAMC,IAAI,GAAG,IAAAC,gCAAW,EAACF,WAAW,CAAC;EACrC,OAAOC,IAAI;AACb;AAEO,SAASE,yBAAyBA,CAACV,cAAsB,EAAE;EAChE,IAAMW,UAAU,GAAG,IAAAC,mCAAc,EAACZ,cAAc,CAAC;EACjD,OAAOW,UAAU;AACnB;AAEO,SAASE,0BAA0BA,CAACC,YAAyB,EAAE;EACpE,IAAMH,UAAU,GAAG,IAAAI,wCAAmB,EAACC,KAAK,CAACC,IAAI,CAACH,YAAY,CAAC,CAAC;EAChE,OAAOH,UAAU;AACnB;AAEO,SAASO,6CAA6CA,CAAClB,cAAsB,EAAE;EACpF,IAAMmB,aAAa,GAAGnB,cAAc;EACpC,OAAO,IAAAoB,mDAA8B,EAACD,aAAa,CAAC;AACtD","ignoreList":[]}
1
+ {"version":3,"file":"mapObjectsHelper.js","names":["getNetworkFeatures","whereDimension","includeChildren","arguments","length","undefined","getRouteNetworkData","getEdge","mapObjectId","edge","getEdgeData","getPortalDataForDimension","portalData","getPortalLinks","getPortalDataForMapObjects","mapObjectIds","getPortalDataForIds","Array","from","getImmigrationPolygonFeaturesForWhereTaxonomy","taxonomy1Path","getImmigrationDataForTaxonomy1"],"sources":["../../../../../src/meta-atlas-sdk/MetaAtlasCore/routing-core/mapObjectsHelper.ts"],"sourcesContent":["/* eslint-disable camelcase */\nimport {\n Edge,\n UserPosition,\n} from './interfaces';\nimport {\n getEdgeData, getPortalDataForIds, getImmigrationDataForTaxonomy1, getPortalLinks, getRouteNetworkData,\n} from '../fetchMapObjectsData';\n\nexport function getNetworkFeatures(whereDimension: string, includeChildren = true) {\n return getRouteNetworkData(whereDimension, includeChildren);\n}\n\nexport function getEdge(mapObjectId: string | UserPosition) : Edge | undefined {\n const edge = getEdgeData(mapObjectId);\n return edge;\n}\n\nexport function getPortalDataForDimension(whereDimension: string) {\n const portalData = getPortalLinks(whereDimension);\n return portalData;\n}\n\nexport function getPortalDataForMapObjects(mapObjectIds: Set<string>) {\n const portalData = getPortalDataForIds(Array.from(mapObjectIds));\n return portalData;\n}\n\nexport function getImmigrationPolygonFeaturesForWhereTaxonomy(whereDimension: string) {\n const taxonomy1Path = whereDimension;\n return getImmigrationDataForTaxonomy1(taxonomy1Path);\n}\n"],"mappings":";;;;;;;;;;;AAAA;;AASO,SAASA,kBAAkBA,CAACC,cAAsB,EAA0B;EAAA,IAAxBC,eAAe,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;EAC/E,OAAO,IAAAG,wCAAmB,EAACL,cAAc,EAAEC,eAAe,CAAC;AAC7D;AAEO,SAASK,OAAOA,CAACC,WAAkC,EAAqB;EAC7E,MAAMC,IAAI,GAAG,IAAAC,gCAAW,EAACF,WAAW,CAAC;EACrC,OAAOC,IAAI;AACb;AAEO,SAASE,yBAAyBA,CAACV,cAAsB,EAAE;EAChE,MAAMW,UAAU,GAAG,IAAAC,mCAAc,EAACZ,cAAc,CAAC;EACjD,OAAOW,UAAU;AACnB;AAEO,SAASE,0BAA0BA,CAACC,YAAyB,EAAE;EACpE,MAAMH,UAAU,GAAG,IAAAI,wCAAmB,EAACC,KAAK,CAACC,IAAI,CAACH,YAAY,CAAC,CAAC;EAChE,OAAOH,UAAU;AACnB;AAEO,SAASO,6CAA6CA,CAAClB,cAAsB,EAAE;EACpF,MAAMmB,aAAa,GAAGnB,cAAc;EACpC,OAAO,IAAAoB,mDAA8B,EAACD,aAAa,CAAC;AACtD","ignoreList":[]}
@@ -4,8 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.routeLayers = exports.routeAnimateLayers = void 0;
7
- var lineColorConfigForRouteLines = ['match', ['get', 'isNonHighlightedOverview'], '1', '#A7A6BA', '0', ['match', ['get', 'zone'], 'transit', '#4F7EF8', 'public', '#CF9FFF', '#CF9FFF'], ['match', ['get', 'zone'], 'transit', '#4F7EF8', 'public', '#CF9FFF', '#CF9FFF']];
8
- var routeLayers = exports.routeLayers = [
7
+ const lineColorConfigForRouteLines = ['match', ['get', 'isNonHighlightedOverview'], '1', '#A7A6BA', '0', ['match', ['get', 'zone'], 'transit', '#4F7EF8', 'public', '#CF9FFF', '#CF9FFF'], ['match', ['get', 'zone'], 'transit', '#4F7EF8', 'public', '#CF9FFF', '#CF9FFF']];
8
+ const routeLayers = exports.routeLayers = [
9
9
  // Default state
10
10
  {
11
11
  id: 'route-line-outline-inactive',
@@ -178,7 +178,7 @@ var routeLayers = exports.routeLayers = [
178
178
  }];
179
179
 
180
180
  // Filter and isAnimationLayer unused currently in react native sdk due to some Maplibre.Animated.LineLayer limitations i.e. not supporting filters
181
- var routeAnimateLayers = exports.routeAnimateLayers = [{
181
+ const routeAnimateLayers = exports.routeAnimateLayers = [{
182
182
  id: 'route-line-animate',
183
183
  type: 'line',
184
184
  filter: ['all', ['==', ['geometry-type'], 'LineString'], ['==', ['get', 'highlight'], true]],
@@ -1 +1 @@
1
- {"version":3,"file":"routeLayers.js","names":["lineColorConfigForRouteLines","routeLayers","exports","id","type","filter","paint","layout","style","lineCap","lineJoin","lineColor","lineWidth","belowLayerID","lineGapWidth","circleRadius","circleOpacity","circleStrokeWidth","circleStrokeColor","circleStrokeOpacity","circleColor","routeAnimateLayers","lineOpacity","isAnimationLayer"],"sources":["../../../../../src/meta-atlas-sdk/MetaAtlasCore/routing-core/routeLayers.ts"],"sourcesContent":["const lineColorConfigForRouteLines = [\n 'match', ['get', 'isNonHighlightedOverview'],\n '1', '#A7A6BA',\n '0', [\n 'match', ['get', 'zone'],\n 'transit', '#4F7EF8',\n 'public', '#CF9FFF',\n '#CF9FFF',\n ],\n [\n 'match', ['get', 'zone'],\n 'transit', '#4F7EF8',\n 'public', '#CF9FFF',\n '#CF9FFF',\n ],\n];\n\nexport const routeLayers = [\n // Default state\n {\n id: 'route-line-outline-inactive',\n type: 'line',\n filter: ['all',\n ['==', ['geometry-type'], 'LineString'],\n ['==', ['get', 'highlight'], false],\n ],\n // layout: {\n // 'line-cap': 'round',\n // 'line-join': 'round',\n // },\n paint: {\n 'line-color': '#FFFFFF',\n 'line-gap-width': 6,\n },\n layout: {\n 'line-cap': 'round',\n 'line-join': 'round',\n },\n },\n {\n id: 'route-line-inactive',\n type: 'line',\n filter: [\n 'all',\n ['==', ['geometry-type'], 'LineString'],\n ['==', ['get', 'highlight'], false],\n ],\n style: {\n lineCap: 'round',\n lineJoin: 'round',\n lineColor: lineColorConfigForRouteLines,\n lineWidth: 5,\n },\n paint: {\n 'line-color': lineColorConfigForRouteLines,\n 'line-width': 5,\n },\n layout: {\n 'line-cap': 'round',\n 'line-join': 'round',\n },\n belowLayerID: 'route-line-animate', // custom attribute used in the SDK code to make sure these layers are added below the mentioned layer ID\n },\n // {\n // id: 'route-line-endpoint-inactive',\n // type: 'circle',\n // filter: [\n // 'all',\n // ['==', ['geometry-type'], 'Point'],\n // ['==', ['get', 'highlight'], false],\n // ],\n // style: {\n // circleRadius: 2,\n // // circleStrokeWidth: 3,\n // circleStrokeColor: '#475474',\n // circleOpacity: 0,\n // },\n // paint: {\n // 'circle-radius': 1,\n // // 'circle-stroke-width': 3,\n // 'circle-stroke-color': '#475474',\n // 'circle-opacity': 0,\n // },\n // },\n // {\n // id: 'route-line-endpoint-fill',\n // type: 'circle',\n // filter: ['all', ['==', ['geometry-type'], 'Point']],\n // style: {\n // circleRadius: 2,\n // circleColor: '#475474',\n // },\n // paint: {\n // 'circle-color': '#475474',\n // 'circle-radius': 1,\n // },\n // },\n // Highlighted state\n {\n id: 'route-line-active',\n type: 'line',\n filter: [\n 'all',\n ['==', ['geometry-type'], 'LineString'],\n ['==', ['get', 'highlight'], true],\n ],\n style: {\n lineCap: 'round',\n lineJoin: 'round',\n lineColor: lineColorConfigForRouteLines,\n lineWidth: 6,\n },\n paint: {\n 'line-color': lineColorConfigForRouteLines,\n 'line-width': 6,\n },\n layout: {\n 'line-cap': 'round',\n 'line-join': 'round',\n },\n belowLayerID: 'route-line-animate', // custom attribute used in the SDK code to make sure these layers are added below the mentioned layer ID\n },\n {\n id: 'route-line-outline-active',\n type: 'line',\n filter: ['all',\n ['==', ['geometry-type'], 'LineString'],\n ['==', ['get', 'highlight'], true],\n ],\n style: {\n lineCap: 'round',\n lineJoin: 'round',\n lineColor: '#FFFFFF',\n lineGapWidth: 6,\n },\n paint: {\n 'line-color': '#FFFFFF',\n 'line-gap-width': 6,\n },\n layout: {\n 'line-cap': 'round',\n 'line-join': 'round',\n },\n },\n // {\n // id: 'route-line-symbol-active',\n // type: 'symbol',\n // filter: [\n // 'all',\n // ['==', ['geometry-type'], 'LineString'],\n // ['==', ['get', 'highlight'], true],\n // ],\n // minZoom: 17,\n // style: {\n // symbolPlacement: 'line',\n // symbolSpacing: 100,\n // textField: '>>>',\n // textAnchor: 'center',\n // textFont: ['Source Sans Pro Black', 'Arial Unicode MS Regular'],\n // textMaxAngle: 30,\n // textPitchAlignment: 'map',\n // textRotationAlignment: 'map',\n // textSize: 14,\n // textTransform: 'none',\n // textKeepUpright: false,\n\n // textHaloColor: '#4F7EF8',\n // textColor: '#4F7EF8',\n // textHaloWidth: 2,\n // },\n // },\n {\n id: 'route-line-endpoint-active',\n type: 'circle',\n filter: [\n 'all',\n ['==', ['geometry-type'], 'Point'],\n ['==', ['get', 'highlight'], true],\n ['==', ['get', 'isNode'], true],\n ],\n style: {\n circleRadius: 2,\n circleOpacity: 0,\n circleStrokeWidth: 2,\n circleStrokeColor: '#FFFFFF',\n circleStrokeOpacity: 0.7,\n },\n paint: {\n 'circle-radius': 2,\n 'circle-opacity': 0,\n 'circle-stroke-width': 2,\n 'circle-stroke-color': '#FFFFFF',\n 'circle-stroke-opacity': 0.7,\n },\n },\n {\n id: 'route-line-endpoint-fill-active',\n type: 'circle',\n filter: [\n 'all',\n ['==', ['geometry-type'], 'Point'],\n ['==', ['get', 'highlight'], true],\n ['==', ['get', 'isNode'], true],\n ],\n style: {\n circleRadius: 2,\n circleColor: '#FFFFFF',\n circleOpacity: 0.7,\n },\n paint: {\n 'circle-color': '#FFFFFF',\n 'circle-radius': 2,\n 'circle-opacity': 0.7,\n },\n },\n];\n\n// Filter and isAnimationLayer unused currently in react native sdk due to some Maplibre.Animated.LineLayer limitations i.e. not supporting filters\nexport const routeAnimateLayers = [\n {\n id: 'route-line-animate',\n type: 'line',\n filter: [\n 'all',\n ['==', ['geometry-type'], 'LineString'],\n ['==', ['get', 'highlight'], true],\n ],\n style: {\n lineCap: 'round',\n lineJoin: 'round',\n lineColor: '#FFFFFF',\n lineOpacity: 0.7,\n lineWidth: 4,\n },\n paint: {\n 'line-color': '#FFFFFF',\n 'line-width': 4,\n 'line-opacity': 0.7,\n },\n layout: {\n 'line-cap': 'round',\n 'line-join': 'round',\n },\n isAnimationLayer: true,\n },\n];\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"routeLayers.js","names":["lineColorConfigForRouteLines","routeLayers","exports","id","type","filter","paint","layout","style","lineCap","lineJoin","lineColor","lineWidth","belowLayerID","lineGapWidth","circleRadius","circleOpacity","circleStrokeWidth","circleStrokeColor","circleStrokeOpacity","circleColor","routeAnimateLayers","lineOpacity","isAnimationLayer"],"sources":["../../../../../src/meta-atlas-sdk/MetaAtlasCore/routing-core/routeLayers.ts"],"sourcesContent":["const lineColorConfigForRouteLines = [\n 'match', ['get', 'isNonHighlightedOverview'],\n '1', '#A7A6BA',\n '0', [\n 'match', ['get', 'zone'],\n 'transit', '#4F7EF8',\n 'public', '#CF9FFF',\n '#CF9FFF',\n ],\n [\n 'match', ['get', 'zone'],\n 'transit', '#4F7EF8',\n 'public', '#CF9FFF',\n '#CF9FFF',\n ],\n];\n\nexport const routeLayers = [\n // Default state\n {\n id: 'route-line-outline-inactive',\n type: 'line',\n filter: ['all',\n ['==', ['geometry-type'], 'LineString'],\n ['==', ['get', 'highlight'], false],\n ],\n // layout: {\n // 'line-cap': 'round',\n // 'line-join': 'round',\n // },\n paint: {\n 'line-color': '#FFFFFF',\n 'line-gap-width': 6,\n },\n layout: {\n 'line-cap': 'round',\n 'line-join': 'round',\n },\n },\n {\n id: 'route-line-inactive',\n type: 'line',\n filter: [\n 'all',\n ['==', ['geometry-type'], 'LineString'],\n ['==', ['get', 'highlight'], false],\n ],\n style: {\n lineCap: 'round',\n lineJoin: 'round',\n lineColor: lineColorConfigForRouteLines,\n lineWidth: 5,\n },\n paint: {\n 'line-color': lineColorConfigForRouteLines,\n 'line-width': 5,\n },\n layout: {\n 'line-cap': 'round',\n 'line-join': 'round',\n },\n belowLayerID: 'route-line-animate', // custom attribute used in the SDK code to make sure these layers are added below the mentioned layer ID\n },\n // {\n // id: 'route-line-endpoint-inactive',\n // type: 'circle',\n // filter: [\n // 'all',\n // ['==', ['geometry-type'], 'Point'],\n // ['==', ['get', 'highlight'], false],\n // ],\n // style: {\n // circleRadius: 2,\n // // circleStrokeWidth: 3,\n // circleStrokeColor: '#475474',\n // circleOpacity: 0,\n // },\n // paint: {\n // 'circle-radius': 1,\n // // 'circle-stroke-width': 3,\n // 'circle-stroke-color': '#475474',\n // 'circle-opacity': 0,\n // },\n // },\n // {\n // id: 'route-line-endpoint-fill',\n // type: 'circle',\n // filter: ['all', ['==', ['geometry-type'], 'Point']],\n // style: {\n // circleRadius: 2,\n // circleColor: '#475474',\n // },\n // paint: {\n // 'circle-color': '#475474',\n // 'circle-radius': 1,\n // },\n // },\n // Highlighted state\n {\n id: 'route-line-active',\n type: 'line',\n filter: [\n 'all',\n ['==', ['geometry-type'], 'LineString'],\n ['==', ['get', 'highlight'], true],\n ],\n style: {\n lineCap: 'round',\n lineJoin: 'round',\n lineColor: lineColorConfigForRouteLines,\n lineWidth: 6,\n },\n paint: {\n 'line-color': lineColorConfigForRouteLines,\n 'line-width': 6,\n },\n layout: {\n 'line-cap': 'round',\n 'line-join': 'round',\n },\n belowLayerID: 'route-line-animate', // custom attribute used in the SDK code to make sure these layers are added below the mentioned layer ID\n },\n {\n id: 'route-line-outline-active',\n type: 'line',\n filter: ['all',\n ['==', ['geometry-type'], 'LineString'],\n ['==', ['get', 'highlight'], true],\n ],\n style: {\n lineCap: 'round',\n lineJoin: 'round',\n lineColor: '#FFFFFF',\n lineGapWidth: 6,\n },\n paint: {\n 'line-color': '#FFFFFF',\n 'line-gap-width': 6,\n },\n layout: {\n 'line-cap': 'round',\n 'line-join': 'round',\n },\n },\n // {\n // id: 'route-line-symbol-active',\n // type: 'symbol',\n // filter: [\n // 'all',\n // ['==', ['geometry-type'], 'LineString'],\n // ['==', ['get', 'highlight'], true],\n // ],\n // minZoom: 17,\n // style: {\n // symbolPlacement: 'line',\n // symbolSpacing: 100,\n // textField: '>>>',\n // textAnchor: 'center',\n // textFont: ['Source Sans Pro Black', 'Arial Unicode MS Regular'],\n // textMaxAngle: 30,\n // textPitchAlignment: 'map',\n // textRotationAlignment: 'map',\n // textSize: 14,\n // textTransform: 'none',\n // textKeepUpright: false,\n\n // textHaloColor: '#4F7EF8',\n // textColor: '#4F7EF8',\n // textHaloWidth: 2,\n // },\n // },\n {\n id: 'route-line-endpoint-active',\n type: 'circle',\n filter: [\n 'all',\n ['==', ['geometry-type'], 'Point'],\n ['==', ['get', 'highlight'], true],\n ['==', ['get', 'isNode'], true],\n ],\n style: {\n circleRadius: 2,\n circleOpacity: 0,\n circleStrokeWidth: 2,\n circleStrokeColor: '#FFFFFF',\n circleStrokeOpacity: 0.7,\n },\n paint: {\n 'circle-radius': 2,\n 'circle-opacity': 0,\n 'circle-stroke-width': 2,\n 'circle-stroke-color': '#FFFFFF',\n 'circle-stroke-opacity': 0.7,\n },\n },\n {\n id: 'route-line-endpoint-fill-active',\n type: 'circle',\n filter: [\n 'all',\n ['==', ['geometry-type'], 'Point'],\n ['==', ['get', 'highlight'], true],\n ['==', ['get', 'isNode'], true],\n ],\n style: {\n circleRadius: 2,\n circleColor: '#FFFFFF',\n circleOpacity: 0.7,\n },\n paint: {\n 'circle-color': '#FFFFFF',\n 'circle-radius': 2,\n 'circle-opacity': 0.7,\n },\n },\n];\n\n// Filter and isAnimationLayer unused currently in react native sdk due to some Maplibre.Animated.LineLayer limitations i.e. not supporting filters\nexport const routeAnimateLayers = [\n {\n id: 'route-line-animate',\n type: 'line',\n filter: [\n 'all',\n ['==', ['geometry-type'], 'LineString'],\n ['==', ['get', 'highlight'], true],\n ],\n style: {\n lineCap: 'round',\n lineJoin: 'round',\n lineColor: '#FFFFFF',\n lineOpacity: 0.7,\n lineWidth: 4,\n },\n paint: {\n 'line-color': '#FFFFFF',\n 'line-width': 4,\n 'line-opacity': 0.7,\n },\n layout: {\n 'line-cap': 'round',\n 'line-join': 'round',\n },\n isAnimationLayer: true,\n },\n];\n"],"mappings":"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","ignoreList":[]}