diff --git a/package.json b/package.json
index 2ddb336a5..4cc2b9391 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
"name": "ole",
"license": "BSD-2-Clause",
"description": "OpenLayers Editor",
- "version": "2.4.5",
+ "version": "3.0.0-beta.5",
"main": "build/index.js",
"dependencies": {},
"peerDependencies": {
@@ -41,7 +41,7 @@
"vitest": "^2.1.1"
},
"scripts": {
- "build": "shx rm -rf build && tsc --project config/tsconfig-build.json && esbuild build/index.js --bundle --global-name=ole --loader:.svg=dataurl --minify --outfile=build/bundle.js",
+ "build": "shx rm -rf build && tsc --project config/tsconfig-build.json && shx cp -r src/img build/img && esbuild build/index.js --bundle --global-name=ole --loader:.svg=dataurl --minify --outfile=build/bundle.js && node tasks/prepare-package.mjs",
"cy:open": "cypress open",
"cy:run": "cypress run --browser chrome",
"cy:test": "start-server-and-test start http://127.0.0.1:8000 cy:run",
@@ -50,9 +50,9 @@
"format": "prettier --write 'cypress/integration/*.js' 'src/**/*.js' && eslint 'src/**/*.js' --fix && stylelint 'style/**/*.css' 'src/**/*.css' 'src/**/*.scss' --fix",
"lint": "ESLINT_USE_FLAT_CONFIG=false eslint 'cypress/e2e/**/*.js' 'src/**/*.js' && stylelint 'style/**/*.css' 'src/**/*.css' 'src/**/*.scss'",
"prepare": "is-ci || husky",
- "publish:beta": "yarn release -- --prerelease beta --skip.changelog && yarn build && git push origin HEAD && git push --tags && yarn publish --tag beta",
+ "publish:beta": "yarn release -- --prerelease beta --skip.changelog && yarn build && git push origin HEAD && git push --tags && cd build && yarn publish --tag beta",
"publish:beta:dryrun": "yarn release -- --prerelease beta --dry-run --skip.changelog",
- "publish:public": "yarn release && yarn build && git push origin HEAD && git push --tags && yarn publish",
+ "publish:public": "yarn release && yarn build && git push origin HEAD && git push --tags && cd build && yarn publish",
"publish:public:dryrun": "yarn release --dry-run",
"release": "standard-version",
"start": "esbuild src/index.js --bundle --global-name=ole --loader:.svg=dataurl --minify --outfile=index.js --serve=localhost:8000 --servedir=. --sourcemap --watch=forever",
diff --git a/src/control/buffer.js b/src/control/buffer.js
index 53dfde476..28bc0ffd6 100644
--- a/src/control/buffer.js
+++ b/src/control/buffer.js
@@ -11,7 +11,7 @@ import {
} from 'ol/geom';
import Select from 'ol/interaction/Select';
import Control from './control';
-import bufferSVG from '../../img/buffer.svg';
+import bufferSVG from '../img/buffer.svg';
/**
* Control for creating buffers.
diff --git a/src/control/cad.js b/src/control/cad.js
index 0f783a7ba..7bc05f947 100644
--- a/src/control/cad.js
+++ b/src/control/cad.js
@@ -7,7 +7,7 @@ import { Pointer, Snap } from 'ol/interaction';
import { OverlayOp } from 'jsts/org/locationtech/jts/operation/overlay';
import { getUid } from 'ol/util';
import Control from './control';
-import cadSVG from '../../img/cad.svg';
+import cadSVG from '../img/cad.svg';
import { SnapEvent, SnapEventType } from '../event';
import {
parser,
@@ -56,6 +56,7 @@ class CadControl extends Control {
* must be an array containing the following values 'ortho', 'segment', 'vh'. Default is ['ortho', 'segment', 'vh', 'custom'].
* @param {Number} [options.snapPointDist] Distance of the
* snap points (default is 30).
+ * @param {ol.source.Vector} [options.source] Vector source holding edit features.
* @param {Boolean} [options.useMapUnits] Whether to use map units
* as measurement for point snapping. Default is false (pixel are used).
* @param {ol.VectorSource} [options.source] The vector source to retrieve the snappable features from.
diff --git a/src/control/control.js b/src/control/control.js
index 80ae120d4..26201797a 100644
--- a/src/control/control.js
+++ b/src/control/control.js
@@ -15,10 +15,9 @@ class Control extends OLControl {
* @param {Image} options.image Control toolbar image.
* @param {HTMLElement} [options.dialogTarget] Specify a target if you want
* the dialog div used by the control to be rendered outside of the map's viewport. Set tio null if you don't want to display the dialog of a control.
- * @param {ol.source.Vector} [options.source] Vector source holding
- * edit features. If undefined, options.features must be passed.
+ * @param {ol.source.Vector} [options.source] Vector source holding edit features.
* @param {ol.Collection
} [options.features] Collection of
- * edit features. If undefined, options.source must be set.
+ * edit features. Requires options.source to be set.
* @param {function} [options.layerFilter] Filter editable layer.
*/
constructor(options) {
diff --git a/src/control/difference.js b/src/control/difference.js
index b996311c9..d222a4733 100644
--- a/src/control/difference.js
+++ b/src/control/difference.js
@@ -10,7 +10,7 @@ import {
MultiPolygon,
} from 'ol/geom';
import TopologyControl from './topology';
-import diffSVG from '../../img/difference.svg';
+import diffSVG from '../img/difference.svg';
/**
* Control for creating a difference of geometries.
diff --git a/src/control/draw.js b/src/control/draw.js
index 5243fc978..6064122f0 100644
--- a/src/control/draw.js
+++ b/src/control/draw.js
@@ -1,8 +1,8 @@
import { Draw } from 'ol/interaction';
import Control from './control';
-import drawPointSVG from '../../img/draw_point.svg';
-import drawPolygonSVG from '../../img/draw_polygon.svg';
-import drawLineSVG from '../../img/draw_line.svg';
+import drawPointSVG from '../img/draw_point.svg';
+import drawPolygonSVG from '../img/draw_polygon.svg';
+import drawLineSVG from '../img/draw_line.svg';
/**
* Control for drawing features.
diff --git a/src/control/intersection.js b/src/control/intersection.js
index 3858f7576..3fd397fb2 100644
--- a/src/control/intersection.js
+++ b/src/control/intersection.js
@@ -10,7 +10,7 @@ import {
MultiPolygon,
} from 'ol/geom';
import TopologyControl from './topology';
-import intersectionSVG from '../../img/intersection.svg';
+import intersectionSVG from '../img/intersection.svg';
/**
* Control for intersection geometries.
diff --git a/src/control/modify.js b/src/control/modify.js
index adc400ea4..8855e0998 100644
--- a/src/control/modify.js
+++ b/src/control/modify.js
@@ -4,7 +4,7 @@ import { singleClick } from 'ol/events/condition';
import throttle from 'lodash.throttle';
import { unByKey } from 'ol/Observable';
import Control from './control';
-import image from '../../img/modify_geometry2.svg';
+import image from '../img/modify_geometry2.svg';
import SelectMove from '../interaction/selectmove';
import SelectModify from '../interaction/selectmodify';
import Move from '../interaction/move';
diff --git a/src/control/rotate.js b/src/control/rotate.js
index edd928128..f856299e4 100644
--- a/src/control/rotate.js
+++ b/src/control/rotate.js
@@ -4,8 +4,8 @@ import Vector from 'ol/layer/Vector';
import VectorSource from 'ol/source/Vector';
import Pointer from 'ol/interaction/Pointer';
import Control from './control';
-import rotateSVG from '../../img/rotate.svg';
-import rotateMapSVG from '../../img/rotate_map.svg';
+import rotateSVG from '../img/rotate.svg';
+import rotateMapSVG from '../img/rotate_map.svg';
/**
* Tool with for rotating geometries.
diff --git a/src/control/topology.js b/src/control/topology.js
index dc2056cbb..2d1145dba 100644
--- a/src/control/topology.js
+++ b/src/control/topology.js
@@ -1,6 +1,6 @@
import Select from 'ol/interaction/Select';
import Control from './control';
-import delSVG from '../../img/buffer.svg';
+import delSVG from '../img/buffer.svg';
/**
* Control for deleting geometries.
diff --git a/src/control/union.js b/src/control/union.js
index 9a3663f89..2a9d7857b 100644
--- a/src/control/union.js
+++ b/src/control/union.js
@@ -10,7 +10,7 @@ import {
MultiPolygon,
} from 'ol/geom';
import TopologyControl from './topology';
-import unionSVG from '../../img/union.svg';
+import unionSVG from '../img/union.svg';
/**
* Control for creating a union of geometries.
diff --git a/img/buffer.svg b/src/img/buffer.svg
similarity index 100%
rename from img/buffer.svg
rename to src/img/buffer.svg
diff --git a/img/cad.svg b/src/img/cad.svg
similarity index 100%
rename from img/cad.svg
rename to src/img/cad.svg
diff --git a/img/difference.svg b/src/img/difference.svg
similarity index 100%
rename from img/difference.svg
rename to src/img/difference.svg
diff --git a/img/draw_line.svg b/src/img/draw_line.svg
similarity index 100%
rename from img/draw_line.svg
rename to src/img/draw_line.svg
diff --git a/img/draw_point.svg b/src/img/draw_point.svg
similarity index 100%
rename from img/draw_point.svg
rename to src/img/draw_point.svg
diff --git a/img/draw_polygon.svg b/src/img/draw_polygon.svg
similarity index 100%
rename from img/draw_polygon.svg
rename to src/img/draw_polygon.svg
diff --git a/img/intersection.svg b/src/img/intersection.svg
similarity index 100%
rename from img/intersection.svg
rename to src/img/intersection.svg
diff --git a/img/modify_geometry.svg b/src/img/modify_geometry.svg
similarity index 100%
rename from img/modify_geometry.svg
rename to src/img/modify_geometry.svg
diff --git a/img/modify_geometry2.svg b/src/img/modify_geometry2.svg
similarity index 100%
rename from img/modify_geometry2.svg
rename to src/img/modify_geometry2.svg
diff --git a/img/rotate.svg b/src/img/rotate.svg
similarity index 100%
rename from img/rotate.svg
rename to src/img/rotate.svg
diff --git a/img/rotate_map.svg b/src/img/rotate_map.svg
similarity index 100%
rename from img/rotate_map.svg
rename to src/img/rotate_map.svg
diff --git a/img/union.svg b/src/img/union.svg
similarity index 100%
rename from img/union.svg
rename to src/img/union.svg
diff --git a/tasks/prepare-package.mjs b/tasks/prepare-package.mjs
index 110e72fb0..a00104d63 100644
--- a/tasks/prepare-package.mjs
+++ b/tasks/prepare-package.mjs
@@ -9,6 +9,7 @@ function main() {
// write out simplified package.json
pkg.main = 'index.js';
+ pkg.type = 'module';
delete pkg.devDependencies;
delete pkg.scripts;
const data = JSON.stringify(pkg, null, 2);