@orbat-mapper/control-measures 0.2.0-alpha.32 → 0.2.0-alpha.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -192,6 +192,7 @@ code.
192
192
  | <img src="media/bypass.svg" width="96" height="48" alt=""> | `bypass` | Bypass | `340300` |
193
193
  | <img src="media/canalize.svg" width="96" height="48" alt=""> | `canalize` | Canalize | `340400` |
194
194
  | <img src="media/clear.svg" width="96" height="48" alt=""> | `clear` | Clear | `340500` |
195
+ | <img src="media/counterattack.svg" width="96" height="48" alt=""> | `counterattack` | Counterattack | `340600` |
195
196
  | <img src="media/delay.svg" width="96" height="48" alt=""> | `delay` | Delay | `340800` |
196
197
  | <img src="media/isolate.svg" width="96" height="48" alt=""> | `isolate` | Isolate | `341500` |
197
198
  | <img src="media/cover.svg" width="96" height="48" alt=""> | `cover` | Cover | `342201` |
@@ -1930,6 +1930,45 @@ declare const DEFAULT_FORWARD_EDGE_OF_BATTLE_AREA_OPTIONS: ForwardEdgeOfBattleAr
1930
1930
  */
1931
1931
  declare function createForwardEdgeOfBattleArea(positions: Position[], options?: ForwardEdgeOfBattleAreaOptions, textAmplifiers?: CanonicalTextAmplifiers): FeatureCollection<LineString | Point>;
1932
1932
  //#endregion
1933
+ //#region src/generators/cm14-maneuver-lines/bridgehead-line.d.ts
1934
+ /** Configuration options for the Bridgehead line control measure. */
1935
+ interface BridgeheadLineOptions extends LineLabelOptions, SmoothLineOptions {
1936
+ /** Optional phase-line name rendered beyond both ends of the line. */
1937
+ phaseLineName?: string;
1938
+ /** Prefix the phase-line name with "PL". @default true */
1939
+ includePrefix?: boolean;
1940
+ }
1941
+ /** Default options for the Bridgehead line control measure. */
1942
+ declare const DEFAULT_BRIDGEHEAD_LINE_OPTIONS: BridgeheadLineOptions;
1943
+ /** Creates a Bridgehead line labeled "BL" above both ends. */
1944
+ declare function createBridgeheadLine(positions: Position[], options?: BridgeheadLineOptions, textAmplifiers?: CanonicalTextAmplifiers): FeatureCollection<LineString | Point>;
1945
+ //#endregion
1946
+ //#region src/generators/cm14-maneuver-lines/holding-line.d.ts
1947
+ /** Configuration options for the Holding line control measure. */
1948
+ interface HoldingLineOptions extends LineLabelOptions, SmoothLineOptions {
1949
+ /** Optional phase-line name rendered beyond both ends of the line. */
1950
+ phaseLineName?: string;
1951
+ /** Prefix the phase-line name with "PL". @default true */
1952
+ includePrefix?: boolean;
1953
+ }
1954
+ /** Default options for the Holding line control measure. */
1955
+ declare const DEFAULT_HOLDING_LINE_OPTIONS: HoldingLineOptions;
1956
+ /** Creates a Holding line labeled "HL" above both ends. */
1957
+ declare function createHoldingLine(positions: Position[], options?: HoldingLineOptions, textAmplifiers?: CanonicalTextAmplifiers): FeatureCollection<LineString | Point>;
1958
+ //#endregion
1959
+ //#region src/generators/cm14-maneuver-lines/release-line.d.ts
1960
+ /** Configuration options for the Release line control measure. */
1961
+ interface ReleaseLineOptions extends LineLabelOptions, SmoothLineOptions {
1962
+ /** Optional phase-line name rendered beyond both ends of the line. */
1963
+ phaseLineName?: string;
1964
+ /** Prefix the phase-line name with "PL". @default true */
1965
+ includePrefix?: boolean;
1966
+ }
1967
+ /** Default options for the Release line control measure. */
1968
+ declare const DEFAULT_RELEASE_LINE_OPTIONS: ReleaseLineOptions;
1969
+ /** Creates a Release line labeled "RL" above both ends. */
1970
+ declare function createReleaseLine(positions: Position[], options?: ReleaseLineOptions, textAmplifiers?: CanonicalTextAmplifiers): FeatureCollection<LineString | Point>;
1971
+ //#endregion
1933
1972
  //#region src/generators/cm14-maneuver-lines/handover-line.d.ts
1934
1973
  /** Configuration options for the Handover line control measure. */
1935
1974
  interface HandoverLineOptions extends LineLabelOptions, SmoothLineOptions {
@@ -2152,6 +2191,15 @@ declare const DEFAULT_CLEAR_OPTIONS: Required<Omit<ClearOptions, "labelSize" | "
2152
2191
  */
2153
2192
  declare function createClearSymbol(coordinates: Position[], options?: ClearOptions): FeatureCollection<MultiLineString | Point>;
2154
2193
  //#endregion
2194
+ //#region src/generators/cm34-mission-tasks/counterattack.d.ts
2195
+ interface CounterattackOptions extends AttackOptions, LabelSizeOptions {
2196
+ /** CATK label position along the shaft, from tail (0) to arrowhead base (1). */
2197
+ labelPosition?: number;
2198
+ }
2199
+ declare const DEFAULT_COUNTERATTACK_OPTIONS: Required<Omit<CounterattackOptions, keyof LabelSizeOptions>>;
2200
+ /** Generates the Counterattack mission task (340600). */
2201
+ declare function createCounterattack(coordinates: Position[], options?: CounterattackOptions, textAmplifiers?: CanonicalTextAmplifiers): FeatureCollection<LineString | Point>;
2202
+ //#endregion
2155
2203
  //#region src/generators/cm15-maneuver-areas/searchArea.d.ts
2156
2204
  /**
2157
2205
  * Configuration options to tweak the tactical arrow's geometry.
@@ -2401,7 +2449,10 @@ declare const DEFAULT_FRONTAL_ATTACK_OPTIONS: FrontalAttackOptions;
2401
2449
  declare function createFrontalAttack(coordinates: Position[], options?: FrontalAttackOptions, textAmplifiers?: CanonicalTextAmplifiers): FeatureCollection<MultiLineString | Point>;
2402
2450
  //#endregion
2403
2451
  //#region src/generators/cm15-maneuver-areas/turning-movement.d.ts
2404
- type TurningMovementOptions = ManeuverArrowTaskOptions;
2452
+ interface TurningMovementOptions extends ManeuverArrowTaskOptions {
2453
+ /** Crossbar position along the shaft, from tail (0) to arrowhead base (1). */
2454
+ crossbarPosition?: number;
2455
+ }
2405
2456
  declare const DEFAULT_TURNING_MOVEMENT_OPTIONS: TurningMovementOptions;
2406
2457
  declare function createTurningMovement(coordinates: Position[], options?: TurningMovementOptions, textAmplifiers?: CanonicalTextAmplifiers): FeatureCollection<MultiLineString | Point>;
2407
2458
  //#endregion
@@ -2606,6 +2657,9 @@ declare const DEFINITIONS: {
2606
2657
  flot: ControlMeasureDefinition<"flot", typeof createFLOT>;
2607
2658
  "phase-line": ControlMeasureDefinition<"phase-line", typeof createPhaseLine>;
2608
2659
  "forward-edge-of-battle-area": ControlMeasureDefinition<"forward-edge-of-battle-area", typeof createForwardEdgeOfBattleArea>;
2660
+ "bridgehead-line": ControlMeasureDefinition<"bridgehead-line", typeof createBridgeheadLine>;
2661
+ "holding-line": ControlMeasureDefinition<"holding-line", typeof createHoldingLine>;
2662
+ "release-line": ControlMeasureDefinition<"release-line", typeof createReleaseLine>;
2609
2663
  "handover-line": ControlMeasureDefinition<"handover-line", typeof createHandoverLine>;
2610
2664
  "battle-handover-line": ControlMeasureDefinition<"battle-handover-line", typeof createBattleHandoverLine>;
2611
2665
  "block-mission-task": ControlMeasureDefinition<"block-mission-task", typeof createBlockMissionTaskSymbol>;
@@ -2613,6 +2667,7 @@ declare const DEFINITIONS: {
2613
2667
  bypass: ControlMeasureDefinition<"bypass", typeof createBypassSymbol>;
2614
2668
  canalize: ControlMeasureDefinition<"canalize", typeof createCanalizeSymbol>;
2615
2669
  clear: ControlMeasureDefinition<"clear", typeof createClearSymbol>;
2670
+ counterattack: ControlMeasureDefinition<"counterattack", typeof createCounterattack>;
2616
2671
  cover: ControlMeasureDefinition<"cover", typeof createCoverSymbol>;
2617
2672
  delay: ControlMeasureDefinition<"delay", typeof createDelaySymbol>;
2618
2673
  guard: ControlMeasureDefinition<"guard", typeof createGuardSymbol>;
@@ -2984,4 +3039,4 @@ interface AmbushOptions {
2984
3039
  }
2985
3040
  declare const DEFAULT_AMBUSH_OPTIONS: Required<AmbushOptions>;
2986
3041
  //#endregion
2987
- export { DEFAULT_OBSTACLE_BYPASS_DIFFICULT_OPTIONS as $, PrincipalDirectionOfFireOptions as $n, AttackByFireOptions as $t, roundToFixed as A, DEFAULT_AREA_OF_OPERATIONS_OPTIONS as An, ControlMeasurePaintCapability as Ar, DEFAULT_COVER_OPTIONS as At, cloneControlMeasure as B, DEFAULT_AREA_DEFENSE_OPTIONS as Bn, TextAmplifierKey as Br, DEFAULT_BREACH_OPTIONS as Bt, BaselineFrame as C, DEFAULT_SUPPORTING_ATTACK_OPTIONS as Cn, BoundaryOptions as Cr, DEFAULT_SCREEN_OPTIONS as Ct, createBaselineFrame as D, calculateMetrics as Dn, ControlMeasureGeometry as Dr, DEFAULT_DELAY_OPTIONS as Dt, BaselineFrameOrigin as E, MainAttackOptions as En, ControlMeasureFillCapability as Er, GuardOptions as Et, applyBoxTransformOptions as F, DEFAULT_JOINT_TACTICAL_ACTION_AREA_OPTIONS as Fn, CanonicalTextAmplifiers as Fr, CanalizeOptions as Ft, ControlMeasureKind as G, ControlMeasureRender as Gn, AnchorTransformEvent as Gr, DEFAULT_HANDOVER_LINE_OPTIONS as Gt, CONTROL_MEASURE_IDS as H, EncirclementOptions as Hn, canonicalTextAmplifierKey as Hr, DEFAULT_BLOCK_MISSION_TASK_OPTIONS as Ht, freezeOrientationOptions as I, JointTacticalActionAreaOptions as In, GeneratedLabelKey as Ir, DEFAULT_CANALIZE_OPTIONS as It, getControlMeasureMetadataByValue as J, controlMeasureIdFromFeature as Jn, ForwardEdgeOfBattleAreaOptions as Jt, OptionsByKind as K, FeaturePartProps as Kn, ControlMeasureDrawRule as Kr, HandoverLineOptions as Kt, RenderOptions as L, AssemblyAreaOptions as Ln, LabelPlacementOverride as Lr, BypassOptions as Lt, SimpleStyleRender as M, PickupZoneOptions as Mn, TextAmplifierDescriptor as Mr, TacticalArrowOptions as Mt, toSimpleStyle as N, DEFAULT_LANDING_ZONE_OPTIONS as Nn, AmplifierPlacement as Nr, ClearOptions as Nt, EPSILON as O, computeInitialWidthPoint as On, ControlMeasureGeometryType as Or, DelayOptions as Ot, resolveStyleHints as P, LandingZoneOptions as Pn, AmplifierPlacements as Pr, DEFAULT_CLEAR_OPTIONS as Pt, ObstacleBypassImpossibleOptions as Q, DEFAULT_PRINCIPAL_DIRECTION_OF_FIRE_OPTIONS as Qn, FLOTOptions as Qt, renderControlMeasure as R, DEFAULT_ASSEMBLY_AREA_OPTIONS as Rn, TEXT_AMPLIFIER_FIELDS as Rr, DEFAULT_BYPASS_OPTIONS as Rt, snapToMidpointPerpendicular as S, DEFAULT_CLASSIC_ARROW_OPTIONS as Sn, unproject as Sr, DEFAULT_ANTITANK_DITCH_OPTIONS as St, BaselineFrameOptions as T, DEFAULT_MAIN_ATTACK_OPTIONS as Tn, BoxTransformDelta as Tr, DEFAULT_GUARD_OPTIONS as Tt, CONTROL_MEASURE_METADATA as U, DEFAULT_FINAL_PROTECTIVE_FIRE_OPTIONS as Un, normalizeTextAmplifiers as Ur, BattleHandoverLineOptions as Ut, isKind as V, DEFAULT_ENCIRCLEMENT_OPTIONS as Vn, TextAmplifiers as Vr, BlockMissionTaskOptions as Vt, ControlMeasureId as W, FinalProtectiveFireOptions as Wn, resolveAmplifierPlacement as Wr, DEFAULT_BATTLE_HANDOVER_LINE_OPTIONS as Wt, listControlMeasureMetadata as X, SECONDARY_DIRECTION_OF_FIRE_DASH as Xn, PhaseLineOptions as Xt, getDefaultOptions as Y, DEFAULT_SECONDARY_DIRECTION_OF_FIRE_OPTIONS as Yn, DEFAULT_PHASE_LINE_OPTIONS as Yt, DEFAULT_OBSTACLE_BYPASS_IMPOSSIBLE_OPTIONS as Z, SecondaryDirectionOfFireOptions as Zn, DEFAULT_FLOT_OPTIONS as Zt, MidpointPerpendicularDrawRuleOptions as _, BlockArrowHeadStyle as _n, LightLineOptions as _r, DEFAULT_FORTIFIED_LINE_OPTIONS as _t, supportByFireDrawRule as a, AirborneAttackOptions as an, DirectionOfAttackAviationOptions as ar, DEFAULT_FIX_OPTIONS as at, getMidpointPerpendicularSignedDistance as b, ClassicArrowHeadStyle as bn, haversineDistance as br, DEFAULT_ANTITANK_WALL_OPTIONS as bt, line23DrawRule as c, GenericTextOptions as cn, BattlePositionOptions as cr, DisruptOptions as ct, ambushDrawRule as d, DEFAULT_GENERIC_RECTANGLE_OPTIONS as dn, FillPattern as dr, DEFAULT_TURNING_MOVEMENT_OPTIONS as dt, DEFAULT_ATTACK_BY_FIRE_OPTIONS as en, DEFAULT_DIRECTION_OF_SUPPORTING_ATTACK_OPTIONS as er, ObstacleBypassDifficultOptions as et, attackByFireDrawRule as f, GenericRectangleOptions as fn, DEFAULT_GENERIC_C2_LINE_OPTIONS as fr, TurningMovementOptions as ft, blockDrawRule as g, GenericLineOptions as gn, DEFAULT_LIGHT_LINE_OPTIONS as gr, FortifiedAreaOptions as gt, disruptDrawRule as h, DEFAULT_GENERIC_LINE_OPTIONS as hn, EngineerWorkLineOptions as hr, DEFAULT_FORTIFIED_AREA_OPTIONS as ht, axis1DrawRule as i, DEFAULT_ATTACK_HELICOPTER_OPTIONS as in, DEFAULT_DIRECTION_OF_ATTACK_AVIATION_OPTIONS as ir, TurnOptions as it, SimpleStyleProps as j, DEFAULT_PICKUP_ZONE_OPTIONS as jn, ParamDescriptor as jr, DEFAULT_TACTICAL_ARROW_OPTIONS as jt, getMetersPerPixel as k, AreaOfOperationsOptions as kn, ControlMeasureMetadata as kr, CoverOptions as kt, turnDrawRule as l, DEFAULT_GENERIC_CIRCLE_OPTIONS as ln, DEFAULT_BATTLE_POSITION_OPTIONS as lr, BlockOptions as lt, centerRadiusDrawRule as m, GenericPolygonOptions as mn, DEFAULT_ENGINEER_WORK_LINE_OPTIONS as mr, FrontalAttackOptions as mt, DEFAULT_AMBUSH_OPTIONS as n, SupportByFireOptions as nn, DEFAULT_DIRECTION_OF_MAIN_ATTACK_OPTIONS as nr, ObstacleBypassEasyOptions as nt, line26DrawRule as o, DEFAULT_AIRBORNE_ATTACK_OPTIONS as on, DEFAULT_STRONG_POINT_OPTIONS as or, FixOptions as ot, point12DrawRule as p, DEFAULT_GENERIC_POLYGON_OPTIONS as pn, GenericC2LineOptions as pr, DEFAULT_FRONTAL_ATTACK_OPTIONS as pt, getControlMeasureMetadata as q, StyleHints as qn, DEFAULT_FORWARD_EDGE_OF_BATTLE_AREA_OPTIONS as qt, rectangleDrawRule as r, AttackHelicopterOptions as rn, DirectionOfMainAttackOptions as rr, DEFAULT_TURN_OPTIONS as rt, line24DrawRule as s, DEFAULT_GENERIC_TEXT_OPTIONS as sn, StrongPointOptions as sr, DEFAULT_DISRUPT_OPTIONS as st, AmbushOptions as t, DEFAULT_SUPPORT_BY_FIRE_OPTIONS as tn, DirectionOfSupportingAttackOptions as tr, DEFAULT_OBSTACLE_BYPASS_EASY_OPTIONS as tt, line1DrawRule as u, GenericCircleOptions as un, ControlMeasureStyle as ur, DEFAULT_BLOCK_OPTIONS as ut, computeDefaultMidpointPerpendicularPoint as v, BlockArrowOptions as vn, LabelSizeOptions as vr, FortifiedLineOptions as vt, BaselineFrameNormal as w, SupportingAttackOptions as wn, DEFAULT_BOUNDARY_OPTIONS as wr, ScreenOptions as wt, pointOnMidpointPerpendicularAxis as x, ClassicArrowOptions as xn, project as xr, AntitankDitchOptions as xt, createMidpointPerpendicularDrawRule as y, DEFAULT_BLOCK_ARROW_OPTIONS as yn, Point2D as yr, AntitankWallOptions as yt, ControlMeasure as z, AreaDefenseOptions as zn, TextAmplifierField as zr, BreachOptions as zt };
3042
+ export { DEFAULT_OBSTACLE_BYPASS_DIFFICULT_OPTIONS as $, ControlMeasureRender as $n, AnchorTransformEvent as $r, BridgeheadLineOptions as $t, roundToFixed as A, DEFAULT_CLASSIC_ARROW_OPTIONS as An, unproject as Ar, DEFAULT_COVER_OPTIONS as At, cloneControlMeasure as B, PickupZoneOptions as Bn, TextAmplifierDescriptor as Br, DEFAULT_BYPASS_OPTIONS as Bt, BaselineFrame as C, DEFAULT_GENERIC_LINE_OPTIONS as Cn, EngineerWorkLineOptions as Cr, DEFAULT_SCREEN_OPTIONS as Ct, createBaselineFrame as D, DEFAULT_BLOCK_ARROW_OPTIONS as Dn, Point2D as Dr, DEFAULT_DELAY_OPTIONS as Dt, BaselineFrameOrigin as E, BlockArrowOptions as En, LabelSizeOptions as Er, GuardOptions as Et, applyBoxTransformOptions as F, calculateMetrics as Fn, ControlMeasureGeometry as Fr, ClearOptions as Ft, ControlMeasureKind as G, AssemblyAreaOptions as Gn, LabelPlacementOverride as Gr, BattleHandoverLineOptions as Gt, CONTROL_MEASURE_IDS as H, LandingZoneOptions as Hn, AmplifierPlacements as Hr, DEFAULT_BREACH_OPTIONS as Ht, freezeOrientationOptions as I, computeInitialWidthPoint as In, ControlMeasureGeometryType as Ir, DEFAULT_CLEAR_OPTIONS as It, getControlMeasureMetadataByValue as J, DEFAULT_AREA_DEFENSE_OPTIONS as Jn, TextAmplifierKey as Jr, HandoverLineOptions as Jt, OptionsByKind as K, DEFAULT_ASSEMBLY_AREA_OPTIONS as Kn, TEXT_AMPLIFIER_FIELDS as Kr, DEFAULT_BATTLE_HANDOVER_LINE_OPTIONS as Kt, RenderOptions as L, AreaOfOperationsOptions as Ln, ControlMeasureMetadata as Lr, CanalizeOptions as Lt, SimpleStyleRender as M, SupportingAttackOptions as Mn, DEFAULT_BOUNDARY_OPTIONS as Mr, TacticalArrowOptions as Mt, toSimpleStyle as N, DEFAULT_MAIN_ATTACK_OPTIONS as Nn, BoxTransformDelta as Nr, CounterattackOptions as Nt, EPSILON as O, ClassicArrowHeadStyle as On, haversineDistance as Or, DelayOptions as Ot, resolveStyleHints as P, MainAttackOptions as Pn, ControlMeasureFillCapability as Pr, DEFAULT_COUNTERATTACK_OPTIONS as Pt, ObstacleBypassImpossibleOptions as Q, FinalProtectiveFireOptions as Qn, resolveAmplifierPlacement as Qr, HoldingLineOptions as Qt, renderControlMeasure as R, DEFAULT_AREA_OF_OPERATIONS_OPTIONS as Rn, ControlMeasurePaintCapability as Rr, DEFAULT_CANALIZE_OPTIONS as Rt, snapToMidpointPerpendicular as S, GenericPolygonOptions as Sn, DEFAULT_ENGINEER_WORK_LINE_OPTIONS as Sr, DEFAULT_ANTITANK_DITCH_OPTIONS as St, BaselineFrameOptions as T, BlockArrowHeadStyle as Tn, LightLineOptions as Tr, DEFAULT_GUARD_OPTIONS as Tt, CONTROL_MEASURE_METADATA as U, DEFAULT_JOINT_TACTICAL_ACTION_AREA_OPTIONS as Un, CanonicalTextAmplifiers as Ur, BlockMissionTaskOptions as Ut, isKind as V, DEFAULT_LANDING_ZONE_OPTIONS as Vn, AmplifierPlacement as Vr, BreachOptions as Vt, ControlMeasureId as W, JointTacticalActionAreaOptions as Wn, GeneratedLabelKey as Wr, DEFAULT_BLOCK_MISSION_TASK_OPTIONS as Wt, listControlMeasureMetadata as X, EncirclementOptions as Xn, canonicalTextAmplifierKey as Xr, ReleaseLineOptions as Xt, getDefaultOptions as Y, DEFAULT_ENCIRCLEMENT_OPTIONS as Yn, TextAmplifiers as Yr, DEFAULT_RELEASE_LINE_OPTIONS as Yt, DEFAULT_OBSTACLE_BYPASS_IMPOSSIBLE_OPTIONS as Z, DEFAULT_FINAL_PROTECTIVE_FIRE_OPTIONS as Zn, normalizeTextAmplifiers as Zr, DEFAULT_HOLDING_LINE_OPTIONS as Zt, MidpointPerpendicularDrawRuleOptions as _, DEFAULT_GENERIC_CIRCLE_OPTIONS as _n, DEFAULT_BATTLE_POSITION_OPTIONS as _r, DEFAULT_FORTIFIED_LINE_OPTIONS as _t, supportByFireDrawRule as a, DEFAULT_FLOT_OPTIONS as an, SecondaryDirectionOfFireOptions as ar, DEFAULT_FIX_OPTIONS as at, getMidpointPerpendicularSignedDistance as b, GenericRectangleOptions as bn, DEFAULT_GENERIC_C2_LINE_OPTIONS as br, DEFAULT_ANTITANK_WALL_OPTIONS as bt, line23DrawRule as c, DEFAULT_ATTACK_BY_FIRE_OPTIONS as cn, DEFAULT_DIRECTION_OF_SUPPORTING_ATTACK_OPTIONS as cr, DisruptOptions as ct, ambushDrawRule as d, AttackHelicopterOptions as dn, DirectionOfMainAttackOptions as dr, DEFAULT_TURNING_MOVEMENT_OPTIONS as dt, ControlMeasureDrawRule as ei, DEFAULT_BRIDGEHEAD_LINE_OPTIONS as en, FeaturePartProps as er, ObstacleBypassDifficultOptions as et, attackByFireDrawRule as f, DEFAULT_ATTACK_HELICOPTER_OPTIONS as fn, DEFAULT_DIRECTION_OF_ATTACK_AVIATION_OPTIONS as fr, TurningMovementOptions as ft, blockDrawRule as g, GenericTextOptions as gn, BattlePositionOptions as gr, FortifiedAreaOptions as gt, disruptDrawRule as h, DEFAULT_GENERIC_TEXT_OPTIONS as hn, StrongPointOptions as hr, DEFAULT_FORTIFIED_AREA_OPTIONS as ht, axis1DrawRule as i, PhaseLineOptions as in, SECONDARY_DIRECTION_OF_FIRE_DASH as ir, TurnOptions as it, SimpleStyleProps as j, DEFAULT_SUPPORTING_ATTACK_OPTIONS as jn, BoundaryOptions as jr, DEFAULT_TACTICAL_ARROW_OPTIONS as jt, getMetersPerPixel as k, ClassicArrowOptions as kn, project as kr, CoverOptions as kt, turnDrawRule as l, DEFAULT_SUPPORT_BY_FIRE_OPTIONS as ln, DirectionOfSupportingAttackOptions as lr, BlockOptions as lt, centerRadiusDrawRule as m, DEFAULT_AIRBORNE_ATTACK_OPTIONS as mn, DEFAULT_STRONG_POINT_OPTIONS as mr, FrontalAttackOptions as mt, DEFAULT_AMBUSH_OPTIONS as n, ForwardEdgeOfBattleAreaOptions as nn, controlMeasureIdFromFeature as nr, ObstacleBypassEasyOptions as nt, line26DrawRule as o, FLOTOptions as on, DEFAULT_PRINCIPAL_DIRECTION_OF_FIRE_OPTIONS as or, FixOptions as ot, point12DrawRule as p, AirborneAttackOptions as pn, DirectionOfAttackAviationOptions as pr, DEFAULT_FRONTAL_ATTACK_OPTIONS as pt, getControlMeasureMetadata as q, AreaDefenseOptions as qn, TextAmplifierField as qr, DEFAULT_HANDOVER_LINE_OPTIONS as qt, rectangleDrawRule as r, DEFAULT_PHASE_LINE_OPTIONS as rn, DEFAULT_SECONDARY_DIRECTION_OF_FIRE_OPTIONS as rr, DEFAULT_TURN_OPTIONS as rt, line24DrawRule as s, AttackByFireOptions as sn, PrincipalDirectionOfFireOptions as sr, DEFAULT_DISRUPT_OPTIONS as st, AmbushOptions as t, DEFAULT_FORWARD_EDGE_OF_BATTLE_AREA_OPTIONS as tn, StyleHints as tr, DEFAULT_OBSTACLE_BYPASS_EASY_OPTIONS as tt, line1DrawRule as u, SupportByFireOptions as un, DEFAULT_DIRECTION_OF_MAIN_ATTACK_OPTIONS as ur, DEFAULT_BLOCK_OPTIONS as ut, computeDefaultMidpointPerpendicularPoint as v, GenericCircleOptions as vn, ControlMeasureStyle as vr, FortifiedLineOptions as vt, BaselineFrameNormal as w, GenericLineOptions as wn, DEFAULT_LIGHT_LINE_OPTIONS as wr, ScreenOptions as wt, pointOnMidpointPerpendicularAxis as x, DEFAULT_GENERIC_POLYGON_OPTIONS as xn, GenericC2LineOptions as xr, AntitankDitchOptions as xt, createMidpointPerpendicularDrawRule as y, DEFAULT_GENERIC_RECTANGLE_OPTIONS as yn, FillPattern as yr, AntitankWallOptions as yt, ControlMeasure as z, DEFAULT_PICKUP_ZONE_OPTIONS as zn, ParamDescriptor as zr, BypassOptions as zt };
package/dist/index.d.mts CHANGED
@@ -1,2 +1,2 @@
1
- import { $ as DEFAULT_OBSTACLE_BYPASS_DIFFICULT_OPTIONS, $n as PrincipalDirectionOfFireOptions, $t as AttackByFireOptions, A as roundToFixed, An as DEFAULT_AREA_OF_OPERATIONS_OPTIONS, Ar as ControlMeasurePaintCapability, At as DEFAULT_COVER_OPTIONS, B as cloneControlMeasure, Bn as DEFAULT_AREA_DEFENSE_OPTIONS, Br as TextAmplifierKey, Bt as DEFAULT_BREACH_OPTIONS, C as BaselineFrame, Cn as DEFAULT_SUPPORTING_ATTACK_OPTIONS, Cr as BoundaryOptions, Ct as DEFAULT_SCREEN_OPTIONS, D as createBaselineFrame, Dn as calculateMetrics, Dr as ControlMeasureGeometry, Dt as DEFAULT_DELAY_OPTIONS, E as BaselineFrameOrigin, En as MainAttackOptions, Er as ControlMeasureFillCapability, Et as GuardOptions, F as applyBoxTransformOptions, Fn as DEFAULT_JOINT_TACTICAL_ACTION_AREA_OPTIONS, Fr as CanonicalTextAmplifiers, Ft as CanalizeOptions, G as ControlMeasureKind, Gn as ControlMeasureRender, Gr as AnchorTransformEvent, Gt as DEFAULT_HANDOVER_LINE_OPTIONS, H as CONTROL_MEASURE_IDS, Hn as EncirclementOptions, Hr as canonicalTextAmplifierKey, Ht as DEFAULT_BLOCK_MISSION_TASK_OPTIONS, I as freezeOrientationOptions, In as JointTacticalActionAreaOptions, Ir as GeneratedLabelKey, It as DEFAULT_CANALIZE_OPTIONS, J as getControlMeasureMetadataByValue, Jn as controlMeasureIdFromFeature, Jt as ForwardEdgeOfBattleAreaOptions, K as OptionsByKind, Kn as FeaturePartProps, Kr as ControlMeasureDrawRule, Kt as HandoverLineOptions, L as RenderOptions, Ln as AssemblyAreaOptions, Lr as LabelPlacementOverride, Lt as BypassOptions, M as SimpleStyleRender, Mn as PickupZoneOptions, Mr as TextAmplifierDescriptor, Mt as TacticalArrowOptions, N as toSimpleStyle, Nn as DEFAULT_LANDING_ZONE_OPTIONS, Nr as AmplifierPlacement, Nt as ClearOptions, O as EPSILON, On as computeInitialWidthPoint, Or as ControlMeasureGeometryType, Ot as DelayOptions, P as resolveStyleHints, Pn as LandingZoneOptions, Pr as AmplifierPlacements, Pt as DEFAULT_CLEAR_OPTIONS, Q as ObstacleBypassImpossibleOptions, Qn as DEFAULT_PRINCIPAL_DIRECTION_OF_FIRE_OPTIONS, Qt as FLOTOptions, R as renderControlMeasure, Rn as DEFAULT_ASSEMBLY_AREA_OPTIONS, Rr as TEXT_AMPLIFIER_FIELDS, Rt as DEFAULT_BYPASS_OPTIONS, S as snapToMidpointPerpendicular, Sn as DEFAULT_CLASSIC_ARROW_OPTIONS, Sr as unproject, St as DEFAULT_ANTITANK_DITCH_OPTIONS, T as BaselineFrameOptions, Tn as DEFAULT_MAIN_ATTACK_OPTIONS, Tr as BoxTransformDelta, Tt as DEFAULT_GUARD_OPTIONS, U as CONTROL_MEASURE_METADATA, Un as DEFAULT_FINAL_PROTECTIVE_FIRE_OPTIONS, Ur as normalizeTextAmplifiers, Ut as BattleHandoverLineOptions, V as isKind, Vn as DEFAULT_ENCIRCLEMENT_OPTIONS, Vr as TextAmplifiers, Vt as BlockMissionTaskOptions, W as ControlMeasureId, Wn as FinalProtectiveFireOptions, Wr as resolveAmplifierPlacement, Wt as DEFAULT_BATTLE_HANDOVER_LINE_OPTIONS, X as listControlMeasureMetadata, Xn as SECONDARY_DIRECTION_OF_FIRE_DASH, Xt as PhaseLineOptions, Y as getDefaultOptions, Yn as DEFAULT_SECONDARY_DIRECTION_OF_FIRE_OPTIONS, Yt as DEFAULT_PHASE_LINE_OPTIONS, Z as DEFAULT_OBSTACLE_BYPASS_IMPOSSIBLE_OPTIONS, Zn as SecondaryDirectionOfFireOptions, Zt as DEFAULT_FLOT_OPTIONS, _ as MidpointPerpendicularDrawRuleOptions, _n as BlockArrowHeadStyle, _r as LightLineOptions, _t as DEFAULT_FORTIFIED_LINE_OPTIONS, a as supportByFireDrawRule, an as AirborneAttackOptions, ar as DirectionOfAttackAviationOptions, at as DEFAULT_FIX_OPTIONS, b as getMidpointPerpendicularSignedDistance, bn as ClassicArrowHeadStyle, br as haversineDistance, bt as DEFAULT_ANTITANK_WALL_OPTIONS, c as line23DrawRule, cn as GenericTextOptions, cr as BattlePositionOptions, ct as DisruptOptions, d as ambushDrawRule, dn as DEFAULT_GENERIC_RECTANGLE_OPTIONS, dr as FillPattern, dt as DEFAULT_TURNING_MOVEMENT_OPTIONS, en as DEFAULT_ATTACK_BY_FIRE_OPTIONS, er as DEFAULT_DIRECTION_OF_SUPPORTING_ATTACK_OPTIONS, et as ObstacleBypassDifficultOptions, f as attackByFireDrawRule, fn as GenericRectangleOptions, fr as DEFAULT_GENERIC_C2_LINE_OPTIONS, ft as TurningMovementOptions, g as blockDrawRule, gn as GenericLineOptions, gr as DEFAULT_LIGHT_LINE_OPTIONS, gt as FortifiedAreaOptions, h as disruptDrawRule, hn as DEFAULT_GENERIC_LINE_OPTIONS, hr as EngineerWorkLineOptions, ht as DEFAULT_FORTIFIED_AREA_OPTIONS, i as axis1DrawRule, in as DEFAULT_ATTACK_HELICOPTER_OPTIONS, ir as DEFAULT_DIRECTION_OF_ATTACK_AVIATION_OPTIONS, it as TurnOptions, j as SimpleStyleProps, jn as DEFAULT_PICKUP_ZONE_OPTIONS, jr as ParamDescriptor, jt as DEFAULT_TACTICAL_ARROW_OPTIONS, k as getMetersPerPixel, kn as AreaOfOperationsOptions, kr as ControlMeasureMetadata, kt as CoverOptions, l as turnDrawRule, ln as DEFAULT_GENERIC_CIRCLE_OPTIONS, lr as DEFAULT_BATTLE_POSITION_OPTIONS, lt as BlockOptions, m as centerRadiusDrawRule, mn as GenericPolygonOptions, mr as DEFAULT_ENGINEER_WORK_LINE_OPTIONS, mt as FrontalAttackOptions, n as DEFAULT_AMBUSH_OPTIONS, nn as SupportByFireOptions, nr as DEFAULT_DIRECTION_OF_MAIN_ATTACK_OPTIONS, nt as ObstacleBypassEasyOptions, o as line26DrawRule, on as DEFAULT_AIRBORNE_ATTACK_OPTIONS, or as DEFAULT_STRONG_POINT_OPTIONS, ot as FixOptions, p as point12DrawRule, pn as DEFAULT_GENERIC_POLYGON_OPTIONS, pr as GenericC2LineOptions, pt as DEFAULT_FRONTAL_ATTACK_OPTIONS, q as getControlMeasureMetadata, qn as StyleHints, qt as DEFAULT_FORWARD_EDGE_OF_BATTLE_AREA_OPTIONS, r as rectangleDrawRule, rn as AttackHelicopterOptions, rr as DirectionOfMainAttackOptions, rt as DEFAULT_TURN_OPTIONS, s as line24DrawRule, sn as DEFAULT_GENERIC_TEXT_OPTIONS, sr as StrongPointOptions, st as DEFAULT_DISRUPT_OPTIONS, t as AmbushOptions, tn as DEFAULT_SUPPORT_BY_FIRE_OPTIONS, tr as DirectionOfSupportingAttackOptions, tt as DEFAULT_OBSTACLE_BYPASS_EASY_OPTIONS, u as line1DrawRule, un as GenericCircleOptions, ur as ControlMeasureStyle, ut as DEFAULT_BLOCK_OPTIONS, v as computeDefaultMidpointPerpendicularPoint, vn as BlockArrowOptions, vr as LabelSizeOptions, vt as FortifiedLineOptions, w as BaselineFrameNormal, wn as SupportingAttackOptions, wr as DEFAULT_BOUNDARY_OPTIONS, wt as ScreenOptions, x as pointOnMidpointPerpendicularAxis, xn as ClassicArrowOptions, xr as project, xt as AntitankDitchOptions, y as createMidpointPerpendicularDrawRule, yn as DEFAULT_BLOCK_ARROW_OPTIONS, yr as Point2D, yt as AntitankWallOptions, z as ControlMeasure, zn as AreaDefenseOptions, zr as TextAmplifierField, zt as BreachOptions } from "./index-Do8cc_Wv.mjs";
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 BoxTransformDelta, 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 ControlMeasureFillCapability, type ControlMeasureGeometry, type ControlMeasureGeometryType, type ControlMeasureId, type ControlMeasureKind, type ControlMeasureMetadata, type ControlMeasurePaintCapability, 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_FORWARD_EDGE_OF_BATTLE_AREA_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_GENERIC_TEXT_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_SECONDARY_DIRECTION_OF_FIRE_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 FillPattern, type FinalProtectiveFireOptions, type FixOptions, type FortifiedAreaOptions, type FortifiedLineOptions, type ForwardEdgeOfBattleAreaOptions, type FrontalAttackOptions, type GeneratedLabelKey, type GenericC2LineOptions, type GenericCircleOptions, type GenericLineOptions, type GenericPolygonOptions, type GenericRectangleOptions, type GenericTextOptions, 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, SECONDARY_DIRECTION_OF_FIRE_DASH, type ScreenOptions, type SecondaryDirectionOfFireOptions, 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, applyBoxTransformOptions, attackByFireDrawRule, axis1DrawRule, blockDrawRule, calculateMetrics, canonicalTextAmplifierKey, centerRadiusDrawRule, cloneControlMeasure, computeDefaultMidpointPerpendicularPoint, computeInitialWidthPoint, controlMeasureIdFromFeature, createBaselineFrame, createMidpointPerpendicularDrawRule, disruptDrawRule, freezeOrientationOptions, getControlMeasureMetadata, getControlMeasureMetadataByValue, getDefaultOptions, getMetersPerPixel, getMidpointPerpendicularSignedDistance, haversineDistance, isKind, line1DrawRule, line23DrawRule, line24DrawRule, line26DrawRule, listControlMeasureMetadata, normalizeTextAmplifiers, point12DrawRule, pointOnMidpointPerpendicularAxis, project, rectangleDrawRule, renderControlMeasure, resolveAmplifierPlacement, resolveStyleHints, roundToFixed, snapToMidpointPerpendicular, supportByFireDrawRule, toSimpleStyle, turnDrawRule, unproject };
1
+ import { $ as DEFAULT_OBSTACLE_BYPASS_DIFFICULT_OPTIONS, $n as ControlMeasureRender, $r as AnchorTransformEvent, $t as BridgeheadLineOptions, A as roundToFixed, An as DEFAULT_CLASSIC_ARROW_OPTIONS, Ar as unproject, At as DEFAULT_COVER_OPTIONS, B as cloneControlMeasure, Bn as PickupZoneOptions, Br as TextAmplifierDescriptor, Bt as DEFAULT_BYPASS_OPTIONS, C as BaselineFrame, Cn as DEFAULT_GENERIC_LINE_OPTIONS, Cr as EngineerWorkLineOptions, Ct as DEFAULT_SCREEN_OPTIONS, D as createBaselineFrame, Dn as DEFAULT_BLOCK_ARROW_OPTIONS, Dr as Point2D, Dt as DEFAULT_DELAY_OPTIONS, E as BaselineFrameOrigin, En as BlockArrowOptions, Er as LabelSizeOptions, Et as GuardOptions, F as applyBoxTransformOptions, Fn as calculateMetrics, Fr as ControlMeasureGeometry, Ft as ClearOptions, G as ControlMeasureKind, Gn as AssemblyAreaOptions, Gr as LabelPlacementOverride, Gt as BattleHandoverLineOptions, H as CONTROL_MEASURE_IDS, Hn as LandingZoneOptions, Hr as AmplifierPlacements, Ht as DEFAULT_BREACH_OPTIONS, I as freezeOrientationOptions, In as computeInitialWidthPoint, Ir as ControlMeasureGeometryType, It as DEFAULT_CLEAR_OPTIONS, J as getControlMeasureMetadataByValue, Jn as DEFAULT_AREA_DEFENSE_OPTIONS, Jr as TextAmplifierKey, Jt as HandoverLineOptions, K as OptionsByKind, Kn as DEFAULT_ASSEMBLY_AREA_OPTIONS, Kr as TEXT_AMPLIFIER_FIELDS, Kt as DEFAULT_BATTLE_HANDOVER_LINE_OPTIONS, L as RenderOptions, Ln as AreaOfOperationsOptions, Lr as ControlMeasureMetadata, Lt as CanalizeOptions, M as SimpleStyleRender, Mn as SupportingAttackOptions, Mr as DEFAULT_BOUNDARY_OPTIONS, Mt as TacticalArrowOptions, N as toSimpleStyle, Nn as DEFAULT_MAIN_ATTACK_OPTIONS, Nr as BoxTransformDelta, Nt as CounterattackOptions, O as EPSILON, On as ClassicArrowHeadStyle, Or as haversineDistance, Ot as DelayOptions, P as resolveStyleHints, Pn as MainAttackOptions, Pr as ControlMeasureFillCapability, Pt as DEFAULT_COUNTERATTACK_OPTIONS, Q as ObstacleBypassImpossibleOptions, Qn as FinalProtectiveFireOptions, Qr as resolveAmplifierPlacement, Qt as HoldingLineOptions, R as renderControlMeasure, Rn as DEFAULT_AREA_OF_OPERATIONS_OPTIONS, Rr as ControlMeasurePaintCapability, Rt as DEFAULT_CANALIZE_OPTIONS, S as snapToMidpointPerpendicular, Sn as GenericPolygonOptions, Sr as DEFAULT_ENGINEER_WORK_LINE_OPTIONS, St as DEFAULT_ANTITANK_DITCH_OPTIONS, T as BaselineFrameOptions, Tn as BlockArrowHeadStyle, Tr as LightLineOptions, Tt as DEFAULT_GUARD_OPTIONS, U as CONTROL_MEASURE_METADATA, Un as DEFAULT_JOINT_TACTICAL_ACTION_AREA_OPTIONS, Ur as CanonicalTextAmplifiers, Ut as BlockMissionTaskOptions, V as isKind, Vn as DEFAULT_LANDING_ZONE_OPTIONS, Vr as AmplifierPlacement, Vt as BreachOptions, W as ControlMeasureId, Wn as JointTacticalActionAreaOptions, Wr as GeneratedLabelKey, Wt as DEFAULT_BLOCK_MISSION_TASK_OPTIONS, X as listControlMeasureMetadata, Xn as EncirclementOptions, Xr as canonicalTextAmplifierKey, Xt as ReleaseLineOptions, Y as getDefaultOptions, Yn as DEFAULT_ENCIRCLEMENT_OPTIONS, Yr as TextAmplifiers, Yt as DEFAULT_RELEASE_LINE_OPTIONS, Z as DEFAULT_OBSTACLE_BYPASS_IMPOSSIBLE_OPTIONS, Zn as DEFAULT_FINAL_PROTECTIVE_FIRE_OPTIONS, Zr as normalizeTextAmplifiers, Zt as DEFAULT_HOLDING_LINE_OPTIONS, _ as MidpointPerpendicularDrawRuleOptions, _n as DEFAULT_GENERIC_CIRCLE_OPTIONS, _r as DEFAULT_BATTLE_POSITION_OPTIONS, _t as DEFAULT_FORTIFIED_LINE_OPTIONS, a as supportByFireDrawRule, an as DEFAULT_FLOT_OPTIONS, ar as SecondaryDirectionOfFireOptions, at as DEFAULT_FIX_OPTIONS, b as getMidpointPerpendicularSignedDistance, bn as GenericRectangleOptions, br as DEFAULT_GENERIC_C2_LINE_OPTIONS, bt as DEFAULT_ANTITANK_WALL_OPTIONS, c as line23DrawRule, cn as DEFAULT_ATTACK_BY_FIRE_OPTIONS, cr as DEFAULT_DIRECTION_OF_SUPPORTING_ATTACK_OPTIONS, ct as DisruptOptions, d as ambushDrawRule, dn as AttackHelicopterOptions, dr as DirectionOfMainAttackOptions, dt as DEFAULT_TURNING_MOVEMENT_OPTIONS, ei as ControlMeasureDrawRule, en as DEFAULT_BRIDGEHEAD_LINE_OPTIONS, er as FeaturePartProps, et as ObstacleBypassDifficultOptions, f as attackByFireDrawRule, fn as DEFAULT_ATTACK_HELICOPTER_OPTIONS, fr as DEFAULT_DIRECTION_OF_ATTACK_AVIATION_OPTIONS, ft as TurningMovementOptions, g as blockDrawRule, gn as GenericTextOptions, gr as BattlePositionOptions, gt as FortifiedAreaOptions, h as disruptDrawRule, hn as DEFAULT_GENERIC_TEXT_OPTIONS, hr as StrongPointOptions, ht as DEFAULT_FORTIFIED_AREA_OPTIONS, i as axis1DrawRule, in as PhaseLineOptions, ir as SECONDARY_DIRECTION_OF_FIRE_DASH, it as TurnOptions, j as SimpleStyleProps, jn as DEFAULT_SUPPORTING_ATTACK_OPTIONS, jr as BoundaryOptions, jt as DEFAULT_TACTICAL_ARROW_OPTIONS, k as getMetersPerPixel, kn as ClassicArrowOptions, kr as project, kt as CoverOptions, l as turnDrawRule, ln as DEFAULT_SUPPORT_BY_FIRE_OPTIONS, lr as DirectionOfSupportingAttackOptions, lt as BlockOptions, m as centerRadiusDrawRule, mn as DEFAULT_AIRBORNE_ATTACK_OPTIONS, mr as DEFAULT_STRONG_POINT_OPTIONS, mt as FrontalAttackOptions, n as DEFAULT_AMBUSH_OPTIONS, nn as ForwardEdgeOfBattleAreaOptions, nr as controlMeasureIdFromFeature, nt as ObstacleBypassEasyOptions, o as line26DrawRule, on as FLOTOptions, or as DEFAULT_PRINCIPAL_DIRECTION_OF_FIRE_OPTIONS, ot as FixOptions, p as point12DrawRule, pn as AirborneAttackOptions, pr as DirectionOfAttackAviationOptions, pt as DEFAULT_FRONTAL_ATTACK_OPTIONS, q as getControlMeasureMetadata, qn as AreaDefenseOptions, qr as TextAmplifierField, qt as DEFAULT_HANDOVER_LINE_OPTIONS, r as rectangleDrawRule, rn as DEFAULT_PHASE_LINE_OPTIONS, rr as DEFAULT_SECONDARY_DIRECTION_OF_FIRE_OPTIONS, rt as DEFAULT_TURN_OPTIONS, s as line24DrawRule, sn as AttackByFireOptions, sr as PrincipalDirectionOfFireOptions, st as DEFAULT_DISRUPT_OPTIONS, t as AmbushOptions, tn as DEFAULT_FORWARD_EDGE_OF_BATTLE_AREA_OPTIONS, tr as StyleHints, tt as DEFAULT_OBSTACLE_BYPASS_EASY_OPTIONS, u as line1DrawRule, un as SupportByFireOptions, ur as DEFAULT_DIRECTION_OF_MAIN_ATTACK_OPTIONS, ut as DEFAULT_BLOCK_OPTIONS, v as computeDefaultMidpointPerpendicularPoint, vn as GenericCircleOptions, vr as ControlMeasureStyle, vt as FortifiedLineOptions, w as BaselineFrameNormal, wn as GenericLineOptions, wr as DEFAULT_LIGHT_LINE_OPTIONS, wt as ScreenOptions, x as pointOnMidpointPerpendicularAxis, xn as DEFAULT_GENERIC_POLYGON_OPTIONS, xr as GenericC2LineOptions, xt as AntitankDitchOptions, y as createMidpointPerpendicularDrawRule, yn as DEFAULT_GENERIC_RECTANGLE_OPTIONS, yr as FillPattern, yt as AntitankWallOptions, z as ControlMeasure, zn as DEFAULT_PICKUP_ZONE_OPTIONS, zr as ParamDescriptor, zt as BypassOptions } from "./index-DtgRm_dz.mjs";
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 BoxTransformDelta, type BreachOptions, type BridgeheadLineOptions, type BypassOptions, CONTROL_MEASURE_IDS, CONTROL_MEASURE_METADATA, type CanalizeOptions, type CanonicalTextAmplifiers, type ClassicArrowHeadStyle, type ClassicArrowOptions, type ClearOptions, type ControlMeasure, type ControlMeasureDrawRule, type ControlMeasureFillCapability, type ControlMeasureGeometry, type ControlMeasureGeometryType, type ControlMeasureId, type ControlMeasureKind, type ControlMeasureMetadata, type ControlMeasurePaintCapability, type ControlMeasureRender, type ControlMeasureStyle, type CounterattackOptions, 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_BRIDGEHEAD_LINE_OPTIONS, DEFAULT_BYPASS_OPTIONS, DEFAULT_CANALIZE_OPTIONS, DEFAULT_CLASSIC_ARROW_OPTIONS, DEFAULT_CLEAR_OPTIONS, DEFAULT_COUNTERATTACK_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_FORWARD_EDGE_OF_BATTLE_AREA_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_GENERIC_TEXT_OPTIONS, DEFAULT_GUARD_OPTIONS, DEFAULT_HANDOVER_LINE_OPTIONS, DEFAULT_HOLDING_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_RELEASE_LINE_OPTIONS, DEFAULT_SCREEN_OPTIONS, DEFAULT_SECONDARY_DIRECTION_OF_FIRE_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 FillPattern, type FinalProtectiveFireOptions, type FixOptions, type FortifiedAreaOptions, type FortifiedLineOptions, type ForwardEdgeOfBattleAreaOptions, type FrontalAttackOptions, type GeneratedLabelKey, type GenericC2LineOptions, type GenericCircleOptions, type GenericLineOptions, type GenericPolygonOptions, type GenericRectangleOptions, type GenericTextOptions, type GuardOptions, type HandoverLineOptions, type HoldingLineOptions, 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 ReleaseLineOptions, type RenderOptions, SECONDARY_DIRECTION_OF_FIRE_DASH, type ScreenOptions, type SecondaryDirectionOfFireOptions, 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, applyBoxTransformOptions, attackByFireDrawRule, axis1DrawRule, blockDrawRule, calculateMetrics, canonicalTextAmplifierKey, centerRadiusDrawRule, cloneControlMeasure, computeDefaultMidpointPerpendicularPoint, computeInitialWidthPoint, controlMeasureIdFromFeature, createBaselineFrame, createMidpointPerpendicularDrawRule, disruptDrawRule, freezeOrientationOptions, getControlMeasureMetadata, getControlMeasureMetadataByValue, getDefaultOptions, getMetersPerPixel, getMidpointPerpendicularSignedDistance, haversineDistance, 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_HANDOVER_LINE_OPTIONS, At as ambushDrawRule, B as DEFAULT_COVER_OPTIONS, Bt as snapToMidpointPerpendicular, C as DEFAULT_LANDING_ZONE_OPTIONS, Ct as axis1DrawRule, D as DEFAULT_FORTIFIED_AREA_OPTIONS, Dt as line23DrawRule, E as DEFAULT_FRONTAL_ATTACK_OPTIONS, Et as line24DrawRule, F as DEFAULT_FINAL_PROTECTIVE_FIRE_OPTIONS, Ft as blockDrawRule, G as DEFAULT_GENERIC_POLYGON_OPTIONS, Gt as project, H as DEFAULT_CLEAR_OPTIONS, Ht as calculateMetrics, I as DEFAULT_ENCIRCLEMENT_OPTIONS, It as computeDefaultMidpointPerpendicularPoint, J as DEFAULT_CLASSIC_ARROW_OPTIONS, Jt as getMetersPerPixel, K as DEFAULT_GENERIC_LINE_OPTIONS, Kt as unproject, L as DEFAULT_DISRUPT_OPTIONS, Lt as createMidpointPerpendicularDrawRule, M as DEFAULT_PHASE_LINE_OPTIONS, Mt as point12DrawRule, N as DEFAULT_FLOT_OPTIONS, Nt as centerRadiusDrawRule, O as DEFAULT_FORTIFIED_LINE_OPTIONS, Ot as turnDrawRule, P as DEFAULT_FIX_OPTIONS, Pt as disruptDrawRule, Q as DEFAULT_BLOCK_MISSION_TASK_OPTIONS, R as DEFAULT_GUARD_OPTIONS, Rt as getMidpointPerpendicularSignedDistance, S as DEFAULT_MAIN_ATTACK_OPTIONS, St as rectangleDrawRule, T as DEFAULT_SCREEN_OPTIONS, Tt as line26DrawRule, U as DEFAULT_GENERIC_TEXT_OPTIONS, Ut as computeInitialWidthPoint, V as DEFAULT_TACTICAL_ARROW_OPTIONS, Vt as createBaselineFrame, W as DEFAULT_GENERIC_RECTANGLE_OPTIONS, Wt as haversineDistance, X as DEFAULT_BYPASS_OPTIONS, Y as DEFAULT_CANALIZE_OPTIONS, Yt as roundToFixed, Z as DEFAULT_BREACH_OPTIONS, _ as DEFAULT_PRINCIPAL_DIRECTION_OF_FIRE_OPTIONS, _t as canonicalTextAmplifierKey, a as DEFINITIONS, at as DEFAULT_BATTLE_POSITION_OPTIONS, b as DEFAULT_OBSTACLE_BYPASS_EASY_OPTIONS, bt as DEFAULT_AMBUSH_OPTIONS, c as getDefaultOptions, ct as DEFAULT_ANTITANK_WALL_OPTIONS, d as DEFAULT_TURN_OPTIONS, dt as DEFAULT_AREA_OF_OPERATIONS_OPTIONS, et as DEFAULT_ENGINEER_WORK_LINE_OPTIONS, f as DEFAULT_SUPPORTING_ATTACK_OPTIONS, ft as DEFAULT_AREA_DEFENSE_OPTIONS, g as SECONDARY_DIRECTION_OF_FIRE_DASH, gt as TEXT_AMPLIFIER_FIELDS, h as DEFAULT_SECONDARY_DIRECTION_OF_FIRE_OPTIONS, ht as DEFAULT_DIRECTION_OF_ATTACK_AVIATION_OPTIONS, i as CONTROL_MEASURE_METADATA, it as DEFAULT_BLOCK_OPTIONS, j as DEFAULT_FORWARD_EDGE_OF_BATTLE_AREA_OPTIONS, jt as attackByFireDrawRule, k as DEFAULT_BATTLE_HANDOVER_LINE_OPTIONS, kt as line1DrawRule, l as listControlMeasureMetadata, lt as DEFAULT_ANTITANK_DITCH_OPTIONS, m as DEFAULT_STRONG_POINT_OPTIONS, mt as DEFAULT_DIRECTION_OF_MAIN_ATTACK_OPTIONS, n as resolveStyleHints, nt as DEFAULT_BOUNDARY_OPTIONS, o as getControlMeasureMetadata, ot as DEFAULT_ATTACK_HELICOPTER_OPTIONS, p as DEFAULT_SUPPORT_BY_FIRE_OPTIONS, pt as DEFAULT_DIRECTION_OF_SUPPORTING_ATTACK_OPTIONS, q as DEFAULT_GENERIC_CIRCLE_OPTIONS, qt as EPSILON, r as CONTROL_MEASURE_IDS, rt as DEFAULT_BLOCK_ARROW_OPTIONS, s as getControlMeasureMetadataByValue, st as DEFAULT_ATTACK_BY_FIRE_OPTIONS, t as renderControlMeasure, tt as DEFAULT_LIGHT_LINE_OPTIONS, u as DEFAULT_TURNING_MOVEMENT_OPTIONS, ut as DEFAULT_ASSEMBLY_AREA_OPTIONS, v as DEFAULT_PICKUP_ZONE_OPTIONS, vt as normalizeTextAmplifiers, w as DEFAULT_JOINT_TACTICAL_ACTION_AREA_OPTIONS, wt as supportByFireDrawRule, x as DEFAULT_OBSTACLE_BYPASS_DIFFICULT_OPTIONS, xt as DEFAULT_AIRBORNE_ATTACK_OPTIONS, y as DEFAULT_OBSTACLE_BYPASS_IMPOSSIBLE_OPTIONS, yt as resolveAmplifierPlacement, z as DEFAULT_DELAY_OPTIONS, zt as pointOnMidpointPerpendicularAxis } from "./renderControlMeasure-1-LCyEFc.mjs";
1
+ import { $ as DEFAULT_CANALIZE_OPTIONS, $t as roundToFixed, A as DEFAULT_FORWARD_EDGE_OF_BATTLE_AREA_OPTIONS, At as line24DrawRule, B as DEFAULT_GUARD_OPTIONS, Bt as computeDefaultMidpointPerpendicularPoint, C as DEFAULT_JOINT_TACTICAL_ACTION_AREA_OPTIONS, Ct as resolveAmplifierPlacement, D as DEFAULT_FORTIFIED_LINE_OPTIONS, Dt as axis1DrawRule, E as DEFAULT_FORTIFIED_AREA_OPTIONS, Et as rectangleDrawRule, F as DEFAULT_FLOT_OPTIONS, Ft as attackByFireDrawRule, G as DEFAULT_SUPPORTING_ATTACK_OPTIONS, Gt as createBaselineFrame, H as DEFAULT_COVER_OPTIONS, Ht as getMidpointPerpendicularSignedDistance, I as DEFAULT_FIX_OPTIONS, It as point12DrawRule, J as DEFAULT_GENERIC_RECTANGLE_OPTIONS, Jt as haversineDistance, K as DEFAULT_CLEAR_OPTIONS, Kt as calculateMetrics, L as DEFAULT_FINAL_PROTECTIVE_FIRE_OPTIONS, Lt as centerRadiusDrawRule, M as DEFAULT_HOLDING_LINE_OPTIONS, Mt as turnDrawRule, N as DEFAULT_BRIDGEHEAD_LINE_OPTIONS, Nt as line1DrawRule, O as DEFAULT_BATTLE_HANDOVER_LINE_OPTIONS, Ot as supportByFireDrawRule, P as DEFAULT_PHASE_LINE_OPTIONS, Pt as ambushDrawRule, Q as DEFAULT_CLASSIC_ARROW_OPTIONS, Qt as getMetersPerPixel, R as DEFAULT_ENCIRCLEMENT_OPTIONS, Rt as disruptDrawRule, S as DEFAULT_LANDING_ZONE_OPTIONS, St as normalizeTextAmplifiers, T as DEFAULT_FRONTAL_ATTACK_OPTIONS, Tt as DEFAULT_AIRBORNE_ATTACK_OPTIONS, U as DEFAULT_TACTICAL_ARROW_OPTIONS, Ut as pointOnMidpointPerpendicularAxis, V as DEFAULT_DELAY_OPTIONS, Vt as createMidpointPerpendicularDrawRule, W as DEFAULT_COUNTERATTACK_OPTIONS, Wt as snapToMidpointPerpendicular, X as DEFAULT_GENERIC_LINE_OPTIONS, Xt as unproject, Y as DEFAULT_GENERIC_POLYGON_OPTIONS, Yt as project, Z as DEFAULT_GENERIC_CIRCLE_OPTIONS, Zt as EPSILON, _ as DEFAULT_PICKUP_ZONE_OPTIONS, _t as DEFAULT_DIRECTION_OF_SUPPORTING_ATTACK_OPTIONS, a as DEFINITIONS, at as DEFAULT_LIGHT_LINE_OPTIONS, b as DEFAULT_OBSTACLE_BYPASS_DIFFICULT_OPTIONS, bt as TEXT_AMPLIFIER_FIELDS, c as getDefaultOptions, ct as DEFAULT_BLOCK_OPTIONS, d as DEFAULT_TURN_OPTIONS, dt as DEFAULT_ATTACK_BY_FIRE_OPTIONS, et as DEFAULT_BYPASS_OPTIONS, f as DEFAULT_SUPPORT_BY_FIRE_OPTIONS, ft as DEFAULT_ANTITANK_WALL_OPTIONS, g as DEFAULT_PRINCIPAL_DIRECTION_OF_FIRE_OPTIONS, gt as DEFAULT_AREA_DEFENSE_OPTIONS, h as SECONDARY_DIRECTION_OF_FIRE_DASH, ht as DEFAULT_AREA_OF_OPERATIONS_OPTIONS, i as CONTROL_MEASURE_METADATA, it as DEFAULT_ENGINEER_WORK_LINE_OPTIONS, j as DEFAULT_RELEASE_LINE_OPTIONS, jt as line23DrawRule, k as DEFAULT_HANDOVER_LINE_OPTIONS, kt as line26DrawRule, l as listControlMeasureMetadata, lt as DEFAULT_BATTLE_POSITION_OPTIONS, m as DEFAULT_SECONDARY_DIRECTION_OF_FIRE_OPTIONS, mt as DEFAULT_ASSEMBLY_AREA_OPTIONS, n as resolveStyleHints, nt as DEFAULT_BLOCK_MISSION_TASK_OPTIONS, o as getControlMeasureMetadata, ot as DEFAULT_BOUNDARY_OPTIONS, p as DEFAULT_STRONG_POINT_OPTIONS, pt as DEFAULT_ANTITANK_DITCH_OPTIONS, q as DEFAULT_GENERIC_TEXT_OPTIONS, qt as computeInitialWidthPoint, r as CONTROL_MEASURE_IDS, rt as DEFAULT_GENERIC_C2_LINE_OPTIONS, s as getControlMeasureMetadataByValue, st as DEFAULT_BLOCK_ARROW_OPTIONS, t as renderControlMeasure, tt as DEFAULT_BREACH_OPTIONS, u as DEFAULT_TURNING_MOVEMENT_OPTIONS, ut as DEFAULT_ATTACK_HELICOPTER_OPTIONS, v as DEFAULT_OBSTACLE_BYPASS_IMPOSSIBLE_OPTIONS, vt as DEFAULT_DIRECTION_OF_MAIN_ATTACK_OPTIONS, w as DEFAULT_SCREEN_OPTIONS, wt as DEFAULT_AMBUSH_OPTIONS, x as DEFAULT_MAIN_ATTACK_OPTIONS, xt as canonicalTextAmplifierKey, y as DEFAULT_OBSTACLE_BYPASS_EASY_OPTIONS, yt as DEFAULT_DIRECTION_OF_ATTACK_AVIATION_OPTIONS, z as DEFAULT_DISRUPT_OPTIONS, zt as blockDrawRule } from "./renderControlMeasure-CAfC2nEw.mjs";
2
2
  //#region src/freeze-orientation.ts
3
3
  /**
4
4
  * Dispatches to a measure kind's `freezeOrientation` hook (see
@@ -129,4 +129,4 @@ function toHexChannel(value) {
129
129
  return Math.max(0, Math.min(255, Math.round(value))).toString(16).padStart(2, "0");
130
130
  }
131
131
  //#endregion
132
- export { CONTROL_MEASURE_IDS, CONTROL_MEASURE_METADATA, 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_FORWARD_EDGE_OF_BATTLE_AREA_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_GENERIC_TEXT_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_SECONDARY_DIRECTION_OF_FIRE_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, EPSILON, SECONDARY_DIRECTION_OF_FIRE_DASH, TEXT_AMPLIFIER_FIELDS, ambushDrawRule, applyBoxTransformOptions, attackByFireDrawRule, axis1DrawRule, blockDrawRule, calculateMetrics, canonicalTextAmplifierKey, centerRadiusDrawRule, cloneControlMeasure, computeDefaultMidpointPerpendicularPoint, computeInitialWidthPoint, controlMeasureIdFromFeature, createBaselineFrame, createMidpointPerpendicularDrawRule, disruptDrawRule, freezeOrientationOptions, getControlMeasureMetadata, getControlMeasureMetadataByValue, getDefaultOptions, getMetersPerPixel, getMidpointPerpendicularSignedDistance, haversineDistance, isKind, line1DrawRule, line23DrawRule, line24DrawRule, line26DrawRule, listControlMeasureMetadata, normalizeTextAmplifiers, point12DrawRule, pointOnMidpointPerpendicularAxis, project, rectangleDrawRule, renderControlMeasure, resolveAmplifierPlacement, resolveStyleHints, roundToFixed, snapToMidpointPerpendicular, supportByFireDrawRule, toSimpleStyle, turnDrawRule, unproject };
132
+ export { CONTROL_MEASURE_IDS, CONTROL_MEASURE_METADATA, 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_BRIDGEHEAD_LINE_OPTIONS, DEFAULT_BYPASS_OPTIONS, DEFAULT_CANALIZE_OPTIONS, DEFAULT_CLASSIC_ARROW_OPTIONS, DEFAULT_CLEAR_OPTIONS, DEFAULT_COUNTERATTACK_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_FORWARD_EDGE_OF_BATTLE_AREA_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_GENERIC_TEXT_OPTIONS, DEFAULT_GUARD_OPTIONS, DEFAULT_HANDOVER_LINE_OPTIONS, DEFAULT_HOLDING_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_RELEASE_LINE_OPTIONS, DEFAULT_SCREEN_OPTIONS, DEFAULT_SECONDARY_DIRECTION_OF_FIRE_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, EPSILON, SECONDARY_DIRECTION_OF_FIRE_DASH, TEXT_AMPLIFIER_FIELDS, ambushDrawRule, applyBoxTransformOptions, attackByFireDrawRule, axis1DrawRule, blockDrawRule, calculateMetrics, canonicalTextAmplifierKey, centerRadiusDrawRule, cloneControlMeasure, computeDefaultMidpointPerpendicularPoint, computeInitialWidthPoint, controlMeasureIdFromFeature, createBaselineFrame, createMidpointPerpendicularDrawRule, disruptDrawRule, freezeOrientationOptions, getControlMeasureMetadata, getControlMeasureMetadataByValue, getDefaultOptions, getMetersPerPixel, getMidpointPerpendicularSignedDistance, haversineDistance, isKind, line1DrawRule, line23DrawRule, line24DrawRule, line26DrawRule, listControlMeasureMetadata, normalizeTextAmplifiers, point12DrawRule, pointOnMidpointPerpendicularAxis, project, rectangleDrawRule, renderControlMeasure, resolveAmplifierPlacement, resolveStyleHints, roundToFixed, snapToMidpointPerpendicular, supportByFireDrawRule, toSimpleStyle, turnDrawRule, unproject };
@@ -1,4 +1,4 @@
1
- import { Vr as TextAmplifiers, W as ControlMeasureId, dr as FillPattern } from "../index-Do8cc_Wv.mjs";
1
+ import { W as ControlMeasureId, Yr as TextAmplifiers, yr as FillPattern } from "../index-DtgRm_dz.mjs";
2
2
  import { FeatureCollection, Geometry } from "geojson";
3
3
 
4
4
  //#region src/preview/index.d.ts
@@ -116,7 +116,7 @@ declare function previewLabelBackgroundWidth(text: string | undefined, fontSize:
116
116
  * itself, placed per `textAnchor` horizontally and centered on `cy`
117
117
  * vertically (SVG text uses `dominant-baseline="central"`), rotates its
118
118
  * corners around `(cx, cy)` by the same angle the SVG transform applies
119
- * (`renderedAngle = PI - rotation`, negated for SVG's y-down axis — see
119
+ * (`renderedAngle = PI - rotation` — see
120
120
  * {@link svgTextTransform}; labels commonly carry `rotation = PI`,
121
121
  * which renders flat, so an undefined rotation must not be treated as
122
122
  * rotated), and unions the result with the base `[0, 0, width, height]` box.
@@ -145,9 +145,11 @@ declare function viewBoxString(shapes: PreviewShape[], dims: {
145
145
  /**
146
146
  * The SVG `transform` attribute that rotates a `text` shape into place, or
147
147
  * `undefined` for an unrotated/incomplete shape. Text rotations use the same
148
- * generator convention as the map adapters (`renderedAngle = PI - rotation`);
149
- * SVG's y-axis points down, so the angle is negated. Shared by every SVG
150
- * preview consumer (sidebar gallery, docs catalog, README generator).
148
+ * generator convention as the map adapters (`renderedAngle = PI - rotation`).
149
+ * The stored convention already accounts for projected Y-up coordinates being
150
+ * displayed in SVG's Y-down space, so no additional sign flip is needed.
151
+ * Shared by every SVG preview consumer (sidebar gallery, docs catalog, README
152
+ * generator).
151
153
  */
152
154
  declare function svgTextTransform(s: PreviewShape): string | undefined;
153
155
  //#endregion
@@ -1,4 +1,4 @@
1
- import { a as DEFINITIONS, t as renderControlMeasure } from "../renderControlMeasure-1-LCyEFc.mjs";
1
+ import { a as DEFINITIONS, t as renderControlMeasure } from "../renderControlMeasure-CAfC2nEw.mjs";
2
2
  //#region src/preview/index.ts
3
3
  /** Side length (SVG units) of the repeating hatch tile in {@link PREVIEW_FILL_PATTERNS}. */
4
4
  const PREVIEW_PATTERN_TILE = 8;
@@ -222,7 +222,7 @@ const MAX_TEXT_HEIGHT_RATIO = .16;
222
222
  * itself, placed per `textAnchor` horizontally and centered on `cy`
223
223
  * vertically (SVG text uses `dominant-baseline="central"`), rotates its
224
224
  * corners around `(cx, cy)` by the same angle the SVG transform applies
225
- * (`renderedAngle = PI - rotation`, negated for SVG's y-down axis — see
225
+ * (`renderedAngle = PI - rotation` — see
226
226
  * {@link svgTextTransform}; labels commonly carry `rotation = PI`,
227
227
  * which renders flat, so an undefined rotation must not be treated as
228
228
  * rotated), and unions the result with the base `[0, 0, width, height]` box.
@@ -244,7 +244,7 @@ function viewBoxWithLabels(shapes, dims, fontSize) {
244
244
  const right = left + w;
245
245
  const top = s.cy - h / 2;
246
246
  const bottom = s.cy + h / 2;
247
- const theta = s.rotation === void 0 ? 0 : -(Math.PI - s.rotation);
247
+ const theta = s.rotation === void 0 ? 0 : Math.PI - s.rotation;
248
248
  const cos = Math.cos(theta);
249
249
  const sin = Math.sin(theta);
250
250
  for (const [x, y] of [
@@ -280,13 +280,15 @@ function viewBoxString(shapes, dims, fontSize) {
280
280
  /**
281
281
  * The SVG `transform` attribute that rotates a `text` shape into place, or
282
282
  * `undefined` for an unrotated/incomplete shape. Text rotations use the same
283
- * generator convention as the map adapters (`renderedAngle = PI - rotation`);
284
- * SVG's y-axis points down, so the angle is negated. Shared by every SVG
285
- * preview consumer (sidebar gallery, docs catalog, README generator).
283
+ * generator convention as the map adapters (`renderedAngle = PI - rotation`).
284
+ * The stored convention already accounts for projected Y-up coordinates being
285
+ * displayed in SVG's Y-down space, so no additional sign flip is needed.
286
+ * Shared by every SVG preview consumer (sidebar gallery, docs catalog, README
287
+ * generator).
286
288
  */
287
289
  function svgTextTransform(s) {
288
290
  if (s.rotation === void 0 || s.cx === void 0 || s.cy === void 0) return void 0;
289
- return `rotate(${(-((Math.PI - s.rotation) * 180) / Math.PI).toFixed(3)} ${s.cx.toFixed(3)} ${s.cy.toFixed(3)})`;
291
+ return `rotate(${((Math.PI - s.rotation) * 180 / Math.PI).toFixed(3)} ${s.cx.toFixed(3)} ${s.cy.toFixed(3)})`;
290
292
  }
291
293
  /**
292
294
  * Resolves a label's SVG-unit text height from its `textSizeMeters` property
@@ -7918,6 +7918,170 @@ const CLEAR = defineControlMeasure({
7918
7918
  rule: line23DrawRule
7919
7919
  });
7920
7920
  //#endregion
7921
+ //#region src/generators/cm15-maneuver-areas/supportingAttack.ts
7922
+ const DEFAULT_SUPPORTING_ATTACK_OPTIONS = {
7923
+ shaftWidthRatio: DEFAULT_SHAFT_WIDTH_RATIO,
7924
+ smooth: false,
7925
+ smoothResolution: 5
7926
+ };
7927
+ const SUPPORTING_ATTACK_METADATA = {
7928
+ id: "supporting-attack",
7929
+ name: "Supporting Attack",
7930
+ description: "Supports the main attack by fixing, deceiving, or preventing enemy forces from interfering with it.",
7931
+ entity: "Maneuver Areas",
7932
+ entityType: "Axis of Advance",
7933
+ entitySubtype: "Supporting Attack",
7934
+ value: "151404",
7935
+ minCoordinates: 3,
7936
+ geometry: "line",
7937
+ geometryTypes: ["LineString"],
7938
+ paints: {
7939
+ stroke: true,
7940
+ fill: "none",
7941
+ text: false
7942
+ },
7943
+ drawRule: "Axis1",
7944
+ params: ATTACK_SHAFT_PARAMS
7945
+ };
7946
+ /**
7947
+ * Generates a GeoJSON FeatureCollection for a Supporting Attack tactical symbol.
7948
+ *
7949
+ * The symbol differs from Main Attack in that it is a single LineString
7950
+ * outlining the arrow shape, rather than a filled Polygon header + Shaft lines.
7951
+ *
7952
+ * @param coordinates - An array of GeoJSON Positions.
7953
+ * @param options - Configuration options.
7954
+ * @returns A GeoJSON FeatureCollection<LineString>.
7955
+ */
7956
+ function createSupportingAttack(coordinates, options = {}) {
7957
+ const { geometry } = processAttackGeometry(coordinates, options);
7958
+ if (!geometry) return {
7959
+ type: "FeatureCollection",
7960
+ features: []
7961
+ };
7962
+ return {
7963
+ type: "FeatureCollection",
7964
+ features: [{
7965
+ type: "Feature",
7966
+ properties: {},
7967
+ geometry: {
7968
+ type: "LineString",
7969
+ coordinates: [
7970
+ ...geometry.shaftLeft,
7971
+ geometry.headRing[0],
7972
+ geometry.headRing[1],
7973
+ geometry.headRing[2],
7974
+ ...[...geometry.shaftRight].reverse()
7975
+ ].map((p) => unproject(p[0], p[1]))
7976
+ }
7977
+ }]
7978
+ };
7979
+ }
7980
+ const SUPPORTING_ATTACK = defineControlMeasure({
7981
+ metadata: SUPPORTING_ATTACK_METADATA,
7982
+ generator: createSupportingAttack,
7983
+ defaultOptions: DEFAULT_SUPPORTING_ATTACK_OPTIONS,
7984
+ rule: axis1DrawRule
7985
+ });
7986
+ //#endregion
7987
+ //#region src/generators/cm34-mission-tasks/counterattack.ts
7988
+ const DEFAULT_COUNTERATTACK_OPTIONS = {
7989
+ shaftWidthRatio: DEFAULT_SHAFT_WIDTH_RATIO,
7990
+ smooth: false,
7991
+ smoothResolution: 5,
7992
+ labelPosition: 1
7993
+ };
7994
+ /** Intrinsic dash and gap lengths for the complete Counterattack outline. */
7995
+ const COUNTERATTACK_DASH = [6, 4];
7996
+ const COUNTERATTACK_METADATA = {
7997
+ id: "counterattack",
7998
+ name: "Counterattack",
7999
+ description: "A variation of attack by a defending force against an attacking enemy force",
8000
+ entity: "Mission Tasks",
8001
+ entityType: "Counterattack",
8002
+ value: "340600",
8003
+ minCoordinates: 3,
8004
+ geometry: "line",
8005
+ geometryTypes: ["LineString", "Point"],
8006
+ paints: {
8007
+ stroke: true,
8008
+ fill: "none",
8009
+ text: true
8010
+ },
8011
+ drawRule: "Axis1",
8012
+ capturesLabelSize: true,
8013
+ params: [...ATTACK_SHAFT_PARAMS, {
8014
+ key: "labelPosition",
8015
+ label: "Label position",
8016
+ description: "Position of the CATK label along the shaft, from tail (0) to head (1)",
8017
+ type: "number",
8018
+ min: 0,
8019
+ max: 1,
8020
+ step: .01
8021
+ }],
8022
+ textAmplifiers: [{
8023
+ key: "T",
8024
+ label: "Unique designation",
8025
+ description: "Field T — the counterattack's unique designation.",
8026
+ placeholder: "1",
8027
+ maxLength: 21
8028
+ }]
8029
+ };
8030
+ /** Generates the Counterattack mission task (340600). */
8031
+ function createCounterattack(coordinates, options = {}, textAmplifiers = {}) {
8032
+ const outline = createSupportingAttack(coordinates, options);
8033
+ const { geometry } = processAttackGeometry(coordinates, options);
8034
+ if (!geometry || outline.features.length === 0) return outline;
8035
+ const dashedOutline = {
8036
+ ...outline.features[0],
8037
+ properties: {
8038
+ part: "counterattack",
8039
+ style: { strokeDash: [...COUNTERATTACK_DASH] }
8040
+ }
8041
+ };
8042
+ const { segments, totalLength } = polylineSegments(geometry.shaftCenterline);
8043
+ const frame = pointAlongPolyline(segments, totalLength, options.labelPosition ?? DEFAULT_COUNTERATTACK_OPTIONS.labelPosition);
8044
+ if (!frame) return {
8045
+ type: "FeatureCollection",
8046
+ features: [dashedOutline]
8047
+ };
8048
+ const designation = textAmplifiers.T?.trim();
8049
+ return {
8050
+ type: "FeatureCollection",
8051
+ features: [dashedOutline, {
8052
+ type: "Feature",
8053
+ properties: {
8054
+ part: "label",
8055
+ labelPlacement: false,
8056
+ amplifierField: "T",
8057
+ text: designation ? `CATK ${designation}` : "CATK",
8058
+ rotation: labelRotationAlong(frame.along),
8059
+ ...labelSizeProps(options)
8060
+ },
8061
+ geometry: {
8062
+ type: "Point",
8063
+ coordinates: unproject(frame.point[0], frame.point[1])
8064
+ }
8065
+ }]
8066
+ };
8067
+ }
8068
+ const COUNTERATTACK = defineControlMeasure({
8069
+ metadata: COUNTERATTACK_METADATA,
8070
+ generator: createCounterattack,
8071
+ defaultOptions: DEFAULT_COUNTERATTACK_OPTIONS,
8072
+ rule: axis1DrawRule,
8073
+ previewSample: {
8074
+ controlPoints: [
8075
+ [1, 0],
8076
+ [-.4, -.35],
8077
+ [-1, -.8],
8078
+ [.45, .55]
8079
+ ],
8080
+ textAmplifiers: { T: "1" },
8081
+ options: { labelSize: 80 }
8082
+ }
8083
+ });
8084
+ //#endregion
7921
8085
  //#region src/internal/field-of-fire.ts
7922
8086
  /**
7923
8087
  * Builds the open (stroked) arrowhead at the outward tip of one arm. The two
@@ -9578,6 +9742,225 @@ const PHASE_LINE = defineControlMeasure({
9578
9742
  }
9579
9743
  });
9580
9744
  //#endregion
9745
+ //#region src/generators/cm14-maneuver-lines/bridgehead-line.ts
9746
+ /** Default options for the Bridgehead line control measure. */
9747
+ const DEFAULT_BRIDGEHEAD_LINE_OPTIONS = {
9748
+ includePrefix: true,
9749
+ smooth: false,
9750
+ smoothResolution: 12
9751
+ };
9752
+ const BRIDGEHEAD_LINE_METADATA = {
9753
+ id: "bridgehead-line",
9754
+ name: "Bridgehead line",
9755
+ description: "The planned, temporary limit of the objective area in the development of a bridgehead.",
9756
+ entity: "Maneuver Lines",
9757
+ entityType: "Bridgehead Line",
9758
+ value: "141400",
9759
+ minCoordinates: 2,
9760
+ geometry: "line",
9761
+ geometryTypes: ["LineString", "Point"],
9762
+ paints: {
9763
+ stroke: true,
9764
+ fill: "none",
9765
+ text: true
9766
+ },
9767
+ drawRule: "Line1",
9768
+ capturesLabelSize: true,
9769
+ params: [
9770
+ ...SMOOTH_LINE_PARAMS,
9771
+ {
9772
+ key: "phaseLineName",
9773
+ label: "Phase line name",
9774
+ description: "Name the line as a phase line — rendered \"PL <name>\" beyond each end of the line.",
9775
+ type: "text",
9776
+ placeholder: "CAT",
9777
+ maxLength: 21,
9778
+ field: "T"
9779
+ },
9780
+ {
9781
+ key: "includePrefix",
9782
+ label: "Show PL prefix",
9783
+ description: "Prefix the phase line name with \"PL\" (or show the bare name).",
9784
+ type: "boolean",
9785
+ visibleWhen: (opts) => Boolean(String(opts.phaseLineName ?? "").trim())
9786
+ },
9787
+ {
9788
+ key: "labelPadding",
9789
+ label: "Label padding",
9790
+ description: "Extra clearance between the line and its labels, as a ratio of the label height",
9791
+ type: "number",
9792
+ min: 0,
9793
+ max: 2,
9794
+ step: .05
9795
+ }
9796
+ ],
9797
+ textAmplifiers: [HOSTILE_LINE_AMPLIFIER]
9798
+ };
9799
+ /** Creates a Bridgehead line labeled "BL" above both ends. */
9800
+ function createBridgeheadLine(positions, options = {}, textAmplifiers = {}) {
9801
+ return fixedLabelLineFeatures(positions, {
9802
+ part: "bridgehead-line",
9803
+ placement: "above",
9804
+ ...options
9805
+ }, "BL", textAmplifiers.N);
9806
+ }
9807
+ const BRIDGEHEAD_LINE = defineControlMeasure({
9808
+ metadata: BRIDGEHEAD_LINE_METADATA,
9809
+ generator: createBridgeheadLine,
9810
+ defaultOptions: DEFAULT_BRIDGEHEAD_LINE_OPTIONS,
9811
+ rule: line1DrawRule,
9812
+ previewSample: {
9813
+ controlPoints: [[-1, 0], [1, 0]],
9814
+ options: { labelSize: 96 }
9815
+ }
9816
+ });
9817
+ //#endregion
9818
+ //#region src/generators/cm14-maneuver-lines/holding-line.ts
9819
+ /** Default options for the Holding line control measure. */
9820
+ const DEFAULT_HOLDING_LINE_OPTIONS = {
9821
+ includePrefix: true,
9822
+ smooth: false,
9823
+ smoothResolution: 12
9824
+ };
9825
+ const HOLDING_LINE_METADATA = {
9826
+ id: "holding-line",
9827
+ name: "Holding line",
9828
+ description: "In retrograde river-crossing operations, the outer limit of the area established between the enemy and the water obstacle to preclude direct and observed indirect fires into the crossings.",
9829
+ entity: "Maneuver Lines",
9830
+ entityType: "Holding Line",
9831
+ value: "141500",
9832
+ minCoordinates: 2,
9833
+ geometry: "line",
9834
+ geometryTypes: ["LineString", "Point"],
9835
+ paints: {
9836
+ stroke: true,
9837
+ fill: "none",
9838
+ text: true
9839
+ },
9840
+ drawRule: "Line1",
9841
+ capturesLabelSize: true,
9842
+ params: [
9843
+ ...SMOOTH_LINE_PARAMS,
9844
+ {
9845
+ key: "phaseLineName",
9846
+ label: "Phase line name",
9847
+ description: "Name the line as a phase line — rendered \"PL <name>\" beyond each end of the line.",
9848
+ type: "text",
9849
+ placeholder: "DOG",
9850
+ maxLength: 21,
9851
+ field: "T"
9852
+ },
9853
+ {
9854
+ key: "includePrefix",
9855
+ label: "Show PL prefix",
9856
+ description: "Prefix the phase line name with \"PL\" (or show the bare name).",
9857
+ type: "boolean",
9858
+ visibleWhen: (opts) => Boolean(String(opts.phaseLineName ?? "").trim())
9859
+ },
9860
+ {
9861
+ key: "labelPadding",
9862
+ label: "Label padding",
9863
+ description: "Extra clearance between the line and its labels, as a ratio of the label height",
9864
+ type: "number",
9865
+ min: 0,
9866
+ max: 2,
9867
+ step: .05
9868
+ }
9869
+ ],
9870
+ textAmplifiers: [HOSTILE_LINE_AMPLIFIER]
9871
+ };
9872
+ /** Creates a Holding line labeled "HL" above both ends. */
9873
+ function createHoldingLine(positions, options = {}, textAmplifiers = {}) {
9874
+ return fixedLabelLineFeatures(positions, {
9875
+ part: "holding-line",
9876
+ placement: "above",
9877
+ ...options
9878
+ }, "HL", textAmplifiers.N);
9879
+ }
9880
+ const HOLDING_LINE = defineControlMeasure({
9881
+ metadata: HOLDING_LINE_METADATA,
9882
+ generator: createHoldingLine,
9883
+ defaultOptions: DEFAULT_HOLDING_LINE_OPTIONS,
9884
+ rule: line1DrawRule,
9885
+ previewSample: {
9886
+ controlPoints: [[-1, 0], [1, 0]],
9887
+ options: { labelSize: 96 }
9888
+ }
9889
+ });
9890
+ //#endregion
9891
+ //#region src/generators/cm14-maneuver-lines/release-line.ts
9892
+ /** Default options for the Release line control measure. */
9893
+ const DEFAULT_RELEASE_LINE_OPTIONS = {
9894
+ includePrefix: true,
9895
+ smooth: false,
9896
+ smoothResolution: 12
9897
+ };
9898
+ const RELEASE_LINE_METADATA = {
9899
+ id: "release-line",
9900
+ name: "Release line",
9901
+ description: "A phase line used in river-crossing operations that delineates a change in the headquarters controlling movement.",
9902
+ entity: "Maneuver Lines",
9903
+ entityType: "Release Line",
9904
+ value: "141600",
9905
+ minCoordinates: 2,
9906
+ geometry: "line",
9907
+ geometryTypes: ["LineString", "Point"],
9908
+ paints: {
9909
+ stroke: true,
9910
+ fill: "none",
9911
+ text: true
9912
+ },
9913
+ drawRule: "Line1",
9914
+ capturesLabelSize: true,
9915
+ params: [
9916
+ ...SMOOTH_LINE_PARAMS,
9917
+ {
9918
+ key: "phaseLineName",
9919
+ label: "Phase line name",
9920
+ description: "Name the line as a phase line — rendered \"PL <name>\" beyond each end of the line.",
9921
+ type: "text",
9922
+ placeholder: "WIND",
9923
+ maxLength: 21,
9924
+ field: "T"
9925
+ },
9926
+ {
9927
+ key: "includePrefix",
9928
+ label: "Show PL prefix",
9929
+ description: "Prefix the phase line name with \"PL\" (or show the bare name).",
9930
+ type: "boolean",
9931
+ visibleWhen: (opts) => Boolean(String(opts.phaseLineName ?? "").trim())
9932
+ },
9933
+ {
9934
+ key: "labelPadding",
9935
+ label: "Label padding",
9936
+ description: "Extra clearance between the line and its labels, as a ratio of the label height",
9937
+ type: "number",
9938
+ min: 0,
9939
+ max: 2,
9940
+ step: .05
9941
+ }
9942
+ ],
9943
+ textAmplifiers: [HOSTILE_LINE_AMPLIFIER]
9944
+ };
9945
+ /** Creates a Release line labeled "RL" above both ends. */
9946
+ function createReleaseLine(positions, options = {}, textAmplifiers = {}) {
9947
+ return fixedLabelLineFeatures(positions, {
9948
+ part: "release-line",
9949
+ placement: "above",
9950
+ ...options
9951
+ }, "RL", textAmplifiers.N);
9952
+ }
9953
+ const RELEASE_LINE = defineControlMeasure({
9954
+ metadata: RELEASE_LINE_METADATA,
9955
+ generator: createReleaseLine,
9956
+ defaultOptions: DEFAULT_RELEASE_LINE_OPTIONS,
9957
+ rule: line1DrawRule,
9958
+ previewSample: {
9959
+ controlPoints: [[-1, 0], [1, 0]],
9960
+ options: { labelSize: 96 }
9961
+ }
9962
+ });
9963
+ //#endregion
9581
9964
  //#region src/generators/cm14-maneuver-lines/forward-edge-of-battle-area.ts
9582
9965
  /** Default options for the Forward edge of the battle area control measure. */
9583
9966
  const DEFAULT_FORWARD_EDGE_OF_BATTLE_AREA_OPTIONS = {
@@ -10111,8 +10494,9 @@ function createManeuverArrowTask(coordinates, options, textAmplifiers, config) {
10111
10494
  crossbarCenter = geometry.ptTip;
10112
10495
  crossbarAlong = tipDirection;
10113
10496
  } else {
10114
- crossbarCenter = centerline[0];
10115
- crossbarAlong = segments[0].along;
10497
+ const crossbarFrame = pointAlongPolyline(segments, totalLength, Number.isFinite(config.crossbarAt.shaftPosition) ? clamp01(config.crossbarAt.shaftPosition) : 0);
10498
+ crossbarCenter = crossbarFrame.point;
10499
+ crossbarAlong = crossbarFrame.along;
10116
10500
  }
10117
10501
  const crossbarPerp = [-crossbarAlong[1], crossbarAlong[0]];
10118
10502
  const crossbar = [vecAdd(crossbarCenter, vecScale(crossbarPerp, crossbarLength / 2)), vecSub(crossbarCenter, vecScale(crossbarPerp, crossbarLength / 2))];
@@ -12072,72 +12456,6 @@ const SUPPORT_BY_FIRE = defineControlMeasure({
12072
12456
  rule: supportByFireDrawRule
12073
12457
  });
12074
12458
  //#endregion
12075
- //#region src/generators/cm15-maneuver-areas/supportingAttack.ts
12076
- const DEFAULT_SUPPORTING_ATTACK_OPTIONS = {
12077
- shaftWidthRatio: DEFAULT_SHAFT_WIDTH_RATIO,
12078
- smooth: false,
12079
- smoothResolution: 5
12080
- };
12081
- const SUPPORTING_ATTACK_METADATA = {
12082
- id: "supporting-attack",
12083
- name: "Supporting Attack",
12084
- description: "Supports the main attack by fixing, deceiving, or preventing enemy forces from interfering with it.",
12085
- entity: "Maneuver Areas",
12086
- entityType: "Axis of Advance",
12087
- entitySubtype: "Supporting Attack",
12088
- value: "151404",
12089
- minCoordinates: 3,
12090
- geometry: "line",
12091
- geometryTypes: ["LineString"],
12092
- paints: {
12093
- stroke: true,
12094
- fill: "none",
12095
- text: false
12096
- },
12097
- drawRule: "Axis1",
12098
- params: ATTACK_SHAFT_PARAMS
12099
- };
12100
- /**
12101
- * Generates a GeoJSON FeatureCollection for a Supporting Attack tactical symbol.
12102
- *
12103
- * The symbol differs from Main Attack in that it is a single LineString
12104
- * outlining the arrow shape, rather than a filled Polygon header + Shaft lines.
12105
- *
12106
- * @param coordinates - An array of GeoJSON Positions.
12107
- * @param options - Configuration options.
12108
- * @returns A GeoJSON FeatureCollection<LineString>.
12109
- */
12110
- function createSupportingAttack(coordinates, options = {}) {
12111
- const { geometry } = processAttackGeometry(coordinates, options);
12112
- if (!geometry) return {
12113
- type: "FeatureCollection",
12114
- features: []
12115
- };
12116
- return {
12117
- type: "FeatureCollection",
12118
- features: [{
12119
- type: "Feature",
12120
- properties: {},
12121
- geometry: {
12122
- type: "LineString",
12123
- coordinates: [
12124
- ...geometry.shaftLeft,
12125
- geometry.headRing[0],
12126
- geometry.headRing[1],
12127
- geometry.headRing[2],
12128
- ...[...geometry.shaftRight].reverse()
12129
- ].map((p) => unproject(p[0], p[1]))
12130
- }
12131
- }]
12132
- };
12133
- }
12134
- const SUPPORTING_ATTACK = defineControlMeasure({
12135
- metadata: SUPPORTING_ATTACK_METADATA,
12136
- generator: createSupportingAttack,
12137
- defaultOptions: DEFAULT_SUPPORTING_ATTACK_OPTIONS,
12138
- rule: axis1DrawRule
12139
- });
12140
- //#endregion
12141
12459
  //#region src/generators/cm27-protection-areas/turn.ts
12142
12460
  const DEFAULT_TURN_OPTIONS = {
12143
12461
  arrowheadLengthRatio: .16,
@@ -12260,7 +12578,20 @@ const TURN = defineControlMeasure({
12260
12578
  });
12261
12579
  //#endregion
12262
12580
  //#region src/generators/cm15-maneuver-areas/turning-movement.ts
12263
- const DEFAULT_TURNING_MOVEMENT_OPTIONS = DEFAULT_MANEUVER_ARROW_TASK_OPTIONS;
12581
+ const DEFAULT_CROSSBAR_POSITION = 0;
12582
+ const DEFAULT_TURNING_MOVEMENT_OPTIONS = {
12583
+ ...DEFAULT_MANEUVER_ARROW_TASK_OPTIONS,
12584
+ crossbarPosition: DEFAULT_CROSSBAR_POSITION
12585
+ };
12586
+ const TURNING_MOVEMENT_PARAMS = [{
12587
+ key: "crossbarPosition",
12588
+ label: "Crossbar position",
12589
+ description: "Position along the shaft, from tail (0) to arrowhead base (1)",
12590
+ type: "number",
12591
+ min: 0,
12592
+ max: 1,
12593
+ step: .01
12594
+ }];
12264
12595
  const TURNING_MOVEMENT_METADATA = {
12265
12596
  id: "turning-movement",
12266
12597
  name: "Turning Movement",
@@ -12278,14 +12609,18 @@ const TURNING_MOVEMENT_METADATA = {
12278
12609
  },
12279
12610
  drawRule: "Axis1",
12280
12611
  capturesLabelSize: true,
12281
- params: [...ATTACK_SHAFT_PARAMS, ...MANEUVER_ARROW_TASK_PARAMS],
12612
+ params: [
12613
+ ...ATTACK_SHAFT_PARAMS,
12614
+ ...MANEUVER_ARROW_TASK_PARAMS,
12615
+ ...TURNING_MOVEMENT_PARAMS
12616
+ ],
12282
12617
  textAmplifiers: MANEUVER_ARROW_TASK_TEXT_AMPLIFIERS
12283
12618
  };
12284
12619
  function createTurningMovement(coordinates, options = {}, textAmplifiers = {}) {
12285
12620
  return createManeuverArrowTask(coordinates, options, textAmplifiers, {
12286
12621
  part: "turning-movement",
12287
12622
  code: "T",
12288
- crossbarAt: "tail"
12623
+ crossbarAt: { shaftPosition: options.crossbarPosition ?? DEFAULT_CROSSBAR_POSITION }
12289
12624
  });
12290
12625
  }
12291
12626
  //#endregion
@@ -12353,6 +12688,9 @@ const DEFINITIONS = {
12353
12688
  flot: FLOT,
12354
12689
  "phase-line": PHASE_LINE,
12355
12690
  "forward-edge-of-battle-area": FORWARD_EDGE_OF_BATTLE_AREA,
12691
+ "bridgehead-line": BRIDGEHEAD_LINE,
12692
+ "holding-line": HOLDING_LINE,
12693
+ "release-line": RELEASE_LINE,
12356
12694
  "handover-line": HANDOVER_LINE,
12357
12695
  "battle-handover-line": BATTLE_HANDOVER_LINE,
12358
12696
  "block-mission-task": BLOCK_MISSION_TASK,
@@ -12360,6 +12698,7 @@ const DEFINITIONS = {
12360
12698
  bypass: BYPASS,
12361
12699
  canalize: CANALIZE,
12362
12700
  clear: CLEAR,
12701
+ counterattack: COUNTERATTACK,
12363
12702
  cover: COVER,
12364
12703
  delay: DELAY,
12365
12704
  guard: GUARD,
@@ -12761,4 +13100,4 @@ function assertNever(value) {
12761
13100
  throw new Error(`Unhandled control measure kind: ${String(value)}`);
12762
13101
  }
12763
13102
  //#endregion
12764
- export { DEFAULT_GENERIC_C2_LINE_OPTIONS as $, DEFAULT_HANDOVER_LINE_OPTIONS as A, ambushDrawRule as At, DEFAULT_COVER_OPTIONS as B, snapToMidpointPerpendicular as Bt, DEFAULT_LANDING_ZONE_OPTIONS as C, axis1DrawRule as Ct, DEFAULT_FORTIFIED_AREA_OPTIONS as D, line23DrawRule as Dt, DEFAULT_FRONTAL_ATTACK_OPTIONS as E, line24DrawRule as Et, DEFAULT_FINAL_PROTECTIVE_FIRE_OPTIONS as F, blockDrawRule as Ft, DEFAULT_GENERIC_POLYGON_OPTIONS as G, project as Gt, DEFAULT_CLEAR_OPTIONS as H, calculateMetrics as Ht, DEFAULT_ENCIRCLEMENT_OPTIONS as I, computeDefaultMidpointPerpendicularPoint as It, DEFAULT_CLASSIC_ARROW_OPTIONS as J, getMetersPerPixel as Jt, DEFAULT_GENERIC_LINE_OPTIONS as K, unproject as Kt, DEFAULT_DISRUPT_OPTIONS as L, createMidpointPerpendicularDrawRule as Lt, DEFAULT_PHASE_LINE_OPTIONS as M, point12DrawRule as Mt, DEFAULT_FLOT_OPTIONS as N, centerRadiusDrawRule as Nt, DEFAULT_FORTIFIED_LINE_OPTIONS as O, turnDrawRule as Ot, DEFAULT_FIX_OPTIONS as P, disruptDrawRule as Pt, DEFAULT_BLOCK_MISSION_TASK_OPTIONS as Q, DEFAULT_GUARD_OPTIONS as R, getMidpointPerpendicularSignedDistance as Rt, DEFAULT_MAIN_ATTACK_OPTIONS as S, rectangleDrawRule as St, DEFAULT_SCREEN_OPTIONS as T, line26DrawRule as Tt, DEFAULT_GENERIC_TEXT_OPTIONS as U, computeInitialWidthPoint as Ut, DEFAULT_TACTICAL_ARROW_OPTIONS as V, createBaselineFrame as Vt, DEFAULT_GENERIC_RECTANGLE_OPTIONS as W, haversineDistance as Wt, DEFAULT_BYPASS_OPTIONS as X, DEFAULT_CANALIZE_OPTIONS as Y, roundToFixed as Yt, DEFAULT_BREACH_OPTIONS as Z, DEFAULT_PRINCIPAL_DIRECTION_OF_FIRE_OPTIONS as _, canonicalTextAmplifierKey as _t, DEFINITIONS as a, DEFAULT_BATTLE_POSITION_OPTIONS as at, DEFAULT_OBSTACLE_BYPASS_EASY_OPTIONS as b, DEFAULT_AMBUSH_OPTIONS as bt, getDefaultOptions as c, DEFAULT_ANTITANK_WALL_OPTIONS as ct, DEFAULT_TURN_OPTIONS as d, DEFAULT_AREA_OF_OPERATIONS_OPTIONS as dt, DEFAULT_ENGINEER_WORK_LINE_OPTIONS as et, DEFAULT_SUPPORTING_ATTACK_OPTIONS as f, DEFAULT_AREA_DEFENSE_OPTIONS as ft, SECONDARY_DIRECTION_OF_FIRE_DASH as g, TEXT_AMPLIFIER_FIELDS as gt, DEFAULT_SECONDARY_DIRECTION_OF_FIRE_OPTIONS as h, DEFAULT_DIRECTION_OF_ATTACK_AVIATION_OPTIONS as ht, CONTROL_MEASURE_METADATA as i, DEFAULT_BLOCK_OPTIONS as it, DEFAULT_FORWARD_EDGE_OF_BATTLE_AREA_OPTIONS as j, attackByFireDrawRule as jt, DEFAULT_BATTLE_HANDOVER_LINE_OPTIONS as k, line1DrawRule as kt, listControlMeasureMetadata as l, DEFAULT_ANTITANK_DITCH_OPTIONS as lt, DEFAULT_STRONG_POINT_OPTIONS as m, DEFAULT_DIRECTION_OF_MAIN_ATTACK_OPTIONS as mt, resolveStyleHints as n, DEFAULT_BOUNDARY_OPTIONS as nt, getControlMeasureMetadata as o, DEFAULT_ATTACK_HELICOPTER_OPTIONS as ot, DEFAULT_SUPPORT_BY_FIRE_OPTIONS as p, DEFAULT_DIRECTION_OF_SUPPORTING_ATTACK_OPTIONS as pt, DEFAULT_GENERIC_CIRCLE_OPTIONS as q, EPSILON as qt, CONTROL_MEASURE_IDS as r, DEFAULT_BLOCK_ARROW_OPTIONS as rt, getControlMeasureMetadataByValue as s, DEFAULT_ATTACK_BY_FIRE_OPTIONS as st, renderControlMeasure as t, DEFAULT_LIGHT_LINE_OPTIONS as tt, DEFAULT_TURNING_MOVEMENT_OPTIONS as u, DEFAULT_ASSEMBLY_AREA_OPTIONS as ut, DEFAULT_PICKUP_ZONE_OPTIONS as v, normalizeTextAmplifiers as vt, DEFAULT_JOINT_TACTICAL_ACTION_AREA_OPTIONS as w, supportByFireDrawRule as wt, DEFAULT_OBSTACLE_BYPASS_DIFFICULT_OPTIONS as x, DEFAULT_AIRBORNE_ATTACK_OPTIONS as xt, DEFAULT_OBSTACLE_BYPASS_IMPOSSIBLE_OPTIONS as y, resolveAmplifierPlacement as yt, DEFAULT_DELAY_OPTIONS as z, pointOnMidpointPerpendicularAxis as zt };
13103
+ export { DEFAULT_CANALIZE_OPTIONS as $, roundToFixed as $t, DEFAULT_FORWARD_EDGE_OF_BATTLE_AREA_OPTIONS as A, line24DrawRule as At, DEFAULT_GUARD_OPTIONS as B, computeDefaultMidpointPerpendicularPoint as Bt, DEFAULT_JOINT_TACTICAL_ACTION_AREA_OPTIONS as C, resolveAmplifierPlacement as Ct, DEFAULT_FORTIFIED_LINE_OPTIONS as D, axis1DrawRule as Dt, DEFAULT_FORTIFIED_AREA_OPTIONS as E, rectangleDrawRule as Et, DEFAULT_FLOT_OPTIONS as F, attackByFireDrawRule as Ft, DEFAULT_SUPPORTING_ATTACK_OPTIONS as G, createBaselineFrame as Gt, DEFAULT_COVER_OPTIONS as H, getMidpointPerpendicularSignedDistance as Ht, DEFAULT_FIX_OPTIONS as I, point12DrawRule as It, DEFAULT_GENERIC_RECTANGLE_OPTIONS as J, haversineDistance as Jt, DEFAULT_CLEAR_OPTIONS as K, calculateMetrics as Kt, DEFAULT_FINAL_PROTECTIVE_FIRE_OPTIONS as L, centerRadiusDrawRule as Lt, DEFAULT_HOLDING_LINE_OPTIONS as M, turnDrawRule as Mt, DEFAULT_BRIDGEHEAD_LINE_OPTIONS as N, line1DrawRule as Nt, DEFAULT_BATTLE_HANDOVER_LINE_OPTIONS as O, supportByFireDrawRule as Ot, DEFAULT_PHASE_LINE_OPTIONS as P, ambushDrawRule as Pt, DEFAULT_CLASSIC_ARROW_OPTIONS as Q, getMetersPerPixel as Qt, DEFAULT_ENCIRCLEMENT_OPTIONS as R, disruptDrawRule as Rt, DEFAULT_LANDING_ZONE_OPTIONS as S, normalizeTextAmplifiers as St, DEFAULT_FRONTAL_ATTACK_OPTIONS as T, DEFAULT_AIRBORNE_ATTACK_OPTIONS as Tt, DEFAULT_TACTICAL_ARROW_OPTIONS as U, pointOnMidpointPerpendicularAxis as Ut, DEFAULT_DELAY_OPTIONS as V, createMidpointPerpendicularDrawRule as Vt, DEFAULT_COUNTERATTACK_OPTIONS as W, snapToMidpointPerpendicular as Wt, DEFAULT_GENERIC_LINE_OPTIONS as X, unproject as Xt, DEFAULT_GENERIC_POLYGON_OPTIONS as Y, project as Yt, DEFAULT_GENERIC_CIRCLE_OPTIONS as Z, EPSILON as Zt, DEFAULT_PICKUP_ZONE_OPTIONS as _, DEFAULT_DIRECTION_OF_SUPPORTING_ATTACK_OPTIONS as _t, DEFINITIONS as a, DEFAULT_LIGHT_LINE_OPTIONS as at, DEFAULT_OBSTACLE_BYPASS_DIFFICULT_OPTIONS as b, TEXT_AMPLIFIER_FIELDS as bt, getDefaultOptions as c, DEFAULT_BLOCK_OPTIONS as ct, DEFAULT_TURN_OPTIONS as d, DEFAULT_ATTACK_BY_FIRE_OPTIONS as dt, DEFAULT_BYPASS_OPTIONS as et, DEFAULT_SUPPORT_BY_FIRE_OPTIONS as f, DEFAULT_ANTITANK_WALL_OPTIONS as ft, DEFAULT_PRINCIPAL_DIRECTION_OF_FIRE_OPTIONS as g, DEFAULT_AREA_DEFENSE_OPTIONS as gt, SECONDARY_DIRECTION_OF_FIRE_DASH as h, DEFAULT_AREA_OF_OPERATIONS_OPTIONS as ht, CONTROL_MEASURE_METADATA as i, DEFAULT_ENGINEER_WORK_LINE_OPTIONS as it, DEFAULT_RELEASE_LINE_OPTIONS as j, line23DrawRule as jt, DEFAULT_HANDOVER_LINE_OPTIONS as k, line26DrawRule as kt, listControlMeasureMetadata as l, DEFAULT_BATTLE_POSITION_OPTIONS as lt, DEFAULT_SECONDARY_DIRECTION_OF_FIRE_OPTIONS as m, DEFAULT_ASSEMBLY_AREA_OPTIONS as mt, resolveStyleHints as n, DEFAULT_BLOCK_MISSION_TASK_OPTIONS as nt, getControlMeasureMetadata as o, DEFAULT_BOUNDARY_OPTIONS as ot, DEFAULT_STRONG_POINT_OPTIONS as p, DEFAULT_ANTITANK_DITCH_OPTIONS as pt, DEFAULT_GENERIC_TEXT_OPTIONS as q, computeInitialWidthPoint as qt, CONTROL_MEASURE_IDS as r, DEFAULT_GENERIC_C2_LINE_OPTIONS as rt, getControlMeasureMetadataByValue as s, DEFAULT_BLOCK_ARROW_OPTIONS as st, renderControlMeasure as t, DEFAULT_BREACH_OPTIONS as tt, DEFAULT_TURNING_MOVEMENT_OPTIONS as u, DEFAULT_ATTACK_HELICOPTER_OPTIONS as ut, DEFAULT_OBSTACLE_BYPASS_IMPOSSIBLE_OPTIONS as v, DEFAULT_DIRECTION_OF_MAIN_ATTACK_OPTIONS as vt, DEFAULT_SCREEN_OPTIONS as w, DEFAULT_AMBUSH_OPTIONS as wt, DEFAULT_MAIN_ATTACK_OPTIONS as x, canonicalTextAmplifierKey as xt, DEFAULT_OBSTACLE_BYPASS_EASY_OPTIONS as y, DEFAULT_DIRECTION_OF_ATTACK_AVIATION_OPTIONS as yt, DEFAULT_DISRUPT_OPTIONS as z, blockDrawRule as zt };
package/media/breach.svg CHANGED
@@ -1 +1 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Breach"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M17.28 35.72 L10.00 43.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M13.64 39.36 L13.64 5.00 L41.13 5.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M54.87 5.00 L82.36 5.00 L82.36 39.36" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M78.72 35.72 L86.00 43.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><g transform="rotate(-270.000 48.000 5.000)"><text x="48" y="5" fill="#1e293b" font-family="sans-serif" font-size="11" font-weight="600" text-anchor="middle" dominant-baseline="central">B</text></g></svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Breach"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M17.28 35.72 L10.00 43.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M13.64 39.36 L13.64 5.00 L41.13 5.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M54.87 5.00 L82.36 5.00 L82.36 39.36" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M78.72 35.72 L86.00 43.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><g transform="rotate(270.000 48.000 5.000)"><text x="48" y="5" fill="#1e293b" font-family="sans-serif" font-size="11" font-weight="600" text-anchor="middle" dominant-baseline="central">B</text></g></svg>
package/media/bypass.svg CHANGED
@@ -1 +1 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Bypass"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M14.56 33.88 L10.00 43.00 L5.44 33.88" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M10.00 43.00 L10.00 5.00 L40.40 5.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M55.60 5.00 L86.00 5.00 L86.00 43.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M90.56 33.88 L86.00 43.00 L81.44 33.88" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><g transform="rotate(-270.000 48.000 5.000)"><text x="48" y="5" fill="#1e293b" font-family="sans-serif" font-size="11" font-weight="600" text-anchor="middle" dominant-baseline="central">B</text></g></svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Bypass"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M14.56 33.88 L10.00 43.00 L5.44 33.88" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M10.00 43.00 L10.00 5.00 L40.40 5.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M55.60 5.00 L86.00 5.00 L86.00 43.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M90.56 33.88 L86.00 43.00 L81.44 33.88" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><g transform="rotate(270.000 48.000 5.000)"><text x="48" y="5" fill="#1e293b" font-family="sans-serif" font-size="11" font-weight="600" text-anchor="middle" dominant-baseline="central">B</text></g></svg>
@@ -1 +1 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Canalize"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M17.28 43.00 L10.00 35.72" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M13.64 39.36 L13.64 5.00 L41.13 5.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M54.87 5.00 L82.36 5.00 L82.36 39.36" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M78.72 43.00 L86.00 35.72" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><g transform="rotate(-270.000 48.000 5.000)"><text x="48" y="5" fill="#1e293b" font-family="sans-serif" font-size="11" font-weight="600" text-anchor="middle" dominant-baseline="central">C</text></g></svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Canalize"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M17.28 43.00 L10.00 35.72" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M13.64 39.36 L13.64 5.00 L41.13 5.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M54.87 5.00 L82.36 5.00 L82.36 39.36" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M78.72 43.00 L86.00 35.72" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><g transform="rotate(270.000 48.000 5.000)"><text x="48" y="5" fill="#1e293b" font-family="sans-serif" font-size="11" font-weight="600" text-anchor="middle" dominant-baseline="central">C</text></g></svg>
package/media/clear.svg CHANGED
@@ -1 +1 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Clear"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M10.00 43.00 L86.00 43.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M21.40 5.00 L21.40 43.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M29.00 31.60 L21.40 43.00 L13.80 31.60" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M48.00 5.00 L48.00 20.20" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M48.00 27.80 L48.00 43.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M55.60 31.60 L48.00 43.00 L40.40 31.60" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M74.60 5.00 L74.60 43.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M82.20 31.60 L74.60 43.00 L67.00 31.60" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><g transform="rotate(-270.000 48.000 24.000)"><text x="48" y="24" fill="#1e293b" font-family="sans-serif" font-size="11" font-weight="600" text-anchor="middle" dominant-baseline="central">C</text></g></svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Clear"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M10.00 43.00 L86.00 43.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M21.40 5.00 L21.40 43.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M29.00 31.60 L21.40 43.00 L13.80 31.60" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M48.00 5.00 L48.00 20.20" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M48.00 27.80 L48.00 43.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M55.60 31.60 L48.00 43.00 L40.40 31.60" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M74.60 5.00 L74.60 43.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M82.20 31.60 L74.60 43.00 L67.00 31.60" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><g transform="rotate(270.000 48.000 24.000)"><text x="48" y="24" fill="#1e293b" font-family="sans-serif" font-size="11" font-weight="600" text-anchor="middle" dominant-baseline="central">C</text></g></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Counterattack"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M22.52 28.43 L37.64 17.09 L62.45 10.89 L60.97 5.00 L73.48 17.51 L68.33 34.45 L66.86 28.55 L45.62 33.86 L33.45 43.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-dasharray="6 4" stroke-linejoin="round" stroke-linecap="round"/><g transform="rotate(345.964 64.652 19.720)"><text x="64.65201772242845" y="19.72039276733325" fill="#1e293b" font-family="sans-serif" font-size="3.270106540501366" font-weight="600" text-anchor="middle" dominant-baseline="central">CATK 1</text></g></svg>
@@ -1 +1 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Frontal Attack"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M22.92 29.72 L36.71 19.38 L59.32 13.72 L57.98 8.36 L69.39 19.76 L64.69 35.20 L63.35 29.83 L43.99 34.67 L32.89 43.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M65.70 5.00 L73.08 34.53" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><g transform="rotate(-345.964 65.762 20.669)"><text x="65.76168122270742" y="20.66877729257642" fill="#1e293b" font-family="sans-serif" font-size="2.9812947292278293" font-weight="600" text-anchor="middle" dominant-baseline="central">A</text></g><g transform="rotate(-323.130 35.341 30.779)"><text x="35.34093886462882" y="30.778602620087334" fill="#1e293b" font-family="sans-serif" font-size="2.9812947292278293" font-weight="600" text-anchor="middle" dominant-baseline="central">FOX</text></g><g transform="rotate(-345.964 47.226 23.614)"><text x="47.22631004366812" y="23.61419213973799" fill="#1e293b" font-family="sans-serif" font-size="2.9812947292278293" font-weight="600" text-anchor="middle" dominant-baseline="central">080400Z</text></g><g transform="rotate(-345.964 48.023 26.796)"><text x="48.02281659388646" y="26.796069868995634" fill="#1e293b" font-family="sans-serif" font-size="2.9812947292278293" font-weight="600" text-anchor="middle" dominant-baseline="central">120300Z</text></g></svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Frontal Attack"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M22.92 29.72 L36.71 19.38 L59.32 13.72 L57.98 8.36 L69.39 19.76 L64.69 35.20 L63.35 29.83 L43.99 34.67 L32.89 43.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M65.70 5.00 L73.08 34.53" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><g transform="rotate(345.964 65.762 20.669)"><text x="65.76168122270742" y="20.66877729257642" fill="#1e293b" font-family="sans-serif" font-size="2.9812947292278293" font-weight="600" text-anchor="middle" dominant-baseline="central">A</text></g><g transform="rotate(323.130 35.341 30.779)"><text x="35.34093886462882" y="30.778602620087334" fill="#1e293b" font-family="sans-serif" font-size="2.9812947292278293" font-weight="600" text-anchor="middle" dominant-baseline="central">FOX</text></g><g transform="rotate(345.964 47.226 23.614)"><text x="47.22631004366812" y="23.61419213973799" fill="#1e293b" font-family="sans-serif" font-size="2.9812947292278293" font-weight="600" text-anchor="middle" dominant-baseline="central">080400Z</text></g><g transform="rotate(345.964 48.023 26.796)"><text x="48.02281659388646" y="26.796069868995634" fill="#1e293b" font-family="sans-serif" font-size="2.9812947292278293" font-weight="600" text-anchor="middle" dominant-baseline="central">120300Z</text></g></svg>
@@ -1 +1 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Limited Access Area"><defs><pattern id="hachure" width="8" height="8" patternUnits="userSpaceOnUse"><path d="M-1,-1 L9,9 M7,-1 L9,1 M-1,7 L1,9" fill="none" stroke="#1e293b" stroke-width="1.25"/></pattern><pattern id="backhachure" width="8" height="8" patternUnits="userSpaceOnUse"><path d="M9,-1 L-1,9 M1,-1 L-1,1 M9,7 L7,9" fill="none" stroke="#1e293b" stroke-width="1.25"/></pattern><pattern id="cross" width="8" height="8" patternUnits="userSpaceOnUse"><path d="M-1,-1 L9,9 M7,-1 L9,1 M-1,7 L1,9" fill="none" stroke="#1e293b" stroke-width="1.25"/><path d="M9,-1 L-1,9 M1,-1 L-1,1 M9,7 L7,9" fill="none" stroke="#1e293b" stroke-width="1.25"/></pattern></defs><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M10.00 43.00 L86.00 43.00 L86.00 5.00 L10.00 5.00 L10.00 43.00 Z" fill="url(#backhachure)" fill-opacity="1" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round"/><g transform="rotate(0.000 48.000 24.000)"><rect x="38.90470715055695" y="18.72296083363277" width="18.190585698886096" height="10.55407833273446" rx="1.5" fill="#f8fafc"/><text x="48" y="24" fill="#1e293b" font-family="sans-serif" font-size="6.554078332734459" font-weight="600" text-anchor="middle" dominant-baseline="central">LAA</text></g></svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Limited Access Area"><defs><pattern id="hatch" width="8" height="8" patternUnits="userSpaceOnUse"><path d="M-1,-1 L9,9 M7,-1 L9,1 M-1,7 L1,9" fill="none" stroke="#1e293b" stroke-width="1.25"/></pattern><pattern id="reverse-hatch" width="8" height="8" patternUnits="userSpaceOnUse"><path d="M9,-1 L-1,9 M1,-1 L-1,1 M9,7 L7,9" fill="none" stroke="#1e293b" stroke-width="1.25"/></pattern><pattern id="cross-hatch" width="8" height="8" patternUnits="userSpaceOnUse"><path d="M-1,-1 L9,9 M7,-1 L9,1 M-1,7 L1,9" fill="none" stroke="#1e293b" stroke-width="1.25"/><path d="M9,-1 L-1,9 M1,-1 L-1,1 M9,7 L7,9" fill="none" stroke="#1e293b" stroke-width="1.25"/></pattern><pattern id="horizontal" width="8" height="8" patternUnits="userSpaceOnUse"><path d="M-1,4 L9,4" fill="none" stroke="#1e293b" stroke-width="1.25"/></pattern><pattern id="vertical" width="8" height="8" patternUnits="userSpaceOnUse"><path d="M4,-1 L4,9" fill="none" stroke="#1e293b" stroke-width="1.25"/></pattern><pattern id="dots" width="8" height="8" patternUnits="userSpaceOnUse"><circle cx="4" cy="4" r="1.25" fill="#1e293b"/></pattern></defs><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M10.00 43.00 L86.00 43.00 L86.00 5.00 L10.00 5.00 L10.00 43.00 Z" fill="url(#reverse-hatch)" fill-opacity="1" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round"/><g transform="rotate(0.000 48.000 24.000)"><rect x="38.90470715055695" y="18.72296083363277" width="18.190585698886096" height="10.55407833273446" rx="1.5" fill="#f8fafc"/><text x="48" y="24" fill="#1e293b" font-family="sans-serif" font-size="6.554078332734459" font-weight="600" text-anchor="middle" dominant-baseline="central">LAA</text></g></svg>
@@ -1 +1 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="No Fire Area (NFA) – Irregular"><defs><pattern id="hachure" width="8" height="8" patternUnits="userSpaceOnUse"><path d="M-1,-1 L9,9 M7,-1 L9,1 M-1,7 L1,9" fill="none" stroke="#1e293b" stroke-width="1.25"/></pattern><pattern id="backhachure" width="8" height="8" patternUnits="userSpaceOnUse"><path d="M9,-1 L-1,9 M1,-1 L-1,1 M9,7 L7,9" fill="none" stroke="#1e293b" stroke-width="1.25"/></pattern><pattern id="cross" width="8" height="8" patternUnits="userSpaceOnUse"><path d="M-1,-1 L9,9 M7,-1 L9,1 M-1,7 L1,9" fill="none" stroke="#1e293b" stroke-width="1.25"/><path d="M9,-1 L-1,9 M1,-1 L-1,1 M9,7 L7,9" fill="none" stroke="#1e293b" stroke-width="1.25"/></pattern></defs><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M14.96 29.78 L29.83 43.00 L69.48 41.35 L81.04 19.87 L62.87 5.00 L31.48 8.30 L14.96 29.78 Z" fill="url(#backhachure)" fill-opacity="1" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round"/><g transform="rotate(0.000 48.687 16.777)"><rect x="41.71211335905889" y="12.639496195847459" width="13.95038197753441" height="8.27439891265291" rx="1.5" fill="#f8fafc"/><text x="48.68730434782609" y="16.776695652173913" fill="#1e293b" font-family="sans-serif" font-size="4.2743989126529085" font-weight="600" text-anchor="middle" dominant-baseline="central">NFA</text></g><g transform="rotate(0.000 48.687 24.899)"><rect x="43.550104891499636" y="20.761583152369198" width="10.27439891265291" height="8.27439891265291" rx="1.5" fill="#f8fafc"/><text x="48.68730434782609" y="24.898782608695655" fill="#1e293b" font-family="sans-serif" font-size="4.2743989126529085" font-weight="600" text-anchor="middle" dominant-baseline="central">T</text></g><g transform="rotate(0.000 40.995 33.021)"><rect x="33.720383696042745" y="28.883670108890932" width="10.27439891265291" height="8.27439891265291" rx="1.5" fill="#f8fafc"/><text x="40.99478260869566" y="33.02086956521739" fill="#1e293b" font-family="sans-serif" font-size="4.2743989126529085" font-weight="600" text-anchor="end" dominant-baseline="central">W</text></g><g transform="rotate(0.000 48.687 33.021)"><rect x="43.550104891499636" y="28.883670108890932" width="10.27439891265291" height="8.27439891265291" rx="1.5" fill="#f8fafc"/><text x="48.68730434782609" y="33.02086956521739" fill="#1e293b" font-family="sans-serif" font-size="4.2743989126529085" font-weight="600" text-anchor="middle" dominant-baseline="central">–</text></g><g transform="rotate(0.000 56.380 33.021)"><rect x="53.37982608695653" y="28.883670108890932" width="11.300254651689606" height="8.27439891265291" rx="1.5" fill="#f8fafc"/><text x="56.37982608695653" y="33.02086956521739" fill="#1e293b" font-family="sans-serif" font-size="4.2743989126529085" font-weight="600" text-anchor="start" dominant-baseline="central">W1</text></g></svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="No Fire Area (NFA) – Irregular"><defs><pattern id="hatch" width="8" height="8" patternUnits="userSpaceOnUse"><path d="M-1,-1 L9,9 M7,-1 L9,1 M-1,7 L1,9" fill="none" stroke="#1e293b" stroke-width="1.25"/></pattern><pattern id="reverse-hatch" width="8" height="8" patternUnits="userSpaceOnUse"><path d="M9,-1 L-1,9 M1,-1 L-1,1 M9,7 L7,9" fill="none" stroke="#1e293b" stroke-width="1.25"/></pattern><pattern id="cross-hatch" width="8" height="8" patternUnits="userSpaceOnUse"><path d="M-1,-1 L9,9 M7,-1 L9,1 M-1,7 L1,9" fill="none" stroke="#1e293b" stroke-width="1.25"/><path d="M9,-1 L-1,9 M1,-1 L-1,1 M9,7 L7,9" fill="none" stroke="#1e293b" stroke-width="1.25"/></pattern><pattern id="horizontal" width="8" height="8" patternUnits="userSpaceOnUse"><path d="M-1,4 L9,4" fill="none" stroke="#1e293b" stroke-width="1.25"/></pattern><pattern id="vertical" width="8" height="8" patternUnits="userSpaceOnUse"><path d="M4,-1 L4,9" fill="none" stroke="#1e293b" stroke-width="1.25"/></pattern><pattern id="dots" width="8" height="8" patternUnits="userSpaceOnUse"><circle cx="4" cy="4" r="1.25" fill="#1e293b"/></pattern></defs><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M14.96 29.78 L29.83 43.00 L69.48 41.35 L81.04 19.87 L62.87 5.00 L31.48 8.30 L14.96 29.78 Z" fill="url(#reverse-hatch)" fill-opacity="1" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round"/><g transform="rotate(0.000 48.687 16.777)"><rect x="41.71211335905889" y="12.639496195847459" width="13.95038197753441" height="8.27439891265291" rx="1.5" fill="#f8fafc"/><text x="48.68730434782609" y="16.776695652173913" fill="#1e293b" font-family="sans-serif" font-size="4.2743989126529085" font-weight="600" text-anchor="middle" dominant-baseline="central">NFA</text></g><g transform="rotate(0.000 48.687 24.899)"><rect x="43.550104891499636" y="20.761583152369198" width="10.27439891265291" height="8.27439891265291" rx="1.5" fill="#f8fafc"/><text x="48.68730434782609" y="24.898782608695655" fill="#1e293b" font-family="sans-serif" font-size="4.2743989126529085" font-weight="600" text-anchor="middle" dominant-baseline="central">T</text></g><g transform="rotate(0.000 40.995 33.021)"><rect x="33.720383696042745" y="28.883670108890932" width="10.27439891265291" height="8.27439891265291" rx="1.5" fill="#f8fafc"/><text x="40.99478260869566" y="33.02086956521739" fill="#1e293b" font-family="sans-serif" font-size="4.2743989126529085" font-weight="600" text-anchor="end" dominant-baseline="central">W</text></g><g transform="rotate(0.000 48.687 33.021)"><rect x="43.550104891499636" y="28.883670108890932" width="10.27439891265291" height="8.27439891265291" rx="1.5" fill="#f8fafc"/><text x="48.68730434782609" y="33.02086956521739" fill="#1e293b" font-family="sans-serif" font-size="4.2743989126529085" font-weight="600" text-anchor="middle" dominant-baseline="central">–</text></g><g transform="rotate(0.000 56.380 33.021)"><rect x="53.37982608695653" y="28.883670108890932" width="11.300254651689606" height="8.27439891265291" rx="1.5" fill="#f8fafc"/><text x="56.37982608695653" y="33.02086956521739" fill="#1e293b" font-family="sans-serif" font-size="4.2743989126529085" font-weight="600" text-anchor="start" dominant-baseline="central">W1</text></g></svg>
@@ -1 +1 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Turning Movement"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M27.99 25.20 L41.03 15.42 L62.42 10.08 L61.15 5.00 L71.94 15.79 L67.49 30.39 L66.22 25.31 L47.91 29.89 L37.41 37.77" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M24.06 19.97 L41.34 43.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><g transform="rotate(-345.964 68.507 16.645)"><text x="68.50665978316985" y="16.645224574083635" fill="#1e293b" font-family="sans-serif" font-size="2.81968608360629" font-weight="600" text-anchor="middle" dominant-baseline="central">T</text></g><g transform="rotate(-323.130 39.735 26.207)"><text x="39.73495095508518" y="26.207021166752714" fill="#1e293b" font-family="sans-serif" font-size="2.81968608360629" font-weight="600" text-anchor="middle" dominant-baseline="central">DAVID</text></g><g transform="rotate(-345.964 50.976 19.431)"><text x="50.97604543107899" y="19.430975735673723" fill="#1e293b" font-family="sans-serif" font-size="2.81968608360629" font-weight="600" text-anchor="middle" dominant-baseline="central">080400Z</text></g><g transform="rotate(-345.964 51.729 22.440)"><text x="51.72937532266391" y="22.440371708828085" fill="#1e293b" font-family="sans-serif" font-size="2.81968608360629" font-weight="600" text-anchor="middle" dominant-baseline="central">120300Z</text></g></svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Turning Movement"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M27.99 25.20 L41.03 15.42 L62.42 10.08 L61.15 5.00 L71.94 15.79 L67.49 30.39 L66.22 25.31 L47.91 29.89 L37.41 37.77" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M24.06 19.97 L41.34 43.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><g transform="rotate(345.964 68.507 16.645)"><text x="68.50665978316985" y="16.645224574083635" fill="#1e293b" font-family="sans-serif" font-size="2.81968608360629" font-weight="600" text-anchor="middle" dominant-baseline="central">T</text></g><g transform="rotate(323.130 39.735 26.207)"><text x="39.73495095508518" y="26.207021166752714" fill="#1e293b" font-family="sans-serif" font-size="2.81968608360629" font-weight="600" text-anchor="middle" dominant-baseline="central">DAVID</text></g><g transform="rotate(345.964 50.976 19.431)"><text x="50.97604543107899" y="19.430975735673723" fill="#1e293b" font-family="sans-serif" font-size="2.81968608360629" font-weight="600" text-anchor="middle" dominant-baseline="central">080400Z</text></g><g transform="rotate(345.964 51.729 22.440)"><text x="51.72937532266391" y="22.440371708828085" fill="#1e293b" font-family="sans-serif" font-size="2.81968608360629" font-weight="600" text-anchor="middle" dominant-baseline="central">120300Z</text></g></svg>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orbat-mapper/control-measures",
3
- "version": "0.2.0-alpha.32",
3
+ "version": "0.2.0-alpha.33",
4
4
  "description": "Library for drawing tactical graphics and control measures according to MIL-STD-2525 and APP-6 standards.",
5
5
  "license": "MIT",
6
6
  "author": "Orbat Mapper",