leaflet-polydraw 1.3.3 → 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/README.md +7 -2
- package/dist/icons/icon-donut.svg +5 -0
- package/dist/icons/icon-grip-vertical.svg +8 -0
- package/dist/icons/icon-layer-toggle.svg +6 -0
- package/dist/icons/icon-warning.svg +22 -0
- package/dist/leaflet-polydraw.css +1 -1
- package/dist/polydraw.es.js +9020 -3261
- package/dist/polydraw.es.js.map +1 -1
- package/dist/polydraw.umd.min.js +1 -1
- package/dist/polydraw.umd.min.js.map +1 -1
- package/dist/styles/polydraw.css +414 -0
- package/dist/types/buttons.d.ts.map +1 -1
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/coordinate-utils.d.ts.map +1 -1
- package/dist/types/enums.d.ts +4 -0
- package/dist/types/enums.d.ts.map +1 -1
- package/dist/types/guards/config-deprecation-guard.d.ts +3 -0
- package/dist/types/guards/config-deprecation-guard.d.ts.map +1 -0
- package/dist/types/guards/config-runtime-fallback-guard.d.ts +3 -0
- package/dist/types/guards/config-runtime-fallback-guard.d.ts.map +1 -0
- package/dist/types/index.d.ts +1 -1
- package/dist/types/managers/event-manager.d.ts +46 -0
- package/dist/types/managers/event-manager.d.ts.map +1 -1
- package/dist/types/managers/history-manager.d.ts +16 -3
- package/dist/types/managers/history-manager.d.ts.map +1 -1
- package/dist/types/managers/layer-manager.d.ts +92 -0
- package/dist/types/managers/layer-manager.d.ts.map +1 -0
- package/dist/types/managers/polygon-draw-manager.d.ts +2 -0
- package/dist/types/managers/polygon-draw-manager.d.ts.map +1 -1
- package/dist/types/managers/polygon-geometry-manager.d.ts +3 -0
- package/dist/types/managers/polygon-geometry-manager.d.ts.map +1 -1
- package/dist/types/managers/polygon-interaction-manager.d.ts +57 -0
- package/dist/types/managers/polygon-interaction-manager.d.ts.map +1 -1
- package/dist/types/managers/polygon-mutation-manager.d.ts +39 -2
- package/dist/types/managers/polygon-mutation-manager.d.ts.map +1 -1
- package/dist/types/polydraw.d.ts +194 -9
- package/dist/types/polydraw.d.ts.map +1 -1
- package/dist/types/popup-factory.d.ts.map +1 -1
- package/dist/types/styles/dynamic-styles.d.ts.map +1 -1
- package/dist/types/transform/donut-validation.d.ts +16 -0
- package/dist/types/transform/donut-validation.d.ts.map +1 -0
- package/dist/types/transform/polygon-transform-controller.d.ts +11 -1
- package/dist/types/transform/polygon-transform-controller.d.ts.map +1 -1
- package/dist/types/transform/transform-overlay.d.ts +8 -1
- package/dist/types/transform/transform-overlay.d.ts.map +1 -1
- package/dist/types/turf-helper.d.ts +5 -2
- package/dist/types/turf-helper.d.ts.map +1 -1
- package/dist/types/types/polydraw-interfaces.d.ts +257 -114
- package/dist/types/types/polydraw-interfaces.d.ts.map +1 -1
- package/dist/types/ui/layer-panel.d.ts +13 -0
- package/dist/types/ui/layer-panel.d.ts.map +1 -0
- package/dist/types/utils/metadata-clone.util.d.ts +2 -0
- package/dist/types/utils/metadata-clone.util.d.ts.map +1 -0
- package/package.json +10 -4
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import * as L from 'leaflet';
|
|
2
|
+
import type { EventManager } from './event-manager';
|
|
3
|
+
import type { LayerSnapshot, LayerInteraction, LayerPanelVisibility } from '../types/polydraw-interfaces';
|
|
4
|
+
export interface LayerState {
|
|
5
|
+
id: string;
|
|
6
|
+
label?: string;
|
|
7
|
+
color: string;
|
|
8
|
+
visible: boolean;
|
|
9
|
+
interaction: LayerInteraction;
|
|
10
|
+
panel: LayerPanelVisibility;
|
|
11
|
+
metadata: Record<string, unknown>;
|
|
12
|
+
featureGroups: L.FeatureGroup[];
|
|
13
|
+
}
|
|
14
|
+
export interface LayerCreateOptions {
|
|
15
|
+
label?: string;
|
|
16
|
+
color?: string;
|
|
17
|
+
visible?: boolean;
|
|
18
|
+
interaction?: LayerInteraction;
|
|
19
|
+
panel?: LayerPanelVisibility;
|
|
20
|
+
metadata?: Record<string, unknown>;
|
|
21
|
+
}
|
|
22
|
+
export type SetActiveLayerResult = 'activated' | 'already-active' | 'not-found' | 'not-visible';
|
|
23
|
+
/**
|
|
24
|
+
* Manages polygon layers and feature-group assignments.
|
|
25
|
+
* Keeps a default layer and supports active-layer scoping for interactions.
|
|
26
|
+
*/
|
|
27
|
+
export declare class LayerManager {
|
|
28
|
+
private readonly eventManager;
|
|
29
|
+
private layers;
|
|
30
|
+
private featureGroupToLayer;
|
|
31
|
+
private activeLayerId;
|
|
32
|
+
private defaultColor;
|
|
33
|
+
constructor(eventManager: EventManager, defaultColor: string);
|
|
34
|
+
getLayerCount(): number;
|
|
35
|
+
getAllLayers(): LayerState[];
|
|
36
|
+
getPanelLayers(): LayerState[];
|
|
37
|
+
getPanelLayerCount(): number;
|
|
38
|
+
getLayer(layerId: string): LayerState | undefined;
|
|
39
|
+
getActiveLayerId(): string;
|
|
40
|
+
getActiveLayer(): LayerState | undefined;
|
|
41
|
+
getOrCreateLayer(layerId: string, colorOrOptions?: string | LayerCreateOptions): LayerState;
|
|
42
|
+
setActiveLayer(layerId: string): boolean;
|
|
43
|
+
setActiveLayerWithResult(layerId: string): SetActiveLayerResult;
|
|
44
|
+
setLayerVisibility(layerId: string, visible: boolean): boolean;
|
|
45
|
+
setLayerColor(layerId: string, color: string): boolean;
|
|
46
|
+
setLayerLabel(layerId: string, label?: string): boolean;
|
|
47
|
+
setLayerInteraction(layerId: string, interaction: LayerInteraction): boolean;
|
|
48
|
+
setLayerPanelVisibility(layerId: string, panel: LayerPanelVisibility): boolean;
|
|
49
|
+
setLayerMetadata(layerId: string, metadata?: Record<string, unknown>): boolean;
|
|
50
|
+
isLayerEditable(layerId: string): boolean;
|
|
51
|
+
isFeatureGroupEditable(featureGroup: L.FeatureGroup): boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Reorder layers by moving layerId to the drop index of targetLayerId.
|
|
54
|
+
* This mirrors list drag/drop behavior used in the layer panel.
|
|
55
|
+
*/
|
|
56
|
+
moveLayer(layerId: string, targetLayerId: string): boolean;
|
|
57
|
+
assignFeatureGroupToLayer(featureGroup: L.FeatureGroup, layerId: string): boolean;
|
|
58
|
+
removeFeatureGroupFromLayer(featureGroup: L.FeatureGroup): void;
|
|
59
|
+
getLayerForFeatureGroup(featureGroup: L.FeatureGroup): string | undefined;
|
|
60
|
+
getFeatureGroupsForLayer(layerId: string): L.FeatureGroup[];
|
|
61
|
+
isInActiveLayer(featureGroup: L.FeatureGroup): boolean;
|
|
62
|
+
deleteLayer(layerId: string): L.FeatureGroup[];
|
|
63
|
+
/**
|
|
64
|
+
* Moves a layer to a specific 0-based position in the full layer order.
|
|
65
|
+
* The default layer always occupies index 0; the minimum valid target for
|
|
66
|
+
* non-default layers is 1. The index is clamped to the valid range.
|
|
67
|
+
*/
|
|
68
|
+
moveLayerToIndex(layerId: string, index: number): boolean;
|
|
69
|
+
/**
|
|
70
|
+
* Sets the full layer order by providing an ordered list of layer IDs.
|
|
71
|
+
* The default layer always stays first. Any layers not included in the
|
|
72
|
+
* list are appended after the specified layers in their current relative order.
|
|
73
|
+
* Returns false if any specified ID does not exist or equals 'default'.
|
|
74
|
+
*/
|
|
75
|
+
setLayerOrder(layerIds: string[]): boolean;
|
|
76
|
+
clear(defaultColor?: string): void;
|
|
77
|
+
captureLayerSnapshot(featureGroups: L.FeatureGroup[]): LayerSnapshot;
|
|
78
|
+
restoreFromLayerSnapshot(snapshot: LayerSnapshot, featureGroups: L.FeatureGroup[]): void;
|
|
79
|
+
private ensureDefaultLayer;
|
|
80
|
+
private getFirstVisibleLayerId;
|
|
81
|
+
private normalizeLayerId;
|
|
82
|
+
private cloneLayerState;
|
|
83
|
+
private normalizeInteraction;
|
|
84
|
+
private normalizePanel;
|
|
85
|
+
private cloneMetadata;
|
|
86
|
+
/**
|
|
87
|
+
* Normalize hex colors to "#rrggbb".
|
|
88
|
+
* Accepts "f00", "#f00", "ff0000", "#ff0000". Returns fallback when invalid.
|
|
89
|
+
*/
|
|
90
|
+
static normalizeColor(input: string, fallback?: string): string;
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=layer-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layer-manager.d.ts","sourceRoot":"","sources":["../../../src/managers/layer-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -117,6 +117,8 @@ export declare class PolygonDrawManager {
|
|
|
117
117
|
* Refresh the first-marker ready state when draw mode changes.
|
|
118
118
|
*/
|
|
119
119
|
refreshP2PMarkerState(): void;
|
|
120
|
+
private applyP2PMarkerMode;
|
|
121
|
+
private updateP2PMarkerModes;
|
|
120
122
|
/**
|
|
121
123
|
* Handle marker hover for edge deletion feedback
|
|
122
124
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"polygon-draw-manager.d.ts","sourceRoot":"","sources":["../../../src/managers/polygon-draw-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAI5C,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,GAAG,YAAY,CAAC,CAAC;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,8BAA8B;IAC7C,UAAU,EAAE,UAAU,CAAC;IACvB,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC;IACX,MAAM,EAAE,cAAc,CAAC;IACvB,WAAW,EAAE,WAAW,CAAC;IACzB,YAAY,EAAE,YAAY,CAAC;IAC3B,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC;CACpB;AAED;;;GAGG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,GAAG,CAAQ;IACnB,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,MAAM,CAAa;IAG3B,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,iBAAiB,CAAkB;IAC3C,OAAO,CAAC,sBAAsB,CAA+C;gBAEjE,YAAY,EAAE,8BAA8B;IAUxD;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,iBAAiB,GAAG,UAAU,GAAG,IAAI;IAcxD;;OAEG;IACG,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,iBAAiB,GAAG,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAyDhF;;OAEG;IACH;;;OAGG;IACI,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAI5C,OAAO,CAAC,4BAA4B;IAapC;;OAEG;IACH,uBAAuB,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"polygon-draw-manager.d.ts","sourceRoot":"","sources":["../../../src/managers/polygon-draw-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAI5C,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,GAAG,YAAY,CAAC,CAAC;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,8BAA8B;IAC7C,UAAU,EAAE,UAAU,CAAC;IACvB,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC;IACX,MAAM,EAAE,cAAc,CAAC;IACvB,WAAW,EAAE,WAAW,CAAC;IACzB,YAAY,EAAE,YAAY,CAAC;IAC3B,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC;CACpB;AAED;;;GAGG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,GAAG,CAAQ;IACnB,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,MAAM,CAAa;IAG3B,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,iBAAiB,CAAkB;IAC3C,OAAO,CAAC,sBAAsB,CAA+C;gBAEjE,YAAY,EAAE,8BAA8B;IAUxD;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,iBAAiB,GAAG,UAAU,GAAG,IAAI;IAcxD;;OAEG;IACG,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,iBAAiB,GAAG,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAyDhF;;OAEG;IACH;;;OAGG;IACI,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAI5C,OAAO,CAAC,4BAA4B;IAapC;;OAEG;IACH,uBAAuB,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,GAAG,IAAI;IAuJpD;;OAEG;IACH,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,iBAAiB,GAAG,IAAI;IAoB/C;;OAEG;IACH,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAgBxC;;OAEG;IACH,2BAA2B,IAAI,IAAI;IAoEnC;;OAEG;IACH,yBAAyB,IAAI,IAAI;IASjC;;OAEG;IACH,eAAe,IAAI,IAAI;IAavB;;OAEG;IACH,WAAW,IAAI,IAAI;IAYnB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAwB5B;;OAEG;IACH,OAAO,CAAC,aAAa;IAIrB;;OAEG;IACH,OAAO,CAAC,eAAe;IA+BvB;;OAEG;IACH,OAAO,CAAC,eAAe;IAuBvB;;OAEG;IACH,aAAa,IAAI,CAAC,CAAC,MAAM,EAAE;IAK3B;;OAEG;IACH,oBAAoB,IAAI,OAAO;IAM/B;;OAEG;IACH,oBAAoB,IAAI,MAAM;IAM9B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA0DxB;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAqBnC;;OAEG;IACI,qBAAqB,IAAI,IAAI;IAMpC,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,oBAAoB;IAI5B;;OAEG;IACH,OAAO,CAAC,4BAA4B;IA8CpC,OAAO,CAAC,2BAA2B;CAepC"}
|
|
@@ -6,6 +6,9 @@ export interface GeometryOperationResult {
|
|
|
6
6
|
result?: Feature<Polygon | MultiPolygon>;
|
|
7
7
|
results?: Feature<Polygon | MultiPolygon>[];
|
|
8
8
|
error?: string;
|
|
9
|
+
allowMerge?: boolean;
|
|
10
|
+
simplify?: boolean;
|
|
11
|
+
metadata?: Record<string, unknown>;
|
|
9
12
|
}
|
|
10
13
|
export interface PolygonGeometryManagerDependencies {
|
|
11
14
|
turfHelper: TurfHelper;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"polygon-geometry-manager.d.ts","sourceRoot":"","sources":["../../../src/managers/polygon-geometry-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAEnE,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC,OAAO,GAAG,YAAY,CAAC,CAAC;IACzC,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,GAAG,YAAY,CAAC,EAAE,CAAC;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"polygon-geometry-manager.d.ts","sourceRoot":"","sources":["../../../src/managers/polygon-geometry-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAEnE,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC,OAAO,GAAG,YAAY,CAAC,CAAC;IACzC,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,GAAG,YAAY,CAAC,EAAE,CAAC;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,kCAAkC;IACjD,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,cAAc,CAAC;CACxB;AAED;;;GAGG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,MAAM,CAAiB;gBAEnB,YAAY,EAAE,kCAAkC;IAM5D;;OAEG;IACH,wBAAwB,CACtB,QAAQ,EAAE,OAAO,CAAC,OAAO,GAAG,YAAY,CAAC,EACzC,QAAQ,EAAE,OAAO,CAAC,OAAO,GAAG,YAAY,CAAC,GACxC,OAAO;IAyGV,OAAO,CAAC,mBAAmB;IA6B3B;;OAEG;IACH,aAAa,CACX,QAAQ,EAAE,OAAO,CAAC,OAAO,GAAG,YAAY,CAAC,EAAE,EAC3C,UAAU,EAAE,OAAO,CAAC,OAAO,GAAG,YAAY,CAAC,GAC1C,uBAAuB;IAyB1B;;OAEG;IACH,eAAe,CACb,eAAe,EAAE,OAAO,CAAC,OAAO,GAAG,YAAY,CAAC,EAChD,eAAe,EAAE,OAAO,CAAC,OAAO,GAAG,YAAY,CAAC,GAC/C,uBAAuB;IAgC1B;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,YAAY,CAAC,GAAG,uBAAuB;IAmElF;;OAEG;IACH,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,YAAY,CAAC,GAAG,uBAAuB;IAkGvF;;OAEG;IACH,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,YAAY,CAAC,GAAG,uBAAuB;IAiBnF;;OAEG;IACH,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,YAAY,CAAC,GAAG,uBAAuB;CAmDvF"}
|
|
@@ -5,6 +5,7 @@ import type { Feature, Polygon, MultiPolygon } from 'geojson';
|
|
|
5
5
|
import type { PolydrawConfig, PolydrawPolygon, HistoryAction } from '../types/polydraw-interfaces';
|
|
6
6
|
import { ModeManager } from './mode-manager';
|
|
7
7
|
import { EventManager } from './event-manager';
|
|
8
|
+
import type { LayerManager } from './layer-manager';
|
|
8
9
|
export interface InteractionResult {
|
|
9
10
|
success: boolean;
|
|
10
11
|
featureGroups?: L.FeatureGroup[];
|
|
@@ -18,6 +19,7 @@ export interface PolygonInteractionManagerDependencies {
|
|
|
18
19
|
modeManager: ModeManager;
|
|
19
20
|
eventManager: EventManager;
|
|
20
21
|
saveHistoryState?: (action: HistoryAction) => void;
|
|
22
|
+
layerManager?: LayerManager;
|
|
21
23
|
}
|
|
22
24
|
/**
|
|
23
25
|
* PolygonInteractionManager handles all interactions with existing polygons.
|
|
@@ -25,6 +27,7 @@ export interface PolygonInteractionManagerDependencies {
|
|
|
25
27
|
*/
|
|
26
28
|
export declare class PolygonInteractionManager {
|
|
27
29
|
private markerFeatureGroupMap;
|
|
30
|
+
private polygonFeatureGroupMap;
|
|
28
31
|
private markerModifierHandlers;
|
|
29
32
|
private markerTouchListeners;
|
|
30
33
|
private markerEdgeDeletionListeners;
|
|
@@ -37,6 +40,7 @@ export declare class PolygonInteractionManager {
|
|
|
37
40
|
private modeManager;
|
|
38
41
|
private eventManager;
|
|
39
42
|
private saveHistoryState?;
|
|
43
|
+
private layerManager?;
|
|
40
44
|
private currentDragPolygon;
|
|
41
45
|
private currentDragIsClone;
|
|
42
46
|
private currentModifierDragMode;
|
|
@@ -45,17 +49,32 @@ export declare class PolygonInteractionManager {
|
|
|
45
49
|
private dragCancelHandlersAttached;
|
|
46
50
|
private _boundDragTouchMove;
|
|
47
51
|
private _boundDragTouchEnd;
|
|
52
|
+
private _boundDragMoveListener;
|
|
53
|
+
private _boundDragEndListener;
|
|
54
|
+
private dragUsesPointerEvents;
|
|
48
55
|
private polygonTouchStartListeners;
|
|
49
56
|
private _openMenuPopup;
|
|
50
57
|
private transformModeActive;
|
|
51
58
|
private transformControllers;
|
|
52
59
|
private deleteMarkerSuppressUntil;
|
|
60
|
+
private readonly onModeChange;
|
|
53
61
|
/**
|
|
54
62
|
* Strongly typed helper to emit polygon updated events without casts.
|
|
55
63
|
* Also saves history state before emitting (except for drag operations which save on dragstart).
|
|
56
64
|
*/
|
|
57
65
|
private emitPolygonUpdated;
|
|
58
66
|
private getHistoryActionForOperation;
|
|
67
|
+
/**
|
|
68
|
+
* True when the polygon in the feature group already has holes, or is a MultiPolygon
|
|
69
|
+
* with more than one outer ring (donut mode only supports simple single-ring polygons).
|
|
70
|
+
*/
|
|
71
|
+
private donutTargetHasHoles;
|
|
72
|
+
/**
|
|
73
|
+
* Commit handler for donut mode. Decides inward vs outward via containment, assembles a
|
|
74
|
+
* polygon-with-hole, and emits the updated event. On partial overlap / degenerate scale
|
|
75
|
+
* the polygon is restored unchanged.
|
|
76
|
+
*/
|
|
77
|
+
private handleDonutCommit;
|
|
59
78
|
private getFeatureGroups;
|
|
60
79
|
private removeFeatureGroup;
|
|
61
80
|
constructor(dependencies: PolygonInteractionManagerDependencies, featureGroupAccess: {
|
|
@@ -63,6 +82,7 @@ export declare class PolygonInteractionManager {
|
|
|
63
82
|
addFeatureGroup: (fg: L.FeatureGroup) => void;
|
|
64
83
|
removeFeatureGroup: (fg: L.FeatureGroup) => void;
|
|
65
84
|
});
|
|
85
|
+
dispose(): void;
|
|
66
86
|
private getTimestamp;
|
|
67
87
|
private shouldSuppressDeleteMarkerClick;
|
|
68
88
|
suppressDeleteMarkerClicks(durationMs: number): void;
|
|
@@ -86,6 +106,16 @@ export declare class PolygonInteractionManager {
|
|
|
86
106
|
*/
|
|
87
107
|
private isPolygonDragModeActive;
|
|
88
108
|
private isPolygonDragActive;
|
|
109
|
+
/**
|
|
110
|
+
* Check if a polygon belongs to the active layer.
|
|
111
|
+
* Returns true if no layer manager exists (backward compat) or if in active editable layer.
|
|
112
|
+
*/
|
|
113
|
+
private isPolygonInActiveLayer;
|
|
114
|
+
/**
|
|
115
|
+
* Check if a feature group belongs to the active layer.
|
|
116
|
+
* Returns true if no layer manager exists (backward compat).
|
|
117
|
+
*/
|
|
118
|
+
private isFeatureGroupInActiveLayer;
|
|
89
119
|
/**
|
|
90
120
|
* Enable polygon dragging functionality
|
|
91
121
|
*/
|
|
@@ -127,6 +157,7 @@ export declare class PolygonInteractionManager {
|
|
|
127
157
|
private countLatLngNodes;
|
|
128
158
|
private rebuildLatLngStructure;
|
|
129
159
|
private getOptimizationMetadataFromFeatureGroup;
|
|
160
|
+
private getFeatureMetadataState;
|
|
130
161
|
private getOptimizationMetadataFromPolygonLayer;
|
|
131
162
|
private getDistanceMeters;
|
|
132
163
|
private findClosestVertexIndex;
|
|
@@ -140,6 +171,10 @@ export declare class PolygonInteractionManager {
|
|
|
140
171
|
private onPolygonDragKeyDown;
|
|
141
172
|
private onDragTouchMove;
|
|
142
173
|
private onDragTouchEnd;
|
|
174
|
+
private readonly onDragDocumentMove;
|
|
175
|
+
private readonly onDragDocumentEnd;
|
|
176
|
+
private attachDragDocumentListeners;
|
|
177
|
+
private detachDragDocumentListeners;
|
|
143
178
|
private attachDragTouchListeners;
|
|
144
179
|
private detachDragTouchListeners;
|
|
145
180
|
private detachPolygonTouchStart;
|
|
@@ -162,6 +197,8 @@ export declare class PolygonInteractionManager {
|
|
|
162
197
|
private performModifierSubtract;
|
|
163
198
|
private getEdgeDeletionModifierKey;
|
|
164
199
|
private isEdgeDeletionModifierKeyPressed;
|
|
200
|
+
private registerPolygonLayerMappings;
|
|
201
|
+
private findFeatureGroupForPolygon;
|
|
165
202
|
private onMarkerHoverForEdgeDeletion;
|
|
166
203
|
private onMarkerHoverForEdgeDeletionEvent;
|
|
167
204
|
private onMarkerLeaveForEdgeDeletionEvent;
|
|
@@ -171,7 +208,27 @@ export declare class PolygonInteractionManager {
|
|
|
171
208
|
private createDivIcon;
|
|
172
209
|
private getLatLngInfoString;
|
|
173
210
|
private setMarkerVisibility;
|
|
211
|
+
private getBuiltInMenuButtonConfigs;
|
|
212
|
+
private getBuiltInMenuButtons;
|
|
213
|
+
private getVisualOptimizationToggleButton;
|
|
214
|
+
private getPolygonMenuActionButtons;
|
|
215
|
+
private shouldShowPolygonMenuActionButton;
|
|
216
|
+
private getPolygonMenuActionClassNames;
|
|
217
|
+
private closeOpenMenuPopup;
|
|
218
|
+
private attachMenuPopupCloseHandler;
|
|
219
|
+
private emitBuiltInPolygonMenuAction;
|
|
220
|
+
private attachBuiltInMenuActionHandler;
|
|
221
|
+
private attachTransformHandler;
|
|
222
|
+
private attachOptimizationToggleHandler;
|
|
223
|
+
private attachCustomPolygonMenuActionHandler;
|
|
224
|
+
private attachMenuButtonHandler;
|
|
225
|
+
private startPolygonTransform;
|
|
226
|
+
private handleTransformControllerResult;
|
|
227
|
+
private getPolygonLayer;
|
|
228
|
+
private attachMenuButtonHandlers;
|
|
229
|
+
private enableMenuButtonPointerEvents;
|
|
174
230
|
private generateMenuMarkerPopup;
|
|
231
|
+
private getMenuActionContext;
|
|
175
232
|
private toggleOptimizationVisibility;
|
|
176
233
|
private getPolygonGeoJSONFromFeatureGroup;
|
|
177
234
|
private getTotalPolygonPerimeter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"polygon-interaction-manager.d.ts","sourceRoot":"","sources":["../../../src/managers/polygon-interaction-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAQ3E,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAA4B,MAAM,SAAS,CAAC;AACxF,OAAO,KAAK,EACV,cAAc,
|
|
1
|
+
{"version":3,"file":"polygon-interaction-manager.d.ts","sourceRoot":"","sources":["../../../src/managers/polygon-interaction-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,22 +2,33 @@ import * as L from 'leaflet';
|
|
|
2
2
|
import { TurfHelper } from '../turf-helper';
|
|
3
3
|
import { PolygonInformationService } from '../polygon-information.service';
|
|
4
4
|
import type { Feature, Polygon, MultiPolygon } from 'geojson';
|
|
5
|
-
import type { PolydrawConfig, PolydrawPolygon, HistoryAction } from '../types/polydraw-interfaces';
|
|
5
|
+
import type { PolydrawConfig, PolydrawPolygon, HistoryAction, LayerInteraction, PolygonStyleOverrides } from '../types/polydraw-interfaces';
|
|
6
6
|
import { ModeManager } from './mode-manager';
|
|
7
7
|
import { EventManager, PolydrawEvent, PolydrawEventCallback } from './event-manager';
|
|
8
8
|
import { PolygonInteractionManager } from './polygon-interaction-manager';
|
|
9
|
+
import type { LayerManager } from './layer-manager';
|
|
9
10
|
export interface MutationResult {
|
|
10
11
|
success: boolean;
|
|
11
12
|
featureGroups?: L.FeatureGroup[];
|
|
12
13
|
error?: string;
|
|
13
14
|
}
|
|
14
|
-
|
|
15
|
+
interface AddPolygonOptions {
|
|
15
16
|
simplify?: boolean;
|
|
16
17
|
noMerge?: boolean;
|
|
18
|
+
mergeEditableOnly?: boolean;
|
|
17
19
|
dynamicTolerance?: boolean;
|
|
18
20
|
visualOptimizationLevel?: number;
|
|
19
21
|
originalOptimizationLevel?: number;
|
|
20
22
|
skipKinkProcessing?: boolean;
|
|
23
|
+
targetLayerId?: string;
|
|
24
|
+
layerColor?: string;
|
|
25
|
+
featureId?: string;
|
|
26
|
+
featureMetadata?: Record<string, unknown>;
|
|
27
|
+
sourceFeatureIds?: string[];
|
|
28
|
+
featureInteractionOverride?: LayerInteraction;
|
|
29
|
+
featureStyleOverrides?: PolygonStyleOverrides;
|
|
30
|
+
featureCreatedAt?: string;
|
|
31
|
+
featureLastModified?: string;
|
|
21
32
|
}
|
|
22
33
|
export interface MutationManagerDependencies {
|
|
23
34
|
turfHelper: TurfHelper;
|
|
@@ -28,6 +39,7 @@ export interface MutationManagerDependencies {
|
|
|
28
39
|
eventManager: EventManager;
|
|
29
40
|
getFeatureGroups: () => L.FeatureGroup[];
|
|
30
41
|
saveHistoryState?: (action: HistoryAction) => void;
|
|
42
|
+
layerManager?: LayerManager;
|
|
31
43
|
}
|
|
32
44
|
/**
|
|
33
45
|
* PolygonMutationManager acts as a facade that coordinates between specialized managers.
|
|
@@ -41,8 +53,15 @@ export declare class PolygonMutationManager {
|
|
|
41
53
|
private eventManager;
|
|
42
54
|
private getFeatureGroups;
|
|
43
55
|
private saveHistoryState?;
|
|
56
|
+
private layerManager?;
|
|
44
57
|
private geometryManager;
|
|
45
58
|
private interactionManager;
|
|
59
|
+
private readonly onDrawCancel;
|
|
60
|
+
private readonly onPolygonUpdated;
|
|
61
|
+
private readonly onMenuAction;
|
|
62
|
+
private readonly onCheckIntersection;
|
|
63
|
+
private readonly onSubtract;
|
|
64
|
+
private readonly onPolygonDeleted;
|
|
46
65
|
constructor(dependencies: MutationManagerDependencies);
|
|
47
66
|
/**
|
|
48
67
|
* Initialize the three specialized managers
|
|
@@ -52,6 +71,7 @@ export declare class PolygonMutationManager {
|
|
|
52
71
|
* Set up event forwarding from specialized managers to facade
|
|
53
72
|
*/
|
|
54
73
|
private setupEventForwarding;
|
|
74
|
+
dispose(): void;
|
|
55
75
|
/**
|
|
56
76
|
* Handle polygon modification from interaction manager
|
|
57
77
|
*/
|
|
@@ -60,6 +80,13 @@ export declare class PolygonMutationManager {
|
|
|
60
80
|
* Handle menu actions from interaction manager
|
|
61
81
|
*/
|
|
62
82
|
private handleMenuAction;
|
|
83
|
+
/**
|
|
84
|
+
* Handle polygon menu action execution
|
|
85
|
+
*/
|
|
86
|
+
private executePolygonMenuAction;
|
|
87
|
+
private normalizeMenuActionResult;
|
|
88
|
+
private isPolygonFeature;
|
|
89
|
+
private getBoundsForMenuAction;
|
|
63
90
|
/**
|
|
64
91
|
* Get the polygon interaction manager (for testing)
|
|
65
92
|
*/
|
|
@@ -132,6 +159,15 @@ export declare class PolygonMutationManager {
|
|
|
132
159
|
*/
|
|
133
160
|
private getCompletePolygonFromFeatureGroup;
|
|
134
161
|
private getOptimizationMetadataFromFeatureGroup;
|
|
162
|
+
private getFeatureMetadataStateFromFeatureGroup;
|
|
163
|
+
private collectSourceFeatureIds;
|
|
164
|
+
private resolvePrimaryFeatureMetadata;
|
|
165
|
+
private resolvePrimaryFeatureInteractionOverride;
|
|
166
|
+
private resolvePrimaryFeatureStyleOverrides;
|
|
167
|
+
private cloneFeatureMetadata;
|
|
168
|
+
private cloneStyleOverrides;
|
|
169
|
+
private featureHasHoles;
|
|
170
|
+
private setFeatureGroupMetadata;
|
|
135
171
|
/**
|
|
136
172
|
* Update marker draggable state
|
|
137
173
|
*/
|
|
@@ -209,4 +245,5 @@ export declare class PolygonMutationManager {
|
|
|
209
245
|
setSubtractVisualMode(polygon: L.Polygon, enabled: boolean): void;
|
|
210
246
|
performModifierSubtract(draggedGeoJSON: Feature<Polygon | MultiPolygon>, originalFeatureGroup: L.FeatureGroup): void;
|
|
211
247
|
}
|
|
248
|
+
export {};
|
|
212
249
|
//# sourceMappingURL=polygon-mutation-manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"polygon-mutation-manager.d.ts","sourceRoot":"","sources":["../../../src/managers/polygon-mutation-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAE3E,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAqB,MAAM,SAAS,CAAC;AACjF,OAAO,KAAK,EACV,cAAc,
|
|
1
|
+
{"version":3,"file":"polygon-mutation-manager.d.ts","sourceRoot":"","sources":["../../../src/managers/polygon-mutation-manager.ts"],"names":[],"mappings":"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"}
|