@orbat-mapper/control-measures 0.2.0-alpha.10 → 0.2.0-alpha.12
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/dist/{index-D3uCYKe3.d.mts → index-CsJcNxFQ.d.mts} +335 -69
- package/dist/index.d.mts +2 -2
- package/dist/index.mjs +1 -1
- package/dist/preview/index.d.mts +65 -10
- package/dist/preview/index.mjs +129 -18
- package/dist/{renderControlMeasure-BblcXXLp.mjs → renderControlMeasure-DHQO01PA.mjs} +1531 -615
- package/media/airborne-attack.svg +1 -1
- package/media/ambush.svg +1 -1
- package/media/antitank-ditch-completed.svg +1 -1
- package/media/antitank-ditch-under-construction.svg +1 -1
- package/media/antitank-wall.svg +1 -1
- package/media/area-of-operations.svg +1 -0
- package/media/assembly-area.svg +1 -0
- package/media/attack-by-fire.svg +1 -1
- package/media/attack-helicopter.svg +1 -1
- package/media/battle-handover-line.svg +1 -0
- package/media/battle-position.svg +1 -1
- package/media/block-arrow.svg +1 -1
- package/media/block-mission-task.svg +1 -1
- package/media/block.svg +1 -1
- package/media/boundary.svg +1 -1
- package/media/breach.svg +1 -1
- package/media/bypass.svg +1 -1
- package/media/canalize.svg +1 -1
- package/media/circle.svg +1 -1
- package/media/classic-arrow.svg +1 -1
- package/media/clear.svg +1 -1
- package/media/delay.svg +1 -1
- package/media/disrupt.svg +1 -1
- package/media/encirclement.svg +1 -1
- package/media/engineer-work-line.svg +1 -0
- package/media/final-protective-fire-left.svg +1 -1
- package/media/final-protective-fire-right.svg +1 -1
- package/media/fix.svg +1 -1
- package/media/flot.svg +1 -1
- package/media/fortified-area.svg +1 -1
- package/media/fortified-line.svg +1 -1
- package/media/generic-c2-line.svg +1 -0
- package/media/handover-line.svg +1 -0
- package/media/isolate.svg +1 -1
- package/media/joint-tactical-action-area.svg +1 -0
- package/media/landing-zone.svg +1 -0
- package/media/light-line.svg +1 -0
- package/media/line.svg +1 -1
- package/media/main-attack.svg +1 -1
- package/media/obstacle-bypass-difficult.svg +1 -1
- package/media/obstacle-bypass-easy.svg +1 -1
- package/media/obstacle-bypass-impossible.svg +1 -1
- package/media/phase-line.svg +1 -0
- package/media/pickup-zone.svg +1 -0
- package/media/polygon.svg +1 -1
- package/media/principal-direction-of-fire.svg +1 -1
- package/media/rectangle.svg +1 -1
- package/media/search-area.svg +1 -1
- package/media/strong-point.svg +1 -1
- package/media/support-by-fire.svg +1 -1
- package/media/supporting-attack.svg +1 -1
- package/media/turn.svg +1 -1
- package/package.json +1 -1
|
@@ -145,6 +145,18 @@ type FriendlyKey = `${FriendlyName}${Suffix}`;
|
|
|
145
145
|
* this is resolved to canonical form.
|
|
146
146
|
*/
|
|
147
147
|
type TextAmplifiers = Partial<Record<TextAmplifierKey | FriendlyKey, string>>;
|
|
148
|
+
/**
|
|
149
|
+
* Stable key for a non-amplifier generated label. The renderer assigns these
|
|
150
|
+
* from the label's part and per-part label ordinal when a generator has not
|
|
151
|
+
* supplied a doctrinal field key. Generators that can change a label's order
|
|
152
|
+
* should supply an explicit `labelPlacementKey` instead.
|
|
153
|
+
*/
|
|
154
|
+
type GeneratedLabelKey = `label:${string}`;
|
|
155
|
+
/**
|
|
156
|
+
* User-adjusted anchor positions for doctrinal and generated text labels,
|
|
157
|
+
* keyed by a canonical `TextAmplifierKey` or a synthesized `GeneratedLabelKey`.
|
|
158
|
+
*/
|
|
159
|
+
type AmplifierPlacements = Record<string, Position | undefined>;
|
|
148
160
|
/** Amplifier values resolved to canonical doctrinal keys, as generators receive them. */
|
|
149
161
|
type CanonicalTextAmplifiers = Readonly<Partial<Record<TextAmplifierKey, string>>>;
|
|
150
162
|
/**
|
|
@@ -206,6 +218,14 @@ interface TextParamDescriptor extends BaseParamDescriptor {
|
|
|
206
218
|
type: "text";
|
|
207
219
|
placeholder?: string;
|
|
208
220
|
maxLength?: number;
|
|
221
|
+
/**
|
|
222
|
+
* The doctrinal Table L-II field this free-text option renders (e.g.
|
|
223
|
+
* `phaseLineName` renders field `T`) — lets metadata-driven UIs (e.g. a
|
|
224
|
+
* label-placement preview) substitute a `<T>`-style placeholder for the
|
|
225
|
+
* option, the same way a `TextAmplifierDescriptor` does for a real
|
|
226
|
+
* amplifier field.
|
|
227
|
+
*/
|
|
228
|
+
field?: TextAmplifierField;
|
|
209
229
|
}
|
|
210
230
|
type ParamDescriptor = NumberParamDescriptor | BooleanParamDescriptor | ColorParamDescriptor | TextParamDescriptor | EnumParamDescriptor;
|
|
211
231
|
/** Editor-facing description of one text amplifier field a measure accepts. */
|
|
@@ -375,19 +395,6 @@ interface BoundaryOptions {
|
|
|
375
395
|
* lock the T/AS text size to the glyph height.
|
|
376
396
|
*/
|
|
377
397
|
metersPerPixel?: number;
|
|
378
|
-
/**
|
|
379
|
-
* Map zoom captured at draw-commit (`capturesLabelSize`). Forwarded onto the
|
|
380
|
-
* T/AS labels as `textSizeZoom` so a ground-anchored boundary's text scales
|
|
381
|
-
* with zoom like its meter-baked echelon glyph (maplibre).
|
|
382
|
-
*/
|
|
383
|
-
labelSizeZoom?: number;
|
|
384
|
-
/**
|
|
385
|
-
* Map resolution (meters-per-pixel) captured at draw-commit
|
|
386
|
-
* (`capturesLabelSize`). Forwarded onto the T/AS labels as `textSizeResolution`
|
|
387
|
-
* so a ground-anchored boundary's text scales with zoom (OpenLayers), and used
|
|
388
|
-
* as the reference resolution that sizes the text to the glyph height.
|
|
389
|
-
*/
|
|
390
|
-
labelSizeResolution?: number;
|
|
391
398
|
/**
|
|
392
399
|
* Number of label groups (echelon + designators), spaced evenly by cumulative
|
|
393
400
|
* arc length along the whole boundary. `1` places a single group at the
|
|
@@ -467,20 +474,56 @@ declare const project: (lon: number, lat: number) => Point2D;
|
|
|
467
474
|
*/
|
|
468
475
|
declare const unproject: (x: number, y: number) => Position;
|
|
469
476
|
//#endregion
|
|
477
|
+
//#region src/internal/sketch.d.ts
|
|
478
|
+
/**
|
|
479
|
+
* Shared `smooth`/`smoothResolution` option pair for free n-point polyline
|
|
480
|
+
* measures (draw rule Line1): curves the rendered path through the control
|
|
481
|
+
* points via a centripetal Catmull-Rom spline. The spline preserves the
|
|
482
|
+
* endpoints, so the line still meets its drawn anchors, and is a no-op for
|
|
483
|
+
* fewer than three control points (a single segment cannot be smoothed).
|
|
484
|
+
*/
|
|
485
|
+
interface SmoothLineOptions {
|
|
486
|
+
/**
|
|
487
|
+
* Round the line's corners by curving the path through the control points
|
|
488
|
+
* (centripetal Catmull-Rom spline). The spline preserves the endpoints, so
|
|
489
|
+
* the line still meets its drawn anchors.
|
|
490
|
+
* @default false
|
|
491
|
+
*/
|
|
492
|
+
smooth?: boolean;
|
|
493
|
+
/**
|
|
494
|
+
* Number of samples per segment when `smooth` is enabled. Higher values
|
|
495
|
+
* yield a denser, smoother curve.
|
|
496
|
+
* @default (varies per measure)
|
|
497
|
+
*/
|
|
498
|
+
smoothResolution?: number;
|
|
499
|
+
}
|
|
500
|
+
//#endregion
|
|
470
501
|
//#region src/internal/line-labels.d.ts
|
|
471
|
-
/**
|
|
502
|
+
/**
|
|
503
|
+
* Label sizing per the size-anchor model (ADR-0020, ADR-0028): the presence of
|
|
504
|
+
* `labelSizePixels` marks the labels screen-anchored; `labelSize` alone is
|
|
505
|
+
* ground-anchored. Carrying both behaves screen-anchored (pixels win),
|
|
506
|
+
* matching the geometry options' precedence.
|
|
507
|
+
*/
|
|
472
508
|
interface LabelSizeOptions {
|
|
509
|
+
/** Text height in projected meters — ground-anchored label size (ADR-0028). */
|
|
510
|
+
labelSize?: number;
|
|
511
|
+
/** Text height in CSS pixels — screen-anchored label size (ADR-0028). */
|
|
473
512
|
labelSizePixels?: number;
|
|
474
|
-
|
|
475
|
-
|
|
513
|
+
/**
|
|
514
|
+
* Meters-per-pixel at the current view. Stamped by the host when the labels
|
|
515
|
+
* are screen-anchored; resolves `labelSizePixels` to the projected-meter
|
|
516
|
+
* height that meter-denominated placement (offsets, gaps, row pitch) needs.
|
|
517
|
+
*/
|
|
518
|
+
metersPerPixel?: number;
|
|
476
519
|
}
|
|
477
520
|
/** Shared placement options for the fixed-end-label line measures. */
|
|
478
521
|
interface LineLabelOptions extends LabelSizeOptions {
|
|
479
522
|
/**
|
|
480
523
|
* Extra clearance between the line and its labels, as a ratio of the
|
|
481
|
-
* label's resolved text height (`labelSizePixels ×
|
|
482
|
-
* like Boundary's `labelPadding`. Negative values clamp
|
|
483
|
-
* effective when a
|
|
524
|
+
* label's resolved text height (`labelSize`, or `labelSizePixels ×
|
|
525
|
+
* metersPerPixel`), like Boundary's `labelPadding`. Negative values clamp
|
|
526
|
+
* to 0. Only effective when a label size resolves — the no-size fallback
|
|
484
527
|
* offset is a fixed meter value, unaffected by this ratio.
|
|
485
528
|
* @default 0
|
|
486
529
|
*/
|
|
@@ -489,7 +532,7 @@ interface LineLabelOptions extends LabelSizeOptions {
|
|
|
489
532
|
//#endregion
|
|
490
533
|
//#region src/generators/cm11-command-control-lines/light-line.d.ts
|
|
491
534
|
/** Configuration options for the Light line control measure. */
|
|
492
|
-
interface LightLineOptions extends LineLabelOptions {
|
|
535
|
+
interface LightLineOptions extends LineLabelOptions, SmoothLineOptions {
|
|
493
536
|
/**
|
|
494
537
|
* Optional phase line naming: renders `PL <name>` just beyond each end of
|
|
495
538
|
* the line, additive to the fixed "LL" labels. Empty or whitespace-only
|
|
@@ -516,7 +559,7 @@ declare function createLightLine(positions: Position[], options?: LightLineOptio
|
|
|
516
559
|
//#endregion
|
|
517
560
|
//#region src/generators/cm11-command-control-lines/engineer-work-line.d.ts
|
|
518
561
|
/** Configuration options for the Engineer work line control measure. */
|
|
519
|
-
interface EngineerWorkLineOptions extends LineLabelOptions {
|
|
562
|
+
interface EngineerWorkLineOptions extends LineLabelOptions, SmoothLineOptions {
|
|
520
563
|
/**
|
|
521
564
|
* Optional phase line naming: renders `PL <name>` just beyond each end of
|
|
522
565
|
* the line, additive to the fixed "EWL" labels. Empty or whitespace-only
|
|
@@ -547,7 +590,7 @@ declare function createEngineerWorkLine(positions: Position[], options?: Enginee
|
|
|
547
590
|
//#endregion
|
|
548
591
|
//#region src/generators/cm11-command-control-lines/generic-c2-line.d.ts
|
|
549
592
|
/** Configuration options for the Generic command and control line. */
|
|
550
|
-
interface GenericC2LineOptions extends LineLabelOptions {
|
|
593
|
+
interface GenericC2LineOptions extends LineLabelOptions, SmoothLineOptions {
|
|
551
594
|
/**
|
|
552
595
|
* Optional phase line naming: renders `PL <name>` just beyond each end of
|
|
553
596
|
* the line, additive to the H/T/W/W1 amplifier labels. Empty or
|
|
@@ -825,6 +868,16 @@ declare const DEFAULT_ENCIRCLEMENT_OPTIONS: EncirclementOptions;
|
|
|
825
868
|
*/
|
|
826
869
|
declare function createEncirclement(positions: Position[], options?: EncirclementOptions, textAmplifiers?: CanonicalTextAmplifiers): FeatureCollection<Polygon | MultiLineString | Point>;
|
|
827
870
|
//#endregion
|
|
871
|
+
//#region src/generators/cm15-maneuver-areas/area.d.ts
|
|
872
|
+
/** Configuration options for the Area control measure. */
|
|
873
|
+
type AreaOptions = LabeledAreaOptions;
|
|
874
|
+
/**
|
|
875
|
+
* Creates an Area control measure: a closed area through `positions` labeled
|
|
876
|
+
* at its center with an un-prefixed `T` (Field T) plus an `N` (Field N) ENY
|
|
877
|
+
* marker, per {@link labeledAreaFeatures}.
|
|
878
|
+
*/
|
|
879
|
+
declare function createArea(positions: Position[], options?: AreaOptions, textAmplifiers?: CanonicalTextAmplifiers): FeatureCollection<Polygon | MultiLineString | Point>;
|
|
880
|
+
//#endregion
|
|
828
881
|
//#region src/generators/cm15-maneuver-areas/assemblyArea.d.ts
|
|
829
882
|
/** Configuration options for the Assembly area control measure. */
|
|
830
883
|
type AssemblyAreaOptions = LabeledAreaOptions;
|
|
@@ -850,6 +903,46 @@ declare const DEFAULT_JOINT_TACTICAL_ACTION_AREA_OPTIONS: JointTacticalActionAre
|
|
|
850
903
|
*/
|
|
851
904
|
declare function createJointTacticalActionArea(positions: Position[], options?: JointTacticalActionAreaOptions, textAmplifiers?: CanonicalTextAmplifiers): FeatureCollection<Polygon | MultiLineString | Point>;
|
|
852
905
|
//#endregion
|
|
906
|
+
//#region src/generators/cm15-maneuver-areas/submarineActionArea.d.ts
|
|
907
|
+
/** Configuration options for the Submarine action area control measure. */
|
|
908
|
+
type SubmarineActionAreaOptions = LabeledAreaOptions;
|
|
909
|
+
/**
|
|
910
|
+
* Creates a Submarine action area control measure: a closed area through
|
|
911
|
+
* `positions` labeled at its center with "SAA -"-prefixed `T` (Field T) plus
|
|
912
|
+
* `W`/`W1`/`N` amplifier rows, per {@link labeledAreaFeatures}.
|
|
913
|
+
*/
|
|
914
|
+
declare function createSubmarineActionArea(positions: Position[], options?: SubmarineActionAreaOptions, textAmplifiers?: CanonicalTextAmplifiers): FeatureCollection<Polygon | MultiLineString | Point>;
|
|
915
|
+
//#endregion
|
|
916
|
+
//#region src/generators/cm15-maneuver-areas/submarineGeneratedActionArea.d.ts
|
|
917
|
+
/** Configuration options for the Submarine-generated action area control measure. */
|
|
918
|
+
type SubmarineGeneratedActionAreaOptions = LabeledAreaOptions;
|
|
919
|
+
/**
|
|
920
|
+
* Creates a Submarine-generated action area control measure: a closed area
|
|
921
|
+
* through `positions` labeled at its center with "SGSA -"-prefixed `T`
|
|
922
|
+
* (Field T) plus `W`/`W1`/`N` amplifier rows, per {@link labeledAreaFeatures}.
|
|
923
|
+
*/
|
|
924
|
+
declare function createSubmarineGeneratedActionArea(positions: Position[], options?: SubmarineGeneratedActionAreaOptions, textAmplifiers?: CanonicalTextAmplifiers): FeatureCollection<Polygon | MultiLineString | Point>;
|
|
925
|
+
//#endregion
|
|
926
|
+
//#region src/generators/cm15-maneuver-areas/dropZone.d.ts
|
|
927
|
+
/** Configuration options for the Drop zone control measure. */
|
|
928
|
+
type DropZoneOptions = LabeledAreaOptions;
|
|
929
|
+
/**
|
|
930
|
+
* Creates a Drop zone control measure: a closed area through `positions`
|
|
931
|
+
* labeled at its center with "DZ "-prefixed `T` (Field T) plus an `N`
|
|
932
|
+
* (Field N) ENY marker, per {@link labeledAreaFeatures}.
|
|
933
|
+
*/
|
|
934
|
+
declare function createDropZone(positions: Position[], options?: DropZoneOptions, textAmplifiers?: CanonicalTextAmplifiers): FeatureCollection<Polygon | MultiLineString | Point>;
|
|
935
|
+
//#endregion
|
|
936
|
+
//#region src/generators/cm15-maneuver-areas/extractionZone.d.ts
|
|
937
|
+
/** Configuration options for the Extraction zone control measure. */
|
|
938
|
+
type ExtractionZoneOptions = LabeledAreaOptions;
|
|
939
|
+
/**
|
|
940
|
+
* Creates an Extraction zone control measure: a closed area through
|
|
941
|
+
* `positions` labeled at its center with "EZ "-prefixed `T` (Field T) plus
|
|
942
|
+
* an `N` (Field N) ENY marker, per {@link labeledAreaFeatures}.
|
|
943
|
+
*/
|
|
944
|
+
declare function createExtractionZone(positions: Position[], options?: ExtractionZoneOptions, textAmplifiers?: CanonicalTextAmplifiers): FeatureCollection<Polygon | MultiLineString | Point>;
|
|
945
|
+
//#endregion
|
|
853
946
|
//#region src/generators/cm15-maneuver-areas/landingZone.d.ts
|
|
854
947
|
/** Configuration options for the Landing zone control measure. */
|
|
855
948
|
type LandingZoneOptions = LabeledAreaOptions;
|
|
@@ -874,6 +967,36 @@ declare const DEFAULT_PICKUP_ZONE_OPTIONS: PickupZoneOptions;
|
|
|
874
967
|
*/
|
|
875
968
|
declare function createPickupZone(positions: Position[], options?: PickupZoneOptions, textAmplifiers?: CanonicalTextAmplifiers): FeatureCollection<Polygon | MultiLineString | Point>;
|
|
876
969
|
//#endregion
|
|
970
|
+
//#region src/generators/cm15-maneuver-areas/assaultPosition.d.ts
|
|
971
|
+
/** Configuration options for the Assault position control measure. */
|
|
972
|
+
type AssaultPositionOptions = LabeledAreaOptions;
|
|
973
|
+
/**
|
|
974
|
+
* Creates an Assault position control measure: a closed area through
|
|
975
|
+
* `positions` labeled at its center with "ASLT "-prefixed `T` (Field T) —
|
|
976
|
+
* the sole label row, per {@link labeledAreaFeatures}.
|
|
977
|
+
*/
|
|
978
|
+
declare function createAssaultPosition(positions: Position[], options?: AssaultPositionOptions, textAmplifiers?: CanonicalTextAmplifiers): FeatureCollection<Polygon | MultiLineString | Point>;
|
|
979
|
+
//#endregion
|
|
980
|
+
//#region src/generators/cm15-maneuver-areas/attackPosition.d.ts
|
|
981
|
+
/** Configuration options for the Attack position control measure. */
|
|
982
|
+
type AttackPositionOptions = LabeledAreaOptions;
|
|
983
|
+
/**
|
|
984
|
+
* Creates an Attack position control measure: a closed area through
|
|
985
|
+
* `positions` labeled at its center with "ATK "-prefixed `T` (Field T) —
|
|
986
|
+
* the sole label row, per {@link labeledAreaFeatures}.
|
|
987
|
+
*/
|
|
988
|
+
declare function createAttackPosition(positions: Position[], options?: AttackPositionOptions, textAmplifiers?: CanonicalTextAmplifiers): FeatureCollection<Polygon | MultiLineString | Point>;
|
|
989
|
+
//#endregion
|
|
990
|
+
//#region src/generators/cm15-maneuver-areas/objectiveArea.d.ts
|
|
991
|
+
/** Configuration options for the Objective area control measure. */
|
|
992
|
+
type ObjectiveAreaOptions = LabeledAreaOptions;
|
|
993
|
+
/**
|
|
994
|
+
* Creates an Objective area control measure: a closed area through
|
|
995
|
+
* `positions` labeled at its center with "OBJ "-prefixed `T` (Field T) —
|
|
996
|
+
* the sole label row, per {@link labeledAreaFeatures}.
|
|
997
|
+
*/
|
|
998
|
+
declare function createObjectiveArea(positions: Position[], options?: ObjectiveAreaOptions, textAmplifiers?: CanonicalTextAmplifiers): FeatureCollection<Polygon | MultiLineString | Point>;
|
|
999
|
+
//#endregion
|
|
877
1000
|
//#region src/generators/cm12-command-control-areas/area-of-operations.d.ts
|
|
878
1001
|
/** Configuration options for the Area of operations control measure. */
|
|
879
1002
|
type AreaOfOperationsOptions = LabeledAreaOptions;
|
|
@@ -886,6 +1009,135 @@ declare const DEFAULT_AREA_OF_OPERATIONS_OPTIONS: AreaOfOperationsOptions;
|
|
|
886
1009
|
*/
|
|
887
1010
|
declare function createAreaOfOperations(positions: Position[], options?: AreaOfOperationsOptions, textAmplifiers?: CanonicalTextAmplifiers): FeatureCollection<Polygon | MultiLineString | Point>;
|
|
888
1011
|
//#endregion
|
|
1012
|
+
//#region src/generators/cm12-command-control-areas/named-area-of-interest.d.ts
|
|
1013
|
+
/** Configuration options for the Named area of interest control measure. */
|
|
1014
|
+
type NamedAreaOfInterestOptions = LabeledAreaOptions;
|
|
1015
|
+
/**
|
|
1016
|
+
* Creates a Named area of interest control measure: a closed area through
|
|
1017
|
+
* `positions` labeled at its center with "NAI "-prefixed `T` (Field T) —
|
|
1018
|
+
* the sole label row, per {@link labeledAreaFeatures}.
|
|
1019
|
+
*/
|
|
1020
|
+
declare function createNamedAreaOfInterest(positions: Position[], options?: NamedAreaOfInterestOptions, textAmplifiers?: CanonicalTextAmplifiers): FeatureCollection<Polygon | MultiLineString | Point>;
|
|
1021
|
+
//#endregion
|
|
1022
|
+
//#region src/generators/cm12-command-control-areas/target-area-of-interest.d.ts
|
|
1023
|
+
/** Configuration options for the Target area of interest control measure. */
|
|
1024
|
+
type TargetAreaOfInterestOptions = LabeledAreaOptions;
|
|
1025
|
+
/**
|
|
1026
|
+
* Creates a Target area of interest control measure: a closed area through
|
|
1027
|
+
* `positions` labeled at its center with "TAI "-prefixed `T` (Field T) —
|
|
1028
|
+
* the sole label row, per {@link labeledAreaFeatures}.
|
|
1029
|
+
*/
|
|
1030
|
+
declare function createTargetAreaOfInterest(positions: Position[], options?: TargetAreaOfInterestOptions, textAmplifiers?: CanonicalTextAmplifiers): FeatureCollection<Polygon | MultiLineString | Point>;
|
|
1031
|
+
//#endregion
|
|
1032
|
+
//#region src/generators/cm12-command-control-areas/airfield-zone.d.ts
|
|
1033
|
+
/** Configuration options for the Airfield zone control measure. */
|
|
1034
|
+
interface AirfieldZoneOptions extends LabeledAreaOptions {
|
|
1035
|
+
/**
|
|
1036
|
+
* The runway glyph's long line, as a ratio of the ring's projected
|
|
1037
|
+
* bounding-box width (full length, not half).
|
|
1038
|
+
* @default 0.55
|
|
1039
|
+
*/
|
|
1040
|
+
glyphSizeRatio?: number;
|
|
1041
|
+
}
|
|
1042
|
+
/**
|
|
1043
|
+
* Creates an Airfield zone control measure: a closed area through
|
|
1044
|
+
* `positions` with a runway glyph (two crossed lines forming a shallow
|
|
1045
|
+
* asymmetric X) centered on the ring, and Field H placed outside the area to
|
|
1046
|
+
* the east when set.
|
|
1047
|
+
*
|
|
1048
|
+
* @param positions - Area anchor points (≥3); the input contract is enforced
|
|
1049
|
+
* at the render seam (ADR-0014).
|
|
1050
|
+
* @param options - {@link AirfieldZoneOptions}.
|
|
1051
|
+
* @param textAmplifiers - Field H only.
|
|
1052
|
+
*/
|
|
1053
|
+
declare function createAirfieldZone(positions: Position[], options?: AirfieldZoneOptions, textAmplifiers?: CanonicalTextAmplifiers): FeatureCollection<Polygon | MultiLineString | Point>;
|
|
1054
|
+
//#endregion
|
|
1055
|
+
//#region src/generators/cm12-command-control-areas/echelon-labeled-area.d.ts
|
|
1056
|
+
/**
|
|
1057
|
+
* Configuration options shared by Base Camp and Guerrilla Base: the full L-15
|
|
1058
|
+
* label placement ({@link LabeledAreaOptions}) plus Battle Position's Field B
|
|
1059
|
+
* echelon knobs.
|
|
1060
|
+
*/
|
|
1061
|
+
interface EchelonLabeledAreaOptions extends LabeledAreaOptions {
|
|
1062
|
+
/**
|
|
1063
|
+
* Field B echelon straddling the boundary. `"none"` (the default — the
|
|
1064
|
+
* standard's examples show no echelon glyph), empty, or unknown renders no
|
|
1065
|
+
* glyph and leaves the boundary unaffected by echelon masking.
|
|
1066
|
+
* @default "none"
|
|
1067
|
+
*/
|
|
1068
|
+
echelon?: string;
|
|
1069
|
+
/**
|
|
1070
|
+
* Echelon glyph height in meters (ground-anchored). Ignored when
|
|
1071
|
+
* `echelonSizePixels` is supplied together with `metersPerPixel`.
|
|
1072
|
+
* @default 750
|
|
1073
|
+
*/
|
|
1074
|
+
echelonSize?: number;
|
|
1075
|
+
/**
|
|
1076
|
+
* Echelon glyph height in screen pixels (screen-anchored). Resolved to
|
|
1077
|
+
* meters against `metersPerPixel`; bakes to a meter size on draw/edit
|
|
1078
|
+
* commit (ADR-0020).
|
|
1079
|
+
* @default 16
|
|
1080
|
+
*/
|
|
1081
|
+
echelonSizePixels?: number;
|
|
1082
|
+
/**
|
|
1083
|
+
* Gap left on each side of the echelon glyph, as a ratio of the glyph
|
|
1084
|
+
* height. `0` butts the boundary against the glyph; larger values widen
|
|
1085
|
+
* the break.
|
|
1086
|
+
* @default 0.3
|
|
1087
|
+
*/
|
|
1088
|
+
echelonPadding?: number;
|
|
1089
|
+
/**
|
|
1090
|
+
* Slides the echelon along the boundary, as a signed fraction of the total
|
|
1091
|
+
* perimeter measured from its default anchor on the bottom edge.
|
|
1092
|
+
* @default 0
|
|
1093
|
+
*/
|
|
1094
|
+
echelonPosition?: number;
|
|
1095
|
+
/**
|
|
1096
|
+
* Absolute anchor for the echelon glyph, as a fraction of the total
|
|
1097
|
+
* perimeter measured from the ring seam, wrapped into `[0, 1)`. See Battle
|
|
1098
|
+
* Position's `echelonAnchor` (ADR-0023) — edit controllers freeze this via
|
|
1099
|
+
* the `freezeOrientation` hook the moment a rotate gesture starts.
|
|
1100
|
+
*/
|
|
1101
|
+
echelonAnchor?: number;
|
|
1102
|
+
/**
|
|
1103
|
+
* Meters-per-pixel at the current zoom/latitude. Stamped by the host when
|
|
1104
|
+
* the measure is screen-anchored; required to resolve `echelonSizePixels`.
|
|
1105
|
+
*/
|
|
1106
|
+
metersPerPixel?: number;
|
|
1107
|
+
}
|
|
1108
|
+
//#endregion
|
|
1109
|
+
//#region src/generators/cm12-command-control-areas/base-camp.d.ts
|
|
1110
|
+
/** Configuration options for the Base camp control measure. */
|
|
1111
|
+
type BaseCampOptions = EchelonLabeledAreaOptions;
|
|
1112
|
+
/**
|
|
1113
|
+
* Creates a Base camp control measure: a closed area through `positions`
|
|
1114
|
+
* labeled at its center with "BC "-prefixed `T` (Field T) plus `H`/`W`/`W1`/`N`
|
|
1115
|
+
* amplifier rows, and an optional Field B echelon glyph straddling the
|
|
1116
|
+
* boundary, per {@link echelonLabeledAreaFeatures}.
|
|
1117
|
+
*/
|
|
1118
|
+
declare function createBaseCamp(positions: Position[], options?: BaseCampOptions, textAmplifiers?: CanonicalTextAmplifiers): FeatureCollection<Polygon | MultiLineString | MultiPolygon | Point>;
|
|
1119
|
+
//#endregion
|
|
1120
|
+
//#region src/generators/cm12-command-control-areas/guerrilla-base.d.ts
|
|
1121
|
+
/** Configuration options for the Guerrilla base control measure. */
|
|
1122
|
+
type GuerrillaBaseOptions = EchelonLabeledAreaOptions;
|
|
1123
|
+
/**
|
|
1124
|
+
* Creates a Guerrilla base control measure: a closed area through
|
|
1125
|
+
* `positions` labeled at its center with "GB "-prefixed `T` (Field T) plus
|
|
1126
|
+
* `H`/`W`/`W1`/`N` amplifier rows, and an optional Field B echelon glyph
|
|
1127
|
+
* straddling the boundary, per {@link echelonLabeledAreaFeatures}.
|
|
1128
|
+
*/
|
|
1129
|
+
declare function createGuerrillaBase(positions: Position[], options?: GuerrillaBaseOptions, textAmplifiers?: CanonicalTextAmplifiers): FeatureCollection<Polygon | MultiLineString | MultiPolygon | Point>;
|
|
1130
|
+
//#endregion
|
|
1131
|
+
//#region src/generators/cm12-command-control-areas/generic-c2-area.d.ts
|
|
1132
|
+
/** Configuration options for the Generic command and control area control measure. */
|
|
1133
|
+
type GenericC2AreaOptions = LabeledAreaOptions;
|
|
1134
|
+
/**
|
|
1135
|
+
* Creates a Generic command and control area control measure: a closed area
|
|
1136
|
+
* through `positions` labeled at its center with the bare `T` (Field T) plus
|
|
1137
|
+
* `H`/`W`/`W1`/`N` amplifier rows — no prefix, per {@link labeledAreaFeatures}.
|
|
1138
|
+
*/
|
|
1139
|
+
declare function createGenericC2Area(positions: Position[], options?: GenericC2AreaOptions, textAmplifiers?: CanonicalTextAmplifiers): FeatureCollection<Polygon | MultiLineString | Point>;
|
|
1140
|
+
//#endregion
|
|
889
1141
|
//#region src/attack-utils.d.ts
|
|
890
1142
|
interface AttackOptions {
|
|
891
1143
|
shaftWidthRatio?: number;
|
|
@@ -1162,7 +1414,7 @@ declare function createAttackByFire(coordinates: Position[], options?: AttackByF
|
|
|
1162
1414
|
/**
|
|
1163
1415
|
* Configuration options for the FLOT (Forward Line of Own Troops) geometry.
|
|
1164
1416
|
*/
|
|
1165
|
-
interface FLOTOptions {
|
|
1417
|
+
interface FLOTOptions extends SmoothLineOptions {
|
|
1166
1418
|
/**
|
|
1167
1419
|
* The radius of the semicircular arcs in meters.
|
|
1168
1420
|
* Semicircles are placed tangent to each other (diameter = 2 * radius).
|
|
@@ -1218,7 +1470,7 @@ declare function createFLOT(positions: Position[], options?: FLOTOptions): Featu
|
|
|
1218
1470
|
//#endregion
|
|
1219
1471
|
//#region src/generators/cm14-maneuver-lines/phase-line.d.ts
|
|
1220
1472
|
/** Configuration options for the Phase line control measure. */
|
|
1221
|
-
interface PhaseLineOptions extends LineLabelOptions {
|
|
1473
|
+
interface PhaseLineOptions extends LineLabelOptions, SmoothLineOptions {
|
|
1222
1474
|
/**
|
|
1223
1475
|
* Prefix the end labels with "PL" (`"PL ECHO"`, or a bare `"PL"` when no
|
|
1224
1476
|
* designation is set). When `false`, the label is the bare designation
|
|
@@ -1237,7 +1489,7 @@ declare function createPhaseLine(positions: Position[], options?: PhaseLineOptio
|
|
|
1237
1489
|
//#endregion
|
|
1238
1490
|
//#region src/generators/cm14-maneuver-lines/handover-line.d.ts
|
|
1239
1491
|
/** Configuration options for the Handover line control measure. */
|
|
1240
|
-
interface HandoverLineOptions extends LineLabelOptions {
|
|
1492
|
+
interface HandoverLineOptions extends LineLabelOptions, SmoothLineOptions {
|
|
1241
1493
|
/**
|
|
1242
1494
|
* Optional phase line naming: renders `PL <name>` just beyond each end of
|
|
1243
1495
|
* the line, additive to the fixed "HOL" labels. Empty or whitespace-only
|
|
@@ -1264,7 +1516,7 @@ declare function createHandoverLine(positions: Position[], options?: HandoverLin
|
|
|
1264
1516
|
//#endregion
|
|
1265
1517
|
//#region src/generators/cm14-maneuver-lines/battle-handover-line.d.ts
|
|
1266
1518
|
/** Configuration options for the Battle handover line control measure. */
|
|
1267
|
-
interface BattleHandoverLineOptions extends LineLabelOptions {
|
|
1519
|
+
interface BattleHandoverLineOptions extends LineLabelOptions, SmoothLineOptions {
|
|
1268
1520
|
/**
|
|
1269
1521
|
* Optional phase line naming: renders `PL <name>` just beyond each end of
|
|
1270
1522
|
* the line, additive to the fixed "BHL" labels. Empty or whitespace-only
|
|
@@ -1293,14 +1545,12 @@ declare function createBattleHandoverLine(positions: Position[], options?: Battl
|
|
|
1293
1545
|
interface BlockMissionTaskOptions {
|
|
1294
1546
|
/** Gap for the 'B' label as a ratio of the front length (default: 0.2) */
|
|
1295
1547
|
labelGapRatio?: number;
|
|
1296
|
-
/**
|
|
1548
|
+
/** Text height in projected meters — ground-anchored label size (ADR-0028). */
|
|
1549
|
+
labelSize?: number;
|
|
1550
|
+
/** Text height in CSS pixels — screen-anchored label size (ADR-0028). */
|
|
1297
1551
|
labelSizePixels?: number;
|
|
1298
|
-
/** Map zoom at which labelSizePixels was captured. */
|
|
1299
|
-
labelSizeZoom?: number;
|
|
1300
|
-
/** Map resolution at which labelSizePixels was captured. */
|
|
1301
|
-
labelSizeResolution?: number;
|
|
1302
1552
|
}
|
|
1303
|
-
declare const DEFAULT_BLOCK_MISSION_TASK_OPTIONS: Required<Omit<BlockMissionTaskOptions, "
|
|
1553
|
+
declare const DEFAULT_BLOCK_MISSION_TASK_OPTIONS: Required<Omit<BlockMissionTaskOptions, "labelSize" | "labelSizePixels">>;
|
|
1304
1554
|
/**
|
|
1305
1555
|
* Generates a GeoJSON FeatureCollection for a BLOCK mission task symbol (340100).
|
|
1306
1556
|
*
|
|
@@ -1324,17 +1574,15 @@ interface BreachOptions {
|
|
|
1324
1574
|
tickAngle?: number;
|
|
1325
1575
|
/** Gap for the 'B' label as a ratio of the front length (default: 0.2) */
|
|
1326
1576
|
labelGapRatio?: number;
|
|
1327
|
-
/**
|
|
1577
|
+
/** Text height in projected meters — ground-anchored label size (ADR-0028). */
|
|
1578
|
+
labelSize?: number;
|
|
1579
|
+
/** Text height in CSS pixels — screen-anchored label size (ADR-0028). */
|
|
1328
1580
|
labelSizePixels?: number;
|
|
1329
|
-
/** Map zoom at which labelSizePixels was captured. */
|
|
1330
|
-
labelSizeZoom?: number;
|
|
1331
|
-
/** Map resolution at which labelSizePixels was captured. */
|
|
1332
|
-
labelSizeResolution?: number;
|
|
1333
1581
|
}
|
|
1334
1582
|
/**
|
|
1335
1583
|
* Default options for the BREACH symbol.
|
|
1336
1584
|
*/
|
|
1337
|
-
declare const DEFAULT_BREACH_OPTIONS: Required<Omit<BreachOptions, "
|
|
1585
|
+
declare const DEFAULT_BREACH_OPTIONS: Required<Omit<BreachOptions, "labelSize" | "labelSizePixels">>;
|
|
1338
1586
|
/**
|
|
1339
1587
|
* Generates a GeoJSON FeatureCollection for a BREACH mission task symbol (340200).
|
|
1340
1588
|
*
|
|
@@ -1357,17 +1605,15 @@ interface BypassOptions {
|
|
|
1357
1605
|
arrowheadLengthRatio?: number;
|
|
1358
1606
|
/** Gap for the 'B' label as a ratio of the front length (default: 0.2) */
|
|
1359
1607
|
labelGapRatio?: number;
|
|
1360
|
-
/**
|
|
1608
|
+
/** Text height in projected meters — ground-anchored label size (ADR-0028). */
|
|
1609
|
+
labelSize?: number;
|
|
1610
|
+
/** Text height in CSS pixels — screen-anchored label size (ADR-0028). */
|
|
1361
1611
|
labelSizePixels?: number;
|
|
1362
|
-
/** Map zoom at which labelSizePixels was captured. */
|
|
1363
|
-
labelSizeZoom?: number;
|
|
1364
|
-
/** Map resolution at which labelSizePixels was captured. */
|
|
1365
|
-
labelSizeResolution?: number;
|
|
1366
1612
|
}
|
|
1367
1613
|
/**
|
|
1368
1614
|
* Default options for the BYPASS symbol.
|
|
1369
1615
|
*/
|
|
1370
|
-
declare const DEFAULT_BYPASS_OPTIONS: Required<Omit<BypassOptions, "
|
|
1616
|
+
declare const DEFAULT_BYPASS_OPTIONS: Required<Omit<BypassOptions, "labelSize" | "labelSizePixels">>;
|
|
1371
1617
|
/**
|
|
1372
1618
|
* Generates a GeoJSON FeatureCollection for a BYPASS mission task symbol (340300).
|
|
1373
1619
|
*
|
|
@@ -1392,17 +1638,15 @@ interface CanalizeOptions {
|
|
|
1392
1638
|
tickAngle?: number;
|
|
1393
1639
|
/** Gap for the 'C' label as a ratio of the front length (default: 0.2) */
|
|
1394
1640
|
labelGapRatio?: number;
|
|
1395
|
-
/**
|
|
1641
|
+
/** Text height in projected meters — ground-anchored label size (ADR-0028). */
|
|
1642
|
+
labelSize?: number;
|
|
1643
|
+
/** Text height in CSS pixels — screen-anchored label size (ADR-0028). */
|
|
1396
1644
|
labelSizePixels?: number;
|
|
1397
|
-
/** Map zoom at which labelSizePixels was captured. */
|
|
1398
|
-
labelSizeZoom?: number;
|
|
1399
|
-
/** Map resolution at which labelSizePixels was captured. */
|
|
1400
|
-
labelSizeResolution?: number;
|
|
1401
1645
|
}
|
|
1402
1646
|
/**
|
|
1403
1647
|
* Default options for the CANALIZE symbol.
|
|
1404
1648
|
*/
|
|
1405
|
-
declare const DEFAULT_CANALIZE_OPTIONS: Required<Omit<CanalizeOptions, "
|
|
1649
|
+
declare const DEFAULT_CANALIZE_OPTIONS: Required<Omit<CanalizeOptions, "labelSize" | "labelSizePixels">>;
|
|
1406
1650
|
/**
|
|
1407
1651
|
* Generates a GeoJSON FeatureCollection for a CANALIZE mission task symbol (340400).
|
|
1408
1652
|
*
|
|
@@ -1433,17 +1677,15 @@ interface ClearOptions {
|
|
|
1433
1677
|
arrowheadWidthRatio?: number;
|
|
1434
1678
|
/** Gap for the 'C' label as a ratio of the shaft length (default: 0.2). */
|
|
1435
1679
|
labelGapRatio?: number;
|
|
1436
|
-
/**
|
|
1680
|
+
/** Text height in projected meters — ground-anchored label size (ADR-0028). */
|
|
1681
|
+
labelSize?: number;
|
|
1682
|
+
/** Text height in CSS pixels — screen-anchored label size (ADR-0028). */
|
|
1437
1683
|
labelSizePixels?: number;
|
|
1438
|
-
/** Map zoom at which labelSizePixels was captured. */
|
|
1439
|
-
labelSizeZoom?: number;
|
|
1440
|
-
/** Map resolution at which labelSizePixels was captured. */
|
|
1441
|
-
labelSizeResolution?: number;
|
|
1442
1684
|
}
|
|
1443
1685
|
/**
|
|
1444
1686
|
* Default options for the CLEAR symbol.
|
|
1445
1687
|
*/
|
|
1446
|
-
declare const DEFAULT_CLEAR_OPTIONS: Required<Omit<ClearOptions, "
|
|
1688
|
+
declare const DEFAULT_CLEAR_OPTIONS: Required<Omit<ClearOptions, "labelSize" | "labelSizePixels">>;
|
|
1447
1689
|
/**
|
|
1448
1690
|
* Generates a GeoJSON FeatureCollection for a CLEAR mission task symbol (340500).
|
|
1449
1691
|
*
|
|
@@ -1477,14 +1719,12 @@ interface DelayOptions {
|
|
|
1477
1719
|
labelGapRatio?: number;
|
|
1478
1720
|
/** Number of segments used to approximate the 180-degree arc (default: 32). */
|
|
1479
1721
|
arcSegments?: number;
|
|
1480
|
-
/**
|
|
1722
|
+
/** Text height in projected meters — ground-anchored label size (ADR-0028). */
|
|
1723
|
+
labelSize?: number;
|
|
1724
|
+
/** Text height in CSS pixels — screen-anchored label size (ADR-0028). */
|
|
1481
1725
|
labelSizePixels?: number;
|
|
1482
|
-
/** Map zoom at which labelSizePixels was captured. */
|
|
1483
|
-
labelSizeZoom?: number;
|
|
1484
|
-
/** Map resolution at which labelSizePixels was captured. */
|
|
1485
|
-
labelSizeResolution?: number;
|
|
1486
1726
|
}
|
|
1487
|
-
declare const DEFAULT_DELAY_OPTIONS: Required<Omit<DelayOptions, "
|
|
1727
|
+
declare const DEFAULT_DELAY_OPTIONS: Required<Omit<DelayOptions, "labelSize" | "labelSizePixels">>;
|
|
1488
1728
|
declare function createDelaySymbol(coordinates: Position[], options?: DelayOptions): FeatureCollection<MultiLineString | Point>;
|
|
1489
1729
|
//#endregion
|
|
1490
1730
|
//#region src/generators/cm34-mission-tasks/isolate.d.ts
|
|
@@ -1522,7 +1762,7 @@ interface IsolateOptions {
|
|
|
1522
1762
|
declare function createIsolateSymbol(coordinates: Position[], options?: IsolateOptions): FeatureCollection<MultiLineString>;
|
|
1523
1763
|
//#endregion
|
|
1524
1764
|
//#region src/generators/cm29-protection-lines/antitankDitch.d.ts
|
|
1525
|
-
interface AntitankDitchOptions {
|
|
1765
|
+
interface AntitankDitchOptions extends SmoothLineOptions {
|
|
1526
1766
|
/**
|
|
1527
1767
|
* The tooth depth in meters. Target tooth spacing is roughly 1.15x this depth.
|
|
1528
1768
|
* Ignored when toothHeightPixels is provided with metersPerPixel.
|
|
@@ -1816,11 +2056,25 @@ declare const DEFINITIONS: {
|
|
|
1816
2056
|
fill?: boolean;
|
|
1817
2057
|
}>>;
|
|
1818
2058
|
encirclement: ControlMeasureDefinition<"encirclement", typeof createEncirclement>;
|
|
2059
|
+
area: ControlMeasureDefinition<"area", typeof createArea>;
|
|
1819
2060
|
"assembly-area": ControlMeasureDefinition<"assembly-area", typeof createAssemblyArea>;
|
|
1820
2061
|
"joint-tactical-action-area": ControlMeasureDefinition<"joint-tactical-action-area", typeof createJointTacticalActionArea>;
|
|
2062
|
+
"submarine-action-area": ControlMeasureDefinition<"submarine-action-area", typeof createSubmarineActionArea>;
|
|
2063
|
+
"submarine-generated-action-area": ControlMeasureDefinition<"submarine-generated-action-area", typeof createSubmarineGeneratedActionArea>;
|
|
2064
|
+
"drop-zone": ControlMeasureDefinition<"drop-zone", typeof createDropZone>;
|
|
2065
|
+
"extraction-zone": ControlMeasureDefinition<"extraction-zone", typeof createExtractionZone>;
|
|
1821
2066
|
"landing-zone": ControlMeasureDefinition<"landing-zone", typeof createLandingZone>;
|
|
1822
2067
|
"pickup-zone": ControlMeasureDefinition<"pickup-zone", typeof createPickupZone>;
|
|
2068
|
+
"assault-position": ControlMeasureDefinition<"assault-position", typeof createAssaultPosition>;
|
|
2069
|
+
"attack-position": ControlMeasureDefinition<"attack-position", typeof createAttackPosition>;
|
|
2070
|
+
"objective-area": ControlMeasureDefinition<"objective-area", typeof createObjectiveArea>;
|
|
1823
2071
|
"area-of-operations": ControlMeasureDefinition<"area-of-operations", typeof createAreaOfOperations>;
|
|
2072
|
+
"named-area-of-interest": ControlMeasureDefinition<"named-area-of-interest", typeof createNamedAreaOfInterest>;
|
|
2073
|
+
"target-area-of-interest": ControlMeasureDefinition<"target-area-of-interest", typeof createTargetAreaOfInterest>;
|
|
2074
|
+
"airfield-zone": ControlMeasureDefinition<"airfield-zone", typeof createAirfieldZone>;
|
|
2075
|
+
"base-camp": ControlMeasureDefinition<"base-camp", typeof createBaseCamp>;
|
|
2076
|
+
"guerrilla-base": ControlMeasureDefinition<"guerrilla-base", typeof createGuerrillaBase>;
|
|
2077
|
+
"generic-c2-area": ControlMeasureDefinition<"generic-c2-area", typeof createGenericC2Area>;
|
|
1824
2078
|
"main-attack": ControlMeasureDefinition<"main-attack", typeof createMainAttack>;
|
|
1825
2079
|
"supporting-attack": ControlMeasureDefinition<"supporting-attack", typeof createSupportingAttack>;
|
|
1826
2080
|
"classic-arrow": ControlMeasureDefinition<"classic-arrow", typeof createClassicArrow>;
|
|
@@ -1916,6 +2170,8 @@ interface ControlMeasure<K extends ControlMeasureKind = ControlMeasureKind> {
|
|
|
1916
2170
|
properties?: Record<string, unknown>;
|
|
1917
2171
|
/** Free-text amplifier fields (MIL-STD-2525E Appendix L Table L-II); see `./text-amplifiers`. */
|
|
1918
2172
|
textAmplifiers?: TextAmplifiers;
|
|
2173
|
+
/** Optional user-adjusted anchors for independently rendered text amplifiers. */
|
|
2174
|
+
amplifierPlacements?: AmplifierPlacements;
|
|
1919
2175
|
schemaVersion?: 1;
|
|
1920
2176
|
}
|
|
1921
2177
|
declare function isKind<K extends ControlMeasureKind>(cm: ControlMeasure, kind: K): cm is ControlMeasure<K>;
|
|
@@ -1974,12 +2230,22 @@ interface FeaturePartProps {
|
|
|
1974
2230
|
* text begins at the point, `"end"` = it ends there. Absent = centered.
|
|
1975
2231
|
*/
|
|
1976
2232
|
textAnchor?: "start" | "end";
|
|
1977
|
-
/**
|
|
2233
|
+
/** Canonical field key for a text-amplifier label that may be repositioned. */
|
|
2234
|
+
amplifierField?: TextAmplifierKey;
|
|
2235
|
+
/** Stable key used to persist a user-adjusted anchor for any rendered label. */
|
|
2236
|
+
labelPlacementKey?: string;
|
|
2237
|
+
/**
|
|
2238
|
+
* Screen-anchored label size in CSS pixels — held constant on screen
|
|
2239
|
+
* (ADR-0028). Mutually exclusive with `textSizeMeters`; absent both,
|
|
2240
|
+
* adapters render their engine default, screen-fixed.
|
|
2241
|
+
*/
|
|
1978
2242
|
textSizePixels?: number;
|
|
1979
|
-
/**
|
|
1980
|
-
|
|
1981
|
-
|
|
1982
|
-
|
|
2243
|
+
/**
|
|
2244
|
+
* Ground-anchored label text height in projected meters (ADR-0028).
|
|
2245
|
+
* Adapters render `clamp(textSizeMeters / resolution, min, max)` px, per
|
|
2246
|
+
* their configured clamp band.
|
|
2247
|
+
*/
|
|
2248
|
+
textSizeMeters?: number;
|
|
1983
2249
|
}
|
|
1984
2250
|
/**
|
|
1985
2251
|
* Output of `renderControlMeasure`. A GeoJSON `FeatureCollection` whose
|
|
@@ -2301,4 +2567,4 @@ interface TacticalArrowOptions {
|
|
|
2301
2567
|
*/
|
|
2302
2568
|
declare const DEFAULT_TACTICAL_ARROW_OPTIONS: Required<TacticalArrowOptions>;
|
|
2303
2569
|
//#endregion
|
|
2304
|
-
export { getControlMeasureMetadata as $, ControlMeasureMetadata as $n, DEFAULT_GENERIC_CIRCLE_OPTIONS as $t, getMetersPerPixel as A, EncirclementOptions as An, DEFAULT_CANALIZE_OPTIONS as At, ControlMeasureSnapshot as B, GenericC2LineOptions as Bn, HandoverLineOptions as Bt, snapToMidpointPerpendicular as C, DEFAULT_LANDING_ZONE_OPTIONS as Cn, AntitankDitchOptions as Ct, BaselineFrameOrigin as D, AssemblyAreaOptions as Dn, ClearOptions as Dt, BaselineFrameOptions as E, JointTacticalActionAreaOptions as En, DelayOptions as Et, resolveStyleHints as F, DEFAULT_STRONG_POINT_OPTIONS as Fn, BlockMissionTaskOptions as Ft, cloneControlMeasure as G, LabelSizeOptions as Gn, AttackByFireOptions as Gt, StyleHints as H, EngineerWorkLineOptions as Hn, PhaseLineOptions as Ht, freezeOrientationOptions as I, StrongPointOptions as In, DEFAULT_BLOCK_MISSION_TASK_OPTIONS as It, CONTROL_MEASURE_IDS as J, unproject as Jn, SupportByFireOptions as Jt, isKind as K, Point2D as Kn, DEFAULT_ATTACK_BY_FIRE_OPTIONS as Kt, RenderOptions as L, BattlePositionOptions as Ln, BattleHandoverLineOptions as Lt, SimpleStyleProps as M, FinalProtectiveFireOptions as Mn, DEFAULT_BYPASS_OPTIONS as Mt, SimpleStyleRender as N, DEFAULT_PRINCIPAL_DIRECTION_OF_FIRE_OPTIONS as Nn, BreachOptions as Nt, createBaselineFrame as O, DEFAULT_ASSEMBLY_AREA_OPTIONS as On, DEFAULT_CLEAR_OPTIONS as Ot, toSimpleStyle as P, PrincipalDirectionOfFireOptions as Pn, DEFAULT_BREACH_OPTIONS as Pt, OptionsByKind as Q, ControlMeasureGeometryType as Qn, DEFAULT_AIRBORNE_ATTACK_OPTIONS as Qt, renderControlMeasure as R, DEFAULT_BATTLE_POSITION_OPTIONS as Rn, DEFAULT_BATTLE_HANDOVER_LINE_OPTIONS as Rt, pointOnMidpointPerpendicularAxis as S, PickupZoneOptions as Sn, DEFAULT_ANTITANK_WALL_OPTIONS as St, BaselineFrameNormal as T, DEFAULT_JOINT_TACTICAL_ACTION_AREA_OPTIONS as Tn, DEFAULT_DELAY_OPTIONS as Tt, controlMeasureIdFromFeature as U, DEFAULT_LIGHT_LINE_OPTIONS as Un, DEFAULT_FLOT_OPTIONS as Ut, FeaturePartProps as V, DEFAULT_ENGINEER_WORK_LINE_OPTIONS as Vn, DEFAULT_PHASE_LINE_OPTIONS as Vt, ControlMeasure as W, LightLineOptions as Wn, FLOTOptions as Wt, ControlMeasureId as X, DEFAULT_BOUNDARY_OPTIONS as Xn, DEFAULT_ATTACK_HELICOPTER_OPTIONS as Xt, CONTROL_MEASURE_METADATA as Y, BoundaryOptions as Yn, AttackHelicopterOptions as Yt, ControlMeasureKind as Z, ControlMeasureGeometry as Zn, AirborneAttackOptions as Zt, blockDrawRule as _, calculateMetrics as _n, DEFAULT_FORTIFIED_AREA_OPTIONS as _t, rectangleDrawRule as a, DEFAULT_GENERIC_LINE_OPTIONS as an,
|
|
2570
|
+
export { getControlMeasureMetadata as $, ControlMeasureMetadata as $n, DEFAULT_GENERIC_CIRCLE_OPTIONS as $t, getMetersPerPixel as A, EncirclementOptions as An, DEFAULT_CANALIZE_OPTIONS as At, ControlMeasureSnapshot as B, GenericC2LineOptions as Bn, HandoverLineOptions as Bt, snapToMidpointPerpendicular as C, DEFAULT_LANDING_ZONE_OPTIONS as Cn, AntitankDitchOptions as Ct, BaselineFrameOrigin as D, AssemblyAreaOptions as Dn, ClearOptions as Dt, BaselineFrameOptions as E, JointTacticalActionAreaOptions as En, DelayOptions as Et, resolveStyleHints as F, DEFAULT_STRONG_POINT_OPTIONS as Fn, BlockMissionTaskOptions as Ft, cloneControlMeasure as G, LabelSizeOptions as Gn, AttackByFireOptions as Gt, StyleHints as H, EngineerWorkLineOptions as Hn, PhaseLineOptions as Ht, freezeOrientationOptions as I, StrongPointOptions as In, DEFAULT_BLOCK_MISSION_TASK_OPTIONS as It, CONTROL_MEASURE_IDS as J, unproject as Jn, SupportByFireOptions as Jt, isKind as K, Point2D as Kn, DEFAULT_ATTACK_BY_FIRE_OPTIONS as Kt, RenderOptions as L, BattlePositionOptions as Ln, BattleHandoverLineOptions as Lt, SimpleStyleProps as M, FinalProtectiveFireOptions as Mn, DEFAULT_BYPASS_OPTIONS as Mt, SimpleStyleRender as N, DEFAULT_PRINCIPAL_DIRECTION_OF_FIRE_OPTIONS as Nn, BreachOptions as Nt, createBaselineFrame as O, DEFAULT_ASSEMBLY_AREA_OPTIONS as On, DEFAULT_CLEAR_OPTIONS as Ot, toSimpleStyle as P, PrincipalDirectionOfFireOptions as Pn, DEFAULT_BREACH_OPTIONS as Pt, OptionsByKind as Q, ControlMeasureGeometryType as Qn, DEFAULT_AIRBORNE_ATTACK_OPTIONS as Qt, renderControlMeasure as R, DEFAULT_BATTLE_POSITION_OPTIONS as Rn, DEFAULT_BATTLE_HANDOVER_LINE_OPTIONS as Rt, pointOnMidpointPerpendicularAxis as S, PickupZoneOptions as Sn, DEFAULT_ANTITANK_WALL_OPTIONS as St, BaselineFrameNormal as T, DEFAULT_JOINT_TACTICAL_ACTION_AREA_OPTIONS as Tn, DEFAULT_DELAY_OPTIONS as Tt, controlMeasureIdFromFeature as U, DEFAULT_LIGHT_LINE_OPTIONS as Un, DEFAULT_FLOT_OPTIONS as Ut, FeaturePartProps as V, DEFAULT_ENGINEER_WORK_LINE_OPTIONS as Vn, DEFAULT_PHASE_LINE_OPTIONS as Vt, ControlMeasure as W, LightLineOptions as Wn, FLOTOptions as Wt, ControlMeasureId as X, DEFAULT_BOUNDARY_OPTIONS as Xn, DEFAULT_ATTACK_HELICOPTER_OPTIONS as Xt, CONTROL_MEASURE_METADATA as Y, BoundaryOptions as Yn, AttackHelicopterOptions as Yt, ControlMeasureKind as Z, ControlMeasureGeometry as Zn, AirborneAttackOptions as Zt, blockDrawRule as _, calculateMetrics as _n, DEFAULT_FORTIFIED_AREA_OPTIONS as _t, rectangleDrawRule as a, DEFAULT_GENERIC_LINE_OPTIONS as an, TEXT_AMPLIFIER_FIELDS as ar, DEFAULT_OBSTACLE_BYPASS_DIFFICULT_OPTIONS as at, createMidpointPerpendicularDrawRule as b, DEFAULT_AREA_OF_OPERATIONS_OPTIONS as bn, FortifiedLineOptions as bt, line24DrawRule as c, BlockArrowOptions as cn, TextAmplifiers as cr, ObstacleBypassEasyOptions as ct, line1DrawRule as d, ClassicArrowOptions as dn, AnchorTransformEvent as dr, DEFAULT_FIX_OPTIONS as dt, GenericCircleOptions as en, ParamDescriptor as er, getControlMeasureMetadataByValue as et, ambushDrawRule as f, DEFAULT_CLASSIC_ARROW_OPTIONS as fn, ControlMeasureDrawRule as fr, FixOptions as ft, disruptDrawRule as g, MainAttackOptions as gn, DEFAULT_BLOCK_OPTIONS as gt, centerRadiusDrawRule as h, DEFAULT_MAIN_ATTACK_OPTIONS as hn, BlockOptions as ht, DEFAULT_AMBUSH_OPTIONS as i, GenericPolygonOptions as in, GeneratedLabelKey as ir, ObstacleBypassImpossibleOptions as it, roundToFixed as j, DEFAULT_FINAL_PROTECTIVE_FIRE_OPTIONS as jn, BypassOptions as jt, EPSILON as k, DEFAULT_ENCIRCLEMENT_OPTIONS as kn, CanalizeOptions as kt, line23DrawRule as l, DEFAULT_BLOCK_ARROW_OPTIONS as ln, canonicalTextAmplifierKey as lr, DEFAULT_TURN_OPTIONS as lt, point12DrawRule as m, SupportingAttackOptions as mn, DisruptOptions as mt, TacticalArrowOptions as n, GenericRectangleOptions as nn, AmplifierPlacements as nr, listControlMeasureMetadata as nt, axis1DrawRule as o, GenericLineOptions as on, TextAmplifierField as or, ObstacleBypassDifficultOptions as ot, attackByFireDrawRule as p, DEFAULT_SUPPORTING_ATTACK_OPTIONS as pn, DEFAULT_DISRUPT_OPTIONS as pt, ControlMeasureStyle as q, project as qn, DEFAULT_SUPPORT_BY_FIRE_OPTIONS as qt, AmbushOptions as r, DEFAULT_GENERIC_POLYGON_OPTIONS as rn, CanonicalTextAmplifiers as rr, DEFAULT_OBSTACLE_BYPASS_IMPOSSIBLE_OPTIONS as rt, supportByFireDrawRule as s, BlockArrowHeadStyle as sn, TextAmplifierKey as sr, DEFAULT_OBSTACLE_BYPASS_EASY_OPTIONS as st, DEFAULT_TACTICAL_ARROW_OPTIONS as t, DEFAULT_GENERIC_RECTANGLE_OPTIONS as tn, TextAmplifierDescriptor as tr, getDefaultOptions as tt, turnDrawRule as u, ClassicArrowHeadStyle as un, normalizeTextAmplifiers as ur, TurnOptions as ut, MidpointPerpendicularDrawRuleOptions as v, computeInitialWidthPoint as vn, FortifiedAreaOptions as vt, BaselineFrame as w, LandingZoneOptions as wn, DEFAULT_ANTITANK_DITCH_OPTIONS as wt, getMidpointPerpendicularSignedDistance as x, DEFAULT_PICKUP_ZONE_OPTIONS as xn, AntitankWallOptions as xt, computeDefaultMidpointPerpendicularPoint as y, AreaOfOperationsOptions as yn, DEFAULT_FORTIFIED_LINE_OPTIONS as yt, ControlMeasureRender as z, DEFAULT_GENERIC_C2_LINE_OPTIONS as zn, DEFAULT_HANDOVER_LINE_OPTIONS as zt };
|