@tai-kun/surrealdb
Version:
The SurrealDB SDK for JavaScript
58 lines (56 loc) • 6.8 kB
JavaScript
var __defProp = Object.defineProperty;
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
// src/data-types/standard/geometry-line.ts
import {
GeometryLineBase as Base
} from "../encodable/index.mjs";
import { isGeometryLine, map } from "../_internals/geometry.mjs";
import {
GeometryPoint
} from "./geometry-point.mjs";
var _GeometryLineBase = class _GeometryLineBase extends Base {
get coordinates() {
return map(this.line, (p) => p.coordinates);
}
set coordinates(source) {
this.line = map(
source,
(p) => p instanceof this.types.Point ? p : new this.types.Point(p)
);
}
clone() {
const This = this.constructor;
return new This(map(this.line, (p) => p.clone()), this.types);
}
equals(other) {
return isGeometryLine(other) && other.line.length === this.line.length && other.line.every((p, i) => this.line[i].equals(p));
}
isClosed() {
return this.line[0].equals(this.line[this.line.length - 1]);
}
toClosed() {
const line = this.clone();
line.close();
return line;
}
close() {
if (!this.isClosed()) {
this.line = [...this.line, this.line[0].clone()];
}
}
};
__name(_GeometryLineBase, "GeometryLineBase");
var GeometryLineBase = _GeometryLineBase;
var _GeometryLine = class _GeometryLine extends GeometryLineBase {
constructor(source) {
super(source, _GeometryLine);
}
};
__name(_GeometryLine, "GeometryLine");
_GeometryLine.Point = GeometryPoint;
var GeometryLine = _GeometryLine;
export {
GeometryLine,
GeometryLineBase
};
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2RhdGEtdHlwZXMvc3RhbmRhcmQvZ2VvbWV0cnktbGluZS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHtcbiAgdHlwZSBHZW9Kc29uTGluZVN0cmluZyxcbiAgR2VvbWV0cnlMaW5lQmFzZSBhcyBCYXNlLFxuICB0eXBlIEdlb21ldHJ5TGluZVNvdXJjZSBhcyBHZW9tZXRyeUxpbmVTb3VyY2VCYXNlLFxuICB0eXBlIEdlb21ldHJ5TGluZVR5cGVzIGFzIEdlb21ldHJ5TGluZVR5cGVzQmFzZSxcbn0gZnJvbSBcIkB0YWkta3VuL3N1cnJlYWxkYi9lbmNvZGFibGUtZGF0YXR5cGVzXCI7XG5pbXBvcnQgeyB0eXBlIENvb3JkLCBpc0dlb21ldHJ5TGluZSwgbWFwIH0gZnJvbSBcIi4uL19pbnRlcm5hbHMvZ2VvbWV0cnlcIjtcbmltcG9ydCB7XG4gIEdlb21ldHJ5UG9pbnQsXG4gIHR5cGUgR2VvbWV0cnlQb2ludEJhc2UsXG4gIHR5cGUgR2VvbWV0cnlQb2ludFR5cGVzLFxufSBmcm9tIFwiLi9nZW9tZXRyeS1wb2ludFwiO1xuXG50eXBlIFBvaW50QmFzZSA9IG5ldyhcbiAgc291cmNlOiBhbnksXG4pID0+IEdlb21ldHJ5UG9pbnRCYXNlPEdlb21ldHJ5UG9pbnRUeXBlczxDb29yZD4+O1xuXG5leHBvcnQgdHlwZSBHZW9tZXRyeUxpbmVUeXBlczxUUG9pbnQgZXh0ZW5kcyBQb2ludEJhc2UgPSBQb2ludEJhc2U+ID1cbiAgR2VvbWV0cnlMaW5lVHlwZXNCYXNlPFRQb2ludD47XG5cbmV4cG9ydCB0eXBlIEdlb21ldHJ5TGluZVNvdXJjZTxcbiAgVFR5cGVzIGV4dGVuZHMgR2VvbWV0cnlMaW5lVHlwZXMgPSBHZW9tZXRyeUxpbmVUeXBlcyxcbj4gPSBHZW9tZXRyeUxpbmVTb3VyY2VCYXNlPFRUeXBlcz47XG5cbmV4cG9ydCB0eXBlIHsgR2VvSnNvbkxpbmVTdHJpbmcgfTtcblxuZXhwb3J0IGNsYXNzIEdlb21ldHJ5TGluZUJhc2U8VFR5cGVzIGV4dGVuZHMgR2VvbWV0cnlMaW5lVHlwZXM+XG4gIGV4dGVuZHMgQmFzZTxUVHlwZXM+XG57XG4gIC8vIEB0cy1leHBlY3QtZXJyb3IgcmVhZG9ubHkgXHUzMDkyXHU1OTE2XHUzMDU5XHUzMDYwXHUzMDUxXHUzMDAyXG4gIG92ZXJyaWRlIGxpbmU6IFtcbiAgICBJbnN0YW5jZVR5cGU8VFR5cGVzW1wiUG9pbnRcIl0+LFxuICAgIEluc3RhbmNlVHlwZTxUVHlwZXNbXCJQb2ludFwiXT4sXG4gICAgLi4uSW5zdGFuY2VUeXBlPFRUeXBlc1tcIlBvaW50XCJdPltdLFxuICBdO1xuXG4gIG92ZXJyaWRlIGdldCBjb29yZGluYXRlcygpOiBbXG4gICAgSW5zdGFuY2VUeXBlPFRUeXBlc1tcIlBvaW50XCJdPltcImNvb3JkaW5hdGVzXCJdLFxuICAgIEluc3RhbmNlVHlwZTxUVHlwZXNbXCJQb2ludFwiXT5bXCJjb29yZGluYXRlc1wiXSxcbiAgICAuLi5JbnN0YW5jZVR5cGU8VFR5cGVzW1wiUG9pbnRcIl0+W1wiY29vcmRpbmF0ZXNcIl1bXSxcbiAgXSB7XG4gICAgcmV0dXJuIG1hcCh0aGlzLmxpbmUsIHAgPT4gcC5jb29yZGluYXRlcyk7XG4gIH1cblxuICBvdmVycmlkZSBzZXQgY29vcmRpbmF0ZXMoc291cmNlOiBHZW9tZXRyeUxpbmVTb3VyY2U8VFR5cGVzPikge1xuICAgIHRoaXMubGluZSA9IG1hcChcbiAgICAgIHNvdXJjZSxcbiAgICAgIHAgPT5cbiAgICAgICAgKHAgaW5zdGFuY2VvZiB0aGlzLnR5cGVzLlBvaW50XG4gICAgICAgICAgPyBwXG4gICAgICAgICAgOiBuZXcgdGhpcy50eXBlcy5Qb2ludChwKSkgYXMgSW5zdGFuY2VUeXBlPFRUeXBlc1tcIlBvaW50XCJdPixcbiAgICApO1xuICB9XG5cbiAgY2xvbmUoKTogdGhpcyB7XG4gICAgY29uc3QgVGhpcyA9IHRoaXMuY29uc3RydWN0b3IgYXMgdHlwZW9mIEdlb21ldHJ5TGluZUJhc2U7XG5cbiAgICByZXR1cm4gbmV3IFRoaXMobWFwKHRoaXMubGluZSwgcCA9PiBwLmNsb25lKCkpLCB0aGlzLnR5cGVzKSBhcyB0aGlzO1xuICB9XG5cbiAgZXF1YWxzKG90aGVyOiB1bmtub3duKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzR2VvbWV0cnlMaW5lPEdlb21ldHJ5TGluZUJhc2U8R2VvbWV0cnlMaW5lVHlwZXM+PihvdGhlcilcbiAgICAgICYmIG90aGVyLmxpbmUubGVuZ3RoID09PSB0aGlzLmxpbmUubGVuZ3RoXG4gICAgICAmJiBvdGhlci5saW5lLmV2ZXJ5KChwLCBpKSA9PiB0aGlzLmxpbmVbaV0hLmVxdWFscyhwKSk7XG4gIH1cblxuICBpc0Nsb3NlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5saW5lWzBdLmVxdWFscyh0aGlzLmxpbmVbdGhpcy5saW5lLmxlbmd0aCAtIDFdKTtcbiAgfVxuXG4gIHRvQ2xvc2VkKCk6IHRoaXMge1xuICAgIGNvbnN0IGxpbmUgPSB0aGlzLmNsb25lKCk7XG4gICAgbGluZS5jbG9zZSgpO1xuXG4gICAgcmV0dXJuIGxpbmU7XG4gIH1cblxuICBjbG9zZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNDbG9zZWQoKSkge1xuICAgICAgdGhpcy5saW5lID0gWy4uLnRoaXMubGluZSwgdGhpcy5saW5lWzBdLmNsb25lKCldO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFtBUEkgUmVmZXJlbmNlXShodHRwczovL3RhaS1rdW4uZ2l0aHViLmlvL3N1cnJlYWxkYi5qcy92Mi9hcGkvZGF0YS9nZW9tZXRyeS1saW5lKVxuICovXG5leHBvcnQgY2xhc3MgR2VvbWV0cnlMaW5lXG4gIGV4dGVuZHMgR2VvbWV0cnlMaW5lQmFzZTxHZW9tZXRyeUxpbmVUeXBlczx0eXBlb2YgR2VvbWV0cnlQb2ludD4+XG57XG4gIHN0YXRpYyByZWFkb25seSBQb2ludCA9IEdlb21ldHJ5UG9pbnQ7XG5cbiAgY29uc3RydWN0b3Ioc291cmNlOiBHZW9tZXRyeUxpbmVTb3VyY2U8dHlwZW9mIEdlb21ldHJ5TGluZT4pIHtcbiAgICBzdXBlcihzb3VyY2UsIEdlb21ldHJ5TGluZSk7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7QUFBQTtBQUFBLEVBRUUsb0JBQW9CO0FBQUEsT0FHZjtBQUNQLFNBQXFCLGdCQUFnQixXQUFXO0FBQ2hEO0FBQUEsRUFDRTtBQUFBLE9BR0s7QUFlQSxJQUFNLG9CQUFOLE1BQU0sMEJBQ0gsS0FDVjtBQUFBLEVBUUUsSUFBYSxjQUlYO0FBQ0EsV0FBTyxJQUFJLEtBQUssTUFBTSxPQUFLLEVBQUUsV0FBVztBQUFBLEVBQzFDO0FBQUEsRUFFQSxJQUFhLFlBQVksUUFBb0M7QUFDM0QsU0FBSyxPQUFPO0FBQUEsTUFDVjtBQUFBLE1BQ0EsT0FDRyxhQUFhLEtBQUssTUFBTSxRQUNyQixJQUNBLElBQUksS0FBSyxNQUFNLE1BQU0sQ0FBQztBQUFBLElBQzlCO0FBQUEsRUFDRjtBQUFBLEVBRUEsUUFBYztBQUNaLFVBQU0sT0FBTyxLQUFLO0FBRWxCLFdBQU8sSUFBSSxLQUFLLElBQUksS0FBSyxNQUFNLE9BQUssRUFBRSxNQUFNLENBQUMsR0FBRyxLQUFLLEtBQUs7QUFBQSxFQUM1RDtBQUFBLEVBRUEsT0FBTyxPQUF5QjtBQUM5QixXQUFPLGVBQW9ELEtBQUssS0FDM0QsTUFBTSxLQUFLLFdBQVcsS0FBSyxLQUFLLFVBQ2hDLE1BQU0sS0FBSyxNQUFNLENBQUMsR0FBRyxNQUFNLEtBQUssS0FBSyxDQUFDLEVBQUcsT0FBTyxDQUFDLENBQUM7QUFBQSxFQUN6RDtBQUFBLEVBRUEsV0FBb0I7QUFDbEIsV0FBTyxLQUFLLEtBQUssQ0FBQyxFQUFFLE9BQU8sS0FBSyxLQUFLLEtBQUssS0FBSyxTQUFTLENBQUMsQ0FBQztBQUFBLEVBQzVEO0FBQUEsRUFFQSxXQUFpQjtBQUNmLFVBQU0sT0FBTyxLQUFLLE1BQU07QUFDeEIsU0FBSyxNQUFNO0FBRVgsV0FBTztBQUFBLEVBQ1Q7QUFBQSxFQUVBLFFBQWM7QUFDWixRQUFJLENBQUMsS0FBSyxTQUFTLEdBQUc7QUFDcEIsV0FBSyxPQUFPLENBQUMsR0FBRyxLQUFLLE1BQU0sS0FBSyxLQUFLLENBQUMsRUFBRSxNQUFNLENBQUM7QUFBQSxJQUNqRDtBQUFBLEVBQ0Y7QUFDRjtBQXREQTtBQUZPLElBQU0sbUJBQU47QUE2REEsSUFBTSxnQkFBTixNQUFNLHNCQUNILGlCQUNWO0FBQUEsRUFHRSxZQUFZLFFBQWlEO0FBQzNELFVBQU0sUUFBUSxhQUFZO0FBQUEsRUFDNUI7QUFDRjtBQU5BO0FBRmEsY0FHSyxRQUFRO0FBSG5CLElBQU0sZUFBTjsiLAogICJuYW1lcyI6IFtdCn0K