@deck.gl/carto 8.10.0-alpha.1 → 8.10.0-alpha.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (261) 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 +1740 -883
  6. package/dist/es5/api/layer-map.js +3 -7
  7. package/dist/es5/api/layer-map.js.map +1 -1
  8. package/dist/es5/api/maps-api-common.js +0 -1
  9. package/dist/es5/api/maps-api-common.js.map +1 -1
  10. package/dist/es5/api/maps-v3-client.js +5 -20
  11. package/dist/es5/api/maps-v3-client.js.map +1 -1
  12. package/dist/es5/index.js +74 -6
  13. package/dist/es5/index.js.map +1 -1
  14. package/dist/es5/layers/carto-layer.js +7 -5
  15. package/dist/es5/layers/carto-layer.js.map +1 -1
  16. package/dist/es5/layers/h3-tile-layer.js +23 -41
  17. package/dist/es5/layers/h3-tile-layer.js.map +1 -1
  18. package/dist/es5/layers/quadbin-layer.js +3 -0
  19. package/dist/es5/layers/quadbin-layer.js.map +1 -1
  20. package/dist/es5/layers/quadbin-tile-layer.js +21 -42
  21. package/dist/es5/layers/quadbin-tile-layer.js.map +1 -1
  22. package/dist/es5/layers/raster-tile-layer.js +23 -39
  23. package/dist/es5/layers/raster-tile-layer.js.map +1 -1
  24. package/dist/es5/layers/schema/carto-raster-tile-loader.js +13 -4
  25. package/dist/es5/layers/schema/carto-raster-tile-loader.js.map +1 -1
  26. package/dist/es5/layers/schema/carto-spatial-tile-loader.js +14 -8
  27. package/dist/es5/layers/schema/carto-spatial-tile-loader.js.map +1 -1
  28. package/dist/es5/layers/schema/carto-tile.js +1 -1
  29. package/dist/es5/layers/schema/carto-tile.js.map +1 -1
  30. package/dist/es5/layers/schema/carto-vector-tile-loader.js +64 -4
  31. package/dist/es5/layers/schema/carto-vector-tile-loader.js.map +1 -1
  32. package/dist/es5/layers/utils.js +29 -0
  33. package/dist/es5/layers/utils.js.map +1 -0
  34. package/dist/es5/layers/{carto-tile-layer.js → vector-tile-layer.js} +49 -24
  35. package/dist/es5/layers/vector-tile-layer.js.map +1 -0
  36. package/dist/es5/sources/base-source.js +100 -0
  37. package/dist/es5/sources/base-source.js.map +1 -0
  38. package/dist/es5/sources/common.js +48 -0
  39. package/dist/es5/sources/common.js.map +1 -0
  40. package/dist/es5/sources/h3-query-source.js +58 -0
  41. package/dist/es5/sources/h3-query-source.js.map +1 -0
  42. package/dist/es5/sources/h3-table-source.js +58 -0
  43. package/dist/es5/sources/h3-table-source.js.map +1 -0
  44. package/dist/es5/sources/h3-tileset-source.js +43 -0
  45. package/dist/es5/sources/h3-tileset-source.js.map +1 -0
  46. package/dist/es5/sources/index.js +94 -0
  47. package/dist/es5/sources/index.js.map +1 -0
  48. package/dist/es5/sources/quadbin-query-source.js +58 -0
  49. package/dist/es5/sources/quadbin-query-source.js.map +1 -0
  50. package/dist/es5/sources/quadbin-table-source.js +58 -0
  51. package/dist/es5/sources/quadbin-table-source.js.map +1 -0
  52. package/dist/es5/sources/quadbin-tileset-source.js +43 -0
  53. package/dist/es5/sources/quadbin-tileset-source.js.map +1 -0
  54. package/dist/es5/sources/raster-source.js +43 -0
  55. package/dist/es5/sources/raster-source.js.map +1 -0
  56. package/dist/es5/sources/utils.js +136 -0
  57. package/dist/es5/sources/utils.js.map +1 -0
  58. package/dist/es5/sources/vector-query-source.js +52 -0
  59. package/dist/es5/sources/vector-query-source.js.map +1 -0
  60. package/dist/es5/sources/vector-table-source.js +52 -0
  61. package/dist/es5/sources/vector-table-source.js.map +1 -0
  62. package/dist/es5/sources/vector-tileset-source.js +43 -0
  63. package/dist/es5/sources/vector-tileset-source.js.map +1 -0
  64. package/dist/es5/utils.js +5 -0
  65. package/dist/es5/utils.js.map +1 -1
  66. package/dist/es5/workers/cartoRasterTile.js +10 -0
  67. package/dist/es5/workers/cartoRasterTile.js.map +1 -0
  68. package/dist/es5/workers/cartoSpatialTile.js +10 -0
  69. package/dist/es5/workers/cartoSpatialTile.js.map +1 -0
  70. package/dist/es5/workers/cartoVectorTile.js +10 -0
  71. package/dist/es5/workers/cartoVectorTile.js.map +1 -0
  72. package/dist/esm/api/layer-map.js +3 -7
  73. package/dist/esm/api/layer-map.js.map +1 -1
  74. package/dist/esm/api/maps-api-common.js +0 -1
  75. package/dist/esm/api/maps-api-common.js.map +1 -1
  76. package/dist/esm/api/maps-v3-client.js +2 -12
  77. package/dist/esm/api/maps-v3-client.js.map +1 -1
  78. package/dist/esm/index.js +5 -4
  79. package/dist/esm/index.js.map +1 -1
  80. package/dist/esm/layers/carto-layer.js +5 -3
  81. package/dist/esm/layers/carto-layer.js.map +1 -1
  82. package/dist/esm/layers/h3-tile-layer.js +21 -37
  83. package/dist/esm/layers/h3-tile-layer.js.map +1 -1
  84. package/dist/esm/layers/quadbin-layer.js +4 -1
  85. package/dist/esm/layers/quadbin-layer.js.map +1 -1
  86. package/dist/esm/layers/quadbin-tile-layer.js +18 -38
  87. package/dist/esm/layers/quadbin-tile-layer.js.map +1 -1
  88. package/dist/esm/layers/raster-tile-layer.js +19 -34
  89. package/dist/esm/layers/raster-tile-layer.js.map +1 -1
  90. package/dist/esm/layers/schema/carto-raster-tile-loader.js +12 -4
  91. package/dist/esm/layers/schema/carto-raster-tile-loader.js.map +1 -1
  92. package/dist/esm/layers/schema/carto-spatial-tile-loader.js +13 -8
  93. package/dist/esm/layers/schema/carto-spatial-tile-loader.js.map +1 -1
  94. package/dist/esm/layers/schema/carto-tile.js +1 -1
  95. package/dist/esm/layers/schema/carto-tile.js.map +1 -1
  96. package/dist/esm/layers/schema/carto-vector-tile-loader.js +63 -4
  97. package/dist/esm/layers/schema/carto-vector-tile-loader.js.map +1 -1
  98. package/dist/esm/layers/utils.js +14 -0
  99. package/dist/esm/layers/utils.js.map +1 -0
  100. package/dist/esm/layers/{carto-tile-layer.js → vector-tile-layer.js} +39 -15
  101. package/dist/esm/layers/vector-tile-layer.js.map +1 -0
  102. package/dist/esm/sources/base-source.js +49 -0
  103. package/dist/esm/sources/base-source.js.map +1 -0
  104. package/dist/esm/sources/common.js +26 -0
  105. package/dist/esm/sources/common.js.map +1 -0
  106. package/dist/esm/sources/h3-query-source.js +32 -0
  107. package/dist/esm/sources/h3-query-source.js.map +1 -0
  108. package/dist/esm/sources/h3-table-source.js +32 -0
  109. package/dist/esm/sources/h3-table-source.js.map +1 -0
  110. package/dist/esm/sources/h3-tileset-source.js +14 -0
  111. package/dist/esm/sources/h3-tileset-source.js.map +1 -0
  112. package/dist/esm/sources/index.js +12 -0
  113. package/dist/esm/sources/index.js.map +1 -0
  114. package/dist/esm/sources/quadbin-query-source.js +32 -0
  115. package/dist/esm/sources/quadbin-query-source.js.map +1 -0
  116. package/dist/esm/sources/quadbin-table-source.js +32 -0
  117. package/dist/esm/sources/quadbin-table-source.js.map +1 -0
  118. package/dist/esm/sources/quadbin-tileset-source.js +14 -0
  119. package/dist/esm/sources/quadbin-tileset-source.js.map +1 -0
  120. package/dist/esm/sources/raster-source.js +14 -0
  121. package/dist/esm/sources/raster-source.js.map +1 -0
  122. package/dist/esm/sources/utils.js +69 -0
  123. package/dist/esm/sources/utils.js.map +1 -0
  124. package/dist/esm/sources/vector-query-source.js +25 -0
  125. package/dist/esm/sources/vector-query-source.js.map +1 -0
  126. package/dist/esm/sources/vector-table-source.js +25 -0
  127. package/dist/esm/sources/vector-table-source.js.map +1 -0
  128. package/dist/esm/sources/vector-tileset-source.js +14 -0
  129. package/dist/esm/sources/vector-tileset-source.js.map +1 -0
  130. package/dist/esm/utils.js +3 -0
  131. package/dist/esm/utils.js.map +1 -1
  132. package/dist/esm/workers/cartoRasterTile.js +4 -0
  133. package/dist/esm/workers/cartoRasterTile.js.map +1 -0
  134. package/dist/esm/workers/cartoSpatialTile.js +4 -0
  135. package/dist/esm/workers/cartoSpatialTile.js.map +1 -0
  136. package/dist/esm/workers/cartoVectorTile.js +4 -0
  137. package/dist/esm/workers/cartoVectorTile.js.map +1 -0
  138. package/dist.min.js +25 -25
  139. package/package.json +12 -9
  140. package/src/api/layer-map.ts +4 -8
  141. package/src/api/maps-api-common.ts +0 -1
  142. package/src/api/maps-v3-client.ts +6 -5
  143. package/src/index.ts +34 -5
  144. package/src/layers/carto-layer.ts +8 -2
  145. package/src/layers/h3-tile-layer.ts +22 -35
  146. package/src/layers/quadbin-layer.ts +2 -1
  147. package/src/layers/quadbin-tile-layer.ts +19 -33
  148. package/src/layers/raster-tile-layer.ts +22 -26
  149. package/src/layers/schema/carto-raster-tile-loader.ts +26 -6
  150. package/src/layers/schema/carto-spatial-tile-loader.ts +25 -11
  151. package/src/layers/schema/carto-tile.ts +1 -1
  152. package/src/layers/schema/carto-vector-tile-loader.ts +79 -9
  153. package/src/layers/utils.ts +11 -0
  154. package/src/layers/{carto-tile-layer.ts → vector-tile-layer.ts} +40 -21
  155. package/src/sources/base-source.ts +55 -0
  156. package/src/sources/common.ts +132 -0
  157. package/src/sources/h3-query-source.ts +45 -0
  158. package/src/sources/h3-table-source.ts +46 -0
  159. package/src/sources/h3-tileset-source.ts +16 -0
  160. package/src/sources/index.ts +32 -0
  161. package/src/sources/quadbin-query-source.ts +46 -0
  162. package/src/sources/quadbin-table-source.ts +46 -0
  163. package/src/sources/quadbin-tileset-source.ts +16 -0
  164. package/src/sources/raster-source.ts +16 -0
  165. package/src/sources/utils.ts +63 -0
  166. package/src/sources/vector-query-source.ts +23 -0
  167. package/src/sources/vector-table-source.ts +23 -0
  168. package/src/sources/vector-tileset-source.ts +16 -0
  169. package/src/utils.ts +6 -0
  170. package/src/workers/cartoRasterTile.ts +4 -0
  171. package/src/workers/cartoSpatialTile.ts +4 -0
  172. package/src/workers/cartoVectorTile.ts +4 -0
  173. package/typed/api/layer-map.d.ts +2 -3
  174. package/typed/api/layer-map.d.ts.map +1 -1
  175. package/typed/api/maps-api-common.d.ts +0 -1
  176. package/typed/api/maps-api-common.d.ts.map +1 -1
  177. package/typed/api/maps-v3-client.d.ts +0 -3
  178. package/typed/api/maps-v3-client.d.ts.map +1 -1
  179. package/typed/index.d.ts +6 -4
  180. package/typed/index.d.ts.map +1 -1
  181. package/typed/layers/carto-layer.d.ts.map +1 -1
  182. package/typed/layers/h3-tile-layer.d.ts +5 -8
  183. package/typed/layers/h3-tile-layer.d.ts.map +1 -1
  184. package/typed/layers/quadbin-layer.d.ts.map +1 -1
  185. package/typed/layers/quadbin-tile-layer.d.ts +5 -9
  186. package/typed/layers/quadbin-tile-layer.d.ts.map +1 -1
  187. package/typed/layers/raster-tile-layer.d.ts +6 -10
  188. package/typed/layers/raster-tile-layer.d.ts.map +1 -1
  189. package/typed/layers/schema/carto-raster-tile-loader.d.ts.map +1 -1
  190. package/typed/layers/schema/carto-spatial-tile-loader.d.ts.map +1 -1
  191. package/typed/layers/schema/carto-vector-tile-loader.d.ts.map +1 -1
  192. package/typed/layers/utils.d.ts +5 -0
  193. package/typed/layers/utils.d.ts.map +1 -0
  194. package/typed/layers/{carto-tile-layer.d.ts → vector-tile-layer.d.ts} +11 -7
  195. package/typed/layers/vector-tile-layer.d.ts.map +1 -0
  196. package/typed/sources/base-source.d.ts +4 -0
  197. package/typed/sources/base-source.d.ts.map +1 -0
  198. package/typed/sources/common.d.ts +116 -0
  199. package/typed/sources/common.d.ts.map +1 -0
  200. package/typed/sources/h3-query-source.d.ts +5 -0
  201. package/typed/sources/h3-query-source.d.ts.map +1 -0
  202. package/typed/sources/h3-table-source.d.ts +5 -0
  203. package/typed/sources/h3-table-source.d.ts.map +1 -0
  204. package/typed/sources/h3-tileset-source.d.ts +5 -0
  205. package/typed/sources/h3-tileset-source.d.ts.map +1 -0
  206. package/typed/sources/index.d.ts +23 -0
  207. package/typed/sources/index.d.ts.map +1 -0
  208. package/typed/sources/quadbin-query-source.d.ts +5 -0
  209. package/typed/sources/quadbin-query-source.d.ts.map +1 -0
  210. package/typed/sources/quadbin-table-source.d.ts +5 -0
  211. package/typed/sources/quadbin-table-source.d.ts.map +1 -0
  212. package/typed/sources/quadbin-tileset-source.d.ts +5 -0
  213. package/typed/sources/quadbin-tileset-source.d.ts.map +1 -0
  214. package/typed/sources/raster-source.d.ts +5 -0
  215. package/typed/sources/raster-source.d.ts.map +1 -0
  216. package/typed/sources/utils.d.ts +15 -0
  217. package/typed/sources/utils.d.ts.map +1 -0
  218. package/typed/sources/vector-query-source.d.ts +5 -0
  219. package/typed/sources/vector-query-source.d.ts.map +1 -0
  220. package/typed/sources/vector-table-source.d.ts +5 -0
  221. package/typed/sources/vector-table-source.d.ts.map +1 -0
  222. package/typed/sources/vector-tileset-source.d.ts +5 -0
  223. package/typed/sources/vector-tileset-source.d.ts.map +1 -0
  224. package/typed/utils.d.ts +1 -0
  225. package/typed/utils.d.ts.map +1 -1
  226. package/typed/workers/cartoRasterTile.d.ts +2 -0
  227. package/typed/workers/cartoRasterTile.d.ts.map +1 -0
  228. package/typed/workers/cartoSpatialTile.d.ts +2 -0
  229. package/typed/workers/cartoSpatialTile.d.ts.map +1 -0
  230. package/typed/workers/cartoVectorTile.d.ts +2 -0
  231. package/typed/workers/cartoVectorTile.d.ts.map +1 -0
  232. package/dist/es5/layers/carto-tile-layer.js.map +0 -1
  233. package/dist/esm/layers/carto-tile-layer.js.map +0 -1
  234. package/typed/api/index.js +0 -3
  235. package/typed/api/layer-map.js +0 -264
  236. package/typed/api/maps-api-common.js +0 -50
  237. package/typed/api/maps-client.js +0 -125
  238. package/typed/api/maps-v3-client.js +0 -304
  239. package/typed/api/parseMap.js +0 -178
  240. package/typed/basemap.js +0 -9
  241. package/typed/config.js +0 -35
  242. package/typed/index.js +0 -10
  243. package/typed/layers/carto-layer.js +0 -173
  244. package/typed/layers/carto-tile-layer.d.ts.map +0 -1
  245. package/typed/layers/carto-tile-layer.js +0 -105
  246. package/typed/layers/h3-tile-layer.js +0 -47
  247. package/typed/layers/h3-tileset-2d.js +0 -85
  248. package/typed/layers/quadkey-tile-layer.d.ts +0 -21
  249. package/typed/layers/quadkey-tile-layer.d.ts.map +0 -1
  250. package/typed/layers/quadkey-tile-layer.js +0 -42
  251. package/typed/layers/quadkey-tileset-2d.d.ts +0 -15
  252. package/typed/layers/quadkey-tileset-2d.d.ts.map +0 -1
  253. package/typed/layers/quadkey-tileset-2d.js +0 -36
  254. package/typed/layers/schema/carto-tile.js +0 -161
  255. package/typed/layers/spatial-index-tile-layer.js +0 -40
  256. package/typed/style/color-bins-style.js +0 -12
  257. package/typed/style/color-categories-style.js +0 -16
  258. package/typed/style/color-continuous-style.js +0 -12
  259. package/typed/style/palette.js +0 -62
  260. package/typed/style/utils.js +0 -15
  261. package/typed/utils.js +0 -4
@@ -296,17 +296,19 @@ var CartoLayer = function (_CompositeLayer) {
296
296
  var _this$props4 = this.props,
297
297
  credentials = _this$props4.credentials,
298
298
  updateTriggers = _this$props4.updateTriggers;
299
- var loadOptions = {};
299
+ var loadOptions = this.getLoadOptions() || {};
300
300
 
301
301
  if (apiVersion === _api.API_VERSIONS.V3) {
302
+ var _loadOptions$fetch;
303
+
302
304
  var localConfig = _objectSpread(_objectSpread({}, (0, _config.getDefaultCredentials)()), credentials);
303
305
 
304
306
  var accessToken = localConfig.accessToken;
305
- loadOptions.fetch = {
306
- headers: {
307
+ loadOptions.fetch = _objectSpread(_objectSpread({}, loadOptions.fetch), {}, {
308
+ headers: _objectSpread(_objectSpread({}, (_loadOptions$fetch = loadOptions.fetch) === null || _loadOptions$fetch === void 0 ? void 0 : _loadOptions$fetch.headers), {}, {
307
309
  Authorization: "Bearer ".concat(accessToken)
308
- }
309
- };
310
+ })
311
+ });
310
312
  }
311
313
 
312
314
  var _this$_getSubLayerAnd = this._getSubLayerAndProps(),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/layers/carto-layer.ts"],"names":["defaultProps","data","type","onDataLoad","value","onDataError","optional","uniqueIdProperty","credentials","connection","format","formatTiles","clientId","geoColumn","columns","headers","aggregationExp","aggregationResLevel","queryParameters","CartoLayer","state","apiVersion","getSubLayers","length","props","localCreds","log","assert","Object","values","API_VERSIONS","includes","V1","V2","MAP_TYPES","QUERY","TILESET","V3","COLUMNS_SUPPORT","join","GEO_COLUMN_SUPPORT","Array","isArray","oldProps","changeFlags","_checkProps","shouldUpdateData","dataChanged","JSON","stringify","setState","_updateData","source","rest","localConfig","result","FORMATS","TILEJSON","propName","layer","_notUsed","propsNoData","MVTLayer","tileUrl","URL","tiles","searchParams","get","scheme","updateTriggers","loadOptions","accessToken","fetch","Authorization","_getSubLayerAndProps","getSubLayerProps","id","layerName","CompositeLayer"],"mappings":"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","sourcesContent":["import {\n CompositeLayer,\n CompositeLayerProps,\n Layer,\n LayerProps,\n log,\n UpdateParameters\n} from '@deck.gl/core';\n\nimport {MVTLayer} from '@deck.gl/geo-layers';\nimport {fetchLayerData, getDataV2, API_VERSIONS} from '../api';\nimport {CartoAPIError} from '../api/carto-api-error';\nimport {layerFromTileDataset} from '../api/layer-map';\nimport {\n COLUMNS_SUPPORT,\n FORMATS,\n GEO_COLUMN_SUPPORT,\n MapType,\n MAP_TYPES,\n TileFormat,\n QueryParameters\n} from '../api/maps-api-common';\nimport {\n ClassicCredentials,\n CloudNativeCredentials,\n Credentials,\n getDefaultCredentials\n} from '../config';\nimport {FetchLayerDataResult, Headers} from '../api/maps-v3-client';\nimport {assert} from '../utils';\n\nconst defaultProps = {\n // (String, required): data resource to load. table name, sql query or tileset name.\n data: null,\n // (Enum (MAP_TYPES), required)\n type: null,\n onDataLoad: {type: 'function', value: data => {}},\n onDataError: {type: 'function', value: null, optional: true},\n uniqueIdProperty: 'cartodb_id',\n\n // override carto credentials for the layer, set to null to read from default\n credentials: null,\n\n /*********************/\n /* API v3 PARAMETERS */\n /**********************/\n // (String, required): connection name at CARTO platform\n connection: null,\n\n // (String, optional): format of data\n format: null,\n\n // (String, optional): force format of data for tiles\n formatTiles: null,\n\n // (String, optional): clientId identifier used for internal tracing, place here a string to identify the client who is doing the request.\n clientId: null,\n\n // (String, optional): name of the `geo_column` in the CARTO platform. Use this override the default column ('geom'), from which the geometry information should be fetched.\n geoColumn: null,\n\n // (Array<String>, optional): names of columns to fetch. By default, all columns are fetched.\n columns: {type: 'array', value: null},\n\n // (Headers, optional): Custom headers to include in the map instantiation request.\n headers: {type: 'object', value: {}, optional: true},\n\n // (String, optional): aggregation SQL expression. Only used for spatial index datasets\n aggregationExp: null,\n\n // (Number, optional): aggregation resolution level. Only used for spatial index datasets, defaults to 6 for quadbins, 4 for h3\n aggregationResLevel: null,\n\n // (QueryParameters, optional): query parameters to be sent to the server.\n queryParameters: null\n};\n\n/** All properties supported by CartoLayer. */\nexport type CartoLayerProps = _CartoLayerProps & CompositeLayerProps;\n\n/** Properties added by CartoLayer. */\ntype _CartoLayerProps = {\n /**\n * Either a SQL query or a name of dataset/tileset.\n */\n data: string;\n\n /**\n * Data type.\n *\n * Possible values are:\n * * `MAP_TYPES.QUERY`, if data is a SQL query.\n * * `MAP_TYPES.TILESET`, if data is a tileset name.\n * * `MAP_TYPES.TABLE`, if data is a dataset name. Only supported with API v3.\n */\n type: MapType;\n\n /**\n * Name of the connection registered in the CARTO workspace.\n *\n * Required when apiVersion is `API_VERSIONS.V3`.\n */\n connection?: string;\n\n /**\n * Use to override the default tile data format.\n *\n * Only supported when apiVersion is `API_VERSIONS.V3`.\n *\n * Possible values are: `TILE_FORMATS.BINARY`, `TILE_FORMATS.GEOJSON` and `TILE_FORMATS.MVT`.\n */\n formatTiles?: TileFormat;\n\n /**\n * Name of the geo_column in the CARTO platform.\n *\n * Use this override the default column (`'geom'`), from which the geometry information should be fetched.\n *\n * Only supported when apiVersion is `API_VERSIONS.V3` and type is `MAP_TYPES.TABLE`.\n */\n geoColumn?: string;\n\n /**\n * Names of columns to fetch.\n *\n * By default, all columns are fetched\n *\n * Only supported when apiVersion is `API_VERSIONS.V3` and type is `MAP_TYPES.TABLE`.\n */\n columns?: string[];\n\n /**\n * A string pointing to a unique attribute at the result of the query.\n *\n * A unique attribute is needed for highlighting with vector tiles when a feature is split across two or more tiles.\n */\n uniqueIdProperty?: string;\n\n /**\n * Optional. Overrides the configuration to connect with CARTO.\n *\n * @see Credentials\n */\n credentials?: Credentials;\n\n /**\n * Called when the request to the CARTO Maps API failed.\n *\n * By default the CartoAPIError is thrown.\n */\n onDataError?: (err: CartoAPIError) => void;\n\n clientId?: string;\n\n /** Custom headers to include in the map instantiation request **/\n headers?: Headers;\n\n /** Aggregation SQL expression. Only used for spatial index datasets **/\n aggregationExp?: string;\n\n /** Aggregation resolution level. Only used for spatial index datasets, defaults to 6 for quadbins, 4 for h3. **/\n aggregationResLevel?: number;\n\n /** Query parameters to be sent to the server. **/\n queryParameters?: QueryParameters;\n};\n\nexport default class CartoLayer<ExtraProps extends {} = {}> extends CompositeLayer<\n Required<_CartoLayerProps> & ExtraProps\n> {\n static layerName = 'CartoLayer';\n static defaultProps = defaultProps;\n\n initializeState(): void {\n this.state = {\n data: null,\n apiVersion: null\n };\n }\n\n get isLoaded(): boolean {\n return this.getSubLayers().length > 0 && super.isLoaded;\n }\n\n _checkProps(props: CartoLayerProps): void {\n const {type, credentials, connection, geoColumn, columns} = props;\n const localCreds = {...getDefaultCredentials(), ...credentials};\n const {apiVersion} = localCreds;\n\n log.assert(\n Object.values(API_VERSIONS).includes(apiVersion),\n `Invalid apiVersion ${apiVersion}. Use API_VERSIONS enum.`\n );\n\n if (apiVersion === API_VERSIONS.V1 || apiVersion === API_VERSIONS.V2) {\n log.assert(\n type === MAP_TYPES.QUERY || type === MAP_TYPES.TILESET,\n `Invalid type ${type}. Use type MAP_TYPES.QUERY or MAP_TYPES.TILESET for apiVersion ${apiVersion}`\n );\n log.assert(!connection, `Connection prop is not supported for apiVersion ${apiVersion}`);\n log.assert(!geoColumn, `geoColumn prop is not supported for apiVersion ${apiVersion}`);\n log.assert(!columns, `columns prop is not supported for apiVersion ${apiVersion}`);\n } else if (apiVersion === API_VERSIONS.V3) {\n log.assert(connection, 'Missing mandatory connection parameter');\n log.assert(\n Object.values(MAP_TYPES).includes(type),\n `Invalid type ${type}. Use MAP_TYPES enum.`\n );\n if (!COLUMNS_SUPPORT.includes(type)) {\n log.assert(!columns, `columns prop is only supported for types: ${COLUMNS_SUPPORT.join()}`);\n }\n if (!GEO_COLUMN_SUPPORT.includes(type)) {\n log.assert(\n !geoColumn,\n `geoColumn prop is only supported for types: ${GEO_COLUMN_SUPPORT.join()}`\n );\n }\n if (columns) {\n log.assert(Array.isArray(columns), 'columns prop must be an Array');\n }\n }\n }\n\n updateState({props, oldProps, changeFlags}: UpdateParameters<this>) {\n this._checkProps(props);\n const shouldUpdateData =\n changeFlags.dataChanged ||\n props.aggregationExp !== oldProps.aggregationExp ||\n props.aggregationResLevel !== oldProps.aggregationResLevel ||\n props.connection !== oldProps.connection ||\n props.geoColumn !== oldProps.geoColumn ||\n props.formatTiles !== oldProps.formatTiles ||\n props.type !== oldProps.type ||\n JSON.stringify(props.columns) !== JSON.stringify(oldProps.columns) ||\n JSON.stringify(props.credentials) !== JSON.stringify(oldProps.credentials) ||\n JSON.stringify(props.queryParameters) !== JSON.stringify(oldProps.queryParameters);\n\n if (shouldUpdateData) {\n this.setState({data: null, apiVersion: null});\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this._updateData();\n }\n }\n\n async _updateData(): Promise<void> {\n try {\n const {type, data: source, credentials, connection, ...rest} = this.props;\n const localConfig = {...getDefaultCredentials(), ...credentials};\n const {apiVersion} = localConfig;\n\n let result: Partial<FetchLayerDataResult>;\n if (apiVersion === API_VERSIONS.V1 || apiVersion === API_VERSIONS.V2) {\n result = {\n data: await getDataV2({type, source, credentials: credentials as ClassicCredentials})\n };\n } else {\n result = await fetchLayerData({\n type,\n source,\n credentials: credentials as CloudNativeCredentials,\n connection,\n ...rest,\n // CartoLayer only supports tiled output from v8.8, force data format\n format: FORMATS.TILEJSON\n });\n }\n\n this.setState({...result, apiVersion});\n\n this.props.onDataLoad?.(result.data, {\n propName: 'data',\n layer: this\n });\n } catch (err) {\n if (this.props.onDataError) {\n this.props.onDataError(err as CartoAPIError);\n } else {\n throw err;\n }\n }\n }\n\n _getSubLayerAndProps(): [any, LayerProps] {\n assert(this.state);\n\n const {data, apiVersion} = this.state;\n\n const {uniqueIdProperty} = defaultProps;\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const {data: _notUsed, ...propsNoData} = this.props;\n // @ts-expect-error 'uniqueIdProperty' is specified more than once, so this usage will be overwritten.\n const props = {uniqueIdProperty, ...propsNoData};\n\n if (apiVersion === API_VERSIONS.V1 || apiVersion === API_VERSIONS.V2) {\n return [MVTLayer, props];\n }\n\n /* global URL */\n const tileUrl = new URL(data.tiles[0]);\n props.formatTiles =\n props.formatTiles || (tileUrl.searchParams.get('formatTiles') as TileFormat);\n\n return [layerFromTileDataset(props.formatTiles, data.scheme, props.type), props];\n }\n\n renderLayers(): Layer | null {\n assert(this.state);\n\n const {apiVersion, data} = this.state;\n\n if (!data) return null;\n\n const {credentials, updateTriggers} = this.props;\n const loadOptions: any = {};\n if (apiVersion === API_VERSIONS.V3) {\n const localConfig = {...getDefaultCredentials(), ...credentials} as CloudNativeCredentials;\n const {accessToken} = localConfig;\n loadOptions.fetch = {headers: {Authorization: `Bearer ${accessToken}`}};\n }\n\n const [layer, props] = this._getSubLayerAndProps();\n\n // eslint-disable-next-line new-cap\n return new layer(\n props,\n this.getSubLayerProps({\n id: `carto-${layer.layerName}`,\n data,\n loadOptions,\n updateTriggers\n })\n );\n }\n}\n"],"file":"carto-layer.js"}
1
+ {"version":3,"sources":["../../../src/layers/carto-layer.ts"],"names":["defaultProps","data","type","onDataLoad","value","onDataError","optional","uniqueIdProperty","credentials","connection","format","formatTiles","clientId","geoColumn","columns","headers","aggregationExp","aggregationResLevel","queryParameters","CartoLayer","state","apiVersion","getSubLayers","length","props","localCreds","log","assert","Object","values","API_VERSIONS","includes","V1","V2","MAP_TYPES","QUERY","TILESET","V3","COLUMNS_SUPPORT","join","GEO_COLUMN_SUPPORT","Array","isArray","oldProps","changeFlags","_checkProps","shouldUpdateData","dataChanged","JSON","stringify","setState","_updateData","source","rest","localConfig","result","FORMATS","TILEJSON","propName","layer","_notUsed","propsNoData","MVTLayer","tileUrl","URL","tiles","searchParams","get","scheme","updateTriggers","loadOptions","getLoadOptions","accessToken","fetch","Authorization","_getSubLayerAndProps","getSubLayerProps","id","layerName","CompositeLayer"],"mappings":"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","sourcesContent":["import {\n CompositeLayer,\n CompositeLayerProps,\n Layer,\n LayerProps,\n log,\n UpdateParameters\n} from '@deck.gl/core';\n\nimport {MVTLayer} from '@deck.gl/geo-layers';\nimport {fetchLayerData, getDataV2, API_VERSIONS} from '../api';\nimport {CartoAPIError} from '../api/carto-api-error';\nimport {layerFromTileDataset} from '../api/layer-map';\nimport {\n COLUMNS_SUPPORT,\n FORMATS,\n GEO_COLUMN_SUPPORT,\n MapType,\n MAP_TYPES,\n TileFormat,\n QueryParameters\n} from '../api/maps-api-common';\nimport {\n ClassicCredentials,\n CloudNativeCredentials,\n Credentials,\n getDefaultCredentials\n} from '../config';\nimport {FetchLayerDataResult, Headers} from '../api/maps-v3-client';\nimport {assert} from '../utils';\n\nconst defaultProps = {\n // (String, required): data resource to load. table name, sql query or tileset name.\n data: null,\n // (Enum (MAP_TYPES), required)\n type: null,\n onDataLoad: {type: 'function', value: data => {}},\n onDataError: {type: 'function', value: null, optional: true},\n uniqueIdProperty: 'cartodb_id',\n\n // override carto credentials for the layer, set to null to read from default\n credentials: null,\n\n /*********************/\n /* API v3 PARAMETERS */\n /**********************/\n // (String, required): connection name at CARTO platform\n connection: null,\n\n // (String, optional): format of data\n format: null,\n\n // (String, optional): force format of data for tiles\n formatTiles: null,\n\n // (String, optional): clientId identifier used for internal tracing, place here a string to identify the client who is doing the request.\n clientId: null,\n\n // (String, optional): name of the `geo_column` in the CARTO platform. Use this override the default column ('geom'), from which the geometry information should be fetched.\n geoColumn: null,\n\n // (Array<String>, optional): names of columns to fetch. By default, all columns are fetched.\n columns: {type: 'array', value: null},\n\n // (Headers, optional): Custom headers to include in the map instantiation request.\n headers: {type: 'object', value: {}, optional: true},\n\n // (String, optional): aggregation SQL expression. Only used for spatial index datasets\n aggregationExp: null,\n\n // (Number, optional): aggregation resolution level. Only used for spatial index datasets, defaults to 6 for quadbins, 4 for h3\n aggregationResLevel: null,\n\n // (QueryParameters, optional): query parameters to be sent to the server.\n queryParameters: null\n};\n\n/** All properties supported by CartoLayer. */\nexport type CartoLayerProps = _CartoLayerProps & CompositeLayerProps;\n\n/** Properties added by CartoLayer. */\ntype _CartoLayerProps = {\n /**\n * Either a SQL query or a name of dataset/tileset.\n */\n data: string;\n\n /**\n * Data type.\n *\n * Possible values are:\n * * `MAP_TYPES.QUERY`, if data is a SQL query.\n * * `MAP_TYPES.TILESET`, if data is a tileset name.\n * * `MAP_TYPES.TABLE`, if data is a dataset name. Only supported with API v3.\n */\n type: MapType;\n\n /**\n * Name of the connection registered in the CARTO workspace.\n *\n * Required when apiVersion is `API_VERSIONS.V3`.\n */\n connection?: string;\n\n /**\n * Use to override the default tile data format.\n *\n * Only supported when apiVersion is `API_VERSIONS.V3`.\n *\n * Possible values are: `TILE_FORMATS.BINARY`, `TILE_FORMATS.GEOJSON` and `TILE_FORMATS.MVT`.\n */\n formatTiles?: TileFormat;\n\n /**\n * Name of the geo_column in the CARTO platform.\n *\n * Use this override the default column (`'geom'`), from which the geometry information should be fetched.\n *\n * Only supported when apiVersion is `API_VERSIONS.V3` and type is `MAP_TYPES.TABLE`.\n */\n geoColumn?: string;\n\n /**\n * Names of columns to fetch.\n *\n * By default, all columns are fetched\n *\n * Only supported when apiVersion is `API_VERSIONS.V3` and type is `MAP_TYPES.TABLE`.\n */\n columns?: string[];\n\n /**\n * A string pointing to a unique attribute at the result of the query.\n *\n * A unique attribute is needed for highlighting with vector tiles when a feature is split across two or more tiles.\n */\n uniqueIdProperty?: string;\n\n /**\n * Optional. Overrides the configuration to connect with CARTO.\n *\n * @see Credentials\n */\n credentials?: Credentials;\n\n /**\n * Called when the request to the CARTO Maps API failed.\n *\n * By default the CartoAPIError is thrown.\n */\n onDataError?: (err: CartoAPIError) => void;\n\n clientId?: string;\n\n /** Custom headers to include in the map instantiation request **/\n headers?: Headers;\n\n /** Aggregation SQL expression. Only used for spatial index datasets **/\n aggregationExp?: string;\n\n /** Aggregation resolution level. Only used for spatial index datasets, defaults to 6 for quadbins, 4 for h3. **/\n aggregationResLevel?: number;\n\n /** Query parameters to be sent to the server. **/\n queryParameters?: QueryParameters;\n};\n\nexport default class CartoLayer<ExtraProps extends {} = {}> extends CompositeLayer<\n Required<_CartoLayerProps> & ExtraProps\n> {\n static layerName = 'CartoLayer';\n static defaultProps = defaultProps;\n\n initializeState(): void {\n this.state = {\n data: null,\n apiVersion: null\n };\n }\n\n get isLoaded(): boolean {\n return this.getSubLayers().length > 0 && super.isLoaded;\n }\n\n _checkProps(props: CartoLayerProps): void {\n const {type, credentials, connection, geoColumn, columns} = props;\n const localCreds = {...getDefaultCredentials(), ...credentials};\n const {apiVersion} = localCreds;\n\n log.assert(\n Object.values(API_VERSIONS).includes(apiVersion),\n `Invalid apiVersion ${apiVersion}. Use API_VERSIONS enum.`\n );\n\n if (apiVersion === API_VERSIONS.V1 || apiVersion === API_VERSIONS.V2) {\n log.assert(\n type === MAP_TYPES.QUERY || type === MAP_TYPES.TILESET,\n `Invalid type ${type}. Use type MAP_TYPES.QUERY or MAP_TYPES.TILESET for apiVersion ${apiVersion}`\n );\n log.assert(!connection, `Connection prop is not supported for apiVersion ${apiVersion}`);\n log.assert(!geoColumn, `geoColumn prop is not supported for apiVersion ${apiVersion}`);\n log.assert(!columns, `columns prop is not supported for apiVersion ${apiVersion}`);\n } else if (apiVersion === API_VERSIONS.V3) {\n log.assert(connection, 'Missing mandatory connection parameter');\n log.assert(\n Object.values(MAP_TYPES).includes(type),\n `Invalid type ${type}. Use MAP_TYPES enum.`\n );\n if (!COLUMNS_SUPPORT.includes(type)) {\n log.assert(!columns, `columns prop is only supported for types: ${COLUMNS_SUPPORT.join()}`);\n }\n if (!GEO_COLUMN_SUPPORT.includes(type)) {\n log.assert(\n !geoColumn,\n `geoColumn prop is only supported for types: ${GEO_COLUMN_SUPPORT.join()}`\n );\n }\n if (columns) {\n log.assert(Array.isArray(columns), 'columns prop must be an Array');\n }\n }\n }\n\n updateState({props, oldProps, changeFlags}: UpdateParameters<this>) {\n this._checkProps(props);\n const shouldUpdateData =\n changeFlags.dataChanged ||\n props.aggregationExp !== oldProps.aggregationExp ||\n props.aggregationResLevel !== oldProps.aggregationResLevel ||\n props.connection !== oldProps.connection ||\n props.geoColumn !== oldProps.geoColumn ||\n props.formatTiles !== oldProps.formatTiles ||\n props.type !== oldProps.type ||\n JSON.stringify(props.columns) !== JSON.stringify(oldProps.columns) ||\n JSON.stringify(props.credentials) !== JSON.stringify(oldProps.credentials) ||\n JSON.stringify(props.queryParameters) !== JSON.stringify(oldProps.queryParameters);\n\n if (shouldUpdateData) {\n this.setState({data: null, apiVersion: null});\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this._updateData();\n }\n }\n\n async _updateData(): Promise<void> {\n try {\n const {type, data: source, credentials, connection, ...rest} = this.props;\n const localConfig = {...getDefaultCredentials(), ...credentials};\n const {apiVersion} = localConfig;\n\n let result: Partial<FetchLayerDataResult>;\n if (apiVersion === API_VERSIONS.V1 || apiVersion === API_VERSIONS.V2) {\n result = {\n data: await getDataV2({type, source, credentials: credentials as ClassicCredentials})\n };\n } else {\n result = await fetchLayerData({\n type,\n source,\n credentials: credentials as CloudNativeCredentials,\n connection,\n ...rest,\n // CartoLayer only supports tiled output from v8.8, force data format\n format: FORMATS.TILEJSON\n });\n }\n\n this.setState({...result, apiVersion});\n\n this.props.onDataLoad?.(result.data, {\n propName: 'data',\n layer: this\n });\n } catch (err) {\n if (this.props.onDataError) {\n this.props.onDataError(err as CartoAPIError);\n } else {\n throw err;\n }\n }\n }\n\n _getSubLayerAndProps(): [any, LayerProps] {\n assert(this.state);\n\n const {data, apiVersion} = this.state;\n\n const {uniqueIdProperty} = defaultProps;\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const {data: _notUsed, ...propsNoData} = this.props;\n // @ts-expect-error 'uniqueIdProperty' is specified more than once, so this usage will be overwritten.\n const props = {uniqueIdProperty, ...propsNoData};\n\n if (apiVersion === API_VERSIONS.V1 || apiVersion === API_VERSIONS.V2) {\n return [MVTLayer, props];\n }\n\n /* global URL */\n const tileUrl = new URL(data.tiles[0]);\n props.formatTiles =\n props.formatTiles || (tileUrl.searchParams.get('formatTiles') as TileFormat);\n\n return [layerFromTileDataset(props.formatTiles, data.scheme, props.type), props];\n }\n\n renderLayers(): Layer | null {\n assert(this.state);\n\n const {apiVersion, data} = this.state;\n\n if (!data) return null;\n\n const {credentials, updateTriggers} = this.props;\n const loadOptions: any = this.getLoadOptions() || {};\n if (apiVersion === API_VERSIONS.V3) {\n const localConfig = {...getDefaultCredentials(), ...credentials} as CloudNativeCredentials;\n const {accessToken} = localConfig;\n loadOptions.fetch = {\n ...loadOptions.fetch,\n headers: {\n ...loadOptions.fetch?.headers,\n Authorization: `Bearer ${accessToken}`\n }\n };\n }\n\n const [layer, props] = this._getSubLayerAndProps();\n\n // eslint-disable-next-line new-cap\n return new layer(\n props,\n this.getSubLayerProps({\n id: `carto-${layer.layerName}`,\n data,\n loadOptions,\n updateTriggers\n })\n );\n }\n}\n"],"file":"carto-layer.js"}
@@ -13,7 +13,7 @@ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/cl
13
13
 
14
14
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
15
 
16
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
16
+ var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
17
17
 
18
18
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
19
 
@@ -31,6 +31,10 @@ var _h3Tileset2d = _interopRequireWildcard(require("./h3-tileset-2d"));
31
31
 
32
32
  var _spatialIndexTileLayer = _interopRequireDefault(require("./spatial-index-tile-layer"));
33
33
 
34
+ var _common = require("../sources/common");
35
+
36
+ var _utils = require("./utils");
37
+
34
38
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
35
39
 
36
40
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -57,7 +61,8 @@ var renderSubLayers = function renderSubLayers(props) {
57
61
  };
58
62
 
59
63
  var defaultProps = {
60
- aggregationResLevel: 4
64
+ aggregationResLevel: 4,
65
+ data: _common.TilejsonPropType
61
66
  };
62
67
 
63
68
  var H3TileLayer = function (_CompositeLayer) {
@@ -66,52 +71,34 @@ var H3TileLayer = function (_CompositeLayer) {
66
71
  var _super = _createSuper(H3TileLayer);
67
72
 
68
73
  function H3TileLayer() {
69
- var _this;
70
-
71
74
  (0, _classCallCheck2.default)(this, H3TileLayer);
72
-
73
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
74
- args[_key] = arguments[_key];
75
- }
76
-
77
- _this = _super.call.apply(_super, [this].concat(args));
78
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "state", void 0);
79
- return _this;
75
+ return _super.apply(this, arguments);
80
76
  }
81
77
 
82
78
  (0, _createClass2.default)(H3TileLayer, [{
83
79
  key: "initializeState",
84
80
  value: function initializeState() {
85
81
  _geoLayers.H3HexagonLayer._checkH3Lib();
86
-
87
- this.setState({
88
- data: null,
89
- tileJSON: null
90
- });
91
82
  }
92
83
  }, {
93
- key: "updateState",
94
- value: function updateState(_ref) {
95
- var changeFlags = _ref.changeFlags;
96
-
97
- if (changeFlags.dataChanged) {
98
- var data = this.props.data;
99
- var tileJSON = data;
100
- data = tileJSON.tiles;
101
- this.setState({
102
- data: data,
103
- tileJSON: tileJSON
104
- });
105
- }
84
+ key: "getLoadOptions",
85
+ value: function getLoadOptions() {
86
+ var loadOptions = (0, _get2.default)((0, _getPrototypeOf2.default)(H3TileLayer.prototype), "getLoadOptions", this).call(this) || {};
87
+ var tileJSON = this.props.data;
88
+ (0, _utils.injectAccessToken)(loadOptions, tileJSON.accessToken);
89
+ loadOptions.cartoSpatialTile = _objectSpread(_objectSpread({}, loadOptions.cartoSpatialTile), {}, {
90
+ scheme: 'h3'
91
+ });
92
+ return loadOptions;
106
93
  }
107
94
  }, {
108
95
  key: "renderLayers",
109
96
  value: function renderLayers() {
110
- var _this$state = this.state,
111
- data = _this$state.data,
112
- tileJSON = _this$state.tileJSON;
113
- var minresolution = parseInt(tileJSON.minresolution);
114
- var maxresolution = parseInt(tileJSON.maxresolution);
97
+ var tileJSON = this.props.data;
98
+ if (!tileJSON) return null;
99
+ var data = tileJSON.tiles;
100
+ var minresolution = tileJSON.minresolution,
101
+ maxresolution = tileJSON.maxresolution;
115
102
 
116
103
  if (this.props.minZoom) {
117
104
  minresolution = Math.max(minresolution, (0, _h3Tileset2d.getHexagonResolution)({
@@ -134,12 +121,7 @@ var H3TileLayer = function (_CompositeLayer) {
134
121
  renderSubLayers: renderSubLayers,
135
122
  minZoom: minresolution,
136
123
  maxZoom: maxresolution,
137
- loadOptions: _objectSpread(_objectSpread({}, this.getLoadOptions()), {}, {
138
- cartoSpatialTile: {
139
- scheme: 'h3'
140
- },
141
- mimeType: 'application/vnd.carto-spatial-tile'
142
- })
124
+ loadOptions: this.getLoadOptions()
143
125
  })];
144
126
  }
145
127
  }]);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/layers/h3-tile-layer.ts"],"names":["renderSubLayers","props","data","index","tile","length","H3HexagonLayer","getHexagon","d","id","centerHexagon","highPrecision","defaultProps","aggregationResLevel","H3TileLayer","_checkH3Lib","setState","tileJSON","changeFlags","dataChanged","tiles","state","minresolution","parseInt","maxresolution","minZoom","Math","max","zoom","latitude","maxZoom","min","SpatialIndexTileLayer","TilesetClass","H3Tileset2D","loadOptions","getLoadOptions","cartoSpatialTile","scheme","mimeType","CompositeLayer"],"mappings":"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","sourcesContent":["import {\n CompositeLayer,\n CompositeLayerProps,\n Layer,\n LayersList,\n UpdateParameters,\n DefaultProps\n} from '@deck.gl/core';\nimport {H3HexagonLayer} from '@deck.gl/geo-layers';\nimport H3Tileset2D, {getHexagonResolution} from './h3-tileset-2d';\nimport SpatialIndexTileLayer from './spatial-index-tile-layer';\n\nconst renderSubLayers = props => {\n const {data} = props;\n const {index} = props.tile;\n if (!data || !data.length) return null;\n\n return new H3HexagonLayer(props, {\n getHexagon: d => d.id,\n centerHexagon: index,\n highPrecision: true\n });\n};\n\nconst defaultProps: DefaultProps<H3HexagonLayerProps> = {\n aggregationResLevel: 4\n};\n\n/** All properties supported by H3TileLayer. */\nexport type H3TileLayerProps<DataT = any> = _H3TileLayerProps<DataT> & CompositeLayerProps;\n\n// TODO: use type from h3-hexagon-layer when available\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\ntype H3HexagonLayerProps<DataT = any> = Record<string, any>;\n\n/** Properties added by H3TileLayer. */\ntype _H3TileLayerProps<DataT> = H3HexagonLayerProps<DataT> & {\n data: string;\n aggregationResLevel?: number;\n};\n\nexport default class H3TileLayer<DataT = any, ExtraPropsT extends {} = {}> extends CompositeLayer<\n ExtraPropsT & Required<_H3TileLayerProps<DataT>>\n> {\n static layerName = 'H3TileLayer';\n static defaultProps = defaultProps;\n\n state!: {\n tileJSON: any;\n data: any;\n };\n\n initializeState(): void {\n H3HexagonLayer._checkH3Lib();\n this.setState({data: null, tileJSON: null});\n }\n\n updateState({changeFlags}: UpdateParameters<this>): void {\n if (changeFlags.dataChanged) {\n let {data} = this.props;\n const tileJSON = data;\n data = (tileJSON as any).tiles;\n this.setState({data, tileJSON});\n }\n }\n\n renderLayers(): Layer | null | LayersList {\n const {data, tileJSON} = this.state;\n let minresolution = parseInt(tileJSON.minresolution);\n let maxresolution = parseInt(tileJSON.maxresolution);\n\n // Convert Mercator zooms provided in props into H3 res levels\n // and clip into valid range provided from the tilejson\n if (this.props.minZoom) {\n minresolution = Math.max(\n minresolution,\n getHexagonResolution({zoom: this.props.minZoom, latitude: 0})\n );\n }\n if (this.props.maxZoom) {\n maxresolution = Math.min(\n maxresolution,\n getHexagonResolution({zoom: this.props.maxZoom, latitude: 0})\n );\n }\n\n // The naming is unfortunate, but minZoom & maxZoom in the context\n // of a Tileset2D refer to the resolution levels, not the Mercator zooms\n return [\n new SpatialIndexTileLayer(this.props, {\n id: `h3-tile-layer-${this.props.id}`,\n data,\n // @ts-expect-error Tileset2D should be generic over TileIndex\n TilesetClass: H3Tileset2D,\n renderSubLayers,\n // minZoom and maxZoom are H3 resolutions, however we must use this naming as that is what the Tileset2D class expects\n minZoom: minresolution,\n maxZoom: maxresolution,\n loadOptions: {\n ...this.getLoadOptions(),\n cartoSpatialTile: {scheme: 'h3'},\n mimeType: 'application/vnd.carto-spatial-tile'\n }\n })\n ];\n }\n}\n"],"file":"h3-tile-layer.js"}
1
+ {"version":3,"sources":["../../../src/layers/h3-tile-layer.ts"],"names":["renderSubLayers","props","data","index","tile","length","H3HexagonLayer","getHexagon","d","id","centerHexagon","highPrecision","defaultProps","aggregationResLevel","TilejsonPropType","H3TileLayer","_checkH3Lib","loadOptions","tileJSON","accessToken","cartoSpatialTile","scheme","tiles","minresolution","maxresolution","minZoom","Math","max","zoom","latitude","maxZoom","min","SpatialIndexTileLayer","TilesetClass","H3Tileset2D","getLoadOptions","CompositeLayer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;AAEA,IAAMA,eAAe,GAAG,SAAlBA,eAAkB,CAACC,KAAD,EAAgC;AACtD,MAAOC,IAAP,GAAeD,KAAf,CAAOC,IAAP;AACA,MAAOC,KAAP,GAAgBF,KAAK,CAACG,IAAtB,CAAOD,KAAP;AACA,MAAI,CAACD,IAAD,IAAS,CAACA,IAAI,CAACG,MAAnB,EAA2B,OAAO,IAAP;AAE3B,SAAO,IAAIC,yBAAJ,CAAmBL,KAAnB,EAA0B;AAC/BM,IAAAA,UAAU,EAAE,oBAAAC,CAAC;AAAA,aAAIA,CAAC,CAACC,EAAN;AAAA,KADkB;AAE/BC,IAAAA,aAAa,EAAEP,KAFgB;AAG/BQ,IAAAA,aAAa,EAAE;AAHgB,GAA1B,CAAP;AAKD,CAVD;;AAYA,IAAMC,YAA+C,GAAG;AACtDC,EAAAA,mBAAmB,EAAE,CADiC;AAEtDX,EAAAA,IAAI,EAAEY;AAFgD,CAAxD;;IAkBqBC,W;;;;;;;;;;;;WAMnB,2BAAwB;AACtBT,gCAAeU,WAAf;AACD;;;WAED,0BAAsB;AACpB,UAAMC,WAAW,GAAG,+GAA0B,EAA9C;AACA,UAAMC,QAAQ,GAAG,KAAKjB,KAAL,CAAWC,IAA5B;AACA,oCAAkBe,WAAlB,EAA+BC,QAAQ,CAACC,WAAxC;AACAF,MAAAA,WAAW,CAACG,gBAAZ,mCAAmCH,WAAW,CAACG,gBAA/C;AAAiEC,QAAAA,MAAM,EAAE;AAAzE;AACA,aAAOJ,WAAP;AACD;;;WAED,wBAA0C;AACxC,UAAMC,QAAQ,GAAG,KAAKjB,KAAL,CAAWC,IAA5B;AACA,UAAI,CAACgB,QAAL,EAAe,OAAO,IAAP;AAEf,UAAchB,IAAd,GAAsBgB,QAAtB,CAAOI,KAAP;AACA,UAAKC,aAAL,GAAqCL,QAArC,CAAKK,aAAL;AAAA,UAAoBC,aAApB,GAAqCN,QAArC,CAAoBM,aAApB;;AAGA,UAAI,KAAKvB,KAAL,CAAWwB,OAAf,EAAwB;AACtBF,QAAAA,aAAa,GAAGG,IAAI,CAACC,GAAL,CACdJ,aADc,EAEd,uCAAqB;AAACK,UAAAA,IAAI,EAAE,KAAK3B,KAAL,CAAWwB,OAAlB;AAA2BI,UAAAA,QAAQ,EAAE;AAArC,SAArB,CAFc,CAAhB;AAID;;AACD,UAAI,KAAK5B,KAAL,CAAW6B,OAAf,EAAwB;AACtBN,QAAAA,aAAa,GAAGE,IAAI,CAACK,GAAL,CACdP,aADc,EAEd,uCAAqB;AAACI,UAAAA,IAAI,EAAE,KAAK3B,KAAL,CAAW6B,OAAlB;AAA2BD,UAAAA,QAAQ,EAAE;AAArC,SAArB,CAFc,CAAhB;AAID;;AAID,aAAO,CAEL,IAAIG,8BAAJ,CAA0B,KAAK/B,KAA/B,EAAsC;AACpCQ,QAAAA,EAAE,0BAAmB,KAAKR,KAAL,CAAWQ,EAA9B,CADkC;AAEpCP,QAAAA,IAAI,EAAJA,IAFoC;AAIpC+B,QAAAA,YAAY,EAAEC,oBAJsB;AAKpClC,QAAAA,eAAe,EAAfA,eALoC;AAOpCyB,QAAAA,OAAO,EAAEF,aAP2B;AAQpCO,QAAAA,OAAO,EAAEN,aAR2B;AASpCP,QAAAA,WAAW,EAAE,KAAKkB,cAAL;AATuB,OAAtC,CAFK,CAAP;AAcD;;;EAvDgFC,oB;;;8BAA9DrB,W,eAGA,a;8BAHAA,W,kBAIGH,Y","sourcesContent":["import {CompositeLayer, CompositeLayerProps, Layer, LayersList, DefaultProps} from '@deck.gl/core';\nimport {H3HexagonLayer} from '@deck.gl/geo-layers';\nimport H3Tileset2D, {getHexagonResolution} from './h3-tileset-2d';\nimport SpatialIndexTileLayer from './spatial-index-tile-layer';\nimport {TilejsonPropType, CartoTilejsonResult} from '../sources/common';\nimport {injectAccessToken} from './utils';\n\nconst renderSubLayers = (props: H3HexagonLayerProps) => {\n const {data} = props;\n const {index} = props.tile;\n if (!data || !data.length) return null;\n\n return new H3HexagonLayer(props, {\n getHexagon: d => d.id,\n centerHexagon: index,\n highPrecision: true\n });\n};\n\nconst defaultProps: DefaultProps<H3HexagonLayerProps> = {\n aggregationResLevel: 4,\n data: TilejsonPropType\n};\n\n/** All properties supported by H3TileLayer. */\nexport type H3TileLayerProps<DataT = any> = _H3TileLayerProps<DataT> & CompositeLayerProps;\n\n// TODO: use type from h3-hexagon-layer when available\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\ntype H3HexagonLayerProps<DataT = any> = Record<string, any>;\n\n/** Properties added by H3TileLayer. */\ntype _H3TileLayerProps<DataT> = Omit<H3HexagonLayerProps<DataT>, 'data'> & {\n data: null | CartoTilejsonResult | Promise<CartoTilejsonResult>;\n aggregationResLevel?: number;\n};\n\nexport default class H3TileLayer<DataT = any, ExtraPropsT extends {} = {}> extends CompositeLayer<\n ExtraPropsT & Required<_H3TileLayerProps<DataT>>\n> {\n static layerName = 'H3TileLayer';\n static defaultProps = defaultProps;\n\n initializeState(): void {\n H3HexagonLayer._checkH3Lib();\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.cartoSpatialTile = {...loadOptions.cartoSpatialTile, scheme: 'h3'};\n return loadOptions;\n }\n\n renderLayers(): Layer | null | LayersList {\n const tileJSON = this.props.data as CartoTilejsonResult;\n if (!tileJSON) return null;\n\n const {tiles: data} = tileJSON;\n let {minresolution, maxresolution} = tileJSON;\n // Convert Mercator zooms provided in props into H3 res levels\n // and clip into valid range provided from the tilejson\n if (this.props.minZoom) {\n minresolution = Math.max(\n minresolution,\n getHexagonResolution({zoom: this.props.minZoom, latitude: 0})\n );\n }\n if (this.props.maxZoom) {\n maxresolution = Math.min(\n maxresolution,\n getHexagonResolution({zoom: this.props.maxZoom, latitude: 0})\n );\n }\n\n // The naming is unfortunate, but minZoom & maxZoom in the context\n // of a Tileset2D refer to the resolution levels, not the Mercator zooms\n return [\n // @ts-ignore\n new SpatialIndexTileLayer(this.props, {\n id: `h3-tile-layer-${this.props.id}`,\n data,\n // TODO: Tileset2D should be generic over TileIndex type\n TilesetClass: H3Tileset2D as any,\n renderSubLayers,\n // minZoom and maxZoom are H3 resolutions, however we must use this naming as that is what the Tileset2D class expects\n minZoom: minresolution,\n maxZoom: maxresolution,\n loadOptions: this.getLoadOptions()\n })\n ];\n }\n}\n"],"file":"h3-tile-layer.js"}
@@ -60,6 +60,9 @@ var QuadbinLayer = function (_GeoCellLayer) {
60
60
  positionFormat: 'XY',
61
61
  getPolygon: function getPolygon(x, objectInfo) {
62
62
  return (0, _quadbinUtils.getQuadbinPolygon)(getQuadbin(x, objectInfo), coverage);
63
+ },
64
+ updateTriggers: {
65
+ getPolygon: coverage
63
66
  }
64
67
  };
65
68
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/layers/quadbin-layer.ts"],"names":["defaultProps","getQuadbin","type","value","d","quadbin","QuadbinLayer","props","data","extruded","coverage","_normalize","positionFormat","getPolygon","x","objectInfo","GeoCellLayer"],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA;;AAIA;;;;;;AAEA,IAAMA,YAA6C,GAAG;AACpDC,EAAAA,UAAU,EAAE;AAACC,IAAAA,IAAI,EAAE,UAAP;AAAmBC,IAAAA,KAAK,EAAE,eAAAC,CAAC;AAAA,aAAIA,CAAC,CAACC,OAAN;AAAA;AAA3B;AADwC,CAAtD;;IAiBqBC,Y;;;;;;;;;;;;WAOnB,yBAAuD;AACrD,wBAAqC,KAAKC,KAA1C;AAAA,UAAOC,IAAP,eAAOA,IAAP;AAAA,UAAaC,QAAb,eAAaA,QAAb;AAAA,UAAuBR,UAAvB,eAAuBA,UAAvB;AAEA,UAAMS,QAAQ,GAAGD,QAAQ,GAAG,IAAH,GAAU,CAAnC;AAEA,aAAO;AACLD,QAAAA,IAAI,EAAJA,IADK;AAELG,QAAAA,UAAU,EAAE,KAFP;AAGLC,QAAAA,cAAc,EAAE,IAHX;AAKLC,QAAAA,UAAU,EAAE,oBAACC,CAAD,EAAWC,UAAX;AAAA,iBAA0B,qCAAkBd,UAAU,CAACa,CAAD,EAAIC,UAAJ,CAA5B,EAA6CL,QAA7C,CAA1B;AAAA;AALP,OAAP;AAOD;;;EAnBgFM,wB;;;8BAA9DV,Y,eAIA,c;8BAJAA,Y,kBAKGN,Y","sourcesContent":["import {AccessorFunction, DefaultProps} from '@deck.gl/core';\nimport {\n _GeoCellLayer as GeoCellLayer,\n _GeoCellLayerProps as GeoCellLayerProps\n} from '@deck.gl/geo-layers';\nimport {getQuadbinPolygon} from './quadbin-utils';\n\nconst defaultProps: DefaultProps<QuadbinLayerProps> = {\n getQuadbin: {type: 'accessor', value: d => d.quadbin}\n};\n\n/** All properties supported by QuadbinLayer. */\nexport type QuadbinLayerProps<DataT = any> = _QuadbinLayerProps<DataT> & GeoCellLayerProps<DataT>;\n\n/** Properties added by QuadbinLayer. */\ntype _QuadbinLayerProps<DataT> = {\n /**\n * Called for each data object to retrieve the quadbin string identifier.\n *\n * By default, it reads `quadbin` property of data object.\n */\n getQuadbin?: AccessorFunction<DataT, bigint>;\n};\n\nexport default class QuadbinLayer<DataT = any, ExtraProps extends {} = {}> extends GeoCellLayer<\n DataT,\n Required<_QuadbinLayerProps<DataT>> & ExtraProps\n> {\n static layerName = 'QuadbinLayer';\n static defaultProps = defaultProps;\n\n indexToBounds(): Partial<GeoCellLayer['props']> | null {\n const {data, extruded, getQuadbin} = this.props;\n // To avoid z-fighting reduce polygon footprint when extruding\n const coverage = extruded ? 0.99 : 1;\n\n return {\n data,\n _normalize: false,\n positionFormat: 'XY',\n\n getPolygon: (x: DataT, objectInfo) => getQuadbinPolygon(getQuadbin(x, objectInfo), coverage)\n };\n }\n}\n"],"file":"quadbin-layer.js"}
1
+ {"version":3,"sources":["../../../src/layers/quadbin-layer.ts"],"names":["defaultProps","getQuadbin","type","value","d","quadbin","QuadbinLayer","props","data","extruded","coverage","_normalize","positionFormat","getPolygon","x","objectInfo","updateTriggers","GeoCellLayer"],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA;;AAIA;;;;;;AAEA,IAAMA,YAA6C,GAAG;AACpDC,EAAAA,UAAU,EAAE;AAACC,IAAAA,IAAI,EAAE,UAAP;AAAmBC,IAAAA,KAAK,EAAE,eAAAC,CAAC;AAAA,aAAIA,CAAC,CAACC,OAAN;AAAA;AAA3B;AADwC,CAAtD;;IAiBqBC,Y;;;;;;;;;;;;WAOnB,yBAAuD;AACrD,wBAAqC,KAAKC,KAA1C;AAAA,UAAOC,IAAP,eAAOA,IAAP;AAAA,UAAaC,QAAb,eAAaA,QAAb;AAAA,UAAuBR,UAAvB,eAAuBA,UAAvB;AAEA,UAAMS,QAAQ,GAAGD,QAAQ,GAAG,IAAH,GAAU,CAAnC;AAEA,aAAO;AACLD,QAAAA,IAAI,EAAJA,IADK;AAELG,QAAAA,UAAU,EAAE,KAFP;AAGLC,QAAAA,cAAc,EAAE,IAHX;AAKLC,QAAAA,UAAU,EAAE,oBAACC,CAAD,EAAWC,UAAX;AAAA,iBAA0B,qCAAkBd,UAAU,CAACa,CAAD,EAAIC,UAAJ,CAA5B,EAA6CL,QAA7C,CAA1B;AAAA,SALP;AAMLM,QAAAA,cAAc,EAAE;AAACH,UAAAA,UAAU,EAAEH;AAAb;AANX,OAAP;AAQD;;;EApBgFO,wB;;;8BAA9DX,Y,eAIA,c;8BAJAA,Y,kBAKGN,Y","sourcesContent":["import {AccessorFunction, DefaultProps} from '@deck.gl/core';\nimport {\n _GeoCellLayer as GeoCellLayer,\n _GeoCellLayerProps as GeoCellLayerProps\n} from '@deck.gl/geo-layers';\nimport {getQuadbinPolygon} from './quadbin-utils';\n\nconst defaultProps: DefaultProps<QuadbinLayerProps> = {\n getQuadbin: {type: 'accessor', value: d => d.quadbin}\n};\n\n/** All properties supported by QuadbinLayer. */\nexport type QuadbinLayerProps<DataT = any> = _QuadbinLayerProps<DataT> & GeoCellLayerProps<DataT>;\n\n/** Properties added by QuadbinLayer. */\ntype _QuadbinLayerProps<DataT> = {\n /**\n * Called for each data object to retrieve the quadbin string identifier.\n *\n * By default, it reads `quadbin` property of data object.\n */\n getQuadbin?: AccessorFunction<DataT, bigint>;\n};\n\nexport default class QuadbinLayer<DataT = any, ExtraProps extends {} = {}> extends GeoCellLayer<\n DataT,\n Required<_QuadbinLayerProps<DataT>> & ExtraProps\n> {\n static layerName = 'QuadbinLayer';\n static defaultProps = defaultProps;\n\n indexToBounds(): Partial<GeoCellLayer['props']> | null {\n const {data, extruded, getQuadbin} = this.props;\n // To avoid z-fighting reduce polygon footprint when extruding\n const coverage = extruded ? 0.99 : 1;\n\n return {\n data,\n _normalize: false,\n positionFormat: 'XY',\n\n getPolygon: (x: DataT, objectInfo) => getQuadbinPolygon(getQuadbin(x, objectInfo), coverage),\n updateTriggers: {getPolygon: coverage}\n };\n }\n}\n"],"file":"quadbin-layer.js"}
@@ -11,7 +11,7 @@ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/cl
11
11
 
12
12
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
13
 
14
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
14
+ var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
15
15
 
16
16
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
17
 
@@ -31,6 +31,10 @@ var _spatialIndexTileLayer = _interopRequireDefault(require("./spatial-index-til
31
31
 
32
32
  var _quadbin = require("quadbin");
33
33
 
34
+ var _common = require("../sources/common");
35
+
36
+ var _utils = require("./utils");
37
+
34
38
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
35
39
 
36
40
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
@@ -54,7 +58,8 @@ var renderSubLayers = function renderSubLayers(props) {
54
58
 
55
59
  exports.renderSubLayers = renderSubLayers;
56
60
  var defaultProps = {
57
- aggregationResLevel: 6
61
+ aggregationResLevel: 6,
62
+ data: _common.TilejsonPropType
58
63
  };
59
64
 
60
65
  var QuadbinTileLayer = function (_CompositeLayer) {
@@ -63,61 +68,35 @@ var QuadbinTileLayer = function (_CompositeLayer) {
63
68
  var _super = _createSuper(QuadbinTileLayer);
64
69
 
65
70
  function QuadbinTileLayer() {
66
- var _this;
67
-
68
71
  (0, _classCallCheck2.default)(this, QuadbinTileLayer);
69
-
70
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
71
- args[_key] = arguments[_key];
72
- }
73
-
74
- _this = _super.call.apply(_super, [this].concat(args));
75
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "state", void 0);
76
- return _this;
72
+ return _super.apply(this, arguments);
77
73
  }
78
74
 
79
75
  (0, _createClass2.default)(QuadbinTileLayer, [{
80
- key: "initializeState",
81
- value: function initializeState() {
82
- this.setState({
83
- data: null,
84
- tileJSON: null
76
+ key: "getLoadOptions",
77
+ value: function getLoadOptions() {
78
+ var loadOptions = (0, _get2.default)((0, _getPrototypeOf2.default)(QuadbinTileLayer.prototype), "getLoadOptions", this).call(this) || {};
79
+ var tileJSON = this.props.data;
80
+ (0, _utils.injectAccessToken)(loadOptions, tileJSON.accessToken);
81
+ loadOptions.cartoSpatialTile = _objectSpread(_objectSpread({}, loadOptions.cartoSpatialTile), {}, {
82
+ scheme: 'quadbin'
85
83
  });
86
- }
87
- }, {
88
- key: "updateState",
89
- value: function updateState(_ref) {
90
- var changeFlags = _ref.changeFlags;
91
-
92
- if (changeFlags.dataChanged) {
93
- var data = this.props.data;
94
- var tileJSON = data;
95
- data = tileJSON.tiles;
96
- this.setState({
97
- data: data,
98
- tileJSON: tileJSON
99
- });
100
- }
84
+ return loadOptions;
101
85
  }
102
86
  }, {
103
87
  key: "renderLayers",
104
88
  value: function renderLayers() {
105
- var _this$state = this.state,
106
- data = _this$state.data,
107
- tileJSON = _this$state.tileJSON;
108
- var maxZoom = parseInt(tileJSON === null || tileJSON === void 0 ? void 0 : tileJSON.maxresolution);
89
+ var tileJSON = this.props.data;
90
+ if (!tileJSON) return null;
91
+ var data = tileJSON.tiles,
92
+ maxZoom = tileJSON.maxresolution;
109
93
  return [new _spatialIndexTileLayer.default(this.props, {
110
94
  id: "quadbin-tile-layer-".concat(this.props.id),
111
95
  data: data,
112
96
  TilesetClass: _quadbinTileset2d.default,
113
97
  renderSubLayers: renderSubLayers,
114
98
  maxZoom: maxZoom,
115
- loadOptions: _objectSpread(_objectSpread({}, this.getLoadOptions()), {}, {
116
- cartoSpatialTile: {
117
- scheme: 'quadbin'
118
- },
119
- mimeType: 'application/vnd.carto-spatial-tile'
120
- })
99
+ loadOptions: this.getLoadOptions()
121
100
  })];
122
101
  }
123
102
  }]);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/layers/quadbin-tile-layer.ts"],"names":["renderSubLayers","props","data","length","isBigInt","id","QuadbinLayer","getQuadbin","d","defaultProps","aggregationResLevel","QuadbinTileLayer","setState","tileJSON","changeFlags","dataChanged","tiles","state","maxZoom","parseInt","maxresolution","SpatialIndexTileLayer","TilesetClass","QuadbinTileset2D","loadOptions","getLoadOptions","cartoSpatialTile","scheme","mimeType","CompositeLayer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAQA;;AACA;;AACA;;AACA;;;;;;;;;;AAEO,IAAMA,eAAe,GAAG,SAAlBA,eAAkB,CAAAC,KAAK,EAAI;AACtC,MAAOC,IAAP,GAAeD,KAAf,CAAOC,IAAP;AACA,MAAI,CAACA,IAAD,IAAS,CAACA,IAAI,CAACC,MAAnB,EAA2B,OAAO,IAAP;AAC3B,MAAMC,QAAQ,GAAG,OAAOF,IAAI,CAAC,CAAD,CAAJ,CAAQG,EAAf,KAAsB,QAAvC;AACA,SAAO,IAAIC,qBAAJ,CAAiBL,KAAjB,EAAwB;AAC7BM,IAAAA,UAAU,EAAEH,QAAQ,GAAG,UAAAI,CAAC;AAAA,aAAIA,CAAC,CAACH,EAAN;AAAA,KAAJ,GAAe,UAAAG,CAAC;AAAA,aAAI,0BAAYA,CAAC,CAACH,EAAd,CAAJ;AAAA;AADP,GAAxB,CAAP;AAGD,CAPM;;;AASP,IAAMI,YAAiD,GAAG;AACxDC,EAAAA,mBAAmB,EAAE;AADmC,CAA1D;;IAcqBC,gB;;;;;;;;;;;;;;;;;;;;;WAWnB,2BAAwB;AACtB,WAAKC,QAAL,CAAc;AAACV,QAAAA,IAAI,EAAE,IAAP;AAAaW,QAAAA,QAAQ,EAAE;AAAvB,OAAd;AACD;;;WAED,2BAAyD;AAAA,UAA5CC,WAA4C,QAA5CA,WAA4C;;AACvD,UAAIA,WAAW,CAACC,WAAhB,EAA6B;AAC3B,YAAKb,IAAL,GAAa,KAAKD,KAAlB,CAAKC,IAAL;AACA,YAAMW,QAAQ,GAAGX,IAAjB;AACAA,QAAAA,IAAI,GAAIW,QAAD,CAAkBG,KAAzB;AACA,aAAKJ,QAAL,CAAc;AAACV,UAAAA,IAAI,EAAJA,IAAD;AAAOW,UAAAA,QAAQ,EAARA;AAAP,SAAd;AACD;AACF;;;WAED,wBAA0C;AACxC,wBAAyB,KAAKI,KAA9B;AAAA,UAAOf,IAAP,eAAOA,IAAP;AAAA,UAAaW,QAAb,eAAaA,QAAb;AACA,UAAMK,OAAO,GAAGC,QAAQ,CAACN,QAAD,aAACA,QAAD,uBAACA,QAAQ,CAAEO,aAAX,CAAxB;AACA,aAAO,CACL,IAAIC,8BAAJ,CAA0B,KAAKpB,KAA/B,EAAsC;AACpCI,QAAAA,EAAE,+BAAwB,KAAKJ,KAAL,CAAWI,EAAnC,CADkC;AAEpCH,QAAAA,IAAI,EAAJA,IAFoC;AAIpCoB,QAAAA,YAAY,EAAEC,yBAJsB;AAKpCvB,QAAAA,eAAe,EAAfA,eALoC;AAMpCkB,QAAAA,OAAO,EAAPA,OANoC;AAOpCM,QAAAA,WAAW,kCACN,KAAKC,cAAL,EADM;AAETC,UAAAA,gBAAgB,EAAE;AAACC,YAAAA,MAAM,EAAE;AAAT,WAFT;AAGTC,UAAAA,QAAQ,EAAE;AAHD;AAPyB,OAAtC,CADK,CAAP;AAeD;;;EAvCOC,oB;;;8BAHWlB,gB,eAIA,kB;8BAJAA,gB,kBAKGF,Y","sourcesContent":["import {\n CompositeLayer,\n CompositeLayerProps,\n Layer,\n LayersList,\n UpdateParameters,\n DefaultProps\n} from '@deck.gl/core';\nimport QuadbinLayer, {QuadbinLayerProps} from './quadbin-layer';\nimport QuadbinTileset2D from './quadbin-tileset-2d';\nimport SpatialIndexTileLayer from './spatial-index-tile-layer';\nimport {hexToBigInt} from 'quadbin';\n\nexport const renderSubLayers = props => {\n const {data} = props;\n if (!data || !data.length) return null;\n const isBigInt = typeof data[0].id === 'bigint';\n return new QuadbinLayer(props, {\n getQuadbin: isBigInt ? d => d.id : d => hexToBigInt(d.id)\n });\n};\n\nconst defaultProps: DefaultProps<QuadbinTileLayerProps> = {\n aggregationResLevel: 6\n};\n\n/** All properties supported by QuadbinTileLayer. */\nexport type QuadbinTileLayerProps<DataT = any> = _QuadbinTileLayerProps<DataT> &\n CompositeLayerProps;\n\n/** Properties added by QuadbinTileLayer. */\ntype _QuadbinTileLayerProps<DataT> = QuadbinLayerProps<DataT> & {\n data: string;\n aggregationResLevel?: number;\n};\n\nexport default class QuadbinTileLayer<\n DataT = any,\n ExtraProps extends {} = {}\n> extends CompositeLayer<ExtraProps & Required<_QuadbinTileLayerProps<DataT>>> {\n static layerName = 'QuadbinTileLayer';\n static defaultProps = defaultProps;\n\n state!: {\n tileJSON: any;\n data: any;\n };\n initializeState(): void {\n this.setState({data: null, tileJSON: null});\n }\n\n updateState({changeFlags}: UpdateParameters<this>): void {\n if (changeFlags.dataChanged) {\n let {data} = this.props;\n const tileJSON = data;\n data = (tileJSON as any).tiles;\n this.setState({data, tileJSON});\n }\n }\n\n renderLayers(): Layer | null | LayersList {\n const {data, tileJSON} = this.state;\n const maxZoom = parseInt(tileJSON?.maxresolution);\n return [\n new SpatialIndexTileLayer(this.props, {\n id: `quadbin-tile-layer-${this.props.id}`,\n data,\n // TODO: Tileset2D should be generic over TileIndex type\n TilesetClass: QuadbinTileset2D as any,\n renderSubLayers,\n maxZoom,\n loadOptions: {\n ...this.getLoadOptions(),\n cartoSpatialTile: {scheme: 'quadbin'},\n mimeType: 'application/vnd.carto-spatial-tile'\n }\n })\n ];\n }\n}\n"],"file":"quadbin-tile-layer.js"}
1
+ {"version":3,"sources":["../../../src/layers/quadbin-tile-layer.ts"],"names":["renderSubLayers","props","data","length","isBigInt","id","QuadbinLayer","getQuadbin","d","defaultProps","aggregationResLevel","TilejsonPropType","QuadbinTileLayer","loadOptions","tileJSON","accessToken","cartoSpatialTile","scheme","tiles","maxZoom","maxresolution","SpatialIndexTileLayer","TilesetClass","QuadbinTileset2D","getLoadOptions","CompositeLayer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAEO,IAAMA,eAAe,GAAG,SAAlBA,eAAkB,CAAAC,KAAK,EAAI;AACtC,MAAOC,IAAP,GAAeD,KAAf,CAAOC,IAAP;AACA,MAAI,CAACA,IAAD,IAAS,CAACA,IAAI,CAACC,MAAnB,EAA2B,OAAO,IAAP;AAC3B,MAAMC,QAAQ,GAAG,OAAOF,IAAI,CAAC,CAAD,CAAJ,CAAQG,EAAf,KAAsB,QAAvC;AACA,SAAO,IAAIC,qBAAJ,CAAiBL,KAAjB,EAAwB;AAC7BM,IAAAA,UAAU,EAAEH,QAAQ,GAAG,UAAAI,CAAC;AAAA,aAAIA,CAAC,CAACH,EAAN;AAAA,KAAJ,GAAe,UAAAG,CAAC;AAAA,aAAI,0BAAYA,CAAC,CAACH,EAAd,CAAJ;AAAA;AADP,GAAxB,CAAP;AAGD,CAPM;;;AASP,IAAMI,YAAiD,GAAG;AACxDC,EAAAA,mBAAmB,EAAE,CADmC;AAExDR,EAAAA,IAAI,EAAES;AAFkD,CAA1D;;IAeqBC,gB;;;;;;;;;;;;WAOnB,0BAAsB;AACpB,UAAMC,WAAW,GAAG,oHAA0B,EAA9C;AACA,UAAMC,QAAQ,GAAG,KAAKb,KAAL,CAAWC,IAA5B;AACA,oCAAkBW,WAAlB,EAA+BC,QAAQ,CAACC,WAAxC;AACAF,MAAAA,WAAW,CAACG,gBAAZ,mCAAmCH,WAAW,CAACG,gBAA/C;AAAiEC,QAAAA,MAAM,EAAE;AAAzE;AACA,aAAOJ,WAAP;AACD;;;WAED,wBAA0C;AACxC,UAAMC,QAAQ,GAAG,KAAKb,KAAL,CAAWC,IAA5B;AACA,UAAI,CAACY,QAAL,EAAe,OAAO,IAAP;AAEf,UAAcZ,IAAd,GAA8CY,QAA9C,CAAOI,KAAP;AAAA,UAAmCC,OAAnC,GAA8CL,QAA9C,CAAoBM,aAApB;AACA,aAAO,CAEL,IAAIC,8BAAJ,CAA0B,KAAKpB,KAA/B,EAAsC;AACpCI,QAAAA,EAAE,+BAAwB,KAAKJ,KAAL,CAAWI,EAAnC,CADkC;AAEpCH,QAAAA,IAAI,EAAJA,IAFoC;AAIpCoB,QAAAA,YAAY,EAAEC,yBAJsB;AAKpCvB,QAAAA,eAAe,EAAfA,eALoC;AAMpCmB,QAAAA,OAAO,EAAPA,OANoC;AAOpCN,QAAAA,WAAW,EAAE,KAAKW,cAAL;AAPuB,OAAtC,CAFK,CAAP;AAYD;;;EA7BOC,oB;;;8BAHWb,gB,eAIA,kB;8BAJAA,gB,kBAKGH,Y","sourcesContent":["import {CompositeLayer, CompositeLayerProps, Layer, LayersList, DefaultProps} from '@deck.gl/core';\nimport QuadbinLayer, {QuadbinLayerProps} from './quadbin-layer';\nimport QuadbinTileset2D from './quadbin-tileset-2d';\nimport SpatialIndexTileLayer from './spatial-index-tile-layer';\nimport {hexToBigInt} from 'quadbin';\nimport {TilejsonPropType, CartoTilejsonResult} from '../sources/common';\nimport {injectAccessToken} from './utils';\n\nexport const renderSubLayers = props => {\n const {data} = props;\n if (!data || !data.length) return null;\n const isBigInt = typeof data[0].id === 'bigint';\n return new QuadbinLayer(props, {\n getQuadbin: isBigInt ? d => d.id : d => hexToBigInt(d.id)\n });\n};\n\nconst defaultProps: DefaultProps<QuadbinTileLayerProps> = {\n aggregationResLevel: 6,\n data: TilejsonPropType\n};\n\n/** All properties supported by QuadbinTileLayer. */\nexport type QuadbinTileLayerProps<DataT = any> = _QuadbinTileLayerProps<DataT> &\n CompositeLayerProps;\n\n/** Properties added by QuadbinTileLayer. */\ntype _QuadbinTileLayerProps<DataT> = Omit<QuadbinLayerProps<DataT>, 'data'> & {\n data: null | CartoTilejsonResult | Promise<CartoTilejsonResult>;\n aggregationResLevel?: number;\n};\n\nexport default class QuadbinTileLayer<\n DataT = any,\n ExtraProps extends {} = {}\n> extends CompositeLayer<ExtraProps & Required<_QuadbinTileLayerProps<DataT>>> {\n static layerName = 'QuadbinTileLayer';\n static defaultProps = defaultProps;\n\n getLoadOptions(): any {\n const loadOptions = super.getLoadOptions() || {};\n const tileJSON = this.props.data as CartoTilejsonResult;\n injectAccessToken(loadOptions, tileJSON.accessToken);\n loadOptions.cartoSpatialTile = {...loadOptions.cartoSpatialTile, scheme: 'quadbin'};\n return loadOptions;\n }\n\n renderLayers(): Layer | null | LayersList {\n const tileJSON = this.props.data as CartoTilejsonResult;\n if (!tileJSON) return null;\n\n const {tiles: data, maxresolution: maxZoom} = tileJSON;\n return [\n // @ts-ignore\n new SpatialIndexTileLayer(this.props, {\n id: `quadbin-tile-layer-${this.props.id}`,\n data,\n // TODO: Tileset2D should be generic over TileIndex type\n TilesetClass: QuadbinTileset2D as any,\n renderSubLayers,\n maxZoom,\n loadOptions: this.getLoadOptions()\n })\n ];\n }\n}\n"],"file":"quadbin-tile-layer.js"}
@@ -11,7 +11,7 @@ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/cl
11
11
 
12
12
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
13
 
14
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
14
+ var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
15
15
 
16
16
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
17
 
@@ -29,6 +29,10 @@ var _quadbinTileset2d = _interopRequireDefault(require("./quadbin-tileset-2d"));
29
29
 
30
30
  var _spatialIndexTileLayer = _interopRequireDefault(require("./spatial-index-tile-layer"));
31
31
 
32
+ var _common = require("../sources/common");
33
+
34
+ var _utils = require("./utils");
35
+
32
36
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
33
37
 
34
38
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
@@ -44,6 +48,9 @@ var renderSubLayers = function renderSubLayers(props) {
44
48
  };
45
49
 
46
50
  exports.renderSubLayers = renderSubLayers;
51
+ var defaultProps = {
52
+ data: _common.TilejsonPropType
53
+ };
47
54
 
48
55
  var RasterTileLayer = function (_CompositeLayer) {
49
56
  (0, _inherits2.default)(RasterTileLayer, _CompositeLayer);
@@ -51,57 +58,34 @@ var RasterTileLayer = function (_CompositeLayer) {
51
58
  var _super = _createSuper(RasterTileLayer);
52
59
 
53
60
  function RasterTileLayer() {
54
- var _this;
55
-
56
61
  (0, _classCallCheck2.default)(this, RasterTileLayer);
57
-
58
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
59
- args[_key] = arguments[_key];
60
- }
61
-
62
- _this = _super.call.apply(_super, [this].concat(args));
63
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "state", void 0);
64
- return _this;
62
+ return _super.apply(this, arguments);
65
63
  }
66
64
 
67
65
  (0, _createClass2.default)(RasterTileLayer, [{
68
- key: "initializeState",
69
- value: function initializeState() {
70
- this.setState({
71
- data: null,
72
- tileJSON: null
73
- });
74
- }
75
- }, {
76
- key: "updateState",
77
- value: function updateState(_ref) {
78
- var changeFlags = _ref.changeFlags;
79
-
80
- if (changeFlags.dataChanged) {
81
- var data = this.props.data;
82
- var tileJSON = data;
83
- data = tileJSON.tiles;
84
- this.setState({
85
- data: data,
86
- tileJSON: tileJSON
87
- });
88
- }
66
+ key: "getLoadOptions",
67
+ value: function getLoadOptions() {
68
+ var loadOptions = (0, _get2.default)((0, _getPrototypeOf2.default)(RasterTileLayer.prototype), "getLoadOptions", this).call(this) || {};
69
+ var tileJSON = this.props.data;
70
+ (0, _utils.injectAccessToken)(loadOptions, tileJSON.accessToken);
71
+ return loadOptions;
89
72
  }
90
73
  }, {
91
74
  key: "renderLayers",
92
75
  value: function renderLayers() {
93
- var _this$state = this.state,
94
- data = _this$state.data,
95
- tileJSON = _this$state.tileJSON;
96
- var minZoom = parseInt(tileJSON === null || tileJSON === void 0 ? void 0 : tileJSON.minzoom);
97
- var maxZoom = parseInt(tileJSON === null || tileJSON === void 0 ? void 0 : tileJSON.maxzoom);
76
+ var tileJSON = this.props.data;
77
+ if (!tileJSON) return null;
78
+ var data = tileJSON.tiles,
79
+ minZoom = tileJSON.minzoom,
80
+ maxZoom = tileJSON.maxzoom;
98
81
  return [new _spatialIndexTileLayer.default(this.props, {
99
82
  id: "raster-tile-layer-".concat(this.props.id),
100
83
  data: data,
101
84
  TilesetClass: _quadbinTileset2d.default,
102
85
  renderSubLayers: renderSubLayers,
103
86
  minZoom: minZoom,
104
- maxZoom: maxZoom
87
+ maxZoom: maxZoom,
88
+ loadOptions: this.getLoadOptions()
105
89
  })];
106
90
  }
107
91
  }]);
@@ -110,5 +94,5 @@ var RasterTileLayer = function (_CompositeLayer) {
110
94
 
111
95
  exports.default = RasterTileLayer;
112
96
  (0, _defineProperty2.default)(RasterTileLayer, "layerName", 'RasterTileLayer');
113
- (0, _defineProperty2.default)(RasterTileLayer, "defaultProps", {});
97
+ (0, _defineProperty2.default)(RasterTileLayer, "defaultProps", defaultProps);
114
98
  //# sourceMappingURL=raster-tile-layer.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/layers/raster-tile-layer.ts"],"names":["renderSubLayers","props","tileIndex","tile","index","q","RasterLayer","RasterTileLayer","setState","data","tileJSON","changeFlags","dataChanged","tiles","state","minZoom","parseInt","minzoom","maxZoom","maxzoom","SpatialIndexTileLayer","id","TilesetClass","QuadbinTileset2D","CompositeLayer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAOA;;AACA;;AACA;;;;;;AAEO,IAAMA,eAAe,GAAG,SAAlBA,eAAkB,CAAAC,KAAK,EAAI;AAAA;;AACtC,MAAMC,SAAS,kBAAGD,KAAK,CAACE,IAAT,qEAAG,YAAYC,KAAf,sDAAG,kBAAmBC,CAArC;AACA,MAAI,CAACH,SAAL,EAAgB,OAAO,IAAP;AAChB,SAAO,IAAII,oBAAJ,CAAgBL,KAAhB,EAAuB;AAACC,IAAAA,SAAS,EAATA;AAAD,GAAvB,CAAP;AACD,CAJM;;;;IAccK,e;;;;;;;;;;;;;;;;;;;;;WAQnB,2BAAwB;AACtB,WAAKC,QAAL,CAAc;AAACC,QAAAA,IAAI,EAAE,IAAP;AAAaC,QAAAA,QAAQ,EAAE;AAAvB,OAAd;AACD;;;WAED,2BAAyD;AAAA,UAA5CC,WAA4C,QAA5CA,WAA4C;;AACvD,UAAIA,WAAW,CAACC,WAAhB,EAA6B;AAC3B,YAAKH,IAAL,GAAa,KAAKR,KAAlB,CAAKQ,IAAL;AACA,YAAMC,QAAQ,GAAGD,IAAjB;AACAA,QAAAA,IAAI,GAAIC,QAAD,CAAkBG,KAAzB;AACA,aAAKL,QAAL,CAAc;AAACC,UAAAA,IAAI,EAAJA,IAAD;AAAOC,UAAAA,QAAQ,EAARA;AAAP,SAAd;AACD;AACF;;;WAED,wBAA0C;AACxC,wBAAyB,KAAKI,KAA9B;AAAA,UAAOL,IAAP,eAAOA,IAAP;AAAA,UAAaC,QAAb,eAAaA,QAAb;AACA,UAAMK,OAAO,GAAGC,QAAQ,CAACN,QAAD,aAACA,QAAD,uBAACA,QAAQ,CAAEO,OAAX,CAAxB;AACA,UAAMC,OAAO,GAAGF,QAAQ,CAACN,QAAD,aAACA,QAAD,uBAACA,QAAQ,CAAES,OAAX,CAAxB;AACA,aAAO,CACL,IAAIC,8BAAJ,CAA0B,KAAKnB,KAA/B,EAAsC;AACpCoB,QAAAA,EAAE,8BAAuB,KAAKpB,KAAL,CAAWoB,EAAlC,CADkC;AAEpCZ,QAAAA,IAAI,EAAJA,IAFoC;AAIpCa,QAAAA,YAAY,EAAEC,yBAJsB;AAKpCvB,QAAAA,eAAe,EAAfA,eALoC;AAMpCe,QAAAA,OAAO,EAAPA,OANoC;AAOpCG,QAAAA,OAAO,EAAPA;AAPoC,OAAtC,CADK,CAAP;AAWD;;;EAjCOM,oB;;;8BAHWjB,e,eAIA,iB;8BAJAA,e,kBAKG,E","sourcesContent":["import {\n CompositeLayer,\n CompositeLayerProps,\n Layer,\n LayersList,\n UpdateParameters\n} from '@deck.gl/core';\nimport RasterLayer, {RasterLayerProps} from './raster-layer';\nimport QuadbinTileset2D from './quadbin-tileset-2d';\nimport SpatialIndexTileLayer from './spatial-index-tile-layer';\n\nexport const renderSubLayers = props => {\n const tileIndex = props.tile?.index?.q;\n if (!tileIndex) return null;\n return new RasterLayer(props, {tileIndex});\n};\n\n/** All properties supported by RasterTileLayer. */\nexport type RasterTileLayerProps<DataT = any> = _RasterTileLayerProps<DataT> & CompositeLayerProps;\n\n/** Properties added by RasterTileLayer. */\ntype _RasterTileLayerProps<DataT> = RasterLayerProps<DataT> & {\n data: string;\n};\n\nexport default class RasterTileLayer<\n DataT = any,\n ExtraProps extends {} = {}\n> extends CompositeLayer<ExtraProps & Required<_RasterTileLayerProps<DataT>>> {\n static layerName = 'RasterTileLayer';\n static defaultProps = {};\n\n state!: {tileJSON: any; data: any};\n initializeState(): void {\n this.setState({data: null, tileJSON: null});\n }\n\n updateState({changeFlags}: UpdateParameters<this>): void {\n if (changeFlags.dataChanged) {\n let {data} = this.props;\n const tileJSON = data;\n data = (tileJSON as any).tiles;\n this.setState({data, tileJSON});\n }\n }\n\n renderLayers(): Layer | null | LayersList {\n const {data, tileJSON} = this.state;\n const minZoom = parseInt(tileJSON?.minzoom);\n const maxZoom = parseInt(tileJSON?.maxzoom);\n return [\n new SpatialIndexTileLayer(this.props, {\n id: `raster-tile-layer-${this.props.id}`,\n data,\n // TODO: Tileset2D should be generic over TileIndex type\n TilesetClass: QuadbinTileset2D as any,\n renderSubLayers,\n minZoom,\n maxZoom\n })\n ];\n }\n}\n"],"file":"raster-tile-layer.js"}
1
+ {"version":3,"sources":["../../../src/layers/raster-tile-layer.ts"],"names":["renderSubLayers","props","tileIndex","tile","index","q","RasterLayer","defaultProps","data","TilejsonPropType","RasterTileLayer","loadOptions","tileJSON","accessToken","tiles","minZoom","minzoom","maxZoom","maxzoom","SpatialIndexTileLayer","id","TilesetClass","QuadbinTileset2D","getLoadOptions","CompositeLayer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;AAEO,IAAMA,eAAe,GAAG,SAAlBA,eAAkB,CAAAC,KAAK,EAAI;AAAA;;AACtC,MAAMC,SAAS,kBAAGD,KAAK,CAACE,IAAT,qEAAG,YAAYC,KAAf,sDAAG,kBAAmBC,CAArC;AACA,MAAI,CAACH,SAAL,EAAgB,OAAO,IAAP;AAChB,SAAO,IAAII,oBAAJ,CAAgBL,KAAhB,EAAuB;AAACC,IAAAA,SAAS,EAATA;AAAD,GAAvB,CAAP;AACD,CAJM;;;AAMP,IAAMK,YAAgD,GAAG;AACvDC,EAAAA,IAAI,EAAEC;AADiD,CAAzD;;IAYqBC,e;;;;;;;;;;;;WAOnB,0BAAsB;AACpB,UAAMC,WAAW,GAAG,mHAA0B,EAA9C;AACA,UAAMC,QAAQ,GAAG,KAAKX,KAAL,CAAWO,IAA5B;AACA,oCAAkBG,WAAlB,EAA+BC,QAAQ,CAACC,WAAxC;AACA,aAAOF,WAAP;AACD;;;WAED,wBAA0C;AACxC,UAAMC,QAAQ,GAAG,KAAKX,KAAL,CAAWO,IAA5B;AACA,UAAI,CAACI,QAAL,EAAe,OAAO,IAAP;AAEf,UAAcJ,IAAd,GAA0DI,QAA1D,CAAOE,KAAP;AAAA,UAA6BC,OAA7B,GAA0DH,QAA1D,CAAoBI,OAApB;AAAA,UAA+CC,OAA/C,GAA0DL,QAA1D,CAAsCM,OAAtC;AACA,aAAO,CAEL,IAAIC,8BAAJ,CAA0B,KAAKlB,KAA/B,EAAsC;AACpCmB,QAAAA,EAAE,8BAAuB,KAAKnB,KAAL,CAAWmB,EAAlC,CADkC;AAEpCZ,QAAAA,IAAI,EAAJA,IAFoC;AAIpCa,QAAAA,YAAY,EAAEC,yBAJsB;AAKpCtB,QAAAA,eAAe,EAAfA,eALoC;AAMpCe,QAAAA,OAAO,EAAPA,OANoC;AAOpCE,QAAAA,OAAO,EAAPA,OAPoC;AAQpCN,QAAAA,WAAW,EAAE,KAAKY,cAAL;AARuB,OAAtC,CAFK,CAAP;AAaD;;;EA7BOC,oB;;;8BAHWd,e,eAIA,iB;8BAJAA,e,kBAKGH,Y","sourcesContent":["import {CompositeLayer, CompositeLayerProps, DefaultProps, Layer, LayersList} from '@deck.gl/core';\nimport RasterLayer, {RasterLayerProps} from './raster-layer';\nimport QuadbinTileset2D from './quadbin-tileset-2d';\nimport SpatialIndexTileLayer from './spatial-index-tile-layer';\nimport {TilejsonPropType, CartoTilejsonResult} from '../sources/common';\nimport {injectAccessToken} from './utils';\n\nexport const renderSubLayers = props => {\n const tileIndex = props.tile?.index?.q;\n if (!tileIndex) return null;\n return new RasterLayer(props, {tileIndex});\n};\n\nconst defaultProps: DefaultProps<RasterTileLayerProps> = {\n data: TilejsonPropType\n};\n\n/** All properties supported by RasterTileLayer. */\nexport type RasterTileLayerProps<DataT = any> = _RasterTileLayerProps<DataT> & CompositeLayerProps;\n\n/** Properties added by RasterTileLayer. */\ntype _RasterTileLayerProps<DataT> = Omit<RasterLayerProps<DataT>, 'data'> & {\n data: null | CartoTilejsonResult | Promise<CartoTilejsonResult>;\n};\n\nexport default class RasterTileLayer<\n DataT = any,\n ExtraProps extends {} = {}\n> extends CompositeLayer<ExtraProps & Required<_RasterTileLayerProps<DataT>>> {\n static layerName = 'RasterTileLayer';\n static defaultProps = defaultProps;\n\n getLoadOptions(): any {\n const loadOptions = super.getLoadOptions() || {};\n const tileJSON = this.props.data as CartoTilejsonResult;\n injectAccessToken(loadOptions, tileJSON.accessToken);\n return loadOptions;\n }\n\n renderLayers(): Layer | null | LayersList {\n const tileJSON = this.props.data as CartoTilejsonResult;\n if (!tileJSON) return null;\n\n const {tiles: data, minzoom: minZoom, maxzoom: maxZoom} = tileJSON;\n return [\n // @ts-ignore\n new SpatialIndexTileLayer(this.props, {\n id: `raster-tile-layer-${this.props.id}`,\n data,\n // TODO: Tileset2D should be generic over TileIndex type\n TilesetClass: QuadbinTileset2D as any,\n renderSubLayers,\n minZoom,\n maxZoom,\n loadOptions: this.getLoadOptions()\n })\n ];\n }\n}\n"],"file":"raster-tile-layer.js"}
@@ -15,15 +15,23 @@ var _cartoRasterTile = require("./carto-raster-tile");
15
15
 
16
16
  var _tileLoaderUtils = require("./tile-loader-utils");
17
17
 
18
+ var _utils = require("../../utils");
19
+
20
+ var VERSION = typeof "8.10.0-alpha.4" !== 'undefined' ? "8.10.0-alpha.4" : 'latest';
21
+ var id = 'cartoRasterTile';
22
+ var DEFAULT_OPTIONS = {
23
+ cartoRasterTile: {
24
+ workerUrl: (0, _utils.getWorkerUrl)(id, VERSION)
25
+ }
26
+ };
18
27
  var CartoRasterTileLoader = {
19
28
  name: 'CARTO Raster Tile',
20
- version: '1',
21
- id: 'cartoRasterTile',
29
+ version: VERSION,
30
+ id: id,
22
31
  module: 'carto',
23
32
  extensions: ['pbf'],
24
33
  mimeTypes: ['application/vnd.carto-raster-tile'],
25
34
  category: 'geometry',
26
- worker: false,
27
35
  parse: function () {
28
36
  var _parse = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(arrayBuffer, options) {
29
37
  return _regenerator.default.wrap(function _callee$(_context) {
@@ -47,7 +55,8 @@ var CartoRasterTileLoader = {
47
55
  return parse;
48
56
  }(),
49
57
  parseSync: parseCartoRasterTile,
50
- options: {}
58
+ worker: true,
59
+ options: DEFAULT_OPTIONS
51
60
  };
52
61
 
53
62
  function parseCartoRasterTile(arrayBuffer, options) {