@sakuzu/maplibre-gl-draw 1.0.0 → 2.0.0
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/CHANGELOG.md +1016 -2
- package/README.ja.md +39 -19
- package/README.md +41 -21
- package/dist/api/datasets.d.ts +258 -0
- package/dist/api/document.d.ts +66 -0
- package/dist/api/draw.d.ts +135 -0
- package/dist/api/draw.js +18 -0
- package/dist/api/drawing.d.ts +87 -0
- package/dist/api/errors.d.ts +35 -0
- package/dist/api/errors.js +35 -0
- package/dist/api/events.d.ts +306 -0
- package/dist/api/extension/context.d.ts +247 -0
- package/dist/api/extension/feature-type.d.ts +129 -0
- package/dist/api/extension/mode.d.ts +123 -0
- package/dist/api/extension/plugin.d.ts +51 -0
- package/dist/api/extension/plugin.js +3 -0
- package/dist/api/extension/provider.d.ts +119 -0
- package/dist/api/extension/provider.js +3 -0
- package/dist/api/extension/render.d.ts +176 -0
- package/dist/api/extension/render.js +3 -0
- package/dist/api/extension/store.d.ts +190 -0
- package/dist/api/extension/store.js +3 -0
- package/dist/api/extensions.d.ts +306 -0
- package/dist/api/extensions.js +3 -0
- package/dist/api/features.d.ts +188 -0
- package/dist/api/features.js +3 -0
- package/dist/api/groups.d.ts +111 -0
- package/dist/api/groups.js +3 -0
- package/dist/api/hidden.d.ts +45 -0
- package/dist/api/hidden.js +3 -0
- package/dist/api/impl/adapters.js +463 -0
- package/dist/api/impl/contexts.js +466 -0
- package/dist/api/impl/create-draw.js +124 -0
- package/dist/api/impl/datasets.js +404 -0
- package/dist/api/impl/destroy-guard.js +74 -0
- package/dist/api/impl/document.js +280 -0
- package/dist/api/impl/drawing.js +180 -0
- package/dist/api/impl/engine-context.d.ts +7 -0
- package/dist/api/{context.js → impl/engine-context.js} +49 -38
- package/dist/{maplibre-gl-draw.js → api/impl/engine.js} +145 -177
- package/dist/api/impl/events.js +422 -0
- package/dist/api/impl/extension-host.js +361 -0
- package/dist/api/impl/extensions.js +229 -0
- package/dist/api/impl/features.js +445 -0
- package/dist/api/impl/geometry/apply.d.ts +32 -0
- package/dist/api/{geometry → impl/geometry}/apply.js +10 -27
- package/dist/api/{geometry → impl/geometry}/buffer.d.ts +4 -3
- package/dist/api/{geometry → impl/geometry}/buffer.js +12 -23
- package/dist/api/{geometry → impl/geometry}/split.d.ts +4 -3
- package/dist/api/{geometry → impl/geometry}/split.js +10 -21
- package/dist/api/{geometry → impl/geometry}/targets.d.ts +2 -20
- package/dist/api/{geometry → impl/geometry}/targets.js +8 -35
- package/dist/api/impl/geometry/types.js +3 -0
- package/dist/api/impl/groups.d.ts +3 -0
- package/dist/api/impl/groups.js +268 -0
- package/dist/api/impl/hidden.js +60 -0
- package/dist/api/impl/import-export/constants.d.ts +22 -0
- package/dist/api/impl/import-export/constants.js +24 -0
- package/dist/api/{import-export → impl/import-export}/embedded-file.js +2 -2
- package/dist/api/{import-export → impl/import-export}/format-detection.d.ts +1 -1
- package/dist/api/{import-export → impl/import-export}/format-detection.js +2 -1
- package/dist/api/impl/import-export/geojson-export.d.ts +19 -0
- package/dist/api/{import-export → impl/import-export}/geojson-export.js +71 -104
- package/dist/api/{import-export → impl/import-export}/geojson-import.d.ts +11 -7
- package/dist/api/{import-export → impl/import-export}/geojson-import.js +139 -97
- package/dist/api/{import-export → impl/import-export}/geometry-validation.d.ts +14 -0
- package/dist/api/{import-export → impl/import-export}/geometry-validation.js +45 -0
- package/dist/api/impl/import-export/image-import.d.ts +16 -0
- package/dist/api/impl/import-export/image-import.js +73 -0
- package/dist/api/impl/import-export/legacy-image-style.d.ts +16 -0
- package/dist/api/impl/import-export/legacy-image-style.js +49 -0
- package/dist/api/impl/import-export/native-format.d.ts +14 -0
- package/dist/api/{import-export → impl/import-export}/native-format.js +32 -22
- package/dist/api/impl/import-export/native-upgrade.d.ts +8 -0
- package/dist/api/impl/import-export/native-upgrade.js +139 -0
- package/dist/api/{import-export → impl/import-export}/native-validation.d.ts +1 -1
- package/dist/api/{import-export → impl/import-export}/native-validation.js +15 -14
- package/dist/api/impl/import-export/style-validation.d.ts +24 -0
- package/dist/api/impl/import-export/style-validation.js +86 -0
- package/dist/api/impl/import-export/types.d.ts +52 -0
- package/dist/api/impl/import-export/types.js +3 -0
- package/dist/api/impl/input.js +180 -0
- package/dist/api/impl/layers.js +307 -0
- package/dist/api/impl/metadata.d.ts +1 -0
- package/dist/api/impl/metadata.js +22 -0
- package/dist/api/impl/options.d.ts +1 -0
- package/dist/api/impl/options.js +822 -0
- package/dist/api/impl/placement.d.ts +1 -0
- package/dist/api/impl/placement.js +138 -0
- package/dist/api/impl/render-context.d.ts +13 -0
- package/dist/api/impl/render-context.js +272 -0
- package/dist/api/impl/rows.d.ts +1 -0
- package/dist/api/impl/rows.js +46 -0
- package/dist/api/impl/selection.d.ts +1 -0
- package/dist/api/impl/selection.js +186 -0
- package/dist/api/impl/shared.d.ts +64 -0
- package/dist/api/impl/shared.js +178 -0
- package/dist/api/impl/validate-extension.d.ts +1 -0
- package/dist/api/impl/validate-extension.js +159 -0
- package/dist/api/layers.d.ts +130 -0
- package/dist/api/layers.js +3 -0
- package/dist/api/metadata.d.ts +18 -0
- package/dist/api/metadata.js +3 -0
- package/dist/api/model.d.ts +487 -0
- package/dist/api/model.js +47 -0
- package/dist/api/options.d.ts +466 -0
- package/dist/api/options.js +3 -0
- package/dist/api/selection.d.ts +94 -0
- package/dist/api/selection.js +3 -0
- package/dist/api/state.d.ts +155 -0
- package/dist/api/state.js +12 -0
- package/dist/{display → dataset}/chunk.d.ts +1 -1
- package/dist/{display → dataset}/chunk.js +4 -3
- package/dist/{display → dataset}/dataset.js +18 -21
- package/dist/dataset/interaction.d.ts +1 -0
- package/dist/{display → dataset}/interaction.js +18 -6
- package/dist/dataset/manager.d.ts +1 -0
- package/dist/dataset/provider.d.ts +1 -0
- package/dist/{display → dataset}/retained.d.ts +1 -1
- package/dist/{display → dataset}/retained.js +8 -7
- package/dist/dataset/source.d.ts +1 -0
- package/dist/{display → dataset}/source.js +17 -4
- package/dist/dataset/spatial.d.ts +1 -0
- package/dist/{display → dataset}/spatial.js +1 -1
- package/dist/dataset/style.d.ts +1 -0
- package/dist/{display → dataset}/style.js +1 -1
- package/dist/dataset/table-source.d.ts +1 -0
- package/dist/{display/columnar/source.js → dataset/table-source.js} +53 -25
- package/dist/{display → dataset}/thinning.d.ts +0 -10
- package/dist/{display → dataset}/thinning.js +3 -2
- package/dist/dataset/triangulation.d.ts +1 -0
- package/dist/{display → dataset}/triangulation.js +0 -0
- package/dist/{display → dataset}/types.d.ts +82 -121
- package/dist/dataset/types.js +61 -0
- package/dist/dispatcher/hit-test/box-strategies.js +13 -13
- package/dist/dispatcher/hit-test/box-strategy.d.ts +2 -15
- package/dist/dispatcher/hit-test/globe-shape.js +5 -4
- package/dist/dispatcher/hit-test/service.d.ts +17 -0
- package/dist/dispatcher/hit-test/service.js +80 -16
- package/dist/dispatcher/hit-test/strategies/base.d.ts +13 -19
- package/dist/dispatcher/hit-test/strategies/circle.js +3 -2
- package/dist/dispatcher/hit-test/strategies/image.js +6 -18
- package/dist/dispatcher/hit-test/strategies/line.d.ts +0 -6
- package/dist/dispatcher/hit-test/strategies/line.js +9 -2
- package/dist/dispatcher/hit-test/strategies/multi.d.ts +0 -8
- package/dist/dispatcher/hit-test/strategies/multi.js +17 -8
- package/dist/dispatcher/hit-test/strategies/point.d.ts +9 -7
- package/dist/dispatcher/hit-test/strategies/point.js +8 -4
- package/dist/dispatcher/hit-test/strategies/polygon.d.ts +0 -7
- package/dist/dispatcher/hit-test/strategies/polygon.js +11 -3
- package/dist/dispatcher/hit-test/topmost.d.ts +1 -1
- package/dist/dispatcher/input-router.js +152 -69
- package/dist/dispatcher/normalizer.js +6 -2
- package/dist/dispatcher/types.d.ts +6 -1
- package/dist/extension/feature-handler.d.ts +1 -182
- package/dist/extension/index.d.ts +4 -7
- package/dist/extension/renderers.d.ts +1 -208
- package/dist/geometry/angle.d.ts +0 -8
- package/dist/geometry/angle.js +0 -8
- package/dist/geometry/bbox.d.ts +4 -12
- package/dist/geometry/bbox.js +4 -12
- package/dist/geometry/boolean.d.ts +0 -51
- package/dist/geometry/boolean.js +0 -51
- package/dist/geometry/buffer.d.ts +0 -26
- package/dist/geometry/buffer.js +0 -26
- package/dist/geometry/circle.d.ts +0 -9
- package/dist/geometry/circle.js +0 -9
- package/dist/geometry/coords.d.ts +0 -16
- package/dist/geometry/coords.js +0 -16
- package/dist/geometry/distance.d.ts +0 -24
- package/dist/geometry/distance.js +0 -24
- package/dist/geometry/errors.d.ts +21 -36
- package/dist/geometry/errors.js +49 -29
- package/dist/geometry/geojson.d.ts +81 -0
- package/dist/geometry/geojson.js +164 -0
- package/dist/geometry/index.d.ts +38 -23
- package/dist/geometry/index.js +43 -31
- package/dist/geometry/measure.d.ts +0 -27
- package/dist/geometry/measure.js +0 -27
- package/dist/geometry/predicates.d.ts +0 -9
- package/dist/geometry/predicates.js +0 -9
- package/dist/geometry/public-bounds.d.ts +26 -0
- package/dist/geometry/public-bounds.js +30 -0
- package/dist/geometry/public-combine.d.ts +78 -0
- package/dist/geometry/public-combine.js +82 -0
- package/dist/geometry/public-create.d.ts +54 -0
- package/dist/geometry/public-create.js +70 -0
- package/dist/geometry/public-measure.d.ts +170 -0
- package/dist/geometry/public-measure.js +283 -0
- package/dist/geometry/public-predicates.d.ts +54 -0
- package/dist/geometry/public-predicates.js +144 -0
- package/dist/geometry/public-repair.d.ts +75 -0
- package/dist/geometry/public-repair.js +77 -0
- package/dist/geometry/simplify.d.ts +0 -7
- package/dist/geometry/simplify.js +0 -7
- package/dist/geometry/split.d.ts +0 -20
- package/dist/geometry/split.js +0 -20
- package/dist/geometry/units.d.ts +20 -12
- package/dist/geometry/units.js +20 -12
- package/dist/index.d.ts +52 -66
- package/dist/index.js +6 -18
- package/dist/messages.d.ts +7 -7
- package/dist/modes/draw/circle.js +83 -207
- package/dist/modes/draw/commit-layer.d.ts +5 -16
- package/dist/modes/draw/commit-layer.js +2 -13
- package/dist/modes/draw/freehand.js +108 -246
- package/dist/modes/draw/image.js +4 -2
- package/dist/modes/draw/index.d.ts +5 -5
- package/dist/modes/draw/index.js +5 -5
- package/dist/modes/draw/line.js +18 -354
- package/dist/modes/draw/point.js +29 -78
- package/dist/modes/draw/polygon.js +23 -368
- package/dist/modes/draw/trace-support.d.ts +43 -36
- package/dist/modes/draw/trace-support.js +95 -98
- package/dist/modes/draw/vertex-drawing.d.ts +1 -0
- package/dist/modes/draw/vertex-drawing.js +176 -0
- package/dist/modes/handler.d.ts +1 -285
- package/dist/modes/manager.d.ts +2 -2
- package/dist/modes/manager.js +3 -0
- package/dist/modes/select/box-selection.d.ts +3 -3
- package/dist/modes/select/box-selection.js +2 -1
- package/dist/modes/select/click-handler.d.ts +5 -5
- package/dist/modes/select/click-handler.js +22 -20
- package/dist/modes/select/cursor-handler.d.ts +2 -2
- package/dist/modes/select/drag/intermediate-writes.js +1 -1
- package/dist/modes/select/drag/move.js +3 -3
- package/dist/modes/select/drag/operation.d.ts +3 -3
- package/dist/modes/select/drag/radius.js +5 -4
- package/dist/modes/select/drag/transform.d.ts +2 -2
- package/dist/modes/select/drag/transform.js +11 -5
- package/dist/modes/select/drag/vertex.d.ts +2 -2
- package/dist/modes/select/drag/vertex.js +13 -8
- package/dist/modes/select/drag-handler.js +44 -25
- package/dist/modes/select/mode.js +17 -17
- package/dist/modes/select/shortcut-handler.d.ts +8 -8
- package/dist/modes/select/shortcut-handler.js +9 -7
- package/dist/operations/layer-operations.js +29 -168
- package/dist/operations/resize.d.ts +2 -2
- package/dist/operations/resize.js +5 -5
- package/dist/operations/rotate.js +5 -5
- package/dist/operations/selection-operations.d.ts +16 -1
- package/dist/operations/selection-operations.js +28 -13
- package/dist/operations/shared-vertex.js +4 -2
- package/dist/operations/trace-graph.d.ts +0 -18
- package/dist/operations/trace-graph.js +0 -18
- package/dist/operations/vertex.js +36 -35
- package/dist/shared/color.d.ts +1 -0
- package/dist/shared/color.js +245 -0
- package/dist/shared/config/constants.d.ts +1 -54
- package/dist/shared/config/constants.js +1 -58
- package/dist/shared/config/feature-style.d.ts +16 -13
- package/dist/shared/config/feature-style.js +9 -0
- package/dist/shared/config/rendering.d.ts +3 -3
- package/dist/shared/config/selection-highlight.d.ts +0 -15
- package/dist/shared/config/selection-highlight.js +4 -7
- package/dist/shared/config/selection.d.ts +2 -32
- package/dist/shared/config/selection.js +0 -18
- package/dist/shared/config/topology.d.ts +2 -2
- package/dist/shared/config/trace.d.ts +4 -4
- package/dist/shared/math/angle.d.ts +1 -1
- package/dist/shared/math/angle.js +1 -1
- package/dist/shared/math/circle.d.ts +1 -1
- package/dist/shared/math/circle.js +1 -1
- package/dist/shared/math/distance.d.ts +2 -1
- package/dist/shared/math/distance.js +3 -2
- package/dist/shared/math/index.d.ts +1 -1
- package/dist/shared/math/index.js +1 -1
- package/dist/shared/math/transform.d.ts +23 -0
- package/dist/shared/math/transform.js +47 -28
- package/dist/shared/properties.d.ts +18 -0
- package/dist/shared/properties.js +129 -0
- package/dist/shared/types/events.d.ts +15 -7
- package/dist/shared/types/model.d.ts +109 -159
- package/dist/shared/types/style.d.ts +1 -1
- package/dist/shared/utils/color.d.ts +2 -36
- package/dist/shared/utils/color.js +13 -70
- package/dist/shared/utils/coordinates.d.ts +30 -4
- package/dist/shared/utils/coordinates.js +56 -10
- package/dist/shared/utils/event-emitter.d.ts +1 -262
- package/dist/shared/utils/event-emitter.js +4 -3
- package/dist/shared/utils/feature-bbox.js +8 -7
- package/dist/shared/utils/feature-segments.js +5 -4
- package/dist/shared/utils/image.d.ts +0 -4
- package/dist/shared/utils/image.js +0 -6
- package/dist/shared/utils/name-generator.d.ts +14 -20
- package/dist/shared/utils/name-generator.js +20 -3
- package/dist/shared/utils/pixel-ratio.d.ts +9 -3
- package/dist/shared/utils/pixel-ratio.js +13 -4
- package/dist/shared/utils/property.d.ts +7 -50
- package/dist/shared/utils/property.js +22 -87
- package/dist/snapping/custom-targets.js +21 -4
- package/dist/snapping/indicator.js +20 -11
- package/dist/snapping/providers/display.d.ts +6 -1
- package/dist/snapping/providers/display.js +2 -1
- package/dist/snapping/providers/guide.d.ts +3 -43
- package/dist/snapping/providers/guide.js +1 -44
- package/dist/snapping/providers/intersection.js +1 -1
- package/dist/snapping/providers/store.js +3 -3
- package/dist/snapping/service.js +18 -7
- package/dist/snapping/types.d.ts +9 -35
- package/dist/store/draw-store.js +233 -142
- package/dist/store/local-visibility.d.ts +11 -6
- package/dist/store/local-visibility.js +38 -7
- package/dist/store/lock.d.ts +0 -6
- package/dist/store/lock.js +0 -6
- package/dist/store/memory/change-bus.d.ts +3 -3
- package/dist/store/memory/change-bus.js +12 -0
- package/dist/store/memory/file-store.d.ts +2 -2
- package/dist/store/memory/ui-state.d.ts +1 -51
- package/dist/store/memory/ui-state.js +122 -134
- package/dist/store/memory.d.ts +1 -8
- package/dist/store/memory.js +249 -45
- package/dist/store/ordering.d.ts +9 -0
- package/dist/store/ordering.js +17 -0
- package/dist/store/spatial/spatial-index.d.ts +1 -1
- package/dist/store/spatial/spatial-index.js +1 -1
- package/dist/store/spatial/store-spatial-index.d.ts +3 -1
- package/dist/store/spatial/store-spatial-index.js +9 -3
- package/dist/store/store.d.ts +66 -107
- package/dist/store/types.d.ts +1 -1
- package/dist/store/writable-layer.d.ts +1 -1
- package/dist/store/writable-layer.js +2 -2
- package/dist/table/builder.d.ts +83 -0
- package/dist/table/builder.js +381 -0
- package/dist/table/index.d.ts +37 -0
- package/dist/table/index.js +5 -0
- package/dist/table/packed-rtree.d.ts +1 -0
- package/dist/{display → table}/packed-rtree.js +1 -1
- package/dist/table/partition.d.ts +1 -0
- package/dist/{display → table}/partition.js +3 -3
- package/dist/table/prepare.d.ts +44 -0
- package/dist/table/prepare.js +136 -0
- package/dist/table/table.d.ts +1 -0
- package/dist/{display/columnar → table}/table.js +29 -25
- package/dist/{display/columnar → table}/types.d.ts +68 -72
- package/dist/table/types.js +3 -0
- package/dist/view/coordinator.js +4 -3
- package/dist/view/feature-companion.d.ts +13 -7
- package/dist/view/feature-companion.js +11 -3
- package/dist/view/globe-subdivision.js +3 -3
- package/dist/view/layer/attach.d.ts +1 -1
- package/dist/view/layer/attach.js +1 -1
- package/dist/view/layer/custom-layer.js +40 -11
- package/dist/view/layer/display-list.js +2 -1
- package/dist/view/layer/drape-planner.d.ts +2 -2
- package/dist/view/layer/frame-render.d.ts +3 -3
- package/dist/view/layer/frame-render.js +7 -2
- package/dist/view/layer/frame-state.d.ts +6 -6
- package/dist/view/layer/index.d.ts +2 -2
- package/dist/view/layer/index.js +1 -1
- package/dist/view/layer/render.d.ts +4 -4
- package/dist/view/layer/render.js +3 -8
- package/dist/view/layer/renderers.d.ts +2 -2
- package/dist/view/layer/renderers.js +1 -1
- package/dist/view/layer/slot-manager.d.ts +2 -2
- package/dist/view/layer/slot-manager.js +4 -4
- package/dist/view/layer/slots.d.ts +2 -2
- package/dist/view/layer/slots.js +1 -1
- package/dist/view/layer/store-retained-bbox.js +3 -2
- package/dist/view/layer/store-retained-classify.d.ts +5 -7
- package/dist/view/layer/store-retained-classify.js +19 -7
- package/dist/view/layer/store-retained-collect.js +8 -7
- package/dist/view/layer/store-retained-coord-patch.d.ts +0 -8
- package/dist/view/layer/store-retained-coord-patch.js +13 -4
- package/dist/view/layer/store-retained-immediate.d.ts +3 -3
- package/dist/view/layer/store-retained-immediate.js +3 -8
- package/dist/view/layer/store-retained-invalidation.d.ts +2 -2
- package/dist/view/layer/store-retained.d.ts +2 -2
- package/dist/view/layer/store-retained.js +1 -1
- package/dist/view/renderers/batch-manager.js +8 -7
- package/dist/view/renderers/drawer.js +21 -15
- package/dist/view/renderers/image.js +13 -39
- package/dist/view/renderers/line/line-types.d.ts +3 -3
- package/dist/view/renderers/line/sdf-line.js +3 -1
- package/dist/view/renderers/point/billboard-depth.js +1 -1
- package/dist/view/renderers/point/point-instance.js +1 -1
- package/dist/view/renderers/point/point-shape.js +2 -2
- package/dist/view/renderers/point/point-style.js +48 -4
- package/dist/view/renderers/polygon/batch.js +1 -2
- package/dist/view/renderers/polygon/fill.js +3 -1
- package/dist/view/renderers/polygon/sdf-polygon.js +2 -3
- package/dist/view/renderers/polygon/triangulator.d.ts +1 -1
- package/dist/view/renderers/stroke.js +3 -1
- package/dist/view/shaders/helpers.d.ts +2 -42
- package/dist/view/shaders/helpers.js +0 -6
- package/dist/view/shaders/projection.d.ts +15 -7
- package/dist/view/shaders/projection.js +23 -6
- package/dist/view/shaders/quad.d.ts +16 -12
- package/dist/view/shaders/quad.js +34 -13
- package/dist/view/style-rule.d.ts +5 -42
- package/dist/view/style-rule.js +20 -44
- package/dist/view/terrain/binding.d.ts +1 -0
- package/dist/view/terrain/binding.js +29 -0
- package/dist/view/terrain/context.d.ts +3 -4
- package/dist/view/terrain/context.js +4 -5
- package/dist/view/terrain/drape/geometry.js +1 -1
- package/dist/view/terrain/drape/pass.d.ts +1 -1
- package/dist/view/terrain/drape/pass.js +8 -7
- package/dist/view/terrain/polygon.d.ts +9 -5
- package/dist/view/terrain/polygon.js +16 -2
- package/dist/view/terrain/state.d.ts +1 -1
- package/dist/view/terrain/state.js +1 -1
- package/dist/view/terrain/tessellation.d.ts +2 -2
- package/dist/view/terrain/tessellation.js +1 -1
- package/dist/view/ui/auxiliary-handles.d.ts +6 -29
- package/dist/view/ui/bounds.js +8 -12
- package/dist/view/ui/handle-test.js +2 -2
- package/dist/view/ui/handle-thinning.js +17 -17
- package/dist/view/ui/handles.js +21 -13
- package/dist/view/ui/helper.d.ts +1 -1
- package/dist/view/ui/helper.js +1 -1
- package/dist/view/ui/index.d.ts +1 -1
- package/dist/view/ui/selection-scope.js +4 -2
- package/dist/view/ui/selection-ui/bounding-box.js +6 -6
- package/dist/view/ui/selection-ui/extension-registry.d.ts +31 -20
- package/dist/view/ui/selection-ui/extension-registry.js +70 -7
- package/dist/view/ui/selection-ui/index.d.ts +2 -2
- package/dist/view/ui/selection-ui/index.js +1 -1
- package/dist/view/ui/selection-ui/renderer.js +15 -38
- package/dist/view/ui/selection-ui/types.d.ts +17 -2
- package/dist/view/ui/selection-ui-drawer.d.ts +8 -0
- package/dist/view/ui/selection-ui-drawer.js +63 -2
- package/dist/view/ui/tentative.js +1 -1
- package/dist/webgl/index.d.ts +65 -0
- package/dist/webgl/index.js +62 -0
- package/package.json +20 -9
- package/dist/api/api.d.ts +0 -1259
- package/dist/api/api.js +0 -86
- package/dist/api/context.d.ts +0 -173
- package/dist/api/display-api.js +0 -23
- package/dist/api/event-api.d.ts +0 -13
- package/dist/api/event-api.js +0 -17
- package/dist/api/extension-api.d.ts +0 -46
- package/dist/api/extension-api.js +0 -85
- package/dist/api/feature-api.d.ts +0 -11
- package/dist/api/feature-api.js +0 -101
- package/dist/api/geometry/apply.d.ts +0 -51
- package/dist/api/geometry/boolean.d.ts +0 -28
- package/dist/api/geometry/boolean.js +0 -65
- package/dist/api/geometry/types.d.ts +0 -31
- package/dist/api/geometry-operations.d.ts +0 -162
- package/dist/api/geometry-operations.js +0 -94
- package/dist/api/group-api.d.ts +0 -10
- package/dist/api/group-api.js +0 -78
- package/dist/api/import-export/constants.d.ts +0 -29
- package/dist/api/import-export/constants.js +0 -40
- package/dist/api/import-export/file-name.d.ts +0 -10
- package/dist/api/import-export/file-name.js +0 -20
- package/dist/api/import-export/geojson-export.d.ts +0 -19
- package/dist/api/import-export/image-import.d.ts +0 -12
- package/dist/api/import-export/image-import.js +0 -53
- package/dist/api/import-export/index.d.ts +0 -9
- package/dist/api/import-export/index.js +0 -107
- package/dist/api/import-export/native-format.d.ts +0 -15
- package/dist/api/import-export/style-validation.d.ts +0 -27
- package/dist/api/import-export/style-validation.js +0 -49
- package/dist/api/import-export/types.d.ts +0 -26
- package/dist/api/index.d.ts +0 -15
- package/dist/api/index.js +0 -3
- package/dist/api/input-api.d.ts +0 -158
- package/dist/api/input-api.js +0 -144
- package/dist/api/instance-api.d.ts +0 -38
- package/dist/api/instance-api.js +0 -136
- package/dist/api/layer-api.d.ts +0 -12
- package/dist/api/layer-api.js +0 -62
- package/dist/api/selection-api.d.ts +0 -7
- package/dist/api/selection-api.js +0 -78
- package/dist/api/snapping-api.d.ts +0 -125
- package/dist/api/snapping-api.js +0 -50
- package/dist/api/topology-api.d.ts +0 -30
- package/dist/api/topology-api.js +0 -16
- package/dist/api/tracing-api.d.ts +0 -31
- package/dist/api/tracing-api.js +0 -16
- package/dist/dispatcher/hit-test/index.d.ts +0 -14
- package/dist/dispatcher/hit-test/index.js +0 -9
- package/dist/dispatcher/index.d.ts +0 -15
- package/dist/dispatcher/index.js +0 -3
- package/dist/display/columnar/index.d.ts +0 -12
- package/dist/display/columnar/index.js +0 -13
- package/dist/display/columnar/prepare.d.ts +0 -42
- package/dist/display/columnar/prepare.js +0 -116
- package/dist/display/index.d.ts +0 -13
- package/dist/display/types.js +0 -43
- package/dist/maplibre-gl-draw.d.ts +0 -47
- package/dist/modes/cursor.js +0 -72
- package/dist/modes/index.d.ts +0 -7
- package/dist/operations/index.d.ts +0 -9
- package/dist/operations/index.js +0 -3
- package/dist/plugins/index.d.ts +0 -10
- package/dist/plugins/mutation-hooks.d.ts +0 -28
- package/dist/plugins/mutation-hooks.js +0 -84
- package/dist/plugins/plugin-context.js +0 -367
- package/dist/plugins/plugin-manager.d.ts +0 -103
- package/dist/plugins/plugin-manager.js +0 -316
- package/dist/plugins/plugin.d.ts +0 -529
- package/dist/shared/config/index.d.ts +0 -17
- package/dist/shared/config/index.js +0 -8
- package/dist/shared/utils/index.d.ts +0 -15
- package/dist/shared/utils/index.js +0 -24
- package/dist/snapping/index.d.ts +0 -14
- package/dist/snapping/index.js +0 -4
- package/dist/store/change-merger.js +0 -102
- package/dist/store/event-bridge.js +0 -161
- package/dist/store/index.d.ts +0 -12
- package/dist/store/index.js +0 -4
- package/dist/view/index.d.ts +0 -47
- package/dist/view/index.js +0 -20
- /package/dist/api/{geometry/types.js → datasets.js} +0 -0
- /package/dist/api/{import-export/types.js → document.js} +0 -0
- /package/dist/{display/columnar/types.js → api/drawing.js} +0 -0
- /package/dist/{display/index.js → api/events.js} +0 -0
- /package/dist/{modes/index.js → api/extension/context.js} +0 -0
- /package/dist/{plugins/index.js → api/extension/feature-type.js} +0 -0
- /package/dist/{plugins/plugin.js → api/extension/mode.js} +0 -0
- /package/dist/api/{display-api.d.ts → impl/adapters.d.ts} +0 -0
- /package/dist/{display/columnar/source.d.ts → api/impl/contexts.d.ts} +0 -0
- /package/dist/{display/columnar/table.d.ts → api/impl/create-draw.d.ts} +0 -0
- /package/dist/{display/interaction.d.ts → api/impl/datasets.d.ts} +0 -0
- /package/dist/{display/manager.d.ts → api/impl/destroy-guard.d.ts} +0 -0
- /package/dist/{display/packed-rtree.d.ts → api/impl/document.d.ts} +0 -0
- /package/dist/{display/partition.d.ts → api/impl/drawing.d.ts} +0 -0
- /package/dist/{display/provider.d.ts → api/impl/engine.d.ts} +0 -0
- /package/dist/{display/source.d.ts → api/impl/events.d.ts} +0 -0
- /package/dist/{display/spatial.d.ts → api/impl/extension-host.d.ts} +0 -0
- /package/dist/{display/style.d.ts → api/impl/extensions.d.ts} +0 -0
- /package/dist/{display/triangulation.d.ts → api/impl/features.d.ts} +0 -0
- /package/dist/{modes/cursor.d.ts → api/impl/geometry/types.d.ts} +0 -0
- /package/dist/{plugins/plugin-context.d.ts → api/impl/hidden.d.ts} +0 -0
- /package/dist/api/{import-export → impl/import-export}/embedded-file.d.ts +0 -0
- /package/dist/api/{import-export → impl/import-export}/own-property.d.ts +0 -0
- /package/dist/api/{import-export → impl/import-export}/own-property.js +0 -0
- /package/dist/{store/change-merger.d.ts → api/impl/input.d.ts} +0 -0
- /package/dist/{store/event-bridge.d.ts → api/impl/layers.d.ts} +0 -0
- /package/dist/{display → dataset}/chunk-set.d.ts +0 -0
- /package/dist/{display → dataset}/chunk-set.js +0 -0
- /package/dist/{display → dataset}/dataset.d.ts +0 -0
- /package/dist/{display → dataset}/manager.js +0 -0
- /package/dist/{display → dataset}/provider.js +0 -0
- /package/dist/{display → dataset}/selection.d.ts +0 -0
- /package/dist/{display → dataset}/selection.js +0 -0
|
@@ -1,222 +1,98 @@
|
|
|
1
1
|
// SPDX-FileCopyrightText: 2026 SAKAIDA Atsushi
|
|
2
2
|
// SPDX-License-Identifier: AGPL-3.0-only
|
|
3
|
-
import { haversineDistanceMeters, initialBearingDegrees } from '../../geometry/
|
|
4
|
-
import {
|
|
3
|
+
import { haversineDistanceMeters, initialBearingDegrees } from '../../geometry/distance.js';
|
|
4
|
+
import { drawProperties } from '../../shared/properties.js';
|
|
5
5
|
/** Default angle of the radius handle (toward the lower right) */
|
|
6
6
|
const DEFAULT_RADIUS_HANDLE_ANGLE = 135;
|
|
7
7
|
/** Minimum radius (in meters) */
|
|
8
8
|
const MIN_RADIUS_METERS = 1;
|
|
9
9
|
/**
|
|
10
|
-
*
|
|
10
|
+
* The factory of the circle drawing mode
|
|
11
11
|
*
|
|
12
12
|
* @internal
|
|
13
13
|
*/
|
|
14
|
-
export
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
enumerable: true,
|
|
30
|
-
configurable: true,
|
|
31
|
-
writable: true,
|
|
32
|
-
value: void 0
|
|
33
|
-
});
|
|
34
|
-
/** Center coordinate of the circle */
|
|
35
|
-
Object.defineProperty(this, "center", {
|
|
36
|
-
enumerable: true,
|
|
37
|
-
configurable: true,
|
|
38
|
-
writable: true,
|
|
39
|
-
value: null
|
|
40
|
-
});
|
|
41
|
-
/** Radius (in meters) */
|
|
42
|
-
Object.defineProperty(this, "radiusMeters", {
|
|
43
|
-
enumerable: true,
|
|
44
|
-
configurable: true,
|
|
45
|
-
writable: true,
|
|
46
|
-
value: 0
|
|
47
|
-
});
|
|
48
|
-
/** Angle of the radius handle (in degrees) */
|
|
49
|
-
Object.defineProperty(this, "radiusHandleAngle", {
|
|
50
|
-
enumerable: true,
|
|
51
|
-
configurable: true,
|
|
52
|
-
writable: true,
|
|
53
|
-
value: DEFAULT_RADIUS_HANDLE_ANGLE
|
|
54
|
-
});
|
|
55
|
-
/** Drawing phase: 'waiting' = the center is not set yet, 'adjusting' = adjusting the radius */
|
|
56
|
-
Object.defineProperty(this, "phase", {
|
|
57
|
-
enumerable: true,
|
|
58
|
-
configurable: true,
|
|
59
|
-
writable: true,
|
|
60
|
-
value: 'waiting'
|
|
61
|
-
});
|
|
62
|
-
/** The Feature ID that is going to be created */
|
|
63
|
-
Object.defineProperty(this, "pendingFeatureId", {
|
|
64
|
-
enumerable: true,
|
|
65
|
-
configurable: true,
|
|
66
|
-
writable: true,
|
|
67
|
-
value: null
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
onStart(context) {
|
|
71
|
-
this.context = context;
|
|
72
|
-
// Change the cursor to a crosshair
|
|
73
|
-
this.context.map.getCanvas().style.cursor = 'crosshair';
|
|
74
|
-
// Clear the selection (not notified as a change)
|
|
75
|
-
this.context.store.transact(() => {
|
|
76
|
-
this.context.store.setSelection(null, []);
|
|
77
|
-
}, 'silent');
|
|
78
|
-
// Reset the state
|
|
79
|
-
this.reset();
|
|
80
|
-
// Generate the Feature ID in advance
|
|
81
|
-
this.pendingFeatureId = this.context.generateFeatureId();
|
|
82
|
-
}
|
|
83
|
-
onStop() {
|
|
84
|
-
// Restore the cursor
|
|
85
|
-
this.context.map.getCanvas().style.cursor = '';
|
|
86
|
-
// Clear the tentative state
|
|
87
|
-
this.context.store.setTentative(null);
|
|
88
|
-
this.reset();
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* A double click while drawing is two clicks of the drawing; it never zooms the map
|
|
92
|
-
* (consumed by preventing its default action)
|
|
93
|
-
*/
|
|
94
|
-
onDoubleClick(event) {
|
|
95
|
-
event.originalEvent.preventDefault();
|
|
96
|
-
}
|
|
97
|
-
onClick(event) {
|
|
98
|
-
const coord = [event.lngLat.lng, event.lngLat.lat];
|
|
99
|
-
if (this.phase === 'waiting') {
|
|
100
|
-
// Set the center
|
|
101
|
-
this.center = coord;
|
|
102
|
-
this.phase = 'adjusting';
|
|
103
|
-
this.radiusMeters = 0;
|
|
104
|
-
// Update the tentative state
|
|
105
|
-
this.updateTentative();
|
|
106
|
-
}
|
|
107
|
-
else if (this.phase === 'adjusting') {
|
|
108
|
-
// Confirm if the radius is at least the minimum value
|
|
109
|
-
if (this.radiusMeters >= MIN_RADIUS_METERS) {
|
|
110
|
-
this.finishCircle();
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
onMouseMove(event) {
|
|
115
|
-
if (this.phase === 'adjusting' && this.center) {
|
|
116
|
-
// Compute the distance from the center to the mouse position
|
|
117
|
-
const mouseCoord = [event.lngLat.lng, event.lngLat.lat];
|
|
118
|
-
this.radiusMeters = haversineDistanceMeters(this.center, mouseCoord);
|
|
119
|
-
// The great-circle bearing from the center to the mouse position. The handle is placed
|
|
120
|
-
// with destinationPoint, the inverse of this bearing, so it lands on the pointer
|
|
121
|
-
this.radiusHandleAngle = initialBearingDegrees(this.center, mouseCoord);
|
|
122
|
-
// Update the tentative state
|
|
123
|
-
this.updateTentative();
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
onKeyDown(event) {
|
|
127
|
-
if (event.key === 'Escape') {
|
|
128
|
-
if (this.phase === 'adjusting') {
|
|
129
|
-
// Cancel if drawing is in progress
|
|
130
|
-
this.reset();
|
|
131
|
-
this.context.store.setTentative(null);
|
|
132
|
-
}
|
|
133
|
-
else {
|
|
134
|
-
// Return to the select mode if drawing is not in progress
|
|
135
|
-
this.context.setMode('select');
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
/**
|
|
140
|
-
* Called after an external state change
|
|
141
|
-
*
|
|
142
|
-
* Resets the state of the drawing in progress so that the next drawing operation can start
|
|
143
|
-
* normally.
|
|
144
|
-
*/
|
|
145
|
-
onExternalStateChange() {
|
|
146
|
-
this.reset();
|
|
147
|
-
this.context.store.setTentative(null);
|
|
148
|
-
}
|
|
149
|
-
/**
|
|
150
|
-
* Confirms the circle
|
|
151
|
-
*/
|
|
152
|
-
finishCircle() {
|
|
153
|
-
if (!this.center || this.radiusMeters < MIN_RADIUS_METERS) {
|
|
154
|
-
return;
|
|
155
|
-
}
|
|
156
|
-
const { store, autoNameGenerator } = this.context;
|
|
157
|
-
// Discard the drawing when no layer can be written any more
|
|
158
|
-
const layerId = resolveCommitLayer(this.context);
|
|
159
|
-
if (layerId === null)
|
|
14
|
+
export const drawCircleMode = (ctx) => {
|
|
15
|
+
/** The center, once the first click set it */
|
|
16
|
+
let center = null;
|
|
17
|
+
let radiusMeters = 0;
|
|
18
|
+
let radiusHandleAngle = DEFAULT_RADIUS_HANDLE_ANGLE;
|
|
19
|
+
/** The values of the circle as it stands */
|
|
20
|
+
const circleProperties = () => drawProperties({ radiusMeters, radiusHandleAngle });
|
|
21
|
+
const reset = () => {
|
|
22
|
+
center = null;
|
|
23
|
+
radiusMeters = 0;
|
|
24
|
+
radiusHandleAngle = DEFAULT_RADIUS_HANDLE_ANGLE;
|
|
25
|
+
ctx.preview.clear();
|
|
26
|
+
};
|
|
27
|
+
const showPreview = () => {
|
|
28
|
+
if (!center)
|
|
160
29
|
return;
|
|
161
|
-
|
|
162
|
-
const autoName = autoNameGenerator.generateName('Circle');
|
|
163
|
-
// Use the ID generated in advance (generate a new one if there is none)
|
|
164
|
-
const featureId = this.pendingFeatureId ?? this.context.generateFeatureId();
|
|
165
|
-
// Create a new circle feature
|
|
166
|
-
const feature = {
|
|
167
|
-
id: featureId,
|
|
30
|
+
ctx.preview.set({
|
|
168
31
|
type: 'Circle',
|
|
169
|
-
coordinates:
|
|
170
|
-
|
|
171
|
-
properties: {
|
|
172
|
-
radiusMeters: this.radiusMeters,
|
|
173
|
-
radiusHandleAngle: this.radiusHandleAngle,
|
|
174
|
-
...createdZoomProperty(this.context),
|
|
175
|
-
// The polygon coordinates for rendering are computed at render time, so they are not saved
|
|
176
|
-
...(autoName !== undefined && { name: autoName }),
|
|
177
|
-
},
|
|
178
|
-
locked: false,
|
|
179
|
-
visible: true,
|
|
180
|
-
};
|
|
181
|
-
// Bundle the feature creation and the selection into a single transaction
|
|
182
|
-
// (so that both are undone at once on undo)
|
|
183
|
-
store.transact(() => {
|
|
184
|
-
store.createFeature(feature);
|
|
185
|
-
// Clear the tentative state
|
|
186
|
-
store.setTentative(null);
|
|
187
|
-
// Select the created feature
|
|
188
|
-
store.setSelection('feature', [feature.id]);
|
|
32
|
+
geometry: { type: 'Point', coordinates: center },
|
|
33
|
+
properties: circleProperties(),
|
|
189
34
|
});
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
this.context.setMode('select');
|
|
194
|
-
}
|
|
195
|
-
/**
|
|
196
|
-
* Updates the tentative state
|
|
197
|
-
*/
|
|
198
|
-
updateTentative() {
|
|
199
|
-
if (!this.center) {
|
|
200
|
-
this.context.store.setTentative(null);
|
|
35
|
+
};
|
|
36
|
+
const finish = () => {
|
|
37
|
+
if (!center || radiusMeters < MIN_RADIUS_METERS)
|
|
201
38
|
return;
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
39
|
+
const at = center;
|
|
40
|
+
ctx.draw.transact(() => {
|
|
41
|
+
const feature = ctx.commitFeature({
|
|
42
|
+
type: 'Circle',
|
|
43
|
+
geometry: { type: 'Point', coordinates: at },
|
|
44
|
+
properties: circleProperties(),
|
|
45
|
+
});
|
|
46
|
+
if (feature)
|
|
47
|
+
ctx.draw.selection.set('feature', [feature.id]);
|
|
210
48
|
});
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
49
|
+
reset();
|
|
50
|
+
ctx.setMode('select');
|
|
51
|
+
};
|
|
52
|
+
return {
|
|
53
|
+
writes: true,
|
|
54
|
+
onEnter() {
|
|
55
|
+
ctx.cursor.set('crosshair');
|
|
56
|
+
ctx.draw.transact(() => ctx.draw.selection.clear(), { source: 'silent' });
|
|
57
|
+
reset();
|
|
58
|
+
},
|
|
59
|
+
onExit() {
|
|
60
|
+
ctx.cursor.reset();
|
|
61
|
+
reset();
|
|
62
|
+
},
|
|
63
|
+
// What was being drawn is dropped when the state is reset from outside
|
|
64
|
+
onCancel: reset,
|
|
65
|
+
// A double click while drawing is two clicks of the drawing; it never zooms the map
|
|
66
|
+
onDoubleClick: () => true,
|
|
67
|
+
onClick(event) {
|
|
68
|
+
if (!center) {
|
|
69
|
+
center = event.snapped.lngLat;
|
|
70
|
+
radiusMeters = 0;
|
|
71
|
+
showPreview();
|
|
72
|
+
}
|
|
73
|
+
else if (radiusMeters >= MIN_RADIUS_METERS) {
|
|
74
|
+
finish();
|
|
75
|
+
}
|
|
76
|
+
return true;
|
|
77
|
+
},
|
|
78
|
+
onPointerMove(event) {
|
|
79
|
+
if (!center)
|
|
80
|
+
return false;
|
|
81
|
+
const from = [center[0], center[1]];
|
|
82
|
+
const to = [event.snapped.lngLat[0], event.snapped.lngLat[1]];
|
|
83
|
+
radiusMeters = haversineDistanceMeters(from, to);
|
|
84
|
+
radiusHandleAngle = initialBearingDegrees(from, to);
|
|
85
|
+
showPreview();
|
|
86
|
+
return false;
|
|
87
|
+
},
|
|
88
|
+
onKeyDown(event) {
|
|
89
|
+
if (event.key !== 'Escape')
|
|
90
|
+
return false;
|
|
91
|
+
if (center)
|
|
92
|
+
reset();
|
|
93
|
+
else
|
|
94
|
+
ctx.setMode('select');
|
|
95
|
+
return true;
|
|
96
|
+
},
|
|
97
|
+
};
|
|
98
|
+
};
|
|
@@ -1,26 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* The layer a drawing mode of the engine commits into
|
|
3
3
|
*/
|
|
4
|
-
import type {
|
|
4
|
+
import type { EngineModeContext } from '../handler.js';
|
|
5
5
|
/**
|
|
6
6
|
* Resolves the layer a drawing mode commits a new feature into
|
|
7
7
|
*
|
|
8
|
-
* Applies the commit rule of `
|
|
8
|
+
* Applies the commit rule of `EngineModeContext.getCurrentLayerId`: it returns the writable layer,
|
|
9
9
|
* and when no layer can be written any more (the layer was deleted, locked or hidden while
|
|
10
10
|
* drawing), the drawing is discarded instead: the tentative state is cleared and the mode
|
|
11
11
|
* returns to select, which stops the current handler. The caller then returns without
|
|
12
12
|
* creating anything, so no exception reaches the input handling. A plugin mode follows the
|
|
13
|
-
* same rule through the
|
|
13
|
+
* same rule through the EngineModeContext.
|
|
14
14
|
*/
|
|
15
|
-
export declare function resolveCommitLayer(context:
|
|
16
|
-
/**
|
|
17
|
-
* The created zoom a drawing mode writes into the properties of a new feature
|
|
18
|
-
*
|
|
19
|
-
* When the instance lets line widths follow the zoom (`ModeContext.scaleWithZoom`), it is the
|
|
20
|
-
* zoom at the time of the commit, from which the widths grow and shrink with the map. Otherwise
|
|
21
|
-
* nothing is written, and the feature keeps its widths on the screen like one added through
|
|
22
|
-
* the API.
|
|
23
|
-
*/
|
|
24
|
-
export declare function createdZoomProperty(context: ModeContext): {
|
|
25
|
-
createdZoom?: number;
|
|
26
|
-
};
|
|
15
|
+
export declare function resolveCommitLayer(context: EngineModeContext): string | null;
|
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
/**
|
|
4
4
|
* Resolves the layer a drawing mode commits a new feature into
|
|
5
5
|
*
|
|
6
|
-
* Applies the commit rule of `
|
|
6
|
+
* Applies the commit rule of `EngineModeContext.getCurrentLayerId`: it returns the writable layer,
|
|
7
7
|
* and when no layer can be written any more (the layer was deleted, locked or hidden while
|
|
8
8
|
* drawing), the drawing is discarded instead: the tentative state is cleared and the mode
|
|
9
9
|
* returns to select, which stops the current handler. The caller then returns without
|
|
10
10
|
* creating anything, so no exception reaches the input handling. A plugin mode follows the
|
|
11
|
-
* same rule through the
|
|
11
|
+
* same rule through the EngineModeContext.
|
|
12
12
|
*/
|
|
13
13
|
export function resolveCommitLayer(context) {
|
|
14
14
|
const layerId = context.getCurrentLayerId();
|
|
@@ -18,14 +18,3 @@ export function resolveCommitLayer(context) {
|
|
|
18
18
|
context.setMode('select');
|
|
19
19
|
return null;
|
|
20
20
|
}
|
|
21
|
-
/**
|
|
22
|
-
* The created zoom a drawing mode writes into the properties of a new feature
|
|
23
|
-
*
|
|
24
|
-
* When the instance lets line widths follow the zoom (`ModeContext.scaleWithZoom`), it is the
|
|
25
|
-
* zoom at the time of the commit, from which the widths grow and shrink with the map. Otherwise
|
|
26
|
-
* nothing is written, and the feature keeps its widths on the screen like one added through
|
|
27
|
-
* the API.
|
|
28
|
-
*/
|
|
29
|
-
export function createdZoomProperty(context) {
|
|
30
|
-
return context.scaleWithZoom ? { createdZoom: context.map.getZoom() } : {};
|
|
31
|
-
}
|