@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 +1 -0
- package/dist/{index-Do8cc_Wv.d.mts → index-DtgRm_dz.d.mts} +57 -2
- package/dist/index.d.mts +2 -2
- package/dist/index.mjs +2 -2
- package/dist/preview/index.d.mts +7 -5
- package/dist/preview/index.mjs +9 -7
- package/dist/{renderControlMeasure-1-LCyEFc.mjs → renderControlMeasure-CAfC2nEw.mjs} +411 -72
- package/media/breach.svg +1 -1
- package/media/bypass.svg +1 -1
- package/media/canalize.svg +1 -1
- package/media/clear.svg +1 -1
- package/media/counterattack.svg +1 -0
- package/media/frontal-attack.svg +1 -1
- package/media/limited-access-area.svg +1 -1
- package/media/no-fire-area-irregular.svg +1 -1
- package/media/turning-movement.svg +1 -1
- package/package.json +1 -1
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
|
-
|
|
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 $,
|
|
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
|
|
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
|
|
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 };
|
package/dist/preview/index.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
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
|
|
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
|
-
*
|
|
150
|
-
*
|
|
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
|
package/dist/preview/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as DEFINITIONS, t as renderControlMeasure } from "../renderControlMeasure-
|
|
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
|
|
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 :
|
|
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
|
-
*
|
|
285
|
-
*
|
|
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(${(
|
|
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
|
-
|
|
10115
|
-
|
|
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
|
|
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: [
|
|
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:
|
|
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 {
|
|
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(
|
|
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(
|
|
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>
|
package/media/canalize.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="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(
|
|
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(
|
|
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>
|
package/media/frontal-attack.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="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(
|
|
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="
|
|
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="
|
|
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(
|
|
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.
|
|
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",
|