@deck.gl/carto 9.0.0-beta.1 → 9.0.0-beta.11

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 (502) hide show
  1. package/{typed → dist}/api/carto-api-error.d.ts +1 -1
  2. package/dist/api/carto-api-error.d.ts.map +1 -0
  3. package/dist/api/carto-api-error.js +47 -0
  4. package/{typed → dist}/api/common.d.ts +2 -2
  5. package/{typed → dist}/api/common.d.ts.map +1 -1
  6. package/dist/{esm/api → api}/common.js +6 -6
  7. package/{typed → dist}/api/endpoints.d.ts +1 -1
  8. package/dist/api/endpoints.d.ts.map +1 -0
  9. package/dist/api/endpoints.js +22 -0
  10. package/{typed → dist}/api/fetch-map.d.ts.map +1 -1
  11. package/dist/api/fetch-map.js +196 -0
  12. package/dist/api/index.d.ts +7 -0
  13. package/dist/api/index.d.ts.map +1 -0
  14. package/dist/api/index.js +3 -0
  15. package/{typed → dist}/api/layer-map.d.ts +6 -6
  16. package/dist/api/layer-map.d.ts.map +1 -0
  17. package/dist/api/layer-map.js +373 -0
  18. package/dist/api/parse-map.js +250 -0
  19. package/{typed → dist}/api/query.d.ts +1 -1
  20. package/dist/api/query.d.ts.map +1 -0
  21. package/dist/api/query.js +24 -0
  22. package/dist/api/request-with-parameters.d.ts +8 -0
  23. package/dist/api/request-with-parameters.d.ts.map +1 -0
  24. package/dist/api/request-with-parameters.js +50 -0
  25. package/{typed → dist}/api/types.d.ts +18 -1
  26. package/dist/api/types.d.ts.map +1 -0
  27. package/dist/api/types.js +20 -0
  28. package/dist/basemap.js +9 -0
  29. package/dist/cartoRasterTile-worker.js +22 -58
  30. package/dist/cartoSpatialTile-worker.js +19 -52
  31. package/dist/cartoVectorTile-worker.js +19 -52
  32. package/dist/constants.d.ts +5 -0
  33. package/dist/constants.d.ts.map +1 -0
  34. package/dist/constants.js +4 -0
  35. package/dist/dist.dev.js +2001 -1714
  36. package/dist/index.cjs +2721 -0
  37. package/dist/index.cjs.map +7 -0
  38. package/dist/index.d.ts +37 -0
  39. package/dist/index.d.ts.map +1 -0
  40. package/dist/index.js +34 -0
  41. package/{typed → dist}/layers/h3-tile-layer.d.ts +2 -2
  42. package/dist/layers/h3-tile-layer.d.ts.map +1 -0
  43. package/dist/layers/h3-tile-layer.js +66 -0
  44. package/{typed → dist}/layers/h3-tileset-2d.d.ts +4 -1
  45. package/dist/layers/h3-tileset-2d.d.ts.map +1 -0
  46. package/dist/layers/h3-tileset-2d.js +120 -0
  47. package/dist/layers/point-label-layer.js +150 -0
  48. package/dist/layers/quadbin-layer.js +21 -0
  49. package/{typed → dist}/layers/quadbin-tile-layer.d.ts +3 -3
  50. package/dist/layers/quadbin-tile-layer.d.ts.map +1 -0
  51. package/dist/layers/quadbin-tile-layer.js +49 -0
  52. package/dist/layers/quadbin-tileset-2d.js +27 -0
  53. package/dist/layers/quadbin-utils.js +21 -0
  54. package/dist/layers/raster-layer-vertex.glsl.d.ts +3 -0
  55. package/dist/layers/raster-layer-vertex.glsl.js +68 -0
  56. package/{typed → dist}/layers/raster-layer.d.ts.map +1 -1
  57. package/dist/layers/raster-layer.js +95 -0
  58. package/{typed → dist}/layers/raster-tile-layer.d.ts +3 -3
  59. package/dist/layers/raster-tile-layer.d.ts.map +1 -0
  60. package/dist/layers/raster-tile-layer.js +45 -0
  61. package/dist/layers/schema/carto-properties-tile-loader.js +21 -0
  62. package/{typed → dist}/layers/schema/carto-properties-tile.d.ts +1 -1
  63. package/dist/layers/schema/carto-properties-tile.d.ts.map +1 -0
  64. package/dist/layers/schema/carto-properties-tile.js +14 -0
  65. package/{typed → dist}/layers/schema/carto-raster-tile-loader.d.ts +3 -3
  66. package/dist/layers/schema/carto-raster-tile-loader.d.ts.map +1 -0
  67. package/dist/layers/schema/carto-raster-tile-loader.js +35 -0
  68. package/{typed → dist}/layers/schema/carto-raster-tile.d.ts.map +1 -1
  69. package/dist/layers/schema/carto-raster-tile.js +44 -0
  70. package/dist/layers/schema/carto-spatial-tile-loader.js +35 -0
  71. package/{typed → dist}/layers/schema/carto-spatial-tile.d.ts +2 -2
  72. package/dist/layers/schema/carto-spatial-tile.d.ts.map +1 -0
  73. package/dist/layers/schema/carto-spatial-tile.js +38 -0
  74. package/dist/layers/schema/carto-tile.js +187 -0
  75. package/dist/layers/schema/carto-vector-tile-loader.js +65 -0
  76. package/dist/layers/schema/fast-pbf.js +7 -0
  77. package/dist/layers/schema/spatialjson-utils.js +15 -0
  78. package/dist/layers/schema/tile-loader-utils.js +6 -0
  79. package/{typed → dist}/layers/spatial-index-tile-layer.d.ts +1 -1
  80. package/{typed → dist}/layers/spatial-index-tile-layer.d.ts.map +1 -1
  81. package/dist/layers/spatial-index-tile-layer.js +67 -0
  82. package/{typed → dist}/layers/utils.d.ts +3 -3
  83. package/dist/layers/utils.d.ts.map +1 -0
  84. package/dist/layers/utils.js +74 -0
  85. package/{typed → dist}/layers/vector-tile-layer.d.ts +6 -5
  86. package/dist/layers/vector-tile-layer.d.ts.map +1 -0
  87. package/dist/layers/vector-tile-layer.js +106 -0
  88. package/{typed → dist}/sources/base-source.d.ts +2 -2
  89. package/dist/sources/base-source.d.ts.map +1 -0
  90. package/dist/sources/base-source.js +56 -0
  91. package/dist/sources/boundary-query-source.d.ts +11 -0
  92. package/dist/sources/boundary-query-source.d.ts.map +1 -0
  93. package/dist/sources/boundary-query-source.js +19 -0
  94. package/{typed → dist}/sources/boundary-table-source.d.ts +2 -2
  95. package/dist/sources/boundary-table-source.d.ts.map +1 -0
  96. package/dist/sources/boundary-table-source.js +16 -0
  97. package/{typed → dist}/sources/h3-query-source.d.ts +1 -1
  98. package/dist/sources/h3-query-source.d.ts.map +1 -0
  99. package/dist/sources/h3-query-source.js +19 -0
  100. package/{typed → dist}/sources/h3-table-source.d.ts +1 -1
  101. package/dist/sources/h3-table-source.d.ts.map +1 -0
  102. package/dist/sources/h3-table-source.js +16 -0
  103. package/{typed → dist}/sources/h3-tileset-source.d.ts +1 -1
  104. package/dist/sources/h3-tileset-source.d.ts.map +1 -0
  105. package/dist/sources/h3-tileset-source.js +6 -0
  106. package/dist/sources/index.d.ts +28 -0
  107. package/dist/sources/index.d.ts.map +1 -0
  108. package/dist/sources/index.js +13 -0
  109. package/{typed → dist}/sources/quadbin-query-source.d.ts +1 -1
  110. package/dist/sources/quadbin-query-source.d.ts.map +1 -0
  111. package/dist/sources/quadbin-query-source.js +19 -0
  112. package/{typed → dist}/sources/quadbin-table-source.d.ts +1 -1
  113. package/dist/sources/quadbin-table-source.d.ts.map +1 -0
  114. package/dist/sources/quadbin-table-source.js +16 -0
  115. package/{typed → dist}/sources/quadbin-tileset-source.d.ts +1 -1
  116. package/{typed → dist}/sources/quadbin-tileset-source.d.ts.map +1 -1
  117. package/dist/sources/quadbin-tileset-source.js +6 -0
  118. package/{typed → dist}/sources/raster-source.d.ts +1 -1
  119. package/dist/sources/raster-source.d.ts.map +1 -0
  120. package/dist/sources/raster-source.js +6 -0
  121. package/{typed → dist}/sources/types.d.ts +45 -7
  122. package/dist/sources/types.d.ts.map +1 -0
  123. package/dist/sources/types.js +1 -0
  124. package/dist/sources/vector-query-source.d.ts +4 -0
  125. package/dist/sources/vector-query-source.d.ts.map +1 -0
  126. package/dist/sources/vector-query-source.js +22 -0
  127. package/dist/sources/vector-table-source.d.ts +4 -0
  128. package/dist/sources/vector-table-source.d.ts.map +1 -0
  129. package/dist/sources/vector-table-source.js +19 -0
  130. package/{typed → dist}/sources/vector-tileset-source.d.ts +1 -1
  131. package/{typed → dist}/sources/vector-tileset-source.d.ts.map +1 -1
  132. package/dist/sources/vector-tileset-source.js +6 -0
  133. package/{typed → dist}/style/color-bins-style.d.ts +2 -2
  134. package/dist/style/color-bins-style.d.ts.map +1 -0
  135. package/dist/style/color-bins-style.js +21 -0
  136. package/{typed → dist}/style/color-categories-style.d.ts +2 -2
  137. package/dist/style/color-categories-style.d.ts.map +1 -0
  138. package/dist/style/color-categories-style.js +25 -0
  139. package/{typed → dist}/style/color-continuous-style.d.ts +2 -2
  140. package/dist/style/color-continuous-style.d.ts.map +1 -0
  141. package/dist/style/color-continuous-style.js +21 -0
  142. package/dist/style/palette.js +62 -0
  143. package/dist/style/utils.js +11 -0
  144. package/{typed → dist}/utils.d.ts +1 -1
  145. package/dist/utils.d.ts.map +1 -0
  146. package/dist/utils.js +45 -0
  147. package/dist/workers/cartoRasterTile.js +3 -0
  148. package/dist/workers/cartoSpatialTile.js +3 -0
  149. package/dist/workers/cartoVectorTile.js +3 -0
  150. package/dist.min.js +50 -94
  151. package/package.json +31 -26
  152. package/src/api/common.ts +5 -3
  153. package/src/api/fetch-map.ts +13 -4
  154. package/src/api/query.ts +1 -1
  155. package/src/api/request-with-parameters.ts +46 -38
  156. package/src/api/types.ts +20 -0
  157. package/src/constants.ts +5 -0
  158. package/src/index.ts +11 -7
  159. package/src/layers/h3-tile-layer.ts +5 -3
  160. package/src/layers/h3-tileset-2d.ts +56 -26
  161. package/src/layers/quadbin-tile-layer.ts +3 -1
  162. package/src/layers/raster-layer-vertex.glsl.ts +2 -2
  163. package/src/layers/raster-layer.ts +10 -16
  164. package/src/layers/raster-tile-layer.ts +3 -1
  165. package/src/layers/schema/carto-raster-tile-loader.ts +5 -5
  166. package/src/layers/schema/carto-raster-tile.ts +3 -4
  167. package/src/layers/spatial-index-tile-layer.ts +7 -3
  168. package/src/layers/vector-tile-layer.ts +19 -8
  169. package/src/sources/base-source.ts +9 -5
  170. package/src/sources/boundary-query-source.ts +27 -9
  171. package/src/sources/boundary-table-source.ts +13 -8
  172. package/src/sources/h3-query-source.ts +2 -1
  173. package/src/sources/h3-table-source.ts +2 -6
  174. package/src/sources/index.ts +7 -0
  175. package/src/sources/quadbin-query-source.ts +2 -1
  176. package/src/sources/quadbin-table-source.ts +2 -6
  177. package/src/sources/types.ts +49 -7
  178. package/src/sources/vector-query-source.ts +38 -4
  179. package/src/sources/vector-table-source.ts +32 -4
  180. package/src/utils.ts +5 -1
  181. package/dist/es5/api/carto-api-error.js +0 -83
  182. package/dist/es5/api/carto-api-error.js.map +0 -1
  183. package/dist/es5/api/common.js +0 -25
  184. package/dist/es5/api/common.js.map +0 -1
  185. package/dist/es5/api/endpoints.js +0 -61
  186. package/dist/es5/api/endpoints.js.map +0 -1
  187. package/dist/es5/api/fetch-map.js +0 -566
  188. package/dist/es5/api/fetch-map.js.map +0 -1
  189. package/dist/es5/api/index.js +0 -30
  190. package/dist/es5/api/index.js.map +0 -1
  191. package/dist/es5/api/layer-map.js +0 -634
  192. package/dist/es5/api/layer-map.js.map +0 -1
  193. package/dist/es5/api/parse-map.js +0 -347
  194. package/dist/es5/api/parse-map.js.map +0 -1
  195. package/dist/es5/api/query.js +0 -81
  196. package/dist/es5/api/query.js.map +0 -1
  197. package/dist/es5/api/request-with-parameters.js +0 -150
  198. package/dist/es5/api/request-with-parameters.js.map +0 -1
  199. package/dist/es5/api/types.js +0 -21
  200. package/dist/es5/api/types.js.map +0 -1
  201. package/dist/es5/basemap.js +0 -17
  202. package/dist/es5/basemap.js.map +0 -1
  203. package/dist/es5/index.js +0 -205
  204. package/dist/es5/index.js.map +0 -1
  205. package/dist/es5/layers/h3-tile-layer.js +0 -128
  206. package/dist/es5/layers/h3-tile-layer.js.map +0 -1
  207. package/dist/es5/layers/h3-tileset-2d.js +0 -172
  208. package/dist/es5/layers/h3-tileset-2d.js.map +0 -1
  209. package/dist/es5/layers/point-label-layer.js +0 -263
  210. package/dist/es5/layers/point-label-layer.js.map +0 -1
  211. package/dist/es5/layers/quadbin-layer.js +0 -72
  212. package/dist/es5/layers/quadbin-layer.js.map +0 -1
  213. package/dist/es5/layers/quadbin-tile-layer.js +0 -103
  214. package/dist/es5/layers/quadbin-tile-layer.js.map +0 -1
  215. package/dist/es5/layers/quadbin-tileset-2d.js +0 -76
  216. package/dist/es5/layers/quadbin-tileset-2d.js.map +0 -1
  217. package/dist/es5/layers/quadbin-utils.js +0 -60
  218. package/dist/es5/layers/quadbin-utils.js.map +0 -1
  219. package/dist/es5/layers/raster-layer-vertex.glsl.js +0 -9
  220. package/dist/es5/layers/raster-layer-vertex.glsl.js.map +0 -1
  221. package/dist/es5/layers/raster-layer.js +0 -174
  222. package/dist/es5/layers/raster-layer.js.map +0 -1
  223. package/dist/es5/layers/raster-tile-layer.js +0 -91
  224. package/dist/es5/layers/raster-tile-layer.js.map +0 -1
  225. package/dist/es5/layers/schema/carto-properties-tile-loader.js +0 -60
  226. package/dist/es5/layers/schema/carto-properties-tile-loader.js.map +0 -1
  227. package/dist/es5/layers/schema/carto-properties-tile.js +0 -38
  228. package/dist/es5/layers/schema/carto-properties-tile.js.map +0 -1
  229. package/dist/es5/layers/schema/carto-raster-tile-loader.js +0 -89
  230. package/dist/es5/layers/schema/carto-raster-tile-loader.js.map +0 -1
  231. package/dist/es5/layers/schema/carto-raster-tile.js +0 -79
  232. package/dist/es5/layers/schema/carto-raster-tile.js.map +0 -1
  233. package/dist/es5/layers/schema/carto-spatial-tile-loader.js +0 -81
  234. package/dist/es5/layers/schema/carto-spatial-tile-loader.js.map +0 -1
  235. package/dist/es5/layers/schema/carto-spatial-tile.js +0 -80
  236. package/dist/es5/layers/schema/carto-spatial-tile.js.map +0 -1
  237. package/dist/es5/layers/schema/carto-tile.js +0 -269
  238. package/dist/es5/layers/schema/carto-tile.js.map +0 -1
  239. package/dist/es5/layers/schema/carto-vector-tile-loader.js +0 -120
  240. package/dist/es5/layers/schema/carto-vector-tile-loader.js.map +0 -1
  241. package/dist/es5/layers/schema/fast-pbf.js +0 -14
  242. package/dist/es5/layers/schema/fast-pbf.js.map +0 -1
  243. package/dist/es5/layers/schema/spatialjson-utils.js +0 -42
  244. package/dist/es5/layers/schema/spatialjson-utils.js.map +0 -1
  245. package/dist/es5/layers/schema/tile-loader-utils.js +0 -17
  246. package/dist/es5/layers/schema/tile-loader-utils.js.map +0 -1
  247. package/dist/es5/layers/spatial-index-tile-layer.js +0 -126
  248. package/dist/es5/layers/spatial-index-tile-layer.js.map +0 -1
  249. package/dist/es5/layers/utils.js +0 -131
  250. package/dist/es5/layers/utils.js.map +0 -1
  251. package/dist/es5/layers/vector-tile-layer.js +0 -248
  252. package/dist/es5/layers/vector-tile-layer.js.map +0 -1
  253. package/dist/es5/sources/base-source.js +0 -128
  254. package/dist/es5/sources/base-source.js.map +0 -1
  255. package/dist/es5/sources/boundary-query-source.js +0 -51
  256. package/dist/es5/sources/boundary-query-source.js.map +0 -1
  257. package/dist/es5/sources/boundary-table-source.js +0 -51
  258. package/dist/es5/sources/boundary-table-source.js.map +0 -1
  259. package/dist/es5/sources/h3-query-source.js +0 -56
  260. package/dist/es5/sources/h3-query-source.js.map +0 -1
  261. package/dist/es5/sources/h3-table-source.js +0 -56
  262. package/dist/es5/sources/h3-table-source.js.map +0 -1
  263. package/dist/es5/sources/h3-tileset-source.js +0 -43
  264. package/dist/es5/sources/h3-tileset-source.js.map +0 -1
  265. package/dist/es5/sources/index.js +0 -110
  266. package/dist/es5/sources/index.js.map +0 -1
  267. package/dist/es5/sources/quadbin-query-source.js +0 -56
  268. package/dist/es5/sources/quadbin-query-source.js.map +0 -1
  269. package/dist/es5/sources/quadbin-table-source.js +0 -56
  270. package/dist/es5/sources/quadbin-table-source.js.map +0 -1
  271. package/dist/es5/sources/quadbin-tileset-source.js +0 -43
  272. package/dist/es5/sources/quadbin-tileset-source.js.map +0 -1
  273. package/dist/es5/sources/raster-source.js +0 -43
  274. package/dist/es5/sources/raster-source.js.map +0 -1
  275. package/dist/es5/sources/types.js +0 -2
  276. package/dist/es5/sources/types.js.map +0 -1
  277. package/dist/es5/sources/vector-query-source.js +0 -51
  278. package/dist/es5/sources/vector-query-source.js.map +0 -1
  279. package/dist/es5/sources/vector-table-source.js +0 -51
  280. package/dist/es5/sources/vector-table-source.js.map +0 -1
  281. package/dist/es5/sources/vector-tileset-source.js +0 -43
  282. package/dist/es5/sources/vector-tileset-source.js.map +0 -1
  283. package/dist/es5/style/color-bins-style.js +0 -37
  284. package/dist/es5/style/color-bins-style.js.map +0 -1
  285. package/dist/es5/style/color-categories-style.js +0 -65
  286. package/dist/es5/style/color-categories-style.js.map +0 -1
  287. package/dist/es5/style/color-continuous-style.js +0 -37
  288. package/dist/es5/style/color-continuous-style.js.map +0 -1
  289. package/dist/es5/style/palette.js +0 -81
  290. package/dist/es5/style/palette.js.map +0 -1
  291. package/dist/es5/style/utils.js +0 -28
  292. package/dist/es5/style/utils.js.map +0 -1
  293. package/dist/es5/utils.js +0 -65
  294. package/dist/es5/utils.js.map +0 -1
  295. package/dist/es5/workers/cartoRasterTile.js +0 -10
  296. package/dist/es5/workers/cartoRasterTile.js.map +0 -1
  297. package/dist/es5/workers/cartoSpatialTile.js +0 -10
  298. package/dist/es5/workers/cartoSpatialTile.js.map +0 -1
  299. package/dist/es5/workers/cartoVectorTile.js +0 -10
  300. package/dist/es5/workers/cartoVectorTile.js.map +0 -1
  301. package/dist/esm/api/carto-api-error.js +0 -46
  302. package/dist/esm/api/carto-api-error.js.map +0 -1
  303. package/dist/esm/api/common.js.map +0 -1
  304. package/dist/esm/api/endpoints.js +0 -41
  305. package/dist/esm/api/endpoints.js.map +0 -1
  306. package/dist/esm/api/fetch-map.js +0 -298
  307. package/dist/esm/api/fetch-map.js.map +0 -1
  308. package/dist/esm/api/index.js +0 -4
  309. package/dist/esm/api/index.js.map +0 -1
  310. package/dist/esm/api/layer-map.js +0 -520
  311. package/dist/esm/api/layer-map.js.map +0 -1
  312. package/dist/esm/api/parse-map.js +0 -343
  313. package/dist/esm/api/parse-map.js.map +0 -1
  314. package/dist/esm/api/query.js +0 -40
  315. package/dist/esm/api/query.js.map +0 -1
  316. package/dist/esm/api/request-with-parameters.js +0 -82
  317. package/dist/esm/api/request-with-parameters.js.map +0 -1
  318. package/dist/esm/api/types.js +0 -14
  319. package/dist/esm/api/types.js.map +0 -1
  320. package/dist/esm/basemap.js +0 -10
  321. package/dist/esm/basemap.js.map +0 -1
  322. package/dist/esm/index.js +0 -35
  323. package/dist/esm/index.js.map +0 -1
  324. package/dist/esm/layers/h3-tile-layer.js +0 -77
  325. package/dist/esm/layers/h3-tile-layer.js.map +0 -1
  326. package/dist/esm/layers/h3-tileset-2d.js +0 -119
  327. package/dist/esm/layers/h3-tileset-2d.js.map +0 -1
  328. package/dist/esm/layers/point-label-layer.js +0 -194
  329. package/dist/esm/layers/point-label-layer.js.map +0 -1
  330. package/dist/esm/layers/quadbin-layer.js +0 -31
  331. package/dist/esm/layers/quadbin-layer.js.map +0 -1
  332. package/dist/esm/layers/quadbin-tile-layer.js +0 -51
  333. package/dist/esm/layers/quadbin-tile-layer.js.map +0 -1
  334. package/dist/esm/layers/quadbin-tileset-2d.js +0 -39
  335. package/dist/esm/layers/quadbin-tileset-2d.js.map +0 -1
  336. package/dist/esm/layers/quadbin-utils.js +0 -23
  337. package/dist/esm/layers/quadbin-utils.js.map +0 -1
  338. package/dist/esm/layers/raster-layer-vertex.glsl.js +0 -99
  339. package/dist/esm/layers/raster-layer-vertex.glsl.js.map +0 -1
  340. package/dist/esm/layers/raster-layer.js +0 -108
  341. package/dist/esm/layers/raster-layer.js.map +0 -1
  342. package/dist/esm/layers/raster-tile-layer.js +0 -48
  343. package/dist/esm/layers/raster-tile-layer.js.map +0 -1
  344. package/dist/esm/layers/schema/carto-properties-tile-loader.js +0 -23
  345. package/dist/esm/layers/schema/carto-properties-tile-loader.js.map +0 -1
  346. package/dist/esm/layers/schema/carto-properties-tile.js +0 -18
  347. package/dist/esm/layers/schema/carto-properties-tile.js.map +0 -1
  348. package/dist/esm/layers/schema/carto-raster-tile-loader.js +0 -54
  349. package/dist/esm/layers/schema/carto-raster-tile-loader.js.map +0 -1
  350. package/dist/esm/layers/schema/carto-raster-tile.js +0 -51
  351. package/dist/esm/layers/schema/carto-raster-tile.js.map +0 -1
  352. package/dist/esm/layers/schema/carto-spatial-tile-loader.js +0 -44
  353. package/dist/esm/layers/schema/carto-spatial-tile-loader.js.map +0 -1
  354. package/dist/esm/layers/schema/carto-spatial-tile.js +0 -47
  355. package/dist/esm/layers/schema/carto-spatial-tile.js.map +0 -1
  356. package/dist/esm/layers/schema/carto-tile.js +0 -197
  357. package/dist/esm/layers/schema/carto-tile.js.map +0 -1
  358. package/dist/esm/layers/schema/carto-vector-tile-loader.js +0 -82
  359. package/dist/esm/layers/schema/carto-vector-tile-loader.js.map +0 -1
  360. package/dist/esm/layers/schema/fast-pbf.js +0 -7
  361. package/dist/esm/layers/schema/fast-pbf.js.map +0 -1
  362. package/dist/esm/layers/schema/spatialjson-utils.js +0 -27
  363. package/dist/esm/layers/schema/spatialjson-utils.js.map +0 -1
  364. package/dist/esm/layers/schema/tile-loader-utils.js +0 -7
  365. package/dist/esm/layers/schema/tile-loader-utils.js.map +0 -1
  366. package/dist/esm/layers/spatial-index-tile-layer.js +0 -86
  367. package/dist/esm/layers/spatial-index-tile-layer.js.map +0 -1
  368. package/dist/esm/layers/utils.js +0 -85
  369. package/dist/esm/layers/utils.js.map +0 -1
  370. package/dist/esm/layers/vector-tile-layer.js +0 -143
  371. package/dist/esm/layers/vector-tile-layer.js.map +0 -1
  372. package/dist/esm/sources/base-source.js +0 -72
  373. package/dist/esm/sources/base-source.js.map +0 -1
  374. package/dist/esm/sources/boundary-query-source.js +0 -21
  375. package/dist/esm/sources/boundary-query-source.js.map +0 -1
  376. package/dist/esm/sources/boundary-table-source.js +0 -21
  377. package/dist/esm/sources/boundary-table-source.js.map +0 -1
  378. package/dist/esm/sources/h3-query-source.js +0 -27
  379. package/dist/esm/sources/h3-query-source.js.map +0 -1
  380. package/dist/esm/sources/h3-table-source.js +0 -27
  381. package/dist/esm/sources/h3-table-source.js.map +0 -1
  382. package/dist/esm/sources/h3-tileset-source.js +0 -11
  383. package/dist/esm/sources/h3-tileset-source.js.map +0 -1
  384. package/dist/esm/sources/index.js +0 -14
  385. package/dist/esm/sources/index.js.map +0 -1
  386. package/dist/esm/sources/quadbin-query-source.js +0 -27
  387. package/dist/esm/sources/quadbin-query-source.js.map +0 -1
  388. package/dist/esm/sources/quadbin-table-source.js +0 -27
  389. package/dist/esm/sources/quadbin-table-source.js.map +0 -1
  390. package/dist/esm/sources/quadbin-tileset-source.js +0 -11
  391. package/dist/esm/sources/quadbin-tileset-source.js.map +0 -1
  392. package/dist/esm/sources/raster-source.js +0 -11
  393. package/dist/esm/sources/raster-source.js.map +0 -1
  394. package/dist/esm/sources/types.js +0 -2
  395. package/dist/esm/sources/types.js.map +0 -1
  396. package/dist/esm/sources/vector-query-source.js +0 -20
  397. package/dist/esm/sources/vector-query-source.js.map +0 -1
  398. package/dist/esm/sources/vector-table-source.js +0 -20
  399. package/dist/esm/sources/vector-table-source.js.map +0 -1
  400. package/dist/esm/sources/vector-tileset-source.js +0 -11
  401. package/dist/esm/sources/vector-tileset-source.js.map +0 -1
  402. package/dist/esm/style/color-bins-style.js +0 -19
  403. package/dist/esm/style/color-bins-style.js.map +0 -1
  404. package/dist/esm/style/color-categories-style.js +0 -24
  405. package/dist/esm/style/color-categories-style.js.map +0 -1
  406. package/dist/esm/style/color-continuous-style.js +0 -19
  407. package/dist/esm/style/color-continuous-style.js.map +0 -1
  408. package/dist/esm/style/palette.js +0 -51
  409. package/dist/esm/style/palette.js.map +0 -1
  410. package/dist/esm/style/utils.js +0 -15
  411. package/dist/esm/style/utils.js.map +0 -1
  412. package/dist/esm/utils.js +0 -51
  413. package/dist/esm/utils.js.map +0 -1
  414. package/dist/esm/workers/cartoRasterTile.js +0 -4
  415. package/dist/esm/workers/cartoRasterTile.js.map +0 -1
  416. package/dist/esm/workers/cartoSpatialTile.js +0 -4
  417. package/dist/esm/workers/cartoSpatialTile.js.map +0 -1
  418. package/dist/esm/workers/cartoVectorTile.js +0 -4
  419. package/dist/esm/workers/cartoVectorTile.js.map +0 -1
  420. package/src/.DS_Store +0 -0
  421. package/typed/api/carto-api-error.d.ts.map +0 -1
  422. package/typed/api/endpoints.d.ts.map +0 -1
  423. package/typed/api/index.d.ts +0 -7
  424. package/typed/api/index.d.ts.map +0 -1
  425. package/typed/api/layer-map.d.ts.map +0 -1
  426. package/typed/api/query.d.ts.map +0 -1
  427. package/typed/api/request-with-parameters.d.ts +0 -9
  428. package/typed/api/request-with-parameters.d.ts.map +0 -1
  429. package/typed/api/types.d.ts.map +0 -1
  430. package/typed/index.d.ts +0 -37
  431. package/typed/index.d.ts.map +0 -1
  432. package/typed/layers/h3-tile-layer.d.ts.map +0 -1
  433. package/typed/layers/h3-tileset-2d.d.ts.map +0 -1
  434. package/typed/layers/quadbin-tile-layer.d.ts.map +0 -1
  435. package/typed/layers/raster-layer-vertex.glsl.d.ts +0 -3
  436. package/typed/layers/raster-tile-layer.d.ts.map +0 -1
  437. package/typed/layers/schema/carto-properties-tile.d.ts.map +0 -1
  438. package/typed/layers/schema/carto-raster-tile-loader.d.ts.map +0 -1
  439. package/typed/layers/schema/carto-spatial-tile.d.ts.map +0 -1
  440. package/typed/layers/utils.d.ts.map +0 -1
  441. package/typed/layers/vector-tile-layer.d.ts.map +0 -1
  442. package/typed/sources/base-source.d.ts.map +0 -1
  443. package/typed/sources/boundary-query-source.d.ts +0 -10
  444. package/typed/sources/boundary-query-source.d.ts.map +0 -1
  445. package/typed/sources/boundary-table-source.d.ts.map +0 -1
  446. package/typed/sources/h3-query-source.d.ts.map +0 -1
  447. package/typed/sources/h3-table-source.d.ts.map +0 -1
  448. package/typed/sources/h3-tileset-source.d.ts.map +0 -1
  449. package/typed/sources/index.d.ts +0 -27
  450. package/typed/sources/index.d.ts.map +0 -1
  451. package/typed/sources/quadbin-query-source.d.ts.map +0 -1
  452. package/typed/sources/quadbin-table-source.d.ts.map +0 -1
  453. package/typed/sources/raster-source.d.ts.map +0 -1
  454. package/typed/sources/types.d.ts.map +0 -1
  455. package/typed/sources/vector-query-source.d.ts +0 -4
  456. package/typed/sources/vector-query-source.d.ts.map +0 -1
  457. package/typed/sources/vector-table-source.d.ts +0 -4
  458. package/typed/sources/vector-table-source.d.ts.map +0 -1
  459. package/typed/style/color-bins-style.d.ts.map +0 -1
  460. package/typed/style/color-categories-style.d.ts.map +0 -1
  461. package/typed/style/color-continuous-style.d.ts.map +0 -1
  462. package/typed/utils.d.ts.map +0 -1
  463. /package/{typed → dist}/api/fetch-map.d.ts +0 -0
  464. /package/{typed → dist}/api/parse-map.d.ts +0 -0
  465. /package/{typed → dist}/api/parse-map.d.ts.map +0 -0
  466. /package/{typed → dist}/basemap.d.ts +0 -0
  467. /package/{typed → dist}/basemap.d.ts.map +0 -0
  468. /package/{typed → dist}/layers/point-label-layer.d.ts +0 -0
  469. /package/{typed → dist}/layers/point-label-layer.d.ts.map +0 -0
  470. /package/{typed → dist}/layers/quadbin-layer.d.ts +0 -0
  471. /package/{typed → dist}/layers/quadbin-layer.d.ts.map +0 -0
  472. /package/{typed → dist}/layers/quadbin-tileset-2d.d.ts +0 -0
  473. /package/{typed → dist}/layers/quadbin-tileset-2d.d.ts.map +0 -0
  474. /package/{typed → dist}/layers/quadbin-utils.d.ts +0 -0
  475. /package/{typed → dist}/layers/quadbin-utils.d.ts.map +0 -0
  476. /package/{typed → dist}/layers/raster-layer-vertex.glsl.d.ts.map +0 -0
  477. /package/{typed → dist}/layers/raster-layer.d.ts +0 -0
  478. /package/{typed → dist}/layers/schema/carto-properties-tile-loader.d.ts +0 -0
  479. /package/{typed → dist}/layers/schema/carto-properties-tile-loader.d.ts.map +0 -0
  480. /package/{typed → dist}/layers/schema/carto-raster-tile.d.ts +0 -0
  481. /package/{typed → dist}/layers/schema/carto-spatial-tile-loader.d.ts +0 -0
  482. /package/{typed → dist}/layers/schema/carto-spatial-tile-loader.d.ts.map +0 -0
  483. /package/{typed → dist}/layers/schema/carto-tile.d.ts +0 -0
  484. /package/{typed → dist}/layers/schema/carto-tile.d.ts.map +0 -0
  485. /package/{typed → dist}/layers/schema/carto-vector-tile-loader.d.ts +0 -0
  486. /package/{typed → dist}/layers/schema/carto-vector-tile-loader.d.ts.map +0 -0
  487. /package/{typed → dist}/layers/schema/fast-pbf.d.ts +0 -0
  488. /package/{typed → dist}/layers/schema/fast-pbf.d.ts.map +0 -0
  489. /package/{typed → dist}/layers/schema/spatialjson-utils.d.ts +0 -0
  490. /package/{typed → dist}/layers/schema/spatialjson-utils.d.ts.map +0 -0
  491. /package/{typed → dist}/layers/schema/tile-loader-utils.d.ts +0 -0
  492. /package/{typed → dist}/layers/schema/tile-loader-utils.d.ts.map +0 -0
  493. /package/{typed → dist}/style/palette.d.ts +0 -0
  494. /package/{typed → dist}/style/palette.d.ts.map +0 -0
  495. /package/{typed → dist}/style/utils.d.ts +0 -0
  496. /package/{typed → dist}/style/utils.d.ts.map +0 -0
  497. /package/{typed → dist}/workers/cartoRasterTile.d.ts +0 -0
  498. /package/{typed → dist}/workers/cartoRasterTile.d.ts.map +0 -0
  499. /package/{typed → dist}/workers/cartoSpatialTile.d.ts +0 -0
  500. /package/{typed → dist}/workers/cartoSpatialTile.d.ts.map +0 -0
  501. /package/{typed → dist}/workers/cartoVectorTile.d.ts +0 -0
  502. /package/{typed → dist}/workers/cartoVectorTile.d.ts.map +0 -0
@@ -0,0 +1,373 @@
1
+ import { deviation, extent, groupSort, median, variance } from 'd3-array';
2
+ import { rgb } from 'd3-color';
3
+ import { scaleLinear, scaleOrdinal, scaleLog, scalePoint, scaleQuantile, scaleQuantize, scaleSqrt, scaleThreshold } from 'd3-scale';
4
+ import { format as d3Format } from 'd3-format';
5
+ import moment from 'moment-timezone';
6
+ import { CPUGridLayer, HeatmapLayer, HexagonLayer } from '@deck.gl/aggregation-layers';
7
+ import { GeoJsonLayer } from '@deck.gl/layers';
8
+ import { H3HexagonLayer } from '@deck.gl/geo-layers';
9
+ import H3TileLayer from "../layers/h3-tile-layer.js";
10
+ import QuadbinTileLayer from "../layers/quadbin-tile-layer.js";
11
+ import RasterTileLayer from "../layers/raster-tile-layer.js";
12
+ import VectorTileLayer from "../layers/vector-tile-layer.js";
13
+ import { assert, createBinaryProxy, scaleIdentity } from "../utils.js";
14
+ const SCALE_FUNCS = {
15
+ linear: scaleLinear,
16
+ ordinal: scaleOrdinal,
17
+ log: scaleLog,
18
+ point: scalePoint,
19
+ quantile: scaleQuantile,
20
+ quantize: scaleQuantize,
21
+ sqrt: scaleSqrt,
22
+ custom: scaleThreshold,
23
+ identity: scaleIdentity
24
+ };
25
+ function identity(v) {
26
+ return v;
27
+ }
28
+ const UNKNOWN_COLOR = '#868d91';
29
+ export const AGGREGATION = {
30
+ average: 'MEAN',
31
+ maximum: 'MAX',
32
+ minimum: 'MIN',
33
+ sum: 'SUM'
34
+ };
35
+ export const OPACITY_MAP = {
36
+ getFillColor: 'opacity',
37
+ getLineColor: 'strokeOpacity',
38
+ getTextColor: 'opacity'
39
+ };
40
+ const AGGREGATION_FUNC = {
41
+ 'count unique': (values, accessor) => groupSort(values, v => v.length, accessor).length,
42
+ median,
43
+ // Unfortunately mode() is only available in d3-array@3+ which is ESM only
44
+ mode: (values, accessor) => groupSort(values, v => v.length, accessor).pop(),
45
+ stddev: deviation,
46
+ variance
47
+ };
48
+ const hexToRGBA = c => {
49
+ const { r, g, b, opacity } = rgb(c);
50
+ return [r, g, b, 255 * opacity];
51
+ };
52
+ // Kepler prop value -> Deck.gl prop value
53
+ // Supports nested definitions, and function transforms:
54
+ // {keplerProp: 'deckProp'} is equivalent to:
55
+ // {keplerProp: x => ({deckProp: x})}
56
+ const sharedPropMap = {
57
+ // Apply the value of Kepler `color` prop to the deck `getFillColor` prop
58
+ color: 'getFillColor',
59
+ isVisible: 'visible',
60
+ label: 'cartoLabel',
61
+ textLabel: {
62
+ alignment: 'getTextAlignmentBaseline',
63
+ anchor: 'getTextAnchor',
64
+ // Apply the value of Kepler `textLabel.color` prop to the deck `getTextColor` prop
65
+ color: 'getTextColor',
66
+ size: 'getTextSize'
67
+ },
68
+ visConfig: {
69
+ enable3d: 'extruded',
70
+ elevationScale: 'elevationScale',
71
+ filled: 'filled',
72
+ strokeColor: 'getLineColor',
73
+ stroked: 'stroked',
74
+ thickness: 'getLineWidth',
75
+ radius: 'getPointRadius',
76
+ wireframe: 'wireframe'
77
+ }
78
+ };
79
+ const customMarkersPropsMap = {
80
+ color: 'getIconColor',
81
+ visConfig: {
82
+ radius: 'getIconSize'
83
+ }
84
+ };
85
+ const aggregationVisConfig = {
86
+ colorAggregation: x => ({ colorAggregation: AGGREGATION[x] || AGGREGATION.sum }),
87
+ colorRange: x => ({ colorRange: x.colors.map(hexToRGBA) }),
88
+ coverage: 'coverage',
89
+ elevationPercentile: ['elevationLowerPercentile', 'elevationUpperPercentile'],
90
+ percentile: ['lowerPercentile', 'upperPercentile']
91
+ };
92
+ const defaultProps = {
93
+ lineMiterLimit: 2,
94
+ lineWidthUnits: 'pixels',
95
+ pointRadiusUnits: 'pixels',
96
+ rounded: true,
97
+ wrapLongitude: false
98
+ };
99
+ function mergePropMaps(a = {}, b = {}) {
100
+ return { ...a, ...b, visConfig: { ...a.visConfig, ...b.visConfig } };
101
+ }
102
+ export function getLayer(type, config, dataset) {
103
+ let basePropMap = sharedPropMap;
104
+ if (config.visConfig?.customMarkers) {
105
+ basePropMap = mergePropMaps(sharedPropMap, customMarkersPropsMap);
106
+ }
107
+ if (type === 'mvt' || type === 'tileset' || type === 'h3' || type === 'quadbin') {
108
+ return getTileLayer(dataset, basePropMap);
109
+ }
110
+ const geoColumn = dataset?.geoColumn;
111
+ const getPosition = d => d[geoColumn].coordinates;
112
+ const hexagonId = config.columns?.hex_id;
113
+ const layerTypeDefs = {
114
+ point: {
115
+ Layer: GeoJsonLayer,
116
+ propMap: {
117
+ columns: {
118
+ altitude: x => ({ parameters: { depthTest: Boolean(x) } })
119
+ },
120
+ visConfig: { outline: 'stroked' }
121
+ }
122
+ },
123
+ geojson: {
124
+ Layer: GeoJsonLayer
125
+ },
126
+ grid: {
127
+ Layer: CPUGridLayer,
128
+ propMap: { visConfig: { ...aggregationVisConfig, worldUnitSize: x => ({ cellSize: 1000 * x }) } },
129
+ defaultProps: { getPosition }
130
+ },
131
+ heatmap: {
132
+ Layer: HeatmapLayer,
133
+ propMap: { visConfig: { ...aggregationVisConfig, radius: 'radiusPixels' } },
134
+ defaultProps: { getPosition }
135
+ },
136
+ hexagon: {
137
+ Layer: HexagonLayer,
138
+ propMap: { visConfig: { ...aggregationVisConfig, worldUnitSize: x => ({ radius: 1000 * x }) } },
139
+ defaultProps: { getPosition }
140
+ },
141
+ hexagonId: {
142
+ Layer: H3HexagonLayer,
143
+ propMap: { visConfig: { coverage: 'coverage' } },
144
+ defaultProps: { getHexagon: d => d[hexagonId], stroked: false }
145
+ }
146
+ };
147
+ const layer = layerTypeDefs[type];
148
+ assert(layer, `Unsupported layer type: ${type}`);
149
+ return {
150
+ ...layer,
151
+ propMap: mergePropMaps(basePropMap, layer.propMap),
152
+ defaultProps: { ...defaultProps, ...layer.defaultProps }
153
+ };
154
+ }
155
+ export function layerFromTileDataset(scheme, type) {
156
+ if (type === 'raster') {
157
+ return RasterTileLayer;
158
+ }
159
+ if (scheme === 'h3') {
160
+ return H3TileLayer;
161
+ }
162
+ if (scheme === 'quadbin') {
163
+ return QuadbinTileLayer;
164
+ }
165
+ return VectorTileLayer;
166
+ }
167
+ function getTileLayer(dataset, basePropMap) {
168
+ const { aggregationExp, aggregationResLevel, data: { scheme } } = dataset;
169
+ return {
170
+ Layer: layerFromTileDataset(scheme),
171
+ propMap: basePropMap,
172
+ defaultProps: {
173
+ ...defaultProps,
174
+ ...(aggregationExp && { aggregationExp }),
175
+ ...(aggregationResLevel && { aggregationResLevel }),
176
+ uniqueIdProperty: 'geoid'
177
+ }
178
+ };
179
+ }
180
+ function domainFromAttribute(attribute, scaleType, scaleLength) {
181
+ if (scaleType === 'ordinal' || scaleType === 'point') {
182
+ return attribute.categories.map(c => c.category).filter(c => c !== undefined && c !== null);
183
+ }
184
+ if (scaleType === 'quantile' && attribute.quantiles) {
185
+ return attribute.quantiles.global
186
+ ? attribute.quantiles.global[scaleLength]
187
+ : attribute.quantiles[scaleLength];
188
+ }
189
+ let { min } = attribute;
190
+ if (scaleType === 'log' && min === 0) {
191
+ min = 1e-5;
192
+ }
193
+ return [min, attribute.max];
194
+ }
195
+ function domainFromValues(values, scaleType) {
196
+ if (scaleType === 'ordinal' || scaleType === 'point') {
197
+ return groupSort(values, g => -g.length, d => d);
198
+ }
199
+ else if (scaleType === 'quantile') {
200
+ return values.sort((a, b) => a - b);
201
+ }
202
+ else if (scaleType === 'log') {
203
+ const [d0, d1] = extent(values);
204
+ return [d0 === 0 ? 1e-5 : d0, d1];
205
+ }
206
+ return extent(values);
207
+ }
208
+ function calculateDomain(data, name, scaleType, scaleLength) {
209
+ if (data.tilestats) {
210
+ // Tileset data type
211
+ const { attributes } = data.tilestats.layers[0];
212
+ const attribute = attributes.find(a => a.attribute === name);
213
+ return domainFromAttribute(attribute, scaleType, scaleLength);
214
+ }
215
+ else if (data.features) {
216
+ // GeoJSON data type
217
+ const values = data.features.map(({ properties }) => properties[name]);
218
+ return domainFromValues(values, scaleType);
219
+ }
220
+ else if (Array.isArray(data) && data[0][name] !== undefined) {
221
+ // JSON data type
222
+ const values = data.map(properties => properties[name]);
223
+ return domainFromValues(values, scaleType);
224
+ }
225
+ return [0, 1];
226
+ }
227
+ function normalizeAccessor(accessor, data) {
228
+ if (data.features || data.tilestats) {
229
+ return (object, info) => {
230
+ if (object) {
231
+ return accessor(object.properties || object.__source.object.properties);
232
+ }
233
+ const { data, index } = info;
234
+ const proxy = createBinaryProxy(data, index);
235
+ return accessor(proxy);
236
+ };
237
+ }
238
+ return accessor;
239
+ }
240
+ export function opacityToAlpha(opacity) {
241
+ return opacity !== undefined ? Math.round(255 * Math.pow(opacity, 1 / 2.2)) : 255;
242
+ }
243
+ function getAccessorKeys(name, aggregation) {
244
+ let keys = [name];
245
+ if (aggregation) {
246
+ // Snowflake will capitalized the keys, need to check lower and upper case version
247
+ keys = keys.concat([aggregation, aggregation.toUpperCase()].map(a => `${name}_${a}`));
248
+ }
249
+ return keys;
250
+ }
251
+ function findAccessorKey(keys, properties) {
252
+ for (const key of keys) {
253
+ if (key in properties) {
254
+ return [key];
255
+ }
256
+ }
257
+ throw new Error(`Could not find property for any accessor key: ${keys}`);
258
+ }
259
+ export function getColorValueAccessor({ name }, colorAggregation, data) {
260
+ const aggregator = AGGREGATION_FUNC[colorAggregation];
261
+ const accessor = values => aggregator(values, p => p[name]);
262
+ return normalizeAccessor(accessor, data);
263
+ }
264
+ export function getColorAccessor({ name, colorColumn }, scaleType, { aggregation, range }, opacity, data) {
265
+ const scale = calculateLayerScale(colorColumn || name, scaleType, range, data);
266
+ const alpha = opacityToAlpha(opacity);
267
+ let accessorKeys = getAccessorKeys(name, aggregation);
268
+ const accessor = properties => {
269
+ if (!(accessorKeys[0] in properties)) {
270
+ accessorKeys = findAccessorKey(accessorKeys, properties);
271
+ }
272
+ const propertyValue = properties[accessorKeys[0]];
273
+ const { r, g, b } = rgb(scale(propertyValue));
274
+ return [r, g, b, propertyValue === null ? 0 : alpha];
275
+ };
276
+ return normalizeAccessor(accessor, data);
277
+ }
278
+ function calculateLayerScale(name, scaleType, range, data) {
279
+ const scale = SCALE_FUNCS[scaleType]();
280
+ let domain = [];
281
+ let scaleColor = [];
282
+ if (scaleType !== 'identity') {
283
+ const { colorMap, colors } = range;
284
+ if (Array.isArray(colorMap)) {
285
+ colorMap.forEach(([value, color]) => {
286
+ domain.push(value);
287
+ scaleColor.push(color);
288
+ });
289
+ }
290
+ else {
291
+ domain = calculateDomain(data, name, scaleType, colors.length);
292
+ scaleColor = colors;
293
+ }
294
+ if (scaleType === 'ordinal') {
295
+ domain = domain.slice(0, scaleColor.length);
296
+ }
297
+ }
298
+ scale.domain(domain);
299
+ scale.range(scaleColor);
300
+ scale.unknown(UNKNOWN_COLOR);
301
+ return scale;
302
+ }
303
+ const FALLBACK_ICON = 'data:image/svg+xml;charset=utf-8;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgcj0iNTAiLz4NCjwvc3ZnPg==';
304
+ export function getIconUrlAccessor(field, range, { fallbackUrl, maxIconSize, useMaskedIcons }, data) {
305
+ const urlToUnpackedIcon = (url) => ({
306
+ id: `${url}@@${maxIconSize}`,
307
+ url,
308
+ width: maxIconSize,
309
+ height: maxIconSize,
310
+ mask: useMaskedIcons
311
+ });
312
+ let unknownValue = fallbackUrl || FALLBACK_ICON;
313
+ if (range?.othersMarker) {
314
+ unknownValue = range.othersMarker;
315
+ }
316
+ const unknownIcon = urlToUnpackedIcon(unknownValue);
317
+ if (!range || !field) {
318
+ return () => unknownIcon;
319
+ }
320
+ const mapping = {};
321
+ for (const { value, markerUrl } of range.markerMap) {
322
+ if (markerUrl) {
323
+ mapping[value] = urlToUnpackedIcon(markerUrl);
324
+ }
325
+ }
326
+ const accessor = properties => {
327
+ const propertyValue = properties[field.name];
328
+ return mapping[propertyValue] || unknownIcon;
329
+ };
330
+ return normalizeAccessor(accessor, data);
331
+ }
332
+ export function getMaxMarkerSize(visConfig, visualChannels) {
333
+ const { radiusRange, radius } = visConfig;
334
+ const { radiusField, sizeField } = visualChannels;
335
+ const field = radiusField || sizeField;
336
+ return Math.ceil(radiusRange && field ? radiusRange[1] : radius);
337
+ }
338
+ export function negateAccessor(accessor) {
339
+ return typeof accessor === 'function' ? (d, i) => -accessor(d, i) : -accessor;
340
+ }
341
+ export function getSizeAccessor({ name }, scaleType, aggregation, range, data) {
342
+ const scale = scaleType ? SCALE_FUNCS[scaleType]() : identity;
343
+ if (scaleType) {
344
+ if (aggregation !== 'count') {
345
+ scale.domain(calculateDomain(data, name, scaleType));
346
+ }
347
+ scale.range(range);
348
+ }
349
+ let accessorKeys = getAccessorKeys(name, aggregation);
350
+ const accessor = properties => {
351
+ if (!(accessorKeys[0] in properties)) {
352
+ accessorKeys = findAccessorKey(accessorKeys, properties);
353
+ }
354
+ const propertyValue = properties[accessorKeys[0]];
355
+ return scale(propertyValue);
356
+ };
357
+ return normalizeAccessor(accessor, data);
358
+ }
359
+ const FORMATS = {
360
+ date: s => moment.utc(s).format('MM/DD/YY HH:mm:ssa'),
361
+ integer: d3Format('i'),
362
+ float: d3Format('.5f'),
363
+ timestamp: s => moment.utc(s).format('X'),
364
+ default: String
365
+ };
366
+ export function getTextAccessor({ name, type }, data) {
367
+ const format = FORMATS[type] || FORMATS.default;
368
+ const accessor = properties => {
369
+ return format(properties[name]);
370
+ };
371
+ return normalizeAccessor(accessor, data);
372
+ }
373
+ export { domainFromValues as _domainFromValues };
@@ -0,0 +1,250 @@
1
+ import { GL } from '@luma.gl/constants';
2
+ import { log } from '@deck.gl/core';
3
+ import { AGGREGATION, getLayer, getColorAccessor, getColorValueAccessor, getSizeAccessor, getTextAccessor, OPACITY_MAP, opacityToAlpha, getIconUrlAccessor, negateAccessor, getMaxMarkerSize } from "./layer-map.js";
4
+ import PointLabelLayer from "../layers/point-label-layer.js";
5
+ import { CollisionFilterExtension } from '@deck.gl/extensions';
6
+ import { assert } from "../utils.js";
7
+ const collisionFilterExtension = new CollisionFilterExtension();
8
+ export function parseMap(json) {
9
+ const { keplerMapConfig, datasets, token } = json;
10
+ assert(keplerMapConfig.version === 'v1', 'Only support Kepler v1');
11
+ const { mapState, mapStyle } = keplerMapConfig.config;
12
+ const { layers, layerBlending, interactionConfig } = keplerMapConfig.config.visState;
13
+ return {
14
+ id: json.id,
15
+ title: json.title,
16
+ description: json.description,
17
+ createdAt: json.createdAt,
18
+ updatedAt: json.updatedAt,
19
+ initialViewState: mapState,
20
+ mapStyle,
21
+ token,
22
+ layers: layers.reverse().map(({ id, type, config, visualChannels }) => {
23
+ try {
24
+ const { dataId } = config;
25
+ const dataset = datasets.find(d => d.id === dataId);
26
+ assert(dataset, `No dataset matching dataId: ${dataId}`);
27
+ const { data } = dataset;
28
+ assert(data, `No data loaded for dataId: ${dataId}`);
29
+ const { Layer, propMap, defaultProps } = getLayer(type, config, dataset);
30
+ const styleProps = createStyleProps(config, propMap);
31
+ return new Layer({
32
+ id,
33
+ data,
34
+ ...defaultProps,
35
+ ...createInteractionProps(interactionConfig),
36
+ ...styleProps,
37
+ ...createChannelProps(id, type, config, visualChannels, data), // Must come after style
38
+ ...createParametersProp(layerBlending, styleProps.parameters || {}), // Must come after style
39
+ ...createLoadOptions(token)
40
+ });
41
+ }
42
+ catch (e) {
43
+ log.error(e.message)();
44
+ return undefined;
45
+ }
46
+ })
47
+ };
48
+ }
49
+ function createParametersProp(layerBlending, parameters) {
50
+ if (layerBlending === 'additive') {
51
+ parameters.blendFunc = [770, 772];
52
+ parameters.blendEquation = 32774;
53
+ }
54
+ else if (layerBlending === 'subtractive') {
55
+ parameters.blendFunc = [1, 775, 770, 772];
56
+ parameters.blendEquation = [32778, 32774];
57
+ }
58
+ return Object.keys(parameters).length ? { parameters } : {};
59
+ }
60
+ function createInteractionProps(interactionConfig) {
61
+ const pickable = interactionConfig && interactionConfig.tooltip.enabled;
62
+ return {
63
+ autoHighlight: pickable,
64
+ pickable
65
+ };
66
+ }
67
+ function mapProps(source, target, mapping) {
68
+ for (const sourceKey in mapping) {
69
+ const sourceValue = source[sourceKey];
70
+ const targetKey = mapping[sourceKey];
71
+ if (sourceValue === undefined) {
72
+ // eslint-disable-next-line no-continue
73
+ continue;
74
+ }
75
+ if (typeof targetKey === 'string') {
76
+ target[targetKey] = sourceValue;
77
+ }
78
+ else if (typeof targetKey === 'function') {
79
+ const [key, value] = Object.entries(targetKey(sourceValue))[0];
80
+ target[key] = value;
81
+ }
82
+ else if (typeof targetKey === 'object') {
83
+ // Nested definition, recurse down one level (also handles arrays)
84
+ mapProps(sourceValue, target, targetKey);
85
+ }
86
+ }
87
+ }
88
+ function createStyleProps(config, mapping) {
89
+ const result = {};
90
+ mapProps(config, result, mapping);
91
+ // Kepler format sometimes omits strokeColor. TODO: remove once we can rely on
92
+ // `strokeColor` always being set when `stroke: true`.
93
+ if (result.stroked && !result.getLineColor) {
94
+ result.getLineColor = result.getFillColor;
95
+ }
96
+ for (const colorAccessor in OPACITY_MAP) {
97
+ if (Array.isArray(result[colorAccessor])) {
98
+ const color = [...result[colorAccessor]];
99
+ const opacityKey = OPACITY_MAP[colorAccessor];
100
+ const opacity = config.visConfig[opacityKey];
101
+ color[3] = opacityToAlpha(opacity);
102
+ result[colorAccessor] = color;
103
+ }
104
+ }
105
+ result.highlightColor = config.visConfig.enable3d ? [255, 255, 255, 60] : [252, 242, 26, 255];
106
+ return result;
107
+ }
108
+ /* eslint-disable complexity, max-statements */
109
+ function createChannelProps(id, type, config, visualChannels, data) {
110
+ const { colorField, colorScale, radiusField, radiusScale, sizeField, sizeScale, strokeColorField, strokeColorScale } = visualChannels;
111
+ let { heightField, heightScale } = visualChannels;
112
+ if (type === 'hexagonId') {
113
+ heightField = sizeField;
114
+ heightScale = sizeScale;
115
+ }
116
+ const { textLabel, visConfig } = config;
117
+ const result = {};
118
+ if (type === 'grid' || type === 'hexagon') {
119
+ result.colorScaleType = colorScale;
120
+ if (colorField) {
121
+ const { colorAggregation } = config.visConfig;
122
+ if (!AGGREGATION[colorAggregation]) {
123
+ result.getColorValue = getColorValueAccessor(colorField, colorAggregation, data);
124
+ }
125
+ else {
126
+ result.getColorWeight = d => d[colorField.name];
127
+ }
128
+ }
129
+ }
130
+ else if (colorField) {
131
+ const { colorAggregation: aggregation, colorRange: range } = visConfig;
132
+ result.getFillColor = getColorAccessor(colorField,
133
+ // @ts-ignore
134
+ colorScale, { aggregation, range }, visConfig.opacity, data);
135
+ }
136
+ if (type === 'point') {
137
+ const altitude = config.columns?.altitude;
138
+ if (altitude) {
139
+ result.dataTransform = data => {
140
+ data.features.forEach(({ geometry, properties }) => {
141
+ const { type, coordinates } = geometry;
142
+ if (type === 'Point') {
143
+ coordinates[2] = properties[altitude];
144
+ }
145
+ });
146
+ return data;
147
+ };
148
+ }
149
+ }
150
+ if (radiusField || sizeField) {
151
+ result.getPointRadius = getSizeAccessor(
152
+ // @ts-ignore
153
+ radiusField || sizeField,
154
+ // @ts-ignore
155
+ radiusScale || sizeScale, visConfig.sizeAggregation, visConfig.radiusRange || visConfig.sizeRange, data);
156
+ }
157
+ if (strokeColorField) {
158
+ const fallbackOpacity = type === 'point' ? visConfig.opacity : 1;
159
+ const opacity = visConfig.strokeOpacity !== undefined ? visConfig.strokeOpacity : fallbackOpacity;
160
+ const { strokeColorAggregation: aggregation, strokeColorRange: range } = visConfig;
161
+ result.getLineColor = getColorAccessor(strokeColorField,
162
+ // @ts-ignore
163
+ strokeColorScale,
164
+ // @ts-ignore
165
+ { aggregation, range }, opacity, data);
166
+ }
167
+ if (heightField && visConfig.enable3d) {
168
+ result.getElevation = getSizeAccessor(heightField,
169
+ // @ts-ignore
170
+ heightScale, visConfig.heightAggregation, visConfig.heightRange || visConfig.sizeRange, data);
171
+ }
172
+ if (visConfig.customMarkers) {
173
+ const maxIconSize = getMaxMarkerSize(visConfig, visualChannels);
174
+ const { getPointRadius, getFillColor } = result;
175
+ const { customMarkersUrl, customMarkersRange, filled: useMaskedIcons } = visConfig;
176
+ result.pointType = 'icon';
177
+ result.getIcon = getIconUrlAccessor(visualChannels.customMarkersField, customMarkersRange, { fallbackUrl: customMarkersUrl, maxIconSize, useMaskedIcons }, data);
178
+ result._subLayerProps = {
179
+ 'points-icon': {
180
+ loadOptions: {
181
+ image: {
182
+ type: 'imagebitmap'
183
+ },
184
+ imagebitmap: {
185
+ resizeWidth: maxIconSize,
186
+ resizeHeight: maxIconSize,
187
+ resizeQuality: 'high'
188
+ }
189
+ }
190
+ }
191
+ };
192
+ if (getFillColor && useMaskedIcons) {
193
+ result.getIconColor = getFillColor;
194
+ }
195
+ if (getPointRadius) {
196
+ result.getIconSize = getPointRadius;
197
+ }
198
+ if (visualChannels.rotationField) {
199
+ result.getIconAngle = negateAccessor(getSizeAccessor(visualChannels.rotationField, undefined, null, undefined, data));
200
+ }
201
+ }
202
+ else if (type === 'point' || type === 'tileset') {
203
+ result.pointType = 'circle';
204
+ }
205
+ if (textLabel && textLabel.length && textLabel[0].field) {
206
+ const [mainLabel, secondaryLabel] = textLabel;
207
+ const collisionGroup = id;
208
+ ({
209
+ alignment: result.getTextAlignmentBaseline,
210
+ anchor: result.getTextAnchor,
211
+ color: result.getTextColor,
212
+ outlineColor: result.textOutlineColor,
213
+ size: result.textSizeScale
214
+ } = mainLabel);
215
+ const { color: getSecondaryColor, field: secondaryField, outlineColor: secondaryOutlineColor, size: secondarySizeScale } = secondaryLabel || {};
216
+ result.getText = mainLabel.field && getTextAccessor(mainLabel.field, data);
217
+ const getSecondaryText = secondaryField && getTextAccessor(secondaryField, data);
218
+ result.pointType = `${result.pointType}+text`;
219
+ result.textCharacterSet = 'auto';
220
+ result.textFontFamily = 'Inter, sans';
221
+ result.textFontSettings = { sdf: true };
222
+ result.textFontWeight = 600;
223
+ result.textOutlineWidth = 3;
224
+ result._subLayerProps = {
225
+ ...result._subLayerProps,
226
+ 'points-text': {
227
+ type: PointLabelLayer,
228
+ extensions: [collisionFilterExtension],
229
+ collisionEnabled: true,
230
+ collisionGroup,
231
+ // getPointRadius already has radiusScale baked in, so only pass one or the other
232
+ ...(result.getPointRadius
233
+ ? { getRadius: result.getPointRadius }
234
+ : { radiusScale: visConfig.radius }),
235
+ ...(secondaryField && {
236
+ getSecondaryText,
237
+ getSecondaryColor,
238
+ secondarySizeScale,
239
+ secondaryOutlineColor
240
+ })
241
+ }
242
+ };
243
+ }
244
+ return result;
245
+ }
246
+ function createLoadOptions(accessToken) {
247
+ return {
248
+ loadOptions: { fetch: { headers: { Authorization: `Bearer ${accessToken}` } } }
249
+ };
250
+ }
@@ -1,4 +1,4 @@
1
- import type { SourceOptions, QuerySourceOptions, QueryResult } from '../sources/types';
1
+ import type { SourceOptions, QuerySourceOptions, QueryResult } from "../sources/types.js";
2
2
  export type QueryOptions = SourceOptions & Omit<QuerySourceOptions, 'spatialDataColumn'>;
3
3
  export declare const query: (options: QueryOptions) => Promise<QueryResult>;
4
4
  //# sourceMappingURL=query.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/api/query.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,aAAa,EAAE,kBAAkB,EAAE,WAAW,EAAC,4BAAyB;AAKrF,MAAM,MAAM,YAAY,GAAG,aAAa,GAAG,IAAI,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,CAAC;AAGzF,eAAO,MAAM,KAAK,YAA4B,YAAY,KAAG,QAAQ,WAAW,CA4B/E,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { SOURCE_DEFAULTS } from "../sources/index.js";
2
+ import { buildQueryUrl } from "./endpoints.js";
3
+ import { requestWithParameters } from "./request-with-parameters.js";
4
+ export const query = async function (options) {
5
+ const { apiBaseUrl = SOURCE_DEFAULTS.apiBaseUrl, connectionName, sqlQuery, queryParameters } = options;
6
+ const urlParameters = { q: sqlQuery };
7
+ if (queryParameters) {
8
+ urlParameters.queryParameters = JSON.stringify(queryParameters);
9
+ }
10
+ const baseUrl = buildQueryUrl({ apiBaseUrl, connectionName });
11
+ const headers = { Authorization: `Bearer ${options.accessToken}`, ...options.headers };
12
+ const errorContext = {
13
+ requestType: 'SQL',
14
+ connection: options.connectionName,
15
+ type: 'query',
16
+ source: JSON.stringify(urlParameters, undefined, 2)
17
+ };
18
+ return await requestWithParameters({
19
+ baseUrl,
20
+ parameters: urlParameters,
21
+ headers,
22
+ errorContext
23
+ });
24
+ };
@@ -0,0 +1,8 @@
1
+ import type { APIErrorContext } from "./types.js";
2
+ export declare function requestWithParameters<T = any>({ baseUrl, parameters, headers: customHeaders, errorContext }: {
3
+ baseUrl: string;
4
+ parameters?: Record<string, string>;
5
+ headers: Record<string, string>;
6
+ errorContext: APIErrorContext;
7
+ }): Promise<T>;
8
+ //# sourceMappingURL=request-with-parameters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-with-parameters.d.ts","sourceRoot":"","sources":["../../src/api/request-with-parameters.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,eAAe,EAAC,mBAAgB;AAU7C,wBAAsB,qBAAqB,CAAC,CAAC,GAAG,GAAG,EAAE,EACnD,OAAO,EACP,UAAU,EACV,OAAO,EAAE,aAAa,EACtB,YAAY,EACb,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,YAAY,EAAE,eAAe,CAAC;CAC/B,GAAG,OAAO,CAAC,CAAC,CAAC,CAkCb"}