@tai-kun/surrealdb
Version:
The SurrealDB SDK for JavaScript
57 lines (55 loc) • 7.25 kB
JavaScript
var __defProp = Object.defineProperty;
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
// src/data-types/standard/geometry-polygon.ts
import {
GeometryPolygonBase as Base
} from "../encodable/index.mjs";
import { isGeometryPolygon, map } from "../_internals/geometry.mjs";
import {
GeometryLine
} from "./geometry-line.mjs";
var _GeometryPolygonBase = class _GeometryPolygonBase extends Base {
get coordinates() {
return map(this.polygon, (l) => l.coordinates);
}
set coordinates(source) {
this.polygon = map(
source,
(l) => l instanceof this.types.Line ? l : new this.types.Line(l)
);
}
get exteriorRing() {
return this.polygon[0];
}
set exteriorRing(v) {
this.polygon = [v, ...this.interiorRings];
}
get interiorRings() {
return this.polygon.slice(1);
}
set interiorRings(v) {
this.polygon = [this.exteriorRing, ...v];
}
clone() {
const This = this.constructor;
return new This(map(this.polygon, (l) => l.clone()), this.types);
}
equals(other) {
return isGeometryPolygon(other) && other.polygon.length === this.polygon.length && other.polygon.every((l, i) => this.polygon[i].equals(l));
}
};
__name(_GeometryPolygonBase, "GeometryPolygonBase");
var GeometryPolygonBase = _GeometryPolygonBase;
var _GeometryPolygon = class _GeometryPolygon extends GeometryPolygonBase {
constructor(source) {
super(source, _GeometryPolygon);
}
};
__name(_GeometryPolygon, "GeometryPolygon");
_GeometryPolygon.Line = GeometryLine;
var GeometryPolygon = _GeometryPolygon;
export {
GeometryPolygon,
GeometryPolygonBase
};
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2RhdGEtdHlwZXMvc3RhbmRhcmQvZ2VvbWV0cnktcG9seWdvbi50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHtcbiAgdHlwZSBHZW9Kc29uUG9seWdvbixcbiAgR2VvbWV0cnlQb2x5Z29uQmFzZSBhcyBCYXNlLFxuICB0eXBlIEdlb21ldHJ5UG9seWdvblNvdXJjZSBhcyBHZW9tZXRyeVBvbHlnb25Tb3VyY2VCYXNlLFxuICB0eXBlIEdlb21ldHJ5UG9seWdvblR5cGVzIGFzIEdlb21ldHJ5UG9seWdvblR5cGVzQmFzZSxcbn0gZnJvbSBcIkB0YWkta3VuL3N1cnJlYWxkYi9lbmNvZGFibGUtZGF0YXR5cGVzXCI7XG5pbXBvcnQgeyB0eXBlIENvb3JkLCBpc0dlb21ldHJ5UG9seWdvbiwgbWFwIH0gZnJvbSBcIi4uL19pbnRlcm5hbHMvZ2VvbWV0cnlcIjtcbmltcG9ydCB7XG4gIEdlb21ldHJ5TGluZSxcbiAgdHlwZSBHZW9tZXRyeUxpbmVCYXNlLFxuICB0eXBlIEdlb21ldHJ5TGluZVR5cGVzLFxufSBmcm9tIFwiLi9nZW9tZXRyeS1saW5lXCI7XG5pbXBvcnQgdHlwZSB7IEdlb21ldHJ5UG9pbnRCYXNlLCBHZW9tZXRyeVBvaW50VHlwZXMgfSBmcm9tIFwiLi9nZW9tZXRyeS1wb2ludFwiO1xuXG50eXBlIFBvaW50QmFzZSA9IG5ldyhcbiAgc291cmNlOiBhbnksXG4pID0+IEdlb21ldHJ5UG9pbnRCYXNlPEdlb21ldHJ5UG9pbnRUeXBlczxDb29yZD4+O1xuXG50eXBlIExpbmVCYXNlID0gbmV3KFxuICBzb3VyY2U6IGFueSxcbikgPT4gR2VvbWV0cnlMaW5lQmFzZTxHZW9tZXRyeUxpbmVUeXBlczxQb2ludEJhc2U+PjtcblxuZXhwb3J0IHR5cGUgR2VvbWV0cnlQb2x5Z29uVHlwZXM8VExpbmUgZXh0ZW5kcyBMaW5lQmFzZSA9IExpbmVCYXNlPiA9XG4gIEdlb21ldHJ5UG9seWdvblR5cGVzQmFzZTxUTGluZT47XG5cbmV4cG9ydCB0eXBlIEdlb21ldHJ5UG9seWdvblNvdXJjZTxcbiAgVFR5cGVzIGV4dGVuZHMgR2VvbWV0cnlQb2x5Z29uVHlwZXMgPSBHZW9tZXRyeVBvbHlnb25UeXBlcyxcbj4gPSBHZW9tZXRyeVBvbHlnb25Tb3VyY2VCYXNlPFRUeXBlcz47XG5cbmV4cG9ydCB0eXBlIHsgR2VvSnNvblBvbHlnb24gfTtcblxuZXhwb3J0IGNsYXNzIEdlb21ldHJ5UG9seWdvbkJhc2U8XG4gIFRUeXBlcyBleHRlbmRzIEdlb21ldHJ5UG9seWdvblR5cGVzID0gR2VvbWV0cnlQb2x5Z29uVHlwZXMsXG4+IGV4dGVuZHMgQmFzZTxUVHlwZXM+IHtcbiAgLy8gQHRzLWV4cGVjdC1lcnJvciByZWFkb25seSBcdTMwOTJcdTU5MTZcdTMwNTlcdTMwNjBcdTMwNTFcdTMwMDJcbiAgb3ZlcnJpZGUgcG9seWdvbjogW1xuICAgIEluc3RhbmNlVHlwZTxUVHlwZXNbXCJMaW5lXCJdPixcbiAgICAuLi5JbnN0YW5jZVR5cGU8VFR5cGVzW1wiTGluZVwiXT5bXSxcbiAgXTtcblxuICBvdmVycmlkZSBnZXQgY29vcmRpbmF0ZXMoKTogW1xuICAgIEluc3RhbmNlVHlwZTxUVHlwZXNbXCJMaW5lXCJdPltcImNvb3JkaW5hdGVzXCJdLFxuICAgIC4uLkluc3RhbmNlVHlwZTxUVHlwZXNbXCJMaW5lXCJdPltcImNvb3JkaW5hdGVzXCJdW10sXG4gIF0ge1xuICAgIHJldHVybiBtYXAodGhpcy5wb2x5Z29uLCBsID0+IGwuY29vcmRpbmF0ZXMpO1xuICB9XG5cbiAgb3ZlcnJpZGUgc2V0IGNvb3JkaW5hdGVzKHNvdXJjZTogR2VvbWV0cnlQb2x5Z29uU291cmNlPFRUeXBlcz4pIHtcbiAgICB0aGlzLnBvbHlnb24gPSBtYXAoXG4gICAgICBzb3VyY2UsXG4gICAgICAobDogYW55KSA9PlxuICAgICAgICAobCBpbnN0YW5jZW9mIHRoaXMudHlwZXMuTGluZVxuICAgICAgICAgID8gbFxuICAgICAgICAgIDogbmV3IHRoaXMudHlwZXMuTGluZShsKSkgYXMgSW5zdGFuY2VUeXBlPFRUeXBlc1tcIkxpbmVcIl0+LFxuICAgICk7XG4gIH1cblxuICBnZXQgZXh0ZXJpb3JSaW5nKCk6IEluc3RhbmNlVHlwZTxUVHlwZXNbXCJMaW5lXCJdPiB7XG4gICAgcmV0dXJuIHRoaXMucG9seWdvblswXTtcbiAgfVxuXG4gIHNldCBleHRlcmlvclJpbmcodjogSW5zdGFuY2VUeXBlPFRUeXBlc1tcIkxpbmVcIl0+KSB7XG4gICAgdGhpcy5wb2x5Z29uID0gW3YsIC4uLnRoaXMuaW50ZXJpb3JSaW5nc107XG4gIH1cblxuICBnZXQgaW50ZXJpb3JSaW5ncygpOiBJbnN0YW5jZVR5cGU8VFR5cGVzW1wiTGluZVwiXT5bXSB7XG4gICAgcmV0dXJuIHRoaXMucG9seWdvbi5zbGljZSgxKTtcbiAgfVxuXG4gIHNldCBpbnRlcmlvclJpbmdzKHY6IEluc3RhbmNlVHlwZTxUVHlwZXNbXCJMaW5lXCJdPltdKSB7XG4gICAgdGhpcy5wb2x5Z29uID0gW3RoaXMuZXh0ZXJpb3JSaW5nLCAuLi52XTtcbiAgfVxuXG4gIGNsb25lKCk6IHRoaXMge1xuICAgIGNvbnN0IFRoaXMgPSB0aGlzLmNvbnN0cnVjdG9yIGFzIHR5cGVvZiBHZW9tZXRyeVBvbHlnb25CYXNlO1xuXG4gICAgcmV0dXJuIG5ldyBUaGlzKG1hcCh0aGlzLnBvbHlnb24sIGwgPT4gbC5jbG9uZSgpKSwgdGhpcy50eXBlcykgYXMgdGhpcztcbiAgfVxuXG4gIGVxdWFscyhvdGhlcjogdW5rbm93bik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc0dlb21ldHJ5UG9seWdvbjxHZW9tZXRyeVBvbHlnb25CYXNlPEdlb21ldHJ5UG9seWdvblR5cGVzPj4ob3RoZXIpXG4gICAgICAmJiBvdGhlci5wb2x5Z29uLmxlbmd0aCA9PT0gdGhpcy5wb2x5Z29uLmxlbmd0aFxuICAgICAgJiYgb3RoZXIucG9seWdvbi5ldmVyeSgobCwgaSkgPT4gdGhpcy5wb2x5Z29uW2ldIS5lcXVhbHMobCkpO1xuICB9XG59XG5cbi8qKlxuICogW0FQSSBSZWZlcmVuY2VdKGh0dHBzOi8vdGFpLWt1bi5naXRodWIuaW8vc3VycmVhbGRiLmpzL3YyL2FwaS9kYXRhL2dlb21ldHJ5LXBvbHlnb24pXG4gKi9cbmV4cG9ydCBjbGFzcyBHZW9tZXRyeVBvbHlnb25cbiAgZXh0ZW5kcyBHZW9tZXRyeVBvbHlnb25CYXNlPEdlb21ldHJ5UG9seWdvblR5cGVzPHR5cGVvZiBHZW9tZXRyeUxpbmU+Plxue1xuICBzdGF0aWMgcmVhZG9ubHkgTGluZSA9IEdlb21ldHJ5TGluZTtcblxuICBjb25zdHJ1Y3Rvcihzb3VyY2U6IEdlb21ldHJ5UG9seWdvblNvdXJjZTx0eXBlb2YgR2VvbWV0cnlQb2x5Z29uPikge1xuICAgIHN1cGVyKHNvdXJjZSwgR2VvbWV0cnlQb2x5Z29uKTtcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7OztBQUFBO0FBQUEsRUFFRSx1QkFBdUI7QUFBQSxPQUdsQjtBQUNQLFNBQXFCLG1CQUFtQixXQUFXO0FBQ25EO0FBQUEsRUFDRTtBQUFBLE9BR0s7QUFvQkEsSUFBTSx1QkFBTixNQUFNLDZCQUVILEtBQWE7QUFBQSxFQU9yQixJQUFhLGNBR1g7QUFDQSxXQUFPLElBQUksS0FBSyxTQUFTLE9BQUssRUFBRSxXQUFXO0FBQUEsRUFDN0M7QUFBQSxFQUVBLElBQWEsWUFBWSxRQUF1QztBQUM5RCxTQUFLLFVBQVU7QUFBQSxNQUNiO0FBQUEsTUFDQSxDQUFDLE1BQ0UsYUFBYSxLQUFLLE1BQU0sT0FDckIsSUFDQSxJQUFJLEtBQUssTUFBTSxLQUFLLENBQUM7QUFBQSxJQUM3QjtBQUFBLEVBQ0Y7QUFBQSxFQUVBLElBQUksZUFBNkM7QUFDL0MsV0FBTyxLQUFLLFFBQVEsQ0FBQztBQUFBLEVBQ3ZCO0FBQUEsRUFFQSxJQUFJLGFBQWEsR0FBaUM7QUFDaEQsU0FBSyxVQUFVLENBQUMsR0FBRyxHQUFHLEtBQUssYUFBYTtBQUFBLEVBQzFDO0FBQUEsRUFFQSxJQUFJLGdCQUFnRDtBQUNsRCxXQUFPLEtBQUssUUFBUSxNQUFNLENBQUM7QUFBQSxFQUM3QjtBQUFBLEVBRUEsSUFBSSxjQUFjLEdBQW1DO0FBQ25ELFNBQUssVUFBVSxDQUFDLEtBQUssY0FBYyxHQUFHLENBQUM7QUFBQSxFQUN6QztBQUFBLEVBRUEsUUFBYztBQUNaLFVBQU0sT0FBTyxLQUFLO0FBRWxCLFdBQU8sSUFBSSxLQUFLLElBQUksS0FBSyxTQUFTLE9BQUssRUFBRSxNQUFNLENBQUMsR0FBRyxLQUFLLEtBQUs7QUFBQSxFQUMvRDtBQUFBLEVBRUEsT0FBTyxPQUF5QjtBQUM5QixXQUFPLGtCQUE2RCxLQUFLLEtBQ3BFLE1BQU0sUUFBUSxXQUFXLEtBQUssUUFBUSxVQUN0QyxNQUFNLFFBQVEsTUFBTSxDQUFDLEdBQUcsTUFBTSxLQUFLLFFBQVEsQ0FBQyxFQUFHLE9BQU8sQ0FBQyxDQUFDO0FBQUEsRUFDL0Q7QUFDRjtBQW5EdUI7QUFGaEIsSUFBTSxzQkFBTjtBQTBEQSxJQUFNLG1CQUFOLE1BQU0seUJBQ0gsb0JBQ1Y7QUFBQSxFQUdFLFlBQVksUUFBdUQ7QUFDakUsVUFBTSxRQUFRLGdCQUFlO0FBQUEsRUFDL0I7QUFDRjtBQU5BO0FBRmEsaUJBR0ssT0FBTztBQUhsQixJQUFNLGtCQUFOOyIsCiAgIm5hbWVzIjogW10KfQo=