kepler.gl
Version:
kepler.gl is a webgl based application to visualize large scale location data in the browser
112 lines (97 loc) • 12.2 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _window = require("global/window");
var _versions = require("./versions");
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; }
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; }
var Schema =
/*#__PURE__*/
function () {
function Schema() {
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
version = _ref.version,
key = _ref.key,
properties = _ref.properties;
(0, _classCallCheck2["default"])(this, Schema);
this.version = version;
this.properties = properties;
this.key = key;
}
(0, _createClass2["default"])(Schema, [{
key: "loadPropertiesOrApplySchema",
value: function loadPropertiesOrApplySchema(node) {
var parents = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
var accumulator = arguments.length > 2 ? arguments[2] : undefined;
return this._getPropertyValueFromSchema('load', node, parents, accumulator);
}
}, {
key: "savePropertiesOrApplySchema",
value: function savePropertiesOrApplySchema(node) {
var parents = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
var accumulator = arguments.length > 2 ? arguments[2] : undefined;
return this._getPropertyValueFromSchema('save', node, parents, accumulator);
}
}, {
key: "_getPropertyValueFromSchema",
value: function _getPropertyValueFromSchema(operation, node) {
var _this = this;
var parents = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
var accumulator = arguments.length > 3 ? arguments[3] : undefined;
var internal = "_".concat(operation);
return (0, _defineProperty2["default"])({}, this.key, this.properties ? Object.keys(this.properties).reduce(function (accu, key) {
return _objectSpread({}, accu, {}, key in node ? _this.properties[key] ? // if it's another schema
_this.properties[key][operation] ? // call save or load
_this.properties[key][internal](node[key], [].concat((0, _toConsumableArray2["default"])(parents), [node]), accu) : {} : (0, _defineProperty2["default"])({}, key, node[key]) : {});
}, {}) : node);
}
}, {
key: "_isCurrentVersion",
value: function _isCurrentVersion() {
return this.version === _versions.CURRENT_VERSION;
}
}, {
key: "outdatedVersionError",
value: function outdatedVersionError() {
if (!this._isCurrentVersion()) {
_window.console.error("".concat(this.key, " ").concat(this.version, " is outdated. save should not be called anymore"));
}
}
}, {
key: "_save",
value: function _save() {
// make sure nothing is saved to an outdated version
this.outdatedVersionError();
return this.save.apply(this, arguments);
}
}, {
key: "save",
value: function save(node) {
var parents = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
var accumulator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
return this.savePropertiesOrApplySchema(node, parents, accumulator);
}
}, {
key: "_load",
value: function _load() {
return this.load.apply(this, arguments);
}
}, {
key: "load",
value: function load(node) {
var parents = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
var accumulator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
return this.loadPropertiesOrApplySchema(node, parents, accumulator);
}
}]);
return Schema;
}();
exports["default"] = Schema;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY2hlbWFzL3NjaGVtYS5qcyJdLCJuYW1lcyI6WyJTY2hlbWEiLCJ2ZXJzaW9uIiwia2V5IiwicHJvcGVydGllcyIsIm5vZGUiLCJwYXJlbnRzIiwiYWNjdW11bGF0b3IiLCJfZ2V0UHJvcGVydHlWYWx1ZUZyb21TY2hlbWEiLCJvcGVyYXRpb24iLCJpbnRlcm5hbCIsIk9iamVjdCIsImtleXMiLCJyZWR1Y2UiLCJhY2N1IiwiQ1VSUkVOVF9WRVJTSU9OIiwiX2lzQ3VycmVudFZlcnNpb24iLCJDb25zb2xlIiwiZXJyb3IiLCJvdXRkYXRlZFZlcnNpb25FcnJvciIsInNhdmUiLCJzYXZlUHJvcGVydGllc09yQXBwbHlTY2hlbWEiLCJsb2FkIiwibG9hZFByb3BlcnRpZXNPckFwcGx5U2NoZW1hIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQW9CQTs7QUFFQTs7Ozs7O0lBRXFCQSxNOzs7QUFDbkIsb0JBQTZDO0FBQUEsbUZBQUosRUFBSTtBQUFBLFFBQWhDQyxPQUFnQyxRQUFoQ0EsT0FBZ0M7QUFBQSxRQUF2QkMsR0FBdUIsUUFBdkJBLEdBQXVCO0FBQUEsUUFBbEJDLFVBQWtCLFFBQWxCQSxVQUFrQjs7QUFBQTtBQUMzQyxTQUFLRixPQUFMLEdBQWVBLE9BQWY7QUFDQSxTQUFLRSxVQUFMLEdBQWtCQSxVQUFsQjtBQUNBLFNBQUtELEdBQUwsR0FBV0EsR0FBWDtBQUNEOzs7O2dEQUUyQkUsSSxFQUFpQztBQUFBLFVBQTNCQyxPQUEyQix1RUFBakIsRUFBaUI7QUFBQSxVQUFiQyxXQUFhO0FBQzNELGFBQU8sS0FBS0MsMkJBQUwsQ0FBaUMsTUFBakMsRUFBeUNILElBQXpDLEVBQStDQyxPQUEvQyxFQUF3REMsV0FBeEQsQ0FBUDtBQUNEOzs7Z0RBRTJCRixJLEVBQWlDO0FBQUEsVUFBM0JDLE9BQTJCLHVFQUFqQixFQUFpQjtBQUFBLFVBQWJDLFdBQWE7QUFDM0QsYUFBTyxLQUFLQywyQkFBTCxDQUFpQyxNQUFqQyxFQUF5Q0gsSUFBekMsRUFBK0NDLE9BQS9DLEVBQXdEQyxXQUF4RCxDQUFQO0FBQ0Q7OztnREFFMkJFLFMsRUFBV0osSSxFQUFpQztBQUFBOztBQUFBLFVBQTNCQyxPQUEyQix1RUFBakIsRUFBaUI7QUFBQSxVQUFiQyxXQUFhO0FBQ3RFLFVBQU1HLFFBQVEsY0FBT0QsU0FBUCxDQUFkO0FBQ0Esa0RBQ0csS0FBS04sR0FEUixFQUNjLEtBQUtDLFVBQUwsR0FDUk8sTUFBTSxDQUFDQyxJQUFQLENBQVksS0FBS1IsVUFBakIsRUFBNkJTLE1BQTdCLENBQW9DLFVBQUNDLElBQUQsRUFBT1gsR0FBUCxFQUFlO0FBQ2pELGlDQUNLVyxJQURMLE1BRU1YLEdBQUcsSUFBSUUsSUFBUCxHQUNBLEtBQUksQ0FBQ0QsVUFBTCxDQUFnQkQsR0FBaEIsSUFDRTtBQUNBLFFBQUEsS0FBSSxDQUFDQyxVQUFMLENBQWdCRCxHQUFoQixFQUFxQk0sU0FBckIsSUFDRTtBQUNBLFFBQUEsS0FBSSxDQUFDTCxVQUFMLENBQWdCRCxHQUFoQixFQUFxQk8sUUFBckIsRUFBK0JMLElBQUksQ0FBQ0YsR0FBRCxDQUFuQyxnREFBOENHLE9BQTlDLElBQXVERCxJQUF2RCxJQUE4RFMsSUFBOUQsQ0FGRixHQUdFLEVBTEosd0NBTUlYLEdBTkosRUFNVUUsSUFBSSxDQUFDRixHQUFELENBTmQsQ0FEQSxHQVFBLEVBVk47QUFZRCxPQWJELEVBYUcsRUFiSCxDQURRLEdBZVJFLElBaEJOO0FBa0JEOzs7d0NBRW1CO0FBQ2xCLGFBQU8sS0FBS0gsT0FBTCxLQUFpQmEseUJBQXhCO0FBQ0Q7OzsyQ0FFc0I7QUFDckIsVUFBSSxDQUFDLEtBQUtDLGlCQUFMLEVBQUwsRUFBK0I7QUFDN0JDLHdCQUFRQyxLQUFSLFdBQWlCLEtBQUtmLEdBQXRCLGNBQTZCLEtBQUtELE9BQWxDO0FBQ0Q7QUFDRjs7OzRCQUVjO0FBQ2I7QUFDQSxXQUFLaUIsb0JBQUw7QUFDQSxhQUFPLEtBQUtDLElBQUwsdUJBQVA7QUFDRDs7O3lCQUVJZixJLEVBQXNDO0FBQUEsVUFBaENDLE9BQWdDLHVFQUF0QixFQUFzQjtBQUFBLFVBQWxCQyxXQUFrQix1RUFBSixFQUFJO0FBQ3pDLGFBQU8sS0FBS2MsMkJBQUwsQ0FBaUNoQixJQUFqQyxFQUF1Q0MsT0FBdkMsRUFBZ0RDLFdBQWhELENBQVA7QUFDRDs7OzRCQUVjO0FBQ2IsYUFBTyxLQUFLZSxJQUFMLHVCQUFQO0FBQ0Q7Ozt5QkFFSWpCLEksRUFBc0M7QUFBQSxVQUFoQ0MsT0FBZ0MsdUVBQXRCLEVBQXNCO0FBQUEsVUFBbEJDLFdBQWtCLHVFQUFKLEVBQUk7QUFDekMsYUFBTyxLQUFLZ0IsMkJBQUwsQ0FBaUNsQixJQUFqQyxFQUF1Q0MsT0FBdkMsRUFBZ0RDLFdBQWhELENBQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMCBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCB7Y29uc29sZSBhcyBDb25zb2xlfSBmcm9tICdnbG9iYWwvd2luZG93JztcblxuaW1wb3J0IHtDVVJSRU5UX1ZFUlNJT059IGZyb20gJy4vdmVyc2lvbnMnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTY2hlbWEge1xuICBjb25zdHJ1Y3Rvcih7dmVyc2lvbiwga2V5LCBwcm9wZXJ0aWVzfSA9IHt9KSB7XG4gICAgdGhpcy52ZXJzaW9uID0gdmVyc2lvbjtcbiAgICB0aGlzLnByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzO1xuICAgIHRoaXMua2V5ID0ga2V5O1xuICB9XG5cbiAgbG9hZFByb3BlcnRpZXNPckFwcGx5U2NoZW1hKG5vZGUsIHBhcmVudHMgPSBbXSwgYWNjdW11bGF0b3IpIHtcbiAgICByZXR1cm4gdGhpcy5fZ2V0UHJvcGVydHlWYWx1ZUZyb21TY2hlbWEoJ2xvYWQnLCBub2RlLCBwYXJlbnRzLCBhY2N1bXVsYXRvcik7XG4gIH1cblxuICBzYXZlUHJvcGVydGllc09yQXBwbHlTY2hlbWEobm9kZSwgcGFyZW50cyA9IFtdLCBhY2N1bXVsYXRvcikge1xuICAgIHJldHVybiB0aGlzLl9nZXRQcm9wZXJ0eVZhbHVlRnJvbVNjaGVtYSgnc2F2ZScsIG5vZGUsIHBhcmVudHMsIGFjY3VtdWxhdG9yKTtcbiAgfVxuXG4gIF9nZXRQcm9wZXJ0eVZhbHVlRnJvbVNjaGVtYShvcGVyYXRpb24sIG5vZGUsIHBhcmVudHMgPSBbXSwgYWNjdW11bGF0b3IpIHtcbiAgICBjb25zdCBpbnRlcm5hbCA9IGBfJHtvcGVyYXRpb259YDtcbiAgICByZXR1cm4ge1xuICAgICAgW3RoaXMua2V5XTogdGhpcy5wcm9wZXJ0aWVzXG4gICAgICAgID8gT2JqZWN0LmtleXModGhpcy5wcm9wZXJ0aWVzKS5yZWR1Y2UoKGFjY3UsIGtleSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgLi4uYWNjdSxcbiAgICAgICAgICAgICAgLi4uKGtleSBpbiBub2RlXG4gICAgICAgICAgICAgICAgPyB0aGlzLnByb3BlcnRpZXNba2V5XVxuICAgICAgICAgICAgICAgICAgPyAvLyBpZiBpdCdzIGFub3RoZXIgc2NoZW1hXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcGVydGllc1trZXldW29wZXJhdGlvbl1cbiAgICAgICAgICAgICAgICAgICAgPyAvLyBjYWxsIHNhdmUgb3IgbG9hZFxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcGVydGllc1trZXldW2ludGVybmFsXShub2RlW2tleV0sIFsuLi5wYXJlbnRzLCBub2RlXSwgYWNjdSlcbiAgICAgICAgICAgICAgICAgICAgOiB7fVxuICAgICAgICAgICAgICAgICAgOiB7W2tleV06IG5vZGVba2V5XX1cbiAgICAgICAgICAgICAgICA6IHt9KVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9LCB7fSlcbiAgICAgICAgOiBub2RlXG4gICAgfTtcbiAgfVxuXG4gIF9pc0N1cnJlbnRWZXJzaW9uKCkge1xuICAgIHJldHVybiB0aGlzLnZlcnNpb24gPT09IENVUlJFTlRfVkVSU0lPTjtcbiAgfVxuXG4gIG91dGRhdGVkVmVyc2lvbkVycm9yKCkge1xuICAgIGlmICghdGhpcy5faXNDdXJyZW50VmVyc2lvbigpKSB7XG4gICAgICBDb25zb2xlLmVycm9yKGAke3RoaXMua2V5fSAke3RoaXMudmVyc2lvbn0gaXMgb3V0ZGF0ZWQuIHNhdmUgc2hvdWxkIG5vdCBiZSBjYWxsZWQgYW55bW9yZWApO1xuICAgIH1cbiAgfVxuXG4gIF9zYXZlKC4uLmFyZ3MpIHtcbiAgICAvLyBtYWtlIHN1cmUgbm90aGluZyBpcyBzYXZlZCB0byBhbiBvdXRkYXRlZCB2ZXJzaW9uXG4gICAgdGhpcy5vdXRkYXRlZFZlcnNpb25FcnJvcigpO1xuICAgIHJldHVybiB0aGlzLnNhdmUoLi4uYXJncyk7XG4gIH1cblxuICBzYXZlKG5vZGUsIHBhcmVudHMgPSBbXSwgYWNjdW11bGF0b3IgPSB7fSkge1xuICAgIHJldHVybiB0aGlzLnNhdmVQcm9wZXJ0aWVzT3JBcHBseVNjaGVtYShub2RlLCBwYXJlbnRzLCBhY2N1bXVsYXRvcik7XG4gIH1cblxuICBfbG9hZCguLi5hcmdzKSB7XG4gICAgcmV0dXJuIHRoaXMubG9hZCguLi5hcmdzKTtcbiAgfVxuXG4gIGxvYWQobm9kZSwgcGFyZW50cyA9IFtdLCBhY2N1bXVsYXRvciA9IHt9KSB7XG4gICAgcmV0dXJuIHRoaXMubG9hZFByb3BlcnRpZXNPckFwcGx5U2NoZW1hKG5vZGUsIHBhcmVudHMsIGFjY3VtdWxhdG9yKTtcbiAgfVxufVxuIl19
;