@orbat-mapper/control-measures 0.2.0-alpha.15 → 0.2.0-alpha.17

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.
@@ -295,6 +295,10 @@ interface ControlMeasureMetadata {
295
295
  * geometry, with per-feature properties that the renderer normalizes.
296
296
  */
297
297
  type AnyFeatureCollection = FeatureCollection<Geometry, Record<string, unknown> | null>;
298
+ /** Read-only instance state that can affect generated geometry. */
299
+ interface ControlMeasureGeneratorContext {
300
+ amplifierPlacements?: AmplifierPlacements;
301
+ }
298
302
  /**
299
303
  * A generator's call signature, constrained only by its inputs and output. The
300
304
  * options parameter is typed `never` so that a generator with *any* concrete
@@ -305,9 +309,11 @@ type AnyFeatureCollection = FeatureCollection<Geometry, Record<string, unknown>
305
309
  *
306
310
  * The optional third parameter carries the instance's normalized text
307
311
  * amplifiers (ADR-0027); a generator that ignores text amplifiers just omits
308
- * the parameter — fewer params is still assignable to this bound.
312
+ * the parameter. The optional fourth parameter carries instance state needed
313
+ * while generating geometry derived from an individual label placement.
314
+ * Generators may omit either trailing parameter.
309
315
  */
310
- type ControlMeasureGenerator = (controlPoints: Position[], options: never, textAmplifiers?: CanonicalTextAmplifiers) => AnyFeatureCollection;
316
+ type ControlMeasureGenerator = (controlPoints: Position[], options: never, textAmplifiers?: CanonicalTextAmplifiers, context?: ControlMeasureGeneratorContext) => AnyFeatureCollection;
311
317
  /**
312
318
  * Everything that defines one control measure, co-located with its generator.
313
319
  * `registry.ts` collects these into the single `DEFINITIONS` map, from which
@@ -416,8 +422,8 @@ interface BoundaryOptions {
416
422
  metersPerPixel?: number;
417
423
  /**
418
424
  * Number of label groups (echelon + designators), spaced evenly by cumulative
419
- * arc length along the whole boundary. `1` places a single group at the
420
- * midpoint of the total length (which may fall on any segment).
425
+ * arc length along the whole boundary. `1` places a single group at
426
+ * `labelPosition`, whose default is the midpoint of the total length.
421
427
  * @default 1
422
428
  */
423
429
  labelRepetitions?: number;
@@ -429,6 +435,13 @@ interface BoundaryOptions {
429
435
  * @default 1
430
436
  */
431
437
  labelSpacing?: number;
438
+ /**
439
+ * Position of a single label group as a fraction of cumulative arc length
440
+ * from the boundary's first control point (0) to its last (1). Ignored when
441
+ * `labelRepetitions > 1`.
442
+ * @default 0.5
443
+ */
444
+ labelPosition?: number;
432
445
  /**
433
446
  * Clearance between the line/echelon glyph and the unit labels, as a ratio
434
447
  * of the echelon glyph height (like `echelonPadding`). In `"along"` mode
@@ -755,11 +768,12 @@ declare const DEFAULT_BATTLE_POSITION_OPTIONS: BattlePositionOptions;
755
768
  * @param positions - Area anchor points (≥3); the input contract is enforced at
756
769
  * the render seam (ADR-0014).
757
770
  * @param options - {@link BattlePositionOptions}.
758
- * @param textAmplifiers - Field T only, centered in the area (no H/W rows —
759
- * this measure's template pairs the designation with the Field B glyph,
760
- * not the plain L-15 boundary template).
771
+ * @param textAmplifiers - Field T (designation, centered in the area) plus an
772
+ * optional Field N "ENY" hostile marker at the west/east edges (no H/W rows —
773
+ * this measure's template pairs the designation with the Field B glyph, not
774
+ * the plain L-15 boundary template).
761
775
  */
762
- declare function createBattlePosition(positions: Position[], options?: BattlePositionOptions, textAmplifiers?: CanonicalTextAmplifiers): FeatureCollection<MultiLineString | MultiPolygon | Point>;
776
+ declare function createBattlePosition(positions: Position[], options?: BattlePositionOptions, textAmplifiers?: CanonicalTextAmplifiers, context?: ControlMeasureGeneratorContext): FeatureCollection<MultiLineString | MultiPolygon | Point>;
763
777
  //#endregion
764
778
  //#region src/generators/cm15-maneuver-areas/strongPoint.d.ts
765
779
  /** Configuration options for the Strong Point control measure. */
@@ -775,10 +789,11 @@ declare const DEFAULT_STRONG_POINT_OPTIONS: StrongPointOptions;
775
789
  * @param positions - Area anchor points (>=3); the input contract is enforced
776
790
  * at the render seam (ADR-0014).
777
791
  * @param options - {@link StrongPointOptions}.
778
- * @param textAmplifiers - Field T only, centered in the area, same as Battle
779
- * Position.
792
+ * @param textAmplifiers - Field T (designation, centered in the area) plus an
793
+ * optional Field N "ENY" hostile marker at the west/east edges, same as
794
+ * Battle Position.
780
795
  */
781
- declare function createStrongPoint(positions: Position[], options?: StrongPointOptions, textAmplifiers?: CanonicalTextAmplifiers): FeatureCollection<MultiLineString | MultiPolygon | Point>;
796
+ declare function createStrongPoint(positions: Position[], options?: StrongPointOptions, textAmplifiers?: CanonicalTextAmplifiers, context?: ControlMeasureGeneratorContext): FeatureCollection<MultiLineString | MultiPolygon | Point>;
782
797
  //#endregion
783
798
  //#region src/generators/cm14-maneuver-lines/direction-of-attack-aviation.d.ts
784
799
  interface DirectionOfAttackAviationOptions extends LabelSizeOptions, SmoothLineOptions {
@@ -916,11 +931,11 @@ declare const DEFAULT_ENCIRCLEMENT_OPTIONS: EncirclementOptions;
916
931
  * Creates an Encirclement tactical graphic: a complete smooth boundary ring
917
932
  * with outward arrowhead barbs resting on it. The boundary is an unfilled
918
933
  * Polygon; the barbs are open "V" strokes (a MultiLineString) whose base is the
919
- * boundary arc itself. When a Field N (ENY) marker is set, it sits ON the
920
- * boundary and masks it with a knockout gap (mirroring Field B's echelon
921
- * glyph, ADR-0023) — the boundary becomes a gapped MultiLineString instead of
922
- * a closed Polygon, and any barb whose center falls inside the gap is
923
- * suppressed; the no-`N` case is unaffected.
934
+ * boundary arc itself. When a Field N (ENY) marker is set, it masks the
935
+ * boundary with a knockout gap wherever its text box touches the ring
936
+ * (mirroring Field B's echelon glyph, ADR-0023) — the boundary becomes a
937
+ * gapped MultiLineString instead of a closed Polygon, and any barb whose
938
+ * center falls inside the gap is suppressed; the no-`N` case is unaffected.
924
939
  *
925
940
  * @param positions - Area anchor points (>=3); the input contract is enforced
926
941
  * at the render seam (ADR-0014).
@@ -928,7 +943,7 @@ declare const DEFAULT_ENCIRCLEMENT_OPTIONS: EncirclementOptions;
928
943
  * @param textAmplifiers - Field N only — rendered as "ENY" markers at the
929
944
  * ring's west and east edges, per the doctrinal hostile example.
930
945
  */
931
- declare function createEncirclement(positions: Position[], options?: EncirclementOptions, textAmplifiers?: CanonicalTextAmplifiers): FeatureCollection<Polygon | MultiLineString | Point>;
946
+ declare function createEncirclement(positions: Position[], options?: EncirclementOptions, textAmplifiers?: CanonicalTextAmplifiers, context?: ControlMeasureGeneratorContext): FeatureCollection<Polygon | MultiLineString | Point>;
932
947
  //#endregion
933
948
  //#region src/generators/cm15-maneuver-areas/area.d.ts
934
949
  /** Configuration options for the Area control measure. */
@@ -938,7 +953,7 @@ type AreaOptions = LabeledAreaOptions;
938
953
  * at its center with an un-prefixed `T` (Field T) plus an `N` (Field N) ENY
939
954
  * marker, per {@link labeledAreaFeatures}.
940
955
  */
941
- declare function createArea(positions: Position[], options?: AreaOptions, textAmplifiers?: CanonicalTextAmplifiers): FeatureCollection<Polygon | MultiLineString | Point>;
956
+ declare function createArea(positions: Position[], options?: AreaOptions, textAmplifiers?: CanonicalTextAmplifiers, context?: ControlMeasureGeneratorContext): FeatureCollection<Polygon | MultiLineString | Point>;
942
957
  //#endregion
943
958
  //#region src/generators/cm15-maneuver-areas/area-defense.d.ts
944
959
  interface AreaDefenseOptions extends LabelSizeOptions {
@@ -966,7 +981,7 @@ declare const DEFAULT_ASSEMBLY_AREA_OPTIONS: AssemblyAreaOptions;
966
981
  * `positions` labeled at its center with "AA "-prefixed `T` (Field T) plus
967
982
  * `H`/`W`/`W1`/`N` amplifier rows, per {@link labeledAreaFeatures}.
968
983
  */
969
- declare function createAssemblyArea(positions: Position[], options?: AssemblyAreaOptions, textAmplifiers?: CanonicalTextAmplifiers): FeatureCollection<Polygon | MultiLineString | Point>;
984
+ declare function createAssemblyArea(positions: Position[], options?: AssemblyAreaOptions, textAmplifiers?: CanonicalTextAmplifiers, context?: ControlMeasureGeneratorContext): FeatureCollection<Polygon | MultiLineString | Point>;
970
985
  //#endregion
971
986
  //#region src/generators/cm15-maneuver-areas/jointTacticalActionArea.d.ts
972
987
  /** Configuration options for the Joint tactical action area control measure. */
@@ -979,7 +994,7 @@ declare const DEFAULT_JOINT_TACTICAL_ACTION_AREA_OPTIONS: JointTacticalActionAre
979
994
  * (Field T) plus `H`/`W`/`W1`/`N` amplifier rows, per
980
995
  * {@link labeledAreaFeatures}.
981
996
  */
982
- declare function createJointTacticalActionArea(positions: Position[], options?: JointTacticalActionAreaOptions, textAmplifiers?: CanonicalTextAmplifiers): FeatureCollection<Polygon | MultiLineString | Point>;
997
+ declare function createJointTacticalActionArea(positions: Position[], options?: JointTacticalActionAreaOptions, textAmplifiers?: CanonicalTextAmplifiers, context?: ControlMeasureGeneratorContext): FeatureCollection<Polygon | MultiLineString | Point>;
983
998
  //#endregion
984
999
  //#region src/generators/cm15-maneuver-areas/submarineActionArea.d.ts
985
1000
  /** Configuration options for the Submarine action area control measure. */
@@ -989,7 +1004,7 @@ type SubmarineActionAreaOptions = LabeledAreaOptions;
989
1004
  * `positions` labeled at its center with "SAA -"-prefixed `T` (Field T) plus
990
1005
  * `W`/`W1`/`N` amplifier rows, per {@link labeledAreaFeatures}.
991
1006
  */
992
- declare function createSubmarineActionArea(positions: Position[], options?: SubmarineActionAreaOptions, textAmplifiers?: CanonicalTextAmplifiers): FeatureCollection<Polygon | MultiLineString | Point>;
1007
+ declare function createSubmarineActionArea(positions: Position[], options?: SubmarineActionAreaOptions, textAmplifiers?: CanonicalTextAmplifiers, context?: ControlMeasureGeneratorContext): FeatureCollection<Polygon | MultiLineString | Point>;
993
1008
  //#endregion
994
1009
  //#region src/generators/cm15-maneuver-areas/submarineGeneratedActionArea.d.ts
995
1010
  /** Configuration options for the Submarine-generated action area control measure. */
@@ -999,7 +1014,7 @@ type SubmarineGeneratedActionAreaOptions = LabeledAreaOptions;
999
1014
  * through `positions` labeled at its center with "SGSA -"-prefixed `T`
1000
1015
  * (Field T) plus `W`/`W1`/`N` amplifier rows, per {@link labeledAreaFeatures}.
1001
1016
  */
1002
- declare function createSubmarineGeneratedActionArea(positions: Position[], options?: SubmarineGeneratedActionAreaOptions, textAmplifiers?: CanonicalTextAmplifiers): FeatureCollection<Polygon | MultiLineString | Point>;
1017
+ declare function createSubmarineGeneratedActionArea(positions: Position[], options?: SubmarineGeneratedActionAreaOptions, textAmplifiers?: CanonicalTextAmplifiers, context?: ControlMeasureGeneratorContext): FeatureCollection<Polygon | MultiLineString | Point>;
1003
1018
  //#endregion
1004
1019
  //#region src/generators/cm15-maneuver-areas/dropZone.d.ts
1005
1020
  /** Configuration options for the Drop zone control measure. */
@@ -1009,7 +1024,7 @@ type DropZoneOptions = LabeledAreaOptions;
1009
1024
  * labeled at its center with "DZ "-prefixed `T` (Field T) plus an `N`
1010
1025
  * (Field N) ENY marker, per {@link labeledAreaFeatures}.
1011
1026
  */
1012
- declare function createDropZone(positions: Position[], options?: DropZoneOptions, textAmplifiers?: CanonicalTextAmplifiers): FeatureCollection<Polygon | MultiLineString | Point>;
1027
+ declare function createDropZone(positions: Position[], options?: DropZoneOptions, textAmplifiers?: CanonicalTextAmplifiers, context?: ControlMeasureGeneratorContext): FeatureCollection<Polygon | MultiLineString | Point>;
1013
1028
  //#endregion
1014
1029
  //#region src/generators/cm15-maneuver-areas/extractionZone.d.ts
1015
1030
  /** Configuration options for the Extraction zone control measure. */
@@ -1019,7 +1034,7 @@ type ExtractionZoneOptions = LabeledAreaOptions;
1019
1034
  * `positions` labeled at its center with "EZ "-prefixed `T` (Field T) plus
1020
1035
  * an `N` (Field N) ENY marker, per {@link labeledAreaFeatures}.
1021
1036
  */
1022
- declare function createExtractionZone(positions: Position[], options?: ExtractionZoneOptions, textAmplifiers?: CanonicalTextAmplifiers): FeatureCollection<Polygon | MultiLineString | Point>;
1037
+ declare function createExtractionZone(positions: Position[], options?: ExtractionZoneOptions, textAmplifiers?: CanonicalTextAmplifiers, context?: ControlMeasureGeneratorContext): FeatureCollection<Polygon | MultiLineString | Point>;
1023
1038
  //#endregion
1024
1039
  //#region src/generators/cm15-maneuver-areas/landingZone.d.ts
1025
1040
  /** Configuration options for the Landing zone control measure. */
@@ -1031,7 +1046,7 @@ declare const DEFAULT_LANDING_ZONE_OPTIONS: LandingZoneOptions;
1031
1046
  * labeled at its center with "LZ "-prefixed `T` (Field T) plus `H`/`W`/`W1`/`N`
1032
1047
  * amplifier rows, per {@link labeledAreaFeatures}.
1033
1048
  */
1034
- declare function createLandingZone(positions: Position[], options?: LandingZoneOptions, textAmplifiers?: CanonicalTextAmplifiers): FeatureCollection<Polygon | MultiLineString | Point>;
1049
+ declare function createLandingZone(positions: Position[], options?: LandingZoneOptions, textAmplifiers?: CanonicalTextAmplifiers, context?: ControlMeasureGeneratorContext): FeatureCollection<Polygon | MultiLineString | Point>;
1035
1050
  //#endregion
1036
1051
  //#region src/generators/cm15-maneuver-areas/pickupZone.d.ts
1037
1052
  /** Configuration options for the Pickup zone control measure. */
@@ -1043,37 +1058,37 @@ declare const DEFAULT_PICKUP_ZONE_OPTIONS: PickupZoneOptions;
1043
1058
  * labeled at its center with "PZ "-prefixed `T` (Field T) plus `H`/`W`/`W1`/`N`
1044
1059
  * amplifier rows, per {@link labeledAreaFeatures}.
1045
1060
  */
1046
- declare function createPickupZone(positions: Position[], options?: PickupZoneOptions, textAmplifiers?: CanonicalTextAmplifiers): FeatureCollection<Polygon | MultiLineString | Point>;
1061
+ declare function createPickupZone(positions: Position[], options?: PickupZoneOptions, textAmplifiers?: CanonicalTextAmplifiers, context?: ControlMeasureGeneratorContext): FeatureCollection<Polygon | MultiLineString | Point>;
1047
1062
  //#endregion
1048
1063
  //#region src/generators/cm15-maneuver-areas/assaultPosition.d.ts
1049
1064
  /** Configuration options for the Assault position control measure. */
1050
1065
  type AssaultPositionOptions = LabeledAreaOptions;
1051
1066
  /**
1052
1067
  * Creates an Assault position control measure: a closed area through
1053
- * `positions` labeled at its center with "ASLT "-prefixed `T` (Field T) —
1054
- * the sole label row, per {@link labeledAreaFeatures}.
1068
+ * `positions` labeled at its center with "ASLT "-prefixed `T` (Field T) plus
1069
+ * an `N` (Field N) ENY marker, per {@link labeledAreaFeatures}.
1055
1070
  */
1056
- declare function createAssaultPosition(positions: Position[], options?: AssaultPositionOptions, textAmplifiers?: CanonicalTextAmplifiers): FeatureCollection<Polygon | MultiLineString | Point>;
1071
+ declare function createAssaultPosition(positions: Position[], options?: AssaultPositionOptions, textAmplifiers?: CanonicalTextAmplifiers, context?: ControlMeasureGeneratorContext): FeatureCollection<Polygon | MultiLineString | Point>;
1057
1072
  //#endregion
1058
1073
  //#region src/generators/cm15-maneuver-areas/attackPosition.d.ts
1059
1074
  /** Configuration options for the Attack position control measure. */
1060
1075
  type AttackPositionOptions = LabeledAreaOptions;
1061
1076
  /**
1062
1077
  * Creates an Attack position control measure: a closed area through
1063
- * `positions` labeled at its center with "ATK "-prefixed `T` (Field T) —
1064
- * the sole label row, per {@link labeledAreaFeatures}.
1078
+ * `positions` labeled at its center with "ATK "-prefixed `T` (Field T) plus
1079
+ * an `N` (Field N) ENY marker, per {@link labeledAreaFeatures}.
1065
1080
  */
1066
- declare function createAttackPosition(positions: Position[], options?: AttackPositionOptions, textAmplifiers?: CanonicalTextAmplifiers): FeatureCollection<Polygon | MultiLineString | Point>;
1081
+ declare function createAttackPosition(positions: Position[], options?: AttackPositionOptions, textAmplifiers?: CanonicalTextAmplifiers, context?: ControlMeasureGeneratorContext): FeatureCollection<Polygon | MultiLineString | Point>;
1067
1082
  //#endregion
1068
1083
  //#region src/generators/cm15-maneuver-areas/objectiveArea.d.ts
1069
1084
  /** Configuration options for the Objective area control measure. */
1070
1085
  type ObjectiveAreaOptions = LabeledAreaOptions;
1071
1086
  /**
1072
1087
  * Creates an Objective area control measure: a closed area through
1073
- * `positions` labeled at its center with "OBJ "-prefixed `T` (Field T) —
1074
- * the sole label row, per {@link labeledAreaFeatures}.
1088
+ * `positions` labeled at its center with "OBJ "-prefixed `T` (Field T) plus
1089
+ * an `N` (Field N) ENY marker, per {@link labeledAreaFeatures}.
1075
1090
  */
1076
- declare function createObjectiveArea(positions: Position[], options?: ObjectiveAreaOptions, textAmplifiers?: CanonicalTextAmplifiers): FeatureCollection<Polygon | MultiLineString | Point>;
1091
+ declare function createObjectiveArea(positions: Position[], options?: ObjectiveAreaOptions, textAmplifiers?: CanonicalTextAmplifiers, context?: ControlMeasureGeneratorContext): FeatureCollection<Polygon | MultiLineString | Point>;
1077
1092
  //#endregion
1078
1093
  //#region src/generators/cm12-command-control-areas/area-of-operations.d.ts
1079
1094
  /** Configuration options for the Area of operations control measure. */
@@ -1085,27 +1100,27 @@ declare const DEFAULT_AREA_OF_OPERATIONS_OPTIONS: AreaOfOperationsOptions;
1085
1100
  * `positions` labeled at its center with "AO "-prefixed `T` (Field T) plus
1086
1101
  * `H`/`W`/`W1`/`N` amplifier rows, per {@link labeledAreaFeatures}.
1087
1102
  */
1088
- declare function createAreaOfOperations(positions: Position[], options?: AreaOfOperationsOptions, textAmplifiers?: CanonicalTextAmplifiers): FeatureCollection<Polygon | MultiLineString | Point>;
1103
+ declare function createAreaOfOperations(positions: Position[], options?: AreaOfOperationsOptions, textAmplifiers?: CanonicalTextAmplifiers, context?: ControlMeasureGeneratorContext): FeatureCollection<Polygon | MultiLineString | Point>;
1089
1104
  //#endregion
1090
1105
  //#region src/generators/cm12-command-control-areas/named-area-of-interest.d.ts
1091
1106
  /** Configuration options for the Named area of interest control measure. */
1092
1107
  type NamedAreaOfInterestOptions = LabeledAreaOptions;
1093
1108
  /**
1094
1109
  * Creates a Named area of interest control measure: a closed area through
1095
- * `positions` labeled at its center with "NAI "-prefixed `T` (Field T) —
1096
- * the sole label row, per {@link labeledAreaFeatures}.
1110
+ * `positions` labeled at its center with "NAI "-prefixed `T` (Field T) plus
1111
+ * an `N` (Field N) ENY marker, per {@link labeledAreaFeatures}.
1097
1112
  */
1098
- declare function createNamedAreaOfInterest(positions: Position[], options?: NamedAreaOfInterestOptions, textAmplifiers?: CanonicalTextAmplifiers): FeatureCollection<Polygon | MultiLineString | Point>;
1113
+ declare function createNamedAreaOfInterest(positions: Position[], options?: NamedAreaOfInterestOptions, textAmplifiers?: CanonicalTextAmplifiers, context?: ControlMeasureGeneratorContext): FeatureCollection<Polygon | MultiLineString | Point>;
1099
1114
  //#endregion
1100
1115
  //#region src/generators/cm12-command-control-areas/target-area-of-interest.d.ts
1101
1116
  /** Configuration options for the Target area of interest control measure. */
1102
1117
  type TargetAreaOfInterestOptions = LabeledAreaOptions;
1103
1118
  /**
1104
1119
  * Creates a Target area of interest control measure: a closed area through
1105
- * `positions` labeled at its center with "TAI "-prefixed `T` (Field T) —
1106
- * the sole label row, per {@link labeledAreaFeatures}.
1120
+ * `positions` labeled at its center with "TAI "-prefixed `T` (Field T) plus
1121
+ * an `N` (Field N) ENY marker, per {@link labeledAreaFeatures}.
1107
1122
  */
1108
- declare function createTargetAreaOfInterest(positions: Position[], options?: TargetAreaOfInterestOptions, textAmplifiers?: CanonicalTextAmplifiers): FeatureCollection<Polygon | MultiLineString | Point>;
1123
+ declare function createTargetAreaOfInterest(positions: Position[], options?: TargetAreaOfInterestOptions, textAmplifiers?: CanonicalTextAmplifiers, context?: ControlMeasureGeneratorContext): FeatureCollection<Polygon | MultiLineString | Point>;
1109
1124
  //#endregion
1110
1125
  //#region src/generators/cm12-command-control-areas/airfield-zone.d.ts
1111
1126
  /** Configuration options for the Airfield zone control measure. */
@@ -1126,9 +1141,10 @@ interface AirfieldZoneOptions extends LabeledAreaOptions {
1126
1141
  * @param positions - Area anchor points (≥3); the input contract is enforced
1127
1142
  * at the render seam (ADR-0014).
1128
1143
  * @param options - {@link AirfieldZoneOptions}.
1129
- * @param textAmplifiers - Field H only.
1144
+ * @param textAmplifiers - Field H (placed east of the area) plus an optional
1145
+ * Field N "ENY" hostile marker on the west/east edges.
1130
1146
  */
1131
- declare function createAirfieldZone(positions: Position[], options?: AirfieldZoneOptions, textAmplifiers?: CanonicalTextAmplifiers): FeatureCollection<Polygon | MultiLineString | Point>;
1147
+ declare function createAirfieldZone(positions: Position[], options?: AirfieldZoneOptions, textAmplifiers?: CanonicalTextAmplifiers, context?: ControlMeasureGeneratorContext): FeatureCollection<Polygon | MultiLineString | Point>;
1132
1148
  //#endregion
1133
1149
  //#region src/generators/cm12-command-control-areas/echelon-labeled-area.d.ts
1134
1150
  /**
@@ -1193,7 +1209,7 @@ type BaseCampOptions = EchelonLabeledAreaOptions;
1193
1209
  * amplifier rows, and an optional Field B echelon glyph straddling the
1194
1210
  * boundary, per {@link echelonLabeledAreaFeatures}.
1195
1211
  */
1196
- declare function createBaseCamp(positions: Position[], options?: BaseCampOptions, textAmplifiers?: CanonicalTextAmplifiers): FeatureCollection<Polygon | MultiLineString | MultiPolygon | Point>;
1212
+ declare function createBaseCamp(positions: Position[], options?: BaseCampOptions, textAmplifiers?: CanonicalTextAmplifiers, context?: ControlMeasureGeneratorContext): FeatureCollection<Polygon | MultiLineString | MultiPolygon | Point>;
1197
1213
  //#endregion
1198
1214
  //#region src/generators/cm12-command-control-areas/guerrilla-base.d.ts
1199
1215
  /** Configuration options for the Guerrilla base control measure. */
@@ -1204,7 +1220,7 @@ type GuerrillaBaseOptions = EchelonLabeledAreaOptions;
1204
1220
  * `H`/`W`/`W1`/`N` amplifier rows, and an optional Field B echelon glyph
1205
1221
  * straddling the boundary, per {@link echelonLabeledAreaFeatures}.
1206
1222
  */
1207
- declare function createGuerrillaBase(positions: Position[], options?: GuerrillaBaseOptions, textAmplifiers?: CanonicalTextAmplifiers): FeatureCollection<Polygon | MultiLineString | MultiPolygon | Point>;
1223
+ declare function createGuerrillaBase(positions: Position[], options?: GuerrillaBaseOptions, textAmplifiers?: CanonicalTextAmplifiers, context?: ControlMeasureGeneratorContext): FeatureCollection<Polygon | MultiLineString | MultiPolygon | Point>;
1208
1224
  //#endregion
1209
1225
  //#region src/generators/cm12-command-control-areas/generic-c2-area.d.ts
1210
1226
  /** Configuration options for the Generic command and control area control measure. */
@@ -1214,7 +1230,7 @@ type GenericC2AreaOptions = LabeledAreaOptions;
1214
1230
  * through `positions` labeled at its center with the bare `T` (Field T) plus
1215
1231
  * `H`/`W`/`W1`/`N` amplifier rows — no prefix, per {@link labeledAreaFeatures}.
1216
1232
  */
1217
- declare function createGenericC2Area(positions: Position[], options?: GenericC2AreaOptions, textAmplifiers?: CanonicalTextAmplifiers): FeatureCollection<Polygon | MultiLineString | Point>;
1233
+ declare function createGenericC2Area(positions: Position[], options?: GenericC2AreaOptions, textAmplifiers?: CanonicalTextAmplifiers, context?: ControlMeasureGeneratorContext): FeatureCollection<Polygon | MultiLineString | Point>;
1218
1234
  //#endregion
1219
1235
  //#region src/attack-utils.d.ts
1220
1236
  interface AttackOptions {
@@ -2015,8 +2031,8 @@ declare const DEFAULT_FORTIFIED_AREA_OPTIONS: FortifiedAreaOptions;
2015
2031
  * @param options - Configuration options for the graphic
2016
2032
  * @param textAmplifiers - Field T (bare, no prefix — "TANGO", not "FA TANGO")
2017
2033
  * plus Field H/W/W1, centered on the pre-teeth boundary ring (see
2018
- * `boundaryInput` below); no Field N — Fortified Area's L-15 template
2019
- * carries no ENY marker.
2034
+ * `boundaryInput` below), and an optional Field N "ENY" hostile marker on
2035
+ * that ring's west/east edges (placed but not boundary-masked — see below).
2020
2036
  * @returns A GeoJSON FeatureCollection containing the castellated Polygon
2021
2037
  * plus any label Points
2022
2038
  */
package/dist/index.d.mts CHANGED
@@ -1,2 +1,2 @@
1
- import { $ as getDefaultOptions, $n as DEFAULT_STRONG_POINT_OPTIONS, $t as DEFAULT_FLOT_OPTIONS, A as roundToFixed, An as DEFAULT_AREA_OF_OPERATIONS_OPTIONS, Ar as normalizeTextAmplifiers, At as GuardOptions, B as StyleHints, Bn as DEFAULT_AREA_DEFENSE_OPTIONS, Bt as DEFAULT_CANALIZE_OPTIONS, C as BaselineFrame, Cn as DEFAULT_SUPPORTING_ATTACK_OPTIONS, Cr as GeneratedLabelKey, Ct as AntitankWallOptions, D as createBaselineFrame, Dn as calculateMetrics, Dr as TextAmplifierKey, Dt as DEFAULT_SCREEN_OPTIONS, E as BaselineFrameOrigin, En as MainAttackOptions, Er as TextAmplifierField, Et as DEFAULT_ANTITANK_DITCH_OPTIONS, F as freezeOrientationOptions, Fn as DEFAULT_JOINT_TACTICAL_ACTION_AREA_OPTIONS, Ft as DEFAULT_TACTICAL_ARROW_OPTIONS, G as ControlMeasureStyle, Gn as DEFAULT_PRINCIPAL_DIRECTION_OF_FIRE_OPTIONS, Gt as BlockMissionTaskOptions, H as ControlMeasure, Hn as EncirclementOptions, Ht as DEFAULT_BYPASS_OPTIONS, I as RenderOptions, In as JointTacticalActionAreaOptions, It as TacticalArrowOptions, J as ControlMeasureId, Jn as DirectionOfSupportingAttackOptions, Jt as DEFAULT_BATTLE_HANDOVER_LINE_OPTIONS, K as CONTROL_MEASURE_IDS, Kn as PrincipalDirectionOfFireOptions, Kt as DEFAULT_BLOCK_MISSION_TASK_OPTIONS, L as renderControlMeasure, Ln as AssemblyAreaOptions, Lt as ClearOptions, M as SimpleStyleRender, Mn as PickupZoneOptions, Mr as AnchorTransformEvent, Mt as DelayOptions, N as toSimpleStyle, Nn as DEFAULT_LANDING_ZONE_OPTIONS, Nr as ControlMeasureDrawRule, Nt as CoverOptions, O as EPSILON, On as computeInitialWidthPoint, Or as TextAmplifiers, Ot as ScreenOptions, P as resolveStyleHints, Pn as LandingZoneOptions, Pt as DEFAULT_COVER_OPTIONS, Q as getControlMeasureMetadataByValue, Qn as DirectionOfAttackAviationOptions, Qt as PhaseLineOptions, R as ControlMeasureRender, Rn as DEFAULT_ASSEMBLY_AREA_OPTIONS, Rt as DEFAULT_CLEAR_OPTIONS, S as snapToMidpointPerpendicular, Sn as DEFAULT_CLASSIC_ARROW_OPTIONS, Sr as CanonicalTextAmplifiers, St as FortifiedLineOptions, T as BaselineFrameOptions, Tn as DEFAULT_MAIN_ATTACK_OPTIONS, Tr as TEXT_AMPLIFIER_FIELDS, Tt as AntitankDitchOptions, U as cloneControlMeasure, Un as DEFAULT_FINAL_PROTECTIVE_FIRE_OPTIONS, Ut as BreachOptions, V as controlMeasureIdFromFeature, Vn as DEFAULT_ENCIRCLEMENT_OPTIONS, Vt as BypassOptions, W as isKind, Wn as FinalProtectiveFireOptions, Wt as DEFAULT_BREACH_OPTIONS, X as OptionsByKind, Xn as DirectionOfMainAttackOptions, Xt as HandoverLineOptions, Y as ControlMeasureKind, Yn as DEFAULT_DIRECTION_OF_MAIN_ATTACK_OPTIONS, Yt as DEFAULT_HANDOVER_LINE_OPTIONS, Z as getControlMeasureMetadata, Zn as DEFAULT_DIRECTION_OF_ATTACK_AVIATION_OPTIONS, Zt as DEFAULT_PHASE_LINE_OPTIONS, _ as MidpointPerpendicularDrawRuleOptions, _n as BlockArrowHeadStyle, _r as ControlMeasureMetadata, _t as DEFAULT_FRONTAL_ATTACK_OPTIONS, a as supportByFireDrawRule, an as AttackHelicopterOptions, ar as DEFAULT_ENGINEER_WORK_LINE_OPTIONS, at as DEFAULT_OBSTACLE_BYPASS_EASY_OPTIONS, b as getMidpointPerpendicularSignedDistance, bn as ClassicArrowHeadStyle, br as AmplifierPlacement, bt as FortifiedAreaOptions, c as line23DrawRule, cn as DEFAULT_AIRBORNE_ATTACK_OPTIONS, cr as LightLineOptions, ct as TurnOptions, d as ambushDrawRule, dn as DEFAULT_GENERIC_RECTANGLE_OPTIONS, dr as project, dt as DEFAULT_DISRUPT_OPTIONS, en as FLOTOptions, er as StrongPointOptions, et as listControlMeasureMetadata, f as attackByFireDrawRule, fn as GenericRectangleOptions, fr as unproject, ft as DisruptOptions, g as blockDrawRule, gn as GenericLineOptions, gr as ControlMeasureGeometryType, gt as TurningMovementOptions, h as disruptDrawRule, hn as DEFAULT_GENERIC_LINE_OPTIONS, hr as ControlMeasureGeometry, ht as DEFAULT_TURNING_MOVEMENT_OPTIONS, i as axis1DrawRule, in as SupportByFireOptions, ir as GenericC2LineOptions, it as ObstacleBypassDifficultOptions, j as SimpleStyleProps, jn as DEFAULT_PICKUP_ZONE_OPTIONS, jr as resolveAmplifierPlacement, jt as DEFAULT_DELAY_OPTIONS, k as getMetersPerPixel, kn as AreaOfOperationsOptions, kr as canonicalTextAmplifierKey, kt as DEFAULT_GUARD_OPTIONS, l as turnDrawRule, ln as DEFAULT_GENERIC_CIRCLE_OPTIONS, lr as LabelSizeOptions, lt as DEFAULT_FIX_OPTIONS, m as centerRadiusDrawRule, mn as GenericPolygonOptions, mr as DEFAULT_BOUNDARY_OPTIONS, mt as DEFAULT_BLOCK_OPTIONS, n as DEFAULT_AMBUSH_OPTIONS, nn as DEFAULT_ATTACK_BY_FIRE_OPTIONS, nr as DEFAULT_BATTLE_POSITION_OPTIONS, nt as ObstacleBypassImpossibleOptions, o as line26DrawRule, on as DEFAULT_ATTACK_HELICOPTER_OPTIONS, or as EngineerWorkLineOptions, ot as ObstacleBypassEasyOptions, p as point12DrawRule, pn as DEFAULT_GENERIC_POLYGON_OPTIONS, pr as BoundaryOptions, pt as BlockOptions, q as CONTROL_MEASURE_METADATA, qn as DEFAULT_DIRECTION_OF_SUPPORTING_ATTACK_OPTIONS, qt as BattleHandoverLineOptions, r as rectangleDrawRule, rn as DEFAULT_SUPPORT_BY_FIRE_OPTIONS, rr as DEFAULT_GENERIC_C2_LINE_OPTIONS, rt as DEFAULT_OBSTACLE_BYPASS_DIFFICULT_OPTIONS, s as line24DrawRule, sn as AirborneAttackOptions, sr as DEFAULT_LIGHT_LINE_OPTIONS, st as DEFAULT_TURN_OPTIONS, t as AmbushOptions, tn as AttackByFireOptions, tr as BattlePositionOptions, tt as DEFAULT_OBSTACLE_BYPASS_IMPOSSIBLE_OPTIONS, u as line1DrawRule, un as GenericCircleOptions, ur as Point2D, ut as FixOptions, v as computeDefaultMidpointPerpendicularPoint, vn as BlockArrowOptions, vr as ParamDescriptor, vt as FrontalAttackOptions, w as BaselineFrameNormal, wn as SupportingAttackOptions, wr as LabelPlacementOverride, wt as DEFAULT_ANTITANK_WALL_OPTIONS, x as pointOnMidpointPerpendicularAxis, xn as ClassicArrowOptions, xr as AmplifierPlacements, xt as DEFAULT_FORTIFIED_LINE_OPTIONS, y as createMidpointPerpendicularDrawRule, yn as DEFAULT_BLOCK_ARROW_OPTIONS, yr as TextAmplifierDescriptor, yt as DEFAULT_FORTIFIED_AREA_OPTIONS, z as FeaturePartProps, zn as AreaDefenseOptions, zt as CanalizeOptions } from "./index-BCn2uBC0.mjs";
1
+ import { $ as getDefaultOptions, $n as DEFAULT_STRONG_POINT_OPTIONS, $t as DEFAULT_FLOT_OPTIONS, A as roundToFixed, An as DEFAULT_AREA_OF_OPERATIONS_OPTIONS, Ar as normalizeTextAmplifiers, At as GuardOptions, B as StyleHints, Bn as DEFAULT_AREA_DEFENSE_OPTIONS, Bt as DEFAULT_CANALIZE_OPTIONS, C as BaselineFrame, Cn as DEFAULT_SUPPORTING_ATTACK_OPTIONS, Cr as GeneratedLabelKey, Ct as AntitankWallOptions, D as createBaselineFrame, Dn as calculateMetrics, Dr as TextAmplifierKey, Dt as DEFAULT_SCREEN_OPTIONS, E as BaselineFrameOrigin, En as MainAttackOptions, Er as TextAmplifierField, Et as DEFAULT_ANTITANK_DITCH_OPTIONS, F as freezeOrientationOptions, Fn as DEFAULT_JOINT_TACTICAL_ACTION_AREA_OPTIONS, Ft as DEFAULT_TACTICAL_ARROW_OPTIONS, G as ControlMeasureStyle, Gn as DEFAULT_PRINCIPAL_DIRECTION_OF_FIRE_OPTIONS, Gt as BlockMissionTaskOptions, H as ControlMeasure, Hn as EncirclementOptions, Ht as DEFAULT_BYPASS_OPTIONS, I as RenderOptions, In as JointTacticalActionAreaOptions, It as TacticalArrowOptions, J as ControlMeasureId, Jn as DirectionOfSupportingAttackOptions, Jt as DEFAULT_BATTLE_HANDOVER_LINE_OPTIONS, K as CONTROL_MEASURE_IDS, Kn as PrincipalDirectionOfFireOptions, Kt as DEFAULT_BLOCK_MISSION_TASK_OPTIONS, L as renderControlMeasure, Ln as AssemblyAreaOptions, Lt as ClearOptions, M as SimpleStyleRender, Mn as PickupZoneOptions, Mr as AnchorTransformEvent, Mt as DelayOptions, N as toSimpleStyle, Nn as DEFAULT_LANDING_ZONE_OPTIONS, Nr as ControlMeasureDrawRule, Nt as CoverOptions, O as EPSILON, On as computeInitialWidthPoint, Or as TextAmplifiers, Ot as ScreenOptions, P as resolveStyleHints, Pn as LandingZoneOptions, Pt as DEFAULT_COVER_OPTIONS, Q as getControlMeasureMetadataByValue, Qn as DirectionOfAttackAviationOptions, Qt as PhaseLineOptions, R as ControlMeasureRender, Rn as DEFAULT_ASSEMBLY_AREA_OPTIONS, Rt as DEFAULT_CLEAR_OPTIONS, S as snapToMidpointPerpendicular, Sn as DEFAULT_CLASSIC_ARROW_OPTIONS, Sr as CanonicalTextAmplifiers, St as FortifiedLineOptions, T as BaselineFrameOptions, Tn as DEFAULT_MAIN_ATTACK_OPTIONS, Tr as TEXT_AMPLIFIER_FIELDS, Tt as AntitankDitchOptions, U as cloneControlMeasure, Un as DEFAULT_FINAL_PROTECTIVE_FIRE_OPTIONS, Ut as BreachOptions, V as controlMeasureIdFromFeature, Vn as DEFAULT_ENCIRCLEMENT_OPTIONS, Vt as BypassOptions, W as isKind, Wn as FinalProtectiveFireOptions, Wt as DEFAULT_BREACH_OPTIONS, X as OptionsByKind, Xn as DirectionOfMainAttackOptions, Xt as HandoverLineOptions, Y as ControlMeasureKind, Yn as DEFAULT_DIRECTION_OF_MAIN_ATTACK_OPTIONS, Yt as DEFAULT_HANDOVER_LINE_OPTIONS, Z as getControlMeasureMetadata, Zn as DEFAULT_DIRECTION_OF_ATTACK_AVIATION_OPTIONS, Zt as DEFAULT_PHASE_LINE_OPTIONS, _ as MidpointPerpendicularDrawRuleOptions, _n as BlockArrowHeadStyle, _r as ControlMeasureMetadata, _t as DEFAULT_FRONTAL_ATTACK_OPTIONS, a as supportByFireDrawRule, an as AttackHelicopterOptions, ar as DEFAULT_ENGINEER_WORK_LINE_OPTIONS, at as DEFAULT_OBSTACLE_BYPASS_EASY_OPTIONS, b as getMidpointPerpendicularSignedDistance, bn as ClassicArrowHeadStyle, br as AmplifierPlacement, bt as FortifiedAreaOptions, c as line23DrawRule, cn as DEFAULT_AIRBORNE_ATTACK_OPTIONS, cr as LightLineOptions, ct as TurnOptions, d as ambushDrawRule, dn as DEFAULT_GENERIC_RECTANGLE_OPTIONS, dr as project, dt as DEFAULT_DISRUPT_OPTIONS, en as FLOTOptions, er as StrongPointOptions, et as listControlMeasureMetadata, f as attackByFireDrawRule, fn as GenericRectangleOptions, fr as unproject, ft as DisruptOptions, g as blockDrawRule, gn as GenericLineOptions, gr as ControlMeasureGeometryType, gt as TurningMovementOptions, h as disruptDrawRule, hn as DEFAULT_GENERIC_LINE_OPTIONS, hr as ControlMeasureGeometry, ht as DEFAULT_TURNING_MOVEMENT_OPTIONS, i as axis1DrawRule, in as SupportByFireOptions, ir as GenericC2LineOptions, it as ObstacleBypassDifficultOptions, j as SimpleStyleProps, jn as DEFAULT_PICKUP_ZONE_OPTIONS, jr as resolveAmplifierPlacement, jt as DEFAULT_DELAY_OPTIONS, k as getMetersPerPixel, kn as AreaOfOperationsOptions, kr as canonicalTextAmplifierKey, kt as DEFAULT_GUARD_OPTIONS, l as turnDrawRule, ln as DEFAULT_GENERIC_CIRCLE_OPTIONS, lr as LabelSizeOptions, lt as DEFAULT_FIX_OPTIONS, m as centerRadiusDrawRule, mn as GenericPolygonOptions, mr as DEFAULT_BOUNDARY_OPTIONS, mt as DEFAULT_BLOCK_OPTIONS, n as DEFAULT_AMBUSH_OPTIONS, nn as DEFAULT_ATTACK_BY_FIRE_OPTIONS, nr as DEFAULT_BATTLE_POSITION_OPTIONS, nt as ObstacleBypassImpossibleOptions, o as line26DrawRule, on as DEFAULT_ATTACK_HELICOPTER_OPTIONS, or as EngineerWorkLineOptions, ot as ObstacleBypassEasyOptions, p as point12DrawRule, pn as DEFAULT_GENERIC_POLYGON_OPTIONS, pr as BoundaryOptions, pt as BlockOptions, q as CONTROL_MEASURE_METADATA, qn as DEFAULT_DIRECTION_OF_SUPPORTING_ATTACK_OPTIONS, qt as BattleHandoverLineOptions, r as rectangleDrawRule, rn as DEFAULT_SUPPORT_BY_FIRE_OPTIONS, rr as DEFAULT_GENERIC_C2_LINE_OPTIONS, rt as DEFAULT_OBSTACLE_BYPASS_DIFFICULT_OPTIONS, s as line24DrawRule, sn as AirborneAttackOptions, sr as DEFAULT_LIGHT_LINE_OPTIONS, st as DEFAULT_TURN_OPTIONS, t as AmbushOptions, tn as AttackByFireOptions, tr as BattlePositionOptions, tt as DEFAULT_OBSTACLE_BYPASS_IMPOSSIBLE_OPTIONS, u as line1DrawRule, un as GenericCircleOptions, ur as Point2D, ut as FixOptions, v as computeDefaultMidpointPerpendicularPoint, vn as BlockArrowOptions, vr as ParamDescriptor, vt as FrontalAttackOptions, w as BaselineFrameNormal, wn as SupportingAttackOptions, wr as LabelPlacementOverride, wt as DEFAULT_ANTITANK_WALL_OPTIONS, x as pointOnMidpointPerpendicularAxis, xn as ClassicArrowOptions, xr as AmplifierPlacements, xt as DEFAULT_FORTIFIED_LINE_OPTIONS, y as createMidpointPerpendicularDrawRule, yn as DEFAULT_BLOCK_ARROW_OPTIONS, yr as TextAmplifierDescriptor, yt as DEFAULT_FORTIFIED_AREA_OPTIONS, z as FeaturePartProps, zn as AreaDefenseOptions, zt as CanalizeOptions } from "./index-9CY6UM92.mjs";
2
2
  export { type AirborneAttackOptions, type AmbushOptions, type AmplifierPlacement, type AmplifierPlacements, type AnchorTransformEvent, type AntitankDitchOptions, type AntitankWallOptions, type AreaDefenseOptions, type AreaOfOperationsOptions, type AssemblyAreaOptions, type AttackByFireOptions, type AttackHelicopterOptions, type BaselineFrame, type BaselineFrameNormal, type BaselineFrameOptions, type BaselineFrameOrigin, type BattleHandoverLineOptions, type BattlePositionOptions, type BlockArrowHeadStyle, type BlockArrowOptions, type BlockMissionTaskOptions, type BlockOptions, type BoundaryOptions, type BreachOptions, type BypassOptions, CONTROL_MEASURE_IDS, CONTROL_MEASURE_METADATA, type CanalizeOptions, type CanonicalTextAmplifiers, type ClassicArrowHeadStyle, type ClassicArrowOptions, type ClearOptions, type ControlMeasure, type ControlMeasureDrawRule, type ControlMeasureGeometry, type ControlMeasureGeometryType, type ControlMeasureId, type ControlMeasureKind, type ControlMeasureMetadata, type ControlMeasureRender, type ControlMeasureStyle, type CoverOptions, DEFAULT_AIRBORNE_ATTACK_OPTIONS, DEFAULT_AMBUSH_OPTIONS, DEFAULT_ANTITANK_DITCH_OPTIONS, DEFAULT_ANTITANK_WALL_OPTIONS, DEFAULT_AREA_DEFENSE_OPTIONS, DEFAULT_AREA_OF_OPERATIONS_OPTIONS, DEFAULT_ASSEMBLY_AREA_OPTIONS, DEFAULT_ATTACK_BY_FIRE_OPTIONS, DEFAULT_ATTACK_HELICOPTER_OPTIONS, DEFAULT_BATTLE_HANDOVER_LINE_OPTIONS, DEFAULT_BATTLE_POSITION_OPTIONS, DEFAULT_BLOCK_ARROW_OPTIONS, DEFAULT_BLOCK_MISSION_TASK_OPTIONS, DEFAULT_BLOCK_OPTIONS, DEFAULT_BOUNDARY_OPTIONS, DEFAULT_BREACH_OPTIONS, DEFAULT_BYPASS_OPTIONS, DEFAULT_CANALIZE_OPTIONS, DEFAULT_CLASSIC_ARROW_OPTIONS, DEFAULT_CLEAR_OPTIONS, DEFAULT_COVER_OPTIONS, DEFAULT_DELAY_OPTIONS, DEFAULT_DIRECTION_OF_ATTACK_AVIATION_OPTIONS, DEFAULT_DIRECTION_OF_MAIN_ATTACK_OPTIONS, DEFAULT_DIRECTION_OF_SUPPORTING_ATTACK_OPTIONS, DEFAULT_DISRUPT_OPTIONS, DEFAULT_ENCIRCLEMENT_OPTIONS, DEFAULT_ENGINEER_WORK_LINE_OPTIONS, DEFAULT_FINAL_PROTECTIVE_FIRE_OPTIONS, DEFAULT_FIX_OPTIONS, DEFAULT_FLOT_OPTIONS, DEFAULT_FORTIFIED_AREA_OPTIONS, DEFAULT_FORTIFIED_LINE_OPTIONS, DEFAULT_FRONTAL_ATTACK_OPTIONS, DEFAULT_GENERIC_C2_LINE_OPTIONS, DEFAULT_GENERIC_CIRCLE_OPTIONS, DEFAULT_GENERIC_LINE_OPTIONS, DEFAULT_GENERIC_POLYGON_OPTIONS, DEFAULT_GENERIC_RECTANGLE_OPTIONS, DEFAULT_GUARD_OPTIONS, DEFAULT_HANDOVER_LINE_OPTIONS, DEFAULT_JOINT_TACTICAL_ACTION_AREA_OPTIONS, DEFAULT_LANDING_ZONE_OPTIONS, DEFAULT_LIGHT_LINE_OPTIONS, DEFAULT_MAIN_ATTACK_OPTIONS, DEFAULT_OBSTACLE_BYPASS_DIFFICULT_OPTIONS, DEFAULT_OBSTACLE_BYPASS_EASY_OPTIONS, DEFAULT_OBSTACLE_BYPASS_IMPOSSIBLE_OPTIONS, DEFAULT_PHASE_LINE_OPTIONS, DEFAULT_PICKUP_ZONE_OPTIONS, DEFAULT_PRINCIPAL_DIRECTION_OF_FIRE_OPTIONS, DEFAULT_SCREEN_OPTIONS, DEFAULT_STRONG_POINT_OPTIONS, DEFAULT_SUPPORTING_ATTACK_OPTIONS, DEFAULT_SUPPORT_BY_FIRE_OPTIONS, DEFAULT_TACTICAL_ARROW_OPTIONS, DEFAULT_TURNING_MOVEMENT_OPTIONS, DEFAULT_TURN_OPTIONS, type DelayOptions, type DirectionOfAttackAviationOptions, type DirectionOfMainAttackOptions, type DirectionOfSupportingAttackOptions, type DisruptOptions, EPSILON, type EncirclementOptions, type EngineerWorkLineOptions, type FLOTOptions, type FeaturePartProps, type FinalProtectiveFireOptions, type FixOptions, type FortifiedAreaOptions, type FortifiedLineOptions, type FrontalAttackOptions, type GeneratedLabelKey, type GenericC2LineOptions, type GenericCircleOptions, type GenericLineOptions, type GenericPolygonOptions, type GenericRectangleOptions, type GuardOptions, type HandoverLineOptions, type JointTacticalActionAreaOptions, type LabelPlacementOverride, type LabelSizeOptions, type LandingZoneOptions, type LightLineOptions, type MainAttackOptions, type MidpointPerpendicularDrawRuleOptions, type ObstacleBypassDifficultOptions, type ObstacleBypassEasyOptions, type ObstacleBypassImpossibleOptions, type OptionsByKind, type ParamDescriptor, type PhaseLineOptions, type PickupZoneOptions, type Point2D, type PrincipalDirectionOfFireOptions, type RenderOptions, type ScreenOptions, type SimpleStyleProps, type SimpleStyleRender, type StrongPointOptions, type StyleHints, type SupportByFireOptions, type SupportingAttackOptions, TEXT_AMPLIFIER_FIELDS, type TacticalArrowOptions, type TextAmplifierDescriptor, type TextAmplifierField, type TextAmplifierKey, type TextAmplifiers, type TurnOptions, type TurningMovementOptions, ambushDrawRule, attackByFireDrawRule, axis1DrawRule, blockDrawRule, calculateMetrics, canonicalTextAmplifierKey, centerRadiusDrawRule, cloneControlMeasure, computeDefaultMidpointPerpendicularPoint, computeInitialWidthPoint, controlMeasureIdFromFeature, createBaselineFrame, createMidpointPerpendicularDrawRule, disruptDrawRule, freezeOrientationOptions, getControlMeasureMetadata, getControlMeasureMetadataByValue, getDefaultOptions, getMetersPerPixel, getMidpointPerpendicularSignedDistance, isKind, line1DrawRule, line23DrawRule, line24DrawRule, line26DrawRule, listControlMeasureMetadata, normalizeTextAmplifiers, point12DrawRule, pointOnMidpointPerpendicularAxis, project, rectangleDrawRule, renderControlMeasure, resolveAmplifierPlacement, resolveStyleHints, roundToFixed, snapToMidpointPerpendicular, supportByFireDrawRule, toSimpleStyle, turnDrawRule, unproject };
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { $ as DEFAULT_GENERIC_C2_LINE_OPTIONS, A as DEFAULT_FORTIFIED_LINE_OPTIONS, At as disruptDrawRule, B as DEFAULT_DELAY_OPTIONS, Bt as project, C as DEFAULT_OBSTACLE_BYPASS_DIFFICULT_OPTIONS, Ct as line23DrawRule, D as DEFAULT_SCREEN_OPTIONS, Dt as attackByFireDrawRule, E as DEFAULT_JOINT_TACTICAL_ACTION_AREA_OPTIONS, Et as ambushDrawRule, F as DEFAULT_FIX_OPTIONS, Ft as pointOnMidpointPerpendicularAxis, G as DEFAULT_GENERIC_POLYGON_OPTIONS, H as DEFAULT_TACTICAL_ARROW_OPTIONS, Ht as EPSILON, I as DEFAULT_FINAL_PROTECTIVE_FIRE_OPTIONS, It as snapToMidpointPerpendicular, J as DEFAULT_CLASSIC_ARROW_OPTIONS, K as DEFAULT_GENERIC_LINE_OPTIONS, L as DEFAULT_ENCIRCLEMENT_OPTIONS, Lt as createBaselineFrame, M as DEFAULT_HANDOVER_LINE_OPTIONS, Mt as computeDefaultMidpointPerpendicularPoint, N as DEFAULT_PHASE_LINE_OPTIONS, Nt as createMidpointPerpendicularDrawRule, O as DEFAULT_FRONTAL_ATTACK_OPTIONS, Ot as point12DrawRule, P as DEFAULT_FLOT_OPTIONS, Pt as getMidpointPerpendicularSignedDistance, Q as DEFAULT_BLOCK_MISSION_TASK_OPTIONS, R as DEFAULT_DISRUPT_OPTIONS, Rt as calculateMetrics, S as DEFAULT_OBSTACLE_BYPASS_EASY_OPTIONS, St as line24DrawRule, T as DEFAULT_LANDING_ZONE_OPTIONS, Tt as line1DrawRule, U as DEFAULT_CLEAR_OPTIONS, Ut as getMetersPerPixel, V as DEFAULT_COVER_OPTIONS, Vt as unproject, W as DEFAULT_GENERIC_RECTANGLE_OPTIONS, Wt as roundToFixed, X as DEFAULT_BYPASS_OPTIONS, Y as DEFAULT_CANALIZE_OPTIONS, Z as DEFAULT_BREACH_OPTIONS, _ as DEFAULT_SUPPORT_BY_FIRE_OPTIONS, _t as DEFAULT_AIRBORNE_ATTACK_OPTIONS, a as resolveAmplifierPlacement, at as DEFAULT_BATTLE_POSITION_OPTIONS, b as DEFAULT_PICKUP_ZONE_OPTIONS, bt as supportByFireDrawRule, c as CONTROL_MEASURE_METADATA, ct as DEFAULT_ANTITANK_WALL_OPTIONS, d as getControlMeasureMetadataByValue, dt as DEFAULT_AREA_OF_OPERATIONS_OPTIONS, et as DEFAULT_ENGINEER_WORK_LINE_OPTIONS, f as getDefaultOptions, ft as DEFAULT_AREA_DEFENSE_OPTIONS, g as DEFAULT_SUPPORTING_ATTACK_OPTIONS, gt as DEFAULT_AMBUSH_OPTIONS, h as DEFAULT_TURN_OPTIONS, ht as DEFAULT_DIRECTION_OF_ATTACK_AVIATION_OPTIONS, i as normalizeTextAmplifiers, it as DEFAULT_BLOCK_OPTIONS, j as DEFAULT_BATTLE_HANDOVER_LINE_OPTIONS, jt as blockDrawRule, k as DEFAULT_FORTIFIED_AREA_OPTIONS, kt as centerRadiusDrawRule, l as DEFINITIONS, lt as DEFAULT_ANTITANK_DITCH_OPTIONS, m as DEFAULT_TURNING_MOVEMENT_OPTIONS, mt as DEFAULT_DIRECTION_OF_MAIN_ATTACK_OPTIONS, n as TEXT_AMPLIFIER_FIELDS, nt as DEFAULT_BOUNDARY_OPTIONS, o as resolveStyleHints, ot as DEFAULT_ATTACK_HELICOPTER_OPTIONS, p as listControlMeasureMetadata, pt as DEFAULT_DIRECTION_OF_SUPPORTING_ATTACK_OPTIONS, q as DEFAULT_GENERIC_CIRCLE_OPTIONS, r as canonicalTextAmplifierKey, rt as DEFAULT_BLOCK_ARROW_OPTIONS, s as CONTROL_MEASURE_IDS, st as DEFAULT_ATTACK_BY_FIRE_OPTIONS, t as renderControlMeasure, tt as DEFAULT_LIGHT_LINE_OPTIONS, u as getControlMeasureMetadata, ut as DEFAULT_ASSEMBLY_AREA_OPTIONS, v as DEFAULT_STRONG_POINT_OPTIONS, vt as rectangleDrawRule, w as DEFAULT_MAIN_ATTACK_OPTIONS, wt as turnDrawRule, x as DEFAULT_OBSTACLE_BYPASS_IMPOSSIBLE_OPTIONS, xt as line26DrawRule, y as DEFAULT_PRINCIPAL_DIRECTION_OF_FIRE_OPTIONS, yt as axis1DrawRule, z as DEFAULT_GUARD_OPTIONS, zt as computeInitialWidthPoint } from "./renderControlMeasure-VOKiZO2O.mjs";
1
+ import { $ as DEFAULT_BLOCK_ARROW_OPTIONS, A as DEFAULT_FLOT_OPTIONS, At as disruptDrawRule, B as DEFAULT_GENERIC_RECTANGLE_OPTIONS, Bt as project, C as DEFAULT_SCREEN_OPTIONS, Ct as line23DrawRule, D as DEFAULT_BATTLE_HANDOVER_LINE_OPTIONS, Dt as attackByFireDrawRule, E as DEFAULT_FORTIFIED_LINE_OPTIONS, Et as ambushDrawRule, F as DEFAULT_GUARD_OPTIONS, Ft as pointOnMidpointPerpendicularAxis, G as DEFAULT_CANALIZE_OPTIONS, H as DEFAULT_GENERIC_LINE_OPTIONS, Ht as EPSILON, I as DEFAULT_DELAY_OPTIONS, It as snapToMidpointPerpendicular, J as DEFAULT_BLOCK_MISSION_TASK_OPTIONS, K as DEFAULT_BYPASS_OPTIONS, L as DEFAULT_COVER_OPTIONS, Lt as createBaselineFrame, M as DEFAULT_FINAL_PROTECTIVE_FIRE_OPTIONS, Mt as computeDefaultMidpointPerpendicularPoint, N as DEFAULT_ENCIRCLEMENT_OPTIONS, Nt as createMidpointPerpendicularDrawRule, O as DEFAULT_HANDOVER_LINE_OPTIONS, Ot as point12DrawRule, P as DEFAULT_DISRUPT_OPTIONS, Pt as getMidpointPerpendicularSignedDistance, Q as DEFAULT_BOUNDARY_OPTIONS, R as DEFAULT_TACTICAL_ARROW_OPTIONS, Rt as calculateMetrics, S as DEFAULT_JOINT_TACTICAL_ACTION_AREA_OPTIONS, St as line24DrawRule, T as DEFAULT_FORTIFIED_AREA_OPTIONS, Tt as line1DrawRule, U as DEFAULT_GENERIC_CIRCLE_OPTIONS, Ut as getMetersPerPixel, V as DEFAULT_GENERIC_POLYGON_OPTIONS, Vt as unproject, W as DEFAULT_CLASSIC_ARROW_OPTIONS, Wt as roundToFixed, X as DEFAULT_ENGINEER_WORK_LINE_OPTIONS, Y as DEFAULT_GENERIC_C2_LINE_OPTIONS, Z as DEFAULT_LIGHT_LINE_OPTIONS, _ as DEFAULT_OBSTACLE_BYPASS_IMPOSSIBLE_OPTIONS, _t as DEFAULT_AIRBORNE_ATTACK_OPTIONS, a as DEFINITIONS, at as DEFAULT_ANTITANK_DITCH_OPTIONS, b as DEFAULT_MAIN_ATTACK_OPTIONS, bt as supportByFireDrawRule, c as getDefaultOptions, ct as DEFAULT_AREA_DEFENSE_OPTIONS, d as DEFAULT_TURN_OPTIONS, dt as normalizeTextAmplifiers, et as DEFAULT_BLOCK_OPTIONS, f as DEFAULT_SUPPORTING_ATTACK_OPTIONS, ft as resolveAmplifierPlacement, g as DEFAULT_PICKUP_ZONE_OPTIONS, gt as DEFAULT_AMBUSH_OPTIONS, h as DEFAULT_PRINCIPAL_DIRECTION_OF_FIRE_OPTIONS, ht as DEFAULT_DIRECTION_OF_ATTACK_AVIATION_OPTIONS, i as CONTROL_MEASURE_METADATA, it as DEFAULT_ANTITANK_WALL_OPTIONS, j as DEFAULT_FIX_OPTIONS, jt as blockDrawRule, k as DEFAULT_PHASE_LINE_OPTIONS, kt as centerRadiusDrawRule, l as listControlMeasureMetadata, lt as TEXT_AMPLIFIER_FIELDS, m as DEFAULT_STRONG_POINT_OPTIONS, mt as DEFAULT_DIRECTION_OF_MAIN_ATTACK_OPTIONS, n as resolveStyleHints, nt as DEFAULT_ATTACK_HELICOPTER_OPTIONS, o as getControlMeasureMetadata, ot as DEFAULT_ASSEMBLY_AREA_OPTIONS, p as DEFAULT_SUPPORT_BY_FIRE_OPTIONS, pt as DEFAULT_DIRECTION_OF_SUPPORTING_ATTACK_OPTIONS, q as DEFAULT_BREACH_OPTIONS, r as CONTROL_MEASURE_IDS, rt as DEFAULT_ATTACK_BY_FIRE_OPTIONS, s as getControlMeasureMetadataByValue, st as DEFAULT_AREA_OF_OPERATIONS_OPTIONS, t as renderControlMeasure, tt as DEFAULT_BATTLE_POSITION_OPTIONS, u as DEFAULT_TURNING_MOVEMENT_OPTIONS, ut as canonicalTextAmplifierKey, v as DEFAULT_OBSTACLE_BYPASS_EASY_OPTIONS, vt as rectangleDrawRule, w as DEFAULT_FRONTAL_ATTACK_OPTIONS, wt as turnDrawRule, x as DEFAULT_LANDING_ZONE_OPTIONS, xt as line26DrawRule, y as DEFAULT_OBSTACLE_BYPASS_DIFFICULT_OPTIONS, yt as axis1DrawRule, z as DEFAULT_CLEAR_OPTIONS, zt as computeInitialWidthPoint } from "./renderControlMeasure-BVbkVj2S.mjs";
2
2
  //#region src/freeze-orientation.ts
3
3
  /**
4
4
  * Dispatches to a measure kind's `freezeOrientation` hook (see
@@ -1,4 +1,4 @@
1
- import { J as ControlMeasureId, Or as TextAmplifiers } from "../index-BCn2uBC0.mjs";
1
+ import { J as ControlMeasureId, Or as TextAmplifiers } from "../index-9CY6UM92.mjs";
2
2
  import { FeatureCollection, Geometry } from "geojson";
3
3
 
4
4
  //#region src/preview/index.d.ts
@@ -1,4 +1,4 @@
1
- import { l as DEFINITIONS, t as renderControlMeasure } from "../renderControlMeasure-VOKiZO2O.mjs";
1
+ import { a as DEFINITIONS, t as renderControlMeasure } from "../renderControlMeasure-BVbkVj2S.mjs";
2
2
  //#region src/preview/index.ts
3
3
  /**
4
4
  * Unitless `previewSample` points (~`[-1, 1]`) are scaled by this degree offset