@deck.gl-community/editable-layers 9.0.0-alpha.1 → 9.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +19 -0
- package/README.md +2 -81
- package/dist/constants.d.ts +1 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +4 -1
- package/dist/edit-modes/composite-mode.d.ts +4 -3
- package/dist/edit-modes/composite-mode.d.ts.map +1 -0
- package/dist/edit-modes/composite-mode.js +5 -2
- package/dist/edit-modes/draw-90degree-polygon-mode.d.ts +4 -3
- package/dist/edit-modes/draw-90degree-polygon-mode.d.ts.map +1 -0
- package/dist/edit-modes/draw-90degree-polygon-mode.js +30 -25
- package/dist/edit-modes/draw-circle-by-diameter-mode.d.ts +4 -3
- package/dist/edit-modes/draw-circle-by-diameter-mode.d.ts.map +1 -0
- package/dist/edit-modes/draw-circle-by-diameter-mode.js +9 -6
- package/dist/edit-modes/draw-circle-from-center-mode.d.ts +4 -3
- package/dist/edit-modes/draw-circle-from-center-mode.d.ts.map +1 -0
- package/dist/edit-modes/draw-circle-from-center-mode.js +8 -5
- package/dist/edit-modes/draw-ellipse-by-bounding-box-mode.d.ts +3 -2
- package/dist/edit-modes/draw-ellipse-by-bounding-box-mode.d.ts.map +1 -0
- package/dist/edit-modes/draw-ellipse-by-bounding-box-mode.js +5 -2
- package/dist/edit-modes/draw-ellipse-using-three-points-mode.d.ts +3 -2
- package/dist/edit-modes/draw-ellipse-using-three-points-mode.d.ts.map +1 -0
- package/dist/edit-modes/draw-ellipse-using-three-points-mode.js +5 -2
- package/dist/edit-modes/draw-line-string-mode.d.ts +4 -3
- package/dist/edit-modes/draw-line-string-mode.d.ts.map +1 -0
- package/dist/edit-modes/draw-line-string-mode.js +21 -18
- package/dist/edit-modes/draw-point-mode.d.ts +4 -3
- package/dist/edit-modes/draw-point-mode.d.ts.map +1 -0
- package/dist/edit-modes/draw-point-mode.js +8 -5
- package/dist/edit-modes/draw-polygon-by-dragging-mode.d.ts +4 -3
- package/dist/edit-modes/draw-polygon-by-dragging-mode.d.ts.map +1 -0
- package/dist/edit-modes/draw-polygon-by-dragging-mode.js +12 -7
- package/dist/edit-modes/draw-polygon-mode.d.ts +4 -3
- package/dist/edit-modes/draw-polygon-mode.d.ts.map +1 -0
- package/dist/edit-modes/draw-polygon-mode.js +22 -18
- package/dist/edit-modes/draw-rectangle-from-center-mode.d.ts +3 -2
- package/dist/edit-modes/draw-rectangle-from-center-mode.d.ts.map +1 -0
- package/dist/edit-modes/draw-rectangle-from-center-mode.js +4 -1
- package/dist/edit-modes/draw-rectangle-mode.d.ts +3 -2
- package/dist/edit-modes/draw-rectangle-mode.d.ts.map +1 -0
- package/dist/edit-modes/draw-rectangle-mode.js +4 -1
- package/dist/edit-modes/draw-rectangle-using-three-points-mode.d.ts +3 -2
- package/dist/edit-modes/draw-rectangle-using-three-points-mode.d.ts.map +1 -0
- package/dist/edit-modes/draw-rectangle-using-three-points-mode.js +10 -7
- package/dist/edit-modes/draw-square-from-center-mode.d.ts +3 -2
- package/dist/edit-modes/draw-square-from-center-mode.d.ts.map +1 -0
- package/dist/edit-modes/draw-square-from-center-mode.js +4 -1
- package/dist/edit-modes/draw-square-mode.d.ts +3 -2
- package/dist/edit-modes/draw-square-mode.d.ts.map +1 -0
- package/dist/edit-modes/draw-square-mode.js +4 -1
- package/dist/edit-modes/duplicate-mode.d.ts +4 -3
- package/dist/edit-modes/duplicate-mode.d.ts.map +1 -0
- package/dist/edit-modes/duplicate-mode.js +4 -1
- package/dist/edit-modes/edit-mode.d.ts +2 -1
- package/dist/edit-modes/edit-mode.d.ts.map +1 -0
- package/dist/edit-modes/edit-mode.js +3 -1
- package/dist/edit-modes/elevation-mode.d.ts +5 -4
- package/dist/edit-modes/elevation-mode.d.ts.map +1 -0
- package/dist/edit-modes/elevation-mode.js +10 -7
- package/dist/edit-modes/extend-line-string-mode.d.ts +4 -3
- package/dist/edit-modes/extend-line-string-mode.d.ts.map +1 -0
- package/dist/edit-modes/extend-line-string-mode.js +11 -8
- package/dist/edit-modes/extrude-mode.d.ts +4 -3
- package/dist/edit-modes/extrude-mode.d.ts.map +1 -0
- package/dist/edit-modes/extrude-mode.js +12 -9
- package/dist/edit-modes/geojson-edit-mode.d.ts +4 -3
- package/dist/edit-modes/geojson-edit-mode.d.ts.map +1 -0
- package/dist/edit-modes/geojson-edit-mode.js +20 -17
- package/dist/edit-modes/immutable-feature-collection.d.ts +3 -1
- package/dist/edit-modes/immutable-feature-collection.d.ts.map +1 -0
- package/dist/edit-modes/immutable-feature-collection.js +25 -20
- package/dist/edit-modes/measure-angle-mode.d.ts +4 -3
- package/dist/edit-modes/measure-angle-mode.d.ts.map +1 -0
- package/dist/edit-modes/measure-angle-mode.js +9 -9
- package/dist/edit-modes/measure-area-mode.d.ts +4 -3
- package/dist/edit-modes/measure-area-mode.d.ts.map +1 -0
- package/dist/edit-modes/measure-area-mode.js +8 -6
- package/dist/edit-modes/measure-distance-mode.d.ts +4 -3
- package/dist/edit-modes/measure-distance-mode.d.ts.map +1 -0
- package/dist/edit-modes/measure-distance-mode.js +19 -16
- package/dist/edit-modes/modify-mode.d.ts +5 -4
- package/dist/edit-modes/modify-mode.d.ts.map +1 -0
- package/dist/edit-modes/modify-mode.js +19 -16
- package/dist/edit-modes/resize-circle-mode.d.ts +6 -5
- package/dist/edit-modes/resize-circle-mode.d.ts.map +1 -0
- package/dist/edit-modes/resize-circle-mode.js +6 -4
- package/dist/edit-modes/rotate-mode.d.ts +4 -3
- package/dist/edit-modes/rotate-mode.d.ts.map +1 -0
- package/dist/edit-modes/rotate-mode.js +11 -8
- package/dist/edit-modes/scale-mode.d.ts +4 -3
- package/dist/edit-modes/scale-mode.d.ts.map +1 -0
- package/dist/edit-modes/scale-mode.js +11 -8
- package/dist/edit-modes/snappable-mode.d.ts +4 -3
- package/dist/edit-modes/snappable-mode.d.ts.map +1 -0
- package/dist/edit-modes/snappable-mode.js +9 -6
- package/dist/edit-modes/split-polygon-mode.d.ts +4 -3
- package/dist/edit-modes/split-polygon-mode.d.ts.map +1 -0
- package/dist/edit-modes/split-polygon-mode.js +15 -12
- package/dist/edit-modes/three-click-polygon-mode.d.ts +4 -3
- package/dist/edit-modes/three-click-polygon-mode.d.ts.map +1 -0
- package/dist/edit-modes/three-click-polygon-mode.js +10 -7
- package/dist/edit-modes/transform-mode.d.ts +4 -3
- package/dist/edit-modes/transform-mode.d.ts.map +1 -0
- package/dist/edit-modes/transform-mode.js +8 -5
- package/dist/edit-modes/translate-mode.d.ts +4 -3
- package/dist/edit-modes/translate-mode.d.ts.map +1 -0
- package/dist/edit-modes/translate-mode.js +10 -7
- package/dist/edit-modes/two-click-polygon-mode.d.ts +4 -3
- package/dist/edit-modes/two-click-polygon-mode.d.ts.map +1 -0
- package/dist/edit-modes/two-click-polygon-mode.js +10 -7
- package/dist/edit-modes/types.d.ts +2 -1
- package/dist/edit-modes/types.d.ts.map +1 -0
- package/dist/edit-modes/types.js +3 -0
- package/dist/edit-modes/utils.d.ts +3 -2
- package/dist/edit-modes/utils.d.ts.map +1 -0
- package/dist/edit-modes/utils.js +22 -19
- package/dist/edit-modes/view-mode.d.ts +2 -1
- package/dist/edit-modes/view-mode.d.ts.map +1 -0
- package/dist/edit-modes/view-mode.js +4 -1
- package/dist/editable-layers/editable-geojson-layer.d.ts +7 -6
- package/dist/editable-layers/editable-geojson-layer.d.ts.map +1 -0
- package/dist/editable-layers/editable-geojson-layer.js +53 -52
- package/dist/editable-layers/editable-h3-cluster-layer.d.ts +3 -2
- package/dist/editable-layers/editable-h3-cluster-layer.d.ts.map +1 -0
- package/dist/editable-layers/editable-h3-cluster-layer.js +8 -5
- package/dist/editable-layers/editable-layer.d.ts +7 -6
- package/dist/editable-layers/editable-layer.d.ts.map +1 -0
- package/dist/editable-layers/editable-layer.js +18 -15
- package/dist/editable-layers/editable-path-layer.d.ts +2 -1
- package/dist/editable-layers/editable-path-layer.d.ts.map +1 -0
- package/dist/editable-layers/editable-path-layer.js +10 -7
- package/dist/editable-layers/elevated-edit-handle-layer.d.ts +2 -1
- package/dist/editable-layers/elevated-edit-handle-layer.d.ts.map +1 -0
- package/dist/editable-layers/elevated-edit-handle-layer.js +6 -3
- package/dist/editable-layers/junction-scatterplot-layer.d.ts +3 -2
- package/dist/editable-layers/junction-scatterplot-layer.d.ts.map +1 -0
- package/dist/editable-layers/junction-scatterplot-layer.js +10 -7
- package/dist/editable-layers/selection-layer.d.ts +2 -1
- package/dist/editable-layers/selection-layer.d.ts.map +1 -0
- package/dist/editable-layers/selection-layer.js +8 -5
- package/dist/index.cjs +70 -542
- package/dist/index.cjs.map +4 -4
- package/dist/index.d.ts +59 -59
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +56 -54
- package/dist/lib/constants.d.ts +1 -0
- package/dist/lib/constants.d.ts.map +1 -0
- package/dist/lib/constants.js +3 -0
- package/dist/lib/deck-renderer/deck-cache.d.ts +2 -1
- package/dist/lib/deck-renderer/deck-cache.d.ts.map +1 -0
- package/dist/lib/deck-renderer/deck-cache.js +1 -1
- package/dist/lib/deck-renderer/deck-drawer.d.ts +3 -3
- package/dist/lib/deck-renderer/deck-drawer.d.ts.map +1 -0
- package/dist/lib/deck-renderer/deck-drawer.js +12 -12
- package/dist/lib/feature.d.ts +5 -4
- package/dist/lib/feature.d.ts.map +1 -0
- package/dist/lib/feature.js +4 -1
- package/dist/lib/layer-mouse-event.d.ts +3 -2
- package/dist/lib/layer-mouse-event.d.ts.map +1 -0
- package/dist/lib/layer-mouse-event.js +4 -1
- package/dist/lib/layers/junctions-layer.d.ts +5 -4
- package/dist/lib/layers/junctions-layer.d.ts.map +1 -0
- package/dist/lib/layers/junctions-layer.js +10 -7
- package/dist/lib/layers/segments-layer.d.ts +5 -4
- package/dist/lib/layers/segments-layer.d.ts.map +1 -0
- package/dist/lib/layers/segments-layer.js +12 -9
- package/dist/lib/layers/texts-layer.d.ts +4 -3
- package/dist/lib/layers/texts-layer.d.ts.map +1 -0
- package/dist/lib/layers/texts-layer.js +9 -6
- package/dist/lib/math.d.ts +2 -1
- package/dist/lib/math.d.ts.map +1 -0
- package/dist/lib/math.js +3 -0
- package/dist/lib/{nebula.d.ts → nebula-core.d.ts} +3 -2
- package/dist/lib/nebula-core.d.ts.map +1 -0
- package/dist/lib/{nebula.js → nebula-core.js} +7 -4
- package/dist/lib/nebula-layer.d.ts +3 -2
- package/dist/lib/nebula-layer.d.ts.map +1 -0
- package/dist/lib/nebula-layer.js +4 -1
- package/dist/lib/style.d.ts +1 -0
- package/dist/lib/style.d.ts.map +1 -0
- package/dist/lib/style.js +5 -2
- package/dist/mode-handlers/composite-mode-handler.d.ts +4 -3
- package/dist/mode-handlers/composite-mode-handler.d.ts.map +1 -0
- package/dist/mode-handlers/composite-mode-handler.js +1 -1
- package/dist/mode-handlers/draw-90degree-polygon-handler.d.ts +4 -3
- package/dist/mode-handlers/draw-90degree-polygon-handler.d.ts.map +1 -0
- package/dist/mode-handlers/draw-90degree-polygon-handler.js +13 -10
- package/dist/mode-handlers/draw-circle-by-bounding-box-handler.d.ts +4 -3
- package/dist/mode-handlers/draw-circle-by-bounding-box-handler.d.ts.map +1 -0
- package/dist/mode-handlers/draw-circle-by-bounding-box-handler.js +5 -2
- package/dist/mode-handlers/draw-circle-from-center-handler.d.ts +4 -3
- package/dist/mode-handlers/draw-circle-from-center-handler.d.ts.map +1 -0
- package/dist/mode-handlers/draw-circle-from-center-handler.js +4 -1
- package/dist/mode-handlers/draw-ellipse-by-bounding-box-handler.d.ts +4 -3
- package/dist/mode-handlers/draw-ellipse-by-bounding-box-handler.d.ts.map +1 -0
- package/dist/mode-handlers/draw-ellipse-by-bounding-box-handler.js +5 -2
- package/dist/mode-handlers/draw-ellipse-using-three-points-handler.d.ts +4 -3
- package/dist/mode-handlers/draw-ellipse-using-three-points-handler.d.ts.map +1 -0
- package/dist/mode-handlers/draw-ellipse-using-three-points-handler.js +7 -4
- package/dist/mode-handlers/draw-line-string-handler.d.ts +3 -2
- package/dist/mode-handlers/draw-line-string-handler.d.ts.map +1 -0
- package/dist/mode-handlers/draw-line-string-handler.js +8 -5
- package/dist/mode-handlers/draw-point-handler.d.ts +3 -2
- package/dist/mode-handlers/draw-point-handler.d.ts.map +1 -0
- package/dist/mode-handlers/draw-point-handler.js +5 -2
- package/dist/mode-handlers/draw-polygon-handler.d.ts +4 -3
- package/dist/mode-handlers/draw-polygon-handler.d.ts.map +1 -0
- package/dist/mode-handlers/draw-polygon-handler.js +10 -7
- package/dist/mode-handlers/draw-rectangle-handler.d.ts +4 -3
- package/dist/mode-handlers/draw-rectangle-handler.d.ts.map +1 -0
- package/dist/mode-handlers/draw-rectangle-handler.js +4 -1
- package/dist/mode-handlers/draw-rectangle-using-three-points-handler.d.ts +4 -3
- package/dist/mode-handlers/draw-rectangle-using-three-points-handler.d.ts.map +1 -0
- package/dist/mode-handlers/draw-rectangle-using-three-points-handler.js +12 -9
- package/dist/mode-handlers/duplicate-handler.d.ts +4 -3
- package/dist/mode-handlers/duplicate-handler.d.ts.map +1 -0
- package/dist/mode-handlers/duplicate-handler.js +4 -1
- package/dist/mode-handlers/elevation-handler.d.ts +6 -5
- package/dist/mode-handlers/elevation-handler.d.ts.map +1 -0
- package/dist/mode-handlers/elevation-handler.js +10 -7
- package/dist/mode-handlers/extrude-handler.d.ts +4 -3
- package/dist/mode-handlers/extrude-handler.d.ts.map +1 -0
- package/dist/mode-handlers/extrude-handler.js +12 -9
- package/dist/mode-handlers/mode-handler.d.ts +4 -3
- package/dist/mode-handlers/mode-handler.d.ts.map +1 -0
- package/dist/mode-handlers/mode-handler.js +18 -15
- package/dist/mode-handlers/modify-handler.d.ts +5 -4
- package/dist/mode-handlers/modify-handler.d.ts.map +1 -0
- package/dist/mode-handlers/modify-handler.js +18 -15
- package/dist/mode-handlers/rotate-handler.d.ts +4 -3
- package/dist/mode-handlers/rotate-handler.d.ts.map +1 -0
- package/dist/mode-handlers/rotate-handler.js +5 -2
- package/dist/mode-handlers/scale-handler.d.ts +4 -3
- package/dist/mode-handlers/scale-handler.d.ts.map +1 -0
- package/dist/mode-handlers/scale-handler.js +6 -3
- package/dist/mode-handlers/snappable-handler.d.ts +4 -3
- package/dist/mode-handlers/snappable-handler.d.ts.map +1 -0
- package/dist/mode-handlers/snappable-handler.js +6 -3
- package/dist/mode-handlers/split-polygon-handler.d.ts +3 -2
- package/dist/mode-handlers/split-polygon-handler.d.ts.map +1 -0
- package/dist/mode-handlers/split-polygon-handler.js +12 -9
- package/dist/mode-handlers/three-click-polygon-handler.d.ts +3 -2
- package/dist/mode-handlers/three-click-polygon-handler.d.ts.map +1 -0
- package/dist/mode-handlers/three-click-polygon-handler.js +4 -1
- package/dist/mode-handlers/translate-handler.d.ts +4 -3
- package/dist/mode-handlers/translate-handler.d.ts.map +1 -0
- package/dist/mode-handlers/translate-handler.js +5 -2
- package/dist/mode-handlers/two-click-polygon-handler.d.ts +3 -2
- package/dist/mode-handlers/two-click-polygon-handler.d.ts.map +1 -0
- package/dist/mode-handlers/two-click-polygon-handler.js +4 -1
- package/dist/mode-handlers/view-handler.d.ts +3 -2
- package/dist/mode-handlers/view-handler.d.ts.map +1 -0
- package/dist/mode-handlers/view-handler.js +4 -1
- package/dist/shaderlib/color/color.d.ts +8 -6
- package/dist/shaderlib/color/color.d.ts.map +1 -0
- package/dist/shaderlib/color/color.js +7 -4
- package/dist/shaderlib/utils/utils.d.ts +3 -2
- package/dist/shaderlib/utils/utils.d.ts.map +1 -0
- package/dist/shaderlib/utils/utils.js +5 -2
- package/dist/{curve-utils.d.ts → utils/curve-utils.d.ts} +1 -0
- package/dist/utils/curve-utils.d.ts.map +1 -0
- package/dist/{curve-utils.js → utils/curve-utils.js} +7 -4
- package/dist/{geojson-types.d.ts → utils/geojson-types.d.ts} +3 -25
- package/dist/utils/geojson-types.d.ts.map +1 -0
- package/dist/utils/geojson-types.js +4 -0
- package/dist/{memoize.d.ts → utils/memoize.d.ts} +2 -1
- package/dist/utils/memoize.d.ts.map +1 -0
- package/dist/{memoize.js → utils/memoize.js} +4 -1
- package/dist/{translateFromCenter.d.ts → utils/translate-from-center.d.ts} +1 -0
- package/dist/utils/translate-from-center.d.ts.map +1 -0
- package/dist/{translateFromCenter.js → utils/translate-from-center.js} +7 -4
- package/dist/{types.d.ts → utils/types.d.ts} +1 -0
- package/dist/utils/types.d.ts.map +1 -0
- package/dist/utils/types.js +4 -0
- package/dist/{utils.d.ts → utils/utils.d.ts} +5 -4
- package/dist/utils/utils.d.ts.map +1 -0
- package/dist/{utils.js → utils/utils.js} +11 -9
- package/package.json +11 -10
- package/src/constants.ts +5 -1
- package/src/edit-modes/composite-mode.ts +9 -5
- package/src/edit-modes/draw-90degree-polygon-mode.ts +38 -34
- package/src/edit-modes/draw-circle-by-diameter-mode.ts +16 -12
- package/src/edit-modes/draw-circle-from-center-mode.ts +15 -11
- package/src/edit-modes/draw-ellipse-by-bounding-box-mode.ts +8 -4
- package/src/edit-modes/draw-ellipse-using-three-points-mode.ts +9 -5
- package/src/edit-modes/draw-line-string-mode.ts +29 -25
- package/src/edit-modes/draw-point-mode.ts +13 -9
- package/src/edit-modes/draw-polygon-by-dragging-mode.ts +16 -16
- package/src/edit-modes/draw-polygon-mode.ts +28 -23
- package/src/edit-modes/draw-rectangle-from-center-mode.ts +6 -2
- package/src/edit-modes/draw-rectangle-mode.ts +6 -2
- package/src/edit-modes/draw-rectangle-using-three-points-mode.ts +12 -8
- package/src/edit-modes/draw-square-from-center-mode.ts +7 -3
- package/src/edit-modes/draw-square-mode.ts +7 -3
- package/src/edit-modes/duplicate-mode.ts +7 -3
- package/src/edit-modes/edit-mode.ts +5 -1
- package/src/edit-modes/elevation-mode.ts +13 -9
- package/src/edit-modes/extend-line-string-mode.ts +16 -12
- package/src/edit-modes/extrude-mode.ts +22 -18
- package/src/edit-modes/geojson-edit-mode.ts +37 -33
- package/src/edit-modes/immutable-feature-collection.ts +28 -22
- package/src/edit-modes/measure-angle-mode.ts +66 -59
- package/src/edit-modes/measure-area-mode.ts +13 -10
- package/src/edit-modes/measure-distance-mode.ts +37 -33
- package/src/edit-modes/modify-mode.ts +36 -32
- package/src/edit-modes/resize-circle-mode.ts +8 -5
- package/src/edit-modes/rotate-mode.ts +22 -18
- package/src/edit-modes/scale-mode.ts +29 -23
- package/src/edit-modes/snappable-mode.ts +19 -15
- package/src/edit-modes/split-polygon-mode.ts +25 -21
- package/src/edit-modes/three-click-polygon-mode.ts +15 -11
- package/src/edit-modes/transform-mode.ts +15 -11
- package/src/edit-modes/translate-mode.ts +15 -11
- package/src/edit-modes/two-click-polygon-mode.ts +15 -11
- package/src/edit-modes/types.ts +5 -1
- package/src/edit-modes/utils.ts +35 -30
- package/src/edit-modes/view-mode.ts +5 -1
- package/src/editable-layers/editable-geojson-layer.ts +44 -41
- package/src/editable-layers/editable-h3-cluster-layer.ts +17 -14
- package/src/editable-layers/editable-layer.ts +42 -32
- package/src/editable-layers/editable-path-layer.ts +12 -8
- package/src/editable-layers/elevated-edit-handle-layer.ts +11 -7
- package/src/editable-layers/junction-scatterplot-layer.ts +15 -11
- package/src/editable-layers/selection-layer.ts +11 -7
- package/src/index.ts +68 -65
- package/src/lib/constants.ts +4 -0
- package/src/lib/deck-renderer/deck-cache.ts +1 -1
- package/src/lib/deck-renderer/deck-drawer.ts +28 -28
- package/src/lib/feature.ts +7 -3
- package/src/lib/layer-mouse-event.ts +7 -6
- package/src/lib/layers/junctions-layer.ts +14 -10
- package/src/lib/layers/segments-layer.ts +24 -20
- package/src/lib/layers/texts-layer.ts +18 -14
- package/src/lib/math.ts +5 -1
- package/src/lib/{nebula.ts → nebula-core.ts} +8 -4
- package/src/lib/nebula-layer.ts +9 -5
- package/src/lib/style.ts +6 -2
- package/src/mode-handlers/composite-mode-handler.ts +6 -6
- package/src/mode-handlers/draw-90degree-polygon-handler.ts +22 -18
- package/src/mode-handlers/draw-circle-by-bounding-box-handler.ts +10 -6
- package/src/mode-handlers/draw-circle-from-center-handler.ts +10 -6
- package/src/mode-handlers/draw-ellipse-by-bounding-box-handler.ts +9 -5
- package/src/mode-handlers/draw-ellipse-using-three-points-handler.ts +12 -8
- package/src/mode-handlers/draw-line-string-handler.ts +12 -8
- package/src/mode-handlers/draw-point-handler.ts +9 -5
- package/src/mode-handlers/draw-polygon-handler.ts +16 -12
- package/src/mode-handlers/draw-rectangle-handler.ts +8 -4
- package/src/mode-handlers/draw-rectangle-using-three-points-handler.ts +17 -13
- package/src/mode-handlers/duplicate-handler.ts +8 -4
- package/src/mode-handlers/elevation-handler.ts +14 -10
- package/src/mode-handlers/extrude-handler.ts +15 -11
- package/src/mode-handlers/mode-handler.ts +26 -28
- package/src/mode-handlers/modify-handler.ts +29 -25
- package/src/mode-handlers/rotate-handler.ts +13 -17
- package/src/mode-handlers/scale-handler.ts +13 -13
- package/src/mode-handlers/snappable-handler.ts +28 -24
- package/src/mode-handlers/split-polygon-handler.ts +22 -18
- package/src/mode-handlers/three-click-polygon-handler.ts +6 -2
- package/src/mode-handlers/translate-handler.ts +12 -8
- package/src/mode-handlers/two-click-polygon-handler.ts +6 -2
- package/src/mode-handlers/view-handler.ts +7 -3
- package/src/shaderlib/color/color.ts +10 -5
- package/src/shaderlib/utils/utils.ts +6 -2
- package/src/{curve-utils.ts → utils/curve-utils.ts} +11 -7
- package/src/{geojson-types.ts → utils/geojson-types.ts} +16 -31
- package/src/{memoize.ts → utils/memoize.ts} +5 -1
- package/src/{translateFromCenter.ts → utils/translate-from-center.ts} +12 -8
- package/src/{types.ts → utils/types.ts} +4 -0
- package/src/{utils.ts → utils/utils.ts} +17 -14
- package/dist/editable-layers/path-marker-layer/arrow-2d-geometry.d.ts +0 -4
- package/dist/editable-layers/path-marker-layer/arrow-2d-geometry.js +0 -55
- package/dist/editable-layers/path-marker-layer/create-path-markers.d.ts +0 -16
- package/dist/editable-layers/path-marker-layer/create-path-markers.js +0 -75
- package/dist/editable-layers/path-marker-layer/path-marker-layer.d.ts +0 -40
- package/dist/editable-layers/path-marker-layer/path-marker-layer.js +0 -121
- package/dist/editable-layers/path-marker-layer/polyline.d.ts +0 -18
- package/dist/editable-layers/path-marker-layer/polyline.js +0 -37
- package/dist/editable-layers/path-outline-layer/path-outline-layer.d.ts +0 -26
- package/dist/editable-layers/path-outline-layer/path-outline-layer.js +0 -106
- package/dist/geojson-types.js +0 -2
- package/dist/shaderlib/outline/outline.d.ts +0 -8
- package/dist/shaderlib/outline/outline.js +0 -97
- package/dist/types.js +0 -1
- package/src/editable-layers/path-marker-layer/arrow-2d-geometry.ts +0 -61
- package/src/editable-layers/path-marker-layer/create-path-markers.ts +0 -107
- package/src/editable-layers/path-marker-layer/path-marker-layer.ts +0 -179
- package/src/editable-layers/path-marker-layer/polyline.ts +0 -40
- package/src/editable-layers/path-outline-layer/path-outline-layer.ts +0 -147
- package/src/shaderlib/outline/outline.ts +0 -101
|
@@ -1,11 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
// deck.gl-community
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
|
|
5
|
+
import {Polygon, Position} from '../utils/geojson-types';
|
|
6
|
+
import {ClickEvent, PointerMoveEvent} from '../edit-modes/types';
|
|
3
7
|
import {
|
|
4
8
|
EditAction,
|
|
5
9
|
EditHandle,
|
|
6
10
|
ModeHandler,
|
|
7
11
|
getPickedEditHandle,
|
|
8
|
-
getEditHandlesForGeometry
|
|
12
|
+
getEditHandlesForGeometry
|
|
9
13
|
} from './mode-handler';
|
|
10
14
|
|
|
11
15
|
// TODO edit-modes: delete handlers once EditMode fully implemented
|
|
@@ -31,7 +35,7 @@ export class DrawPolygonHandler extends ModeHandler {
|
|
|
31
35
|
handleClick(event: ClickEvent): EditAction | null | undefined {
|
|
32
36
|
super.handleClick(event);
|
|
33
37
|
|
|
34
|
-
const {
|
|
38
|
+
const {picks} = event;
|
|
35
39
|
const tentativeFeature = this.getTentativeFeature();
|
|
36
40
|
|
|
37
41
|
let editAction: EditAction | null | undefined = null;
|
|
@@ -58,7 +62,7 @@ export class DrawPolygonHandler extends ModeHandler {
|
|
|
58
62
|
// Remove the hovered position
|
|
59
63
|
const polygonToAdd: Polygon = {
|
|
60
64
|
type: 'Polygon',
|
|
61
|
-
coordinates: [[...polygon.coordinates[0].slice(0, -2), polygon.coordinates[0][0]]]
|
|
65
|
+
coordinates: [[...polygon.coordinates[0].slice(0, -2), polygon.coordinates[0][0]]]
|
|
62
66
|
};
|
|
63
67
|
|
|
64
68
|
this.resetClickSequence();
|
|
@@ -76,7 +80,7 @@ export class DrawPolygonHandler extends ModeHandler {
|
|
|
76
80
|
pointerDownPicks: null,
|
|
77
81
|
pointerDownScreenCoords: null,
|
|
78
82
|
pointerDownMapCoords: null,
|
|
79
|
-
sourceEvent: null
|
|
83
|
+
sourceEvent: null
|
|
80
84
|
} as unknown as PointerMoveEvent;
|
|
81
85
|
|
|
82
86
|
this.handlePointerMove(fakePointerMoveEvent);
|
|
@@ -84,12 +88,12 @@ export class DrawPolygonHandler extends ModeHandler {
|
|
|
84
88
|
return editAction;
|
|
85
89
|
}
|
|
86
90
|
|
|
87
|
-
handlePointerMove({
|
|
91
|
+
handlePointerMove({mapCoords}: PointerMoveEvent): {
|
|
88
92
|
editAction: EditAction | null | undefined;
|
|
89
93
|
cancelMapPan: boolean;
|
|
90
94
|
} {
|
|
91
95
|
const clickSequence = this.getClickSequence();
|
|
92
|
-
const result = {
|
|
96
|
+
const result = {editAction: null, cancelMapPan: false};
|
|
93
97
|
|
|
94
98
|
if (clickSequence.length === 0) {
|
|
95
99
|
// nothing to do yet
|
|
@@ -102,8 +106,8 @@ export class DrawPolygonHandler extends ModeHandler {
|
|
|
102
106
|
type: 'Feature',
|
|
103
107
|
geometry: {
|
|
104
108
|
type: 'LineString',
|
|
105
|
-
coordinates: [...clickSequence, mapCoords]
|
|
106
|
-
}
|
|
109
|
+
coordinates: [...clickSequence, mapCoords]
|
|
110
|
+
}
|
|
107
111
|
});
|
|
108
112
|
} else {
|
|
109
113
|
// Draw a Polygon connecting all the clicked points with the hovered point
|
|
@@ -111,8 +115,8 @@ export class DrawPolygonHandler extends ModeHandler {
|
|
|
111
115
|
type: 'Feature',
|
|
112
116
|
geometry: {
|
|
113
117
|
type: 'Polygon',
|
|
114
|
-
coordinates: [[...clickSequence, mapCoords, clickSequence[0]]]
|
|
115
|
-
}
|
|
118
|
+
coordinates: [[...clickSequence, mapCoords, clickSequence[0]]]
|
|
119
|
+
}
|
|
116
120
|
});
|
|
117
121
|
}
|
|
118
122
|
|
|
@@ -1,7 +1,11 @@
|
|
|
1
|
+
// deck.gl-community
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
|
|
1
5
|
import bboxPolygon from '@turf/bbox-polygon';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
6
|
+
import {PointerMoveEvent} from '../edit-modes/types';
|
|
7
|
+
import {EditAction} from './mode-handler';
|
|
8
|
+
import {TwoClickPolygonHandler} from './two-click-polygon-handler';
|
|
5
9
|
|
|
6
10
|
// TODO edit-modes: delete handlers once EditMode fully implemented
|
|
7
11
|
export class DrawRectangleHandler extends TwoClickPolygonHandler {
|
|
@@ -9,7 +13,7 @@ export class DrawRectangleHandler extends TwoClickPolygonHandler {
|
|
|
9
13
|
editAction: EditAction | null | undefined;
|
|
10
14
|
cancelMapPan: boolean;
|
|
11
15
|
} {
|
|
12
|
-
const result = {
|
|
16
|
+
const result = {editAction: null, cancelMapPan: false};
|
|
13
17
|
const clickSequence = this.getClickSequence();
|
|
14
18
|
|
|
15
19
|
if (clickSequence.length === 0) {
|
|
@@ -1,8 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
import {
|
|
1
|
+
// deck.gl-community
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
|
|
5
|
+
import {LineString} from '../utils/geojson-types';
|
|
6
|
+
import {generatePointsParallelToLinePoints} from '../utils/utils';
|
|
7
|
+
import {PointerMoveEvent} from '../edit-modes/types';
|
|
8
|
+
import {EditAction} from './mode-handler';
|
|
9
|
+
import {ThreeClickPolygonHandler} from './three-click-polygon-handler';
|
|
6
10
|
|
|
7
11
|
// TODO edit-modes: delete handlers once EditMode fully implemented
|
|
8
12
|
export class DrawRectangleUsingThreePointsHandler extends ThreeClickPolygonHandler {
|
|
@@ -10,7 +14,7 @@ export class DrawRectangleUsingThreePointsHandler extends ThreeClickPolygonHandl
|
|
|
10
14
|
editAction: EditAction | null | undefined;
|
|
11
15
|
cancelMapPan: boolean;
|
|
12
16
|
} {
|
|
13
|
-
const result = {
|
|
17
|
+
const result = {editAction: null, cancelMapPan: false};
|
|
14
18
|
const clickSequence = this.getClickSequence();
|
|
15
19
|
|
|
16
20
|
if (clickSequence.length === 0) {
|
|
@@ -25,13 +29,13 @@ export class DrawRectangleUsingThreePointsHandler extends ThreeClickPolygonHandl
|
|
|
25
29
|
type: 'Feature',
|
|
26
30
|
geometry: {
|
|
27
31
|
type: 'LineString',
|
|
28
|
-
coordinates: [clickSequence[0], mapCoords]
|
|
29
|
-
}
|
|
32
|
+
coordinates: [clickSequence[0], mapCoords]
|
|
33
|
+
}
|
|
30
34
|
});
|
|
31
35
|
} else if (clickSequence.length === 2) {
|
|
32
36
|
const lineString: LineString = {
|
|
33
37
|
type: 'LineString',
|
|
34
|
-
coordinates: clickSequence
|
|
38
|
+
coordinates: clickSequence
|
|
35
39
|
};
|
|
36
40
|
const [p1, p2] = clickSequence;
|
|
37
41
|
const [p3, p4] = generatePointsParallelToLinePoints(p1, p2, mapCoords);
|
|
@@ -48,10 +52,10 @@ export class DrawRectangleUsingThreePointsHandler extends ThreeClickPolygonHandl
|
|
|
48
52
|
...lineString.coordinates,
|
|
49
53
|
p3,
|
|
50
54
|
p4,
|
|
51
|
-
p1
|
|
52
|
-
]
|
|
53
|
-
]
|
|
54
|
-
}
|
|
55
|
+
p1
|
|
56
|
+
]
|
|
57
|
+
]
|
|
58
|
+
}
|
|
55
59
|
});
|
|
56
60
|
}
|
|
57
61
|
|
|
@@ -1,6 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
// deck.gl-community
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
|
|
5
|
+
import {StartDraggingEvent} from '../edit-modes/types';
|
|
6
|
+
import {EditAction} from './mode-handler';
|
|
7
|
+
import {TranslateHandler} from './translate-handler';
|
|
4
8
|
|
|
5
9
|
// TODO edit-modes: delete handlers once EditMode fully implemented
|
|
6
10
|
export class DuplicateHandler extends TranslateHandler {
|
|
@@ -16,7 +20,7 @@ export class DuplicateHandler extends TranslateHandler {
|
|
|
16
20
|
: null;
|
|
17
21
|
}
|
|
18
22
|
|
|
19
|
-
getCursor({
|
|
23
|
+
getCursor({isDragging}: {isDragging: boolean}): string {
|
|
20
24
|
if (this._isTranslatable) {
|
|
21
25
|
return 'copy';
|
|
22
26
|
}
|
|
@@ -1,12 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
// deck.gl-community
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
4
|
|
|
5
|
-
import {
|
|
5
|
+
import {Position} from '../utils/geojson-types';
|
|
6
|
+
import {PointerMoveEvent, StopDraggingEvent} from '../edit-modes/types';
|
|
7
|
+
import {EditAction, getPickedEditHandle} from './mode-handler';
|
|
8
|
+
|
|
9
|
+
import {ModifyHandler} from './modify-handler';
|
|
6
10
|
|
|
7
11
|
function defaultCalculateElevationChange({
|
|
8
12
|
pointerDownScreenCoords,
|
|
9
|
-
screenCoords
|
|
13
|
+
screenCoords
|
|
10
14
|
}: {
|
|
11
15
|
pointerDownScreenCoords: Position;
|
|
12
16
|
screenCoords: Position;
|
|
@@ -27,7 +31,7 @@ export class ElevationHandler extends ModifyHandler {
|
|
|
27
31
|
const {
|
|
28
32
|
minElevation = 0,
|
|
29
33
|
maxElevation = 20000,
|
|
30
|
-
calculateElevationChange = defaultCalculateElevationChange
|
|
34
|
+
calculateElevationChange = defaultCalculateElevationChange
|
|
31
35
|
} = this._modeConfig || {};
|
|
32
36
|
|
|
33
37
|
// $FlowFixMe - really, I know it has something at index 2
|
|
@@ -36,13 +40,13 @@ export class ElevationHandler extends ModifyHandler {
|
|
|
36
40
|
// calculateElevationChange is configurable becase (at this time) modes are not aware of the viewport
|
|
37
41
|
elevation += calculateElevationChange({
|
|
38
42
|
pointerDownScreenCoords: event.pointerDownScreenCoords,
|
|
39
|
-
screenCoords: event.screenCoords
|
|
43
|
+
screenCoords: event.screenCoords
|
|
40
44
|
});
|
|
41
45
|
elevation = Math.min(elevation, maxElevation);
|
|
42
46
|
elevation = Math.max(elevation, minElevation);
|
|
43
47
|
|
|
44
48
|
return Object.assign({}, event, {
|
|
45
|
-
mapCoords: [position[0], position[1], elevation]
|
|
49
|
+
mapCoords: [position[0], position[1], elevation]
|
|
46
50
|
});
|
|
47
51
|
}
|
|
48
52
|
|
|
@@ -61,7 +65,7 @@ export class ElevationHandler extends ModifyHandler {
|
|
|
61
65
|
return super.handleStopDragging(this.makeElevatedEvent(event, position));
|
|
62
66
|
}
|
|
63
67
|
|
|
64
|
-
getCursor(params: {
|
|
68
|
+
getCursor(params: {isDragging: boolean}): string {
|
|
65
69
|
let cursor = super.getCursor(params);
|
|
66
70
|
if (cursor === 'cell') {
|
|
67
71
|
cursor = 'ns-resize';
|
|
@@ -73,7 +77,7 @@ export class ElevationHandler extends ModifyHandler {
|
|
|
73
77
|
viewport: any,
|
|
74
78
|
{
|
|
75
79
|
pointerDownScreenCoords,
|
|
76
|
-
screenCoords
|
|
80
|
+
screenCoords
|
|
77
81
|
}: {
|
|
78
82
|
pointerDownScreenCoords: Position;
|
|
79
83
|
screenCoords: Position;
|
|
@@ -1,9 +1,13 @@
|
|
|
1
|
+
// deck.gl-community
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
|
|
1
5
|
import bearing from '@turf/bearing';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
6
|
+
import {generatePointsParallelToLinePoints} from '../utils/utils';
|
|
7
|
+
import {PointerMoveEvent, StartDraggingEvent, StopDraggingEvent} from '../edit-modes/types';
|
|
8
|
+
import {EditAction, getPickedEditHandle} from './mode-handler';
|
|
5
9
|
|
|
6
|
-
import {
|
|
10
|
+
import {ModifyHandler} from './modify-handler';
|
|
7
11
|
|
|
8
12
|
// TODO edit-modes: delete handlers once EditMode fully implemented
|
|
9
13
|
export class ExtrudeHandler extends ModifyHandler {
|
|
@@ -48,8 +52,8 @@ export class ExtrudeHandler extends ModifyHandler {
|
|
|
48
52
|
featureIndexes: [editHandle.featureIndex],
|
|
49
53
|
editContext: {
|
|
50
54
|
positionIndexes: this.nextPositionIndexes(editHandle.positionIndexes, size),
|
|
51
|
-
position: p3
|
|
52
|
-
}
|
|
55
|
+
position: p3
|
|
56
|
+
}
|
|
53
57
|
};
|
|
54
58
|
}
|
|
55
59
|
}
|
|
@@ -57,7 +61,7 @@ export class ExtrudeHandler extends ModifyHandler {
|
|
|
57
61
|
// Cancel map panning if pointer went down on an edit handle
|
|
58
62
|
const cancelMapPan = Boolean(editHandle);
|
|
59
63
|
|
|
60
|
-
return {
|
|
64
|
+
return {editAction, cancelMapPan};
|
|
61
65
|
}
|
|
62
66
|
|
|
63
67
|
handleStartDragging(event: StartDraggingEvent): EditAction | null | undefined {
|
|
@@ -108,8 +112,8 @@ export class ExtrudeHandler extends ModifyHandler {
|
|
|
108
112
|
featureIndexes: [editHandle.featureIndex],
|
|
109
113
|
editContext: {
|
|
110
114
|
positionIndexes: editHandle.positionIndexes,
|
|
111
|
-
position: p1
|
|
112
|
-
}
|
|
115
|
+
position: p1
|
|
116
|
+
}
|
|
113
117
|
};
|
|
114
118
|
}
|
|
115
119
|
}
|
|
@@ -153,8 +157,8 @@ export class ExtrudeHandler extends ModifyHandler {
|
|
|
153
157
|
featureIndexes: [editHandle.featureIndex],
|
|
154
158
|
editContext: {
|
|
155
159
|
positionIndexes: editHandle.positionIndexes,
|
|
156
|
-
position: p3
|
|
157
|
-
}
|
|
160
|
+
position: p3
|
|
161
|
+
}
|
|
158
162
|
};
|
|
159
163
|
}
|
|
160
164
|
}
|
|
@@ -1,25 +1,23 @@
|
|
|
1
|
+
// deck.gl-community
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
|
|
1
5
|
// TODO edit-modes: delete handlers once EditMode fully implemented
|
|
2
6
|
|
|
3
7
|
import turfUnion from '@turf/union';
|
|
4
8
|
import turfDifference from '@turf/difference';
|
|
5
9
|
import turfIntersect from '@turf/intersect';
|
|
6
10
|
|
|
7
|
-
import {
|
|
8
|
-
FeatureCollection,
|
|
9
|
-
Feature,
|
|
10
|
-
Polygon,
|
|
11
|
-
Geometry,
|
|
12
|
-
Position,
|
|
13
|
-
} from '../geojson-types';
|
|
11
|
+
import {FeatureCollection, Feature, Polygon, Geometry, Position} from '../utils/geojson-types';
|
|
14
12
|
|
|
15
13
|
import {
|
|
16
14
|
ClickEvent,
|
|
17
15
|
Pick,
|
|
18
16
|
PointerMoveEvent,
|
|
19
17
|
StartDraggingEvent,
|
|
20
|
-
StopDraggingEvent
|
|
18
|
+
StopDraggingEvent
|
|
21
19
|
} from '../edit-modes/types';
|
|
22
|
-
import {
|
|
20
|
+
import {ImmutableFeatureCollection} from '../edit-modes/immutable-feature-collection';
|
|
23
21
|
|
|
24
22
|
export type EditHandleType = 'existing' | 'intermediate' | 'snap';
|
|
25
23
|
|
|
@@ -75,13 +73,13 @@ export class ModeHandler {
|
|
|
75
73
|
}
|
|
76
74
|
|
|
77
75
|
getSelectedFeaturesAsFeatureCollection(): FeatureCollection {
|
|
78
|
-
const {
|
|
76
|
+
const {features} = this.featureCollection.getObject();
|
|
79
77
|
const selectedFeatures = this.getSelectedFeatureIndexes().map(
|
|
80
78
|
(selectedIndex) => features[selectedIndex]
|
|
81
79
|
);
|
|
82
80
|
return {
|
|
83
81
|
type: 'FeatureCollection',
|
|
84
|
-
features: selectedFeatures
|
|
82
|
+
features: selectedFeatures
|
|
85
83
|
};
|
|
86
84
|
}
|
|
87
85
|
|
|
@@ -145,13 +143,13 @@ export class ModeHandler {
|
|
|
145
143
|
return [];
|
|
146
144
|
}
|
|
147
145
|
|
|
148
|
-
getCursor({
|
|
146
|
+
getCursor({isDragging}: {isDragging: boolean}): string {
|
|
149
147
|
return 'cell';
|
|
150
148
|
}
|
|
151
149
|
|
|
152
150
|
isSelectionPicked(picks: Pick[]): boolean {
|
|
153
151
|
if (!picks.length) return false;
|
|
154
|
-
const pickedIndexes = picks.map(({
|
|
152
|
+
const pickedIndexes = picks.map(({index}) => index);
|
|
155
153
|
const selectedFeatureIndexes = this.getSelectedFeatureIndexes();
|
|
156
154
|
return selectedFeatureIndexes.some((index) => pickedIndexes.includes(index));
|
|
157
155
|
}
|
|
@@ -164,7 +162,7 @@ export class ModeHandler {
|
|
|
164
162
|
.addFeature({
|
|
165
163
|
type: 'Feature',
|
|
166
164
|
properties: {},
|
|
167
|
-
geometry: geometryAsAny
|
|
165
|
+
geometry: geometryAsAny
|
|
168
166
|
})
|
|
169
167
|
.getObject();
|
|
170
168
|
|
|
@@ -173,8 +171,8 @@ export class ModeHandler {
|
|
|
173
171
|
editType: 'addFeature',
|
|
174
172
|
featureIndexes: [updatedData.features.length - 1],
|
|
175
173
|
editContext: {
|
|
176
|
-
featureIndexes: [updatedData.features.length - 1]
|
|
177
|
-
}
|
|
174
|
+
featureIndexes: [updatedData.features.length - 1]
|
|
175
|
+
}
|
|
178
176
|
};
|
|
179
177
|
}
|
|
180
178
|
|
|
@@ -184,12 +182,12 @@ export class ModeHandler {
|
|
|
184
182
|
const initialIndex = updatedData.getObject().features.length;
|
|
185
183
|
const updatedIndexes: number[] = [];
|
|
186
184
|
for (const feature of features) {
|
|
187
|
-
const {
|
|
185
|
+
const {properties, geometry} = feature;
|
|
188
186
|
const geometryAsAny: any = geometry;
|
|
189
187
|
updatedData = updatedData.addFeature({
|
|
190
188
|
type: 'Feature',
|
|
191
189
|
properties,
|
|
192
|
-
geometry: geometryAsAny
|
|
190
|
+
geometry: geometryAsAny
|
|
193
191
|
});
|
|
194
192
|
updatedIndexes.push(initialIndex + updatedIndexes.length);
|
|
195
193
|
}
|
|
@@ -199,8 +197,8 @@ export class ModeHandler {
|
|
|
199
197
|
editType: 'addFeature',
|
|
200
198
|
featureIndexes: updatedIndexes,
|
|
201
199
|
editContext: {
|
|
202
|
-
featureIndexes: updatedIndexes
|
|
203
|
-
}
|
|
200
|
+
featureIndexes: updatedIndexes
|
|
201
|
+
}
|
|
204
202
|
};
|
|
205
203
|
}
|
|
206
204
|
|
|
@@ -222,7 +220,7 @@ export class ModeHandler {
|
|
|
222
220
|
|
|
223
221
|
const feature = {
|
|
224
222
|
type: 'Feature',
|
|
225
|
-
geometry
|
|
223
|
+
geometry
|
|
226
224
|
};
|
|
227
225
|
|
|
228
226
|
let updatedGeometry;
|
|
@@ -258,8 +256,8 @@ export class ModeHandler {
|
|
|
258
256
|
editType: 'unionGeometry',
|
|
259
257
|
featureIndexes: [featureIndex],
|
|
260
258
|
editContext: {
|
|
261
|
-
featureIndexes: [featureIndex]
|
|
262
|
-
}
|
|
259
|
+
featureIndexes: [featureIndex]
|
|
260
|
+
}
|
|
263
261
|
};
|
|
264
262
|
|
|
265
263
|
return editAction;
|
|
@@ -277,7 +275,7 @@ export class ModeHandler {
|
|
|
277
275
|
editAction: EditAction | null | undefined;
|
|
278
276
|
cancelMapPan: boolean;
|
|
279
277
|
} {
|
|
280
|
-
return {
|
|
278
|
+
return {editAction: null, cancelMapPan: false};
|
|
281
279
|
}
|
|
282
280
|
|
|
283
281
|
handleStartDragging(event: StartDraggingEvent): EditAction | null | undefined {
|
|
@@ -302,7 +300,7 @@ export function getPickedEditHandle(
|
|
|
302
300
|
export function getIntermediatePosition(position1: Position, position2: Position): Position {
|
|
303
301
|
const intermediatePosition: Position = [
|
|
304
302
|
(position1[0] + position2[0]) / 2.0,
|
|
305
|
-
(position1[1] + position2[1]) / 2.0
|
|
303
|
+
(position1[1] + position2[1]) / 2.0
|
|
306
304
|
];
|
|
307
305
|
|
|
308
306
|
return intermediatePosition;
|
|
@@ -323,8 +321,8 @@ export function getEditHandlesForGeometry(
|
|
|
323
321
|
position: geometry.coordinates,
|
|
324
322
|
positionIndexes: [],
|
|
325
323
|
featureIndex,
|
|
326
|
-
type: editHandleType
|
|
327
|
-
}
|
|
324
|
+
type: editHandleType
|
|
325
|
+
}
|
|
328
326
|
];
|
|
329
327
|
break;
|
|
330
328
|
case 'MultiPoint':
|
|
@@ -387,7 +385,7 @@ function getEditHandlesForCoordinates(
|
|
|
387
385
|
position,
|
|
388
386
|
positionIndexes: [...positionIndexPrefix, i],
|
|
389
387
|
featureIndex,
|
|
390
|
-
type: editHandleType
|
|
388
|
+
type: editHandleType
|
|
391
389
|
});
|
|
392
390
|
}
|
|
393
391
|
return editHandles;
|
|
@@ -1,23 +1,27 @@
|
|
|
1
|
+
// deck.gl-community
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
|
|
1
5
|
import nearestPointOnLine from '@turf/nearest-point-on-line';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
6
|
+
import {point, lineString as toLineString} from '@turf/helpers';
|
|
7
|
+
import {Position, FeatureOf, Point, LineString} from '../utils/geojson-types';
|
|
4
8
|
import {
|
|
5
9
|
recursivelyTraverseNestedArrays,
|
|
6
10
|
nearestPointOnProjectedLine,
|
|
7
|
-
NearestPointType
|
|
8
|
-
} from '../utils';
|
|
11
|
+
NearestPointType
|
|
12
|
+
} from '../utils/utils';
|
|
9
13
|
import {
|
|
10
14
|
ClickEvent,
|
|
11
15
|
PointerMoveEvent,
|
|
12
16
|
StartDraggingEvent,
|
|
13
|
-
StopDraggingEvent
|
|
17
|
+
StopDraggingEvent
|
|
14
18
|
} from '../edit-modes/types';
|
|
15
19
|
import {
|
|
16
20
|
EditAction,
|
|
17
21
|
EditHandle,
|
|
18
22
|
ModeHandler,
|
|
19
23
|
getPickedEditHandle,
|
|
20
|
-
getEditHandlesForGeometry
|
|
24
|
+
getEditHandlesForGeometry
|
|
21
25
|
} from './mode-handler';
|
|
22
26
|
|
|
23
27
|
// TODO edit-modes: delete handlers once EditMode fully implemented
|
|
@@ -26,11 +30,11 @@ export class ModifyHandler extends ModeHandler {
|
|
|
26
30
|
|
|
27
31
|
getEditHandles(picks?: Array<Record<string, any>>, mapCoords?: Position): EditHandle[] {
|
|
28
32
|
let handles: EditHandle[] = [];
|
|
29
|
-
const {
|
|
33
|
+
const {features} = this.featureCollection.getObject();
|
|
30
34
|
|
|
31
35
|
for (const index of this.getSelectedFeatureIndexes()) {
|
|
32
36
|
if (index < features.length) {
|
|
33
|
-
const {
|
|
37
|
+
const {geometry} = features[index];
|
|
34
38
|
handles.push(...getEditHandlesForGeometry(geometry, index));
|
|
35
39
|
} else {
|
|
36
40
|
console.warn(`selectedFeatureIndexes out of range ${index}`); // eslint-disable-line no-console,no-undef
|
|
@@ -78,8 +82,8 @@ export class ModifyHandler extends ModeHandler {
|
|
|
78
82
|
// tack on the lone intermediate point to the set of handles
|
|
79
83
|
if (intermediatePoint) {
|
|
80
84
|
const {
|
|
81
|
-
geometry: {
|
|
82
|
-
properties: {
|
|
85
|
+
geometry: {coordinates: position},
|
|
86
|
+
properties: {index}
|
|
83
87
|
} = intermediatePoint;
|
|
84
88
|
handles = [
|
|
85
89
|
...handles,
|
|
@@ -87,8 +91,8 @@ export class ModifyHandler extends ModeHandler {
|
|
|
87
91
|
position,
|
|
88
92
|
positionIndexes: [...positionIndexPrefix, index + 1],
|
|
89
93
|
featureIndex: featureAsPick.index,
|
|
90
|
-
type: 'intermediate'
|
|
91
|
-
}
|
|
94
|
+
type: 'intermediate'
|
|
95
|
+
}
|
|
92
96
|
];
|
|
93
97
|
}
|
|
94
98
|
}
|
|
@@ -99,7 +103,7 @@ export class ModifyHandler extends ModeHandler {
|
|
|
99
103
|
|
|
100
104
|
// turf.js does not support elevation for nearestPointOnLine
|
|
101
105
|
nearestPointOnLine(line: FeatureOf<LineString>, inPoint: FeatureOf<Point>): NearestPointType {
|
|
102
|
-
const {
|
|
106
|
+
const {coordinates} = line.geometry;
|
|
103
107
|
if (coordinates.some((coord) => coord.length > 2)) {
|
|
104
108
|
const modeConfig = this.getModeConfig();
|
|
105
109
|
if (modeConfig && modeConfig.viewport) {
|
|
@@ -138,8 +142,8 @@ export class ModifyHandler extends ModeHandler {
|
|
|
138
142
|
featureIndexes: [clickedEditHandle.featureIndex],
|
|
139
143
|
editContext: {
|
|
140
144
|
positionIndexes: clickedEditHandle.positionIndexes,
|
|
141
|
-
position: clickedEditHandle.position
|
|
142
|
-
}
|
|
145
|
+
position: clickedEditHandle.position
|
|
146
|
+
}
|
|
143
147
|
};
|
|
144
148
|
}
|
|
145
149
|
} else if (clickedEditHandle.type === 'intermediate') {
|
|
@@ -158,8 +162,8 @@ export class ModifyHandler extends ModeHandler {
|
|
|
158
162
|
featureIndexes: [clickedEditHandle.featureIndex],
|
|
159
163
|
editContext: {
|
|
160
164
|
positionIndexes: clickedEditHandle.positionIndexes,
|
|
161
|
-
position: clickedEditHandle.position
|
|
162
|
-
}
|
|
165
|
+
position: clickedEditHandle.position
|
|
166
|
+
}
|
|
163
167
|
};
|
|
164
168
|
}
|
|
165
169
|
}
|
|
@@ -188,15 +192,15 @@ export class ModifyHandler extends ModeHandler {
|
|
|
188
192
|
featureIndexes: [editHandle.featureIndex],
|
|
189
193
|
editContext: {
|
|
190
194
|
positionIndexes: editHandle.positionIndexes,
|
|
191
|
-
position: event.mapCoords
|
|
192
|
-
}
|
|
195
|
+
position: event.mapCoords
|
|
196
|
+
}
|
|
193
197
|
};
|
|
194
198
|
}
|
|
195
199
|
|
|
196
200
|
// Cancel map panning if pointer went down on an edit handle
|
|
197
201
|
const cancelMapPan = Boolean(editHandle);
|
|
198
202
|
|
|
199
|
-
return {
|
|
203
|
+
return {editAction, cancelMapPan};
|
|
200
204
|
}
|
|
201
205
|
|
|
202
206
|
handleStartDragging(event: StartDraggingEvent): EditAction | null | undefined {
|
|
@@ -216,8 +220,8 @@ export class ModifyHandler extends ModeHandler {
|
|
|
216
220
|
featureIndexes: [editHandle.featureIndex],
|
|
217
221
|
editContext: {
|
|
218
222
|
positionIndexes: editHandle.positionIndexes,
|
|
219
|
-
position: event.mapCoords
|
|
220
|
-
}
|
|
223
|
+
position: event.mapCoords
|
|
224
|
+
}
|
|
221
225
|
};
|
|
222
226
|
}
|
|
223
227
|
|
|
@@ -240,15 +244,15 @@ export class ModifyHandler extends ModeHandler {
|
|
|
240
244
|
featureIndexes: [editHandle.featureIndex],
|
|
241
245
|
editContext: {
|
|
242
246
|
positionIndexes: editHandle.positionIndexes,
|
|
243
|
-
position: event.mapCoords
|
|
244
|
-
}
|
|
247
|
+
position: event.mapCoords
|
|
248
|
+
}
|
|
245
249
|
};
|
|
246
250
|
}
|
|
247
251
|
|
|
248
252
|
return editAction;
|
|
249
253
|
}
|
|
250
254
|
|
|
251
|
-
getCursor({
|
|
255
|
+
getCursor({isDragging}: {isDragging: boolean}): string {
|
|
252
256
|
const picks = this._lastPointerMovePicks;
|
|
253
257
|
|
|
254
258
|
if (picks && picks.length > 0) {
|