kepler.gl.geoiq
Version:
kepler.gl is a webgl based application to visualize large scale location data in the browser
108 lines (94 loc) • 12.3 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(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
var Schema = exports["default"] = /*#__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(_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;
}();
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY2hlbWFzL3NjaGVtYS5qcyJdLCJuYW1lcyI6WyJTY2hlbWEiLCJ2ZXJzaW9uIiwia2V5IiwicHJvcGVydGllcyIsIm5vZGUiLCJwYXJlbnRzIiwiYWNjdW11bGF0b3IiLCJfZ2V0UHJvcGVydHlWYWx1ZUZyb21TY2hlbWEiLCJvcGVyYXRpb24iLCJpbnRlcm5hbCIsIk9iamVjdCIsImtleXMiLCJyZWR1Y2UiLCJhY2N1IiwiQ1VSUkVOVF9WRVJTSU9OIiwiX2lzQ3VycmVudFZlcnNpb24iLCJDb25zb2xlIiwiZXJyb3IiLCJvdXRkYXRlZFZlcnNpb25FcnJvciIsInNhdmUiLCJzYXZlUHJvcGVydGllc09yQXBwbHlTY2hlbWEiLCJsb2FkIiwibG9hZFByb3BlcnRpZXNPckFwcGx5U2NoZW1hIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQW9CQTs7QUFFQTs7Ozs7O0lBRXFCQSxNO0FBQ25CLG9CQUE2QztBQUFBLG1GQUFKLEVBQUk7QUFBQSxRQUFoQ0MsT0FBZ0MsUUFBaENBLE9BQWdDO0FBQUEsUUFBdkJDLEdBQXVCLFFBQXZCQSxHQUF1QjtBQUFBLFFBQWxCQyxVQUFrQixRQUFsQkEsVUFBa0I7O0FBQUE7QUFDM0MsU0FBS0YsT0FBTCxHQUFlQSxPQUFmO0FBQ0EsU0FBS0UsVUFBTCxHQUFrQkEsVUFBbEI7QUFDQSxTQUFLRCxHQUFMLEdBQVdBLEdBQVg7QUFDRDs7OztXQUVELHFDQUE0QkUsSUFBNUIsRUFBNkQ7QUFBQSxVQUEzQkMsT0FBMkIsdUVBQWpCLEVBQWlCO0FBQUEsVUFBYkMsV0FBYTtBQUMzRCxhQUFPLEtBQUtDLDJCQUFMLENBQWlDLE1BQWpDLEVBQXlDSCxJQUF6QyxFQUErQ0MsT0FBL0MsRUFBd0RDLFdBQXhELENBQVA7QUFDRDs7O1dBRUQscUNBQTRCRixJQUE1QixFQUE2RDtBQUFBLFVBQTNCQyxPQUEyQix1RUFBakIsRUFBaUI7QUFBQSxVQUFiQyxXQUFhO0FBQzNELGFBQU8sS0FBS0MsMkJBQUwsQ0FBaUMsTUFBakMsRUFBeUNILElBQXpDLEVBQStDQyxPQUEvQyxFQUF3REMsV0FBeEQsQ0FBUDtBQUNEOzs7V0FFRCxxQ0FBNEJFLFNBQTVCLEVBQXVDSixJQUF2QyxFQUF3RTtBQUFBOztBQUFBLFVBQTNCQyxPQUEyQix1RUFBakIsRUFBaUI7QUFBQSxVQUFiQyxXQUFhO0FBQ3RFLFVBQU1HLFFBQVEsY0FBT0QsU0FBUCxDQUFkO0FBQ0Esa0RBQ0csS0FBS04sR0FEUixFQUNjLEtBQUtDLFVBQUwsR0FDUk8sTUFBTSxDQUFDQyxJQUFQLENBQVksS0FBS1IsVUFBakIsRUFBNkJTLE1BQTdCLENBQW9DLFVBQUNDLElBQUQsRUFBT1gsR0FBUCxFQUFlO0FBQ2pELCtDQUNLVyxJQURMLEdBRU1YLEdBQUcsSUFBSUUsSUFBUCxHQUNBLEtBQUksQ0FBQ0QsVUFBTCxDQUFnQkQsR0FBaEIsSUFDRTtBQUNBLFFBQUEsS0FBSSxDQUFDQyxVQUFMLENBQWdCRCxHQUFoQixFQUFxQk0sU0FBckIsSUFDRTtBQUNBLFFBQUEsS0FBSSxDQUFDTCxVQUFMLENBQWdCRCxHQUFoQixFQUFxQk8sUUFBckIsRUFDRUwsSUFBSSxDQUFDRixHQUFELENBRE4sZ0RBRU1HLE9BRk4sSUFFZUQsSUFGZixJQUdFUyxJQUhGLENBRkYsR0FPRSxFQVRKLHdDQVVJWCxHQVZKLEVBVVVFLElBQUksQ0FBQ0YsR0FBRCxDQVZkLENBREEsR0FZQSxFQWROO0FBZ0JELE9BakJELEVBaUJHLEVBakJILENBRFEsR0FtQlJFLElBcEJOO0FBc0JEOzs7V0FFRCw2QkFBb0I7QUFDbEIsYUFBTyxLQUFLSCxPQUFMLEtBQWlCYSx5QkFBeEI7QUFDRDs7O1dBRUQsZ0NBQXVCO0FBQ3JCLFVBQUksQ0FBQyxLQUFLQyxpQkFBTCxFQUFMLEVBQStCO0FBQzdCQyx3QkFBUUMsS0FBUixXQUNLLEtBQUtmLEdBRFYsY0FFSSxLQUFLRCxPQUZUO0FBS0Q7QUFDRjs7O1dBRUQsaUJBQWU7QUFDYjtBQUNBLFdBQUtpQixvQkFBTDtBQUNBLGFBQU8sS0FBS0MsSUFBTCx1QkFBUDtBQUNEOzs7V0FFRCxjQUFLZixJQUFMLEVBQTJDO0FBQUEsVUFBaENDLE9BQWdDLHVFQUF0QixFQUFzQjtBQUFBLFVBQWxCQyxXQUFrQix1RUFBSixFQUFJO0FBQ3pDLGFBQU8sS0FBS2MsMkJBQUwsQ0FBaUNoQixJQUFqQyxFQUF1Q0MsT0FBdkMsRUFBZ0RDLFdBQWhELENBQVA7QUFDRDs7O1dBRUQsaUJBQWU7QUFDYixhQUFPLEtBQUtlLElBQUwsdUJBQVA7QUFDRDs7O1dBRUQsY0FBS2pCLElBQUwsRUFBMkM7QUFBQSxVQUFoQ0MsT0FBZ0MsdUVBQXRCLEVBQXNCO0FBQUEsVUFBbEJDLFdBQWtCLHVFQUFKLEVBQUk7QUFDekMsYUFBTyxLQUFLZ0IsMkJBQUwsQ0FBaUNsQixJQUFqQyxFQUF1Q0MsT0FBdkMsRUFBZ0RDLFdBQWhELENBQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMyBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCB7Y29uc29sZSBhcyBDb25zb2xlfSBmcm9tICdnbG9iYWwvd2luZG93JztcblxuaW1wb3J0IHtDVVJSRU5UX1ZFUlNJT059IGZyb20gJy4vdmVyc2lvbnMnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTY2hlbWEge1xuICBjb25zdHJ1Y3Rvcih7dmVyc2lvbiwga2V5LCBwcm9wZXJ0aWVzfSA9IHt9KSB7XG4gICAgdGhpcy52ZXJzaW9uID0gdmVyc2lvbjtcbiAgICB0aGlzLnByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzO1xuICAgIHRoaXMua2V5ID0ga2V5O1xuICB9XG5cbiAgbG9hZFByb3BlcnRpZXNPckFwcGx5U2NoZW1hKG5vZGUsIHBhcmVudHMgPSBbXSwgYWNjdW11bGF0b3IpIHtcbiAgICByZXR1cm4gdGhpcy5fZ2V0UHJvcGVydHlWYWx1ZUZyb21TY2hlbWEoJ2xvYWQnLCBub2RlLCBwYXJlbnRzLCBhY2N1bXVsYXRvcik7XG4gIH1cblxuICBzYXZlUHJvcGVydGllc09yQXBwbHlTY2hlbWEobm9kZSwgcGFyZW50cyA9IFtdLCBhY2N1bXVsYXRvcikge1xuICAgIHJldHVybiB0aGlzLl9nZXRQcm9wZXJ0eVZhbHVlRnJvbVNjaGVtYSgnc2F2ZScsIG5vZGUsIHBhcmVudHMsIGFjY3VtdWxhdG9yKTtcbiAgfVxuXG4gIF9nZXRQcm9wZXJ0eVZhbHVlRnJvbVNjaGVtYShvcGVyYXRpb24sIG5vZGUsIHBhcmVudHMgPSBbXSwgYWNjdW11bGF0b3IpIHtcbiAgICBjb25zdCBpbnRlcm5hbCA9IGBfJHtvcGVyYXRpb259YDtcbiAgICByZXR1cm4ge1xuICAgICAgW3RoaXMua2V5XTogdGhpcy5wcm9wZXJ0aWVzXG4gICAgICAgID8gT2JqZWN0LmtleXModGhpcy5wcm9wZXJ0aWVzKS5yZWR1Y2UoKGFjY3UsIGtleSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgLi4uYWNjdSxcbiAgICAgICAgICAgICAgLi4uKGtleSBpbiBub2RlXG4gICAgICAgICAgICAgICAgPyB0aGlzLnByb3BlcnRpZXNba2V5XVxuICAgICAgICAgICAgICAgICAgPyAvLyBpZiBpdCdzIGFub3RoZXIgc2NoZW1hXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcGVydGllc1trZXldW29wZXJhdGlvbl1cbiAgICAgICAgICAgICAgICAgICAgPyAvLyBjYWxsIHNhdmUgb3IgbG9hZFxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcGVydGllc1trZXldW2ludGVybmFsXShcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vZGVba2V5XSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFsuLi5wYXJlbnRzLCBub2RlXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjY3VcbiAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIDoge31cbiAgICAgICAgICAgICAgICAgIDoge1trZXldOiBub2RlW2tleV19XG4gICAgICAgICAgICAgICAgOiB7fSlcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSwge30pXG4gICAgICAgIDogbm9kZVxuICAgIH07XG4gIH1cblxuICBfaXNDdXJyZW50VmVyc2lvbigpIHtcbiAgICByZXR1cm4gdGhpcy52ZXJzaW9uID09PSBDVVJSRU5UX1ZFUlNJT047XG4gIH1cblxuICBvdXRkYXRlZFZlcnNpb25FcnJvcigpIHtcbiAgICBpZiAoIXRoaXMuX2lzQ3VycmVudFZlcnNpb24oKSkge1xuICAgICAgQ29uc29sZS5lcnJvcihcbiAgICAgICAgYCR7dGhpcy5rZXl9ICR7XG4gICAgICAgICAgdGhpcy52ZXJzaW9uXG4gICAgICAgIH0gaXMgb3V0ZGF0ZWQuIHNhdmUgc2hvdWxkIG5vdCBiZSBjYWxsZWQgYW55bW9yZWBcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgX3NhdmUoLi4uYXJncykge1xuICAgIC8vIG1ha2Ugc3VyZSBub3RoaW5nIGlzIHNhdmVkIHRvIGFuIG91dGRhdGVkIHZlcnNpb25cbiAgICB0aGlzLm91dGRhdGVkVmVyc2lvbkVycm9yKCk7XG4gICAgcmV0dXJuIHRoaXMuc2F2ZSguLi5hcmdzKTtcbiAgfVxuXG4gIHNhdmUobm9kZSwgcGFyZW50cyA9IFtdLCBhY2N1bXVsYXRvciA9IHt9KSB7XG4gICAgcmV0dXJuIHRoaXMuc2F2ZVByb3BlcnRpZXNPckFwcGx5U2NoZW1hKG5vZGUsIHBhcmVudHMsIGFjY3VtdWxhdG9yKTtcbiAgfVxuXG4gIF9sb2FkKC4uLmFyZ3MpIHtcbiAgICByZXR1cm4gdGhpcy5sb2FkKC4uLmFyZ3MpO1xuICB9XG5cbiAgbG9hZChub2RlLCBwYXJlbnRzID0gW10sIGFjY3VtdWxhdG9yID0ge30pIHtcbiAgICByZXR1cm4gdGhpcy5sb2FkUHJvcGVydGllc09yQXBwbHlTY2hlbWEobm9kZSwgcGFyZW50cywgYWNjdW11bGF0b3IpO1xuICB9XG59XG4iXX0=