@deck.gl/carto 8.9.4 → 8.9.6

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 (88) hide show
  1. package/dist/dist.dev.js +420 -222
  2. package/dist/es5/api/layer-map.js +44 -44
  3. package/dist/es5/api/layer-map.js.map +1 -1
  4. package/dist/es5/api/maps-v3-client.js +22 -4
  5. package/dist/es5/api/maps-v3-client.js.map +1 -1
  6. package/dist/es5/api/parseMap.js +64 -48
  7. package/dist/es5/api/parseMap.js.map +1 -1
  8. package/dist/es5/index.js +8 -0
  9. package/dist/es5/index.js.map +1 -1
  10. package/dist/es5/layers/point-label-layer.js +268 -0
  11. package/dist/es5/layers/point-label-layer.js.map +1 -0
  12. package/dist/es5/layers/schema/carto-spatial-tile-loader.js +1 -9
  13. package/dist/es5/layers/schema/carto-spatial-tile-loader.js.map +1 -1
  14. package/dist/es5/layers/schema/carto-spatial-tile.js +5 -31
  15. package/dist/es5/layers/schema/carto-spatial-tile.js.map +1 -1
  16. package/dist/es5/layers/schema/carto-tile.js +12 -6
  17. package/dist/es5/layers/schema/carto-tile.js.map +1 -1
  18. package/dist/es5/layers/schema/carto-vector-tile-loader.js +1 -21
  19. package/dist/es5/layers/schema/carto-vector-tile-loader.js.map +1 -1
  20. package/dist/es5/layers/schema/fast-pbf.js +22 -0
  21. package/dist/es5/layers/schema/fast-pbf.js.map +1 -0
  22. package/dist/es5/layers/schema/tile-loader-utils.js +0 -17
  23. package/dist/es5/layers/schema/tile-loader-utils.js.map +1 -1
  24. package/dist/es5/layers/spatial-index-tile-layer.js +19 -1
  25. package/dist/es5/layers/spatial-index-tile-layer.js.map +1 -1
  26. package/dist/esm/api/layer-map.js +29 -21
  27. package/dist/esm/api/layer-map.js.map +1 -1
  28. package/dist/esm/api/maps-v3-client.js +12 -1
  29. package/dist/esm/api/maps-v3-client.js.map +1 -1
  30. package/dist/esm/api/parseMap.js +59 -44
  31. package/dist/esm/api/parseMap.js.map +1 -1
  32. package/dist/esm/index.js +1 -0
  33. package/dist/esm/index.js.map +1 -1
  34. package/dist/esm/layers/point-label-layer.js +198 -0
  35. package/dist/esm/layers/point-label-layer.js.map +1 -0
  36. package/dist/esm/layers/schema/carto-spatial-tile-loader.js +2 -4
  37. package/dist/esm/layers/schema/carto-spatial-tile-loader.js.map +1 -1
  38. package/dist/esm/layers/schema/carto-spatial-tile.js +3 -28
  39. package/dist/esm/layers/schema/carto-spatial-tile.js.map +1 -1
  40. package/dist/esm/layers/schema/carto-tile.js +12 -6
  41. package/dist/esm/layers/schema/carto-tile.js.map +1 -1
  42. package/dist/esm/layers/schema/carto-vector-tile-loader.js +2 -18
  43. package/dist/esm/layers/schema/carto-vector-tile-loader.js.map +1 -1
  44. package/dist/esm/layers/schema/fast-pbf.js +13 -0
  45. package/dist/esm/layers/schema/fast-pbf.js.map +1 -0
  46. package/dist/esm/layers/schema/tile-loader-utils.js +0 -16
  47. package/dist/esm/layers/schema/tile-loader-utils.js.map +1 -1
  48. package/dist/esm/layers/spatial-index-tile-layer.js +21 -1
  49. package/dist/esm/layers/spatial-index-tile-layer.js.map +1 -1
  50. package/dist.min.js +24 -23
  51. package/package.json +2 -2
  52. package/src/api/layer-map.ts +21 -25
  53. package/src/api/maps-v3-client.ts +19 -4
  54. package/src/api/parseMap.ts +67 -44
  55. package/src/api/types.ts +1 -0
  56. package/src/index.ts +1 -0
  57. package/src/layers/point-label-layer.ts +266 -0
  58. package/src/layers/schema/carto-spatial-tile-loader.ts +2 -5
  59. package/src/layers/schema/carto-spatial-tile.ts +5 -30
  60. package/src/layers/schema/carto-tile.ts +11 -12
  61. package/src/layers/schema/carto-vector-tile-loader.ts +2 -9
  62. package/src/layers/schema/fast-pbf.ts +13 -0
  63. package/src/layers/schema/tile-loader-utils.ts +0 -15
  64. package/src/layers/spatial-index-tile-layer.ts +22 -1
  65. package/typed/api/layer-map.d.ts +1 -2
  66. package/typed/api/layer-map.d.ts.map +1 -1
  67. package/typed/api/maps-v3-client.d.ts +4 -1
  68. package/typed/api/maps-v3-client.d.ts.map +1 -1
  69. package/typed/api/parseMap.d.ts +1 -1
  70. package/typed/api/parseMap.d.ts.map +1 -1
  71. package/typed/api/types.d.ts +1 -0
  72. package/typed/api/types.d.ts.map +1 -1
  73. package/typed/index.d.ts +1 -0
  74. package/typed/index.d.ts.map +1 -1
  75. package/typed/layers/point-label-layer.d.ts +56 -0
  76. package/typed/layers/point-label-layer.d.ts.map +1 -0
  77. package/typed/layers/schema/carto-spatial-tile-loader.d.ts.map +1 -1
  78. package/typed/layers/schema/carto-spatial-tile.d.ts +2 -2
  79. package/typed/layers/schema/carto-spatial-tile.d.ts.map +1 -1
  80. package/typed/layers/schema/carto-tile.d.ts +2 -9
  81. package/typed/layers/schema/carto-tile.d.ts.map +1 -1
  82. package/typed/layers/schema/carto-vector-tile-loader.d.ts.map +1 -1
  83. package/typed/layers/schema/fast-pbf.d.ts +3 -0
  84. package/typed/layers/schema/fast-pbf.d.ts.map +1 -0
  85. package/typed/layers/schema/tile-loader-utils.d.ts +0 -3
  86. package/typed/layers/schema/tile-loader-utils.d.ts.map +1 -1
  87. package/typed/layers/spatial-index-tile-layer.d.ts +1 -0
  88. package/typed/layers/spatial-index-tile-layer.d.ts.map +1 -1
@@ -7,29 +7,30 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.parseMap = parseMap;
9
9
 
10
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
+
10
12
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
11
13
 
12
14
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
15
 
14
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
15
-
16
- var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
17
-
18
16
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
19
17
 
20
18
  var _layerMap = require("./layer-map");
21
19
 
20
+ var _pointLabelLayer = _interopRequireDefault(require("../layers/point-label-layer"));
21
+
22
22
  var _core = require("@deck.gl/core");
23
23
 
24
- var _utils = require("../utils");
24
+ var _extensions = require("@deck.gl/extensions");
25
25
 
26
- var _excluded = ["id", "config"],
27
- _excluded2 = ["textLabel"];
26
+ var _utils = require("../utils");
28
27
 
29
28
  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; }
30
29
 
31
30
  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; }
32
31
 
32
+ var collisionFilterExtension = new _extensions.CollisionFilterExtension();
33
+
33
34
  function parseMap(json) {
34
35
  var keplerMapConfig = json.keplerMapConfig,
35
36
  datasets = json.datasets,
@@ -51,7 +52,7 @@ function parseMap(json) {
51
52
  initialViewState: mapState,
52
53
  mapStyle: mapStyle,
53
54
  token: token,
54
- layers: extractTextLayers(layers.reverse()).map(function (_ref) {
55
+ layers: layers.reverse().map(function (_ref) {
55
56
  var id = _ref.id,
56
57
  type = _ref.type,
57
58
  config = _ref.config,
@@ -75,7 +76,7 @@ function parseMap(json) {
75
76
  return new Layer(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
76
77
  id: id,
77
78
  data: data
78
- }, defaultProps), !config.textLabel && createInteractionProps(interactionConfig)), styleProps), createChannelProps(visualChannels, type, config, data)), createParametersProp(layerBlending, styleProps.parameters || {})), createLoadOptions(token)));
79
+ }, defaultProps), createInteractionProps(interactionConfig)), styleProps), createChannelProps(id, type, config, visualChannels, data)), createParametersProp(layerBlending, styleProps.parameters || {})), createLoadOptions(token)));
79
80
  } catch (e) {
80
81
  _core.log.error(e.message)();
81
82
 
@@ -85,34 +86,6 @@ function parseMap(json) {
85
86
  };
86
87
  }
87
88
 
88
- function extractTextLayers(layers) {
89
- return (0, _core._flatten)(layers.map(function (_ref2) {
90
- var id = _ref2.id,
91
- config = _ref2.config,
92
- rest = (0, _objectWithoutProperties2.default)(_ref2, _excluded);
93
- var textLabel = config.textLabel,
94
- configRest = (0, _objectWithoutProperties2.default)(config, _excluded2);
95
- return [_objectSpread({
96
- id: id,
97
- config: configRest
98
- }, rest)].concat((0, _toConsumableArray2.default)(textLabel.filter(function (t) {
99
- return t.field;
100
- }).map(function (t) {
101
- return _objectSpread({
102
- id: "".concat(id, "-label-").concat(t.field.name),
103
- config: _objectSpread(_objectSpread({
104
- textLabel: t
105
- }, configRest), {}, {
106
- label: "".concat(config.label, "-label-").concat(t.field.name),
107
- visConfig: _objectSpread(_objectSpread({}, configRest.visConfig), {}, {
108
- opacity: 1
109
- })
110
- })
111
- }, rest);
112
- })));
113
- }));
114
- }
115
-
116
89
  function createParametersProp(layerBlending, parameters) {
117
90
  if (layerBlending === 'additive') {
118
91
  parameters.blendFunc = [770, 772];
@@ -180,7 +153,7 @@ function createStyleProps(config, mapping) {
180
153
  return result;
181
154
  }
182
155
 
183
- function createChannelProps(visualChannels, type, config, data) {
156
+ function createChannelProps(id, type, config, visualChannels, data) {
184
157
  var colorField = visualChannels.colorField,
185
158
  colorScale = visualChannels.colorScale,
186
159
  radiusField = visualChannels.radiusField,
@@ -200,7 +173,6 @@ function createChannelProps(visualChannels, type, config, data) {
200
173
  var textLabel = config.textLabel,
201
174
  visConfig = config.visConfig;
202
175
  var result = {};
203
- var textLabelField = textLabel && textLabel.field;
204
176
 
205
177
  if (type === 'grid' || type === 'hexagon') {
206
178
  result.colorScaleType = colorScale;
@@ -232,9 +204,9 @@ function createChannelProps(visualChannels, type, config, data) {
232
204
 
233
205
  if (altitude) {
234
206
  result.dataTransform = function (data) {
235
- data.features.forEach(function (_ref3) {
236
- var geometry = _ref3.geometry,
237
- properties = _ref3.properties;
207
+ data.features.forEach(function (_ref2) {
208
+ var geometry = _ref2.geometry,
209
+ properties = _ref2.properties;
238
210
  var type = geometry.type,
239
211
  coordinates = geometry.coordinates;
240
212
 
@@ -266,12 +238,7 @@ function createChannelProps(visualChannels, type, config, data) {
266
238
  result.getElevation = (0, _layerMap.getSizeAccessor)(heightField, heightScale, visConfig.heightAggregation, visConfig.heightRange || visConfig.sizeRange, data);
267
239
  }
268
240
 
269
- if (textLabelField) {
270
- result.getText = (0, _layerMap.getTextAccessor)(textLabelField, data);
271
- result.pointType = 'text';
272
- var radius = result.getPointRadius || visConfig.radius;
273
- result.getTextPixelOffset = (0, _layerMap.getTextPixelOffsetAccessor)(textLabel, radius);
274
- } else if (visConfig.customMarkers) {
241
+ if (visConfig.customMarkers) {
275
242
  var maxIconSize = (0, _layerMap.getMaxMarkerSize)(visConfig, visualChannels);
276
243
  var getPointRadius = result.getPointRadius,
277
244
  getFillColor = result.getFillColor;
@@ -310,6 +277,55 @@ function createChannelProps(visualChannels, type, config, data) {
310
277
  if (visualChannels.rotationField) {
311
278
  result.getIconAngle = (0, _layerMap.negateAccessor)((0, _layerMap.getSizeAccessor)(visualChannels.rotationField, undefined, null, undefined, data));
312
279
  }
280
+ } else if (type === 'point' || type === 'tileset') {
281
+ result.pointType = 'circle';
282
+ }
283
+
284
+ if (textLabel && textLabel.length && textLabel[0].field) {
285
+ var _textLabel = (0, _slicedToArray2.default)(textLabel, 2),
286
+ mainLabel = _textLabel[0],
287
+ secondaryLabel = _textLabel[1];
288
+
289
+ var collisionGroup = id;
290
+ result.getTextAlignmentBaseline = mainLabel.alignment;
291
+ result.getTextAnchor = mainLabel.anchor;
292
+ result.getTextColor = mainLabel.color;
293
+ result.textOutlineColor = mainLabel.outlineColor;
294
+ result.textSizeScale = mainLabel.size;
295
+
296
+ var _ref3 = secondaryLabel || {},
297
+ getSecondaryColor = _ref3.color,
298
+ secondaryField = _ref3.field,
299
+ secondaryOutlineColor = _ref3.outlineColor,
300
+ secondarySizeScale = _ref3.size;
301
+
302
+ result.getText = mainLabel.field && (0, _layerMap.getTextAccessor)(mainLabel.field, data);
303
+ var getSecondaryText = secondaryField && (0, _layerMap.getTextAccessor)(secondaryField, data);
304
+ result.pointType = "".concat(result.pointType, "+text");
305
+ result.textCharacterSet = 'auto';
306
+ result.textFontFamily = 'Inter, sans';
307
+ result.textFontSettings = {
308
+ sdf: true
309
+ };
310
+ result.textFontWeight = 600;
311
+ result.textOutlineWidth = 3;
312
+ result._subLayerProps = _objectSpread(_objectSpread({}, result._subLayerProps), {}, {
313
+ 'points-text': _objectSpread(_objectSpread({
314
+ type: _pointLabelLayer.default,
315
+ extensions: [collisionFilterExtension],
316
+ collisionEnabled: true,
317
+ collisionGroup: collisionGroup
318
+ }, result.getPointRadius ? {
319
+ getRadius: result.getPointRadius
320
+ } : {
321
+ radiusScale: visConfig.radius
322
+ }), secondaryField && {
323
+ getSecondaryText: getSecondaryText,
324
+ getSecondaryColor: getSecondaryColor,
325
+ secondarySizeScale: secondarySizeScale,
326
+ secondaryOutlineColor: secondaryOutlineColor
327
+ })
328
+ });
313
329
  }
314
330
 
315
331
  return result;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/api/parseMap.ts"],"names":["parseMap","json","keplerMapConfig","datasets","token","version","config","mapState","mapStyle","visState","layers","layerBlending","interactionConfig","id","title","description","createdAt","updatedAt","initialViewState","extractTextLayers","reverse","map","type","visualChannels","dataId","dataset","find","d","data","Layer","propMap","defaultProps","styleProps","createStyleProps","textLabel","createInteractionProps","createChannelProps","createParametersProp","parameters","createLoadOptions","e","log","error","message","undefined","rest","configRest","filter","t","field","name","label","visConfig","opacity","blendFunc","blendEquation","Object","keys","length","pickable","tooltip","enabled","autoHighlight","mapProps","source","target","mapping","sourceKey","sourceValue","targetKey","entries","key","value","result","stroked","getLineColor","getFillColor","colorAccessor","OPACITY_MAP","Array","isArray","color","opacityKey","highlightColor","enable3d","colorField","colorScale","radiusField","radiusScale","sizeField","sizeScale","strokeColorField","strokeColorScale","heightField","heightScale","textLabelField","colorScaleType","colorAggregation","AGGREGATION","getColorValue","getColorWeight","aggregation","range","colorRange","altitude","columns","dataTransform","features","forEach","geometry","properties","coordinates","getPointRadius","sizeAggregation","radiusRange","sizeRange","fallbackOpacity","strokeOpacity","strokeColorAggregation","strokeColorRange","getElevation","heightAggregation","heightRange","getText","pointType","radius","getTextPixelOffset","customMarkers","maxIconSize","customMarkersUrl","customMarkersRange","useMaskedIcons","filled","getIcon","customMarkersField","fallbackUrl","_subLayerProps","loadOptions","image","imagebitmap","resizeWidth","resizeHeight","resizeQuality","getIconColor","getIconSize","rotationField","getIconAngle","accessToken","fetch","headers","Authorization"],"mappings":"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","sourcesContent":["import GL from '@luma.gl/constants';\nimport {\n AGGREGATION,\n getLayer,\n getColorAccessor,\n getColorValueAccessor,\n getSizeAccessor,\n getTextAccessor,\n getTextPixelOffsetAccessor,\n OPACITY_MAP,\n opacityToAlpha,\n getIconUrlAccessor,\n negateAccessor,\n getMaxMarkerSize\n} from './layer-map';\nimport {_flatten as flatten, log} from '@deck.gl/core';\nimport {assert} from '../utils';\nimport {MapDataset, MapTextSubLayerConfig, VisualChannels} from './types';\n\nexport function parseMap(json) {\n const {keplerMapConfig, datasets, token} = json;\n assert(keplerMapConfig.version === 'v1', 'Only support Kepler v1');\n const {mapState, mapStyle} = keplerMapConfig.config;\n const {layers, layerBlending, interactionConfig} = keplerMapConfig.config.visState;\n\n return {\n id: json.id,\n title: json.title,\n description: json.description,\n createdAt: json.createdAt,\n updatedAt: json.updatedAt,\n initialViewState: mapState,\n mapStyle,\n token,\n layers: extractTextLayers(layers.reverse()).map(({id, type, config, visualChannels}) => {\n try {\n const {dataId} = config;\n const dataset: MapDataset | null = datasets.find(d => d.id === dataId);\n assert(dataset, `No dataset matching dataId: ${dataId}`);\n const {data} = dataset;\n assert(data, `No data loaded for dataId: ${dataId}`);\n const {Layer, propMap, defaultProps} = getLayer(type, config, dataset);\n const styleProps = createStyleProps(config, propMap);\n return new Layer({\n id,\n data,\n ...defaultProps,\n ...(!config.textLabel && createInteractionProps(interactionConfig)),\n ...styleProps,\n ...createChannelProps(visualChannels, type, config, data), // Must come after style\n ...createParametersProp(layerBlending, styleProps.parameters || {}), // Must come after style\n ...createLoadOptions(token)\n });\n } catch (e: any) {\n log.error(e.message)();\n return undefined;\n }\n })\n };\n}\n\nfunction extractTextLayers(layers) {\n return flatten(\n layers.map(({id, config, ...rest}) => {\n const {textLabel, ...configRest} = config;\n return [\n // Original layer without textLabel\n {id, config: configRest, ...rest},\n\n // One layer per valid text label, with full opacity\n ...textLabel\n .filter(t => t.field)\n .map(t => {\n return {\n id: `${id}-label-${t.field.name}`,\n config: {\n textLabel: t,\n ...configRest,\n label: `${config.label}-label-${t.field.name}`,\n visConfig: {...configRest.visConfig, opacity: 1}\n },\n ...rest\n };\n })\n ];\n })\n );\n}\n\nfunction createParametersProp(layerBlending, parameters: Record<string, any>) {\n if (layerBlending === 'additive') {\n parameters.blendFunc = [GL.SRC_ALPHA, GL.DST_ALPHA];\n parameters.blendEquation = GL.FUNC_ADD;\n } else if (layerBlending === 'subtractive') {\n parameters.blendFunc = [GL.ONE, GL.ONE_MINUS_DST_COLOR, GL.SRC_ALPHA, GL.DST_ALPHA];\n parameters.blendEquation = [GL.FUNC_SUBTRACT, GL.FUNC_ADD];\n }\n\n return Object.keys(parameters).length ? {parameters} : {};\n}\n\nfunction createInteractionProps(interactionConfig) {\n const pickable = interactionConfig && interactionConfig.tooltip.enabled;\n return {\n autoHighlight: pickable,\n pickable\n };\n}\n\nfunction mapProps(source, target, mapping) {\n for (const sourceKey in mapping) {\n const sourceValue = source[sourceKey];\n const targetKey = mapping[sourceKey];\n if (sourceValue === undefined) {\n // eslint-disable-next-line no-continue\n continue;\n }\n if (typeof targetKey === 'string') {\n target[targetKey] = sourceValue;\n } else if (typeof targetKey === 'function') {\n const [key, value] = Object.entries(targetKey(sourceValue))[0];\n target[key] = value;\n } else if (typeof targetKey === 'object') {\n // Nested definition, recurse down one level (also handles arrays)\n mapProps(sourceValue, target, targetKey);\n }\n }\n}\n\nfunction createStyleProps(config: MapTextSubLayerConfig, mapping) {\n const result: Record<string, any> = {};\n mapProps(config, result, mapping);\n\n // Kepler format sometimes omits strokeColor. TODO: remove once we can rely on\n // `strokeColor` always being set when `stroke: true`.\n if (result.stroked && !result.getLineColor) {\n result.getLineColor = result.getFillColor;\n }\n\n for (const colorAccessor in OPACITY_MAP) {\n if (Array.isArray(result[colorAccessor])) {\n const color = [...result[colorAccessor]];\n const opacityKey = OPACITY_MAP[colorAccessor];\n const opacity = config.visConfig[opacityKey];\n color[3] = opacityToAlpha(opacity);\n result[colorAccessor] = color;\n }\n }\n\n result.highlightColor = config.visConfig.enable3d ? [255, 255, 255, 60] : [252, 242, 26, 255];\n return result;\n}\n\n/* eslint-disable complexity, max-statements */\nfunction createChannelProps(\n visualChannels: VisualChannels,\n type: string,\n config: MapTextSubLayerConfig,\n data\n) {\n const {\n colorField,\n colorScale,\n radiusField,\n radiusScale,\n sizeField,\n sizeScale,\n strokeColorField,\n strokeColorScale\n } = visualChannels;\n let {heightField, heightScale} = visualChannels;\n if (type === 'hexagonId') {\n heightField = sizeField;\n heightScale = sizeScale;\n }\n const {textLabel, visConfig} = config;\n const result: Record<string, any> = {};\n const textLabelField = textLabel && textLabel.field;\n\n if (type === 'grid' || type === 'hexagon') {\n result.colorScaleType = colorScale;\n if (colorField) {\n const {colorAggregation} = config.visConfig;\n if (!AGGREGATION[colorAggregation]) {\n result.getColorValue = getColorValueAccessor(colorField, colorAggregation, data);\n } else {\n result.getColorWeight = d => d[colorField.name];\n }\n }\n } else if (colorField) {\n const {colorAggregation: aggregation, colorRange: range} = visConfig;\n result.getFillColor = getColorAccessor(\n colorField,\n // @ts-ignore\n colorScale,\n {aggregation, range},\n visConfig.opacity,\n data\n );\n }\n\n if (type === 'point') {\n const altitude = config.columns?.altitude;\n if (altitude) {\n result.dataTransform = data => {\n data.features.forEach(({geometry, properties}) => {\n const {type, coordinates} = geometry;\n if (type === 'Point') {\n coordinates[2] = properties[altitude];\n }\n });\n return data;\n };\n }\n }\n\n if (radiusField || sizeField) {\n result.getPointRadius = getSizeAccessor(\n // @ts-ignore\n radiusField || sizeField,\n // @ts-ignore\n radiusScale || sizeScale,\n visConfig.sizeAggregation,\n visConfig.radiusRange || visConfig.sizeRange,\n data\n );\n }\n\n if (strokeColorField) {\n const fallbackOpacity = type === 'point' ? visConfig.opacity : 1;\n const opacity =\n visConfig.strokeOpacity !== undefined ? visConfig.strokeOpacity : fallbackOpacity;\n const {strokeColorAggregation: aggregation, strokeColorRange: range} = visConfig;\n result.getLineColor = getColorAccessor(\n strokeColorField,\n // @ts-ignore\n strokeColorScale,\n // @ts-ignore\n {aggregation, range},\n opacity,\n data\n );\n }\n\n if (heightField) {\n result.getElevation = getSizeAccessor(\n heightField,\n // @ts-ignore\n heightScale,\n visConfig.heightAggregation,\n visConfig.heightRange || visConfig.sizeRange,\n data\n );\n }\n\n if (textLabelField) {\n result.getText = getTextAccessor(textLabelField, data);\n result.pointType = 'text';\n const radius = result.getPointRadius || visConfig.radius;\n result.getTextPixelOffset = getTextPixelOffsetAccessor(textLabel, radius);\n } else if (visConfig.customMarkers) {\n const maxIconSize = getMaxMarkerSize(visConfig, visualChannels);\n const {getPointRadius, getFillColor} = result;\n const {customMarkersUrl, customMarkersRange, filled: useMaskedIcons} = visConfig;\n\n result.pointType = 'icon';\n result.getIcon = getIconUrlAccessor(\n visualChannels.customMarkersField,\n customMarkersRange,\n {fallbackUrl: customMarkersUrl, maxIconSize, useMaskedIcons},\n data\n );\n result._subLayerProps = {\n 'points-icon': {\n loadOptions: {\n image: {\n type: 'imagebitmap'\n },\n imagebitmap: {\n resizeWidth: maxIconSize,\n resizeHeight: maxIconSize,\n resizeQuality: 'high'\n }\n }\n }\n };\n\n if (getFillColor && useMaskedIcons) {\n result.getIconColor = getFillColor;\n }\n\n if (getPointRadius) {\n result.getIconSize = getPointRadius;\n }\n\n if (visualChannels.rotationField) {\n result.getIconAngle = negateAccessor(\n getSizeAccessor(visualChannels.rotationField, undefined, null, undefined, data)\n );\n }\n }\n\n return result;\n}\n\nfunction createLoadOptions(accessToken: string) {\n return {\n loadOptions: {fetch: {headers: {Authorization: `Bearer ${accessToken}`}}}\n };\n}\n"],"file":"parseMap.js"}
1
+ {"version":3,"sources":["../../../src/api/parseMap.ts"],"names":["collisionFilterExtension","CollisionFilterExtension","parseMap","json","keplerMapConfig","datasets","token","version","config","mapState","mapStyle","visState","layers","layerBlending","interactionConfig","id","title","description","createdAt","updatedAt","initialViewState","reverse","map","type","visualChannels","dataId","dataset","find","d","data","Layer","propMap","defaultProps","styleProps","createStyleProps","createInteractionProps","createChannelProps","createParametersProp","parameters","createLoadOptions","e","log","error","message","undefined","blendFunc","blendEquation","Object","keys","length","pickable","tooltip","enabled","autoHighlight","mapProps","source","target","mapping","sourceKey","sourceValue","targetKey","entries","key","value","result","stroked","getLineColor","getFillColor","colorAccessor","OPACITY_MAP","Array","isArray","color","opacityKey","opacity","visConfig","highlightColor","enable3d","colorField","colorScale","radiusField","radiusScale","sizeField","sizeScale","strokeColorField","strokeColorScale","heightField","heightScale","textLabel","colorScaleType","colorAggregation","AGGREGATION","getColorValue","getColorWeight","name","aggregation","range","colorRange","altitude","columns","dataTransform","features","forEach","geometry","properties","coordinates","getPointRadius","sizeAggregation","radiusRange","sizeRange","fallbackOpacity","strokeOpacity","strokeColorAggregation","strokeColorRange","getElevation","heightAggregation","heightRange","customMarkers","maxIconSize","customMarkersUrl","customMarkersRange","useMaskedIcons","filled","pointType","getIcon","customMarkersField","fallbackUrl","_subLayerProps","loadOptions","image","imagebitmap","resizeWidth","resizeHeight","resizeQuality","getIconColor","getIconSize","rotationField","getIconAngle","field","mainLabel","secondaryLabel","collisionGroup","getTextAlignmentBaseline","alignment","getTextAnchor","anchor","getTextColor","textOutlineColor","outlineColor","textSizeScale","size","getSecondaryColor","secondaryField","secondaryOutlineColor","secondarySizeScale","getText","getSecondaryText","textCharacterSet","textFontFamily","textFontSettings","sdf","textFontWeight","textOutlineWidth","PointLabelLayer","extensions","collisionEnabled","getRadius","radius","accessToken","fetch","headers","Authorization"],"mappings":"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","sourcesContent":["import GL from '@luma.gl/constants';\nimport {\n AGGREGATION,\n getLayer,\n getColorAccessor,\n getColorValueAccessor,\n getSizeAccessor,\n getTextAccessor,\n OPACITY_MAP,\n opacityToAlpha,\n getIconUrlAccessor,\n negateAccessor,\n getMaxMarkerSize\n} from './layer-map';\nimport PointLabelLayer from '../layers/point-label-layer';\nimport {log} from '@deck.gl/core';\nimport {CollisionFilterExtension} from '@deck.gl/extensions';\nimport {assert} from '../utils';\nimport {MapDataset, MapLayerConfig, VisualChannels} from './types';\n\nconst collisionFilterExtension = new CollisionFilterExtension();\n\nexport function parseMap(json) {\n const {keplerMapConfig, datasets, token} = json;\n assert(keplerMapConfig.version === 'v1', 'Only support Kepler v1');\n const {mapState, mapStyle} = keplerMapConfig.config;\n const {layers, layerBlending, interactionConfig} = keplerMapConfig.config.visState;\n\n return {\n id: json.id,\n title: json.title,\n description: json.description,\n createdAt: json.createdAt,\n updatedAt: json.updatedAt,\n initialViewState: mapState,\n mapStyle,\n token,\n layers: layers.reverse().map(({id, type, config, visualChannels}) => {\n try {\n const {dataId} = config;\n const dataset: MapDataset | null = datasets.find(d => d.id === dataId);\n assert(dataset, `No dataset matching dataId: ${dataId}`);\n const {data} = dataset;\n assert(data, `No data loaded for dataId: ${dataId}`);\n const {Layer, propMap, defaultProps} = getLayer(type, config, dataset);\n const styleProps = createStyleProps(config, propMap);\n return new Layer({\n id,\n data,\n ...defaultProps,\n ...createInteractionProps(interactionConfig),\n ...styleProps,\n ...createChannelProps(id, type, config, visualChannels, data), // Must come after style\n ...createParametersProp(layerBlending, styleProps.parameters || {}), // Must come after style\n ...createLoadOptions(token)\n });\n } catch (e: any) {\n log.error(e.message)();\n return undefined;\n }\n })\n };\n}\n\nfunction createParametersProp(layerBlending, parameters: Record<string, any>) {\n if (layerBlending === 'additive') {\n parameters.blendFunc = [GL.SRC_ALPHA, GL.DST_ALPHA];\n parameters.blendEquation = GL.FUNC_ADD;\n } else if (layerBlending === 'subtractive') {\n parameters.blendFunc = [GL.ONE, GL.ONE_MINUS_DST_COLOR, GL.SRC_ALPHA, GL.DST_ALPHA];\n parameters.blendEquation = [GL.FUNC_SUBTRACT, GL.FUNC_ADD];\n }\n\n return Object.keys(parameters).length ? {parameters} : {};\n}\n\nfunction createInteractionProps(interactionConfig) {\n const pickable = interactionConfig && interactionConfig.tooltip.enabled;\n return {\n autoHighlight: pickable,\n pickable\n };\n}\n\nfunction mapProps(source, target, mapping) {\n for (const sourceKey in mapping) {\n const sourceValue = source[sourceKey];\n const targetKey = mapping[sourceKey];\n if (sourceValue === undefined) {\n // eslint-disable-next-line no-continue\n continue;\n }\n if (typeof targetKey === 'string') {\n target[targetKey] = sourceValue;\n } else if (typeof targetKey === 'function') {\n const [key, value] = Object.entries(targetKey(sourceValue))[0];\n target[key] = value;\n } else if (typeof targetKey === 'object') {\n // Nested definition, recurse down one level (also handles arrays)\n mapProps(sourceValue, target, targetKey);\n }\n }\n}\n\nfunction createStyleProps(config: MapLayerConfig, mapping) {\n const result: Record<string, any> = {};\n mapProps(config, result, mapping);\n\n // Kepler format sometimes omits strokeColor. TODO: remove once we can rely on\n // `strokeColor` always being set when `stroke: true`.\n if (result.stroked && !result.getLineColor) {\n result.getLineColor = result.getFillColor;\n }\n\n for (const colorAccessor in OPACITY_MAP) {\n if (Array.isArray(result[colorAccessor])) {\n const color = [...result[colorAccessor]];\n const opacityKey = OPACITY_MAP[colorAccessor];\n const opacity = config.visConfig[opacityKey];\n color[3] = opacityToAlpha(opacity);\n result[colorAccessor] = color;\n }\n }\n\n result.highlightColor = config.visConfig.enable3d ? [255, 255, 255, 60] : [252, 242, 26, 255];\n return result;\n}\n\n/* eslint-disable complexity, max-statements */\nfunction createChannelProps(\n id: string,\n type: string,\n config: MapLayerConfig,\n visualChannels: VisualChannels,\n data\n) {\n const {\n colorField,\n colorScale,\n radiusField,\n radiusScale,\n sizeField,\n sizeScale,\n strokeColorField,\n strokeColorScale\n } = visualChannels;\n let {heightField, heightScale} = visualChannels;\n if (type === 'hexagonId') {\n heightField = sizeField;\n heightScale = sizeScale;\n }\n const {textLabel, visConfig} = config;\n const result: Record<string, any> = {};\n\n if (type === 'grid' || type === 'hexagon') {\n result.colorScaleType = colorScale;\n if (colorField) {\n const {colorAggregation} = config.visConfig;\n if (!AGGREGATION[colorAggregation]) {\n result.getColorValue = getColorValueAccessor(colorField, colorAggregation, data);\n } else {\n result.getColorWeight = d => d[colorField.name];\n }\n }\n } else if (colorField) {\n const {colorAggregation: aggregation, colorRange: range} = visConfig;\n result.getFillColor = getColorAccessor(\n colorField,\n // @ts-ignore\n colorScale,\n {aggregation, range},\n visConfig.opacity,\n data\n );\n }\n\n if (type === 'point') {\n const altitude = config.columns?.altitude;\n if (altitude) {\n result.dataTransform = data => {\n data.features.forEach(({geometry, properties}) => {\n const {type, coordinates} = geometry;\n if (type === 'Point') {\n coordinates[2] = properties[altitude];\n }\n });\n return data;\n };\n }\n }\n\n if (radiusField || sizeField) {\n result.getPointRadius = getSizeAccessor(\n // @ts-ignore\n radiusField || sizeField,\n // @ts-ignore\n radiusScale || sizeScale,\n visConfig.sizeAggregation,\n visConfig.radiusRange || visConfig.sizeRange,\n data\n );\n }\n\n if (strokeColorField) {\n const fallbackOpacity = type === 'point' ? visConfig.opacity : 1;\n const opacity =\n visConfig.strokeOpacity !== undefined ? visConfig.strokeOpacity : fallbackOpacity;\n const {strokeColorAggregation: aggregation, strokeColorRange: range} = visConfig;\n result.getLineColor = getColorAccessor(\n strokeColorField,\n // @ts-ignore\n strokeColorScale,\n // @ts-ignore\n {aggregation, range},\n opacity,\n data\n );\n }\n\n if (heightField) {\n result.getElevation = getSizeAccessor(\n heightField,\n // @ts-ignore\n heightScale,\n visConfig.heightAggregation,\n visConfig.heightRange || visConfig.sizeRange,\n data\n );\n }\n\n if (visConfig.customMarkers) {\n const maxIconSize = getMaxMarkerSize(visConfig, visualChannels);\n const {getPointRadius, getFillColor} = result;\n const {customMarkersUrl, customMarkersRange, filled: useMaskedIcons} = visConfig;\n\n result.pointType = 'icon';\n result.getIcon = getIconUrlAccessor(\n visualChannels.customMarkersField,\n customMarkersRange,\n {fallbackUrl: customMarkersUrl, maxIconSize, useMaskedIcons},\n data\n );\n result._subLayerProps = {\n 'points-icon': {\n loadOptions: {\n image: {\n type: 'imagebitmap'\n },\n imagebitmap: {\n resizeWidth: maxIconSize,\n resizeHeight: maxIconSize,\n resizeQuality: 'high'\n }\n }\n }\n };\n\n if (getFillColor && useMaskedIcons) {\n result.getIconColor = getFillColor;\n }\n\n if (getPointRadius) {\n result.getIconSize = getPointRadius;\n }\n\n if (visualChannels.rotationField) {\n result.getIconAngle = negateAccessor(\n getSizeAccessor(visualChannels.rotationField, undefined, null, undefined, data)\n );\n }\n } else if (type === 'point' || type === 'tileset') {\n result.pointType = 'circle';\n }\n\n if (textLabel && textLabel.length && textLabel[0].field) {\n const [mainLabel, secondaryLabel] = textLabel;\n const collisionGroup = id;\n\n ({\n alignment: result.getTextAlignmentBaseline,\n anchor: result.getTextAnchor,\n color: result.getTextColor,\n outlineColor: result.textOutlineColor,\n size: result.textSizeScale\n } = mainLabel);\n const {\n color: getSecondaryColor,\n field: secondaryField,\n outlineColor: secondaryOutlineColor,\n size: secondarySizeScale\n } = secondaryLabel || {};\n\n result.getText = mainLabel.field && getTextAccessor(mainLabel.field, data);\n const getSecondaryText = secondaryField && getTextAccessor(secondaryField, data);\n\n result.pointType = `${result.pointType}+text`;\n result.textCharacterSet = 'auto';\n result.textFontFamily = 'Inter, sans';\n result.textFontSettings = {sdf: true};\n result.textFontWeight = 600;\n result.textOutlineWidth = 3;\n\n result._subLayerProps = {\n ...result._subLayerProps,\n 'points-text': {\n type: PointLabelLayer,\n extensions: [collisionFilterExtension],\n collisionEnabled: true,\n collisionGroup,\n\n // getPointRadius already has radiusScale baked in, so only pass one or the other\n ...(result.getPointRadius\n ? {getRadius: result.getPointRadius}\n : {radiusScale: visConfig.radius}),\n\n ...(secondaryField && {\n getSecondaryText,\n getSecondaryColor,\n secondarySizeScale,\n secondaryOutlineColor\n })\n }\n };\n }\n\n return result;\n}\n\nfunction createLoadOptions(accessToken: string) {\n return {\n loadOptions: {fetch: {headers: {Authorization: `Bearer ${accessToken}`}}}\n };\n}\n"],"file":"parseMap.js"}
package/dist/es5/index.js CHANGED
@@ -35,6 +35,12 @@ Object.defineProperty(exports, "_H3TileLayer", {
35
35
  return _h3TileLayer.default;
36
36
  }
37
37
  });
38
+ Object.defineProperty(exports, "_PointLabelLayer", {
39
+ enumerable: true,
40
+ get: function get() {
41
+ return _pointLabelLayer.default;
42
+ }
43
+ });
38
44
  Object.defineProperty(exports, "_QuadbinTileLayer", {
39
45
  enumerable: true,
40
46
  get: function get() {
@@ -128,6 +134,8 @@ var _cartoTileLayer = _interopRequireDefault(require("./layers/carto-tile-layer"
128
134
 
129
135
  var _h3TileLayer = _interopRequireDefault(require("./layers/h3-tile-layer"));
130
136
 
137
+ var _pointLabelLayer = _interopRequireDefault(require("./layers/point-label-layer"));
138
+
131
139
  var _quadbinTileLayer = _interopRequireDefault(require("./layers/quadbin-tile-layer"));
132
140
 
133
141
  var _basemap = _interopRequireDefault(require("./basemap"));
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA","sourcesContent":["export {getDefaultCredentials, setDefaultCredentials} from './config';\nexport {default as CartoLayer} from './layers/carto-layer';\nexport {default as _CartoTileLayer} from './layers/carto-tile-layer';\nexport {default as _H3TileLayer} from './layers/h3-tile-layer';\nexport {default as _QuadbinTileLayer} from './layers/quadbin-tile-layer';\nexport {default as BASEMAP} from './basemap';\nexport {default as colorBins} from './style/color-bins-style';\nexport {default as colorCategories} from './style/color-categories-style';\nexport {default as colorContinuous} from './style/color-continuous-style';\nexport {\n FORMATS,\n TILE_FORMATS,\n MAP_TYPES,\n API_VERSIONS,\n CartoAPIError,\n fetchLayerData,\n fetchMap,\n getDataV2 as _getDataV2,\n mapInstantiation as _mapInstantiation\n} from './api';\nexport type {APIErrorContext, QueryParameters} from './api';\nexport type {CartoLayerProps} from './layers/carto-layer';\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA","sourcesContent":["export {getDefaultCredentials, setDefaultCredentials} from './config';\nexport {default as CartoLayer} from './layers/carto-layer';\nexport {default as _CartoTileLayer} from './layers/carto-tile-layer';\nexport {default as _H3TileLayer} from './layers/h3-tile-layer';\nexport {default as _PointLabelLayer} from './layers/point-label-layer';\nexport {default as _QuadbinTileLayer} from './layers/quadbin-tile-layer';\nexport {default as BASEMAP} from './basemap';\nexport {default as colorBins} from './style/color-bins-style';\nexport {default as colorCategories} from './style/color-categories-style';\nexport {default as colorContinuous} from './style/color-continuous-style';\nexport {\n FORMATS,\n TILE_FORMATS,\n MAP_TYPES,\n API_VERSIONS,\n CartoAPIError,\n fetchLayerData,\n fetchMap,\n getDataV2 as _getDataV2,\n mapInstantiation as _mapInstantiation\n} from './api';\nexport type {APIErrorContext, QueryParameters} from './api';\nexport type {CartoLayerProps} from './layers/carto-layer';\n"],"file":"index.js"}
@@ -0,0 +1,268 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
+
12
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
+
14
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
+
16
+ var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
17
+
18
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
+
20
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
21
+
22
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
+
24
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
+
26
+ var _core = require("@deck.gl/core");
27
+
28
+ var _layers = require("@deck.gl/layers");
29
+
30
+ var _excluded = ["updateTriggers"];
31
+
32
+ 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; }
33
+
34
+ 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; }
35
+
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); }; }
37
+
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; } }
39
+
40
+ var LEFT = 0,
41
+ TOP = 1,
42
+ RIGHT = 2,
43
+ BOTTOM = 3;
44
+
45
+ var EnhancedTextBackgroundLayer = function (_TextBackgroundLayer) {
46
+ (0, _inherits2.default)(EnhancedTextBackgroundLayer, _TextBackgroundLayer);
47
+
48
+ var _super = _createSuper(EnhancedTextBackgroundLayer);
49
+
50
+ function EnhancedTextBackgroundLayer() {
51
+ (0, _classCallCheck2.default)(this, EnhancedTextBackgroundLayer);
52
+ return _super.apply(this, arguments);
53
+ }
54
+
55
+ (0, _createClass2.default)(EnhancedTextBackgroundLayer, [{
56
+ key: "getShaders",
57
+ value: function getShaders() {
58
+ var shaders = (0, _get2.default)((0, _getPrototypeOf2.default)(EnhancedTextBackgroundLayer.prototype), "getShaders", this).call(this);
59
+ var vs = shaders.vs;
60
+ vs = vs.replaceAll('padding.', '_padding.');
61
+ vs = vs.replace('void main(void) {', 'void main(void) {\n vec4 _padding = padding + instancePixelOffsets.xyxy * vec4(1.0, 1.0, -1.0, -1.0);');
62
+ return _objectSpread(_objectSpread({}, shaders), {}, {
63
+ vs: vs
64
+ });
65
+ }
66
+ }]);
67
+ return EnhancedTextBackgroundLayer;
68
+ }(_layers._TextBackgroundLayer);
69
+
70
+ (0, _defineProperty2.default)(EnhancedTextBackgroundLayer, "layerName", 'EnhancedTextBackgroundLayer');
71
+
72
+ var EnhancedTextLayer = function (_TextLayer) {
73
+ (0, _inherits2.default)(EnhancedTextLayer, _TextLayer);
74
+
75
+ var _super2 = _createSuper(EnhancedTextLayer);
76
+
77
+ function EnhancedTextLayer() {
78
+ (0, _classCallCheck2.default)(this, EnhancedTextLayer);
79
+ return _super2.apply(this, arguments);
80
+ }
81
+
82
+ (0, _createClass2.default)(EnhancedTextLayer, [{
83
+ key: "filterSubLayer",
84
+ value: function filterSubLayer(_ref) {
85
+ var layer = _ref.layer,
86
+ renderPass = _ref.renderPass;
87
+ var background = layer.id.includes('primary-background');
88
+
89
+ if (renderPass === 'collision') {
90
+ return background;
91
+ }
92
+
93
+ return !background;
94
+ }
95
+ }]);
96
+ return EnhancedTextLayer;
97
+ }(_layers.TextLayer);
98
+
99
+ (0, _defineProperty2.default)(EnhancedTextLayer, "layerName", 'EnhancedTextLayer');
100
+
101
+ var defaultProps = _objectSpread(_objectSpread({}, _layers.TextLayer.defaultProps), {}, {
102
+ getRadius: {
103
+ type: 'accessor',
104
+ value: 1
105
+ },
106
+ radiusScale: {
107
+ type: 'number',
108
+ min: 0,
109
+ value: 1
110
+ }
111
+ });
112
+
113
+ var PointLabelLayer = function (_CompositeLayer) {
114
+ (0, _inherits2.default)(PointLabelLayer, _CompositeLayer);
115
+
116
+ var _super3 = _createSuper(PointLabelLayer);
117
+
118
+ function PointLabelLayer() {
119
+ (0, _classCallCheck2.default)(this, PointLabelLayer);
120
+ return _super3.apply(this, arguments);
121
+ }
122
+
123
+ (0, _createClass2.default)(PointLabelLayer, [{
124
+ key: "calculatePixelOffset",
125
+ value: function calculatePixelOffset(secondary) {
126
+ var _this$props = this.props,
127
+ anchor = _this$props.getTextAnchor,
128
+ alignment = _this$props.getAlignmentBaseline,
129
+ getRadius = _this$props.getRadius,
130
+ getSecondaryText = _this$props.getSecondaryText,
131
+ radiusScale = _this$props.radiusScale,
132
+ secondarySizeScale = _this$props.secondarySizeScale,
133
+ sizeScale = _this$props.sizeScale;
134
+ var xMult = anchor === 'middle' ? 0 : anchor === 'start' ? 1 : -1;
135
+ var yMult = alignment === 'center' ? 0 : alignment === 'bottom' ? 1 : -1;
136
+ var xPadding = sizeScale / 4;
137
+ var yPadding = sizeScale * (1 + 1 / 4);
138
+ var secondaryOffset = 0.6 * (1 - yMult) * sizeScale;
139
+ var yOffset = secondary ? secondaryOffset : 0;
140
+
141
+ if (anchor === 'middle' && alignment === 'top' && getSecondaryText) {
142
+ yOffset -= secondaryOffset;
143
+ yOffset -= secondarySizeScale;
144
+ yOffset += sizeScale;
145
+ }
146
+
147
+ var radiusPadding = 1 + 1 / 4;
148
+ return typeof getRadius === 'function' ? function (d, info) {
149
+ var r = (info ? getRadius(d, info) : 1) * radiusScale * radiusPadding;
150
+ return [xMult * (r + xPadding), yMult * (r + yPadding) + yOffset];
151
+ } : [xMult * (getRadius * radiusScale * radiusPadding + xPadding), yMult * (getRadius * radiusScale * radiusPadding + yPadding) + yOffset];
152
+ }
153
+ }, {
154
+ key: "calculateBackgroundPadding",
155
+ value: function calculateBackgroundPadding() {
156
+ var _this$props2 = this.props,
157
+ anchor = _this$props2.getTextAnchor,
158
+ alignment = _this$props2.getAlignmentBaseline,
159
+ sizeScale = _this$props2.sizeScale;
160
+ var paddingX = 12 * sizeScale;
161
+ var paddingY = 3 * sizeScale;
162
+ var backgroundPadding = [0, 0, 0, 0];
163
+
164
+ if (alignment === 'top') {
165
+ backgroundPadding[TOP] = paddingY;
166
+ } else if (alignment === 'bottom') {
167
+ backgroundPadding[BOTTOM] = paddingY;
168
+ } else {
169
+ backgroundPadding[TOP] = 0.5 * paddingY;
170
+ backgroundPadding[BOTTOM] = 0.5 * paddingY;
171
+ }
172
+
173
+ if (anchor === 'start') {
174
+ backgroundPadding[LEFT] = paddingX;
175
+ } else if (anchor === 'end') {
176
+ backgroundPadding[RIGHT] = paddingX;
177
+ } else {
178
+ backgroundPadding[LEFT] = 0.5 * paddingX;
179
+ backgroundPadding[RIGHT] = 0.5 * paddingX;
180
+ }
181
+
182
+ return backgroundPadding;
183
+ }
184
+ }, {
185
+ key: "renderTextLayer",
186
+ value: function renderTextLayer(id, _ref2) {
187
+ var _ref2$updateTriggers = _ref2.updateTriggers,
188
+ updateTriggersOverride = _ref2$updateTriggers === void 0 ? {} : _ref2$updateTriggers,
189
+ props = (0, _objectWithoutProperties2.default)(_ref2, _excluded);
190
+ var _this$props3 = this.props,
191
+ data = _this$props3.data,
192
+ characterSet = _this$props3.characterSet,
193
+ fontFamily = _this$props3.fontFamily,
194
+ fontSettings = _this$props3.fontSettings,
195
+ fontWeight = _this$props3.fontWeight,
196
+ outlineColor = _this$props3.outlineColor,
197
+ outlineWidth = _this$props3.outlineWidth,
198
+ sizeScale = _this$props3.sizeScale,
199
+ radiusScale = _this$props3.radiusScale,
200
+ getAlignmentBaseline = _this$props3.getAlignmentBaseline,
201
+ getColor = _this$props3.getColor,
202
+ getPosition = _this$props3.getPosition,
203
+ getTextAnchor = _this$props3.getTextAnchor,
204
+ updateTriggers = _this$props3.updateTriggers;
205
+ return new EnhancedTextLayer(this.getSubLayerProps({
206
+ id: id,
207
+ data: data,
208
+ characterSet: characterSet,
209
+ fontFamily: fontFamily,
210
+ fontSettings: fontSettings,
211
+ fontWeight: fontWeight,
212
+ outlineColor: outlineColor,
213
+ outlineWidth: outlineWidth,
214
+ sizeScale: sizeScale,
215
+ getAlignmentBaseline: getAlignmentBaseline,
216
+ getColor: getColor,
217
+ getPosition: getPosition,
218
+ getTextAnchor: getTextAnchor,
219
+ updateTriggers: _objectSpread(_objectSpread(_objectSpread({}, updateTriggers), updateTriggersOverride), {}, {
220
+ getPixelOffset: [updateTriggers.getRadius, updateTriggers.getTextAnchor, updateTriggers.getAlignmentBaseline, radiusScale, sizeScale]
221
+ })
222
+ }), {
223
+ getSize: 1,
224
+ _subLayerProps: {
225
+ background: {
226
+ type: EnhancedTextBackgroundLayer
227
+ }
228
+ }
229
+ }, props);
230
+ }
231
+ }, {
232
+ key: "renderLayers",
233
+ value: function renderLayers() {
234
+ var _this$props4 = this.props,
235
+ getText = _this$props4.getText,
236
+ getSecondaryColor = _this$props4.getSecondaryColor,
237
+ getSecondaryText = _this$props4.getSecondaryText,
238
+ secondaryOutlineColor = _this$props4.secondaryOutlineColor,
239
+ secondarySizeScale = _this$props4.secondarySizeScale,
240
+ updateTriggers = _this$props4.updateTriggers;
241
+ var getPixelOffset = this.calculatePixelOffset(false);
242
+ var backgroundPadding = this.calculateBackgroundPadding();
243
+ var out = [this.renderTextLayer("".concat(updateTriggers.getText, "-primary"), {
244
+ backgroundPadding: backgroundPadding,
245
+ getText: getText,
246
+ getPixelOffset: getPixelOffset,
247
+ background: true
248
+ }), Boolean(getSecondaryText) && this.renderTextLayer("".concat(updateTriggers.getSecondaryText, "-secondary"), _objectSpread(_objectSpread(_objectSpread({
249
+ getText: getSecondaryText,
250
+ getPixelOffset: this.calculatePixelOffset(true),
251
+ getAlignmentBaseline: 'top'
252
+ }, getSecondaryColor && {
253
+ getColor: getSecondaryColor
254
+ }), secondarySizeScale && {
255
+ sizeScale: secondarySizeScale
256
+ }), secondaryOutlineColor && {
257
+ outlineColor: secondaryOutlineColor
258
+ }))];
259
+ return out;
260
+ }
261
+ }]);
262
+ return PointLabelLayer;
263
+ }(_core.CompositeLayer);
264
+
265
+ exports.default = PointLabelLayer;
266
+ (0, _defineProperty2.default)(PointLabelLayer, "layerName", 'PointLabelLayer');
267
+ (0, _defineProperty2.default)(PointLabelLayer, "defaultProps", defaultProps);
268
+ //# sourceMappingURL=point-label-layer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/layers/point-label-layer.ts"],"names":["LEFT","TOP","RIGHT","BOTTOM","EnhancedTextBackgroundLayer","shaders","vs","replaceAll","replace","TextBackgroundLayer","EnhancedTextLayer","layer","renderPass","background","id","includes","TextLayer","defaultProps","getRadius","type","value","radiusScale","min","PointLabelLayer","secondary","props","anchor","getTextAnchor","alignment","getAlignmentBaseline","getSecondaryText","secondarySizeScale","sizeScale","xMult","yMult","xPadding","yPadding","secondaryOffset","yOffset","radiusPadding","d","info","r","paddingX","paddingY","backgroundPadding","updateTriggers","updateTriggersOverride","data","characterSet","fontFamily","fontSettings","fontWeight","outlineColor","outlineWidth","getColor","getPosition","getSubLayerProps","getPixelOffset","getSize","_subLayerProps","getText","getSecondaryColor","secondaryOutlineColor","calculatePixelOffset","calculateBackgroundPadding","out","renderTextLayer","Boolean","CompositeLayer"],"mappings":"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","sourcesContent":["import {\n Accessor,\n Color,\n CompositeLayer,\n CompositeLayerProps,\n DefaultProps,\n Layer,\n LayersList\n} from '@deck.gl/core';\nimport {\n TextLayer,\n TextLayerProps,\n _TextBackgroundLayer as TextBackgroundLayer\n} from '@deck.gl/layers';\n\nconst [LEFT, TOP, RIGHT, BOTTOM] = [0, 1, 2, 3];\n\nclass EnhancedTextBackgroundLayer extends TextBackgroundLayer {\n static layerName = 'EnhancedTextBackgroundLayer';\n\n getShaders() {\n const shaders = super.getShaders();\n let vs = shaders.vs;\n\n // Modify shader so that the padding is offset by the pixel offset to ensure the padding\n // always captures the anchor point. As padding is uniform we cannot pass it a per-label value\n vs = vs.replaceAll('padding.', '_padding.');\n vs = vs.replace(\n 'void main(void) {',\n 'void main(void) {\\n vec4 _padding = padding + instancePixelOffsets.xyxy * vec4(1.0, 1.0, -1.0, -1.0);'\n );\n\n return {...shaders, vs};\n }\n}\n\n// TextLayer which includes modified text-background-layer-vertex shader and only renders the\n// primary background layer in the collision pass\nclass EnhancedTextLayer extends TextLayer {\n static layerName = 'EnhancedTextLayer';\n\n filterSubLayer({layer, renderPass}) {\n const background = layer.id.includes('primary-background');\n if (renderPass === 'collision') {\n return background; // Only draw primary background layer in collision pass\n }\n\n return !background; // Do not draw background layer in other passes\n }\n}\n\nconst defaultProps: DefaultProps<PointLabelLayerProps> = {\n ...TextLayer.defaultProps,\n getRadius: {type: 'accessor', value: 1},\n radiusScale: {type: 'number', min: 0, value: 1}\n};\n\n/** All properties supported by PointLabelLayer. */\nexport type PointLabelLayerProps<DataT = any> = _PointLabelLayerProps<DataT> &\n TextLayerProps &\n CompositeLayerProps;\n\n/** Properties added by PointLabelLayer. */\ntype _PointLabelLayerProps<DataT> = TextLayerProps<DataT> & {\n /**\n * Radius multiplier.\n * @default 1\n */\n radiusScale?: number;\n /**\n * Radius accessor.\n * @default 1\n */\n getRadius?: Accessor<DataT, number>;\n /**\n * Secondary label text accessor\n */\n getSecondaryText?: Accessor<DataT, string>;\n /**\n * Secondary label color accessor\n * @default [0, 0, 0, 255]\n */\n getSecondaryColor?: Accessor<DataT, Color>;\n /**\n * Secondary label color of outline around the text, in `[r, g, b, [a]]`. Each channel is a number between 0-255 and `a` is 255 if not supplied.\n * @default [0, 0, 0, 255]\n */\n secondaryOutlineColor?: Color;\n /**\n * Secondary label text size multiplier.\n * @default 1\n */\n secondarySizeScale?: number;\n};\n\nexport default class PointLabelLayer<\n DataT = any,\n ExtraProps extends {} = {}\n> extends CompositeLayer<ExtraProps & Required<_PointLabelLayerProps<DataT>>> {\n static layerName = 'PointLabelLayer';\n static defaultProps = defaultProps;\n\n calculatePixelOffset(secondary) {\n const {\n getTextAnchor: anchor,\n getAlignmentBaseline: alignment,\n getRadius,\n getSecondaryText,\n radiusScale,\n secondarySizeScale,\n sizeScale\n } = this.props;\n const xMult = anchor === 'middle' ? 0 : anchor === 'start' ? 1 : -1;\n const yMult = alignment === 'center' ? 0 : alignment === 'bottom' ? 1 : -1;\n\n // Padding based on font size (font size / 4)\n const xPadding = sizeScale / 4;\n const yPadding = sizeScale * (1 + 1 / 4);\n\n // Place secondary label under main label (secondary label always 'top' baseline aligned)\n const secondaryOffset = 0.6 * (1 - yMult) * sizeScale;\n let yOffset = secondary ? secondaryOffset : 0;\n\n // Special case, position relative to secondary label\n if (anchor === 'middle' && alignment === 'top' && getSecondaryText) {\n yOffset -= secondaryOffset;\n yOffset -= secondarySizeScale;\n yOffset += sizeScale;\n }\n\n // Padding based on point radius (radius/ 4)\n const radiusPadding = 1 + 1 / 4;\n\n return typeof getRadius === 'function'\n ? (d, info) => {\n const r = (info ? getRadius(d, info) : 1) * radiusScale * radiusPadding;\n return [xMult * (r + xPadding), yMult * (r + yPadding) + yOffset];\n }\n : [\n xMult * (getRadius * radiusScale * radiusPadding + xPadding),\n yMult * (getRadius * radiusScale * radiusPadding + yPadding) + yOffset\n ];\n }\n\n calculateBackgroundPadding() {\n const {getTextAnchor: anchor, getAlignmentBaseline: alignment, sizeScale} = this.props;\n\n // Heuristics to avoid label overlap\n const paddingX = 12 * sizeScale;\n const paddingY = 3 * sizeScale;\n const backgroundPadding = [0, 0, 0, 0];\n if (alignment === 'top') {\n backgroundPadding[TOP] = paddingY;\n } else if (alignment === 'bottom') {\n backgroundPadding[BOTTOM] = paddingY;\n } else {\n backgroundPadding[TOP] = 0.5 * paddingY;\n backgroundPadding[BOTTOM] = 0.5 * paddingY;\n }\n if (anchor === 'start') {\n backgroundPadding[LEFT] = paddingX;\n } else if (anchor === 'end') {\n backgroundPadding[RIGHT] = paddingX;\n } else {\n backgroundPadding[LEFT] = 0.5 * paddingX;\n backgroundPadding[RIGHT] = 0.5 * paddingX;\n }\n\n return backgroundPadding;\n }\n\n renderTextLayer(id, {updateTriggers: updateTriggersOverride = {}, ...props}): EnhancedTextLayer {\n const {\n data,\n\n characterSet,\n fontFamily,\n fontSettings,\n fontWeight,\n outlineColor,\n outlineWidth,\n sizeScale,\n radiusScale,\n\n getAlignmentBaseline,\n getColor,\n getPosition,\n getTextAnchor,\n\n updateTriggers\n } = this.props;\n\n return new EnhancedTextLayer(\n this.getSubLayerProps({\n id,\n data,\n\n characterSet,\n fontFamily,\n fontSettings,\n fontWeight,\n outlineColor,\n outlineWidth,\n sizeScale,\n\n getAlignmentBaseline,\n getColor,\n getPosition,\n getTextAnchor,\n\n updateTriggers: {\n ...updateTriggers,\n ...updateTriggersOverride,\n getPixelOffset: [\n updateTriggers.getRadius,\n updateTriggers.getTextAnchor,\n updateTriggers.getAlignmentBaseline,\n radiusScale,\n sizeScale\n ]\n }\n }),\n {\n getSize: 1,\n _subLayerProps: {background: {type: EnhancedTextBackgroundLayer}}\n },\n props\n );\n }\n\n renderLayers(): Layer | null | LayersList {\n const {\n getText,\n getSecondaryColor,\n getSecondaryText,\n secondaryOutlineColor,\n secondarySizeScale,\n updateTriggers\n } = this.props;\n const getPixelOffset = this.calculatePixelOffset(false);\n const backgroundPadding = this.calculateBackgroundPadding();\n const out = [\n // Text doesn't update via updateTrigger for some reason\n this.renderTextLayer(`${updateTriggers.getText}-primary`, {\n backgroundPadding,\n getText,\n getPixelOffset,\n background: true // Only use background for primary label for faster collisions\n }),\n Boolean(getSecondaryText) &&\n this.renderTextLayer(`${updateTriggers.getSecondaryText}-secondary`, {\n getText: getSecondaryText,\n getPixelOffset: this.calculatePixelOffset(true),\n getAlignmentBaseline: 'top',\n // updateTriggers: {getText: updateTriggers.getSecondaryText},\n\n // Optional overrides\n ...(getSecondaryColor && {getColor: getSecondaryColor}),\n ...(secondarySizeScale && {sizeScale: secondarySizeScale}),\n ...(secondaryOutlineColor && {outlineColor: secondaryOutlineColor})\n })\n ];\n\n return out;\n }\n}\n"],"file":"point-label-layer.js"}