@deck.gl/carto 8.10.0-alpha.6 → 9.0.0-alpha.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 (365) hide show
  1. package/dist/cartoRasterTile-worker.js +38 -30
  2. package/dist/cartoSpatialTile-worker.js +38 -30
  3. package/dist/cartoVectorTile-worker.js +75 -69
  4. package/dist/dist.dev.js +14001 -14522
  5. package/dist/es5/api/carto-api-error.js.map +1 -1
  6. package/dist/es5/api/common.js +25 -0
  7. package/dist/es5/api/common.js.map +1 -0
  8. package/dist/es5/api/endpoints.js +40 -0
  9. package/dist/es5/api/endpoints.js.map +1 -0
  10. package/dist/es5/api/fetch-map.js +560 -0
  11. package/dist/es5/api/fetch-map.js.map +1 -0
  12. package/dist/es5/api/index.js +5 -49
  13. package/dist/es5/api/index.js.map +1 -1
  14. package/dist/es5/api/layer-map.js +43 -45
  15. package/dist/es5/api/layer-map.js.map +1 -1
  16. package/dist/es5/api/{parseMap.js → parse-map.js} +5 -3
  17. package/dist/es5/api/parse-map.js.map +1 -0
  18. package/dist/es5/api/query.js +78 -0
  19. package/dist/es5/api/query.js.map +1 -0
  20. package/dist/es5/{sources/utils.js → api/request-with-parameters.js} +60 -46
  21. package/dist/es5/api/request-with-parameters.js.map +1 -0
  22. package/dist/es5/api/types.js +19 -0
  23. package/dist/es5/api/types.js.map +1 -1
  24. package/dist/es5/index.js +66 -80
  25. package/dist/es5/index.js.map +1 -1
  26. package/dist/es5/layers/h3-tile-layer.js +3 -5
  27. package/dist/es5/layers/h3-tile-layer.js.map +1 -1
  28. package/dist/es5/layers/point-label-layer.js.map +1 -1
  29. package/dist/es5/layers/quadbin-layer.js.map +1 -1
  30. package/dist/es5/layers/quadbin-tile-layer.js +1 -4
  31. package/dist/es5/layers/quadbin-tile-layer.js.map +1 -1
  32. package/dist/es5/layers/raster-layer.js +2 -0
  33. package/dist/es5/layers/raster-layer.js.map +1 -1
  34. package/dist/es5/layers/raster-tile-layer.js +1 -3
  35. package/dist/es5/layers/raster-tile-layer.js.map +1 -1
  36. package/dist/es5/layers/schema/carto-properties-tile-loader.js +60 -0
  37. package/dist/es5/layers/schema/carto-properties-tile-loader.js.map +1 -0
  38. package/dist/es5/layers/schema/carto-properties-tile.js +38 -0
  39. package/dist/es5/layers/schema/carto-properties-tile.js.map +1 -0
  40. package/dist/es5/layers/schema/carto-raster-tile-loader.js +1 -1
  41. package/dist/es5/layers/schema/carto-raster-tile-loader.js.map +1 -1
  42. package/dist/es5/layers/schema/carto-spatial-tile-loader.js +1 -1
  43. package/dist/es5/layers/schema/carto-spatial-tile-loader.js.map +1 -1
  44. package/dist/es5/layers/schema/carto-vector-tile-loader.js +1 -2
  45. package/dist/es5/layers/schema/carto-vector-tile-loader.js.map +1 -1
  46. package/dist/es5/layers/spatial-index-tile-layer.js +16 -26
  47. package/dist/es5/layers/spatial-index-tile-layer.js.map +1 -1
  48. package/dist/es5/layers/utils.js +102 -0
  49. package/dist/es5/layers/utils.js.map +1 -1
  50. package/dist/es5/layers/vector-tile-layer.js +112 -27
  51. package/dist/es5/layers/vector-tile-layer.js.map +1 -1
  52. package/dist/es5/sources/base-source.js +56 -28
  53. package/dist/es5/sources/base-source.js.map +1 -1
  54. package/dist/es5/sources/boundary-query-source.js +51 -0
  55. package/dist/es5/sources/boundary-query-source.js.map +1 -0
  56. package/dist/es5/sources/boundary-table-source.js +51 -0
  57. package/dist/es5/sources/boundary-table-source.js.map +1 -0
  58. package/dist/es5/sources/boundary-tileset-source.js +43 -0
  59. package/dist/es5/sources/boundary-tileset-source.js.map +1 -0
  60. package/dist/es5/sources/h3-query-source.js +9 -11
  61. package/dist/es5/sources/h3-query-source.js.map +1 -1
  62. package/dist/es5/sources/h3-table-source.js +10 -12
  63. package/dist/es5/sources/h3-table-source.js.map +1 -1
  64. package/dist/es5/sources/h3-tileset-source.js +5 -5
  65. package/dist/es5/sources/h3-tileset-source.js.map +1 -1
  66. package/dist/es5/sources/index.js +46 -22
  67. package/dist/es5/sources/index.js.map +1 -1
  68. package/dist/es5/sources/quadbin-query-source.js +10 -12
  69. package/dist/es5/sources/quadbin-query-source.js.map +1 -1
  70. package/dist/es5/sources/quadbin-table-source.js +10 -12
  71. package/dist/es5/sources/quadbin-table-source.js.map +1 -1
  72. package/dist/es5/sources/quadbin-tileset-source.js +5 -5
  73. package/dist/es5/sources/quadbin-tileset-source.js.map +1 -1
  74. package/dist/es5/sources/raster-source.js +5 -5
  75. package/dist/es5/sources/raster-source.js.map +1 -1
  76. package/dist/es5/sources/types.js +2 -0
  77. package/dist/es5/sources/types.js.map +1 -0
  78. package/dist/es5/sources/vector-query-source.js +11 -12
  79. package/dist/es5/sources/vector-query-source.js.map +1 -1
  80. package/dist/es5/sources/vector-table-source.js +12 -13
  81. package/dist/es5/sources/vector-table-source.js.map +1 -1
  82. package/dist/es5/sources/vector-tileset-source.js +5 -5
  83. package/dist/es5/sources/vector-tileset-source.js.map +1 -1
  84. package/dist/es5/style/color-bins-style.js +4 -2
  85. package/dist/es5/style/color-bins-style.js.map +1 -1
  86. package/dist/es5/style/color-categories-style.js +4 -2
  87. package/dist/es5/style/color-categories-style.js.map +1 -1
  88. package/dist/es5/style/color-continuous-style.js +4 -2
  89. package/dist/es5/style/color-continuous-style.js.map +1 -1
  90. package/dist/es5/style/palette.js +1 -1
  91. package/dist/es5/style/palette.js.map +1 -1
  92. package/dist/es5/style/utils.js +4 -11
  93. package/dist/es5/style/utils.js.map +1 -1
  94. package/dist/es5/utils.js +30 -1
  95. package/dist/es5/utils.js.map +1 -1
  96. package/dist/esm/api/carto-api-error.js.map +1 -1
  97. package/dist/esm/api/common.js +13 -0
  98. package/dist/esm/api/common.js.map +1 -0
  99. package/dist/esm/api/endpoints.js +28 -0
  100. package/dist/esm/api/endpoints.js.map +1 -0
  101. package/dist/esm/api/fetch-map.js +291 -0
  102. package/dist/esm/api/fetch-map.js.map +1 -0
  103. package/dist/esm/api/index.js +2 -3
  104. package/dist/esm/api/index.js.map +1 -1
  105. package/dist/esm/api/layer-map.js +43 -35
  106. package/dist/esm/api/layer-map.js.map +1 -1
  107. package/dist/esm/api/{parseMap.js → parse-map.js} +3 -2
  108. package/dist/esm/api/parse-map.js.map +1 -0
  109. package/dist/esm/api/query.js +38 -0
  110. package/dist/esm/api/query.js.map +1 -0
  111. package/dist/esm/{sources/utils.js → api/request-with-parameters.js} +25 -12
  112. package/dist/esm/api/request-with-parameters.js.map +1 -0
  113. package/dist/esm/api/types.js +13 -1
  114. package/dist/esm/api/types.js.map +1 -1
  115. package/dist/esm/index.js +31 -9
  116. package/dist/esm/index.js.map +1 -1
  117. package/dist/esm/layers/h3-tile-layer.js +2 -6
  118. package/dist/esm/layers/h3-tile-layer.js.map +1 -1
  119. package/dist/esm/layers/point-label-layer.js.map +1 -1
  120. package/dist/esm/layers/quadbin-layer.js.map +1 -1
  121. package/dist/esm/layers/quadbin-tile-layer.js +1 -3
  122. package/dist/esm/layers/quadbin-tile-layer.js.map +1 -1
  123. package/dist/esm/layers/raster-layer.js +1 -0
  124. package/dist/esm/layers/raster-layer.js.map +1 -1
  125. package/dist/esm/layers/raster-tile-layer.js +1 -2
  126. package/dist/esm/layers/raster-tile-layer.js.map +1 -1
  127. package/dist/esm/layers/schema/carto-properties-tile-loader.js +23 -0
  128. package/dist/esm/layers/schema/carto-properties-tile-loader.js.map +1 -0
  129. package/dist/esm/layers/schema/carto-properties-tile.js +18 -0
  130. package/dist/esm/layers/schema/carto-properties-tile.js.map +1 -0
  131. package/dist/esm/layers/schema/carto-raster-tile-loader.js +1 -1
  132. package/dist/esm/layers/schema/carto-raster-tile-loader.js.map +1 -1
  133. package/dist/esm/layers/schema/carto-spatial-tile-loader.js +1 -1
  134. package/dist/esm/layers/schema/carto-spatial-tile-loader.js.map +1 -1
  135. package/dist/esm/layers/schema/carto-vector-tile-loader.js +1 -2
  136. package/dist/esm/layers/schema/carto-vector-tile-loader.js.map +1 -1
  137. package/dist/esm/layers/spatial-index-tile-layer.js +9 -24
  138. package/dist/esm/layers/spatial-index-tile-layer.js.map +1 -1
  139. package/dist/esm/layers/utils.js +70 -0
  140. package/dist/esm/layers/utils.js.map +1 -1
  141. package/dist/esm/layers/vector-tile-layer.js +40 -12
  142. package/dist/esm/layers/vector-tile-layer.js.map +1 -1
  143. package/dist/esm/sources/base-source.js +33 -10
  144. package/dist/esm/sources/base-source.js.map +1 -1
  145. package/dist/esm/sources/boundary-query-source.js +21 -0
  146. package/dist/esm/sources/boundary-query-source.js.map +1 -0
  147. package/dist/esm/sources/boundary-table-source.js +21 -0
  148. package/dist/esm/sources/boundary-table-source.js.map +1 -0
  149. package/dist/esm/sources/boundary-tileset-source.js +11 -0
  150. package/dist/esm/sources/boundary-tileset-source.js.map +1 -0
  151. package/dist/esm/sources/h3-query-source.js +6 -11
  152. package/dist/esm/sources/h3-query-source.js.map +1 -1
  153. package/dist/esm/sources/h3-table-source.js +7 -12
  154. package/dist/esm/sources/h3-table-source.js.map +1 -1
  155. package/dist/esm/sources/h3-tileset-source.js +3 -6
  156. package/dist/esm/sources/h3-tileset-source.js.map +1 -1
  157. package/dist/esm/sources/index.js +14 -11
  158. package/dist/esm/sources/index.js.map +1 -1
  159. package/dist/esm/sources/quadbin-query-source.js +7 -12
  160. package/dist/esm/sources/quadbin-query-source.js.map +1 -1
  161. package/dist/esm/sources/quadbin-table-source.js +7 -12
  162. package/dist/esm/sources/quadbin-table-source.js.map +1 -1
  163. package/dist/esm/sources/quadbin-tileset-source.js +3 -6
  164. package/dist/esm/sources/quadbin-tileset-source.js.map +1 -1
  165. package/dist/esm/sources/raster-source.js +3 -6
  166. package/dist/esm/sources/raster-source.js.map +1 -1
  167. package/dist/esm/sources/types.js +2 -0
  168. package/dist/esm/sources/types.js.map +1 -0
  169. package/dist/esm/sources/vector-query-source.js +6 -11
  170. package/dist/esm/sources/vector-query-source.js.map +1 -1
  171. package/dist/esm/sources/vector-table-source.js +7 -12
  172. package/dist/esm/sources/vector-table-source.js.map +1 -1
  173. package/dist/esm/sources/vector-tileset-source.js +3 -6
  174. package/dist/esm/sources/vector-tileset-source.js.map +1 -1
  175. package/dist/esm/style/color-bins-style.js +2 -1
  176. package/dist/esm/style/color-bins-style.js.map +1 -1
  177. package/dist/esm/style/color-categories-style.js +2 -1
  178. package/dist/esm/style/color-categories-style.js.map +1 -1
  179. package/dist/esm/style/color-continuous-style.js +2 -1
  180. package/dist/esm/style/color-continuous-style.js.map +1 -1
  181. package/dist/esm/style/palette.js +1 -1
  182. package/dist/esm/style/palette.js.map +1 -1
  183. package/dist/esm/style/utils.js +1 -5
  184. package/dist/esm/style/utils.js.map +1 -1
  185. package/dist/esm/utils.js +24 -1
  186. package/dist/esm/utils.js.map +1 -1
  187. package/dist.min.js +42 -46
  188. package/package.json +11 -10
  189. package/src/.DS_Store +0 -0
  190. package/src/api/carto-api-error.ts +1 -9
  191. package/src/api/common.ts +14 -0
  192. package/src/api/endpoints.ts +38 -0
  193. package/src/api/fetch-map.ts +287 -0
  194. package/src/api/index.ts +5 -5
  195. package/src/api/layer-map.ts +40 -36
  196. package/src/api/{parseMap.ts → parse-map.ts} +2 -2
  197. package/src/api/query.ts +34 -0
  198. package/src/{sources/utils.ts → api/request-with-parameters.ts} +22 -17
  199. package/src/api/types.ts +49 -0
  200. package/src/index.ts +93 -41
  201. package/src/layers/h3-tile-layer.ts +13 -18
  202. package/src/layers/point-label-layer.ts +1 -1
  203. package/src/layers/quadbin-layer.ts +3 -2
  204. package/src/layers/quadbin-tile-layer.ts +10 -11
  205. package/src/layers/raster-layer.ts +2 -2
  206. package/src/layers/raster-tile-layer.ts +11 -9
  207. package/src/layers/schema/carto-properties-tile-loader.ts +25 -0
  208. package/src/layers/schema/carto-properties-tile.ts +21 -0
  209. package/src/layers/schema/carto-vector-tile-loader.ts +5 -5
  210. package/src/layers/spatial-index-tile-layer.ts +18 -26
  211. package/src/layers/utils.ts +71 -0
  212. package/src/layers/vector-tile-layer.ts +42 -23
  213. package/src/sources/base-source.ts +35 -18
  214. package/src/sources/boundary-query-source.ts +31 -0
  215. package/src/sources/boundary-table-source.ts +31 -0
  216. package/src/sources/boundary-tileset-source.ts +14 -0
  217. package/src/sources/h3-query-source.ts +22 -22
  218. package/src/sources/h3-table-source.ts +22 -22
  219. package/src/sources/h3-tileset-source.ts +7 -9
  220. package/src/sources/index.ts +31 -22
  221. package/src/sources/quadbin-query-source.ts +22 -22
  222. package/src/sources/quadbin-table-source.ts +23 -22
  223. package/src/sources/quadbin-tileset-source.ts +7 -9
  224. package/src/sources/raster-source.ts +5 -9
  225. package/src/sources/types.ts +98 -0
  226. package/src/sources/vector-query-source.ts +15 -15
  227. package/src/sources/vector-table-source.ts +15 -15
  228. package/src/sources/vector-tileset-source.ts +7 -9
  229. package/src/style/color-bins-style.ts +2 -1
  230. package/src/style/color-categories-style.ts +2 -1
  231. package/src/style/color-continuous-style.ts +2 -1
  232. package/src/style/palette.ts +1 -1
  233. package/src/style/utils.ts +1 -6
  234. package/src/utils.ts +25 -1
  235. package/typed/api/carto-api-error.d.ts +1 -8
  236. package/typed/api/carto-api-error.d.ts.map +1 -1
  237. package/typed/api/common.d.ts +13 -0
  238. package/typed/api/common.d.ts.map +1 -0
  239. package/typed/api/endpoints.d.ts +12 -0
  240. package/typed/api/endpoints.d.ts.map +1 -0
  241. package/typed/api/fetch-map.d.ts +22 -0
  242. package/typed/api/fetch-map.d.ts.map +1 -0
  243. package/typed/api/index.d.ts +5 -5
  244. package/typed/api/index.d.ts.map +1 -1
  245. package/typed/api/layer-map.d.ts +6 -9
  246. package/typed/api/layer-map.d.ts.map +1 -1
  247. package/typed/api/{parseMap.d.ts → parse-map.d.ts} +1 -1
  248. package/typed/api/parse-map.d.ts.map +1 -0
  249. package/typed/api/query.d.ts +4 -0
  250. package/typed/api/query.d.ts.map +1 -0
  251. package/typed/api/request-with-parameters.d.ts +9 -0
  252. package/typed/api/request-with-parameters.d.ts.map +1 -0
  253. package/typed/api/types.d.ts +40 -0
  254. package/typed/api/types.d.ts.map +1 -1
  255. package/typed/index.d.ts +33 -12
  256. package/typed/index.d.ts.map +1 -1
  257. package/typed/layers/h3-tile-layer.d.ts +12 -7
  258. package/typed/layers/h3-tile-layer.d.ts.map +1 -1
  259. package/typed/layers/point-label-layer.d.ts +2 -2
  260. package/typed/layers/point-label-layer.d.ts.map +1 -1
  261. package/typed/layers/quadbin-layer.d.ts +2 -2
  262. package/typed/layers/quadbin-layer.d.ts.map +1 -1
  263. package/typed/layers/quadbin-tile-layer.d.ts +6 -6
  264. package/typed/layers/quadbin-tile-layer.d.ts.map +1 -1
  265. package/typed/layers/raster-layer.d.ts +2 -2
  266. package/typed/layers/raster-layer.d.ts.map +1 -1
  267. package/typed/layers/raster-tile-layer.d.ts +6 -5
  268. package/typed/layers/raster-tile-layer.d.ts.map +1 -1
  269. package/typed/layers/schema/carto-properties-tile-loader.d.ts +4 -0
  270. package/typed/layers/schema/carto-properties-tile-loader.d.ts.map +1 -0
  271. package/typed/layers/schema/carto-properties-tile.d.ts +10 -0
  272. package/typed/layers/schema/carto-properties-tile.d.ts.map +1 -0
  273. package/typed/layers/spatial-index-tile-layer.d.ts +10 -9
  274. package/typed/layers/spatial-index-tile-layer.d.ts.map +1 -1
  275. package/typed/layers/utils.d.ts +11 -0
  276. package/typed/layers/utils.d.ts.map +1 -1
  277. package/typed/layers/vector-tile-layer.d.ts +6 -11
  278. package/typed/layers/vector-tile-layer.d.ts.map +1 -1
  279. package/typed/sources/base-source.d.ts +4 -3
  280. package/typed/sources/base-source.d.ts.map +1 -1
  281. package/typed/sources/boundary-query-source.d.ts +10 -0
  282. package/typed/sources/boundary-query-source.d.ts.map +1 -0
  283. package/typed/sources/boundary-table-source.d.ts +9 -0
  284. package/typed/sources/boundary-table-source.d.ts.map +1 -0
  285. package/typed/sources/boundary-tileset-source.d.ts +6 -0
  286. package/typed/sources/boundary-tileset-source.d.ts.map +1 -0
  287. package/typed/sources/h3-query-source.d.ts +3 -4
  288. package/typed/sources/h3-query-source.d.ts.map +1 -1
  289. package/typed/sources/h3-table-source.d.ts +3 -4
  290. package/typed/sources/h3-table-source.d.ts.map +1 -1
  291. package/typed/sources/h3-tileset-source.d.ts +3 -4
  292. package/typed/sources/h3-tileset-source.d.ts.map +1 -1
  293. package/typed/sources/index.d.ts +28 -22
  294. package/typed/sources/index.d.ts.map +1 -1
  295. package/typed/sources/quadbin-query-source.d.ts +3 -4
  296. package/typed/sources/quadbin-query-source.d.ts.map +1 -1
  297. package/typed/sources/quadbin-table-source.d.ts +3 -4
  298. package/typed/sources/quadbin-table-source.d.ts.map +1 -1
  299. package/typed/sources/quadbin-tileset-source.d.ts +3 -4
  300. package/typed/sources/quadbin-tileset-source.d.ts.map +1 -1
  301. package/typed/sources/raster-source.d.ts +3 -4
  302. package/typed/sources/raster-source.d.ts.map +1 -1
  303. package/typed/sources/{common.d.ts → types.d.ts} +26 -42
  304. package/typed/sources/types.d.ts.map +1 -0
  305. package/typed/sources/vector-query-source.d.ts +3 -4
  306. package/typed/sources/vector-query-source.d.ts.map +1 -1
  307. package/typed/sources/vector-table-source.d.ts +3 -4
  308. package/typed/sources/vector-table-source.d.ts.map +1 -1
  309. package/typed/sources/vector-tileset-source.d.ts +3 -4
  310. package/typed/sources/vector-tileset-source.d.ts.map +1 -1
  311. package/typed/style/color-bins-style.d.ts.map +1 -1
  312. package/typed/style/color-categories-style.d.ts.map +1 -1
  313. package/typed/style/color-continuous-style.d.ts.map +1 -1
  314. package/typed/style/utils.d.ts +0 -1
  315. package/typed/style/utils.d.ts.map +1 -1
  316. package/typed/utils.d.ts +8 -0
  317. package/typed/utils.d.ts.map +1 -1
  318. package/dist/es5/api/maps-api-common.js +0 -77
  319. package/dist/es5/api/maps-api-common.js.map +0 -1
  320. package/dist/es5/api/maps-client.js +0 -220
  321. package/dist/es5/api/maps-client.js.map +0 -1
  322. package/dist/es5/api/maps-v3-client.js +0 -959
  323. package/dist/es5/api/maps-v3-client.js.map +0 -1
  324. package/dist/es5/api/parseMap.js.map +0 -1
  325. package/dist/es5/config.js +0 -84
  326. package/dist/es5/config.js.map +0 -1
  327. package/dist/es5/layers/carto-layer.js +0 -329
  328. package/dist/es5/layers/carto-layer.js.map +0 -1
  329. package/dist/es5/sources/common.js +0 -48
  330. package/dist/es5/sources/common.js.map +0 -1
  331. package/dist/es5/sources/utils.js.map +0 -1
  332. package/dist/esm/api/maps-api-common.js +0 -54
  333. package/dist/esm/api/maps-api-common.js.map +0 -1
  334. package/dist/esm/api/maps-client.js +0 -148
  335. package/dist/esm/api/maps-client.js.map +0 -1
  336. package/dist/esm/api/maps-v3-client.js +0 -638
  337. package/dist/esm/api/maps-v3-client.js.map +0 -1
  338. package/dist/esm/api/parseMap.js.map +0 -1
  339. package/dist/esm/config.js +0 -60
  340. package/dist/esm/config.js.map +0 -1
  341. package/dist/esm/layers/carto-layer.js +0 -233
  342. package/dist/esm/layers/carto-layer.js.map +0 -1
  343. package/dist/esm/sources/common.js +0 -26
  344. package/dist/esm/sources/common.js.map +0 -1
  345. package/dist/esm/sources/utils.js.map +0 -1
  346. package/src/api/maps-api-common.ts +0 -95
  347. package/src/api/maps-client.ts +0 -196
  348. package/src/api/maps-v3-client.ts +0 -659
  349. package/src/config.ts +0 -70
  350. package/src/layers/carto-layer.ts +0 -340
  351. package/src/sources/common.ts +0 -132
  352. package/typed/api/maps-api-common.d.ts +0 -76
  353. package/typed/api/maps-api-common.d.ts.map +0 -1
  354. package/typed/api/maps-client.d.ts +0 -18
  355. package/typed/api/maps-client.d.ts.map +0 -1
  356. package/typed/api/maps-v3-client.d.ts +0 -49
  357. package/typed/api/maps-v3-client.d.ts.map +0 -1
  358. package/typed/api/parseMap.d.ts.map +0 -1
  359. package/typed/config.d.ts +0 -28
  360. package/typed/config.d.ts.map +0 -1
  361. package/typed/layers/carto-layer.d.ts +0 -126
  362. package/typed/layers/carto-layer.d.ts.map +0 -1
  363. package/typed/sources/common.d.ts.map +0 -1
  364. package/typed/sources/utils.d.ts +0 -15
  365. package/typed/sources/utils.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/layers/point-label-layer.ts"],"names":["CompositeLayer","TextLayer","_TextBackgroundLayer","TextBackgroundLayer","LEFT","TOP","RIGHT","BOTTOM","EnhancedTextBackgroundLayer","getShaders","shaders","vs","replaceAll","replace","layerName","EnhancedTextLayer","filterSubLayer","layer","renderPass","background","id","includes","defaultProps","getRadius","type","value","radiusScale","min","PointLabelLayer","calculatePixelOffset","secondary","getTextAnchor","anchor","getAlignmentBaseline","alignment","getSecondaryText","secondarySizeScale","sizeScale","props","xMult","yMult","xPadding","yPadding","secondaryOffset","yOffset","radiusPadding","d","info","r","calculateBackgroundPadding","paddingX","paddingY","backgroundPadding","renderTextLayer","updateTriggers","updateTriggersOverride","data","characterSet","fontFamily","fontSettings","fontWeight","outlineColor","outlineWidth","getColor","getPosition","getSubLayerProps","getPixelOffset","getSize","_subLayerProps","renderLayers","getText","getSecondaryColor","secondaryOutlineColor","out","Boolean"],"mappings":"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","sourcesContent":["import {\n Accessor,\n Color,\n CompositeLayer,\n CompositeLayerProps,\n DefaultProps,\n Layer,\n LayersList\n} from '@deck.gl/core';\nimport {\n TextLayer,\n TextLayerProps,\n _TextBackgroundLayer as TextBackgroundLayer\n} from '@deck.gl/layers';\n\nconst [LEFT, TOP, RIGHT, BOTTOM] = [0, 1, 2, 3];\n\nclass EnhancedTextBackgroundLayer extends TextBackgroundLayer {\n static layerName = 'EnhancedTextBackgroundLayer';\n\n getShaders() {\n const shaders = super.getShaders();\n let vs = shaders.vs;\n\n // Modify shader so that the padding is offset by the pixel offset to ensure the padding\n // always captures the anchor point. As padding is uniform we cannot pass it a per-label value\n vs = vs.replaceAll('padding.', '_padding.');\n vs = vs.replace(\n 'void main(void) {',\n 'void main(void) {\\n vec4 _padding = padding + instancePixelOffsets.xyxy * vec4(1.0, 1.0, -1.0, -1.0);'\n );\n\n return {...shaders, vs};\n }\n}\n\n// TextLayer which includes modified text-background-layer-vertex shader and only renders the\n// primary background layer in the collision pass\nclass EnhancedTextLayer extends TextLayer {\n static layerName = 'EnhancedTextLayer';\n\n filterSubLayer({layer, renderPass}) {\n const background = layer.id.includes('primary-background');\n if (renderPass === 'collision') {\n return background; // Only draw primary background layer in collision pass\n }\n\n return !background; // Do not draw background layer in other passes\n }\n}\n\nconst defaultProps: DefaultProps<PointLabelLayerProps> = {\n ...TextLayer.defaultProps,\n getRadius: {type: 'accessor', value: 1},\n radiusScale: {type: 'number', min: 0, value: 1}\n};\n\n/** All properties supported by PointLabelLayer. */\nexport type PointLabelLayerProps<DataT = any> = _PointLabelLayerProps<DataT> &\n TextLayerProps &\n CompositeLayerProps;\n\n/** Properties added by PointLabelLayer. */\ntype _PointLabelLayerProps<DataT> = TextLayerProps<DataT> & {\n /**\n * Radius multiplier.\n * @default 1\n */\n radiusScale?: number;\n /**\n * Radius accessor.\n * @default 1\n */\n getRadius?: Accessor<DataT, number>;\n /**\n * Secondary label text accessor\n */\n getSecondaryText?: Accessor<DataT, string>;\n /**\n * Secondary label color accessor\n * @default [0, 0, 0, 255]\n */\n getSecondaryColor?: Accessor<DataT, Color>;\n /**\n * Secondary label color of outline around the text, in `[r, g, b, [a]]`. Each channel is a number between 0-255 and `a` is 255 if not supplied.\n * @default [0, 0, 0, 255]\n */\n secondaryOutlineColor?: Color;\n /**\n * Secondary label text size multiplier.\n * @default 1\n */\n secondarySizeScale?: number;\n};\n\nexport default class PointLabelLayer<\n DataT = any,\n ExtraProps extends {} = {}\n> extends CompositeLayer<ExtraProps & Required<_PointLabelLayerProps<DataT>>> {\n static layerName = 'PointLabelLayer';\n static defaultProps = defaultProps;\n\n calculatePixelOffset(secondary) {\n const {\n getTextAnchor: anchor,\n getAlignmentBaseline: alignment,\n getRadius,\n getSecondaryText,\n radiusScale,\n secondarySizeScale,\n sizeScale\n } = this.props;\n const xMult = anchor === 'middle' ? 0 : anchor === 'start' ? 1 : -1;\n const yMult = alignment === 'center' ? 0 : alignment === 'bottom' ? 1 : -1;\n\n // Padding based on font size (font size / 4)\n const xPadding = sizeScale / 4;\n const yPadding = sizeScale * (1 + 1 / 4);\n\n // Place secondary label under main label (secondary label always 'top' baseline aligned)\n const secondaryOffset = 0.6 * (1 - yMult) * sizeScale;\n let yOffset = secondary ? secondaryOffset : 0;\n\n // Special case, position relative to secondary label\n if (anchor === 'middle' && alignment === 'top' && getSecondaryText) {\n yOffset -= secondaryOffset;\n yOffset -= secondarySizeScale;\n yOffset += sizeScale;\n }\n\n // Padding based on point radius (radius/ 4)\n const radiusPadding = 1 + 1 / 4;\n\n return typeof getRadius === 'function'\n ? (d, info) => {\n const r = (info ? getRadius(d, info) : 1) * radiusScale * radiusPadding;\n return [xMult * (r + xPadding), yMult * (r + yPadding) + yOffset];\n }\n : [\n xMult * (getRadius * radiusScale * radiusPadding + xPadding),\n yMult * (getRadius * radiusScale * radiusPadding + yPadding) + yOffset\n ];\n }\n\n calculateBackgroundPadding() {\n const {getTextAnchor: anchor, getAlignmentBaseline: alignment, sizeScale} = this.props;\n\n // Heuristics to avoid label overlap\n const paddingX = 12 * sizeScale;\n const paddingY = 3 * sizeScale;\n const backgroundPadding = [0, 0, 0, 0];\n if (alignment === 'top') {\n backgroundPadding[TOP] = paddingY;\n } else if (alignment === 'bottom') {\n backgroundPadding[BOTTOM] = paddingY;\n } else {\n backgroundPadding[TOP] = 0.5 * paddingY;\n backgroundPadding[BOTTOM] = 0.5 * paddingY;\n }\n if (anchor === 'start') {\n backgroundPadding[LEFT] = paddingX;\n } else if (anchor === 'end') {\n backgroundPadding[RIGHT] = paddingX;\n } else {\n backgroundPadding[LEFT] = 0.5 * paddingX;\n backgroundPadding[RIGHT] = 0.5 * paddingX;\n }\n\n return backgroundPadding;\n }\n\n renderTextLayer(id, {updateTriggers: updateTriggersOverride = {}, ...props}): EnhancedTextLayer {\n const {\n data,\n\n characterSet,\n fontFamily,\n fontSettings,\n fontWeight,\n outlineColor,\n outlineWidth,\n sizeScale,\n radiusScale,\n\n getAlignmentBaseline,\n getColor,\n getPosition,\n getTextAnchor,\n\n updateTriggers\n } = this.props;\n\n return new EnhancedTextLayer(\n this.getSubLayerProps({\n id,\n data,\n\n characterSet,\n fontFamily,\n fontSettings,\n fontWeight,\n outlineColor,\n outlineWidth,\n sizeScale,\n\n getAlignmentBaseline,\n getColor,\n getPosition,\n getTextAnchor,\n\n updateTriggers: {\n ...updateTriggers,\n ...updateTriggersOverride,\n getPixelOffset: [\n updateTriggers.getRadius,\n updateTriggers.getTextAnchor,\n updateTriggers.getAlignmentBaseline,\n radiusScale,\n sizeScale\n ]\n }\n }),\n {\n getSize: 1,\n _subLayerProps: {background: {type: EnhancedTextBackgroundLayer}}\n },\n props\n );\n }\n\n renderLayers(): Layer | null | LayersList {\n const {\n getText,\n getSecondaryColor,\n getSecondaryText,\n secondaryOutlineColor,\n secondarySizeScale,\n updateTriggers\n } = this.props;\n const getPixelOffset = this.calculatePixelOffset(false);\n const backgroundPadding = this.calculateBackgroundPadding();\n const out = [\n // Text doesn't update via updateTrigger for some reason\n this.renderTextLayer(`${updateTriggers.getText}-primary`, {\n backgroundPadding,\n getText,\n getPixelOffset,\n background: true // Only use background for primary label for faster collisions\n }),\n Boolean(getSecondaryText) &&\n this.renderTextLayer(`${updateTriggers.getSecondaryText}-secondary`, {\n getText: getSecondaryText,\n getPixelOffset: this.calculatePixelOffset(true),\n getAlignmentBaseline: 'top',\n // updateTriggers: {getText: updateTriggers.getSecondaryText},\n\n // Optional overrides\n ...(getSecondaryColor && {getColor: getSecondaryColor}),\n ...(secondarySizeScale && {sizeScale: secondarySizeScale}),\n ...(secondaryOutlineColor && {outlineColor: secondaryOutlineColor})\n })\n ];\n\n return out;\n }\n}\n"],"file":"point-label-layer.js"}
1
+ {"version":3,"sources":["../../../src/layers/point-label-layer.ts"],"names":["CompositeLayer","TextLayer","_TextBackgroundLayer","TextBackgroundLayer","LEFT","TOP","RIGHT","BOTTOM","EnhancedTextBackgroundLayer","getShaders","shaders","vs","replaceAll","replace","layerName","EnhancedTextLayer","filterSubLayer","layer","renderPass","background","id","includes","defaultProps","getRadius","type","value","radiusScale","min","PointLabelLayer","calculatePixelOffset","secondary","getTextAnchor","anchor","getAlignmentBaseline","alignment","getSecondaryText","secondarySizeScale","sizeScale","props","xMult","yMult","xPadding","yPadding","secondaryOffset","yOffset","radiusPadding","d","info","r","calculateBackgroundPadding","paddingX","paddingY","backgroundPadding","renderTextLayer","updateTriggers","updateTriggersOverride","data","characterSet","fontFamily","fontSettings","fontWeight","outlineColor","outlineWidth","getColor","getPosition","getSubLayerProps","getPixelOffset","getSize","_subLayerProps","renderLayers","getText","getSecondaryColor","secondaryOutlineColor","out","Boolean"],"mappings":"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","sourcesContent":["import {\n Accessor,\n Color,\n CompositeLayer,\n CompositeLayerProps,\n DefaultProps,\n Layer,\n LayersList\n} from '@deck.gl/core';\nimport {\n TextLayer,\n TextLayerProps,\n _TextBackgroundLayer as TextBackgroundLayer\n} from '@deck.gl/layers';\n\nconst [LEFT, TOP, RIGHT, BOTTOM] = [0, 1, 2, 3];\n\nclass EnhancedTextBackgroundLayer extends TextBackgroundLayer {\n static layerName = 'EnhancedTextBackgroundLayer';\n\n getShaders() {\n const shaders = super.getShaders();\n let vs = shaders.vs;\n\n // Modify shader so that the padding is offset by the pixel offset to ensure the padding\n // always captures the anchor point. As padding is uniform we cannot pass it a per-label value\n vs = vs.replaceAll('padding.', '_padding.');\n vs = vs.replace(\n 'void main(void) {',\n 'void main(void) {\\n vec4 _padding = padding + instancePixelOffsets.xyxy * vec4(1.0, 1.0, -1.0, -1.0);'\n );\n\n return {...shaders, vs};\n }\n}\n\n// TextLayer which includes modified text-background-layer-vertex shader and only renders the\n// primary background layer in the collision pass\nclass EnhancedTextLayer extends TextLayer {\n static layerName = 'EnhancedTextLayer';\n\n filterSubLayer({layer, renderPass}) {\n const background = layer.id.includes('primary-background');\n if (renderPass === 'collision') {\n return background; // Only draw primary background layer in collision pass\n }\n\n return !background; // Do not draw background layer in other passes\n }\n}\n\nconst defaultProps: DefaultProps<PointLabelLayerProps> = {\n ...TextLayer.defaultProps,\n getRadius: {type: 'accessor', value: 1},\n radiusScale: {type: 'number', min: 0, value: 1}\n};\n\n/** All properties supported by PointLabelLayer. */\nexport type PointLabelLayerProps<DataT = unknown> = _PointLabelLayerProps<DataT> &\n TextLayerProps &\n CompositeLayerProps;\n\n/** Properties added by PointLabelLayer. */\ntype _PointLabelLayerProps<DataT> = TextLayerProps<DataT> & {\n /**\n * Radius multiplier.\n * @default 1\n */\n radiusScale?: number;\n /**\n * Radius accessor.\n * @default 1\n */\n getRadius?: Accessor<DataT, number>;\n /**\n * Secondary label text accessor\n */\n getSecondaryText?: Accessor<DataT, string>;\n /**\n * Secondary label color accessor\n * @default [0, 0, 0, 255]\n */\n getSecondaryColor?: Accessor<DataT, Color>;\n /**\n * Secondary label color of outline around the text, in `[r, g, b, [a]]`. Each channel is a number between 0-255 and `a` is 255 if not supplied.\n * @default [0, 0, 0, 255]\n */\n secondaryOutlineColor?: Color;\n /**\n * Secondary label text size multiplier.\n * @default 1\n */\n secondarySizeScale?: number;\n};\n\nexport default class PointLabelLayer<\n DataT = any,\n ExtraProps extends {} = {}\n> extends CompositeLayer<ExtraProps & Required<_PointLabelLayerProps<DataT>>> {\n static layerName = 'PointLabelLayer';\n static defaultProps = defaultProps;\n\n calculatePixelOffset(secondary) {\n const {\n getTextAnchor: anchor,\n getAlignmentBaseline: alignment,\n getRadius,\n getSecondaryText,\n radiusScale,\n secondarySizeScale,\n sizeScale\n } = this.props;\n const xMult = anchor === 'middle' ? 0 : anchor === 'start' ? 1 : -1;\n const yMult = alignment === 'center' ? 0 : alignment === 'bottom' ? 1 : -1;\n\n // Padding based on font size (font size / 4)\n const xPadding = sizeScale / 4;\n const yPadding = sizeScale * (1 + 1 / 4);\n\n // Place secondary label under main label (secondary label always 'top' baseline aligned)\n const secondaryOffset = 0.6 * (1 - yMult) * sizeScale;\n let yOffset = secondary ? secondaryOffset : 0;\n\n // Special case, position relative to secondary label\n if (anchor === 'middle' && alignment === 'top' && getSecondaryText) {\n yOffset -= secondaryOffset;\n yOffset -= secondarySizeScale;\n yOffset += sizeScale;\n }\n\n // Padding based on point radius (radius/ 4)\n const radiusPadding = 1 + 1 / 4;\n\n return typeof getRadius === 'function'\n ? (d, info) => {\n const r = (info ? getRadius(d, info) : 1) * radiusScale * radiusPadding;\n return [xMult * (r + xPadding), yMult * (r + yPadding) + yOffset];\n }\n : [\n xMult * (getRadius * radiusScale * radiusPadding + xPadding),\n yMult * (getRadius * radiusScale * radiusPadding + yPadding) + yOffset\n ];\n }\n\n calculateBackgroundPadding() {\n const {getTextAnchor: anchor, getAlignmentBaseline: alignment, sizeScale} = this.props;\n\n // Heuristics to avoid label overlap\n const paddingX = 12 * sizeScale;\n const paddingY = 3 * sizeScale;\n const backgroundPadding = [0, 0, 0, 0];\n if (alignment === 'top') {\n backgroundPadding[TOP] = paddingY;\n } else if (alignment === 'bottom') {\n backgroundPadding[BOTTOM] = paddingY;\n } else {\n backgroundPadding[TOP] = 0.5 * paddingY;\n backgroundPadding[BOTTOM] = 0.5 * paddingY;\n }\n if (anchor === 'start') {\n backgroundPadding[LEFT] = paddingX;\n } else if (anchor === 'end') {\n backgroundPadding[RIGHT] = paddingX;\n } else {\n backgroundPadding[LEFT] = 0.5 * paddingX;\n backgroundPadding[RIGHT] = 0.5 * paddingX;\n }\n\n return backgroundPadding;\n }\n\n renderTextLayer(id, {updateTriggers: updateTriggersOverride = {}, ...props}): EnhancedTextLayer {\n const {\n data,\n\n characterSet,\n fontFamily,\n fontSettings,\n fontWeight,\n outlineColor,\n outlineWidth,\n sizeScale,\n radiusScale,\n\n getAlignmentBaseline,\n getColor,\n getPosition,\n getTextAnchor,\n\n updateTriggers\n } = this.props;\n\n return new EnhancedTextLayer(\n this.getSubLayerProps({\n id,\n data,\n\n characterSet,\n fontFamily,\n fontSettings,\n fontWeight,\n outlineColor,\n outlineWidth,\n sizeScale,\n\n getAlignmentBaseline,\n getColor,\n getPosition,\n getTextAnchor,\n\n updateTriggers: {\n ...updateTriggers,\n ...updateTriggersOverride,\n getPixelOffset: [\n updateTriggers.getRadius,\n updateTriggers.getTextAnchor,\n updateTriggers.getAlignmentBaseline,\n radiusScale,\n sizeScale\n ]\n }\n }),\n {\n getSize: 1,\n _subLayerProps: {background: {type: EnhancedTextBackgroundLayer}}\n },\n props\n );\n }\n\n renderLayers(): Layer | null | LayersList {\n const {\n getText,\n getSecondaryColor,\n getSecondaryText,\n secondaryOutlineColor,\n secondarySizeScale,\n updateTriggers\n } = this.props;\n const getPixelOffset = this.calculatePixelOffset(false);\n const backgroundPadding = this.calculateBackgroundPadding();\n const out = [\n // Text doesn't update via updateTrigger for some reason\n this.renderTextLayer(`${updateTriggers.getText}-primary`, {\n backgroundPadding,\n getText,\n getPixelOffset,\n background: true // Only use background for primary label for faster collisions\n }),\n Boolean(getSecondaryText) &&\n this.renderTextLayer(`${updateTriggers.getSecondaryText}-secondary`, {\n getText: getSecondaryText,\n getPixelOffset: this.calculatePixelOffset(true),\n getAlignmentBaseline: 'top',\n // updateTriggers: {getText: updateTriggers.getSecondaryText},\n\n // Optional overrides\n ...(getSecondaryColor && {getColor: getSecondaryColor}),\n ...(secondarySizeScale && {sizeScale: secondarySizeScale}),\n ...(secondaryOutlineColor && {outlineColor: secondaryOutlineColor})\n })\n ];\n\n return out;\n }\n}\n"],"file":"point-label-layer.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/layers/quadbin-layer.ts"],"names":["_GeoCellLayer","GeoCellLayer","getQuadbinPolygon","defaultProps","getQuadbin","type","value","d","quadbin","QuadbinLayer","indexToBounds","data","extruded","props","coverage","_normalize","positionFormat","getPolygon","x","objectInfo","updateTriggers","layerName"],"mappings":"AACA,SACEA,aAAa,IAAIC,YADnB,QAGO,qBAHP;AAIA,SAAQC,iBAAR,QAAgC,iBAAhC;AAEA,MAAMC,YAA6C,GAAG;AACpDC,EAAAA,UAAU,EAAE;AAACC,IAAAA,IAAI,EAAE,UAAP;AAAmBC,IAAAA,KAAK,EAAEC,CAAC,IAAIA,CAAC,CAACC;AAAjC;AADwC,CAAtD;AAiBA,eAAe,MAAMC,YAAN,SAAoER,YAApE,CAGb;AAIAS,EAAAA,aAAa,GAA0C;AACrD,UAAM;AAACC,MAAAA,IAAD;AAAOC,MAAAA,QAAP;AAAiBR,MAAAA;AAAjB,QAA+B,KAAKS,KAA1C;AAEA,UAAMC,QAAQ,GAAGF,QAAQ,GAAG,IAAH,GAAU,CAAnC;AAEA,WAAO;AACLD,MAAAA,IADK;AAELI,MAAAA,UAAU,EAAE,KAFP;AAGLC,MAAAA,cAAc,EAAE,IAHX;AAKLC,MAAAA,UAAU,EAAE,CAACC,CAAD,EAAWC,UAAX,KAA0BjB,iBAAiB,CAACE,UAAU,CAACc,CAAD,EAAIC,UAAJ,CAAX,EAA4BL,QAA5B,CALlD;AAMLM,MAAAA,cAAc,EAAE;AAACH,QAAAA,UAAU,EAAEH;AAAb;AANX,KAAP;AAQD;;AAjBD;AAHmBL,Y,CAIZY,S,GAAY,c;AAJAZ,Y,CAKZN,Y,GAAeA,Y","sourcesContent":["import {AccessorFunction, DefaultProps} from '@deck.gl/core';\nimport {\n _GeoCellLayer as GeoCellLayer,\n _GeoCellLayerProps as GeoCellLayerProps\n} from '@deck.gl/geo-layers';\nimport {getQuadbinPolygon} from './quadbin-utils';\n\nconst defaultProps: DefaultProps<QuadbinLayerProps> = {\n getQuadbin: {type: 'accessor', value: d => d.quadbin}\n};\n\n/** All properties supported by QuadbinLayer. */\nexport type QuadbinLayerProps<DataT = any> = _QuadbinLayerProps<DataT> & GeoCellLayerProps<DataT>;\n\n/** Properties added by QuadbinLayer. */\ntype _QuadbinLayerProps<DataT> = {\n /**\n * Called for each data object to retrieve the quadbin string identifier.\n *\n * By default, it reads `quadbin` property of data object.\n */\n getQuadbin?: AccessorFunction<DataT, bigint>;\n};\n\nexport default class QuadbinLayer<DataT = any, ExtraProps extends {} = {}> extends GeoCellLayer<\n DataT,\n Required<_QuadbinLayerProps<DataT>> & ExtraProps\n> {\n static layerName = 'QuadbinLayer';\n static defaultProps = defaultProps;\n\n indexToBounds(): Partial<GeoCellLayer['props']> | null {\n const {data, extruded, getQuadbin} = this.props;\n // To avoid z-fighting reduce polygon footprint when extruding\n const coverage = extruded ? 0.99 : 1;\n\n return {\n data,\n _normalize: false,\n positionFormat: 'XY',\n\n getPolygon: (x: DataT, objectInfo) => getQuadbinPolygon(getQuadbin(x, objectInfo), coverage),\n updateTriggers: {getPolygon: coverage}\n };\n }\n}\n"],"file":"quadbin-layer.js"}
1
+ {"version":3,"sources":["../../../src/layers/quadbin-layer.ts"],"names":["_GeoCellLayer","GeoCellLayer","getQuadbinPolygon","defaultProps","getQuadbin","type","value","d","quadbin","QuadbinLayer","indexToBounds","data","extruded","props","coverage","_normalize","positionFormat","getPolygon","x","objectInfo","updateTriggers","layerName"],"mappings":"AACA,SACEA,aAAa,IAAIC,YADnB,QAGO,qBAHP;AAIA,SAAQC,iBAAR,QAAgC,iBAAhC;AAEA,MAAMC,YAA6C,GAAG;AACpDC,EAAAA,UAAU,EAAE;AAACC,IAAAA,IAAI,EAAE,UAAP;AAAmBC,IAAAA,KAAK,EAAGC,CAAD,IAAYA,CAAC,CAACC;AAAxC;AADwC,CAAtD;AAkBA,eAAe,MAAMC,YAAN,SAAoER,YAApE,CAGb;AAIAS,EAAAA,aAAa,GAA0C;AACrD,UAAM;AAACC,MAAAA,IAAD;AAAOC,MAAAA,QAAP;AAAiBR,MAAAA;AAAjB,QAA+B,KAAKS,KAA1C;AAEA,UAAMC,QAAQ,GAAGF,QAAQ,GAAG,IAAH,GAAU,CAAnC;AAEA,WAAO;AACLD,MAAAA,IADK;AAELI,MAAAA,UAAU,EAAE,KAFP;AAGLC,MAAAA,cAAc,EAAE,IAHX;AAKLC,MAAAA,UAAU,EAAE,CAACC,CAAD,EAAWC,UAAX,KAA0BjB,iBAAiB,CAACE,UAAU,CAACc,CAAD,EAAIC,UAAJ,CAAX,EAA4BL,QAA5B,CALlD;AAMLM,MAAAA,cAAc,EAAE;AAACH,QAAAA,UAAU,EAAEH;AAAb;AANX,KAAP;AAQD;;AAjBD;AAHmBL,Y,CAIZY,S,GAAY,c;AAJAZ,Y,CAKZN,Y,GAAeA,Y","sourcesContent":["import {AccessorFunction, DefaultProps} from '@deck.gl/core';\nimport {\n _GeoCellLayer as GeoCellLayer,\n _GeoCellLayerProps as GeoCellLayerProps\n} from '@deck.gl/geo-layers';\nimport {getQuadbinPolygon} from './quadbin-utils';\n\nconst defaultProps: DefaultProps<QuadbinLayerProps> = {\n getQuadbin: {type: 'accessor', value: (d: any) => d.quadbin}\n};\n\n/** All properties supported by QuadbinLayer. */\nexport type QuadbinLayerProps<DataT = unknown> = _QuadbinLayerProps<DataT> &\n GeoCellLayerProps<DataT>;\n\n/** Properties added by QuadbinLayer. */\ntype _QuadbinLayerProps<DataT> = {\n /**\n * Called for each data object to retrieve the quadbin string identifier.\n *\n * By default, it reads `quadbin` property of data object.\n */\n getQuadbin?: AccessorFunction<DataT, bigint>;\n};\n\nexport default class QuadbinLayer<DataT = any, ExtraProps extends {} = {}> extends GeoCellLayer<\n DataT,\n Required<_QuadbinLayerProps<DataT>> & ExtraProps\n> {\n static layerName = 'QuadbinLayer';\n static defaultProps = defaultProps;\n\n indexToBounds(): Partial<GeoCellLayer['props']> | null {\n const {data, extruded, getQuadbin} = this.props;\n // To avoid z-fighting reduce polygon footprint when extruding\n const coverage = extruded ? 0.99 : 1;\n\n return {\n data,\n _normalize: false,\n positionFormat: 'XY',\n\n getPolygon: (x: DataT, objectInfo) => getQuadbinPolygon(getQuadbin(x, objectInfo), coverage),\n updateTriggers: {getPolygon: coverage}\n };\n }\n}\n"],"file":"quadbin-layer.js"}
@@ -3,8 +3,7 @@ import QuadbinLayer from './quadbin-layer';
3
3
  import QuadbinTileset2D from './quadbin-tileset-2d';
4
4
  import SpatialIndexTileLayer from './spatial-index-tile-layer';
5
5
  import { hexToBigInt } from 'quadbin';
6
- import { TilejsonPropType } from '../sources/common';
7
- import { injectAccessToken } from './utils';
6
+ import { injectAccessToken, TilejsonPropType } from './utils';
8
7
  export const renderSubLayers = props => {
9
8
  const {
10
9
  data
@@ -16,7 +15,6 @@ export const renderSubLayers = props => {
16
15
  });
17
16
  };
18
17
  const defaultProps = {
19
- aggregationResLevel: 6,
20
18
  data: TilejsonPropType
21
19
  };
22
20
  export default class QuadbinTileLayer extends CompositeLayer {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/layers/quadbin-tile-layer.ts"],"names":["CompositeLayer","QuadbinLayer","QuadbinTileset2D","SpatialIndexTileLayer","hexToBigInt","TilejsonPropType","injectAccessToken","renderSubLayers","props","data","length","isBigInt","id","getQuadbin","d","defaultProps","aggregationResLevel","QuadbinTileLayer","getLoadOptions","loadOptions","tileJSON","accessToken","cartoSpatialTile","scheme","renderLayers","tiles","maxresolution","maxZoom","TilesetClass","layerName"],"mappings":"AAAA,SAAQA,cAAR,QAAmF,eAAnF;AACA,OAAOC,YAAP,MAA8C,iBAA9C;AACA,OAAOC,gBAAP,MAA6B,sBAA7B;AACA,OAAOC,qBAAP,MAAkC,4BAAlC;AACA,SAAQC,WAAR,QAA0B,SAA1B;AACA,SAAQC,gBAAR,QAAoD,mBAApD;AACA,SAAQC,iBAAR,QAAgC,SAAhC;AAEA,OAAO,MAAMC,eAAe,GAAGC,KAAK,IAAI;AACtC,QAAM;AAACC,IAAAA;AAAD,MAASD,KAAf;AACA,MAAI,CAACC,IAAD,IAAS,CAACA,IAAI,CAACC,MAAnB,EAA2B,OAAO,IAAP;AAC3B,QAAMC,QAAQ,GAAG,OAAOF,IAAI,CAAC,CAAD,CAAJ,CAAQG,EAAf,KAAsB,QAAvC;AACA,SAAO,IAAIX,YAAJ,CAAiBO,KAAjB,EAAwB;AAC7BK,IAAAA,UAAU,EAAEF,QAAQ,GAAGG,CAAC,IAAIA,CAAC,CAACF,EAAV,GAAeE,CAAC,IAAIV,WAAW,CAACU,CAAC,CAACF,EAAH;AADtB,GAAxB,CAAP;AAGD,CAPM;AASP,MAAMG,YAAiD,GAAG;AACxDC,EAAAA,mBAAmB,EAAE,CADmC;AAExDP,EAAAA,IAAI,EAAEJ;AAFkD,CAA1D;AAeA,eAAe,MAAMY,gBAAN,SAGLjB,cAHK,CAGgE;AAI7EkB,EAAAA,cAAc,GAAQ;AACpB,UAAMC,WAAW,GAAG,MAAMD,cAAN,MAA0B,EAA9C;AACA,UAAME,QAAQ,GAAG,KAAKZ,KAAL,CAAWC,IAA5B;AACAH,IAAAA,iBAAiB,CAACa,WAAD,EAAcC,QAAQ,CAACC,WAAvB,CAAjB;AACAF,IAAAA,WAAW,CAACG,gBAAZ,GAA+B,EAAC,GAAGH,WAAW,CAACG,gBAAhB;AAAkCC,MAAAA,MAAM,EAAE;AAA1C,KAA/B;AACA,WAAOJ,WAAP;AACD;;AAEDK,EAAAA,YAAY,GAA8B;AACxC,UAAMJ,QAAQ,GAAG,KAAKZ,KAAL,CAAWC,IAA5B;AACA,QAAI,CAACW,QAAL,EAAe,OAAO,IAAP;AAEf,UAAM;AAACK,MAAAA,KAAK,EAAEhB,IAAR;AAAciB,MAAAA,aAAa,EAAEC;AAA7B,QAAwCP,QAA9C;AACA,WAAO,CAEL,IAAIjB,qBAAJ,CAA0B,KAAKK,KAA/B,EAAsC;AACpCI,MAAAA,EAAE,EAAG,sBAAqB,KAAKJ,KAAL,CAAWI,EAAG,EADJ;AAEpCH,MAAAA,IAFoC;AAIpCmB,MAAAA,YAAY,EAAE1B,gBAJsB;AAKpCK,MAAAA,eALoC;AAMpCoB,MAAAA,OANoC;AAOpCR,MAAAA,WAAW,EAAE,KAAKD,cAAL;AAPuB,KAAtC,CAFK,CAAP;AAYD;;AA7B4E;AAH1DD,gB,CAIZY,S,GAAY,kB;AAJAZ,gB,CAKZF,Y,GAAeA,Y","sourcesContent":["import {CompositeLayer, CompositeLayerProps, Layer, LayersList, DefaultProps} from '@deck.gl/core';\nimport QuadbinLayer, {QuadbinLayerProps} from './quadbin-layer';\nimport QuadbinTileset2D from './quadbin-tileset-2d';\nimport SpatialIndexTileLayer from './spatial-index-tile-layer';\nimport {hexToBigInt} from 'quadbin';\nimport {TilejsonPropType, CartoTilejsonResult} from '../sources/common';\nimport {injectAccessToken} from './utils';\n\nexport const renderSubLayers = props => {\n const {data} = props;\n if (!data || !data.length) return null;\n const isBigInt = typeof data[0].id === 'bigint';\n return new QuadbinLayer(props, {\n getQuadbin: isBigInt ? d => d.id : d => hexToBigInt(d.id)\n });\n};\n\nconst defaultProps: DefaultProps<QuadbinTileLayerProps> = {\n aggregationResLevel: 6,\n data: TilejsonPropType\n};\n\n/** All properties supported by QuadbinTileLayer. */\nexport type QuadbinTileLayerProps<DataT = any> = _QuadbinTileLayerProps<DataT> &\n CompositeLayerProps;\n\n/** Properties added by QuadbinTileLayer. */\ntype _QuadbinTileLayerProps<DataT> = Omit<QuadbinLayerProps<DataT>, 'data'> & {\n data: null | CartoTilejsonResult | Promise<CartoTilejsonResult>;\n aggregationResLevel?: number;\n};\n\nexport default class QuadbinTileLayer<\n DataT = any,\n ExtraProps extends {} = {}\n> extends CompositeLayer<ExtraProps & Required<_QuadbinTileLayerProps<DataT>>> {\n static layerName = 'QuadbinTileLayer';\n static defaultProps = defaultProps;\n\n getLoadOptions(): any {\n const loadOptions = super.getLoadOptions() || {};\n const tileJSON = this.props.data as CartoTilejsonResult;\n injectAccessToken(loadOptions, tileJSON.accessToken);\n loadOptions.cartoSpatialTile = {...loadOptions.cartoSpatialTile, scheme: 'quadbin'};\n return loadOptions;\n }\n\n renderLayers(): Layer | null | LayersList {\n const tileJSON = this.props.data as CartoTilejsonResult;\n if (!tileJSON) return null;\n\n const {tiles: data, maxresolution: maxZoom} = tileJSON;\n return [\n // @ts-ignore\n new SpatialIndexTileLayer(this.props, {\n id: `quadbin-tile-layer-${this.props.id}`,\n data,\n // TODO: Tileset2D should be generic over TileIndex type\n TilesetClass: QuadbinTileset2D as any,\n renderSubLayers,\n maxZoom,\n loadOptions: this.getLoadOptions()\n })\n ];\n }\n}\n"],"file":"quadbin-tile-layer.js"}
1
+ {"version":3,"sources":["../../../src/layers/quadbin-tile-layer.ts"],"names":["CompositeLayer","QuadbinLayer","QuadbinTileset2D","SpatialIndexTileLayer","hexToBigInt","injectAccessToken","TilejsonPropType","renderSubLayers","props","data","length","isBigInt","id","getQuadbin","d","defaultProps","QuadbinTileLayer","getLoadOptions","loadOptions","tileJSON","accessToken","cartoSpatialTile","scheme","renderLayers","tiles","maxresolution","maxZoom","TilesetClass","layerName"],"mappings":"AAAA,SAAQA,cAAR,QAAmF,eAAnF;AACA,OAAOC,YAAP,MAA8C,iBAA9C;AACA,OAAOC,gBAAP,MAA6B,sBAA7B;AACA,OAAOC,qBAAP,MAAgE,4BAAhE;AACA,SAAQC,WAAR,QAA0B,SAA1B;AAEA,SAAQC,iBAAR,EAA2BC,gBAA3B,QAAkD,SAAlD;AAEA,OAAO,MAAMC,eAAe,GAAGC,KAAK,IAAI;AACtC,QAAM;AAACC,IAAAA;AAAD,MAASD,KAAf;AACA,MAAI,CAACC,IAAD,IAAS,CAACA,IAAI,CAACC,MAAnB,EAA2B,OAAO,IAAP;AAC3B,QAAMC,QAAQ,GAAG,OAAOF,IAAI,CAAC,CAAD,CAAJ,CAAQG,EAAf,KAAsB,QAAvC;AACA,SAAO,IAAIX,YAAJ,CAAiBO,KAAjB,EAAwB;AAC7BK,IAAAA,UAAU,EAAEF,QAAQ,GAAGG,CAAC,IAAIA,CAAC,CAACF,EAAV,GAAeE,CAAC,IAAIV,WAAW,CAACU,CAAC,CAACF,EAAH;AADtB,GAAxB,CAAP;AAGD,CAPM;AASP,MAAMG,YAAiD,GAAG;AACxDN,EAAAA,IAAI,EAAEH;AADkD,CAA1D;AAcA,eAAe,MAAMU,gBAAN,SAGLhB,cAHK,CAGgE;AAI7EiB,EAAAA,cAAc,GAAQ;AACpB,UAAMC,WAAW,GAAG,MAAMD,cAAN,MAA0B,EAA9C;AACA,UAAME,QAAQ,GAAG,KAAKX,KAAL,CAAWC,IAA5B;AACAJ,IAAAA,iBAAiB,CAACa,WAAD,EAAcC,QAAQ,CAACC,WAAvB,CAAjB;AACAF,IAAAA,WAAW,CAACG,gBAAZ,GAA+B,EAAC,GAAGH,WAAW,CAACG,gBAAhB;AAAkCC,MAAAA,MAAM,EAAE;AAA1C,KAA/B;AACA,WAAOJ,WAAP;AACD;;AAEDK,EAAAA,YAAY,GAA8B;AACxC,UAAMJ,QAAQ,GAAG,KAAKX,KAAL,CAAWC,IAA5B;AACA,QAAI,CAACU,QAAL,EAAe,OAAO,IAAP;AAEf,UAAM;AAACK,MAAAA,KAAK,EAAEf,IAAR;AAAcgB,MAAAA,aAAa,EAAEC;AAA7B,QAAwCP,QAA9C;AACA,WAAO,CAEL,IAAIhB,qBAAJ,CAA0B,KAAKK,KAA/B,EAAsC;AACpCI,MAAAA,EAAE,EAAG,sBAAqB,KAAKJ,KAAL,CAAWI,EAAG,EADJ;AAEpCH,MAAAA,IAFoC;AAIpCkB,MAAAA,YAAY,EAAEzB,gBAJsB;AAKpCK,MAAAA,eALoC;AAMpCmB,MAAAA,OANoC;AAOpCR,MAAAA,WAAW,EAAE,KAAKD,cAAL;AAPuB,KAAtC,CAFK,CAAP;AAYD;;AA7B4E;AAH1DD,gB,CAIZY,S,GAAY,kB;AAJAZ,gB,CAKZD,Y,GAAeA,Y","sourcesContent":["import {CompositeLayer, CompositeLayerProps, Layer, LayersList, DefaultProps} from '@deck.gl/core';\nimport QuadbinLayer, {QuadbinLayerProps} from './quadbin-layer';\nimport QuadbinTileset2D from './quadbin-tileset-2d';\nimport SpatialIndexTileLayer, {SpatialIndexTileLayerProps} from './spatial-index-tile-layer';\nimport {hexToBigInt} from 'quadbin';\nimport type {TilejsonResult} from '../sources/types';\nimport {injectAccessToken, TilejsonPropType} from './utils';\n\nexport const renderSubLayers = props => {\n const {data} = props;\n if (!data || !data.length) return null;\n const isBigInt = typeof data[0].id === 'bigint';\n return new QuadbinLayer(props, {\n getQuadbin: isBigInt ? d => d.id : d => hexToBigInt(d.id)\n });\n};\n\nconst defaultProps: DefaultProps<QuadbinTileLayerProps> = {\n data: TilejsonPropType\n};\n\n/** All properties supported by QuadbinTileLayer. */\nexport type QuadbinTileLayerProps<DataT = unknown> = _QuadbinTileLayerProps<DataT> &\n CompositeLayerProps;\n\n/** Properties added by QuadbinTileLayer. */\ntype _QuadbinTileLayerProps<DataT> = Omit<QuadbinLayerProps<DataT>, 'data'> &\n Omit<SpatialIndexTileLayerProps<DataT>, 'data'> & {\n data: null | TilejsonResult | Promise<TilejsonResult>;\n };\n\nexport default class QuadbinTileLayer<\n DataT = any,\n ExtraProps extends {} = {}\n> extends CompositeLayer<ExtraProps & Required<_QuadbinTileLayerProps<DataT>>> {\n static layerName = 'QuadbinTileLayer';\n static defaultProps = defaultProps;\n\n getLoadOptions(): any {\n const loadOptions = super.getLoadOptions() || {};\n const tileJSON = this.props.data as TilejsonResult;\n injectAccessToken(loadOptions, tileJSON.accessToken);\n loadOptions.cartoSpatialTile = {...loadOptions.cartoSpatialTile, scheme: 'quadbin'};\n return loadOptions;\n }\n\n renderLayers(): Layer | null | LayersList {\n const tileJSON = this.props.data as TilejsonResult;\n if (!tileJSON) return null;\n\n const {tiles: data, maxresolution: maxZoom} = tileJSON;\n return [\n // @ts-ignore\n new SpatialIndexTileLayer(this.props, {\n id: `quadbin-tile-layer-${this.props.id}`,\n data,\n // TODO: Tileset2D should be generic over TileIndex type\n TilesetClass: QuadbinTileset2D as any,\n renderSubLayers,\n maxZoom,\n loadOptions: this.getLoadOptions()\n })\n ];\n }\n}\n"],"file":"quadbin-tile-layer.js"}
@@ -1,3 +1,4 @@
1
+ import { GL } from '@luma.gl/constants';
1
2
  import { CompositeLayer } from '@deck.gl/core';
2
3
  import { ColumnLayer } from '@deck.gl/layers';
3
4
  import { quadbinToOffset } from './quadbin-utils';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/layers/raster-layer.ts"],"names":["CompositeLayer","ColumnLayer","quadbinToOffset","vs","assert","createBinaryProxy","defaultProps","extruded","diskResolution","vertices","RasterColumnLayer","getShaders","shaders","initializeState","attributeManager","getAttributeManager","addInstanced","instanceElevations","size","transition","accessor","instanceFillColors","props","colorFormat","length","type","normalized","defaultValue","instanceLineColors","layerName","RasterLayer","renderLayers","data","getElevation","getFillColor","getLineColor","getLineWidth","tileIndex","updateTriggers","blockWidth","blockHeight","xOffset","yOffset","scale","offset","CellLayer","getSubLayerClass","getSubLayerProps","id","getSubLayerAccessor","object","info","index","binaryData","proxy","cells","properties"],"mappings":"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","sourcesContent":["import GL from '@luma.gl/constants';\nimport {\n Accessor,\n CompositeLayer,\n CompositeLayerProps,\n Layer,\n LayersList,\n DefaultProps\n} from '@deck.gl/core';\nimport {ColumnLayer, ColumnLayerProps} from '@deck.gl/layers';\nimport {quadbinToOffset} from './quadbin-utils';\nimport {Raster} from './schema/carto-raster-tile-loader';\nimport vs from './raster-layer-vertex.glsl';\nimport {assert, createBinaryProxy} from '../utils';\n\nconst defaultProps: DefaultProps<RasterLayerProps> = {\n ...ColumnLayer.defaultProps,\n extruded: false,\n diskResolution: 4,\n vertices: [\n [-0.5, -0.5],\n [0.5, -0.5],\n [0.5, 0.5],\n [-0.5, 0.5]\n ]\n};\n\n// Modified ColumnLayer with custom vertex shader\nclass RasterColumnLayer extends ColumnLayer {\n static layerName = 'RasterColumnLayer';\n\n getShaders() {\n const shaders = super.getShaders();\n return {...shaders, vs};\n }\n\n initializeState() {\n // Only add attributes needed by shader\n const attributeManager = this.getAttributeManager()!;\n /* eslint-disable max-len */\n attributeManager.addInstanced({\n instanceElevations: {\n size: 1,\n transition: true,\n accessor: 'getElevation'\n },\n instanceFillColors: {\n size: this.props.colorFormat.length,\n type: GL.UNSIGNED_BYTE,\n normalized: true,\n transition: true,\n accessor: 'getFillColor',\n defaultValue: [0, 0, 0, 255]\n },\n instanceLineColors: {\n size: this.props.colorFormat.length,\n type: GL.UNSIGNED_BYTE,\n normalized: true,\n transition: true,\n accessor: 'getLineColor',\n defaultValue: [255, 255, 255, 255]\n }\n });\n }\n}\n\n/** All properties supported by RasterLayer. */\nexport type RasterLayerProps<DataT = any> = _RasterLayerProps &\n ColumnLayerProps<DataT> &\n CompositeLayerProps;\n\n/** Properties added by RasterLayer. */\ntype _RasterLayerProps = {\n /**\n * Quadbin index of tile\n */\n tileIndex: bigint;\n};\n\n// Adapter layer around RasterColumnLayer that converts data & accessors into correct format\nexport default class RasterLayer<DataT = any, ExtraProps = {}> extends CompositeLayer<\n Required<RasterLayerProps<DataT>> & ExtraProps\n> {\n static layerName = 'RasterLayer';\n static defaultProps = defaultProps;\n\n renderLayers(): Layer | null | LayersList {\n // Rendering props underlying layer\n const {\n data,\n getElevation,\n getFillColor,\n getLineColor,\n getLineWidth,\n tileIndex,\n updateTriggers\n } = this.props;\n if (!data || !tileIndex) return null;\n\n const {blockWidth, blockHeight} = data as unknown as Raster;\n assert(\n blockWidth === blockHeight,\n `blockWidth (${blockWidth}) must equal blockHeight (${blockHeight})`\n );\n\n const [xOffset, yOffset, scale] = quadbinToOffset(tileIndex);\n const offset = [xOffset, yOffset, scale / blockWidth];\n\n // Filled Column Layer\n const CellLayer = this.getSubLayerClass('column', RasterColumnLayer);\n return new CellLayer(\n this.props,\n this.getSubLayerProps({\n id: 'cell',\n updateTriggers,\n\n getElevation: this.getSubLayerAccessor(getElevation),\n getFillColor: this.getSubLayerAccessor(getFillColor),\n getLineColor: this.getSubLayerAccessor(getLineColor),\n getLineWidth: this.getSubLayerAccessor(getLineWidth)\n }),\n {\n data: {\n data, // Pass through data for getSubLayerAccessor()\n length: blockWidth * blockHeight\n },\n offset\n }\n );\n }\n\n protected getSubLayerAccessor<In, Out>(accessor: Accessor<In, Out>): Accessor<In, Out> {\n if (typeof accessor !== 'function') {\n return super.getSubLayerAccessor(accessor);\n }\n\n // Proxy values back in standard feature format\n return (object, info) => {\n const {data, index} = info;\n const binaryData = (data as unknown as {data: Raster}).data;\n const proxy = createBinaryProxy(binaryData.cells, index);\n // @ts-ignore (TS2349) accessor is always function\n return accessor({properties: proxy}, info);\n };\n }\n}\n"],"file":"raster-layer.js"}
1
+ {"version":3,"sources":["../../../src/layers/raster-layer.ts"],"names":["GL","CompositeLayer","ColumnLayer","quadbinToOffset","vs","assert","createBinaryProxy","defaultProps","extruded","diskResolution","vertices","RasterColumnLayer","getShaders","shaders","initializeState","attributeManager","getAttributeManager","addInstanced","instanceElevations","size","transition","accessor","instanceFillColors","props","colorFormat","length","type","normalized","defaultValue","instanceLineColors","layerName","RasterLayer","renderLayers","data","getElevation","getFillColor","getLineColor","getLineWidth","tileIndex","updateTriggers","blockWidth","blockHeight","xOffset","yOffset","scale","offset","CellLayer","getSubLayerClass","getSubLayerProps","id","getSubLayerAccessor","object","info","index","binaryData","proxy","cells","properties"],"mappings":"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","sourcesContent":["import {GL} from '@luma.gl/constants';\nimport {\n Accessor,\n CompositeLayer,\n CompositeLayerProps,\n Layer,\n LayersList,\n DefaultProps\n} from '@deck.gl/core';\nimport {ColumnLayer, ColumnLayerProps} from '@deck.gl/layers';\nimport {quadbinToOffset} from './quadbin-utils';\nimport {Raster} from './schema/carto-raster-tile-loader';\nimport vs from './raster-layer-vertex.glsl';\nimport {assert, createBinaryProxy} from '../utils';\n\nconst defaultProps: DefaultProps<RasterLayerProps> = {\n ...ColumnLayer.defaultProps,\n extruded: false,\n diskResolution: 4,\n vertices: [\n [-0.5, -0.5],\n [0.5, -0.5],\n [0.5, 0.5],\n [-0.5, 0.5]\n ]\n};\n\n// Modified ColumnLayer with custom vertex shader\nclass RasterColumnLayer extends ColumnLayer {\n static layerName = 'RasterColumnLayer';\n\n getShaders() {\n const shaders = super.getShaders();\n return {...shaders, vs};\n }\n\n initializeState() {\n // Only add attributes needed by shader\n const attributeManager = this.getAttributeManager()!;\n /* eslint-disable max-len */\n attributeManager.addInstanced({\n instanceElevations: {\n size: 1,\n transition: true,\n accessor: 'getElevation'\n },\n instanceFillColors: {\n size: this.props.colorFormat.length,\n type: GL.UNSIGNED_BYTE,\n normalized: true,\n transition: true,\n accessor: 'getFillColor',\n defaultValue: [0, 0, 0, 255]\n },\n instanceLineColors: {\n size: this.props.colorFormat.length,\n type: GL.UNSIGNED_BYTE,\n normalized: true,\n transition: true,\n accessor: 'getLineColor',\n defaultValue: [255, 255, 255, 255]\n }\n });\n }\n}\n\n/** All properties supported by RasterLayer. */\nexport type RasterLayerProps<DataT = unknown> = _RasterLayerProps &\n ColumnLayerProps<DataT> &\n CompositeLayerProps;\n\n/** Properties added by RasterLayer. */\ntype _RasterLayerProps = {\n /**\n * Quadbin index of tile\n */\n tileIndex: bigint;\n};\n\n// Adapter layer around RasterColumnLayer that converts data & accessors into correct format\nexport default class RasterLayer<DataT = any, ExtraProps = {}> extends CompositeLayer<\n Required<RasterLayerProps<DataT>> & ExtraProps\n> {\n static layerName = 'RasterLayer';\n static defaultProps = defaultProps;\n\n renderLayers(): Layer | null | LayersList {\n // Rendering props underlying layer\n const {\n data,\n getElevation,\n getFillColor,\n getLineColor,\n getLineWidth,\n tileIndex,\n updateTriggers\n } = this.props;\n if (!data || !tileIndex) return null;\n\n const {blockWidth, blockHeight} = data as unknown as Raster;\n assert(\n blockWidth === blockHeight,\n `blockWidth (${blockWidth}) must equal blockHeight (${blockHeight})`\n );\n\n const [xOffset, yOffset, scale] = quadbinToOffset(tileIndex);\n const offset = [xOffset, yOffset, scale / blockWidth];\n\n // Filled Column Layer\n const CellLayer = this.getSubLayerClass('column', RasterColumnLayer);\n return new CellLayer(\n this.props,\n this.getSubLayerProps({\n id: 'cell',\n updateTriggers,\n\n getElevation: this.getSubLayerAccessor(getElevation),\n getFillColor: this.getSubLayerAccessor(getFillColor),\n getLineColor: this.getSubLayerAccessor(getLineColor),\n getLineWidth: this.getSubLayerAccessor(getLineWidth)\n }),\n {\n data: {\n data, // Pass through data for getSubLayerAccessor()\n length: blockWidth * blockHeight\n },\n offset\n }\n );\n }\n\n protected getSubLayerAccessor<In, Out>(accessor: Accessor<In, Out>): Accessor<In, Out> {\n if (typeof accessor !== 'function') {\n return super.getSubLayerAccessor(accessor);\n }\n\n // Proxy values back in standard feature format\n return (object, info) => {\n const {data, index} = info;\n const binaryData = (data as unknown as {data: Raster}).data;\n const proxy = createBinaryProxy(binaryData.cells, index);\n // @ts-ignore (TS2349) accessor is always function\n return accessor({properties: proxy}, info);\n };\n }\n}\n"],"file":"raster-layer.js"}
@@ -2,8 +2,7 @@ import { CompositeLayer } from '@deck.gl/core';
2
2
  import RasterLayer from './raster-layer';
3
3
  import QuadbinTileset2D from './quadbin-tileset-2d';
4
4
  import SpatialIndexTileLayer from './spatial-index-tile-layer';
5
- import { TilejsonPropType } from '../sources/common';
6
- import { injectAccessToken } from './utils';
5
+ import { injectAccessToken, TilejsonPropType } from './utils';
7
6
  export const renderSubLayers = props => {
8
7
  var _props$tile, _props$tile$index;
9
8
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/layers/raster-tile-layer.ts"],"names":["CompositeLayer","RasterLayer","QuadbinTileset2D","SpatialIndexTileLayer","TilejsonPropType","injectAccessToken","renderSubLayers","props","tileIndex","tile","index","q","defaultProps","data","RasterTileLayer","getLoadOptions","loadOptions","tileJSON","accessToken","renderLayers","tiles","minzoom","minZoom","maxzoom","maxZoom","id","TilesetClass","layerName"],"mappings":"AAAA,SAAQA,cAAR,QAAmF,eAAnF;AACA,OAAOC,WAAP,MAA4C,gBAA5C;AACA,OAAOC,gBAAP,MAA6B,sBAA7B;AACA,OAAOC,qBAAP,MAAkC,4BAAlC;AACA,SAAQC,gBAAR,QAAoD,mBAApD;AACA,SAAQC,iBAAR,QAAgC,SAAhC;AAEA,OAAO,MAAMC,eAAe,GAAGC,KAAK,IAAI;AAAA;;AACtC,QAAMC,SAAS,kBAAGD,KAAK,CAACE,IAAT,qEAAG,YAAYC,KAAf,sDAAG,kBAAmBC,CAArC;AACA,MAAI,CAACH,SAAL,EAAgB,OAAO,IAAP;AAChB,SAAO,IAAIP,WAAJ,CAAgBM,KAAhB,EAAuB;AAACC,IAAAA;AAAD,GAAvB,CAAP;AACD,CAJM;AAMP,MAAMI,YAAgD,GAAG;AACvDC,EAAAA,IAAI,EAAET;AADiD,CAAzD;AAYA,eAAe,MAAMU,eAAN,SAGLd,cAHK,CAG+D;AAI5Ee,EAAAA,cAAc,GAAQ;AACpB,UAAMC,WAAW,GAAG,MAAMD,cAAN,MAA0B,EAA9C;AACA,UAAME,QAAQ,GAAG,KAAKV,KAAL,CAAWM,IAA5B;AACAR,IAAAA,iBAAiB,CAACW,WAAD,EAAcC,QAAQ,CAACC,WAAvB,CAAjB;AACA,WAAOF,WAAP;AACD;;AAEDG,EAAAA,YAAY,GAA8B;AACxC,UAAMF,QAAQ,GAAG,KAAKV,KAAL,CAAWM,IAA5B;AACA,QAAI,CAACI,QAAL,EAAe,OAAO,IAAP;AAEf,UAAM;AAACG,MAAAA,KAAK,EAAEP,IAAR;AAAcQ,MAAAA,OAAO,EAAEC,OAAvB;AAAgCC,MAAAA,OAAO,EAAEC;AAAzC,QAAoDP,QAA1D;AACA,WAAO,CAEL,IAAId,qBAAJ,CAA0B,KAAKI,KAA/B,EAAsC;AACpCkB,MAAAA,EAAE,EAAG,qBAAoB,KAAKlB,KAAL,CAAWkB,EAAG,EADH;AAEpCZ,MAAAA,IAFoC;AAIpCa,MAAAA,YAAY,EAAExB,gBAJsB;AAKpCI,MAAAA,eALoC;AAMpCgB,MAAAA,OANoC;AAOpCE,MAAAA,OAPoC;AAQpCR,MAAAA,WAAW,EAAE,KAAKD,cAAL;AARuB,KAAtC,CAFK,CAAP;AAaD;;AA7B2E;AAHzDD,e,CAIZa,S,GAAY,iB;AAJAb,e,CAKZF,Y,GAAeA,Y","sourcesContent":["import {CompositeLayer, CompositeLayerProps, DefaultProps, Layer, LayersList} from '@deck.gl/core';\nimport RasterLayer, {RasterLayerProps} from './raster-layer';\nimport QuadbinTileset2D from './quadbin-tileset-2d';\nimport SpatialIndexTileLayer from './spatial-index-tile-layer';\nimport {TilejsonPropType, CartoTilejsonResult} from '../sources/common';\nimport {injectAccessToken} from './utils';\n\nexport const renderSubLayers = props => {\n const tileIndex = props.tile?.index?.q;\n if (!tileIndex) return null;\n return new RasterLayer(props, {tileIndex});\n};\n\nconst defaultProps: DefaultProps<RasterTileLayerProps> = {\n data: TilejsonPropType\n};\n\n/** All properties supported by RasterTileLayer. */\nexport type RasterTileLayerProps<DataT = any> = _RasterTileLayerProps<DataT> & CompositeLayerProps;\n\n/** Properties added by RasterTileLayer. */\ntype _RasterTileLayerProps<DataT> = Omit<RasterLayerProps<DataT>, 'data'> & {\n data: null | CartoTilejsonResult | Promise<CartoTilejsonResult>;\n};\n\nexport default class RasterTileLayer<\n DataT = any,\n ExtraProps extends {} = {}\n> extends CompositeLayer<ExtraProps & Required<_RasterTileLayerProps<DataT>>> {\n static layerName = 'RasterTileLayer';\n static defaultProps = defaultProps;\n\n getLoadOptions(): any {\n const loadOptions = super.getLoadOptions() || {};\n const tileJSON = this.props.data as CartoTilejsonResult;\n injectAccessToken(loadOptions, tileJSON.accessToken);\n return loadOptions;\n }\n\n renderLayers(): Layer | null | LayersList {\n const tileJSON = this.props.data as CartoTilejsonResult;\n if (!tileJSON) return null;\n\n const {tiles: data, minzoom: minZoom, maxzoom: maxZoom} = tileJSON;\n return [\n // @ts-ignore\n new SpatialIndexTileLayer(this.props, {\n id: `raster-tile-layer-${this.props.id}`,\n data,\n // TODO: Tileset2D should be generic over TileIndex type\n TilesetClass: QuadbinTileset2D as any,\n renderSubLayers,\n minZoom,\n maxZoom,\n loadOptions: this.getLoadOptions()\n })\n ];\n }\n}\n"],"file":"raster-tile-layer.js"}
1
+ {"version":3,"sources":["../../../src/layers/raster-tile-layer.ts"],"names":["CompositeLayer","RasterLayer","QuadbinTileset2D","SpatialIndexTileLayer","injectAccessToken","TilejsonPropType","renderSubLayers","props","tileIndex","tile","index","q","defaultProps","data","RasterTileLayer","getLoadOptions","loadOptions","tileJSON","accessToken","renderLayers","tiles","minzoom","minZoom","maxzoom","maxZoom","id","TilesetClass","layerName"],"mappings":"AAAA,SAAQA,cAAR,QAAmF,eAAnF;AACA,OAAOC,WAAP,MAA4C,gBAA5C;AACA,OAAOC,gBAAP,MAA6B,sBAA7B;AACA,OAAOC,qBAAP,MAAgE,4BAAhE;AAEA,SAAQC,iBAAR,EAA2BC,gBAA3B,QAAkD,SAAlD;AAEA,OAAO,MAAMC,eAAe,GAAGC,KAAK,IAAI;AAAA;;AACtC,QAAMC,SAAS,kBAAGD,KAAK,CAACE,IAAT,qEAAG,YAAYC,KAAf,sDAAG,kBAAmBC,CAArC;AACA,MAAI,CAACH,SAAL,EAAgB,OAAO,IAAP;AAChB,SAAO,IAAIP,WAAJ,CAAgBM,KAAhB,EAAuB;AAACC,IAAAA;AAAD,GAAvB,CAAP;AACD,CAJM;AAMP,MAAMI,YAAgD,GAAG;AACvDC,EAAAA,IAAI,EAAER;AADiD,CAAzD;AAcA,eAAe,MAAMS,eAAN,SAGLd,cAHK,CAG+D;AAI5Ee,EAAAA,cAAc,GAAQ;AACpB,UAAMC,WAAW,GAAG,MAAMD,cAAN,MAA0B,EAA9C;AACA,UAAME,QAAQ,GAAG,KAAKV,KAAL,CAAWM,IAA5B;AACAT,IAAAA,iBAAiB,CAACY,WAAD,EAAcC,QAAQ,CAACC,WAAvB,CAAjB;AACA,WAAOF,WAAP;AACD;;AAEDG,EAAAA,YAAY,GAA8B;AACxC,UAAMF,QAAQ,GAAG,KAAKV,KAAL,CAAWM,IAA5B;AACA,QAAI,CAACI,QAAL,EAAe,OAAO,IAAP;AAEf,UAAM;AAACG,MAAAA,KAAK,EAAEP,IAAR;AAAcQ,MAAAA,OAAO,EAAEC,OAAvB;AAAgCC,MAAAA,OAAO,EAAEC;AAAzC,QAAoDP,QAA1D;AACA,WAAO,CAEL,IAAId,qBAAJ,CAA0B,KAAKI,KAA/B,EAAsC;AACpCkB,MAAAA,EAAE,EAAG,qBAAoB,KAAKlB,KAAL,CAAWkB,EAAG,EADH;AAEpCZ,MAAAA,IAFoC;AAIpCa,MAAAA,YAAY,EAAExB,gBAJsB;AAKpCI,MAAAA,eALoC;AAMpCgB,MAAAA,OANoC;AAOpCE,MAAAA,OAPoC;AAQpCR,MAAAA,WAAW,EAAE,KAAKD,cAAL;AARuB,KAAtC,CAFK,CAAP;AAaD;;AA7B2E;AAHzDD,e,CAIZa,S,GAAY,iB;AAJAb,e,CAKZF,Y,GAAeA,Y","sourcesContent":["import {CompositeLayer, CompositeLayerProps, DefaultProps, Layer, LayersList} from '@deck.gl/core';\nimport RasterLayer, {RasterLayerProps} from './raster-layer';\nimport QuadbinTileset2D from './quadbin-tileset-2d';\nimport SpatialIndexTileLayer, {SpatialIndexTileLayerProps} from './spatial-index-tile-layer';\nimport type {TilejsonResult} from '../sources/types';\nimport {injectAccessToken, TilejsonPropType} from './utils';\n\nexport const renderSubLayers = props => {\n const tileIndex = props.tile?.index?.q;\n if (!tileIndex) return null;\n return new RasterLayer(props, {tileIndex});\n};\n\nconst defaultProps: DefaultProps<RasterTileLayerProps> = {\n data: TilejsonPropType\n};\n\n/** All properties supported by RasterTileLayer. */\nexport type RasterTileLayerProps<DataT = unknown> = _RasterTileLayerProps<DataT> &\n CompositeLayerProps;\n\n/** Properties added by RasterTileLayer. */\ntype _RasterTileLayerProps<DataT> = Omit<RasterLayerProps<DataT>, 'data'> &\n Omit<SpatialIndexTileLayerProps<DataT>, 'data'> & {\n data: null | TilejsonResult | Promise<TilejsonResult>;\n };\n\nexport default class RasterTileLayer<\n DataT = any,\n ExtraProps extends {} = {}\n> extends CompositeLayer<ExtraProps & Required<_RasterTileLayerProps<DataT>>> {\n static layerName = 'RasterTileLayer';\n static defaultProps = defaultProps;\n\n getLoadOptions(): any {\n const loadOptions = super.getLoadOptions() || {};\n const tileJSON = this.props.data as TilejsonResult;\n injectAccessToken(loadOptions, tileJSON.accessToken);\n return loadOptions;\n }\n\n renderLayers(): Layer | null | LayersList {\n const tileJSON = this.props.data as TilejsonResult;\n if (!tileJSON) return null;\n\n const {tiles: data, minzoom: minZoom, maxzoom: maxZoom} = tileJSON;\n return [\n // @ts-ignore\n new SpatialIndexTileLayer(this.props, {\n id: `raster-tile-layer-${this.props.id}`,\n data,\n // TODO: Tileset2D should be generic over TileIndex type\n TilesetClass: QuadbinTileset2D as any,\n renderSubLayers,\n minZoom,\n maxZoom,\n loadOptions: this.getLoadOptions()\n })\n ];\n }\n}\n"],"file":"raster-tile-layer.js"}
@@ -0,0 +1,23 @@
1
+ import { TileReader } from './carto-properties-tile';
2
+ import { parsePbf } from './tile-loader-utils';
3
+ const CartoPropertiesTileLoader = {
4
+ name: 'CARTO Properties Tile',
5
+ version: '1',
6
+ id: 'cartoPropertiesTile',
7
+ module: 'carto',
8
+ extensions: ['pbf'],
9
+ mimeTypes: ['application/vnd.carto-properties-tile'],
10
+ category: 'geometry',
11
+ worker: false,
12
+ parse: async (arrayBuffer, options) => parseCartoPropertiesTile(arrayBuffer, options),
13
+ parseSync: parseCartoPropertiesTile,
14
+ options: {}
15
+ };
16
+
17
+ function parseCartoPropertiesTile(arrayBuffer, options) {
18
+ if (!arrayBuffer) return null;
19
+ return parsePbf(arrayBuffer, TileReader);
20
+ }
21
+
22
+ export default CartoPropertiesTileLoader;
23
+ //# sourceMappingURL=carto-properties-tile-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/layers/schema/carto-properties-tile-loader.ts"],"names":["TileReader","parsePbf","CartoPropertiesTileLoader","name","version","id","module","extensions","mimeTypes","category","worker","parse","arrayBuffer","options","parseCartoPropertiesTile","parseSync"],"mappings":"AAEA,SAAcA,UAAd,QAA+B,yBAA/B;AACA,SAAQC,QAAR,QAAuB,qBAAvB;AAEA,MAAMC,yBAA2C,GAAG;AAClDC,EAAAA,IAAI,EAAE,uBAD4C;AAElDC,EAAAA,OAAO,EAAE,GAFyC;AAGlDC,EAAAA,EAAE,EAAE,qBAH8C;AAIlDC,EAAAA,MAAM,EAAE,OAJ0C;AAKlDC,EAAAA,UAAU,EAAE,CAAC,KAAD,CALsC;AAMlDC,EAAAA,SAAS,EAAE,CAAC,uCAAD,CANuC;AAOlDC,EAAAA,QAAQ,EAAE,UAPwC;AAQlDC,EAAAA,MAAM,EAAE,KAR0C;AASlDC,EAAAA,KAAK,EAAE,OAAOC,WAAP,EAAoBC,OAApB,KAAgCC,wBAAwB,CAACF,WAAD,EAAcC,OAAd,CATb;AAUlDE,EAAAA,SAAS,EAAED,wBAVuC;AAWlDD,EAAAA,OAAO,EAAE;AAXyC,CAApD;;AAcA,SAASC,wBAAT,CAAkCF,WAAlC,EAA4DC,OAA5D,EAAkG;AAChG,MAAI,CAACD,WAAL,EAAkB,OAAO,IAAP;AAClB,SAAOX,QAAQ,CAACW,WAAD,EAAcZ,UAAd,CAAf;AACD;;AAED,eAAeE,yBAAf","sourcesContent":["import {LoaderOptions, LoaderWithParser} from '@loaders.gl/loader-utils';\n\nimport {Tile, TileReader} from './carto-properties-tile';\nimport {parsePbf} from './tile-loader-utils';\n\nconst CartoPropertiesTileLoader: LoaderWithParser = {\n name: 'CARTO Properties Tile',\n version: '1',\n id: 'cartoPropertiesTile',\n module: 'carto',\n extensions: ['pbf'],\n mimeTypes: ['application/vnd.carto-properties-tile'],\n category: 'geometry',\n worker: false,\n parse: async (arrayBuffer, options) => parseCartoPropertiesTile(arrayBuffer, options),\n parseSync: parseCartoPropertiesTile,\n options: {}\n};\n\nfunction parseCartoPropertiesTile(arrayBuffer: ArrayBuffer, options?: LoaderOptions): Tile | null {\n if (!arrayBuffer) return null;\n return parsePbf(arrayBuffer, TileReader);\n}\n\nexport default CartoPropertiesTileLoader;\n"],"file":"carto-properties-tile-loader.js"}
@@ -0,0 +1,18 @@
1
+ import { NumericPropKeyValueReader, PropertiesReader } from './carto-tile';
2
+ export class TileReader {
3
+ static read(pbf, end) {
4
+ return pbf.readFields(TileReader._readField, {
5
+ properties: [],
6
+ numericProps: {}
7
+ }, end);
8
+ }
9
+
10
+ static _readField(tag, obj, pbf) {
11
+ if (tag === 1) obj.properties.push(PropertiesReader.read(pbf, pbf.readVarint() + pbf.pos));else if (tag === 2) {
12
+ const entry = NumericPropKeyValueReader.read(pbf, pbf.readVarint() + pbf.pos);
13
+ obj.numericProps[entry.key] = entry.value;
14
+ }
15
+ }
16
+
17
+ }
18
+ //# sourceMappingURL=carto-properties-tile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/layers/schema/carto-properties-tile.ts"],"names":["NumericPropKeyValueReader","PropertiesReader","TileReader","read","pbf","end","readFields","_readField","properties","numericProps","tag","obj","push","readVarint","pos","entry","key","value"],"mappings":"AAAA,SAAqBA,yBAArB,EAAgDC,gBAAhD,QAAuE,cAAvE;AASA,OAAO,MAAMC,UAAN,CAAiB;AACX,SAAJC,IAAI,CAACC,GAAD,EAAMC,GAAN,EAA0B;AACnC,WAAOD,GAAG,CAACE,UAAJ,CAAeJ,UAAU,CAACK,UAA1B,EAAsC;AAACC,MAAAA,UAAU,EAAE,EAAb;AAAiBC,MAAAA,YAAY,EAAE;AAA/B,KAAtC,EAA0EJ,GAA1E,CAAP;AACD;;AACgB,SAAVE,UAAU,CAAaG,GAAb,EAA0BC,GAA1B,EAAqCP,GAArC,EAA0C;AACzD,QAAIM,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAACH,UAAJ,CAAeI,IAAf,CAAoBX,gBAAgB,CAACE,IAAjB,CAAsBC,GAAtB,EAA2BA,GAAG,CAACS,UAAJ,KAAmBT,GAAG,CAACU,GAAlD,CAApB,EAAf,KACK,IAAIJ,GAAG,KAAK,CAAZ,EAAe;AAClB,YAAMK,KAAK,GAAGf,yBAAyB,CAACG,IAA1B,CAA+BC,GAA/B,EAAoCA,GAAG,CAACS,UAAJ,KAAmBT,GAAG,CAACU,GAA3D,CAAd;AACAH,MAAAA,GAAG,CAACF,YAAJ,CAAiBM,KAAK,CAACC,GAAvB,IAA8BD,KAAK,CAACE,KAApC;AACD;AACF;;AAVqB","sourcesContent":["import {NumericProp, NumericPropKeyValueReader, PropertiesReader} from './carto-tile';\n\n// Tile ========================================\n\nexport interface Tile {\n properties: Record<string, string>[];\n numericProps: Record<string, NumericProp>;\n}\n\nexport class TileReader {\n static read(pbf, end?: number): Tile {\n return pbf.readFields(TileReader._readField, {properties: [], numericProps: {}}, end);\n }\n static _readField(this: void, tag: number, obj: Tile, pbf) {\n if (tag === 1) obj.properties.push(PropertiesReader.read(pbf, pbf.readVarint() + pbf.pos));\n else if (tag === 2) {\n const entry = NumericPropKeyValueReader.read(pbf, pbf.readVarint() + pbf.pos);\n obj.numericProps[entry.key] = entry.value;\n }\n }\n}\n"],"file":"carto-properties-tile.js"}
@@ -1,7 +1,7 @@
1
1
  import { TileReader } from './carto-raster-tile';
2
2
  import { parsePbf } from './tile-loader-utils';
3
3
  import { getWorkerUrl } from '../../utils';
4
- const VERSION = typeof "8.10.0-alpha.6" !== 'undefined' ? "8.10.0-alpha.6" : 'latest';
4
+ const VERSION = typeof "9.0.0-alpha.3" !== 'undefined' ? "9.0.0-alpha.3" : 'latest';
5
5
  const id = 'cartoRasterTile';
6
6
  const DEFAULT_OPTIONS = {
7
7
  cartoRasterTile: {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/layers/schema/carto-raster-tile-loader.ts"],"names":["TileReader","parsePbf","getWorkerUrl","VERSION","id","DEFAULT_OPTIONS","cartoRasterTile","workerUrl","CartoRasterTileLoader","name","version","module","extensions","mimeTypes","category","parse","arrayBuffer","options","parseCartoRasterTile","parseSync","worker","tile","bands","blockHeight","blockWidth","numericProps","i","length","data","cells","properties"],"mappings":"AAEA,SAAQA,UAAR,QAAyB,qBAAzB;AACA,SAAQC,QAAR,QAAuB,qBAAvB;AACA,SAAQC,YAAR,QAA2B,aAA3B;AAGA,MAAMC,OAAO,GAAG,4BAAuB,WAAvB,sBAAmD,QAAnE;AACA,MAAMC,EAAE,GAAG,iBAAX;AAQA,MAAMC,eAA6C,GAAG;AACpDC,EAAAA,eAAe,EAAE;AACfC,IAAAA,SAAS,EAAEL,YAAY,CAACE,EAAD,EAAKD,OAAL;AADR;AADmC,CAAtD;AAMA,MAAMK,qBAAuC,GAAG;AAC9CC,EAAAA,IAAI,EAAE,mBADwC;AAE9CC,EAAAA,OAAO,EAAEP,OAFqC;AAG9CC,EAAAA,EAH8C;AAI9CO,EAAAA,MAAM,EAAE,OAJsC;AAK9CC,EAAAA,UAAU,EAAE,CAAC,KAAD,CALkC;AAM9CC,EAAAA,SAAS,EAAE,CAAC,mCAAD,CANmC;AAO9CC,EAAAA,QAAQ,EAAE,UAPoC;AAQ9CC,EAAAA,KAAK,EAAE,OAAOC,WAAP,EAAoBC,OAApB,KACLC,oBAAoB,CAACF,WAAD,EAAcC,OAAd,CATwB;AAU9CE,EAAAA,SAAS,EAAED,oBAVmC;AAW9CE,EAAAA,MAAM,EAAE,IAXsC;AAY9CH,EAAAA,OAAO,EAAEZ;AAZqC,CAAhD;;AAwBA,SAASa,oBAAT,CACEF,WADF,EAEEC,OAFF,EAGiB;AACf,MAAI,CAACD,WAAL,EAAkB,OAAO,IAAP;AAClB,QAAMK,IAAI,GAAGpB,QAAQ,CAACe,WAAD,EAAchB,UAAd,CAArB;AACA,QAAM;AAACsB,IAAAA,KAAD;AAAQC,IAAAA,WAAR;AAAqBC,IAAAA;AAArB,MAAmCH,IAAzC;AACA,QAAMI,YAAY,GAAG,EAArB;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGJ,KAAK,CAACK,MAA1B,EAAkCD,CAAC,EAAnC,EAAuC;AACrC,UAAM;AAACjB,MAAAA,IAAD;AAAOmB,MAAAA;AAAP,QAAeN,KAAK,CAACI,CAAD,CAA1B;AACAD,IAAAA,YAAY,CAAChB,IAAD,CAAZ,GAAqBmB,IAArB;AACD;;AACD,SAAO;AAACJ,IAAAA,UAAD;AAAaD,IAAAA,WAAb;AAA0BM,IAAAA,KAAK,EAAE;AAACJ,MAAAA,YAAD;AAAeK,MAAAA,UAAU,EAAE;AAA3B;AAAjC,GAAP;AACD;;AAED,eAAetB,qBAAf","sourcesContent":["import {LoaderOptions, LoaderWithParser} from '@loaders.gl/loader-utils';\n\nimport {TileReader} from './carto-raster-tile';\nimport {parsePbf} from './tile-loader-utils';\nimport {getWorkerUrl} from '../../utils';\nimport {NumericProps, Properties} from './spatialjson-utils';\n\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\nconst id = 'cartoRasterTile';\n\ntype CartoRasterTileLoaderOptions = LoaderOptions & {\n cartoRasterTile?: {\n workerUrl: string;\n };\n};\n\nconst DEFAULT_OPTIONS: CartoRasterTileLoaderOptions = {\n cartoRasterTile: {\n workerUrl: getWorkerUrl(id, VERSION)\n }\n};\n\nconst CartoRasterTileLoader: LoaderWithParser = {\n name: 'CARTO Raster Tile',\n version: VERSION,\n id,\n module: 'carto',\n extensions: ['pbf'],\n mimeTypes: ['application/vnd.carto-raster-tile'],\n category: 'geometry',\n parse: async (arrayBuffer, options?: CartoRasterTileLoaderOptions) =>\n parseCartoRasterTile(arrayBuffer, options),\n parseSync: parseCartoRasterTile,\n worker: true,\n options: DEFAULT_OPTIONS\n};\n\nexport type Raster = {\n blockWidth: number;\n blockHeight: number;\n cells: {\n numericProps: NumericProps;\n properties: Properties[];\n };\n};\n\nfunction parseCartoRasterTile(\n arrayBuffer: ArrayBuffer,\n options?: CartoRasterTileLoaderOptions\n): Raster | null {\n if (!arrayBuffer) return null;\n const tile = parsePbf(arrayBuffer, TileReader);\n const {bands, blockHeight, blockWidth} = tile;\n const numericProps = {};\n for (let i = 0; i < bands.length; i++) {\n const {name, data} = bands[i];\n numericProps[name] = data;\n }\n return {blockWidth, blockHeight, cells: {numericProps, properties: []}};\n}\n\nexport default CartoRasterTileLoader;\n"],"file":"carto-raster-tile-loader.js"}
1
+ {"version":3,"sources":["../../../../src/layers/schema/carto-raster-tile-loader.ts"],"names":["TileReader","parsePbf","getWorkerUrl","VERSION","id","DEFAULT_OPTIONS","cartoRasterTile","workerUrl","CartoRasterTileLoader","name","version","module","extensions","mimeTypes","category","parse","arrayBuffer","options","parseCartoRasterTile","parseSync","worker","tile","bands","blockHeight","blockWidth","numericProps","i","length","data","cells","properties"],"mappings":"AAEA,SAAQA,UAAR,QAAyB,qBAAzB;AACA,SAAQC,QAAR,QAAuB,qBAAvB;AACA,SAAQC,YAAR,QAA2B,aAA3B;AAGA,MAAMC,OAAO,GAAG,2BAAuB,WAAvB,qBAAmD,QAAnE;AACA,MAAMC,EAAE,GAAG,iBAAX;AAQA,MAAMC,eAA6C,GAAG;AACpDC,EAAAA,eAAe,EAAE;AACfC,IAAAA,SAAS,EAAEL,YAAY,CAACE,EAAD,EAAKD,OAAL;AADR;AADmC,CAAtD;AAMA,MAAMK,qBAAuC,GAAG;AAC9CC,EAAAA,IAAI,EAAE,mBADwC;AAE9CC,EAAAA,OAAO,EAAEP,OAFqC;AAG9CC,EAAAA,EAH8C;AAI9CO,EAAAA,MAAM,EAAE,OAJsC;AAK9CC,EAAAA,UAAU,EAAE,CAAC,KAAD,CALkC;AAM9CC,EAAAA,SAAS,EAAE,CAAC,mCAAD,CANmC;AAO9CC,EAAAA,QAAQ,EAAE,UAPoC;AAQ9CC,EAAAA,KAAK,EAAE,OAAOC,WAAP,EAAoBC,OAApB,KACLC,oBAAoB,CAACF,WAAD,EAAcC,OAAd,CATwB;AAU9CE,EAAAA,SAAS,EAAED,oBAVmC;AAW9CE,EAAAA,MAAM,EAAE,IAXsC;AAY9CH,EAAAA,OAAO,EAAEZ;AAZqC,CAAhD;;AAwBA,SAASa,oBAAT,CACEF,WADF,EAEEC,OAFF,EAGiB;AACf,MAAI,CAACD,WAAL,EAAkB,OAAO,IAAP;AAClB,QAAMK,IAAI,GAAGpB,QAAQ,CAACe,WAAD,EAAchB,UAAd,CAArB;AACA,QAAM;AAACsB,IAAAA,KAAD;AAAQC,IAAAA,WAAR;AAAqBC,IAAAA;AAArB,MAAmCH,IAAzC;AACA,QAAMI,YAAY,GAAG,EAArB;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGJ,KAAK,CAACK,MAA1B,EAAkCD,CAAC,EAAnC,EAAuC;AACrC,UAAM;AAACjB,MAAAA,IAAD;AAAOmB,MAAAA;AAAP,QAAeN,KAAK,CAACI,CAAD,CAA1B;AACAD,IAAAA,YAAY,CAAChB,IAAD,CAAZ,GAAqBmB,IAArB;AACD;;AACD,SAAO;AAACJ,IAAAA,UAAD;AAAaD,IAAAA,WAAb;AAA0BM,IAAAA,KAAK,EAAE;AAACJ,MAAAA,YAAD;AAAeK,MAAAA,UAAU,EAAE;AAA3B;AAAjC,GAAP;AACD;;AAED,eAAetB,qBAAf","sourcesContent":["import {LoaderOptions, LoaderWithParser} from '@loaders.gl/loader-utils';\n\nimport {TileReader} from './carto-raster-tile';\nimport {parsePbf} from './tile-loader-utils';\nimport {getWorkerUrl} from '../../utils';\nimport {NumericProps, Properties} from './spatialjson-utils';\n\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\nconst id = 'cartoRasterTile';\n\ntype CartoRasterTileLoaderOptions = LoaderOptions & {\n cartoRasterTile?: {\n workerUrl: string;\n };\n};\n\nconst DEFAULT_OPTIONS: CartoRasterTileLoaderOptions = {\n cartoRasterTile: {\n workerUrl: getWorkerUrl(id, VERSION)\n }\n};\n\nconst CartoRasterTileLoader: LoaderWithParser = {\n name: 'CARTO Raster Tile',\n version: VERSION,\n id,\n module: 'carto',\n extensions: ['pbf'],\n mimeTypes: ['application/vnd.carto-raster-tile'],\n category: 'geometry',\n parse: async (arrayBuffer, options?: CartoRasterTileLoaderOptions) =>\n parseCartoRasterTile(arrayBuffer, options),\n parseSync: parseCartoRasterTile,\n worker: true,\n options: DEFAULT_OPTIONS\n};\n\nexport type Raster = {\n blockWidth: number;\n blockHeight: number;\n cells: {\n numericProps: NumericProps;\n properties: Properties[];\n };\n};\n\nfunction parseCartoRasterTile(\n arrayBuffer: ArrayBuffer,\n options?: CartoRasterTileLoaderOptions\n): Raster | null {\n if (!arrayBuffer) return null;\n const tile = parsePbf(arrayBuffer, TileReader);\n const {bands, blockHeight, blockWidth} = tile;\n const numericProps = {};\n for (let i = 0; i < bands.length; i++) {\n const {name, data} = bands[i];\n numericProps[name] = data;\n }\n return {blockWidth, blockHeight, cells: {numericProps, properties: []}};\n}\n\nexport default CartoRasterTileLoader;\n"],"file":"carto-raster-tile-loader.js"}
@@ -2,7 +2,7 @@ import { TileReader } from './carto-spatial-tile';
2
2
  import { parsePbf } from './tile-loader-utils';
3
3
  import { getWorkerUrl } from '../../utils';
4
4
  import { binaryToSpatialjson } from './spatialjson-utils';
5
- const VERSION = typeof "8.10.0-alpha.6" !== 'undefined' ? "8.10.0-alpha.6" : 'latest';
5
+ const VERSION = typeof "9.0.0-alpha.3" !== 'undefined' ? "9.0.0-alpha.3" : 'latest';
6
6
  const id = 'cartoSpatialTile';
7
7
  const DEFAULT_OPTIONS = {
8
8
  cartoSpatialTile: {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/layers/schema/carto-spatial-tile-loader.ts"],"names":["TileReader","parsePbf","getWorkerUrl","binaryToSpatialjson","VERSION","id","DEFAULT_OPTIONS","cartoSpatialTile","scheme","workerUrl","CartoSpatialTileLoader","name","version","module","extensions","mimeTypes","category","parse","arrayBuffer","options","parseCartoSpatialTile","parseSync","worker","tile","cells","data"],"mappings":"AAEA,SAAcA,UAAd,QAA+B,sBAA/B;AACA,SAAQC,QAAR,QAAuB,qBAAvB;AACA,SAAQC,YAAR,QAA2B,aAA3B;AACA,SAAqBC,mBAArB,QAA4D,qBAA5D;AAEA,MAAMC,OAAO,GAAG,4BAAuB,WAAvB,sBAAmD,QAAnE;AACA,MAAMC,EAAE,GAAG,kBAAX;AASA,MAAMC,eAA8C,GAAG;AACrDC,EAAAA,gBAAgB,EAAE;AAChBC,IAAAA,MAAM,EAAE,SADQ;AAEhBC,IAAAA,SAAS,EAAEP,YAAY,CAACG,EAAD,EAAKD,OAAL;AAFP;AADmC,CAAvD;AAOA,MAAMM,sBAAwC,GAAG;AAC/CC,EAAAA,IAAI,EAAE,oBADyC;AAE/CC,EAAAA,OAAO,EAAER,OAFsC;AAG/CC,EAAAA,EAH+C;AAI/CQ,EAAAA,MAAM,EAAE,OAJuC;AAK/CC,EAAAA,UAAU,EAAE,CAAC,KAAD,CALmC;AAM/CC,EAAAA,SAAS,EAAE,CAAC,oCAAD,CANoC;AAO/CC,EAAAA,QAAQ,EAAE,UAPqC;AAQ/CC,EAAAA,KAAK,EAAE,OAAOC,WAAP,EAAoBC,OAApB,KACLC,qBAAqB,CAACF,WAAD,EAAcC,OAAd,CATwB;AAU/CE,EAAAA,SAAS,EAAED,qBAVoC;AAW/CE,EAAAA,MAAM,EAAE,IAXuC;AAY/CH,EAAAA,OAAO,EAAEb;AAZsC,CAAjD;;AAeA,SAASc,qBAAT,CACEF,WADF,EAEEC,OAFF,EAGsB;AAAA;;AACpB,MAAI,CAACD,WAAL,EAAkB,OAAO,IAAP;AAClB,QAAMK,IAAU,GAAGtB,QAAQ,CAACiB,WAAD,EAAclB,UAAd,CAA3B;AAEA,QAAM;AAACwB,IAAAA;AAAD,MAAUD,IAAhB;AACA,QAAMf,MAAM,GAAGW,OAAH,aAAGA,OAAH,gDAAGA,OAAO,CAAEZ,gBAAZ,0DAAG,sBAA2BC,MAA1C;AACA,QAAMiB,IAAI,GAAG;AAACD,IAAAA,KAAD;AAAQhB,IAAAA;AAAR,GAAb;AAEA,SAAOL,mBAAmB,CAACsB,IAAD,CAA1B;AACD;;AAED,eAAef,sBAAf","sourcesContent":["import {LoaderOptions, LoaderWithParser} from '@loaders.gl/loader-utils';\n\nimport {Tile, TileReader} from './carto-spatial-tile';\nimport {parsePbf} from './tile-loader-utils';\nimport {getWorkerUrl} from '../../utils';\nimport {IndexScheme, binaryToSpatialjson, SpatialJson} from './spatialjson-utils';\n\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\nconst id = 'cartoSpatialTile';\n\ntype CartoSpatialTileLoaderOptions = LoaderOptions & {\n cartoSpatialTile?: {\n scheme: IndexScheme;\n workerUrl: string;\n };\n};\n\nconst DEFAULT_OPTIONS: CartoSpatialTileLoaderOptions = {\n cartoSpatialTile: {\n scheme: 'quadbin',\n workerUrl: getWorkerUrl(id, VERSION)\n }\n};\n\nconst CartoSpatialTileLoader: LoaderWithParser = {\n name: 'CARTO Spatial Tile',\n version: VERSION,\n id,\n module: 'carto',\n extensions: ['pbf'],\n mimeTypes: ['application/vnd.carto-spatial-tile'],\n category: 'geometry',\n parse: async (arrayBuffer, options?: CartoSpatialTileLoaderOptions) =>\n parseCartoSpatialTile(arrayBuffer, options),\n parseSync: parseCartoSpatialTile,\n worker: true,\n options: DEFAULT_OPTIONS\n};\n\nfunction parseCartoSpatialTile(\n arrayBuffer: ArrayBuffer,\n options?: CartoSpatialTileLoaderOptions\n): SpatialJson | null {\n if (!arrayBuffer) return null;\n const tile: Tile = parsePbf(arrayBuffer, TileReader);\n\n const {cells} = tile;\n const scheme = options?.cartoSpatialTile?.scheme;\n const data = {cells, scheme};\n\n return binaryToSpatialjson(data);\n}\n\nexport default CartoSpatialTileLoader;\n"],"file":"carto-spatial-tile-loader.js"}
1
+ {"version":3,"sources":["../../../../src/layers/schema/carto-spatial-tile-loader.ts"],"names":["TileReader","parsePbf","getWorkerUrl","binaryToSpatialjson","VERSION","id","DEFAULT_OPTIONS","cartoSpatialTile","scheme","workerUrl","CartoSpatialTileLoader","name","version","module","extensions","mimeTypes","category","parse","arrayBuffer","options","parseCartoSpatialTile","parseSync","worker","tile","cells","data"],"mappings":"AAEA,SAAcA,UAAd,QAA+B,sBAA/B;AACA,SAAQC,QAAR,QAAuB,qBAAvB;AACA,SAAQC,YAAR,QAA2B,aAA3B;AACA,SAAqBC,mBAArB,QAA4D,qBAA5D;AAEA,MAAMC,OAAO,GAAG,2BAAuB,WAAvB,qBAAmD,QAAnE;AACA,MAAMC,EAAE,GAAG,kBAAX;AASA,MAAMC,eAA8C,GAAG;AACrDC,EAAAA,gBAAgB,EAAE;AAChBC,IAAAA,MAAM,EAAE,SADQ;AAEhBC,IAAAA,SAAS,EAAEP,YAAY,CAACG,EAAD,EAAKD,OAAL;AAFP;AADmC,CAAvD;AAOA,MAAMM,sBAAwC,GAAG;AAC/CC,EAAAA,IAAI,EAAE,oBADyC;AAE/CC,EAAAA,OAAO,EAAER,OAFsC;AAG/CC,EAAAA,EAH+C;AAI/CQ,EAAAA,MAAM,EAAE,OAJuC;AAK/CC,EAAAA,UAAU,EAAE,CAAC,KAAD,CALmC;AAM/CC,EAAAA,SAAS,EAAE,CAAC,oCAAD,CANoC;AAO/CC,EAAAA,QAAQ,EAAE,UAPqC;AAQ/CC,EAAAA,KAAK,EAAE,OAAOC,WAAP,EAAoBC,OAApB,KACLC,qBAAqB,CAACF,WAAD,EAAcC,OAAd,CATwB;AAU/CE,EAAAA,SAAS,EAAED,qBAVoC;AAW/CE,EAAAA,MAAM,EAAE,IAXuC;AAY/CH,EAAAA,OAAO,EAAEb;AAZsC,CAAjD;;AAeA,SAASc,qBAAT,CACEF,WADF,EAEEC,OAFF,EAGsB;AAAA;;AACpB,MAAI,CAACD,WAAL,EAAkB,OAAO,IAAP;AAClB,QAAMK,IAAU,GAAGtB,QAAQ,CAACiB,WAAD,EAAclB,UAAd,CAA3B;AAEA,QAAM;AAACwB,IAAAA;AAAD,MAAUD,IAAhB;AACA,QAAMf,MAAM,GAAGW,OAAH,aAAGA,OAAH,gDAAGA,OAAO,CAAEZ,gBAAZ,0DAAG,sBAA2BC,MAA1C;AACA,QAAMiB,IAAI,GAAG;AAACD,IAAAA,KAAD;AAAQhB,IAAAA;AAAR,GAAb;AAEA,SAAOL,mBAAmB,CAACsB,IAAD,CAA1B;AACD;;AAED,eAAef,sBAAf","sourcesContent":["import {LoaderOptions, LoaderWithParser} from '@loaders.gl/loader-utils';\n\nimport {Tile, TileReader} from './carto-spatial-tile';\nimport {parsePbf} from './tile-loader-utils';\nimport {getWorkerUrl} from '../../utils';\nimport {IndexScheme, binaryToSpatialjson, SpatialJson} from './spatialjson-utils';\n\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\nconst id = 'cartoSpatialTile';\n\ntype CartoSpatialTileLoaderOptions = LoaderOptions & {\n cartoSpatialTile?: {\n scheme: IndexScheme;\n workerUrl: string;\n };\n};\n\nconst DEFAULT_OPTIONS: CartoSpatialTileLoaderOptions = {\n cartoSpatialTile: {\n scheme: 'quadbin',\n workerUrl: getWorkerUrl(id, VERSION)\n }\n};\n\nconst CartoSpatialTileLoader: LoaderWithParser = {\n name: 'CARTO Spatial Tile',\n version: VERSION,\n id,\n module: 'carto',\n extensions: ['pbf'],\n mimeTypes: ['application/vnd.carto-spatial-tile'],\n category: 'geometry',\n parse: async (arrayBuffer, options?: CartoSpatialTileLoaderOptions) =>\n parseCartoSpatialTile(arrayBuffer, options),\n parseSync: parseCartoSpatialTile,\n worker: true,\n options: DEFAULT_OPTIONS\n};\n\nfunction parseCartoSpatialTile(\n arrayBuffer: ArrayBuffer,\n options?: CartoSpatialTileLoaderOptions\n): SpatialJson | null {\n if (!arrayBuffer) return null;\n const tile: Tile = parsePbf(arrayBuffer, TileReader);\n\n const {cells} = tile;\n const scheme = options?.cartoSpatialTile?.scheme;\n const data = {cells, scheme};\n\n return binaryToSpatialjson(data);\n}\n\nexport default CartoSpatialTileLoader;\n"],"file":"carto-spatial-tile-loader.js"}
@@ -2,7 +2,7 @@ import earcut from 'earcut';
2
2
  import { TileReader } from './carto-tile';
3
3
  import { parsePbf } from './tile-loader-utils';
4
4
  import { getWorkerUrl } from '../../utils';
5
- const VERSION = typeof "8.10.0-alpha.6" !== 'undefined' ? "8.10.0-alpha.6" : 'latest';
5
+ const VERSION = typeof "9.0.0-alpha.3" !== 'undefined' ? "9.0.0-alpha.3" : 'latest';
6
6
  const id = 'cartoVectorTile';
7
7
  const DEFAULT_OPTIONS = {
8
8
  cartoVectorTile: {
@@ -43,7 +43,6 @@ function triangulatePolygon(polygons, target, {
43
43
  function triangulate(polygons) {
44
44
  const {
45
45
  polygonIndices,
46
- positions,
47
46
  primitivePolygonIndices
48
47
  } = polygons;
49
48
  const triangles = [];
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/layers/schema/carto-vector-tile-loader.ts"],"names":["earcut","TileReader","parsePbf","getWorkerUrl","VERSION","id","DEFAULT_OPTIONS","cartoVectorTile","workerUrl","CartoVectorTileLoader","name","version","module","extensions","mimeTypes","category","parse","arrayBuffer","options","parseCartoVectorTile","parseSync","worker","triangulatePolygon","polygons","target","startPosition","endPosition","indices","coordLength","positions","size","start","end","polygonPositions","value","subarray","holes","slice","map","n","triangles","t","tl","length","push","triangulate","polygonIndices","primitivePolygonIndices","rangeStart","i","rangeEnd","indexOf","Uint32Array","tile"],"mappings":"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","sourcesContent":["import earcut from 'earcut';\nimport {LoaderOptions, LoaderWithParser} from '@loaders.gl/loader-utils';\nimport type {BinaryFeatures, BinaryPolygonFeatures, TypedArray} from '@loaders.gl/schema';\n\nimport {TileReader} from './carto-tile';\nimport {parsePbf} from './tile-loader-utils';\nimport {getWorkerUrl} from '../../utils';\n\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\nconst id = 'cartoVectorTile';\n\ntype CartoVectorTileLoaderOptions = LoaderOptions & {\n cartoVectorTile?: {\n workerUrl: string;\n };\n};\n\nconst DEFAULT_OPTIONS: CartoVectorTileLoaderOptions = {\n cartoVectorTile: {\n workerUrl: getWorkerUrl(id, VERSION)\n }\n};\n\nconst CartoVectorTileLoader: LoaderWithParser = {\n name: 'CARTO Vector Tile',\n version: VERSION,\n id,\n module: 'carto',\n extensions: ['pbf'],\n mimeTypes: ['application/vnd.carto-vector-tile'],\n category: 'geometry',\n parse: async (arrayBuffer, options?: CartoVectorTileLoaderOptions) =>\n parseCartoVectorTile(arrayBuffer, options),\n parseSync: parseCartoVectorTile,\n worker: true,\n options: DEFAULT_OPTIONS\n};\n\nfunction triangulatePolygon(\n polygons: BinaryPolygonFeatures,\n target: number[],\n {\n startPosition,\n endPosition,\n indices\n }: {startPosition: number; endPosition: number; indices: TypedArray}\n): void {\n const coordLength = polygons.positions.size;\n const start = startPosition * coordLength;\n const end = endPosition * coordLength;\n\n // Extract positions and holes for just this polygon\n const polygonPositions = polygons.positions.value.subarray(start, end);\n\n // Holes are referenced relative to outer polygon\n const holes = indices.slice(1).map((n: number) => n - startPosition);\n\n // Compute triangulation\n const triangles = earcut(polygonPositions, holes, coordLength);\n\n // Indices returned by triangulation are relative to start\n // of polygon, so we need to offset\n for (let t = 0, tl = triangles.length; t < tl; ++t) {\n target.push(startPosition + triangles[t]);\n }\n}\n\nfunction triangulate(polygons: BinaryPolygonFeatures) {\n const {polygonIndices, positions, primitivePolygonIndices} = polygons;\n const triangles = [];\n\n let rangeStart = 0;\n for (let i = 0; i < polygonIndices.value.length - 1; i++) {\n const startPosition = polygonIndices.value[i];\n const endPosition = polygonIndices.value[i + 1];\n\n // Extract hole indices between start & end position\n const rangeEnd = primitivePolygonIndices.value.indexOf(endPosition);\n const indices = primitivePolygonIndices.value.subarray(rangeStart, rangeEnd);\n rangeStart = rangeEnd;\n\n triangulatePolygon(polygons, triangles, {startPosition, endPosition, indices});\n }\n\n polygons.triangles = {value: new Uint32Array(triangles), size: 1};\n}\n\nfunction parseCartoVectorTile(\n arrayBuffer: ArrayBuffer,\n options?: CartoVectorTileLoaderOptions\n): BinaryFeatures | null {\n if (!arrayBuffer) return null;\n const tile = parsePbf(arrayBuffer, TileReader);\n\n if (tile.polygons && !tile.polygons.triangles) {\n triangulate(tile.polygons);\n }\n\n return tile;\n}\n\nexport default CartoVectorTileLoader;\n"],"file":"carto-vector-tile-loader.js"}
1
+ {"version":3,"sources":["../../../../src/layers/schema/carto-vector-tile-loader.ts"],"names":["earcut","TileReader","parsePbf","getWorkerUrl","VERSION","id","DEFAULT_OPTIONS","cartoVectorTile","workerUrl","CartoVectorTileLoader","name","version","module","extensions","mimeTypes","category","parse","arrayBuffer","options","parseCartoVectorTile","parseSync","worker","triangulatePolygon","polygons","target","startPosition","endPosition","indices","coordLength","positions","size","start","end","polygonPositions","value","subarray","holes","slice","map","n","triangles","t","tl","length","push","triangulate","polygonIndices","primitivePolygonIndices","rangeStart","i","rangeEnd","indexOf","Uint32Array","tile"],"mappings":"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","sourcesContent":["import earcut from 'earcut';\nimport {LoaderOptions, LoaderWithParser} from '@loaders.gl/loader-utils';\nimport type {BinaryFeatureCollection, BinaryPolygonFeature, TypedArray} from '@loaders.gl/schema';\n\nimport {TileReader} from './carto-tile';\nimport {parsePbf} from './tile-loader-utils';\nimport {getWorkerUrl} from '../../utils';\n\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\nconst id = 'cartoVectorTile';\n\ntype CartoVectorTileLoaderOptions = LoaderOptions & {\n cartoVectorTile?: {\n workerUrl: string;\n };\n};\n\nconst DEFAULT_OPTIONS: CartoVectorTileLoaderOptions = {\n cartoVectorTile: {\n workerUrl: getWorkerUrl(id, VERSION)\n }\n};\n\nconst CartoVectorTileLoader: LoaderWithParser = {\n name: 'CARTO Vector Tile',\n version: VERSION,\n id,\n module: 'carto',\n extensions: ['pbf'],\n mimeTypes: ['application/vnd.carto-vector-tile'],\n category: 'geometry',\n parse: async (arrayBuffer, options?: CartoVectorTileLoaderOptions) =>\n parseCartoVectorTile(arrayBuffer, options),\n parseSync: parseCartoVectorTile,\n worker: true,\n options: DEFAULT_OPTIONS\n};\n\nfunction triangulatePolygon(\n polygons: BinaryPolygonFeature,\n target: number[],\n {\n startPosition,\n endPosition,\n indices\n }: {startPosition: number; endPosition: number; indices: TypedArray}\n): void {\n const coordLength = polygons.positions.size;\n const start = startPosition * coordLength;\n const end = endPosition * coordLength;\n\n // Extract positions and holes for just this polygon\n const polygonPositions = polygons.positions.value.subarray(start, end);\n\n // Holes are referenced relative to outer polygon\n const holes = indices.slice(1).map((n: number) => n - startPosition);\n\n // Compute triangulation\n const triangles = earcut(polygonPositions, holes, coordLength);\n\n // Indices returned by triangulation are relative to start\n // of polygon, so we need to offset\n for (let t = 0, tl = triangles.length; t < tl; ++t) {\n target.push(startPosition + triangles[t]);\n }\n}\n\nfunction triangulate(polygons: BinaryPolygonFeature) {\n const {polygonIndices, primitivePolygonIndices} = polygons;\n const triangles = [];\n\n let rangeStart = 0;\n for (let i = 0; i < polygonIndices.value.length - 1; i++) {\n const startPosition = polygonIndices.value[i];\n const endPosition = polygonIndices.value[i + 1];\n\n // Extract hole indices between start & end position\n const rangeEnd = primitivePolygonIndices.value.indexOf(endPosition);\n const indices = primitivePolygonIndices.value.subarray(rangeStart, rangeEnd);\n rangeStart = rangeEnd;\n\n triangulatePolygon(polygons, triangles, {startPosition, endPosition, indices});\n }\n\n polygons.triangles = {value: new Uint32Array(triangles), size: 1};\n}\n\nfunction parseCartoVectorTile(\n arrayBuffer: ArrayBuffer,\n options?: CartoVectorTileLoaderOptions\n): BinaryFeatureCollection | null {\n if (!arrayBuffer) return null;\n const tile = parsePbf(arrayBuffer, TileReader);\n\n if (tile.polygons && !tile.polygons.triangles) {\n triangulate(tile.polygons);\n }\n\n return tile;\n}\n\nexport default CartoVectorTileLoader;\n"],"file":"carto-vector-tile-loader.js"}
@@ -8,23 +8,11 @@ function isFeatureIdDefined(value) {
8
8
  return value !== undefined && value !== null && value !== '';
9
9
  }
10
10
 
11
- const defaultProps = {
12
- aggregationResLevel: 4
13
- };
11
+ const defaultProps = {};
14
12
  export default class SpatialIndexTileLayer extends TileLayer {
15
- updateState(params) {
16
- const {
17
- props,
18
- oldProps
19
- } = params;
20
-
21
- if (props.aggregationResLevel !== oldProps.aggregationResLevel) {
22
- this.setState({
23
- tileset: null
24
- });
25
- }
26
-
27
- super.updateState(params);
13
+ constructor(...args) {
14
+ super(...args);
15
+ this.state = void 0;
28
16
  }
29
17
 
30
18
  _updateAutoHighlight(info) {
@@ -76,20 +64,17 @@ export default class SpatialIndexTileLayer extends TileLayer {
76
64
  }
77
65
 
78
66
  _featureInTile(tile, featureId) {
79
- const {
80
- getTileZoom,
81
- getParentIndex
82
- } = this.state.tileset;
83
- const tileZoom = getTileZoom(tile.index);
67
+ const tileset = this.state.tileset;
68
+ const tileZoom = tileset.getTileZoom(tile.index);
84
69
  const KEY = tile.index.q ? 'q' : 'i';
85
70
  let featureIndex = {
86
71
  [KEY]: featureId
87
72
  };
88
- let featureZoom = getTileZoom(featureIndex);
73
+ let featureZoom = tileset.getTileZoom(featureIndex);
89
74
 
90
75
  while (!(featureZoom <= tileZoom)) {
91
- featureIndex = getParentIndex(featureIndex);
92
- featureZoom = getTileZoom(featureIndex);
76
+ featureIndex = tileset.getParentIndex(featureIndex);
77
+ featureZoom = tileset.getTileZoom(featureIndex);
93
78
  }
94
79
 
95
80
  return featureIndex[KEY] === tile.index[KEY];
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/layers/spatial-index-tile-layer.ts"],"names":["registerLoaders","CartoRasterTileLoader","CartoSpatialTileLoader","TileLayer","isFeatureIdDefined","value","undefined","defaultProps","aggregationResLevel","SpatialIndexTileLayer","updateState","params","props","oldProps","setState","tileset","_updateAutoHighlight","info","hoveredFeatureId","state","hoveredFeature","object","newHoveredFeatureId","id","highlightColor","getSubLayerPropsByTile","tile","highlightedObjectIndex","getHighlightedObjectIndex","data","content","isFeatureIdPresent","Array","isArray","_featureInTile","findIndex","feature","featureId","getTileZoom","getParentIndex","tileZoom","index","KEY","q","featureIndex","featureZoom","layerName"],"mappings":"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","sourcesContent":["import {registerLoaders} from '@loaders.gl/core';\nimport {DefaultProps, UpdateParameters} from '@deck.gl/core';\nimport CartoRasterTileLoader from './schema/carto-raster-tile-loader';\nimport CartoSpatialTileLoader from './schema/carto-spatial-tile-loader';\nregisterLoaders([CartoRasterTileLoader, CartoSpatialTileLoader]);\n\nimport {PickingInfo} from '@deck.gl/core';\nimport {TileLayer, _Tile2DHeader as Tile2DHeader} from '@deck.gl/geo-layers';\n\nfunction isFeatureIdDefined(value: unknown): boolean {\n return value !== undefined && value !== null && value !== '';\n}\n\nconst defaultProps: DefaultProps<SpatialIndexTileLayerProps> = {\n aggregationResLevel: 4\n};\n\n/** All properties supported by SpatialIndexTileLayer. */\nexport type SpatialIndexTileLayerProps<DataT = any> = _SpatialIndexTileLayerProps &\n TileLayer<DataT>;\n\n/** Properties added by SpatialIndexTileLayer. */\ntype _SpatialIndexTileLayerProps = {\n aggregationResLevel?: number;\n};\n\nexport default class SpatialIndexTileLayer<\n DataT = any,\n ExtraProps extends {} = {}\n> extends TileLayer<DataT, ExtraProps & Required<_SpatialIndexTileLayerProps>> {\n static layerName = 'SpatialIndexTileLayer';\n static defaultProps = defaultProps;\n\n updateState(params: UpdateParameters<this>) {\n const {props, oldProps} = params;\n if (props.aggregationResLevel !== oldProps.aggregationResLevel) {\n // Tileset cache is invalid when resLevel changes\n this.setState({tileset: null});\n }\n\n super.updateState(params);\n }\n\n protected _updateAutoHighlight(info: PickingInfo): void {\n const {hoveredFeatureId} = this.state;\n const hoveredFeature = info.object;\n let newHoveredFeatureId;\n\n if (hoveredFeature) {\n newHoveredFeatureId = hoveredFeature.id;\n }\n\n if (hoveredFeatureId !== newHoveredFeatureId) {\n let {highlightColor} = this.props;\n if (typeof highlightColor === 'function') {\n highlightColor = highlightColor(info);\n }\n\n this.setState({\n highlightColor,\n hoveredFeatureId: newHoveredFeatureId\n });\n }\n }\n\n getSubLayerPropsByTile(tile: Tile2DHeader) {\n return {\n highlightedObjectIndex: this.getHighlightedObjectIndex(tile),\n highlightColor: this.state.highlightColor\n };\n }\n\n getHighlightedObjectIndex(tile: Tile2DHeader) {\n const {hoveredFeatureId} = this.state;\n const data = tile.content;\n\n const isFeatureIdPresent = isFeatureIdDefined(hoveredFeatureId);\n if (\n !isFeatureIdPresent ||\n !Array.isArray(data) ||\n // Quick check for whether id is within tile. data.findIndex is expensive\n !this._featureInTile(tile, hoveredFeatureId)\n ) {\n return -1;\n }\n\n return data.findIndex(feature => feature.id === hoveredFeatureId);\n }\n\n _featureInTile(tile: Tile2DHeader, featureId: BigInt | number) {\n const {getTileZoom, getParentIndex} = this.state.tileset;\n const tileZoom = getTileZoom(tile.index);\n // @ts-ignore\n const KEY = tile.index.q ? 'q' : 'i';\n let featureIndex = {[KEY]: featureId};\n let featureZoom = getTileZoom(featureIndex);\n while (!(featureZoom <= tileZoom)) {\n featureIndex = getParentIndex(featureIndex);\n featureZoom = getTileZoom(featureIndex);\n }\n\n return featureIndex[KEY] === tile.index[KEY];\n }\n}\n"],"file":"spatial-index-tile-layer.js"}
1
+ {"version":3,"sources":["../../../src/layers/spatial-index-tile-layer.ts"],"names":["registerLoaders","CartoRasterTileLoader","CartoSpatialTileLoader","TileLayer","isFeatureIdDefined","value","undefined","defaultProps","SpatialIndexTileLayer","state","_updateAutoHighlight","info","hoveredFeatureId","hoveredFeature","object","newHoveredFeatureId","id","highlightColor","props","setState","getSubLayerPropsByTile","tile","highlightedObjectIndex","getHighlightedObjectIndex","data","content","isFeatureIdPresent","Array","isArray","_featureInTile","findIndex","feature","featureId","tileset","tileZoom","getTileZoom","index","KEY","q","featureIndex","featureZoom","getParentIndex","layerName"],"mappings":"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","sourcesContent":["import {registerLoaders} from '@loaders.gl/core';\nimport {DefaultProps} from '@deck.gl/core';\nimport CartoRasterTileLoader from './schema/carto-raster-tile-loader';\nimport CartoSpatialTileLoader from './schema/carto-spatial-tile-loader';\nregisterLoaders([CartoRasterTileLoader, CartoSpatialTileLoader]);\n\nimport {PickingInfo} from '@deck.gl/core';\nimport {TileLayer, _Tile2DHeader as Tile2DHeader, TileLayerProps} from '@deck.gl/geo-layers';\n\nfunction isFeatureIdDefined(value: unknown): boolean {\n return value !== undefined && value !== null && value !== '';\n}\n\nconst defaultProps: DefaultProps<SpatialIndexTileLayerProps> = {};\n\n/** All properties supported by SpatialIndexTileLayer. */\nexport type SpatialIndexTileLayerProps<DataT = unknown> = _SpatialIndexTileLayerProps &\n TileLayerProps<DataT>;\n\n/** Properties added by SpatialIndexTileLayer. */\ntype _SpatialIndexTileLayerProps = {};\n\nexport default class SpatialIndexTileLayer<\n DataT = any,\n ExtraProps extends {} = {}\n> extends TileLayer<DataT, ExtraProps & Required<_SpatialIndexTileLayerProps>> {\n static layerName = 'SpatialIndexTileLayer';\n static defaultProps = defaultProps;\n\n state!: TileLayer<DataT>['state'] & {\n hoveredFeatureId: number | null;\n highlightColor: number[];\n };\n\n protected _updateAutoHighlight(info: PickingInfo): void {\n const {hoveredFeatureId} = this.state;\n const hoveredFeature = info.object;\n let newHoveredFeatureId;\n\n if (hoveredFeature) {\n newHoveredFeatureId = hoveredFeature.id;\n }\n\n if (hoveredFeatureId !== newHoveredFeatureId) {\n let {highlightColor} = this.props;\n if (typeof highlightColor === 'function') {\n highlightColor = highlightColor(info);\n }\n\n this.setState({\n highlightColor,\n hoveredFeatureId: newHoveredFeatureId\n });\n }\n }\n\n getSubLayerPropsByTile(tile: Tile2DHeader) {\n return {\n highlightedObjectIndex: this.getHighlightedObjectIndex(tile),\n highlightColor: this.state.highlightColor\n };\n }\n\n getHighlightedObjectIndex(tile: Tile2DHeader) {\n const {hoveredFeatureId} = this.state;\n const data = tile.content;\n\n const isFeatureIdPresent = isFeatureIdDefined(hoveredFeatureId);\n if (\n !isFeatureIdPresent ||\n !Array.isArray(data) ||\n // Quick check for whether id is within tile. data.findIndex is expensive\n !this._featureInTile(tile, hoveredFeatureId!)\n ) {\n return -1;\n }\n\n return data.findIndex(feature => feature.id === hoveredFeatureId);\n }\n\n _featureInTile(tile: Tile2DHeader, featureId: BigInt | number) {\n const tileset = this.state.tileset!;\n const tileZoom = tileset.getTileZoom(tile.index);\n // @ts-ignore\n const KEY = tile.index.q ? 'q' : 'i';\n // TODO - Tileset2D methods expect tile index in the shape of {x, y, z}\n let featureIndex: any = {[KEY]: featureId};\n let featureZoom = tileset.getTileZoom(featureIndex);\n while (!(featureZoom <= tileZoom)) {\n featureIndex = tileset.getParentIndex(featureIndex);\n featureZoom = tileset.getTileZoom(featureIndex);\n }\n\n return featureIndex[KEY] === tile.index[KEY];\n }\n}\n"],"file":"spatial-index-tile-layer.js"}
@@ -1,3 +1,4 @@
1
+ import { _deepEqual as deepEqual } from '@deck.gl/core';
1
2
  export function injectAccessToken(loadOptions, accessToken) {
2
3
  var _loadOptions$fetch, _loadOptions$fetch$he;
3
4
 
@@ -11,4 +12,73 @@ export function injectAccessToken(loadOptions, accessToken) {
11
12
  };
12
13
  }
13
14
  }
15
+ export function mergeBoundaryData(geometry, properties) {
16
+ const mapping = {};
17
+
18
+ for (const {
19
+ geoid,
20
+ ...rest
21
+ } of properties.properties) {
22
+ if (geoid in mapping) {
23
+ throw new Error(`Duplicate geoid key in mapping: ${geoid}`);
24
+ }
25
+
26
+ mapping[geoid] = rest;
27
+ }
28
+
29
+ for (const type of ['points', 'lines', 'polygons']) {
30
+ const geom = geometry[type];
31
+
32
+ if (geom.positions.value.length === 0) {
33
+ continue;
34
+ }
35
+
36
+ geom.properties = geom.properties.map(({
37
+ geoid
38
+ }) => mapping[geoid]);
39
+ const {
40
+ positions,
41
+ globalFeatureIds
42
+ } = geom;
43
+ let indices = null;
44
+ if (type === 'lines') indices = geom.pathIndices.value;
45
+ if (type === 'polygons') indices = geom.polygonIndices.value;
46
+ const length = positions.value.length / positions.size;
47
+
48
+ for (const key in properties.numericProps) {
49
+ const sourceProp = properties.numericProps[key].value;
50
+ const TypedArray = sourceProp.constructor;
51
+ const destProp = new TypedArray(length);
52
+ geom.numericProps[key] = {
53
+ value: destProp,
54
+ size: 1
55
+ };
56
+
57
+ if (!indices) {
58
+ for (let i = 0; i < length; i++) {
59
+ const featureId = globalFeatureIds.value[i];
60
+ destProp[i] = sourceProp[featureId];
61
+ }
62
+ } else {
63
+ for (let i = 0; i < indices.length - 1; i++) {
64
+ const startIndex = indices[i];
65
+ const endIndex = indices[i + 1];
66
+ const featureId = globalFeatureIds.value[startIndex];
67
+ destProp.fill(sourceProp[featureId], startIndex, endIndex);
68
+ }
69
+ }
70
+ }
71
+ }
72
+
73
+ return geometry;
74
+ }
75
+ export const TilejsonPropType = {
76
+ type: 'object',
77
+ value: null,
78
+ validate: (value, propType) => propType.optional && value === null || typeof value === 'object' && Array.isArray(value.tiles) && value.tiles.every(url => typeof url === 'string'),
79
+ equal: (value1, value2) => {
80
+ return deepEqual(value1, value2, 2);
81
+ },
82
+ async: true
83
+ };
14
84
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/layers/utils.ts"],"names":["injectAccessToken","loadOptions","accessToken","fetch","headers","Authorization"],"mappings":"AAGA,OAAO,SAASA,iBAAT,CAA2BC,WAA3B,EAA6CC,WAA7C,EAAwE;AAAA;;AAC7E,MAAI,EAACD,WAAD,aAACA,WAAD,qCAACA,WAAW,CAAEE,KAAd,wEAAC,mBAAoBC,OAArB,kDAAC,sBAA6BC,aAA9B,CAAJ,EAAiD;AAAA;;AAC/CJ,IAAAA,WAAW,CAACE,KAAZ,GAAoB,EAClB,GAAGF,WAAW,CAACE,KADG;AAElBC,MAAAA,OAAO,EAAE,EAAC,2BAAGH,WAAW,CAACE,KAAf,wDAAG,oBAAmBC,OAAtB,CAAD;AAAgCC,QAAAA,aAAa,EAAG,UAASH,WAAY;AAArE;AAFS,KAApB;AAID;AACF","sourcesContent":["/**\n * Adds access token to Authorization header in loadOptions\n */\nexport function injectAccessToken(loadOptions: any, accessToken: string): void {\n if (!loadOptions?.fetch?.headers?.Authorization) {\n loadOptions.fetch = {\n ...loadOptions.fetch,\n headers: {...loadOptions.fetch?.headers, Authorization: `Bearer ${accessToken}`}\n };\n }\n}\n"],"file":"utils.js"}
1
+ {"version":3,"sources":["../../../src/layers/utils.ts"],"names":["_deepEqual","deepEqual","injectAccessToken","loadOptions","accessToken","fetch","headers","Authorization","mergeBoundaryData","geometry","properties","mapping","geoid","rest","Error","type","geom","positions","value","length","map","globalFeatureIds","indices","pathIndices","polygonIndices","size","key","numericProps","sourceProp","TypedArray","constructor","destProp","i","featureId","startIndex","endIndex","fill","TilejsonPropType","validate","propType","optional","Array","isArray","tiles","every","url","equal","value1","value2","async"],"mappings":"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","sourcesContent":["import {Tile as PropertiesTile} from './schema/carto-properties-tile';\nimport {Tile as VectorTile} from './schema/carto-tile';\nimport {_deepEqual as deepEqual} from '@deck.gl/core';\nimport type {TilejsonResult} from '../sources/types';\n\n/**\n * Adds access token to Authorization header in loadOptions\n */\nexport function injectAccessToken(loadOptions: any, accessToken: string): void {\n if (!loadOptions?.fetch?.headers?.Authorization) {\n loadOptions.fetch = {\n ...loadOptions.fetch,\n headers: {...loadOptions.fetch?.headers, Authorization: `Bearer ${accessToken}`}\n };\n }\n}\n\nexport function mergeBoundaryData(geometry: VectorTile, properties: PropertiesTile): VectorTile {\n const mapping = {};\n for (const {geoid, ...rest} of properties.properties) {\n if (geoid in mapping) {\n throw new Error(`Duplicate geoid key in mapping: ${geoid}`);\n }\n mapping[geoid] = rest;\n }\n\n for (const type of ['points', 'lines', 'polygons']) {\n const geom = geometry[type];\n if (geom.positions.value.length === 0) {\n continue;\n }\n\n geom.properties = geom.properties.map(({geoid}) => mapping[geoid]);\n\n // numericProps need to be filled to match length of positions buffer\n const {positions, globalFeatureIds} = geom;\n let indices: Uint16Array | Uint32Array | null = null;\n if (type === 'lines') indices = geom.pathIndices.value;\n if (type === 'polygons') indices = geom.polygonIndices.value;\n const length = positions.value.length / positions.size;\n for (const key in properties.numericProps) {\n const sourceProp = properties.numericProps[key].value;\n const TypedArray = sourceProp.constructor as\n | Float32ArrayConstructor\n | Float64ArrayConstructor;\n const destProp = new TypedArray(length);\n geom.numericProps[key] = {value: destProp, size: 1};\n\n if (!indices) {\n for (let i = 0; i < length; i++) {\n // points\n const featureId = globalFeatureIds.value[i];\n destProp[i] = sourceProp[featureId];\n }\n } else {\n // lines|polygons\n for (let i = 0; i < indices.length - 1; i++) {\n const startIndex = indices[i];\n const endIndex = indices[i + 1];\n const featureId = globalFeatureIds.value[startIndex];\n destProp.fill(sourceProp[featureId], startIndex, endIndex);\n }\n }\n }\n }\n\n return geometry;\n}\n\nexport const TilejsonPropType = {\n type: 'object' as const,\n value: null as null | TilejsonResult,\n validate: (value: TilejsonResult, propType) =>\n (propType.optional && value === null) ||\n (typeof value === 'object' &&\n Array.isArray(value.tiles) &&\n value.tiles.every(url => typeof url === 'string')),\n equal: (value1, value2) => {\n return deepEqual(value1, value2, 2);\n },\n async: true\n};\n"],"file":"utils.js"}