UNPKG

kepler.gl

Version:

kepler.gl is a webgl based application to visualize large scale location data in the browser

60 lines (57 loc) 7.04 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.getPropertyByZoom = getPropertyByZoom; exports.isDomainQuantiles = isDomainQuantiles; exports.isDomainStops = isDomainStops; exports.isIndexedField = isIndexedField; exports.pruneQuantiles = pruneQuantiles; var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")); var _d3Array = require("d3-array"); // SPDX-License-Identifier: MIT // Copyright contributors to the kepler.gl project // helper functions function isDomainStops(domain) { return (0, _typeof2["default"])(domain) === 'object' && domain !== null && Array.isArray(domain.stops) && Array.isArray(domain.z); } function isDomainQuantiles(domain) { return (0, _typeof2["default"])(domain) === 'object' && domain !== null && Array.isArray(domain.quantiles) && Array.isArray(domain.z); } function isIndexedField(field) { return Boolean(field && field.indexBy); } function getPropertyByZoom(config, defaultValue) { if (!config || !config.enabled || !Array.isArray(config.stops)) { return function () { return defaultValue; }; } var stops = config.stops; var zSteps = stops.map(function (st) { return st[0]; }); return function (zoom) { var i = (0, _d3Array.bisectLeft)(zSteps, zoom); if (i === 0) { return stops[i][1]; } return stops[i - 1][1]; }; } /** * Remove null/0 values from the bottom of the quantiles. If the column has many nulls * or 0s at the bottom of the quantiles, it will wash out color scales and produce * meaningless "no value" legend entries. We want to keep the first 0 and no others. * Operates in place. */ function pruneQuantiles(quantiles) { var firstNonZeroIdx = quantiles.findIndex(function (d) { return d !== null && d !== 0; }); if (firstNonZeroIdx > 0) { quantiles.splice(0, firstNonZeroIdx - 1); } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZDNBcnJheSIsInJlcXVpcmUiLCJpc0RvbWFpblN0b3BzIiwiZG9tYWluIiwiX3R5cGVvZjIiLCJBcnJheSIsImlzQXJyYXkiLCJzdG9wcyIsInoiLCJpc0RvbWFpblF1YW50aWxlcyIsInF1YW50aWxlcyIsImlzSW5kZXhlZEZpZWxkIiwiZmllbGQiLCJCb29sZWFuIiwiaW5kZXhCeSIsImdldFByb3BlcnR5Qnlab29tIiwiY29uZmlnIiwiZGVmYXVsdFZhbHVlIiwiZW5hYmxlZCIsInpTdGVwcyIsIm1hcCIsInN0Iiwiem9vbSIsImkiLCJiaXNlY3RMZWZ0IiwicHJ1bmVRdWFudGlsZXMiLCJmaXJzdE5vblplcm9JZHgiLCJmaW5kSW5kZXgiLCJkIiwic3BsaWNlIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3ZlY3Rvci10aWxlL2NvbW1vbi10aWxlL3RpbGUtdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHtiaXNlY3RMZWZ0fSBmcm9tICdkMy1hcnJheSc7XG5cbmltcG9ydCB7RG9tYWluU3RvcHMsIEZpZWxkIGFzIEtlcGxlckZpZWxkLCBab29tU3RvcHNDb25maWd9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IHtEb21haW5RdWFudGlsZXN9IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuXG4vLyBoZWxwZXIgZnVuY3Rpb25zXG5leHBvcnQgZnVuY3Rpb24gaXNEb21haW5TdG9wcyhkb21haW46IHVua25vd24pOiBkb21haW4gaXMgRG9tYWluU3RvcHMge1xuICByZXR1cm4gKFxuICAgIHR5cGVvZiBkb21haW4gPT09ICdvYmplY3QnICYmXG4gICAgZG9tYWluICE9PSBudWxsICYmXG4gICAgQXJyYXkuaXNBcnJheSgoZG9tYWluIGFzIGFueSkuc3RvcHMpICYmXG4gICAgQXJyYXkuaXNBcnJheSgoZG9tYWluIGFzIGFueSkueilcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRG9tYWluUXVhbnRpbGVzKGRvbWFpbjogdW5rbm93bik6IGRvbWFpbiBpcyBEb21haW5RdWFudGlsZXMge1xuICByZXR1cm4gKFxuICAgIHR5cGVvZiBkb21haW4gPT09ICdvYmplY3QnICYmXG4gICAgZG9tYWluICE9PSBudWxsICYmXG4gICAgQXJyYXkuaXNBcnJheSgoZG9tYWluIGFzIGFueSkucXVhbnRpbGVzKSAmJlxuICAgIEFycmF5LmlzQXJyYXkoKGRvbWFpbiBhcyBhbnkpLnopXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0luZGV4ZWRGaWVsZChmaWVsZD86IEtlcGxlckZpZWxkIHwgbnVsbCk6IGJvb2xlYW4ge1xuICByZXR1cm4gQm9vbGVhbihmaWVsZCAmJiBmaWVsZC5pbmRleEJ5KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFByb3BlcnR5Qnlab29tKFxuICBjb25maWc6IFpvb21TdG9wc0NvbmZpZyB8IHVuZGVmaW5lZCxcbiAgZGVmYXVsdFZhbHVlOiBudW1iZXJcbik6ICh6b29tOiBudW1iZXIpID0+IG51bWJlciB7XG4gIGlmICghY29uZmlnIHx8ICFjb25maWcuZW5hYmxlZCB8fCAhQXJyYXkuaXNBcnJheShjb25maWcuc3RvcHMpKSB7XG4gICAgcmV0dXJuICgpID0+IGRlZmF1bHRWYWx1ZTtcbiAgfVxuICBjb25zdCB7c3RvcHN9ID0gY29uZmlnO1xuICBjb25zdCB6U3RlcHMgPSBzdG9wcy5tYXAoc3QgPT4gc3RbMF0pO1xuXG4gIHJldHVybiB6b29tID0+IHtcbiAgICBjb25zdCBpID0gYmlzZWN0TGVmdCh6U3RlcHMsIHpvb20pO1xuICAgIGlmIChpID09PSAwKSB7XG4gICAgICByZXR1cm4gc3RvcHNbaV1bMV07XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0b3BzW2kgLSAxXVsxXTtcbiAgfTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgbnVsbC8wIHZhbHVlcyBmcm9tIHRoZSBib3R0b20gb2YgdGhlIHF1YW50aWxlcy4gSWYgdGhlIGNvbHVtbiBoYXMgbWFueSBudWxsc1xuICogb3IgMHMgYXQgdGhlIGJvdHRvbSBvZiB0aGUgcXVhbnRpbGVzLCBpdCB3aWxsIHdhc2ggb3V0IGNvbG9yIHNjYWxlcyBhbmQgcHJvZHVjZVxuICogbWVhbmluZ2xlc3MgXCJubyB2YWx1ZVwiIGxlZ2VuZCBlbnRyaWVzLiBXZSB3YW50IHRvIGtlZXAgdGhlIGZpcnN0IDAgYW5kIG5vIG90aGVycy5cbiAqIE9wZXJhdGVzIGluIHBsYWNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJ1bmVRdWFudGlsZXMocXVhbnRpbGVzOiBudW1iZXJbXSk6IHZvaWQge1xuICBjb25zdCBmaXJzdE5vblplcm9JZHggPSBxdWFudGlsZXMuZmluZEluZGV4KGQgPT4gZCAhPT0gbnVsbCAmJiBkICE9PSAwKTtcbiAgaWYgKGZpcnN0Tm9uWmVyb0lkeCA+IDApIHtcbiAgICBxdWFudGlsZXMuc3BsaWNlKDAsIGZpcnN0Tm9uWmVyb0lkeCAtIDEpO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUdBLElBQUFBLFFBQUEsR0FBQUMsT0FBQTtBQUhBO0FBQ0E7O0FBT0E7QUFDTyxTQUFTQyxhQUFhQSxDQUFDQyxNQUFlLEVBQXlCO0VBQ3BFLE9BQ0UsSUFBQUMsUUFBQSxhQUFPRCxNQUFNLE1BQUssUUFBUSxJQUMxQkEsTUFBTSxLQUFLLElBQUksSUFDZkUsS0FBSyxDQUFDQyxPQUFPLENBQUVILE1BQU0sQ0FBU0ksS0FBSyxDQUFDLElBQ3BDRixLQUFLLENBQUNDLE9BQU8sQ0FBRUgsTUFBTSxDQUFTSyxDQUFDLENBQUM7QUFFcEM7QUFFTyxTQUFTQyxpQkFBaUJBLENBQUNOLE1BQWUsRUFBNkI7RUFDNUUsT0FDRSxJQUFBQyxRQUFBLGFBQU9ELE1BQU0sTUFBSyxRQUFRLElBQzFCQSxNQUFNLEtBQUssSUFBSSxJQUNmRSxLQUFLLENBQUNDLE9BQU8sQ0FBRUgsTUFBTSxDQUFTTyxTQUFTLENBQUMsSUFDeENMLEtBQUssQ0FBQ0MsT0FBTyxDQUFFSCxNQUFNLENBQVNLLENBQUMsQ0FBQztBQUVwQztBQUVPLFNBQVNHLGNBQWNBLENBQUNDLEtBQTBCLEVBQVc7RUFDbEUsT0FBT0MsT0FBTyxDQUFDRCxLQUFLLElBQUlBLEtBQUssQ0FBQ0UsT0FBTyxDQUFDO0FBQ3hDO0FBRU8sU0FBU0MsaUJBQWlCQSxDQUMvQkMsTUFBbUMsRUFDbkNDLFlBQW9CLEVBQ007RUFDMUIsSUFBSSxDQUFDRCxNQUFNLElBQUksQ0FBQ0EsTUFBTSxDQUFDRSxPQUFPLElBQUksQ0FBQ2IsS0FBSyxDQUFDQyxPQUFPLENBQUNVLE1BQU0sQ0FBQ1QsS0FBSyxDQUFDLEVBQUU7SUFDOUQsT0FBTztNQUFBLE9BQU1VLFlBQVk7SUFBQTtFQUMzQjtFQUNBLElBQU9WLEtBQUssR0FBSVMsTUFBTSxDQUFmVCxLQUFLO0VBQ1osSUFBTVksTUFBTSxHQUFHWixLQUFLLENBQUNhLEdBQUcsQ0FBQyxVQUFBQyxFQUFFO0lBQUEsT0FBSUEsRUFBRSxDQUFDLENBQUMsQ0FBQztFQUFBLEVBQUM7RUFFckMsT0FBTyxVQUFBQyxJQUFJLEVBQUk7SUFDYixJQUFNQyxDQUFDLEdBQUcsSUFBQUMsbUJBQVUsRUFBQ0wsTUFBTSxFQUFFRyxJQUFJLENBQUM7SUFDbEMsSUFBSUMsQ0FBQyxLQUFLLENBQUMsRUFBRTtNQUNYLE9BQU9oQixLQUFLLENBQUNnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEI7SUFFQSxPQUFPaEIsS0FBSyxDQUFDZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztFQUN4QixDQUFDO0FBQ0g7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ08sU0FBU0UsY0FBY0EsQ0FBQ2YsU0FBbUIsRUFBUTtFQUN4RCxJQUFNZ0IsZUFBZSxHQUFHaEIsU0FBUyxDQUFDaUIsU0FBUyxDQUFDLFVBQUFDLENBQUM7SUFBQSxPQUFJQSxDQUFDLEtBQUssSUFBSSxJQUFJQSxDQUFDLEtBQUssQ0FBQztFQUFBLEVBQUM7RUFDdkUsSUFBSUYsZUFBZSxHQUFHLENBQUMsRUFBRTtJQUN2QmhCLFNBQVMsQ0FBQ21CLE1BQU0sQ0FBQyxDQUFDLEVBQUVILGVBQWUsR0FBRyxDQUFDLENBQUM7RUFDMUM7QUFDRiIsImlnbm9yZUxpc3QiOltdfQ==