UNPKG

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
"use strict"; 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