@deck.gl/json
Advanced tools
Comparing version 6.1.0-alpha.2 to 6.1.0-beta.1
// | ||
// @deck.gl/json: top-level exports | ||
// | ||
export { default as JSONLayer } from './json-layer/json-layer'; | ||
export { default as JSONDeck } from './json-deck/json-deck'; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJkZWZhdWx0IiwiSlNPTkxheWVyIiwiSlNPTkRlY2siXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUVBLFNBQVFBLE9BQU8sSUFBSUMsU0FBbkIsUUFBbUMseUJBQW5DO0FBQ0EsU0FBUUQsT0FBTyxJQUFJRSxRQUFuQixRQUFrQyx1QkFBbEMiLCJzb3VyY2VzQ29udGVudCI6WyIvL1xuLy8gQGRlY2suZ2wvanNvbjogdG9wLWxldmVsIGV4cG9ydHNcbi8vXG5cbmV4cG9ydCB7ZGVmYXVsdCBhcyBKU09OTGF5ZXJ9IGZyb20gJy4vanNvbi1sYXllci9qc29uLWxheWVyJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBKU09ORGVja30gZnJvbSAnLi9qc29uLWRlY2svanNvbi1kZWNrJztcbiJdfQ== | ||
export { default as _JSONConverter } from './json-converter/json-converter'; | ||
export { default as _JSONLayer } from './json-layer/json-layer'; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJkZWZhdWx0IiwiX0pTT05Db252ZXJ0ZXIiLCJfSlNPTkxheWVyIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFFQSxTQUFRQSxPQUFPLElBQUlDLGNBQW5CLFFBQXdDLGlDQUF4QztBQUNBLFNBQVFELE9BQU8sSUFBSUUsVUFBbkIsUUFBb0MseUJBQXBDIiwic291cmNlc0NvbnRlbnQiOlsiLy9cbi8vIEBkZWNrLmdsL2pzb246IHRvcC1sZXZlbCBleHBvcnRzXG4vL1xuXG5leHBvcnQge2RlZmF1bHQgYXMgX0pTT05Db252ZXJ0ZXJ9IGZyb20gJy4vanNvbi1jb252ZXJ0ZXIvanNvbi1jb252ZXJ0ZXInO1xuZXhwb3J0IHtkZWZhdWx0IGFzIF9KU09OTGF5ZXJ9IGZyb20gJy4vanNvbi1sYXllci9qc29uLWxheWVyJztcbiJdfQ== |
import { CompositeLayer } from '@deck.gl/core'; | ||
import { get } from '../utils/get'; | ||
import { getJSONLayers } from '../parsers/convert-json'; | ||
const defaultProps = { | ||
layerCatalog: [] | ||
configuration: [] | ||
}; | ||
@@ -17,3 +17,3 @@ export default class JSONLayer extends CompositeLayer { | ||
}) { | ||
const layersChanged = props.data !== oldProps.data || props.layerCatalog !== oldProps.layerCatalog; | ||
const layersChanged = props.data !== oldProps.data || props.configuration !== oldProps.configuration; | ||
@@ -23,52 +23,6 @@ if (layersChanged) { | ||
const data = typeof props.data === 'string' ? JSON.parse(props.data) : props.data; | ||
this.state.layers = this._getJSONLayers(data, props.layerCatalog); | ||
this.state.layers = getJSONLayers(data, props.configuration); | ||
} | ||
} | ||
_getJSONLayers(jsonLayers = [], layerCatalog) { | ||
// assert(Array.isArray(jsonLayers)); | ||
return jsonLayers.map(jsonLayer => { | ||
const Layer = layerCatalog[jsonLayer.type]; | ||
const props = this._getJSONLayerProps(jsonLayer); | ||
return Layer && new Layer(props); | ||
}); | ||
} // Replaces accessor props | ||
_getJSONLayerProps(jsonProps) { | ||
const replacedProps = {}; | ||
for (const propName in jsonProps) { | ||
// eslint-disable-line guard-for-in | ||
const propValue = jsonProps[propName]; // Handle accessors | ||
if (propName.startsWith('get')) { | ||
replacedProps[propName] = this._getJSONAccessor(propValue); | ||
} else { | ||
replacedProps[propName] = propValue; | ||
} | ||
} | ||
return replacedProps; | ||
} // Calculates an accessor function from a JSON string | ||
// '-' : x => x | ||
// 'a.b.c': x => x.a.b.c | ||
_getJSONAccessor(propValue) { | ||
if (propValue === '-') { | ||
return object => object; | ||
} | ||
if (typeof propValue === 'string') { | ||
return object => { | ||
return get(object, propValue); | ||
}; | ||
} | ||
return propValue; | ||
} | ||
renderLayers() { | ||
@@ -79,4 +33,4 @@ return this.state.layers; | ||
} | ||
JSONLayer.layerName = 'jsonLayer'; | ||
JSONLayer.layerName = 'JSONLayer'; | ||
JSONLayer.defaultProps = defaultProps; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9qc29uLWxheWVyL2pzb24tbGF5ZXIuanMiXSwibmFtZXMiOlsiQ29tcG9zaXRlTGF5ZXIiLCJnZXQiLCJkZWZhdWx0UHJvcHMiLCJsYXllckNhdGFsb2ciLCJKU09OTGF5ZXIiLCJpbml0aWFsaXplU3RhdGUiLCJzdGF0ZSIsImxheWVycyIsInVwZGF0ZVN0YXRlIiwicHJvcHMiLCJvbGRQcm9wcyIsImxheWVyc0NoYW5nZWQiLCJkYXRhIiwiSlNPTiIsInBhcnNlIiwiX2dldEpTT05MYXllcnMiLCJqc29uTGF5ZXJzIiwibWFwIiwianNvbkxheWVyIiwiTGF5ZXIiLCJ0eXBlIiwiX2dldEpTT05MYXllclByb3BzIiwianNvblByb3BzIiwicmVwbGFjZWRQcm9wcyIsInByb3BOYW1lIiwicHJvcFZhbHVlIiwic3RhcnRzV2l0aCIsIl9nZXRKU09OQWNjZXNzb3IiLCJvYmplY3QiLCJyZW5kZXJMYXllcnMiLCJsYXllck5hbWUiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVFBLGNBQVIsUUFBNkIsZUFBN0I7QUFDQSxTQUFRQyxHQUFSLFFBQWtCLGNBQWxCO0FBRUEsTUFBTUMsWUFBWSxHQUFHO0FBQ25CQyxFQUFBQSxZQUFZLEVBQUU7QUFESyxDQUFyQjtBQUlBLGVBQWUsTUFBTUMsU0FBTixTQUF3QkosY0FBeEIsQ0FBdUM7QUFDcERLLEVBQUFBLGVBQWUsR0FBRztBQUNoQixTQUFLQyxLQUFMLEdBQWE7QUFDWEMsTUFBQUEsTUFBTSxFQUFFO0FBREcsS0FBYjtBQUdEOztBQUVEQyxFQUFBQSxXQUFXLENBQUM7QUFBQ0MsSUFBQUEsS0FBRDtBQUFRQyxJQUFBQTtBQUFSLEdBQUQsRUFBb0I7QUFDN0IsVUFBTUMsYUFBYSxHQUNqQkYsS0FBSyxDQUFDRyxJQUFOLEtBQWVGLFFBQVEsQ0FBQ0UsSUFBeEIsSUFBZ0NILEtBQUssQ0FBQ04sWUFBTixLQUF1Qk8sUUFBUSxDQUFDUCxZQURsRTs7QUFHQSxRQUFJUSxhQUFKLEVBQW1CO0FBQ2pCO0FBQ0EsWUFBTUMsSUFBSSxHQUFHLE9BQU9ILEtBQUssQ0FBQ0csSUFBYixLQUFzQixRQUF0QixHQUFpQ0MsSUFBSSxDQUFDQyxLQUFMLENBQVdMLEtBQUssQ0FBQ0csSUFBakIsQ0FBakMsR0FBMERILEtBQUssQ0FBQ0csSUFBN0U7QUFDQSxXQUFLTixLQUFMLENBQVdDLE1BQVgsR0FBb0IsS0FBS1EsY0FBTCxDQUFvQkgsSUFBcEIsRUFBMEJILEtBQUssQ0FBQ04sWUFBaEMsQ0FBcEI7QUFDRDtBQUNGOztBQUVEWSxFQUFBQSxjQUFjLENBQUNDLFVBQVUsR0FBRyxFQUFkLEVBQWtCYixZQUFsQixFQUFnQztBQUM1QztBQUNBLFdBQU9hLFVBQVUsQ0FBQ0MsR0FBWCxDQUFlQyxTQUFTLElBQUk7QUFDakMsWUFBTUMsS0FBSyxHQUFHaEIsWUFBWSxDQUFDZSxTQUFTLENBQUNFLElBQVgsQ0FBMUI7O0FBQ0EsWUFBTVgsS0FBSyxHQUFHLEtBQUtZLGtCQUFMLENBQXdCSCxTQUF4QixDQUFkOztBQUNBLGFBQU9DLEtBQUssSUFBSSxJQUFJQSxLQUFKLENBQVVWLEtBQVYsQ0FBaEI7QUFDRCxLQUpNLENBQVA7QUFLRCxHQXpCbUQsQ0EyQnBEOzs7QUFDQVksRUFBQUEsa0JBQWtCLENBQUNDLFNBQUQsRUFBWTtBQUM1QixVQUFNQyxhQUFhLEdBQUcsRUFBdEI7O0FBQ0EsU0FBSyxNQUFNQyxRQUFYLElBQXVCRixTQUF2QixFQUFrQztBQUNoQztBQUNBLFlBQU1HLFNBQVMsR0FBR0gsU0FBUyxDQUFDRSxRQUFELENBQTNCLENBRmdDLENBR2hDOztBQUNBLFVBQUlBLFFBQVEsQ0FBQ0UsVUFBVCxDQUFvQixLQUFwQixDQUFKLEVBQWdDO0FBQzlCSCxRQUFBQSxhQUFhLENBQUNDLFFBQUQsQ0FBYixHQUEwQixLQUFLRyxnQkFBTCxDQUFzQkYsU0FBdEIsQ0FBMUI7QUFDRCxPQUZELE1BRU87QUFDTEYsUUFBQUEsYUFBYSxDQUFDQyxRQUFELENBQWIsR0FBMEJDLFNBQTFCO0FBQ0Q7QUFDRjs7QUFDRCxXQUFPRixhQUFQO0FBQ0QsR0F6Q21ELENBMkNwRDtBQUNBO0FBQ0E7OztBQUNBSSxFQUFBQSxnQkFBZ0IsQ0FBQ0YsU0FBRCxFQUFZO0FBQzFCLFFBQUlBLFNBQVMsS0FBSyxHQUFsQixFQUF1QjtBQUNyQixhQUFPRyxNQUFNLElBQUlBLE1BQWpCO0FBQ0Q7O0FBQ0QsUUFBSSxPQUFPSCxTQUFQLEtBQXFCLFFBQXpCLEVBQW1DO0FBQ2pDLGFBQU9HLE1BQU0sSUFBSTtBQUNmLGVBQU8zQixHQUFHLENBQUMyQixNQUFELEVBQVNILFNBQVQsQ0FBVjtBQUNELE9BRkQ7QUFHRDs7QUFDRCxXQUFPQSxTQUFQO0FBQ0Q7O0FBRURJLEVBQUFBLFlBQVksR0FBRztBQUNiLFdBQU8sS0FBS3ZCLEtBQUwsQ0FBV0MsTUFBbEI7QUFDRDs7QUE1RG1EO0FBK0R0REgsU0FBUyxDQUFDMEIsU0FBVixHQUFzQixXQUF0QjtBQUNBMUIsU0FBUyxDQUFDRixZQUFWLEdBQXlCQSxZQUF6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9zaXRlTGF5ZXJ9IGZyb20gJ0BkZWNrLmdsL2NvcmUnO1xuaW1wb3J0IHtnZXR9IGZyb20gJy4uL3V0aWxzL2dldCc7XG5cbmNvbnN0IGRlZmF1bHRQcm9wcyA9IHtcbiAgbGF5ZXJDYXRhbG9nOiBbXVxufTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSlNPTkxheWVyIGV4dGVuZHMgQ29tcG9zaXRlTGF5ZXIge1xuICBpbml0aWFsaXplU3RhdGUoKSB7XG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIGxheWVyczogW11cbiAgICB9O1xuICB9XG5cbiAgdXBkYXRlU3RhdGUoe3Byb3BzLCBvbGRQcm9wc30pIHtcbiAgICBjb25zdCBsYXllcnNDaGFuZ2VkID1cbiAgICAgIHByb3BzLmRhdGEgIT09IG9sZFByb3BzLmRhdGEgfHwgcHJvcHMubGF5ZXJDYXRhbG9nICE9PSBvbGRQcm9wcy5sYXllckNhdGFsb2c7XG5cbiAgICBpZiAobGF5ZXJzQ2hhbmdlZCkge1xuICAgICAgLy8gT3B0aW9uYWxseSBhY2NlcHQgSlNPTiBzdHJpbmdzIGJ5IHBhcnNpbmcgdGhlbVxuICAgICAgY29uc3QgZGF0YSA9IHR5cGVvZiBwcm9wcy5kYXRhID09PSAnc3RyaW5nJyA/IEpTT04ucGFyc2UocHJvcHMuZGF0YSkgOiBwcm9wcy5kYXRhO1xuICAgICAgdGhpcy5zdGF0ZS5sYXllcnMgPSB0aGlzLl9nZXRKU09OTGF5ZXJzKGRhdGEsIHByb3BzLmxheWVyQ2F0YWxvZyk7XG4gICAgfVxuICB9XG5cbiAgX2dldEpTT05MYXllcnMoanNvbkxheWVycyA9IFtdLCBsYXllckNhdGFsb2cpIHtcbiAgICAvLyBhc3NlcnQoQXJyYXkuaXNBcnJheShqc29uTGF5ZXJzKSk7XG4gICAgcmV0dXJuIGpzb25MYXllcnMubWFwKGpzb25MYXllciA9PiB7XG4gICAgICBjb25zdCBMYXllciA9IGxheWVyQ2F0YWxvZ1tqc29uTGF5ZXIudHlwZV07XG4gICAgICBjb25zdCBwcm9wcyA9IHRoaXMuX2dldEpTT05MYXllclByb3BzKGpzb25MYXllcik7XG4gICAgICByZXR1cm4gTGF5ZXIgJiYgbmV3IExheWVyKHByb3BzKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIFJlcGxhY2VzIGFjY2Vzc29yIHByb3BzXG4gIF9nZXRKU09OTGF5ZXJQcm9wcyhqc29uUHJvcHMpIHtcbiAgICBjb25zdCByZXBsYWNlZFByb3BzID0ge307XG4gICAgZm9yIChjb25zdCBwcm9wTmFtZSBpbiBqc29uUHJvcHMpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgZ3VhcmQtZm9yLWluXG4gICAgICBjb25zdCBwcm9wVmFsdWUgPSBqc29uUHJvcHNbcHJvcE5hbWVdO1xuICAgICAgLy8gSGFuZGxlIGFjY2Vzc29yc1xuICAgICAgaWYgKHByb3BOYW1lLnN0YXJ0c1dpdGgoJ2dldCcpKSB7XG4gICAgICAgIHJlcGxhY2VkUHJvcHNbcHJvcE5hbWVdID0gdGhpcy5fZ2V0SlNPTkFjY2Vzc29yKHByb3BWYWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXBsYWNlZFByb3BzW3Byb3BOYW1lXSA9IHByb3BWYWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlcGxhY2VkUHJvcHM7XG4gIH1cblxuICAvLyBDYWxjdWxhdGVzIGFuIGFjY2Vzc29yIGZ1bmN0aW9uIGZyb20gYSBKU09OIHN0cmluZ1xuICAvLyAnLScgOiB4ID0+IHhcbiAgLy8gJ2EuYi5jJzogeCA9PiB4LmEuYi5jXG4gIF9nZXRKU09OQWNjZXNzb3IocHJvcFZhbHVlKSB7XG4gICAgaWYgKHByb3BWYWx1ZSA9PT0gJy0nKSB7XG4gICAgICByZXR1cm4gb2JqZWN0ID0+IG9iamVjdDtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBwcm9wVmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gb2JqZWN0ID0+IHtcbiAgICAgICAgcmV0dXJuIGdldChvYmplY3QsIHByb3BWYWx1ZSk7XG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gcHJvcFZhbHVlO1xuICB9XG5cbiAgcmVuZGVyTGF5ZXJzKCkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlLmxheWVycztcbiAgfVxufVxuXG5KU09OTGF5ZXIubGF5ZXJOYW1lID0gJ2pzb25MYXllcic7XG5KU09OTGF5ZXIuZGVmYXVsdFByb3BzID0gZGVmYXVsdFByb3BzO1xuIl19 | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9qc29uLWxheWVyL2pzb24tbGF5ZXIuanMiXSwibmFtZXMiOlsiQ29tcG9zaXRlTGF5ZXIiLCJnZXRKU09OTGF5ZXJzIiwiZGVmYXVsdFByb3BzIiwiY29uZmlndXJhdGlvbiIsIkpTT05MYXllciIsImluaXRpYWxpemVTdGF0ZSIsInN0YXRlIiwibGF5ZXJzIiwidXBkYXRlU3RhdGUiLCJwcm9wcyIsIm9sZFByb3BzIiwibGF5ZXJzQ2hhbmdlZCIsImRhdGEiLCJKU09OIiwicGFyc2UiLCJyZW5kZXJMYXllcnMiLCJsYXllck5hbWUiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVFBLGNBQVIsUUFBNkIsZUFBN0I7QUFDQSxTQUFRQyxhQUFSLFFBQTRCLHlCQUE1QjtBQUVBLE1BQU1DLFlBQVksR0FBRztBQUNuQkMsRUFBQUEsYUFBYSxFQUFFO0FBREksQ0FBckI7QUFJQSxlQUFlLE1BQU1DLFNBQU4sU0FBd0JKLGNBQXhCLENBQXVDO0FBQ3BESyxFQUFBQSxlQUFlLEdBQUc7QUFDaEIsU0FBS0MsS0FBTCxHQUFhO0FBQ1hDLE1BQUFBLE1BQU0sRUFBRTtBQURHLEtBQWI7QUFHRDs7QUFFREMsRUFBQUEsV0FBVyxDQUFDO0FBQUNDLElBQUFBLEtBQUQ7QUFBUUMsSUFBQUE7QUFBUixHQUFELEVBQW9CO0FBQzdCLFVBQU1DLGFBQWEsR0FDakJGLEtBQUssQ0FBQ0csSUFBTixLQUFlRixRQUFRLENBQUNFLElBQXhCLElBQWdDSCxLQUFLLENBQUNOLGFBQU4sS0FBd0JPLFFBQVEsQ0FBQ1AsYUFEbkU7O0FBR0EsUUFBSVEsYUFBSixFQUFtQjtBQUNqQjtBQUNBLFlBQU1DLElBQUksR0FBRyxPQUFPSCxLQUFLLENBQUNHLElBQWIsS0FBc0IsUUFBdEIsR0FBaUNDLElBQUksQ0FBQ0MsS0FBTCxDQUFXTCxLQUFLLENBQUNHLElBQWpCLENBQWpDLEdBQTBESCxLQUFLLENBQUNHLElBQTdFO0FBQ0EsV0FBS04sS0FBTCxDQUFXQyxNQUFYLEdBQW9CTixhQUFhLENBQUNXLElBQUQsRUFBT0gsS0FBSyxDQUFDTixhQUFiLENBQWpDO0FBQ0Q7QUFDRjs7QUFFRFksRUFBQUEsWUFBWSxHQUFHO0FBQ2IsV0FBTyxLQUFLVCxLQUFMLENBQVdDLE1BQWxCO0FBQ0Q7O0FBcEJtRDtBQXVCdERILFNBQVMsQ0FBQ1ksU0FBVixHQUFzQixXQUF0QjtBQUNBWixTQUFTLENBQUNGLFlBQVYsR0FBeUJBLFlBQXpCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb3NpdGVMYXllcn0gZnJvbSAnQGRlY2suZ2wvY29yZSc7XG5pbXBvcnQge2dldEpTT05MYXllcnN9IGZyb20gJy4uL3BhcnNlcnMvY29udmVydC1qc29uJztcblxuY29uc3QgZGVmYXVsdFByb3BzID0ge1xuICBjb25maWd1cmF0aW9uOiBbXVxufTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSlNPTkxheWVyIGV4dGVuZHMgQ29tcG9zaXRlTGF5ZXIge1xuICBpbml0aWFsaXplU3RhdGUoKSB7XG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIGxheWVyczogW11cbiAgICB9O1xuICB9XG5cbiAgdXBkYXRlU3RhdGUoe3Byb3BzLCBvbGRQcm9wc30pIHtcbiAgICBjb25zdCBsYXllcnNDaGFuZ2VkID1cbiAgICAgIHByb3BzLmRhdGEgIT09IG9sZFByb3BzLmRhdGEgfHwgcHJvcHMuY29uZmlndXJhdGlvbiAhPT0gb2xkUHJvcHMuY29uZmlndXJhdGlvbjtcblxuICAgIGlmIChsYXllcnNDaGFuZ2VkKSB7XG4gICAgICAvLyBPcHRpb25hbGx5IGFjY2VwdCBKU09OIHN0cmluZ3MgYnkgcGFyc2luZyB0aGVtXG4gICAgICBjb25zdCBkYXRhID0gdHlwZW9mIHByb3BzLmRhdGEgPT09ICdzdHJpbmcnID8gSlNPTi5wYXJzZShwcm9wcy5kYXRhKSA6IHByb3BzLmRhdGE7XG4gICAgICB0aGlzLnN0YXRlLmxheWVycyA9IGdldEpTT05MYXllcnMoZGF0YSwgcHJvcHMuY29uZmlndXJhdGlvbik7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyTGF5ZXJzKCkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlLmxheWVycztcbiAgfVxufVxuXG5KU09OTGF5ZXIubGF5ZXJOYW1lID0gJ0pTT05MYXllcic7XG5KU09OTGF5ZXIuZGVmYXVsdFByb3BzID0gZGVmYXVsdFByb3BzO1xuIl19 |
// | ||
// @deck.gl/json: top-level exports | ||
// | ||
export { default as JSONLayer } from './json-layer/json-layer'; | ||
export { default as JSONDeck } from './json-deck/json-deck'; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJkZWZhdWx0IiwiSlNPTkxheWVyIiwiSlNPTkRlY2siXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUVBLFNBQVFBLE9BQU8sSUFBSUMsU0FBbkIsUUFBbUMseUJBQW5DO0FBQ0EsU0FBUUQsT0FBTyxJQUFJRSxRQUFuQixRQUFrQyx1QkFBbEMiLCJzb3VyY2VzQ29udGVudCI6WyIvL1xuLy8gQGRlY2suZ2wvanNvbjogdG9wLWxldmVsIGV4cG9ydHNcbi8vXG5cbmV4cG9ydCB7ZGVmYXVsdCBhcyBKU09OTGF5ZXJ9IGZyb20gJy4vanNvbi1sYXllci9qc29uLWxheWVyJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBKU09ORGVja30gZnJvbSAnLi9qc29uLWRlY2svanNvbi1kZWNrJztcbiJdfQ== | ||
export { default as _JSONConverter } from './json-converter/json-converter'; | ||
export { default as _JSONLayer } from './json-layer/json-layer'; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJkZWZhdWx0IiwiX0pTT05Db252ZXJ0ZXIiLCJfSlNPTkxheWVyIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFFQSxTQUFRQSxPQUFPLElBQUlDLGNBQW5CLFFBQXdDLGlDQUF4QztBQUNBLFNBQVFELE9BQU8sSUFBSUUsVUFBbkIsUUFBb0MseUJBQXBDIiwic291cmNlc0NvbnRlbnQiOlsiLy9cbi8vIEBkZWNrLmdsL2pzb246IHRvcC1sZXZlbCBleHBvcnRzXG4vL1xuXG5leHBvcnQge2RlZmF1bHQgYXMgX0pTT05Db252ZXJ0ZXJ9IGZyb20gJy4vanNvbi1jb252ZXJ0ZXIvanNvbi1jb252ZXJ0ZXInO1xuZXhwb3J0IHtkZWZhdWx0IGFzIF9KU09OTGF5ZXJ9IGZyb20gJy4vanNvbi1sYXllci9qc29uLWxheWVyJztcbiJdfQ== |
import { CompositeLayer } from '@deck.gl/core'; | ||
import { get } from '../utils/get'; | ||
import { getJSONLayers } from '../parsers/convert-json'; | ||
const defaultProps = { | ||
layerCatalog: [] | ||
configuration: [] | ||
}; | ||
@@ -17,3 +17,3 @@ export default class JSONLayer extends CompositeLayer { | ||
}) { | ||
const layersChanged = props.data !== oldProps.data || props.layerCatalog !== oldProps.layerCatalog; | ||
const layersChanged = props.data !== oldProps.data || props.configuration !== oldProps.configuration; | ||
@@ -23,52 +23,6 @@ if (layersChanged) { | ||
const data = typeof props.data === 'string' ? JSON.parse(props.data) : props.data; | ||
this.state.layers = this._getJSONLayers(data, props.layerCatalog); | ||
this.state.layers = getJSONLayers(data, props.configuration); | ||
} | ||
} | ||
_getJSONLayers(jsonLayers = [], layerCatalog) { | ||
// assert(Array.isArray(jsonLayers)); | ||
return jsonLayers.map(jsonLayer => { | ||
const Layer = layerCatalog[jsonLayer.type]; | ||
const props = this._getJSONLayerProps(jsonLayer); | ||
return Layer && new Layer(props); | ||
}); | ||
} // Replaces accessor props | ||
_getJSONLayerProps(jsonProps) { | ||
const replacedProps = {}; | ||
for (const propName in jsonProps) { | ||
// eslint-disable-line guard-for-in | ||
const propValue = jsonProps[propName]; // Handle accessors | ||
if (propName.startsWith('get')) { | ||
replacedProps[propName] = this._getJSONAccessor(propValue); | ||
} else { | ||
replacedProps[propName] = propValue; | ||
} | ||
} | ||
return replacedProps; | ||
} // Calculates an accessor function from a JSON string | ||
// '-' : x => x | ||
// 'a.b.c': x => x.a.b.c | ||
_getJSONAccessor(propValue) { | ||
if (propValue === '-') { | ||
return object => object; | ||
} | ||
if (typeof propValue === 'string') { | ||
return object => { | ||
return get(object, propValue); | ||
}; | ||
} | ||
return propValue; | ||
} | ||
renderLayers() { | ||
@@ -79,4 +33,4 @@ return this.state.layers; | ||
} | ||
JSONLayer.layerName = 'jsonLayer'; | ||
JSONLayer.layerName = 'JSONLayer'; | ||
JSONLayer.defaultProps = defaultProps; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9qc29uLWxheWVyL2pzb24tbGF5ZXIuanMiXSwibmFtZXMiOlsiQ29tcG9zaXRlTGF5ZXIiLCJnZXQiLCJkZWZhdWx0UHJvcHMiLCJsYXllckNhdGFsb2ciLCJKU09OTGF5ZXIiLCJpbml0aWFsaXplU3RhdGUiLCJzdGF0ZSIsImxheWVycyIsInVwZGF0ZVN0YXRlIiwicHJvcHMiLCJvbGRQcm9wcyIsImxheWVyc0NoYW5nZWQiLCJkYXRhIiwiSlNPTiIsInBhcnNlIiwiX2dldEpTT05MYXllcnMiLCJqc29uTGF5ZXJzIiwibWFwIiwianNvbkxheWVyIiwiTGF5ZXIiLCJ0eXBlIiwiX2dldEpTT05MYXllclByb3BzIiwianNvblByb3BzIiwicmVwbGFjZWRQcm9wcyIsInByb3BOYW1lIiwicHJvcFZhbHVlIiwic3RhcnRzV2l0aCIsIl9nZXRKU09OQWNjZXNzb3IiLCJvYmplY3QiLCJyZW5kZXJMYXllcnMiLCJsYXllck5hbWUiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVFBLGNBQVIsUUFBNkIsZUFBN0I7QUFDQSxTQUFRQyxHQUFSLFFBQWtCLGNBQWxCO0FBRUEsTUFBTUMsWUFBWSxHQUFHO0FBQ25CQyxFQUFBQSxZQUFZLEVBQUU7QUFESyxDQUFyQjtBQUlBLGVBQWUsTUFBTUMsU0FBTixTQUF3QkosY0FBeEIsQ0FBdUM7QUFDcERLLEVBQUFBLGVBQWUsR0FBRztBQUNoQixTQUFLQyxLQUFMLEdBQWE7QUFDWEMsTUFBQUEsTUFBTSxFQUFFO0FBREcsS0FBYjtBQUdEOztBQUVEQyxFQUFBQSxXQUFXLENBQUM7QUFBQ0MsSUFBQUEsS0FBRDtBQUFRQyxJQUFBQTtBQUFSLEdBQUQsRUFBb0I7QUFDN0IsVUFBTUMsYUFBYSxHQUNqQkYsS0FBSyxDQUFDRyxJQUFOLEtBQWVGLFFBQVEsQ0FBQ0UsSUFBeEIsSUFBZ0NILEtBQUssQ0FBQ04sWUFBTixLQUF1Qk8sUUFBUSxDQUFDUCxZQURsRTs7QUFHQSxRQUFJUSxhQUFKLEVBQW1CO0FBQ2pCO0FBQ0EsWUFBTUMsSUFBSSxHQUFHLE9BQU9ILEtBQUssQ0FBQ0csSUFBYixLQUFzQixRQUF0QixHQUFpQ0MsSUFBSSxDQUFDQyxLQUFMLENBQVdMLEtBQUssQ0FBQ0csSUFBakIsQ0FBakMsR0FBMERILEtBQUssQ0FBQ0csSUFBN0U7QUFDQSxXQUFLTixLQUFMLENBQVdDLE1BQVgsR0FBb0IsS0FBS1EsY0FBTCxDQUFvQkgsSUFBcEIsRUFBMEJILEtBQUssQ0FBQ04sWUFBaEMsQ0FBcEI7QUFDRDtBQUNGOztBQUVEWSxFQUFBQSxjQUFjLENBQUNDLFVBQVUsR0FBRyxFQUFkLEVBQWtCYixZQUFsQixFQUFnQztBQUM1QztBQUNBLFdBQU9hLFVBQVUsQ0FBQ0MsR0FBWCxDQUFlQyxTQUFTLElBQUk7QUFDakMsWUFBTUMsS0FBSyxHQUFHaEIsWUFBWSxDQUFDZSxTQUFTLENBQUNFLElBQVgsQ0FBMUI7O0FBQ0EsWUFBTVgsS0FBSyxHQUFHLEtBQUtZLGtCQUFMLENBQXdCSCxTQUF4QixDQUFkOztBQUNBLGFBQU9DLEtBQUssSUFBSSxJQUFJQSxLQUFKLENBQVVWLEtBQVYsQ0FBaEI7QUFDRCxLQUpNLENBQVA7QUFLRCxHQXpCbUQsQ0EyQnBEOzs7QUFDQVksRUFBQUEsa0JBQWtCLENBQUNDLFNBQUQsRUFBWTtBQUM1QixVQUFNQyxhQUFhLEdBQUcsRUFBdEI7O0FBQ0EsU0FBSyxNQUFNQyxRQUFYLElBQXVCRixTQUF2QixFQUFrQztBQUNoQztBQUNBLFlBQU1HLFNBQVMsR0FBR0gsU0FBUyxDQUFDRSxRQUFELENBQTNCLENBRmdDLENBR2hDOztBQUNBLFVBQUlBLFFBQVEsQ0FBQ0UsVUFBVCxDQUFvQixLQUFwQixDQUFKLEVBQWdDO0FBQzlCSCxRQUFBQSxhQUFhLENBQUNDLFFBQUQsQ0FBYixHQUEwQixLQUFLRyxnQkFBTCxDQUFzQkYsU0FBdEIsQ0FBMUI7QUFDRCxPQUZELE1BRU87QUFDTEYsUUFBQUEsYUFBYSxDQUFDQyxRQUFELENBQWIsR0FBMEJDLFNBQTFCO0FBQ0Q7QUFDRjs7QUFDRCxXQUFPRixhQUFQO0FBQ0QsR0F6Q21ELENBMkNwRDtBQUNBO0FBQ0E7OztBQUNBSSxFQUFBQSxnQkFBZ0IsQ0FBQ0YsU0FBRCxFQUFZO0FBQzFCLFFBQUlBLFNBQVMsS0FBSyxHQUFsQixFQUF1QjtBQUNyQixhQUFPRyxNQUFNLElBQUlBLE1BQWpCO0FBQ0Q7O0FBQ0QsUUFBSSxPQUFPSCxTQUFQLEtBQXFCLFFBQXpCLEVBQW1DO0FBQ2pDLGFBQU9HLE1BQU0sSUFBSTtBQUNmLGVBQU8zQixHQUFHLENBQUMyQixNQUFELEVBQVNILFNBQVQsQ0FBVjtBQUNELE9BRkQ7QUFHRDs7QUFDRCxXQUFPQSxTQUFQO0FBQ0Q7O0FBRURJLEVBQUFBLFlBQVksR0FBRztBQUNiLFdBQU8sS0FBS3ZCLEtBQUwsQ0FBV0MsTUFBbEI7QUFDRDs7QUE1RG1EO0FBK0R0REgsU0FBUyxDQUFDMEIsU0FBVixHQUFzQixXQUF0QjtBQUNBMUIsU0FBUyxDQUFDRixZQUFWLEdBQXlCQSxZQUF6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9zaXRlTGF5ZXJ9IGZyb20gJ0BkZWNrLmdsL2NvcmUnO1xuaW1wb3J0IHtnZXR9IGZyb20gJy4uL3V0aWxzL2dldCc7XG5cbmNvbnN0IGRlZmF1bHRQcm9wcyA9IHtcbiAgbGF5ZXJDYXRhbG9nOiBbXVxufTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSlNPTkxheWVyIGV4dGVuZHMgQ29tcG9zaXRlTGF5ZXIge1xuICBpbml0aWFsaXplU3RhdGUoKSB7XG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIGxheWVyczogW11cbiAgICB9O1xuICB9XG5cbiAgdXBkYXRlU3RhdGUoe3Byb3BzLCBvbGRQcm9wc30pIHtcbiAgICBjb25zdCBsYXllcnNDaGFuZ2VkID1cbiAgICAgIHByb3BzLmRhdGEgIT09IG9sZFByb3BzLmRhdGEgfHwgcHJvcHMubGF5ZXJDYXRhbG9nICE9PSBvbGRQcm9wcy5sYXllckNhdGFsb2c7XG5cbiAgICBpZiAobGF5ZXJzQ2hhbmdlZCkge1xuICAgICAgLy8gT3B0aW9uYWxseSBhY2NlcHQgSlNPTiBzdHJpbmdzIGJ5IHBhcnNpbmcgdGhlbVxuICAgICAgY29uc3QgZGF0YSA9IHR5cGVvZiBwcm9wcy5kYXRhID09PSAnc3RyaW5nJyA/IEpTT04ucGFyc2UocHJvcHMuZGF0YSkgOiBwcm9wcy5kYXRhO1xuICAgICAgdGhpcy5zdGF0ZS5sYXllcnMgPSB0aGlzLl9nZXRKU09OTGF5ZXJzKGRhdGEsIHByb3BzLmxheWVyQ2F0YWxvZyk7XG4gICAgfVxuICB9XG5cbiAgX2dldEpTT05MYXllcnMoanNvbkxheWVycyA9IFtdLCBsYXllckNhdGFsb2cpIHtcbiAgICAvLyBhc3NlcnQoQXJyYXkuaXNBcnJheShqc29uTGF5ZXJzKSk7XG4gICAgcmV0dXJuIGpzb25MYXllcnMubWFwKGpzb25MYXllciA9PiB7XG4gICAgICBjb25zdCBMYXllciA9IGxheWVyQ2F0YWxvZ1tqc29uTGF5ZXIudHlwZV07XG4gICAgICBjb25zdCBwcm9wcyA9IHRoaXMuX2dldEpTT05MYXllclByb3BzKGpzb25MYXllcik7XG4gICAgICByZXR1cm4gTGF5ZXIgJiYgbmV3IExheWVyKHByb3BzKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIFJlcGxhY2VzIGFjY2Vzc29yIHByb3BzXG4gIF9nZXRKU09OTGF5ZXJQcm9wcyhqc29uUHJvcHMpIHtcbiAgICBjb25zdCByZXBsYWNlZFByb3BzID0ge307XG4gICAgZm9yIChjb25zdCBwcm9wTmFtZSBpbiBqc29uUHJvcHMpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgZ3VhcmQtZm9yLWluXG4gICAgICBjb25zdCBwcm9wVmFsdWUgPSBqc29uUHJvcHNbcHJvcE5hbWVdO1xuICAgICAgLy8gSGFuZGxlIGFjY2Vzc29yc1xuICAgICAgaWYgKHByb3BOYW1lLnN0YXJ0c1dpdGgoJ2dldCcpKSB7XG4gICAgICAgIHJlcGxhY2VkUHJvcHNbcHJvcE5hbWVdID0gdGhpcy5fZ2V0SlNPTkFjY2Vzc29yKHByb3BWYWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXBsYWNlZFByb3BzW3Byb3BOYW1lXSA9IHByb3BWYWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlcGxhY2VkUHJvcHM7XG4gIH1cblxuICAvLyBDYWxjdWxhdGVzIGFuIGFjY2Vzc29yIGZ1bmN0aW9uIGZyb20gYSBKU09OIHN0cmluZ1xuICAvLyAnLScgOiB4ID0+IHhcbiAgLy8gJ2EuYi5jJzogeCA9PiB4LmEuYi5jXG4gIF9nZXRKU09OQWNjZXNzb3IocHJvcFZhbHVlKSB7XG4gICAgaWYgKHByb3BWYWx1ZSA9PT0gJy0nKSB7XG4gICAgICByZXR1cm4gb2JqZWN0ID0+IG9iamVjdDtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBwcm9wVmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gb2JqZWN0ID0+IHtcbiAgICAgICAgcmV0dXJuIGdldChvYmplY3QsIHByb3BWYWx1ZSk7XG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gcHJvcFZhbHVlO1xuICB9XG5cbiAgcmVuZGVyTGF5ZXJzKCkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlLmxheWVycztcbiAgfVxufVxuXG5KU09OTGF5ZXIubGF5ZXJOYW1lID0gJ2pzb25MYXllcic7XG5KU09OTGF5ZXIuZGVmYXVsdFByb3BzID0gZGVmYXVsdFByb3BzO1xuIl19 | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9qc29uLWxheWVyL2pzb24tbGF5ZXIuanMiXSwibmFtZXMiOlsiQ29tcG9zaXRlTGF5ZXIiLCJnZXRKU09OTGF5ZXJzIiwiZGVmYXVsdFByb3BzIiwiY29uZmlndXJhdGlvbiIsIkpTT05MYXllciIsImluaXRpYWxpemVTdGF0ZSIsInN0YXRlIiwibGF5ZXJzIiwidXBkYXRlU3RhdGUiLCJwcm9wcyIsIm9sZFByb3BzIiwibGF5ZXJzQ2hhbmdlZCIsImRhdGEiLCJKU09OIiwicGFyc2UiLCJyZW5kZXJMYXllcnMiLCJsYXllck5hbWUiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVFBLGNBQVIsUUFBNkIsZUFBN0I7QUFDQSxTQUFRQyxhQUFSLFFBQTRCLHlCQUE1QjtBQUVBLE1BQU1DLFlBQVksR0FBRztBQUNuQkMsRUFBQUEsYUFBYSxFQUFFO0FBREksQ0FBckI7QUFJQSxlQUFlLE1BQU1DLFNBQU4sU0FBd0JKLGNBQXhCLENBQXVDO0FBQ3BESyxFQUFBQSxlQUFlLEdBQUc7QUFDaEIsU0FBS0MsS0FBTCxHQUFhO0FBQ1hDLE1BQUFBLE1BQU0sRUFBRTtBQURHLEtBQWI7QUFHRDs7QUFFREMsRUFBQUEsV0FBVyxDQUFDO0FBQUNDLElBQUFBLEtBQUQ7QUFBUUMsSUFBQUE7QUFBUixHQUFELEVBQW9CO0FBQzdCLFVBQU1DLGFBQWEsR0FDakJGLEtBQUssQ0FBQ0csSUFBTixLQUFlRixRQUFRLENBQUNFLElBQXhCLElBQWdDSCxLQUFLLENBQUNOLGFBQU4sS0FBd0JPLFFBQVEsQ0FBQ1AsYUFEbkU7O0FBR0EsUUFBSVEsYUFBSixFQUFtQjtBQUNqQjtBQUNBLFlBQU1DLElBQUksR0FBRyxPQUFPSCxLQUFLLENBQUNHLElBQWIsS0FBc0IsUUFBdEIsR0FBaUNDLElBQUksQ0FBQ0MsS0FBTCxDQUFXTCxLQUFLLENBQUNHLElBQWpCLENBQWpDLEdBQTBESCxLQUFLLENBQUNHLElBQTdFO0FBQ0EsV0FBS04sS0FBTCxDQUFXQyxNQUFYLEdBQW9CTixhQUFhLENBQUNXLElBQUQsRUFBT0gsS0FBSyxDQUFDTixhQUFiLENBQWpDO0FBQ0Q7QUFDRjs7QUFFRFksRUFBQUEsWUFBWSxHQUFHO0FBQ2IsV0FBTyxLQUFLVCxLQUFMLENBQVdDLE1BQWxCO0FBQ0Q7O0FBcEJtRDtBQXVCdERILFNBQVMsQ0FBQ1ksU0FBVixHQUFzQixXQUF0QjtBQUNBWixTQUFTLENBQUNGLFlBQVYsR0FBeUJBLFlBQXpCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb3NpdGVMYXllcn0gZnJvbSAnQGRlY2suZ2wvY29yZSc7XG5pbXBvcnQge2dldEpTT05MYXllcnN9IGZyb20gJy4uL3BhcnNlcnMvY29udmVydC1qc29uJztcblxuY29uc3QgZGVmYXVsdFByb3BzID0ge1xuICBjb25maWd1cmF0aW9uOiBbXVxufTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSlNPTkxheWVyIGV4dGVuZHMgQ29tcG9zaXRlTGF5ZXIge1xuICBpbml0aWFsaXplU3RhdGUoKSB7XG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIGxheWVyczogW11cbiAgICB9O1xuICB9XG5cbiAgdXBkYXRlU3RhdGUoe3Byb3BzLCBvbGRQcm9wc30pIHtcbiAgICBjb25zdCBsYXllcnNDaGFuZ2VkID1cbiAgICAgIHByb3BzLmRhdGEgIT09IG9sZFByb3BzLmRhdGEgfHwgcHJvcHMuY29uZmlndXJhdGlvbiAhPT0gb2xkUHJvcHMuY29uZmlndXJhdGlvbjtcblxuICAgIGlmIChsYXllcnNDaGFuZ2VkKSB7XG4gICAgICAvLyBPcHRpb25hbGx5IGFjY2VwdCBKU09OIHN0cmluZ3MgYnkgcGFyc2luZyB0aGVtXG4gICAgICBjb25zdCBkYXRhID0gdHlwZW9mIHByb3BzLmRhdGEgPT09ICdzdHJpbmcnID8gSlNPTi5wYXJzZShwcm9wcy5kYXRhKSA6IHByb3BzLmRhdGE7XG4gICAgICB0aGlzLnN0YXRlLmxheWVycyA9IGdldEpTT05MYXllcnMoZGF0YSwgcHJvcHMuY29uZmlndXJhdGlvbik7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyTGF5ZXJzKCkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlLmxheWVycztcbiAgfVxufVxuXG5KU09OTGF5ZXIubGF5ZXJOYW1lID0gJ0pTT05MYXllcic7XG5KU09OTGF5ZXIuZGVmYXVsdFByb3BzID0gZGVmYXVsdFByb3BzO1xuIl19 |
@@ -5,3 +5,3 @@ { | ||
"license": "MIT", | ||
"version": "6.1.0-alpha.2", | ||
"version": "6.1.0-beta.1", | ||
"publishConfig": { | ||
@@ -36,4 +36,5 @@ "access": "public" | ||
"dependencies": { | ||
"@deck.gl/core": "^6.1.0-alpha.2" | ||
"@deck.gl/core": "^6.1.0-beta.1", | ||
"d3-dsv": "^1.0.8" | ||
} | ||
} |
@@ -7,1 +7,8 @@ # @deck.gl/json | ||
<div align="center"> | ||
<div> | ||
<img src="https://raw.github.com/uber-common/deck.gl-data/master/images/docs/json-layers.gif" /> | ||
<p><i>PoC: JSON layer browser built on new @deck.gl/json module.</i></p> | ||
</div> | ||
</div> | ||
@@ -5,3 +5,3 @@ // | ||
export {default as JSONLayer} from './json-layer/json-layer'; | ||
export {default as JSONDeck} from './json-deck/json-deck'; | ||
export {default as _JSONConverter} from './json-converter/json-converter'; | ||
export {default as _JSONLayer} from './json-layer/json-layer'; |
import {CompositeLayer} from '@deck.gl/core'; | ||
import {get} from '../utils/get'; | ||
import {getJSONLayers} from '../parsers/convert-json'; | ||
const defaultProps = { | ||
layerCatalog: [] | ||
configuration: [] | ||
}; | ||
@@ -17,3 +17,3 @@ | ||
const layersChanged = | ||
props.data !== oldProps.data || props.layerCatalog !== oldProps.layerCatalog; | ||
props.data !== oldProps.data || props.configuration !== oldProps.configuration; | ||
@@ -23,46 +23,6 @@ if (layersChanged) { | ||
const data = typeof props.data === 'string' ? JSON.parse(props.data) : props.data; | ||
this.state.layers = this._getJSONLayers(data, props.layerCatalog); | ||
this.state.layers = getJSONLayers(data, props.configuration); | ||
} | ||
} | ||
_getJSONLayers(jsonLayers = [], layerCatalog) { | ||
// assert(Array.isArray(jsonLayers)); | ||
return jsonLayers.map(jsonLayer => { | ||
const Layer = layerCatalog[jsonLayer.type]; | ||
const props = this._getJSONLayerProps(jsonLayer); | ||
return Layer && new Layer(props); | ||
}); | ||
} | ||
// Replaces accessor props | ||
_getJSONLayerProps(jsonProps) { | ||
const replacedProps = {}; | ||
for (const propName in jsonProps) { | ||
// eslint-disable-line guard-for-in | ||
const propValue = jsonProps[propName]; | ||
// Handle accessors | ||
if (propName.startsWith('get')) { | ||
replacedProps[propName] = this._getJSONAccessor(propValue); | ||
} else { | ||
replacedProps[propName] = propValue; | ||
} | ||
} | ||
return replacedProps; | ||
} | ||
// Calculates an accessor function from a JSON string | ||
// '-' : x => x | ||
// 'a.b.c': x => x.a.b.c | ||
_getJSONAccessor(propValue) { | ||
if (propValue === '-') { | ||
return object => object; | ||
} | ||
if (typeof propValue === 'string') { | ||
return object => { | ||
return get(object, propValue); | ||
}; | ||
} | ||
return propValue; | ||
} | ||
renderLayers() { | ||
@@ -73,3 +33,3 @@ return this.state.layers; | ||
JSONLayer.layerName = 'jsonLayer'; | ||
JSONLayer.layerName = 'JSONLayer'; | ||
JSONLayer.defaultProps = defaultProps; |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
96790
26
929
14
2
4
+ Addedd3-dsv@^1.0.8
+ Addedcommander@2.20.3(transitive)
+ Addedd3-dsv@1.2.0(transitive)
+ Addediconv-lite@0.4.24(transitive)
+ Addedrw@1.3.3(transitive)
+ Addedsafer-buffer@2.1.2(transitive)
Updated@deck.gl/core@^6.1.0-beta.1