@deck.gl/carto 8.10.0-alpha.2 → 8.10.0-alpha.5

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 (296) hide show
  1. package/LICENSE +1 -1
  2. package/dist/cartoRasterTile-worker.js +1084 -0
  3. package/dist/cartoSpatialTile-worker.js +1469 -0
  4. package/dist/cartoVectorTile-worker.js +1727 -0
  5. package/dist/dist.dev.js +2137 -1936
  6. package/dist/es5/api/carto-api-error.js +3 -7
  7. package/dist/es5/api/carto-api-error.js.map +1 -1
  8. package/dist/es5/api/layer-map.js +3 -7
  9. package/dist/es5/api/layer-map.js.map +1 -1
  10. package/dist/es5/api/maps-api-common.js +0 -1
  11. package/dist/es5/api/maps-api-common.js.map +1 -1
  12. package/dist/es5/api/maps-v3-client.js +5 -20
  13. package/dist/es5/api/maps-v3-client.js.map +1 -1
  14. package/dist/es5/index.js +74 -6
  15. package/dist/es5/index.js.map +1 -1
  16. package/dist/es5/layers/carto-layer.js +196 -200
  17. package/dist/es5/layers/carto-layer.js.map +1 -1
  18. package/dist/es5/layers/h3-tile-layer.js +57 -79
  19. package/dist/es5/layers/h3-tile-layer.js.map +1 -1
  20. package/dist/es5/layers/h3-tileset-2d.js +62 -68
  21. package/dist/es5/layers/h3-tileset-2d.js.map +1 -1
  22. package/dist/es5/layers/point-label-layer.js +160 -165
  23. package/dist/es5/layers/point-label-layer.js.map +1 -1
  24. package/dist/es5/layers/quadbin-layer.js +23 -27
  25. package/dist/es5/layers/quadbin-layer.js.map +1 -1
  26. package/dist/es5/layers/quadbin-tile-layer.js +39 -63
  27. package/dist/es5/layers/quadbin-tile-layer.js.map +1 -1
  28. package/dist/es5/layers/quadbin-tileset-2d.js +32 -38
  29. package/dist/es5/layers/quadbin-tileset-2d.js.map +1 -1
  30. package/dist/es5/layers/raster-layer.js +94 -98
  31. package/dist/es5/layers/raster-layer.js.map +1 -1
  32. package/dist/es5/layers/raster-tile-layer.js +37 -58
  33. package/dist/es5/layers/raster-tile-layer.js.map +1 -1
  34. package/dist/es5/layers/schema/carto-raster-tile-loader.js +13 -4
  35. package/dist/es5/layers/schema/carto-raster-tile-loader.js.map +1 -1
  36. package/dist/es5/layers/schema/carto-raster-tile.js +31 -39
  37. package/dist/es5/layers/schema/carto-raster-tile.js.map +1 -1
  38. package/dist/es5/layers/schema/carto-spatial-tile-loader.js +14 -8
  39. package/dist/es5/layers/schema/carto-spatial-tile-loader.js.map +1 -1
  40. package/dist/es5/layers/schema/carto-spatial-tile.js +36 -47
  41. package/dist/es5/layers/schema/carto-spatial-tile.js.map +1 -1
  42. package/dist/es5/layers/schema/carto-tile.js +161 -196
  43. package/dist/es5/layers/schema/carto-tile.js.map +1 -1
  44. package/dist/es5/layers/schema/carto-vector-tile-loader.js +64 -4
  45. package/dist/es5/layers/schema/carto-vector-tile-loader.js.map +1 -1
  46. package/dist/es5/layers/spatial-index-tile-layer.js +67 -73
  47. package/dist/es5/layers/spatial-index-tile-layer.js.map +1 -1
  48. package/dist/es5/layers/utils.js +29 -0
  49. package/dist/es5/layers/utils.js.map +1 -0
  50. package/dist/es5/layers/vector-tile-layer.js +163 -0
  51. package/dist/es5/layers/vector-tile-layer.js.map +1 -0
  52. package/dist/es5/sources/base-source.js +100 -0
  53. package/dist/es5/sources/base-source.js.map +1 -0
  54. package/dist/es5/sources/common.js +48 -0
  55. package/dist/es5/sources/common.js.map +1 -0
  56. package/dist/es5/sources/h3-query-source.js +58 -0
  57. package/dist/es5/sources/h3-query-source.js.map +1 -0
  58. package/dist/es5/sources/h3-table-source.js +58 -0
  59. package/dist/es5/sources/h3-table-source.js.map +1 -0
  60. package/dist/es5/sources/h3-tileset-source.js +43 -0
  61. package/dist/es5/sources/h3-tileset-source.js.map +1 -0
  62. package/dist/es5/sources/index.js +94 -0
  63. package/dist/es5/sources/index.js.map +1 -0
  64. package/dist/es5/sources/quadbin-query-source.js +58 -0
  65. package/dist/es5/sources/quadbin-query-source.js.map +1 -0
  66. package/dist/es5/sources/quadbin-table-source.js +58 -0
  67. package/dist/es5/sources/quadbin-table-source.js.map +1 -0
  68. package/dist/es5/sources/quadbin-tileset-source.js +43 -0
  69. package/dist/es5/sources/quadbin-tileset-source.js.map +1 -0
  70. package/dist/es5/sources/raster-source.js +43 -0
  71. package/dist/es5/sources/raster-source.js.map +1 -0
  72. package/dist/es5/sources/utils.js +136 -0
  73. package/dist/es5/sources/utils.js.map +1 -0
  74. package/dist/es5/sources/vector-query-source.js +52 -0
  75. package/dist/es5/sources/vector-query-source.js.map +1 -0
  76. package/dist/es5/sources/vector-table-source.js +52 -0
  77. package/dist/es5/sources/vector-table-source.js.map +1 -0
  78. package/dist/es5/sources/vector-tileset-source.js +43 -0
  79. package/dist/es5/sources/vector-tileset-source.js.map +1 -0
  80. package/dist/es5/utils.js +5 -0
  81. package/dist/es5/utils.js.map +1 -1
  82. package/dist/es5/workers/cartoRasterTile.js +10 -0
  83. package/dist/es5/workers/cartoRasterTile.js.map +1 -0
  84. package/dist/es5/workers/cartoSpatialTile.js +10 -0
  85. package/dist/es5/workers/cartoSpatialTile.js.map +1 -0
  86. package/dist/es5/workers/cartoVectorTile.js +10 -0
  87. package/dist/es5/workers/cartoVectorTile.js.map +1 -0
  88. package/dist/esm/api/carto-api-error.js +8 -13
  89. package/dist/esm/api/carto-api-error.js.map +1 -1
  90. package/dist/esm/api/layer-map.js +7 -11
  91. package/dist/esm/api/layer-map.js.map +1 -1
  92. package/dist/esm/api/maps-api-common.js +3 -4
  93. package/dist/esm/api/maps-api-common.js.map +1 -1
  94. package/dist/esm/api/maps-client.js +7 -7
  95. package/dist/esm/api/maps-client.js.map +1 -1
  96. package/dist/esm/api/maps-v3-client.js +14 -24
  97. package/dist/esm/api/maps-v3-client.js.map +1 -1
  98. package/dist/esm/api/parseMap.js +4 -4
  99. package/dist/esm/api/parseMap.js.map +1 -1
  100. package/dist/esm/config.js +3 -3
  101. package/dist/esm/config.js.map +1 -1
  102. package/dist/esm/index.js +5 -4
  103. package/dist/esm/index.js.map +1 -1
  104. package/dist/esm/layers/carto-layer.js +12 -15
  105. package/dist/esm/layers/carto-layer.js.map +1 -1
  106. package/dist/esm/layers/h3-tile-layer.js +24 -43
  107. package/dist/esm/layers/h3-tile-layer.js.map +1 -1
  108. package/dist/esm/layers/point-label-layer.js +6 -10
  109. package/dist/esm/layers/point-label-layer.js.map +1 -1
  110. package/dist/esm/layers/quadbin-layer.js +2 -5
  111. package/dist/esm/layers/quadbin-layer.js.map +1 -1
  112. package/dist/esm/layers/quadbin-tile-layer.js +21 -44
  113. package/dist/esm/layers/quadbin-tile-layer.js.map +1 -1
  114. package/dist/esm/layers/raster-layer-vertex.glsl.js +98 -1
  115. package/dist/esm/layers/raster-layer-vertex.glsl.js.map +1 -1
  116. package/dist/esm/layers/raster-layer.js +4 -8
  117. package/dist/esm/layers/raster-layer.js.map +1 -1
  118. package/dist/esm/layers/raster-tile-layer.js +21 -39
  119. package/dist/esm/layers/raster-tile-layer.js.map +1 -1
  120. package/dist/esm/layers/schema/carto-raster-tile-loader.js +12 -4
  121. package/dist/esm/layers/schema/carto-raster-tile-loader.js.map +1 -1
  122. package/dist/esm/layers/schema/carto-raster-tile.js +1 -1
  123. package/dist/esm/layers/schema/carto-raster-tile.js.map +1 -1
  124. package/dist/esm/layers/schema/carto-spatial-tile-loader.js +13 -8
  125. package/dist/esm/layers/schema/carto-spatial-tile-loader.js.map +1 -1
  126. package/dist/esm/layers/schema/carto-tile.js +1 -1
  127. package/dist/esm/layers/schema/carto-tile.js.map +1 -1
  128. package/dist/esm/layers/schema/carto-vector-tile-loader.js +63 -4
  129. package/dist/esm/layers/schema/carto-vector-tile-loader.js.map +1 -1
  130. package/dist/esm/layers/spatial-index-tile-layer.js +2 -5
  131. package/dist/esm/layers/spatial-index-tile-layer.js.map +1 -1
  132. package/dist/esm/layers/utils.js +14 -0
  133. package/dist/esm/layers/utils.js.map +1 -0
  134. package/dist/esm/layers/{carto-tile-layer.js → vector-tile-layer.js} +39 -18
  135. package/dist/esm/layers/vector-tile-layer.js.map +1 -0
  136. package/dist/esm/sources/base-source.js +49 -0
  137. package/dist/esm/sources/base-source.js.map +1 -0
  138. package/dist/esm/sources/common.js +26 -0
  139. package/dist/esm/sources/common.js.map +1 -0
  140. package/dist/esm/sources/h3-query-source.js +32 -0
  141. package/dist/esm/sources/h3-query-source.js.map +1 -0
  142. package/dist/esm/sources/h3-table-source.js +32 -0
  143. package/dist/esm/sources/h3-table-source.js.map +1 -0
  144. package/dist/esm/sources/h3-tileset-source.js +14 -0
  145. package/dist/esm/sources/h3-tileset-source.js.map +1 -0
  146. package/dist/esm/sources/index.js +12 -0
  147. package/dist/esm/sources/index.js.map +1 -0
  148. package/dist/esm/sources/quadbin-query-source.js +32 -0
  149. package/dist/esm/sources/quadbin-query-source.js.map +1 -0
  150. package/dist/esm/sources/quadbin-table-source.js +32 -0
  151. package/dist/esm/sources/quadbin-table-source.js.map +1 -0
  152. package/dist/esm/sources/quadbin-tileset-source.js +14 -0
  153. package/dist/esm/sources/quadbin-tileset-source.js.map +1 -0
  154. package/dist/esm/sources/raster-source.js +14 -0
  155. package/dist/esm/sources/raster-source.js.map +1 -0
  156. package/dist/esm/sources/utils.js +69 -0
  157. package/dist/esm/sources/utils.js.map +1 -0
  158. package/dist/esm/sources/vector-query-source.js +25 -0
  159. package/dist/esm/sources/vector-query-source.js.map +1 -0
  160. package/dist/esm/sources/vector-table-source.js +25 -0
  161. package/dist/esm/sources/vector-table-source.js.map +1 -0
  162. package/dist/esm/sources/vector-tileset-source.js +14 -0
  163. package/dist/esm/sources/vector-tileset-source.js.map +1 -0
  164. package/dist/esm/style/palette.js +2 -2
  165. package/dist/esm/style/palette.js.map +1 -1
  166. package/dist/esm/style/utils.js +1 -1
  167. package/dist/esm/style/utils.js.map +1 -1
  168. package/dist/esm/utils.js +3 -0
  169. package/dist/esm/utils.js.map +1 -1
  170. package/dist/esm/workers/cartoRasterTile.js +4 -0
  171. package/dist/esm/workers/cartoRasterTile.js.map +1 -0
  172. package/dist/esm/workers/cartoSpatialTile.js +4 -0
  173. package/dist/esm/workers/cartoSpatialTile.js.map +1 -0
  174. package/dist/esm/workers/cartoVectorTile.js +4 -0
  175. package/dist/esm/workers/cartoVectorTile.js.map +1 -0
  176. package/dist.min.js +45 -24
  177. package/package.json +11 -9
  178. package/src/api/layer-map.ts +4 -8
  179. package/src/api/maps-api-common.ts +0 -1
  180. package/src/api/maps-v3-client.ts +6 -5
  181. package/src/index.ts +34 -5
  182. package/src/layers/h3-tile-layer.ts +22 -35
  183. package/src/layers/quadbin-tile-layer.ts +19 -33
  184. package/src/layers/raster-tile-layer.ts +22 -26
  185. package/src/layers/schema/carto-raster-tile-loader.ts +26 -6
  186. package/src/layers/schema/carto-spatial-tile-loader.ts +25 -11
  187. package/src/layers/schema/carto-tile.ts +1 -1
  188. package/src/layers/schema/carto-vector-tile-loader.ts +79 -9
  189. package/src/layers/utils.ts +11 -0
  190. package/src/layers/{carto-tile-layer.ts → vector-tile-layer.ts} +40 -21
  191. package/src/sources/base-source.ts +55 -0
  192. package/src/sources/common.ts +132 -0
  193. package/src/sources/h3-query-source.ts +45 -0
  194. package/src/sources/h3-table-source.ts +46 -0
  195. package/src/sources/h3-tileset-source.ts +16 -0
  196. package/src/sources/index.ts +32 -0
  197. package/src/sources/quadbin-query-source.ts +46 -0
  198. package/src/sources/quadbin-table-source.ts +46 -0
  199. package/src/sources/quadbin-tileset-source.ts +16 -0
  200. package/src/sources/raster-source.ts +16 -0
  201. package/src/sources/utils.ts +63 -0
  202. package/src/sources/vector-query-source.ts +23 -0
  203. package/src/sources/vector-table-source.ts +23 -0
  204. package/src/sources/vector-tileset-source.ts +16 -0
  205. package/src/utils.ts +6 -0
  206. package/src/workers/cartoRasterTile.ts +4 -0
  207. package/src/workers/cartoSpatialTile.ts +4 -0
  208. package/src/workers/cartoVectorTile.ts +4 -0
  209. package/typed/api/layer-map.d.ts +2 -3
  210. package/typed/api/layer-map.d.ts.map +1 -1
  211. package/typed/api/maps-api-common.d.ts +0 -1
  212. package/typed/api/maps-api-common.d.ts.map +1 -1
  213. package/typed/api/maps-v3-client.d.ts +0 -3
  214. package/typed/api/maps-v3-client.d.ts.map +1 -1
  215. package/typed/index.d.ts +6 -4
  216. package/typed/index.d.ts.map +1 -1
  217. package/typed/layers/h3-tile-layer.d.ts +5 -8
  218. package/typed/layers/h3-tile-layer.d.ts.map +1 -1
  219. package/typed/layers/quadbin-tile-layer.d.ts +5 -9
  220. package/typed/layers/quadbin-tile-layer.d.ts.map +1 -1
  221. package/typed/layers/raster-tile-layer.d.ts +6 -10
  222. package/typed/layers/raster-tile-layer.d.ts.map +1 -1
  223. package/typed/layers/schema/carto-raster-tile-loader.d.ts.map +1 -1
  224. package/typed/layers/schema/carto-spatial-tile-loader.d.ts.map +1 -1
  225. package/typed/layers/schema/carto-vector-tile-loader.d.ts.map +1 -1
  226. package/typed/layers/utils.d.ts +5 -0
  227. package/typed/layers/utils.d.ts.map +1 -0
  228. package/typed/layers/{carto-tile-layer.d.ts → vector-tile-layer.d.ts} +11 -7
  229. package/typed/layers/vector-tile-layer.d.ts.map +1 -0
  230. package/typed/sources/base-source.d.ts +4 -0
  231. package/typed/sources/base-source.d.ts.map +1 -0
  232. package/typed/sources/common.d.ts +116 -0
  233. package/typed/sources/common.d.ts.map +1 -0
  234. package/typed/sources/h3-query-source.d.ts +5 -0
  235. package/typed/sources/h3-query-source.d.ts.map +1 -0
  236. package/typed/sources/h3-table-source.d.ts +5 -0
  237. package/typed/sources/h3-table-source.d.ts.map +1 -0
  238. package/typed/sources/h3-tileset-source.d.ts +5 -0
  239. package/typed/sources/h3-tileset-source.d.ts.map +1 -0
  240. package/typed/sources/index.d.ts +23 -0
  241. package/typed/sources/index.d.ts.map +1 -0
  242. package/typed/sources/quadbin-query-source.d.ts +5 -0
  243. package/typed/sources/quadbin-query-source.d.ts.map +1 -0
  244. package/typed/sources/quadbin-table-source.d.ts +5 -0
  245. package/typed/sources/quadbin-table-source.d.ts.map +1 -0
  246. package/typed/sources/quadbin-tileset-source.d.ts +5 -0
  247. package/typed/sources/quadbin-tileset-source.d.ts.map +1 -0
  248. package/typed/sources/raster-source.d.ts +5 -0
  249. package/typed/sources/raster-source.d.ts.map +1 -0
  250. package/typed/sources/utils.d.ts +15 -0
  251. package/typed/sources/utils.d.ts.map +1 -0
  252. package/typed/sources/vector-query-source.d.ts +5 -0
  253. package/typed/sources/vector-query-source.d.ts.map +1 -0
  254. package/typed/sources/vector-table-source.d.ts +5 -0
  255. package/typed/sources/vector-table-source.d.ts.map +1 -0
  256. package/typed/sources/vector-tileset-source.d.ts +5 -0
  257. package/typed/sources/vector-tileset-source.d.ts.map +1 -0
  258. package/typed/utils.d.ts +1 -0
  259. package/typed/utils.d.ts.map +1 -1
  260. package/typed/workers/cartoRasterTile.d.ts +2 -0
  261. package/typed/workers/cartoRasterTile.d.ts.map +1 -0
  262. package/typed/workers/cartoSpatialTile.d.ts +2 -0
  263. package/typed/workers/cartoSpatialTile.d.ts.map +1 -0
  264. package/typed/workers/cartoVectorTile.d.ts +2 -0
  265. package/typed/workers/cartoVectorTile.d.ts.map +1 -0
  266. package/dist/es5/layers/carto-tile-layer.js +0 -145
  267. package/dist/es5/layers/carto-tile-layer.js.map +0 -1
  268. package/dist/esm/layers/carto-tile-layer.js.map +0 -1
  269. package/typed/api/index.js +0 -3
  270. package/typed/api/layer-map.js +0 -264
  271. package/typed/api/maps-api-common.js +0 -50
  272. package/typed/api/maps-client.js +0 -125
  273. package/typed/api/maps-v3-client.js +0 -304
  274. package/typed/api/parseMap.js +0 -178
  275. package/typed/basemap.js +0 -9
  276. package/typed/config.js +0 -35
  277. package/typed/index.js +0 -10
  278. package/typed/layers/carto-layer.js +0 -173
  279. package/typed/layers/carto-tile-layer.d.ts.map +0 -1
  280. package/typed/layers/carto-tile-layer.js +0 -105
  281. package/typed/layers/h3-tile-layer.js +0 -47
  282. package/typed/layers/h3-tileset-2d.js +0 -85
  283. package/typed/layers/quadkey-tile-layer.d.ts +0 -21
  284. package/typed/layers/quadkey-tile-layer.d.ts.map +0 -1
  285. package/typed/layers/quadkey-tile-layer.js +0 -42
  286. package/typed/layers/quadkey-tileset-2d.d.ts +0 -15
  287. package/typed/layers/quadkey-tileset-2d.d.ts.map +0 -1
  288. package/typed/layers/quadkey-tileset-2d.js +0 -36
  289. package/typed/layers/schema/carto-tile.js +0 -161
  290. package/typed/layers/spatial-index-tile-layer.js +0 -40
  291. package/typed/style/color-bins-style.js +0 -12
  292. package/typed/style/color-categories-style.js +0 -16
  293. package/typed/style/color-continuous-style.js +0 -12
  294. package/typed/style/palette.js +0 -62
  295. package/typed/style/utils.js +0 -15
  296. package/typed/utils.js +0 -4
@@ -1,22 +1,81 @@
1
+ import earcut from 'earcut';
1
2
  import { TileReader } from './carto-tile';
2
3
  import { parsePbf } from './tile-loader-utils';
4
+ import { getWorkerUrl } from '../../utils';
5
+ const VERSION = typeof "8.10.0-alpha.5" !== 'undefined' ? "8.10.0-alpha.5" : 'latest';
6
+ const id = 'cartoVectorTile';
7
+ const DEFAULT_OPTIONS = {
8
+ cartoVectorTile: {
9
+ workerUrl: getWorkerUrl(id, VERSION)
10
+ }
11
+ };
3
12
  const CartoVectorTileLoader = {
4
13
  name: 'CARTO Vector Tile',
5
- version: '1',
6
- id: 'cartoVectorTile',
14
+ version: VERSION,
15
+ id,
7
16
  module: 'carto',
8
17
  extensions: ['pbf'],
9
18
  mimeTypes: ['application/vnd.carto-vector-tile'],
10
19
  category: 'geometry',
11
- worker: false,
12
20
  parse: async (arrayBuffer, options) => parseCartoVectorTile(arrayBuffer, options),
13
21
  parseSync: parseCartoVectorTile,
14
- options: {}
22
+ worker: true,
23
+ options: DEFAULT_OPTIONS
15
24
  };
16
25
 
26
+ function triangulatePolygon(polygons, target, {
27
+ startPosition,
28
+ endPosition,
29
+ indices
30
+ }) {
31
+ const coordLength = polygons.positions.size;
32
+ const start = startPosition * coordLength;
33
+ const end = endPosition * coordLength;
34
+ const polygonPositions = polygons.positions.value.subarray(start, end);
35
+ const holes = indices.slice(1).map(n => n - startPosition);
36
+ const triangles = earcut(polygonPositions, holes, coordLength);
37
+
38
+ for (let t = 0, tl = triangles.length; t < tl; ++t) {
39
+ target.push(startPosition + triangles[t]);
40
+ }
41
+ }
42
+
43
+ function triangulate(polygons) {
44
+ const {
45
+ polygonIndices,
46
+ positions,
47
+ primitivePolygonIndices
48
+ } = polygons;
49
+ const triangles = [];
50
+ let rangeStart = 0;
51
+
52
+ for (let i = 0; i < polygonIndices.value.length - 1; i++) {
53
+ const startPosition = polygonIndices.value[i];
54
+ const endPosition = polygonIndices.value[i + 1];
55
+ const rangeEnd = primitivePolygonIndices.value.indexOf(endPosition);
56
+ const indices = primitivePolygonIndices.value.subarray(rangeStart, rangeEnd);
57
+ rangeStart = rangeEnd;
58
+ triangulatePolygon(polygons, triangles, {
59
+ startPosition,
60
+ endPosition,
61
+ indices
62
+ });
63
+ }
64
+
65
+ polygons.triangles = {
66
+ value: new Uint32Array(triangles),
67
+ size: 1
68
+ };
69
+ }
70
+
17
71
  function parseCartoVectorTile(arrayBuffer, options) {
18
72
  if (!arrayBuffer) return null;
19
73
  const tile = parsePbf(arrayBuffer, TileReader);
74
+
75
+ if (tile.polygons && !tile.polygons.triangles) {
76
+ triangulate(tile.polygons);
77
+ }
78
+
20
79
  return tile;
21
80
  }
22
81
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/layers/schema/carto-vector-tile-loader.ts"],"names":["TileReader","parsePbf","CartoVectorTileLoader","name","version","id","module","extensions","mimeTypes","category","worker","parse","arrayBuffer","options","parseCartoVectorTile","parseSync","tile"],"mappings":"AAGA,SAAQA,UAAR,QAAyB,cAAzB;AACA,SAAQC,QAAR,QAAuB,qBAAvB;AAEA,MAAMC,qBAAuC,GAAG;AAC9CC,EAAAA,IAAI,EAAE,mBADwC;AAE9CC,EAAAA,OAAO,EAAE,GAFqC;AAG9CC,EAAAA,EAAE,EAAE,iBAH0C;AAI9CC,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,MAAM,EAAE,KARsC;AAS9CC,EAAAA,KAAK,EAAE,OAAOC,WAAP,EAAoBC,OAApB,KAAgCC,oBAAoB,CAACF,WAAD,EAAcC,OAAd,CATb;AAU9CE,EAAAA,SAAS,EAAED,oBAVmC;AAW9CD,EAAAA,OAAO,EAAE;AAXqC,CAAhD;;AAcA,SAASC,oBAAT,CACEF,WADF,EAEEC,OAFF,EAGyB;AACvB,MAAI,CAACD,WAAL,EAAkB,OAAO,IAAP;AAClB,QAAMI,IAAI,GAAGf,QAAQ,CAACW,WAAD,EAAcZ,UAAd,CAArB;AAGA,SAAOgB,IAAP;AACD;;AAED,eAAed,qBAAf","sourcesContent":["import {LoaderOptions, LoaderWithParser} from '@loaders.gl/loader-utils';\nimport type {BinaryFeatures} from '@loaders.gl/schema';\n\nimport {TileReader} from './carto-tile';\nimport {parsePbf} from './tile-loader-utils';\n\nconst CartoVectorTileLoader: LoaderWithParser = {\n name: 'CARTO Vector Tile',\n version: '1',\n id: 'cartoVectorTile',\n module: 'carto',\n extensions: ['pbf'],\n mimeTypes: ['application/vnd.carto-vector-tile'],\n category: 'geometry',\n worker: false,\n parse: async (arrayBuffer, options) => parseCartoVectorTile(arrayBuffer, options),\n parseSync: parseCartoVectorTile,\n options: {}\n};\n\nfunction parseCartoVectorTile(\n arrayBuffer: ArrayBuffer,\n options?: LoaderOptions\n): BinaryFeatures | null {\n if (!arrayBuffer) return null;\n const tile = parsePbf(arrayBuffer, TileReader);\n\n // Note: there is slight, difference in `numericProps` type, however geojson/mvtlayer can cope with this\n return tile as unknown as BinaryFeatures;\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 {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,4 +1,3 @@
1
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
1
  import { registerLoaders } from '@loaders.gl/core';
3
2
  import CartoRasterTileLoader from './schema/carto-raster-tile-loader';
4
3
  import CartoSpatialTileLoader from './schema/carto-spatial-tile-loader';
@@ -97,8 +96,6 @@ export default class SpatialIndexTileLayer extends TileLayer {
97
96
  }
98
97
 
99
98
  }
100
-
101
- _defineProperty(SpatialIndexTileLayer, "layerName", 'SpatialIndexTileLayer');
102
-
103
- _defineProperty(SpatialIndexTileLayer, "defaultProps", defaultProps);
99
+ SpatialIndexTileLayer.layerName = 'SpatialIndexTileLayer';
100
+ SpatialIndexTileLayer.defaultProps = defaultProps;
104
101
  //# sourceMappingURL=spatial-index-tile-layer.js.map
@@ -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"],"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","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"}
@@ -0,0 +1,14 @@
1
+ export function injectAccessToken(loadOptions, accessToken) {
2
+ var _loadOptions$fetch, _loadOptions$fetch$he;
3
+
4
+ if (!(loadOptions !== null && loadOptions !== void 0 && (_loadOptions$fetch = loadOptions.fetch) !== null && _loadOptions$fetch !== void 0 && (_loadOptions$fetch$he = _loadOptions$fetch.headers) !== null && _loadOptions$fetch$he !== void 0 && _loadOptions$fetch$he.Authorization)) {
5
+ var _loadOptions$fetch2;
6
+
7
+ loadOptions.fetch = { ...loadOptions.fetch,
8
+ headers: { ...((_loadOptions$fetch2 = loadOptions.fetch) === null || _loadOptions$fetch2 === void 0 ? void 0 : _loadOptions$fetch2.headers),
9
+ Authorization: `Bearer ${accessToken}`
10
+ }
11
+ };
12
+ }
13
+ }
14
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +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,4 +1,3 @@
1
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
1
  import { registerLoaders } from '@loaders.gl/core';
3
2
  import CartoVectorTileLoader from './schema/carto-vector-tile-loader';
4
3
  registerLoaders([CartoVectorTileLoader]);
@@ -7,19 +6,47 @@ import { MVTLayer, _getURLFromTemplate } from '@deck.gl/geo-layers';
7
6
  import { GeoJsonLayer } from '@deck.gl/layers';
8
7
  import { binaryToGeojson } from '@loaders.gl/gis';
9
8
  import { TILE_FORMATS } from '../api/maps-api-common';
9
+ import { TilejsonPropType } from '../sources/common';
10
+ import { injectAccessToken } from './utils';
10
11
  const defaultTileFormat = TILE_FORMATS.BINARY;
11
12
  const defaultProps = { ...MVTLayer.defaultProps,
13
+ data: TilejsonPropType,
12
14
  formatTiles: defaultTileFormat
13
15
  };
14
- export default class CartoTileLayer extends MVTLayer {
16
+ export default class VectorTileLayer extends MVTLayer {
15
17
  initializeState() {
16
18
  super.initializeState();
17
- const binary = this.props.formatTiles === TILE_FORMATS.BINARY;
19
+ const binary = this.props.formatTiles === TILE_FORMATS.BINARY || TILE_FORMATS.MVT;
18
20
  this.setState({
19
21
  binary
20
22
  });
21
23
  }
22
24
 
25
+ updateState(parameters) {
26
+ const {
27
+ props
28
+ } = parameters;
29
+
30
+ if (props.data) {
31
+ super.updateState(parameters);
32
+ const formatTiles = new URL(props.data.tiles[0]).searchParams.get('formatTiles');
33
+ const mvt = formatTiles === TILE_FORMATS.MVT;
34
+ this.setState({
35
+ mvt
36
+ });
37
+ }
38
+ }
39
+
40
+ getLoadOptions() {
41
+ const loadOptions = super.getLoadOptions() || {};
42
+ const tileJSON = this.props.data;
43
+ injectAccessToken(loadOptions, tileJSON.accessToken);
44
+ loadOptions.gis = {
45
+ format: 'binary'
46
+ };
47
+ return loadOptions;
48
+ }
49
+
23
50
  getTileData(tile) {
24
51
  const url = _getURLFromTemplate(this.state.data, tile);
25
52
 
@@ -27,21 +54,13 @@ export default class CartoTileLayer extends MVTLayer {
27
54
  return Promise.reject('Invalid URL');
28
55
  }
29
56
 
30
- let loadOptions = this.getLoadOptions();
57
+ const loadOptions = this.getLoadOptions();
31
58
  const {
32
- fetch,
33
- formatTiles
59
+ fetch
34
60
  } = this.props;
35
61
  const {
36
62
  signal
37
63
  } = tile;
38
-
39
- if (formatTiles === TILE_FORMATS.BINARY) {
40
- loadOptions = { ...loadOptions,
41
- mimeType: 'application/vnd.carto-vector-tile'
42
- };
43
- }
44
-
45
64
  return fetch(url, {
46
65
  propName: 'data',
47
66
  layer: this,
@@ -55,6 +74,10 @@ export default class CartoTileLayer extends MVTLayer {
55
74
  return null;
56
75
  }
57
76
 
77
+ if (this.state.mvt) {
78
+ return super.renderSubLayers(props);
79
+ }
80
+
58
81
  const tileBbox = props.tile.bbox;
59
82
  const {
60
83
  west,
@@ -87,8 +110,6 @@ export default class CartoTileLayer extends MVTLayer {
87
110
  }
88
111
 
89
112
  }
90
-
91
- _defineProperty(CartoTileLayer, "layerName", 'CartoTileLayer');
92
-
93
- _defineProperty(CartoTileLayer, "defaultProps", defaultProps);
94
- //# sourceMappingURL=carto-tile-layer.js.map
113
+ VectorTileLayer.layerName = 'VectorTileLayer';
114
+ VectorTileLayer.defaultProps = defaultProps;
115
+ //# sourceMappingURL=vector-tile-layer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/layers/vector-tile-layer.ts"],"names":["registerLoaders","CartoVectorTileLoader","ClipExtension","MVTLayer","_getURLFromTemplate","GeoJsonLayer","binaryToGeojson","TILE_FORMATS","TilejsonPropType","injectAccessToken","defaultTileFormat","BINARY","defaultProps","data","formatTiles","VectorTileLayer","initializeState","binary","props","MVT","setState","updateState","parameters","URL","tiles","searchParams","get","mvt","getLoadOptions","loadOptions","tileJSON","accessToken","gis","format","getTileData","tile","url","state","Promise","reject","fetch","signal","propName","layer","renderSubLayers","tileBbox","bbox","west","south","east","north","subLayerProps","autoHighlight","extensions","clipBounds","subLayer","getPickingInfo","params","info","index","sourceLayer","object","globalFeatureId","layerName"],"mappings":"AAAA,SAAQA,eAAR,QAA8B,kBAA9B;AACA,OAAOC,qBAAP,MAAkC,mCAAlC;AACAD,eAAe,CAAC,CAACC,qBAAD,CAAD,CAAf;AAGA,SAAQC,aAAR,QAA4B,qBAA5B;AACA,SACEC,QADF,EAIEC,mBAJF,QAOO,qBAPP;AAQA,SAAQC,YAAR,QAA2B,iBAA3B;AACA,SAAQC,eAAR,QAA8B,iBAA9B;AAEA,SAAoBC,YAApB,QAAuC,wBAAvC;AAEA,SAAQC,gBAAR,QAAoD,mBAApD;AACA,SAAQC,iBAAR,QAAgC,SAAhC;AAEA,MAAMC,iBAAiB,GAAGH,YAAY,CAACI,MAAvC;AAEA,MAAMC,YAAgD,GAAG,EACvD,GAAGT,QAAQ,CAACS,YAD2C;AAEvDC,EAAAA,IAAI,EAAEL,gBAFiD;AAGvDM,EAAAA,WAAW,EAAEJ;AAH0C,CAAzD;AAuBA,eAAe,MAAMK,eAAN,SAA0DZ,QAA1D,CAEb;AAIAa,EAAAA,eAAe,GAAS;AACtB,UAAMA,eAAN;AACA,UAAMC,MAAM,GAAG,KAAKC,KAAL,CAAWJ,WAAX,KAA2BP,YAAY,CAACI,MAAxC,IAAkDJ,YAAY,CAACY,GAA9E;AACA,SAAKC,QAAL,CAAc;AAACH,MAAAA;AAAD,KAAd;AACD;;AAEDI,EAAAA,WAAW,CAACC,UAAD,EAAa;AACtB,UAAM;AAACJ,MAAAA;AAAD,QAAUI,UAAhB;;AACA,QAAIJ,KAAK,CAACL,IAAV,EAAgB;AACd,YAAMQ,WAAN,CAAkBC,UAAlB;AAEA,YAAMR,WAAW,GAAG,IAAIS,GAAJ,CAAQL,KAAK,CAACL,IAAN,CAAWW,KAAX,CAAiB,CAAjB,CAAR,EAA6BC,YAA7B,CAA0CC,GAA1C,CAA8C,aAA9C,CAApB;AACA,YAAMC,GAAG,GAAGb,WAAW,KAAKP,YAAY,CAACY,GAAzC;AACA,WAAKC,QAAL,CAAc;AAACO,QAAAA;AAAD,OAAd;AACD;AACF;;AAEDC,EAAAA,cAAc,GAAQ;AACpB,UAAMC,WAAW,GAAG,MAAMD,cAAN,MAA0B,EAA9C;AACA,UAAME,QAAQ,GAAG,KAAKZ,KAAL,CAAWL,IAA5B;AACAJ,IAAAA,iBAAiB,CAACoB,WAAD,EAAcC,QAAQ,CAACC,WAAvB,CAAjB;AACAF,IAAAA,WAAW,CAACG,GAAZ,GAAkB;AAACC,MAAAA,MAAM,EAAE;AAAT,KAAlB;AACA,WAAOJ,WAAP;AACD;;AAEDK,EAAAA,WAAW,CAACC,IAAD,EAAsB;AAC/B,UAAMC,GAAG,GAAGhC,mBAAmB,CAAC,KAAKiC,KAAL,CAAWxB,IAAZ,EAAkBsB,IAAlB,CAA/B;;AACA,QAAI,CAACC,GAAL,EAAU;AACR,aAAOE,OAAO,CAACC,MAAR,CAAe,aAAf,CAAP;AACD;;AAED,UAAMV,WAAW,GAAG,KAAKD,cAAL,EAApB;AACA,UAAM;AAACY,MAAAA;AAAD,QAAU,KAAKtB,KAArB;AACA,UAAM;AAACuB,MAAAA;AAAD,QAAWN,IAAjB;AACA,WAAOK,KAAK,CAACJ,GAAD,EAAM;AAACM,MAAAA,QAAQ,EAAE,MAAX;AAAmBC,MAAAA,KAAK,EAAE,IAA1B;AAAgCd,MAAAA,WAAhC;AAA6CY,MAAAA;AAA7C,KAAN,CAAZ;AACD;;AAEDG,EAAAA,eAAe,CACb1B,KADa,EAOQ;AACrB,QAAIA,KAAK,CAACL,IAAN,KAAe,IAAnB,EAAyB;AACvB,aAAO,IAAP;AACD;;AAED,QAAI,KAAKwB,KAAL,CAAWV,GAAf,EAAoB;AAClB,aAAO,MAAMiB,eAAN,CAAsB1B,KAAtB,CAAP;AACD;;AAED,UAAM2B,QAAQ,GAAG3B,KAAK,CAACiB,IAAN,CAAWW,IAA5B;AACA,UAAM;AAACC,MAAAA,IAAD;AAAOC,MAAAA,KAAP;AAAcC,MAAAA,IAAd;AAAoBC,MAAAA;AAApB,QAA6BL,QAAnC;AAEA,UAAMM,aAAa,GAAG,EACpB,GAAGjC,KADiB;AAEpBkC,MAAAA,aAAa,EAAE,KAFK;AAGpBC,MAAAA,UAAU,EAAE,CAAC,IAAInD,aAAJ,EAAD,EAAsB,IAAIgB,KAAK,CAACmC,UAAN,IAAoB,EAAxB,CAAtB,CAHQ;AAIpBC,MAAAA,UAAU,EAAE,CAACP,IAAD,EAAOC,KAAP,EAAcC,IAAd,EAAoBC,KAApB;AAJQ,KAAtB;AAOA,UAAMK,QAAQ,GAAG,IAAIlD,YAAJ,CAAiB8C,aAAjB,CAAjB;AACA,WAAOI,QAAP;AACD;;AAEDC,EAAAA,cAAc,CAACC,MAAD,EAAS;AACrB,UAAMC,IAAI,GAAG,MAAMF,cAAN,CAAqBC,MAArB,CAAb;;AAEA,QAAI,KAAKpB,KAAL,CAAWpB,MAAX,IAAqByC,IAAI,CAACC,KAAL,KAAe,CAAC,CAAzC,EAA4C;AAC1C,YAAM;AAAC9C,QAAAA;AAAD,UAAS4C,MAAM,CAACG,WAAP,CAAoB1C,KAAnC;AACAwC,MAAAA,IAAI,CAACG,MAAL,GAAcvD,eAAe,CAACO,IAAD,EAAyB;AACpDiD,QAAAA,eAAe,EAAEJ,IAAI,CAACC;AAD8B,OAAzB,CAA7B;AAGD;;AAED,WAAOD,IAAP;AACD;;AAlFD;AAFmB3C,e,CAGZgD,S,GAAY,iB;AAHAhD,e,CAIZH,Y,GAAeA,Y","sourcesContent":["import {registerLoaders} from '@loaders.gl/core';\nimport CartoVectorTileLoader from './schema/carto-vector-tile-loader';\nregisterLoaders([CartoVectorTileLoader]);\n\nimport {DefaultProps} from '@deck.gl/core';\nimport {ClipExtension} from '@deck.gl/extensions';\nimport {\n MVTLayer,\n MVTLayerProps,\n TileLayer,\n _getURLFromTemplate,\n _Tile2DHeader,\n _TileLoadProps as TileLoadProps\n} from '@deck.gl/geo-layers';\nimport {GeoJsonLayer} from '@deck.gl/layers';\nimport {binaryToGeojson} from '@loaders.gl/gis';\nimport type {BinaryFeatures} from '@loaders.gl/schema';\nimport {TileFormat, TILE_FORMATS} from '../api/maps-api-common';\nimport type {Feature} from 'geojson';\nimport {TilejsonPropType, CartoTilejsonResult} from '../sources/common';\nimport {injectAccessToken} from './utils';\n\nconst defaultTileFormat = TILE_FORMATS.BINARY;\n\nconst defaultProps: DefaultProps<VectorTileLayerProps> = {\n ...MVTLayer.defaultProps,\n data: TilejsonPropType,\n formatTiles: defaultTileFormat\n};\n\n/** All properties supported by VectorTileLayer. */\nexport type VectorTileLayerProps = _VectorTileLayerProps & Omit<MVTLayerProps, 'data'>;\n\n/** Properties added by VectorTileLayer. */\ntype _VectorTileLayerProps = {\n data: null | CartoTilejsonResult | Promise<CartoTilejsonResult>;\n /** Use to override the default tile data format.\n *\n * Possible values are: `TILE_FORMATS.BINARY`, `TILE_FORMATS.GEOJSON` and `TILE_FORMATS.MVT`.\n *\n * Only supported when `apiVersion` is `API_VERSIONS.V3` and `format` is `FORMATS.TILEJSON`.\n */\n formatTiles?: TileFormat;\n};\n\n// TODO Perhaps we can't subclass MVTLayer and keep types. Better to subclass TileLayer instead?\n// @ts-ignore\nexport default class VectorTileLayer<ExtraProps extends {} = {}> extends MVTLayer<\n Required<_VectorTileLayerProps> & ExtraProps\n> {\n static layerName = 'VectorTileLayer';\n static defaultProps = defaultProps;\n\n initializeState(): void {\n super.initializeState();\n const binary = this.props.formatTiles === TILE_FORMATS.BINARY || TILE_FORMATS.MVT;\n this.setState({binary});\n }\n\n updateState(parameters) {\n const {props} = parameters;\n if (props.data) {\n super.updateState(parameters);\n\n const formatTiles = new URL(props.data.tiles[0]).searchParams.get('formatTiles');\n const mvt = formatTiles === TILE_FORMATS.MVT;\n this.setState({mvt});\n }\n }\n\n getLoadOptions(): any {\n const loadOptions = super.getLoadOptions() || {};\n const tileJSON = this.props.data as CartoTilejsonResult;\n injectAccessToken(loadOptions, tileJSON.accessToken);\n loadOptions.gis = {format: 'binary'}; // Use binary for MVT loading\n return loadOptions;\n }\n\n getTileData(tile: TileLoadProps) {\n const url = _getURLFromTemplate(this.state.data, tile);\n if (!url) {\n return Promise.reject('Invalid URL');\n }\n\n const loadOptions = this.getLoadOptions();\n const {fetch} = this.props;\n const {signal} = tile;\n return fetch(url, {propName: 'data', layer: this, loadOptions, signal});\n }\n\n renderSubLayers(\n props: TileLayer['props'] & {\n id: string;\n data: any;\n _offset: number;\n tile: _Tile2DHeader;\n }\n ): GeoJsonLayer | null {\n if (props.data === null) {\n return null;\n }\n\n if (this.state.mvt) {\n return super.renderSubLayers(props) as GeoJsonLayer;\n }\n\n const tileBbox = props.tile.bbox as any;\n const {west, south, east, north} = tileBbox;\n\n const subLayerProps = {\n ...props,\n autoHighlight: false,\n extensions: [new ClipExtension(), ...(props.extensions || [])],\n clipBounds: [west, south, east, north]\n };\n\n const subLayer = new GeoJsonLayer(subLayerProps);\n return subLayer;\n }\n\n getPickingInfo(params) {\n const info = super.getPickingInfo(params);\n\n if (this.state.binary && info.index !== -1) {\n const {data} = params.sourceLayer!.props;\n info.object = binaryToGeojson(data as BinaryFeatures, {\n globalFeatureId: info.index\n }) as Feature;\n }\n\n return info;\n }\n}\n"],"file":"vector-tile-layer.js"}
@@ -0,0 +1,49 @@
1
+ import { SOURCE_DEFAULTS } from './common';
2
+ import { buildApiEndpoint, requestWithParameters } from './utils';
3
+ export async function cartoBaseSource(endpoint, options, urlParameters) {
4
+ const mergedOptions = { ...SOURCE_DEFAULTS,
5
+ ...options,
6
+ endpoint
7
+ };
8
+ const baseUrl = buildApiEndpoint(mergedOptions);
9
+ const {
10
+ accessToken,
11
+ format
12
+ } = mergedOptions;
13
+ const headers = {
14
+ Authorization: `Bearer ${options.accessToken}`,
15
+ ...options.headers
16
+ };
17
+ const errorContext = {
18
+ requestType: 'Map instantiation',
19
+ connection: options.connectionName,
20
+ type: endpoint,
21
+ source: JSON.stringify(urlParameters, undefined, 2)
22
+ };
23
+ const mapInstantiation = await requestWithParameters({
24
+ baseUrl,
25
+ parameters: urlParameters,
26
+ headers,
27
+ errorContext
28
+ });
29
+ const dataUrl = mapInstantiation[format].url[0];
30
+ errorContext.requestType = 'Map data';
31
+
32
+ if (format === 'tilejson') {
33
+ const tilejson = await requestWithParameters({
34
+ baseUrl: dataUrl,
35
+ headers,
36
+ errorContext
37
+ });
38
+ return { ...tilejson,
39
+ accessToken
40
+ };
41
+ }
42
+
43
+ return await requestWithParameters({
44
+ baseUrl: dataUrl,
45
+ headers,
46
+ errorContext
47
+ });
48
+ }
49
+ //# sourceMappingURL=base-source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/sources/base-source.ts"],"names":["SOURCE_DEFAULTS","buildApiEndpoint","requestWithParameters","cartoBaseSource","endpoint","options","urlParameters","mergedOptions","baseUrl","accessToken","format","headers","Authorization","errorContext","requestType","connection","connectionName","type","source","JSON","stringify","undefined","mapInstantiation","parameters","dataUrl","url","tilejson"],"mappings":"AAEA,SAMEA,eANF,QASO,UATP;AAUA,SAAQC,gBAAR,EAA0BC,qBAA1B,QAAsD,SAAtD;AAEA,OAAO,eAAeC,eAAf,CACLC,QADK,EAELC,OAFK,EAGLC,aAHK,EAIsD;AAC3D,QAAMC,aAAa,GAAG,EAAC,GAAGP,eAAJ;AAAqB,OAAGK,OAAxB;AAAiCD,IAAAA;AAAjC,GAAtB;AACA,QAAMI,OAAO,GAAGP,gBAAgB,CAACM,aAAD,CAAhC;AACA,QAAM;AAACE,IAAAA,WAAD;AAAcC,IAAAA;AAAd,MAAwBH,aAA9B;AACA,QAAMI,OAAO,GAAG;AAACC,IAAAA,aAAa,EAAG,UAASP,OAAO,CAACI,WAAY,EAA9C;AAAiD,OAAGJ,OAAO,CAACM;AAA5D,GAAhB;AAEA,QAAME,YAA6B,GAAG;AACpCC,IAAAA,WAAW,EAAE,mBADuB;AAEpCC,IAAAA,UAAU,EAAEV,OAAO,CAACW,cAFgB;AAGpCC,IAAAA,IAAI,EAAEb,QAH8B;AAIpCc,IAAAA,MAAM,EAAEC,IAAI,CAACC,SAAL,CAAed,aAAf,EAA8Be,SAA9B,EAAyC,CAAzC;AAJ4B,GAAtC;AAMA,QAAMC,gBAAgB,GAAG,MAAMpB,qBAAqB,CAA2B;AAC7EM,IAAAA,OAD6E;AAE7Ee,IAAAA,UAAU,EAAEjB,aAFiE;AAG7EK,IAAAA,OAH6E;AAI7EE,IAAAA;AAJ6E,GAA3B,CAApD;AAOA,QAAMW,OAAO,GAAGF,gBAAgB,CAACZ,MAAD,CAAhB,CAAyBe,GAAzB,CAA6B,CAA7B,CAAhB;AACAZ,EAAAA,YAAY,CAACC,WAAb,GAA2B,UAA3B;;AAEA,MAAIJ,MAAM,KAAK,UAAf,EAA2B;AACzB,UAAMgB,QAAQ,GAAG,MAAMxB,qBAAqB,CAAW;AACrDM,MAAAA,OAAO,EAAEgB,OAD4C;AAErDb,MAAAA,OAFqD;AAGrDE,MAAAA;AAHqD,KAAX,CAA5C;AAKA,WAAO,EAAC,GAAGa,QAAJ;AAAcjB,MAAAA;AAAd,KAAP;AACD;;AAED,SAAO,MAAMP,qBAAqB,CAA6B;AAC7DM,IAAAA,OAAO,EAAEgB,OADoD;AAE7Db,IAAAA,OAF6D;AAG7DE,IAAAA;AAH6D,GAA7B,CAAlC;AAKD","sourcesContent":["import type {MapType} from '../api/maps-api-common';\nimport {APIErrorContext} from '../api/carto-api-error';\nimport {\n CartoSourceOptionalOptions,\n CartoSourceRequiredOptions,\n CartoTilejsonResult,\n GeojsonResult,\n JsonResult,\n SOURCE_DEFAULTS,\n Tilejson,\n TilejsonMapInstantiation\n} from './common';\nimport {buildApiEndpoint, requestWithParameters} from './utils';\n\nexport async function cartoBaseSource<UrlParameters extends Record<string, string>>(\n endpoint: MapType,\n options: Partial<CartoSourceOptionalOptions> & CartoSourceRequiredOptions,\n urlParameters: UrlParameters\n): Promise<CartoTilejsonResult | GeojsonResult | JsonResult> {\n const mergedOptions = {...SOURCE_DEFAULTS, ...options, endpoint};\n const baseUrl = buildApiEndpoint(mergedOptions);\n const {accessToken, format} = mergedOptions;\n const headers = {Authorization: `Bearer ${options.accessToken}`, ...options.headers};\n\n const errorContext: APIErrorContext = {\n requestType: 'Map instantiation',\n connection: options.connectionName,\n type: endpoint,\n source: JSON.stringify(urlParameters, undefined, 2)\n };\n const mapInstantiation = await requestWithParameters<TilejsonMapInstantiation>({\n baseUrl,\n parameters: urlParameters,\n headers,\n errorContext\n });\n\n const dataUrl = mapInstantiation[format].url[0];\n errorContext.requestType = 'Map data';\n\n if (format === 'tilejson') {\n const tilejson = await requestWithParameters<Tilejson>({\n baseUrl: dataUrl,\n headers,\n errorContext\n });\n return {...tilejson, accessToken};\n }\n\n return await requestWithParameters<GeojsonResult | JsonResult>({\n baseUrl: dataUrl,\n headers,\n errorContext\n });\n}\n"],"file":"base-source.js"}
@@ -0,0 +1,26 @@
1
+ export const SOURCE_DEFAULTS = {
2
+ apiBaseUrl: 'https://gcp-us-east1.api.carto.com',
3
+ clientId: 'deck-gl-carto',
4
+ format: 'tilejson',
5
+ formatTiles: 'binary',
6
+ headers: {}
7
+ };
8
+ export const DEFAULT_CLIENT = 'deck-gl-carto';
9
+ export const V3_MINOR_VERSION = '3.2';
10
+ export const MAX_GET_LENGTH = 8192;
11
+ export const DEFAULT_PARAMETERS = {
12
+ client: DEFAULT_CLIENT,
13
+ v: V3_MINOR_VERSION
14
+ };
15
+ export const DEFAULT_HEADERS = {
16
+ Accept: 'application/json',
17
+ 'Content-Type': 'application/json'
18
+ };
19
+ export const TilejsonPropType = {
20
+ type: 'object',
21
+ value: null,
22
+ validate: (value, propType) => propType.optional && value === null || typeof value === 'object' && Array.isArray(value.tiles) && value.tiles.every(url => typeof url === 'string'),
23
+ compare: 2,
24
+ async: true
25
+ };
26
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/sources/common.ts"],"names":["SOURCE_DEFAULTS","apiBaseUrl","clientId","format","formatTiles","headers","DEFAULT_CLIENT","V3_MINOR_VERSION","MAX_GET_LENGTH","DEFAULT_PARAMETERS","client","v","DEFAULT_HEADERS","Accept","TilejsonPropType","type","value","validate","propType","optional","Array","isArray","tiles","every","url","compare","async"],"mappings":"AAyCA,OAAO,MAAMA,eAA2C,GAAG;AACzDC,EAAAA,UAAU,EAAE,oCAD6C;AAEzDC,EAAAA,QAAQ,EAAE,eAF+C;AAGzDC,EAAAA,MAAM,EAAE,UAHiD;AAIzDC,EAAAA,WAAW,EAAE,QAJ4C;AAKzDC,EAAAA,OAAO,EAAE;AALgD,CAApD;AAkEP,OAAO,MAAMC,cAAc,GAAG,eAAvB;AACP,OAAO,MAAMC,gBAAgB,GAAG,KAAzB;AACP,OAAO,MAAMC,cAAc,GAAG,IAAvB;AAEP,OAAO,MAAMC,kBAAkB,GAAG;AAChCC,EAAAA,MAAM,EAAEJ,cADwB;AAEhCK,EAAAA,CAAC,EAAEJ;AAF6B,CAA3B;AAKP,OAAO,MAAMK,eAAe,GAAG;AAC7BC,EAAAA,MAAM,EAAE,kBADqB;AAE7B,kBAAgB;AAFa,CAAxB;AAKP,OAAO,MAAMC,gBAAgB,GAAG;AAC9BC,EAAAA,IAAI,EAAE,QADwB;AAE9BC,EAAAA,KAAK,EAAE,IAFuB;AAG9BC,EAAAA,QAAQ,EAAE,CAACD,KAAD,EAA6BE,QAA7B,KACPA,QAAQ,CAACC,QAAT,IAAqBH,KAAK,KAAK,IAAhC,IACC,OAAOA,KAAP,KAAiB,QAAjB,IACCI,KAAK,CAACC,OAAN,CAAcL,KAAK,CAACM,KAApB,CADD,IAECN,KAAK,CAACM,KAAN,CAAYC,KAAZ,CAAkBC,GAAG,IAAI,OAAOA,GAAP,KAAe,QAAxC,CAP0B;AAQ9BC,EAAAA,OAAO,EAAE,CARqB;AAS9BC,EAAAA,KAAK,EAAE;AATuB,CAAzB","sourcesContent":["/* eslint-disable camelcase */\nimport type {Feature} from 'geojson';\nimport {Format, MapInstantiation, TileFormat, QueryParameters} from '../api/maps-api-common';\n\nexport type CartoSourceRequiredOptions = {\n accessToken: string;\n connectionName: string;\n};\n\nexport type CartoSourceOptionalOptions = {\n apiBaseUrl: string;\n clientId: string;\n format: Format;\n formatTiles: TileFormat;\n headers: Record<string, string>;\n mapsUrl?: string;\n};\n\nexport type CartoSourceOptions = CartoSourceRequiredOptions & Partial<CartoSourceOptionalOptions>;\n\nexport type CartoAggregationOptions = {\n aggregationExp: string;\n aggregationResLevel?: number;\n};\n\nexport type CartoQuerySourceOptions = {\n spatialDataColumn?: string;\n sqlQuery: string;\n queryParameters?: QueryParameters;\n};\n\nexport type CartoTableSourceOptions = {\n columns?: string[];\n spatialDataColumn?: string;\n tableName: string;\n};\n\nexport type CartoTilesetSourceOptions = {\n tableName: string;\n};\n\nexport const SOURCE_DEFAULTS: CartoSourceOptionalOptions = {\n apiBaseUrl: 'https://gcp-us-east1.api.carto.com',\n clientId: 'deck-gl-carto',\n format: 'tilejson',\n formatTiles: 'binary',\n headers: {}\n};\n\nexport type TilejsonMapInstantiation = MapInstantiation & {\n tilejson: {url: string[]};\n};\n\nexport interface Tilejson {\n tilejson: string;\n name: string;\n description: string;\n version: string;\n attribution: string;\n scheme: string;\n tiles: string[];\n properties_tiles: string[];\n minresolution: number;\n maxresolution: number;\n minzoom: number;\n maxzoom: number;\n bounds: [number, number, number, number];\n center: [number, number, number];\n vector_layers: VectorLayer[];\n tilestats: Tilestats;\n}\n\nexport interface Tilestats {\n layerCount: number;\n layers: Layer[];\n}\n\nexport interface Layer {\n layer: string;\n count: number;\n attributeCount: number;\n attributes: Attribute[];\n}\n\nexport interface Attribute {\n attribute: string;\n type: string;\n}\n\nexport interface VectorLayer {\n id: string;\n minzoom: number;\n maxzoom: number;\n fields: Record<string, string>;\n}\n\nexport type CartoTilejsonResult = Tilejson & {accessToken: string};\nexport type GeojsonResult = {type: 'FeatureCollection'; features: Feature[]};\nexport type JsonResult = any[];\nexport interface TilejsonSource<T> {\n (options: T & {format?: 'tilejson'}): Promise<CartoTilejsonResult>;\n}\nexport interface TypedSource<T> extends TilejsonSource<T> {\n (options: T & {format: 'geojson'}): Promise<GeojsonResult>;\n (options: T & {format: 'json'}): Promise<JsonResult>;\n}\n\nexport const DEFAULT_CLIENT = 'deck-gl-carto';\nexport const V3_MINOR_VERSION = '3.2';\nexport const MAX_GET_LENGTH = 8192;\n\nexport const DEFAULT_PARAMETERS = {\n client: DEFAULT_CLIENT,\n v: V3_MINOR_VERSION\n};\n\nexport const DEFAULT_HEADERS = {\n Accept: 'application/json',\n 'Content-Type': 'application/json'\n};\n\nexport const TilejsonPropType = {\n type: 'object' as const,\n value: null as null | CartoTilejsonResult,\n validate: (value: CartoTilejsonResult, propType) =>\n (propType.optional && value === null) ||\n (typeof value === 'object' &&\n Array.isArray(value.tiles) &&\n value.tiles.every(url => typeof url === 'string')),\n compare: 2,\n async: true\n};\n"],"file":"common.js"}
@@ -0,0 +1,32 @@
1
+ import { cartoBaseSource } from './base-source';
2
+
3
+ const cartoH3QuerySource = async function (options) {
4
+ const {
5
+ aggregationExp,
6
+ aggregationResLevel = 4,
7
+ sqlQuery,
8
+ spatialDataColumn = 'h3:h3',
9
+ queryParameters
10
+ } = options;
11
+ const urlParameters = {
12
+ aggregationExp,
13
+ q: sqlQuery
14
+ };
15
+
16
+ if (aggregationResLevel) {
17
+ urlParameters.aggregationResLevel = String(aggregationResLevel);
18
+ }
19
+
20
+ if (spatialDataColumn) {
21
+ urlParameters.geo_column = spatialDataColumn;
22
+ }
23
+
24
+ if (queryParameters) {
25
+ urlParameters.queryParameters = JSON.stringify(queryParameters);
26
+ }
27
+
28
+ return cartoBaseSource('query', options, urlParameters);
29
+ };
30
+
31
+ export { cartoH3QuerySource };
32
+ //# sourceMappingURL=h3-query-source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/sources/h3-query-source.ts"],"names":["cartoBaseSource","cartoH3QuerySource","options","aggregationExp","aggregationResLevel","sqlQuery","spatialDataColumn","queryParameters","urlParameters","q","String","geo_column","JSON","stringify"],"mappings":"AACA,SAAQA,eAAR,QAA8B,eAA9B;;AAmBA,MAAMC,kBAA6D,GAAG,gBACpEC,OADoE,EAEtD;AACd,QAAM;AACJC,IAAAA,cADI;AAEJC,IAAAA,mBAAmB,GAAG,CAFlB;AAGJC,IAAAA,QAHI;AAIJC,IAAAA,iBAAiB,GAAG,OAJhB;AAKJC,IAAAA;AALI,MAMFL,OANJ;AAOA,QAAMM,aAA4B,GAAG;AAACL,IAAAA,cAAD;AAAiBM,IAAAA,CAAC,EAAEJ;AAApB,GAArC;;AAEA,MAAID,mBAAJ,EAAyB;AACvBI,IAAAA,aAAa,CAACJ,mBAAd,GAAoCM,MAAM,CAACN,mBAAD,CAA1C;AACD;;AACD,MAAIE,iBAAJ,EAAuB;AACrBE,IAAAA,aAAa,CAACG,UAAd,GAA2BL,iBAA3B;AACD;;AACD,MAAIC,eAAJ,EAAqB;AACnBC,IAAAA,aAAa,CAACD,eAAd,GAAgCK,IAAI,CAACC,SAAL,CAAeN,eAAf,CAAhC;AACD;;AACD,SAAOP,eAAe,CAAgB,OAAhB,EAAyBE,OAAzB,EAAkCM,aAAlC,CAAtB;AACD,CAtBD;;AAwBA,SAAQP,kBAAR","sourcesContent":["/* eslint-disable camelcase */\nimport {cartoBaseSource} from './base-source';\nimport {\n CartoAggregationOptions,\n CartoQuerySourceOptions,\n CartoSourceOptions,\n TilejsonSource\n} from './common';\n\nexport type CartoH3QuerySourceOptions = CartoSourceOptions &\n CartoQuerySourceOptions &\n CartoAggregationOptions;\ntype UrlParameters = {\n aggregationExp: string;\n aggregationResLevel?: string;\n geo_column?: string;\n q: string;\n queryParameters?: string;\n};\n\nconst cartoH3QuerySource: TilejsonSource<CartoH3QuerySourceOptions> = async function (\n options: CartoH3QuerySourceOptions\n): Promise<any> {\n const {\n aggregationExp,\n aggregationResLevel = 4,\n sqlQuery,\n spatialDataColumn = 'h3:h3',\n queryParameters\n } = options;\n const urlParameters: UrlParameters = {aggregationExp, q: sqlQuery};\n\n if (aggregationResLevel) {\n urlParameters.aggregationResLevel = String(aggregationResLevel);\n }\n if (spatialDataColumn) {\n urlParameters.geo_column = spatialDataColumn;\n }\n if (queryParameters) {\n urlParameters.queryParameters = JSON.stringify(queryParameters);\n }\n return cartoBaseSource<UrlParameters>('query', options, urlParameters);\n};\n\nexport {cartoH3QuerySource};\n"],"file":"h3-query-source.js"}
@@ -0,0 +1,32 @@
1
+ import { cartoBaseSource } from './base-source';
2
+
3
+ const cartoH3TableSource = async function (options) {
4
+ const {
5
+ aggregationExp,
6
+ aggregationResLevel = 4,
7
+ columns,
8
+ spatialDataColumn = 'h3:h3',
9
+ tableName
10
+ } = options;
11
+ const urlParameters = {
12
+ aggregationExp,
13
+ name: tableName
14
+ };
15
+
16
+ if (aggregationResLevel) {
17
+ urlParameters.aggregationResLevel = String(aggregationResLevel);
18
+ }
19
+
20
+ if (columns) {
21
+ urlParameters.columns = columns.join(',');
22
+ }
23
+
24
+ if (spatialDataColumn) {
25
+ urlParameters.geo_column = spatialDataColumn;
26
+ }
27
+
28
+ return cartoBaseSource('table', options, urlParameters);
29
+ };
30
+
31
+ export { cartoH3TableSource };
32
+ //# sourceMappingURL=h3-table-source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/sources/h3-table-source.ts"],"names":["cartoBaseSource","cartoH3TableSource","options","aggregationExp","aggregationResLevel","columns","spatialDataColumn","tableName","urlParameters","name","String","join","geo_column"],"mappings":"AACA,SAAQA,eAAR,QAA8B,eAA9B;;AAoBA,MAAMC,kBAA6D,GAAG,gBACpEC,OADoE,EAEtD;AACd,QAAM;AACJC,IAAAA,cADI;AAEJC,IAAAA,mBAAmB,GAAG,CAFlB;AAGJC,IAAAA,OAHI;AAIJC,IAAAA,iBAAiB,GAAG,OAJhB;AAKJC,IAAAA;AALI,MAMFL,OANJ;AAOA,QAAMM,aAA4B,GAAG;AAACL,IAAAA,cAAD;AAAiBM,IAAAA,IAAI,EAAEF;AAAvB,GAArC;;AAEA,MAAIH,mBAAJ,EAAyB;AACvBI,IAAAA,aAAa,CAACJ,mBAAd,GAAoCM,MAAM,CAACN,mBAAD,CAA1C;AACD;;AACD,MAAIC,OAAJ,EAAa;AACXG,IAAAA,aAAa,CAACH,OAAd,GAAwBA,OAAO,CAACM,IAAR,CAAa,GAAb,CAAxB;AACD;;AACD,MAAIL,iBAAJ,EAAuB;AACrBE,IAAAA,aAAa,CAACI,UAAd,GAA2BN,iBAA3B;AACD;;AACD,SAAON,eAAe,CAAgB,OAAhB,EAAyBE,OAAzB,EAAkCM,aAAlC,CAAtB;AACD,CAtBD;;AAwBA,SAAQP,kBAAR","sourcesContent":["/* eslint-disable camelcase */\nimport {cartoBaseSource} from './base-source';\nimport {\n CartoAggregationOptions,\n CartoSourceOptions,\n CartoTableSourceOptions,\n TilejsonSource\n} from './common';\n\nexport type CartoH3TableSourceOptions = CartoSourceOptions &\n CartoTableSourceOptions &\n CartoAggregationOptions;\n\ntype UrlParameters = {\n aggregationExp: string;\n aggregationResLevel?: string;\n columns?: string;\n geo_column?: string;\n name: string;\n};\n\nconst cartoH3TableSource: TilejsonSource<CartoH3TableSourceOptions> = async function (\n options: CartoH3TableSourceOptions\n): Promise<any> {\n const {\n aggregationExp,\n aggregationResLevel = 4,\n columns,\n spatialDataColumn = 'h3:h3',\n tableName\n } = options;\n const urlParameters: UrlParameters = {aggregationExp, name: tableName};\n\n if (aggregationResLevel) {\n urlParameters.aggregationResLevel = String(aggregationResLevel);\n }\n if (columns) {\n urlParameters.columns = columns.join(',');\n }\n if (spatialDataColumn) {\n urlParameters.geo_column = spatialDataColumn;\n }\n return cartoBaseSource<UrlParameters>('table', options, urlParameters);\n};\n\nexport {cartoH3TableSource};\n"],"file":"h3-table-source.js"}
@@ -0,0 +1,14 @@
1
+ import { cartoBaseSource } from './base-source';
2
+
3
+ const cartoH3TilesetSource = async function (options) {
4
+ const {
5
+ tableName
6
+ } = options;
7
+ const urlParameters = {
8
+ name: tableName
9
+ };
10
+ return cartoBaseSource('tileset', options, urlParameters);
11
+ };
12
+
13
+ export { cartoH3TilesetSource };
14
+ //# sourceMappingURL=h3-tileset-source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/sources/h3-tileset-source.ts"],"names":["cartoBaseSource","cartoH3TilesetSource","options","tableName","urlParameters","name"],"mappings":"AAAA,SAAQA,eAAR,QAA8B,eAA9B;;AAMA,MAAMC,oBAAiE,GAAG,gBACxEC,OADwE,EAE1D;AACd,QAAM;AAACC,IAAAA;AAAD,MAAcD,OAApB;AACA,QAAME,aAA4B,GAAG;AAACC,IAAAA,IAAI,EAAEF;AAAP,GAArC;AAEA,SAAOH,eAAe,CAAgB,SAAhB,EAA2BE,OAA3B,EAAoCE,aAApC,CAAtB;AACD,CAPD;;AASA,SAAQH,oBAAR","sourcesContent":["import {cartoBaseSource} from './base-source';\nimport {CartoSourceOptions, CartoTilesetSourceOptions, TilejsonSource} from './common';\n\nexport type CartoH3TilesetSourceOptions = CartoSourceOptions & CartoTilesetSourceOptions;\ntype UrlParameters = {name: string};\n\nconst cartoH3TilesetSource: TilejsonSource<CartoH3TilesetSourceOptions> = async function (\n options: CartoH3TilesetSourceOptions\n): Promise<any> {\n const {tableName} = options;\n const urlParameters: UrlParameters = {name: tableName};\n\n return cartoBaseSource<UrlParameters>('tileset', options, urlParameters);\n};\n\nexport {cartoH3TilesetSource};\n"],"file":"h3-tileset-source.js"}
@@ -0,0 +1,12 @@
1
+ export { SOURCE_DEFAULTS } from './common';
2
+ export { cartoH3QuerySource } from './h3-query-source';
3
+ export { cartoH3TableSource } from './h3-table-source';
4
+ export { cartoH3TilesetSource } from './h3-tileset-source';
5
+ export { cartoRasterSource } from './raster-source';
6
+ export { cartoQuadbinQuerySource } from './quadbin-query-source';
7
+ export { cartoQuadbinTableSource } from './quadbin-table-source';
8
+ export { cartoQuadbinTilesetSource } from './quadbin-tileset-source';
9
+ export { cartoVectorQuerySource } from './vector-query-source';
10
+ export { cartoVectorTableSource } from './vector-table-source';
11
+ export { cartoVectorTilesetSource } from './vector-tileset-source';
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/sources/index.ts"],"names":["SOURCE_DEFAULTS","cartoH3QuerySource","cartoH3TableSource","cartoH3TilesetSource","cartoRasterSource","cartoQuadbinQuerySource","cartoQuadbinTableSource","cartoQuadbinTilesetSource","cartoVectorQuerySource","cartoVectorTableSource","cartoVectorTilesetSource"],"mappings":"AAAA,SAAQA,eAAR,QAA8B,UAA9B;AAGA,SAAQC,kBAAR,QAAiC,mBAAjC;AAGA,SAAQC,kBAAR,QAAiC,mBAAjC;AAGA,SAAQC,oBAAR,QAAmC,qBAAnC;AAGA,SAAQC,iBAAR,QAAgC,iBAAhC;AAGA,SAAQC,uBAAR,QAAsC,wBAAtC;AAGA,SAAQC,uBAAR,QAAsC,wBAAtC;AAGA,SAAQC,yBAAR,QAAwC,0BAAxC;AAGA,SAAQC,sBAAR,QAAqC,uBAArC;AAGA,SAAQC,sBAAR,QAAqC,uBAArC;AAGA,SAAQC,wBAAR,QAAuC,yBAAvC","sourcesContent":["export {SOURCE_DEFAULTS} from './common';\nexport type {CartoTilejsonResult, GeojsonResult, JsonResult} from './common';\n\nexport {cartoH3QuerySource} from './h3-query-source';\nexport type {CartoH3QuerySourceOptions} from './h3-query-source';\n\nexport {cartoH3TableSource} from './h3-table-source';\nexport type {CartoH3TableSourceOptions} from './h3-table-source';\n\nexport {cartoH3TilesetSource} from './h3-tileset-source';\nexport type {CartoH3TilesetSourceOptions} from './h3-tileset-source';\n\nexport {cartoRasterSource} from './raster-source';\nexport type {CartoRasterSourceOptions} from './raster-source';\n\nexport {cartoQuadbinQuerySource} from './quadbin-query-source';\nexport type {CartoQuadbinQuerySourceOptions} from './quadbin-query-source';\n\nexport {cartoQuadbinTableSource} from './quadbin-table-source';\nexport type {CartoQuadbinTableSourceOptions} from './quadbin-table-source';\n\nexport {cartoQuadbinTilesetSource} from './quadbin-tileset-source';\nexport type {CartoQuadbinTilesetSourceOptions} from './quadbin-tileset-source';\n\nexport {cartoVectorQuerySource} from './vector-query-source';\nexport type {CartoVectorQuerySourceOptions} from './vector-query-source';\n\nexport {cartoVectorTableSource} from './vector-table-source';\nexport type {CartoVectorTableSourceOptions} from './vector-table-source';\n\nexport {cartoVectorTilesetSource} from './vector-tileset-source';\nexport type {CartoVectorTilesetSourceOptions} from './vector-tileset-source';\n"],"file":"index.js"}
@@ -0,0 +1,32 @@
1
+ import { cartoBaseSource } from './base-source';
2
+
3
+ const cartoQuadbinQuerySource = async function (options) {
4
+ const {
5
+ aggregationExp,
6
+ aggregationResLevel = 6,
7
+ sqlQuery,
8
+ spatialDataColumn = 'quadbin:quadbin',
9
+ queryParameters
10
+ } = options;
11
+ const urlParameters = {
12
+ aggregationExp,
13
+ q: sqlQuery
14
+ };
15
+
16
+ if (aggregationResLevel) {
17
+ urlParameters.aggregationResLevel = String(aggregationResLevel);
18
+ }
19
+
20
+ if (spatialDataColumn) {
21
+ urlParameters.geo_column = spatialDataColumn;
22
+ }
23
+
24
+ if (queryParameters) {
25
+ urlParameters.queryParameters = JSON.stringify(queryParameters);
26
+ }
27
+
28
+ return cartoBaseSource('query', options, urlParameters);
29
+ };
30
+
31
+ export { cartoQuadbinQuerySource };
32
+ //# sourceMappingURL=quadbin-query-source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/sources/quadbin-query-source.ts"],"names":["cartoBaseSource","cartoQuadbinQuerySource","options","aggregationExp","aggregationResLevel","sqlQuery","spatialDataColumn","queryParameters","urlParameters","q","String","geo_column","JSON","stringify"],"mappings":"AACA,SAAQA,eAAR,QAA8B,eAA9B;;AAoBA,MAAMC,uBAAuE,GAAG,gBAC9EC,OAD8E,EAEhE;AACd,QAAM;AACJC,IAAAA,cADI;AAEJC,IAAAA,mBAAmB,GAAG,CAFlB;AAGJC,IAAAA,QAHI;AAIJC,IAAAA,iBAAiB,GAAG,iBAJhB;AAKJC,IAAAA;AALI,MAMFL,OANJ;AAOA,QAAMM,aAA4B,GAAG;AAACL,IAAAA,cAAD;AAAiBM,IAAAA,CAAC,EAAEJ;AAApB,GAArC;;AAEA,MAAID,mBAAJ,EAAyB;AACvBI,IAAAA,aAAa,CAACJ,mBAAd,GAAoCM,MAAM,CAACN,mBAAD,CAA1C;AACD;;AACD,MAAIE,iBAAJ,EAAuB;AACrBE,IAAAA,aAAa,CAACG,UAAd,GAA2BL,iBAA3B;AACD;;AACD,MAAIC,eAAJ,EAAqB;AACnBC,IAAAA,aAAa,CAACD,eAAd,GAAgCK,IAAI,CAACC,SAAL,CAAeN,eAAf,CAAhC;AACD;;AACD,SAAOP,eAAe,CAAgB,OAAhB,EAAyBE,OAAzB,EAAkCM,aAAlC,CAAtB;AACD,CAtBD;;AAwBA,SAAQP,uBAAR","sourcesContent":["/* eslint-disable camelcase */\nimport {cartoBaseSource} from './base-source';\nimport {\n CartoAggregationOptions,\n CartoQuerySourceOptions,\n CartoSourceOptions,\n TilejsonSource\n} from './common';\n\nexport type CartoQuadbinQuerySourceOptions = CartoSourceOptions &\n CartoQuerySourceOptions &\n CartoAggregationOptions;\n\ntype UrlParameters = {\n aggregationExp: string;\n aggregationResLevel?: string;\n geo_column?: string;\n q: string;\n queryParameters?: string;\n};\n\nconst cartoQuadbinQuerySource: TilejsonSource<CartoQuadbinQuerySourceOptions> = async function (\n options: CartoQuadbinQuerySourceOptions\n): Promise<any> {\n const {\n aggregationExp,\n aggregationResLevel = 6,\n sqlQuery,\n spatialDataColumn = 'quadbin:quadbin',\n queryParameters\n } = options;\n const urlParameters: UrlParameters = {aggregationExp, q: sqlQuery};\n\n if (aggregationResLevel) {\n urlParameters.aggregationResLevel = String(aggregationResLevel);\n }\n if (spatialDataColumn) {\n urlParameters.geo_column = spatialDataColumn;\n }\n if (queryParameters) {\n urlParameters.queryParameters = JSON.stringify(queryParameters);\n }\n return cartoBaseSource<UrlParameters>('query', options, urlParameters);\n};\n\nexport {cartoQuadbinQuerySource};\n"],"file":"quadbin-query-source.js"}
@@ -0,0 +1,32 @@
1
+ import { cartoBaseSource } from './base-source';
2
+
3
+ const cartoQuadbinTableSource = async function (options) {
4
+ const {
5
+ aggregationExp,
6
+ aggregationResLevel = 6,
7
+ columns,
8
+ spatialDataColumn = 'quadbin:quadbin',
9
+ tableName
10
+ } = options;
11
+ const urlParameters = {
12
+ aggregationExp,
13
+ name: tableName
14
+ };
15
+
16
+ if (aggregationResLevel) {
17
+ urlParameters.aggregationResLevel = String(aggregationResLevel);
18
+ }
19
+
20
+ if (columns) {
21
+ urlParameters.columns = columns.join(',');
22
+ }
23
+
24
+ if (spatialDataColumn) {
25
+ urlParameters.geo_column = spatialDataColumn;
26
+ }
27
+
28
+ return cartoBaseSource('table', options, urlParameters);
29
+ };
30
+
31
+ export { cartoQuadbinTableSource };
32
+ //# sourceMappingURL=quadbin-table-source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/sources/quadbin-table-source.ts"],"names":["cartoBaseSource","cartoQuadbinTableSource","options","aggregationExp","aggregationResLevel","columns","spatialDataColumn","tableName","urlParameters","name","String","join","geo_column"],"mappings":"AACA,SAAQA,eAAR,QAA8B,eAA9B;;AAoBA,MAAMC,uBAAuE,GAAG,gBAC9EC,OAD8E,EAEhE;AACd,QAAM;AACJC,IAAAA,cADI;AAEJC,IAAAA,mBAAmB,GAAG,CAFlB;AAGJC,IAAAA,OAHI;AAIJC,IAAAA,iBAAiB,GAAG,iBAJhB;AAKJC,IAAAA;AALI,MAMFL,OANJ;AAOA,QAAMM,aAA4B,GAAG;AAACL,IAAAA,cAAD;AAAiBM,IAAAA,IAAI,EAAEF;AAAvB,GAArC;;AAEA,MAAIH,mBAAJ,EAAyB;AACvBI,IAAAA,aAAa,CAACJ,mBAAd,GAAoCM,MAAM,CAACN,mBAAD,CAA1C;AACD;;AACD,MAAIC,OAAJ,EAAa;AACXG,IAAAA,aAAa,CAACH,OAAd,GAAwBA,OAAO,CAACM,IAAR,CAAa,GAAb,CAAxB;AACD;;AACD,MAAIL,iBAAJ,EAAuB;AACrBE,IAAAA,aAAa,CAACI,UAAd,GAA2BN,iBAA3B;AACD;;AACD,SAAON,eAAe,CAAgB,OAAhB,EAAyBE,OAAzB,EAAkCM,aAAlC,CAAtB;AACD,CAtBD;;AAwBA,SAAQP,uBAAR","sourcesContent":["/* eslint-disable camelcase */\nimport {cartoBaseSource} from './base-source';\nimport {\n CartoAggregationOptions,\n CartoSourceOptions,\n CartoTableSourceOptions,\n TilejsonSource\n} from './common';\n\nexport type CartoQuadbinTableSourceOptions = CartoSourceOptions &\n CartoTableSourceOptions &\n CartoAggregationOptions;\n\ntype UrlParameters = {\n aggregationExp: string;\n aggregationResLevel?: string;\n columns?: string;\n geo_column?: string;\n name: string;\n};\n\nconst cartoQuadbinTableSource: TilejsonSource<CartoQuadbinTableSourceOptions> = async function (\n options: CartoQuadbinTableSourceOptions\n): Promise<any> {\n const {\n aggregationExp,\n aggregationResLevel = 6,\n columns,\n spatialDataColumn = 'quadbin:quadbin',\n tableName\n } = options;\n const urlParameters: UrlParameters = {aggregationExp, name: tableName};\n\n if (aggregationResLevel) {\n urlParameters.aggregationResLevel = String(aggregationResLevel);\n }\n if (columns) {\n urlParameters.columns = columns.join(',');\n }\n if (spatialDataColumn) {\n urlParameters.geo_column = spatialDataColumn;\n }\n return cartoBaseSource<UrlParameters>('table', options, urlParameters);\n};\n\nexport {cartoQuadbinTableSource};\n"],"file":"quadbin-table-source.js"}
@@ -0,0 +1,14 @@
1
+ import { cartoBaseSource } from './base-source';
2
+
3
+ const cartoQuadbinTilesetSource = async function (options) {
4
+ const {
5
+ tableName
6
+ } = options;
7
+ const urlParameters = {
8
+ name: tableName
9
+ };
10
+ return cartoBaseSource('tileset', options, urlParameters);
11
+ };
12
+
13
+ export { cartoQuadbinTilesetSource };
14
+ //# sourceMappingURL=quadbin-tileset-source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/sources/quadbin-tileset-source.ts"],"names":["cartoBaseSource","cartoQuadbinTilesetSource","options","tableName","urlParameters","name"],"mappings":"AAAA,SAAQA,eAAR,QAA8B,eAA9B;;AAMA,MAAMC,yBAA2E,GAAG,gBAClFC,OADkF,EAEpE;AACd,QAAM;AAACC,IAAAA;AAAD,MAAcD,OAApB;AACA,QAAME,aAA4B,GAAG;AAACC,IAAAA,IAAI,EAAEF;AAAP,GAArC;AAEA,SAAOH,eAAe,CAAgB,SAAhB,EAA2BE,OAA3B,EAAoCE,aAApC,CAAtB;AACD,CAPD;;AASA,SAAQH,yBAAR","sourcesContent":["import {cartoBaseSource} from './base-source';\nimport {CartoSourceOptions, CartoTilesetSourceOptions, TilejsonSource} from './common';\n\nexport type CartoQuadbinTilesetSourceOptions = CartoSourceOptions & CartoTilesetSourceOptions;\ntype UrlParameters = {name: string};\n\nconst cartoQuadbinTilesetSource: TilejsonSource<CartoQuadbinTilesetSourceOptions> = async function (\n options: CartoQuadbinTilesetSourceOptions\n): Promise<any> {\n const {tableName} = options;\n const urlParameters: UrlParameters = {name: tableName};\n\n return cartoBaseSource<UrlParameters>('tileset', options, urlParameters);\n};\n\nexport {cartoQuadbinTilesetSource};\n"],"file":"quadbin-tileset-source.js"}