@orbat-mapper/control-measures 0.13.0 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/dist/{index-BzMR6vIE.d.mts → index-DFZ2BoXt.d.mts} +29 -2
- package/dist/index.d.mts +2 -2
- package/dist/index.mjs +2 -2
- package/dist/preview/index.d.mts +15 -3
- package/dist/preview/index.mjs +4 -10
- package/dist/{renderControlMeasure-YkkjLyTx.mjs → renderControlMeasure-qnu0Feey.mjs} +219 -102
- package/media/infiltration-lane.svg +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -121,6 +121,7 @@ code.
|
|
|
121
121
|
| <img src="media/direction-of-main-attack.svg" width="96" height="48" alt=""> | `direction-of-main-attack` | Direction of Main Attack | `140602` |
|
|
122
122
|
| <img src="media/direction-of-supporting-attack.svg" width="96" height="48" alt=""> | `direction-of-supporting-attack` | Direction of Supporting Attack | `140603` |
|
|
123
123
|
| <img src="media/final-coordination-line.svg" width="96" height="48" alt=""> | `final-coordination-line` | Final coordination line | `140700` |
|
|
124
|
+
| <img src="media/infiltration-lane.svg" width="96" height="48" alt=""> | `infiltration-lane` | Infiltration Lane | `140800` |
|
|
124
125
|
| <img src="media/limit-of-advance.svg" width="96" height="48" alt=""> | `limit-of-advance` | Limit of advance | `140900` |
|
|
125
126
|
| <img src="media/line-of-departure.svg" width="96" height="48" alt=""> | `line-of-departure` | Line of departure | `141000` |
|
|
126
127
|
| <img src="media/line-of-departure-contact.svg" width="96" height="48" alt=""> | `line-of-departure-contact` | Line of departure / line of contact | `141100` |
|
|
@@ -225,7 +225,7 @@ declare function normalizeTextAmplifiers(input: TextAmplifiers | undefined): Can
|
|
|
225
225
|
//#region src/metadata.d.ts
|
|
226
226
|
type ControlMeasureGeometryType = Geometry["type"];
|
|
227
227
|
type ControlMeasureGeometry = "point" | "line" | "area";
|
|
228
|
-
declare const DRAW_RULE_IDS: readonly ["Area1", "Area5", "Area6", "Area7", "Area8", "Area11", "Area12", "Area15", "Area17", "Area21", "Area27", "Axis1", "Line1", "Line3", "Line9", "Line10", "Line11", "Line23", "Line24", "Line26", "Line27", "Line29", "Line31", "Line32", "Point1", "Point2", "Point12", "Point18", "Rectangle", "Sector"];
|
|
228
|
+
declare const DRAW_RULE_IDS: readonly ["Area1", "Area5", "Area6", "Area7", "Area8", "Area11", "Area12", "Area15", "Area17", "Area21", "Area27", "Axis1", "Line1", "Line3", "Line9", "Line10", "Line11", "Line23", "Line24", "Line26", "Line27", "Line29", "Line31", "Line32", "Point1", "Point2", "Point12", "Point18", "Polyline1", "Rectangle", "Sector"];
|
|
229
229
|
type DrawRuleId = (typeof DRAW_RULE_IDS)[number];
|
|
230
230
|
declare const PARAMETER_PRESENTATION_TIERS: readonly ["primary", "standard", "advanced"];
|
|
231
231
|
type ParameterPresentationTier = (typeof PARAMETER_PRESENTATION_TIERS)[number];
|
|
@@ -2129,6 +2129,12 @@ interface FinalCoordinationLineOptions extends LineLabelOptions, SmoothLineOptio
|
|
|
2129
2129
|
/** Creates a Final coordination line labeled "FCL" above both ends. */
|
|
2130
2130
|
declare function createFinalCoordinationLine(positions: Position[], options?: FinalCoordinationLineOptions, textAmplifiers?: CanonicalTextAmplifiers, context?: ControlMeasureGeneratorContext): FeatureCollection<LineString | Point>;
|
|
2131
2131
|
//#endregion
|
|
2132
|
+
//#region src/generators/cm14-maneuver-lines/infiltration-lane.d.ts
|
|
2133
|
+
interface InfiltrationLaneOptions extends LabelSizeOptions, SmoothLineOptions {}
|
|
2134
|
+
declare const DEFAULT_INFILTRATION_LANE_OPTIONS: InfiltrationLaneOptions;
|
|
2135
|
+
/** Creates the two parallel boundaries and centered Field T lane designation. */
|
|
2136
|
+
declare function createInfiltrationLane(coordinates: Position[], options?: InfiltrationLaneOptions, textAmplifiers?: CanonicalTextAmplifiers): FeatureCollection<MultiLineString | Point>;
|
|
2137
|
+
//#endregion
|
|
2132
2138
|
//#region src/generators/cm14-maneuver-lines/airhead-line.d.ts
|
|
2133
2139
|
/** Configuration options for the Airhead line control measure. */
|
|
2134
2140
|
type AirheadLineOptions = LabeledAreaOptions;
|
|
@@ -3083,6 +3089,7 @@ declare const DEFINITIONS: {
|
|
|
3083
3089
|
"forward-edge-of-battle-area": ControlMeasureDefinition<"forward-edge-of-battle-area", typeof createForwardEdgeOfBattleArea>;
|
|
3084
3090
|
"bridgehead-line": ControlMeasureDefinition<"bridgehead-line", typeof createBridgeheadLine>;
|
|
3085
3091
|
"final-coordination-line": ControlMeasureDefinition<"final-coordination-line", typeof createFinalCoordinationLine>;
|
|
3092
|
+
"infiltration-lane": ControlMeasureDefinition<"infiltration-lane", typeof createInfiltrationLane>;
|
|
3086
3093
|
"airhead-line": ControlMeasureDefinition<"airhead-line", typeof createAirheadLine>;
|
|
3087
3094
|
"holding-line": ControlMeasureDefinition<"holding-line", typeof createHoldingLine>;
|
|
3088
3095
|
"release-line": ControlMeasureDefinition<"release-line", typeof createReleaseLine>;
|
|
@@ -3368,6 +3375,15 @@ interface MidpointPerpendicularDrawRuleOptions {
|
|
|
3368
3375
|
* endpoints.
|
|
3369
3376
|
*/
|
|
3370
3377
|
constrainedIndex?: 0 | 2;
|
|
3378
|
+
/**
|
|
3379
|
+
* Let the baseline carry extra vertices between PT2 and the constrained
|
|
3380
|
+
* point. The constrained slot then follows the array's last index
|
|
3381
|
+
* (`trailingFixedSlots: 1`) instead of a fixed `canonicalPointCount`, so
|
|
3382
|
+
* edits can insert spine vertices ahead of it. Polyline1 (Infiltration Lane)
|
|
3383
|
+
* uses this: PT1..PTN-1 are the centerline and PTN is the width handle.
|
|
3384
|
+
* Requires the default `constrainedIndex` of `2`.
|
|
3385
|
+
*/
|
|
3386
|
+
variableLength?: boolean;
|
|
3371
3387
|
/** Frame origin for the perpendicular axis. Defaults to `"midpoint"`. */
|
|
3372
3388
|
origin?: BaselineFrameOrigin;
|
|
3373
3389
|
/** Side the positive normal points to. Defaults to `"right"`. */
|
|
@@ -3532,6 +3548,17 @@ declare const line26DrawRule: ControlMeasureDrawRule;
|
|
|
3532
3548
|
*/
|
|
3533
3549
|
declare const line27DrawRule: ControlMeasureDrawRule;
|
|
3534
3550
|
//#endregion
|
|
3551
|
+
//#region src/draw-rules/polyline1.d.ts
|
|
3552
|
+
/**
|
|
3553
|
+
* Polyline1 anchors for the Infiltration Lane.
|
|
3554
|
+
*
|
|
3555
|
+
* PT1 through PTN-1 form the lane centerline. PTN is the editable width
|
|
3556
|
+
* handle on the perpendicular through the midpoint of PT1/PT2, so its signed
|
|
3557
|
+
* distance from that segment is the lane half-width. The initial two clicks
|
|
3558
|
+
* synthesize PTN; later edits may insert more centerline vertices before it.
|
|
3559
|
+
*/
|
|
3560
|
+
declare const polyline1DrawRule: ControlMeasureDrawRule;
|
|
3561
|
+
//#endregion
|
|
3535
3562
|
//#region src/draw-rules/area8.d.ts
|
|
3536
3563
|
declare const supportByFireDrawRule: ControlMeasureDrawRule;
|
|
3537
3564
|
//#endregion
|
|
@@ -3564,4 +3591,4 @@ interface AmbushOptions {
|
|
|
3564
3591
|
}
|
|
3565
3592
|
declare const DEFAULT_AMBUSH_OPTIONS: Required<AmbushOptions>;
|
|
3566
3593
|
//#endregion
|
|
3567
|
-
export {
|
|
3594
|
+
export { CONTROL_MEASURE_IDS as $, ControlMeasureGeometry as $i, DEFAULT_SUPPORT_BY_FIRE_OPTIONS as $n, FinalProtectiveFireOptions as $r, GuardOptions as $t, snapToMidpointPerpendicular as A, Point2D as Ai, LineOfDepartureOptions as An, MainAttackOptions as Ar, DEFAULT_FORTIFIED_AREA_OPTIONS as At, SimpleStyleRender as B, ControlMeasureOptionHandles as Bi, HoldingLineOptions as Bn, DEFAULT_JOINT_TACTICAL_ACTION_AREA_OPTIONS as Br, DEFAULT_WITHDRAW_OPTIONS as Bt, containDrawRule as C, AnchorTransformEvent as Ca, DEFAULT_GENERIC_C2_LINE_OPTIONS as Ci, DEFAULT_BLOCK_MISSION_TASK_OPTIONS as Cn, DEFAULT_BLOCK_ARROW_OPTIONS as Cr, DisruptOptions as Ct, createMidpointPerpendicularDrawRule as D, DEFAULT_LIGHT_LINE_OPTIONS as Di, DEFAULT_LINE_OF_DEPARTURE_CONTACT_OPTIONS as Dn, DEFAULT_SUPPORTING_ATTACK_OPTIONS as Dr, TurningMovementOptions as Dt, computeDefaultMidpointPerpendicularPoint as E, EngineerWorkLineOptions as Ei, ProbableLineOfDeploymentOptions as En, DEFAULT_CLASSIC_ARROW_OPTIONS as Er, DEFAULT_TURNING_MOVEMENT_OPTIONS as Et, createBaselineFrame as F, BoundaryOptions as Fi, DEFAULT_HANDOVER_LINE_OPTIONS as Fn, DEFAULT_PICKUP_ZONE_OPTIONS as Fr, DEFAULT_ANTITANK_WALL_OPTIONS as Ft, applyBoxTransformOptions as G, DEFAULT_LINE_JOIN as Gi, DEFAULT_FORWARD_EDGE_OF_BATTLE_AREA_OPTIONS as Gn, MobileDefenseOptions as Gr, ScreenOptions as Gt, resolveStyleHints as H, DEFAULT_LABEL_HEIGHT_CSS_PIXELS as Hi, InfiltrationLaneOptions as Hn, AssemblyAreaOptions as Hr, DEFAULT_SEIZE_OPTIONS as Ht, EPSILON as I, DEFAULT_BOUNDARY_OPTIONS as Ii, HandoverLineOptions as In, PickupZoneOptions as Ir, AntitankDitchOptions as It, RenderOptions as J, DEFAULT_STROKE_WIDTH_CSS_PIXELS as Ji, PhaseLineOptions as Jn, AreaDefenseOptions as Jr, DEFAULT_REARWARD_PASSAGE_OF_LINES_OPTIONS as Jt, foldsBoxTransformOptions as K, DEFAULT_PORTRAYAL as Ki, ForwardEdgeOfBattleAreaOptions as Kn, DEFAULT_ENGAGEMENT_AREA_OPTIONS as Kr, DEFAULT_RETIRE_OPTIONS as Kt, getMetersPerPixel as L, BoxTransformDelta as Li, DEFAULT_RELEASE_LINE_OPTIONS as Ln, MineType as Lr, DEFAULT_ANTITANK_DITCH_OPTIONS as Lt, BaselineFrameNormal as M, project as Mi, LimitOfAdvanceOptions as Mn, computeInitialWidthPoint as Mr, DEFAULT_FORTIFIED_LINE_OPTIONS as Mt, BaselineFrameOptions as N, sphericalBearing as Ni, BattleHandoverLineOptions as Nn, AreaOfOperationsOptions as Nr, FortifiedLineOptions as Nt, getMidpointPerpendicularSignedDistance as O, LightLineOptions as Oi, LineOfDepartureContactOptions as On, SupportingAttackOptions as Or, DEFAULT_FRONTAL_ATTACK_OPTIONS as Ot, BaselineFrameOrigin as P, unproject as Pi, DEFAULT_BATTLE_HANDOVER_LINE_OPTIONS as Pn, DEFAULT_AREA_OF_OPERATIONS_OPTIONS as Pr, AntitankWallOptions as Pt, isKind as Q, ControlMeasureFillCapability as Qi, DEFAULT_ATTACK_BY_FIRE_OPTIONS as Qn, DEFAULT_FINAL_PROTECTIVE_FIRE_OPTIONS as Qr, DEFAULT_GUARD_OPTIONS as Qt, roundToFixed as R, ControlMeasureOptionHandle as Ri, ReleaseLineOptions as Rn, DEFAULT_LANDING_ZONE_OPTIONS as Rr, DEFAULT_WITHDRAW_UNDER_PRESSURE_OPTIONS as Rt, blockDrawRule as S, resolveAmplifierPlacement as Sa, DEFAULT_BATTLE_POSITION_OPTIONS as Si, BlockMissionTaskOptions as Sn, BlockArrowOptions as Sr, DEFAULT_DISRUPT_OPTIONS as St, MidpointPerpendicularDrawRuleOptions as T, DEFAULT_ENGINEER_WORK_LINE_OPTIONS as Ti, PROBABLE_LINE_OF_DEPLOYMENT_DASH as Tn, ClassicArrowOptions as Tr, DEFAULT_BLOCK_OPTIONS as Tt, dragControlMeasureOptionHandle as U, DEFAULT_LABEL_SIZE_CLAMP_CSS_PIXELS as Ui, BridgeheadLineOptions as Un, DEFAULT_ASSEMBLY_AREA_OPTIONS as Ur, SeizeOptions as Ut, toSimpleStyle as V, ControlMeasureRenderContext as Vi, DEFAULT_INFILTRATION_LANE_OPTIONS as Vn, JointTacticalActionAreaOptions as Vr, WithdrawOptions as Vt, getControlMeasureOptionHandles as W, DEFAULT_LINE_CAP as Wi, DEFAULT_BRIDGEHEAD_LINE_OPTIONS as Wn, DEFAULT_MOBILE_DEFENSE_OPTIONS as Wr, DEFAULT_SCREEN_OPTIONS as Wt, ControlMeasure as X, MeasureTextRequest as Xi, FLOTOptions as Xn, DEFAULT_ENCIRCLEMENT_OPTIONS as Xr, DEFAULT_PENETRATE_OPTIONS as Xt, renderControlMeasure as Y, LogicalTextStyle as Yi, DEFAULT_FLOT_OPTIONS as Yn, DEFAULT_AREA_DEFENSE_OPTIONS as Yr, RearwardPassageOfLinesOptions as Yt, cloneControlMeasure as Z, MeasuredText as Zi, AttackByFireOptions as Zn, EncirclementOptions as Zr, PenetrateOptions as Zt, staticPointDrawRule as _, TextAmplifierField as _a, DEFAULT_STRONG_POINT_OPTIONS as _i, DEFAULT_CANALIZE_OPTIONS as _n, DEFAULT_GENERIC_POLYGON_OPTIONS as _r, TurnOptions as _t, axis1DrawRule as a, ParameterPresentationTier as aa, SECONDARY_DIRECTION_OF_FIRE_DASH as ai, DelayOptions as an, DEFAULT_RADAR_SEARCH_DOCTRINE_OPTIONS as ar, getControlMeasureMetadataByValue as at, centerRadiusDrawRule as b, canonicalTextAmplifierKey as ba, DEFAULT_CONTAIN_OPTIONS as bi, BreachOptions as bn, GenericLineOptions as br, DEFAULT_FIX_OPTIONS as bt, line27DrawRule as c, parameterPresentationTierRank as ca, PrincipalDirectionOfFireOptions as ci, DEFAULT_TACTICAL_ARROW_OPTIONS as cn, RadarSearchDoctrineOptions as cr, DEFAULT_OBSTACLE_BYPASS_IMPOSSIBLE_OPTIONS as ct, line23DrawRule as d, AmplifierPlacement as da, DEFAULT_DIRECTION_OF_MAIN_ATTACK_OPTIONS as di, DEFAULT_COUNTERATTACK_BY_FIRE_OPTIONS as dn, DEFAULT_GENERIC_SECTOR_OPTIONS as dr, ObstacleBypassDifficultOptions as dt, ControlMeasureGeometryType as ea, ControlMeasureRender as ei, DEFAULT_DISRUPT_MISSION_TASK_OPTIONS as en, SupportByFireOptions as er, CONTROL_MEASURE_METADATA as et, turnDrawRule as f, AmplifierPlacements as fa, DirectionOfMainAttackOptions as fi, CounterattackOptions as fn, GenericSectorOptions as fr, DEFAULT_OBSTACLE_BYPASS_EASY_OPTIONS as ft, dynamicPointDrawRule as g, TEXT_AMPLIFIER_FIELDS as ga, RetainOptions as gi, CanalizeOptions as gn, GenericRectangleOptions as gr, DEFAULT_TURN_OPTIONS as gt, attackByFireDrawRule as h, LabelPlacementOverride as ha, DEFAULT_RETAIN_OPTIONS as hi, DEFAULT_CLEAR_OPTIONS as hn, DEFAULT_GENERIC_RECTANGLE_OPTIONS as hr, MinefieldOptions as ht, rectangleDrawRule as i, ParamDescriptor as ia, DEFAULT_SECONDARY_DIRECTION_OF_FIRE_OPTIONS as ii, DEFAULT_DELAY_OPTIONS as in, DEFAULT_AIRBORNE_ATTACK_OPTIONS as ir, getControlMeasureMetadata as it, BaselineFrame as j, haversineDistance as ji, DEFAULT_LIMIT_OF_ADVANCE_OPTIONS as jn, calculateMetrics as jr, FortifiedAreaOptions as jt, pointOnMidpointPerpendicularAxis as k, LabelSizeOptions as ki, DEFAULT_LINE_OF_DEPARTURE_OPTIONS as kn, DEFAULT_MAIN_ATTACK_OPTIONS as kr, FrontalAttackOptions as kt, line26DrawRule as l, resolveParameterPresentationTier as la, DEFAULT_DIRECTION_OF_SUPPORTING_ATTACK_OPTIONS as li, TacticalArrowOptions as ln, DEFAULT_GENERIC_TEXT_OPTIONS as lr, ObstacleBypassImpossibleOptions as lt, ambushDrawRule as m, GeneratedLabelKey as ma, DirectionOfAttackAviationOptions as mi, ClearOptions as mn, GenericCircleOptions as mr, DEFAULT_MINEFIELD_OPTIONS as mt, DEFAULT_AMBUSH_OPTIONS as n, ControlMeasurePaintCapability as na, StyleHints as ni, DEFAULT_DISENGAGE_OPTIONS as nn, DEFAULT_ATTACK_HELICOPTER_OPTIONS as nr, ControlMeasureKind as nt, supportByFireDrawRule as o, ParameterSemanticRole as oa, SecondaryDirectionOfFireOptions as oi, CoverOptions as on, RADAR_SEARCH_DOCTRINE_FILL_COLOR as or, getDefaultOptions as ot, line1DrawRule as p, CanonicalTextAmplifiers as pa, DEFAULT_DIRECTION_OF_ATTACK_AVIATION_OPTIONS as pi, DEFAULT_COUNTERATTACK_OPTIONS as pn, DEFAULT_GENERIC_CIRCLE_OPTIONS as pr, ObstacleBypassEasyOptions as pt, freezeOrientationOptions as q, DEFAULT_STROKE_DASH_CSS_PIXELS as qi, DEFAULT_PHASE_LINE_OPTIONS as qn, EngagementAreaOptions as qr, RetireOptions as qt, sectorDrawRule as r, PARAMETER_PRESENTATION_TIERS as ra, controlMeasureIdFromFeature as ri, DisengageOptions as rn, AirborneAttackOptions as rr, OptionsByKind as rt, polyline1DrawRule as s, TextAmplifierDescriptor as sa, DEFAULT_PRINCIPAL_DIRECTION_OF_FIRE_OPTIONS as si, DEFAULT_COVER_OPTIONS as sn, RADAR_SEARCH_DOCTRINE_STROKE_COLOR as sr, listControlMeasureMetadata as st, AmbushOptions as t, ControlMeasureMetadata as ta, FeaturePartProps as ti, DisruptMissionTaskOptions as tn, AttackHelicopterOptions as tr, ControlMeasureId as tt, line24DrawRule as u, resolveParameterSemanticRole as ua, DirectionOfSupportingAttackOptions as ui, CounterattackByFireOptions as un, GenericTextOptions as ur, DEFAULT_OBSTACLE_BYPASS_DIFFICULT_OPTIONS as ut, point12DrawRule as v, TextAmplifierKey as va, StrongPointOptions as vi, BypassOptions as vn, GenericPolygonOptions as vr, DEFAULT_FIX_MISSION_TASK_OPTIONS as vt, area27DrawRule as w, ControlMeasureDrawRule as wa, GenericC2LineOptions as wi, DEFAULT_PROBABLE_LINE_OF_DEPLOYMENT_OPTIONS as wn, ClassicArrowHeadStyle as wr, BlockOptions as wt, disruptDrawRule as x, normalizeTextAmplifiers as xa, BattlePositionOptions as xi, DEFAULT_BREACH_OPTIONS as xn, BlockArrowHeadStyle as xr, FixOptions as xt, penetrateDrawRule as y, TextAmplifiers as ya, ContainOptions as yi, DEFAULT_BYPASS_OPTIONS as yn, DEFAULT_GENERIC_LINE_OPTIONS as yr, FixMissionTaskOptions as yt, SimpleStyleProps as z, ControlMeasureOptionHandleDragEvent as zi, DEFAULT_HOLDING_LINE_OPTIONS as zn, LandingZoneOptions as zr, WithdrawUnderPressureOptions as zt };
|
package/dist/index.d.mts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { $ as
|
|
1
|
+
import { $ as CONTROL_MEASURE_IDS, $i as ControlMeasureGeometry, $n as DEFAULT_SUPPORT_BY_FIRE_OPTIONS, $r as FinalProtectiveFireOptions, $t as GuardOptions, A as snapToMidpointPerpendicular, Ai as Point2D, An as LineOfDepartureOptions, Ar as MainAttackOptions, At as DEFAULT_FORTIFIED_AREA_OPTIONS, B as SimpleStyleRender, Bi as ControlMeasureOptionHandles, Bn as HoldingLineOptions, Br as DEFAULT_JOINT_TACTICAL_ACTION_AREA_OPTIONS, Bt as DEFAULT_WITHDRAW_OPTIONS, C as containDrawRule, Ca as AnchorTransformEvent, Ci as DEFAULT_GENERIC_C2_LINE_OPTIONS, Cn as DEFAULT_BLOCK_MISSION_TASK_OPTIONS, Cr as DEFAULT_BLOCK_ARROW_OPTIONS, Ct as DisruptOptions, D as createMidpointPerpendicularDrawRule, Di as DEFAULT_LIGHT_LINE_OPTIONS, Dn as DEFAULT_LINE_OF_DEPARTURE_CONTACT_OPTIONS, Dr as DEFAULT_SUPPORTING_ATTACK_OPTIONS, Dt as TurningMovementOptions, E as computeDefaultMidpointPerpendicularPoint, Ei as EngineerWorkLineOptions, En as ProbableLineOfDeploymentOptions, Er as DEFAULT_CLASSIC_ARROW_OPTIONS, Et as DEFAULT_TURNING_MOVEMENT_OPTIONS, F as createBaselineFrame, Fi as BoundaryOptions, Fn as DEFAULT_HANDOVER_LINE_OPTIONS, Fr as DEFAULT_PICKUP_ZONE_OPTIONS, Ft as DEFAULT_ANTITANK_WALL_OPTIONS, G as applyBoxTransformOptions, Gi as DEFAULT_LINE_JOIN, Gn as DEFAULT_FORWARD_EDGE_OF_BATTLE_AREA_OPTIONS, Gr as MobileDefenseOptions, Gt as ScreenOptions, H as resolveStyleHints, Hi as DEFAULT_LABEL_HEIGHT_CSS_PIXELS, Hn as InfiltrationLaneOptions, Hr as AssemblyAreaOptions, Ht as DEFAULT_SEIZE_OPTIONS, I as EPSILON, Ii as DEFAULT_BOUNDARY_OPTIONS, In as HandoverLineOptions, Ir as PickupZoneOptions, It as AntitankDitchOptions, J as RenderOptions, Ji as DEFAULT_STROKE_WIDTH_CSS_PIXELS, Jn as PhaseLineOptions, Jr as AreaDefenseOptions, Jt as DEFAULT_REARWARD_PASSAGE_OF_LINES_OPTIONS, K as foldsBoxTransformOptions, Ki as DEFAULT_PORTRAYAL, Kn as ForwardEdgeOfBattleAreaOptions, Kr as DEFAULT_ENGAGEMENT_AREA_OPTIONS, Kt as DEFAULT_RETIRE_OPTIONS, L as getMetersPerPixel, Li as BoxTransformDelta, Ln as DEFAULT_RELEASE_LINE_OPTIONS, Lr as MineType, Lt as DEFAULT_ANTITANK_DITCH_OPTIONS, M as BaselineFrameNormal, Mi as project, Mn as LimitOfAdvanceOptions, Mr as computeInitialWidthPoint, Mt as DEFAULT_FORTIFIED_LINE_OPTIONS, N as BaselineFrameOptions, Ni as sphericalBearing, Nn as BattleHandoverLineOptions, Nr as AreaOfOperationsOptions, Nt as FortifiedLineOptions, O as getMidpointPerpendicularSignedDistance, Oi as LightLineOptions, On as LineOfDepartureContactOptions, Or as SupportingAttackOptions, Ot as DEFAULT_FRONTAL_ATTACK_OPTIONS, P as BaselineFrameOrigin, Pi as unproject, Pn as DEFAULT_BATTLE_HANDOVER_LINE_OPTIONS, Pr as DEFAULT_AREA_OF_OPERATIONS_OPTIONS, Pt as AntitankWallOptions, Q as isKind, Qi as ControlMeasureFillCapability, Qn as DEFAULT_ATTACK_BY_FIRE_OPTIONS, Qr as DEFAULT_FINAL_PROTECTIVE_FIRE_OPTIONS, Qt as DEFAULT_GUARD_OPTIONS, R as roundToFixed, Ri as ControlMeasureOptionHandle, Rn as ReleaseLineOptions, Rr as DEFAULT_LANDING_ZONE_OPTIONS, Rt as DEFAULT_WITHDRAW_UNDER_PRESSURE_OPTIONS, S as blockDrawRule, Sa as resolveAmplifierPlacement, Si as DEFAULT_BATTLE_POSITION_OPTIONS, Sn as BlockMissionTaskOptions, Sr as BlockArrowOptions, St as DEFAULT_DISRUPT_OPTIONS, T as MidpointPerpendicularDrawRuleOptions, Ti as DEFAULT_ENGINEER_WORK_LINE_OPTIONS, Tn as PROBABLE_LINE_OF_DEPLOYMENT_DASH, Tr as ClassicArrowOptions, Tt as DEFAULT_BLOCK_OPTIONS, U as dragControlMeasureOptionHandle, Ui as DEFAULT_LABEL_SIZE_CLAMP_CSS_PIXELS, Un as BridgeheadLineOptions, Ur as DEFAULT_ASSEMBLY_AREA_OPTIONS, Ut as SeizeOptions, V as toSimpleStyle, Vi as ControlMeasureRenderContext, Vn as DEFAULT_INFILTRATION_LANE_OPTIONS, Vr as JointTacticalActionAreaOptions, Vt as WithdrawOptions, W as getControlMeasureOptionHandles, Wi as DEFAULT_LINE_CAP, Wn as DEFAULT_BRIDGEHEAD_LINE_OPTIONS, Wr as DEFAULT_MOBILE_DEFENSE_OPTIONS, Wt as DEFAULT_SCREEN_OPTIONS, X as ControlMeasure, Xi as MeasureTextRequest, Xn as FLOTOptions, Xr as DEFAULT_ENCIRCLEMENT_OPTIONS, Xt as DEFAULT_PENETRATE_OPTIONS, Y as renderControlMeasure, Yi as LogicalTextStyle, Yn as DEFAULT_FLOT_OPTIONS, Yr as DEFAULT_AREA_DEFENSE_OPTIONS, Yt as RearwardPassageOfLinesOptions, Z as cloneControlMeasure, Zi as MeasuredText, Zn as AttackByFireOptions, Zr as EncirclementOptions, Zt as PenetrateOptions, _ as staticPointDrawRule, _a as TextAmplifierField, _i as DEFAULT_STRONG_POINT_OPTIONS, _n as DEFAULT_CANALIZE_OPTIONS, _r as DEFAULT_GENERIC_POLYGON_OPTIONS, _t as TurnOptions, a as axis1DrawRule, aa as ParameterPresentationTier, ai as SECONDARY_DIRECTION_OF_FIRE_DASH, an as DelayOptions, ar as DEFAULT_RADAR_SEARCH_DOCTRINE_OPTIONS, at as getControlMeasureMetadataByValue, b as centerRadiusDrawRule, ba as canonicalTextAmplifierKey, bi as DEFAULT_CONTAIN_OPTIONS, bn as BreachOptions, br as GenericLineOptions, bt as DEFAULT_FIX_OPTIONS, c as line27DrawRule, ca as parameterPresentationTierRank, ci as PrincipalDirectionOfFireOptions, cn as DEFAULT_TACTICAL_ARROW_OPTIONS, cr as RadarSearchDoctrineOptions, ct as DEFAULT_OBSTACLE_BYPASS_IMPOSSIBLE_OPTIONS, d as line23DrawRule, da as AmplifierPlacement, di as DEFAULT_DIRECTION_OF_MAIN_ATTACK_OPTIONS, dn as DEFAULT_COUNTERATTACK_BY_FIRE_OPTIONS, dr as DEFAULT_GENERIC_SECTOR_OPTIONS, dt as ObstacleBypassDifficultOptions, ea as ControlMeasureGeometryType, ei as ControlMeasureRender, en as DEFAULT_DISRUPT_MISSION_TASK_OPTIONS, er as SupportByFireOptions, et as CONTROL_MEASURE_METADATA, f as turnDrawRule, fa as AmplifierPlacements, fi as DirectionOfMainAttackOptions, fn as CounterattackOptions, fr as GenericSectorOptions, ft as DEFAULT_OBSTACLE_BYPASS_EASY_OPTIONS, g as dynamicPointDrawRule, ga as TEXT_AMPLIFIER_FIELDS, gi as RetainOptions, gn as CanalizeOptions, gr as GenericRectangleOptions, gt as DEFAULT_TURN_OPTIONS, h as attackByFireDrawRule, ha as LabelPlacementOverride, hi as DEFAULT_RETAIN_OPTIONS, hn as DEFAULT_CLEAR_OPTIONS, hr as DEFAULT_GENERIC_RECTANGLE_OPTIONS, ht as MinefieldOptions, i as rectangleDrawRule, ia as ParamDescriptor, ii as DEFAULT_SECONDARY_DIRECTION_OF_FIRE_OPTIONS, in as DEFAULT_DELAY_OPTIONS, ir as DEFAULT_AIRBORNE_ATTACK_OPTIONS, it as getControlMeasureMetadata, j as BaselineFrame, ji as haversineDistance, jn as DEFAULT_LIMIT_OF_ADVANCE_OPTIONS, jr as calculateMetrics, jt as FortifiedAreaOptions, k as pointOnMidpointPerpendicularAxis, ki as LabelSizeOptions, kn as DEFAULT_LINE_OF_DEPARTURE_OPTIONS, kr as DEFAULT_MAIN_ATTACK_OPTIONS, kt as FrontalAttackOptions, l as line26DrawRule, la as resolveParameterPresentationTier, li as DEFAULT_DIRECTION_OF_SUPPORTING_ATTACK_OPTIONS, ln as TacticalArrowOptions, lr as DEFAULT_GENERIC_TEXT_OPTIONS, lt as ObstacleBypassImpossibleOptions, m as ambushDrawRule, ma as GeneratedLabelKey, mi as DirectionOfAttackAviationOptions, mn as ClearOptions, mr as GenericCircleOptions, mt as DEFAULT_MINEFIELD_OPTIONS, n as DEFAULT_AMBUSH_OPTIONS, na as ControlMeasurePaintCapability, ni as StyleHints, nn as DEFAULT_DISENGAGE_OPTIONS, nr as DEFAULT_ATTACK_HELICOPTER_OPTIONS, nt as ControlMeasureKind, o as supportByFireDrawRule, oa as ParameterSemanticRole, oi as SecondaryDirectionOfFireOptions, on as CoverOptions, or as RADAR_SEARCH_DOCTRINE_FILL_COLOR, ot as getDefaultOptions, p as line1DrawRule, pa as CanonicalTextAmplifiers, pi as DEFAULT_DIRECTION_OF_ATTACK_AVIATION_OPTIONS, pn as DEFAULT_COUNTERATTACK_OPTIONS, pr as DEFAULT_GENERIC_CIRCLE_OPTIONS, pt as ObstacleBypassEasyOptions, q as freezeOrientationOptions, qi as DEFAULT_STROKE_DASH_CSS_PIXELS, qn as DEFAULT_PHASE_LINE_OPTIONS, qr as EngagementAreaOptions, qt as RetireOptions, r as sectorDrawRule, ra as PARAMETER_PRESENTATION_TIERS, ri as controlMeasureIdFromFeature, rn as DisengageOptions, rr as AirborneAttackOptions, rt as OptionsByKind, s as polyline1DrawRule, sa as TextAmplifierDescriptor, si as DEFAULT_PRINCIPAL_DIRECTION_OF_FIRE_OPTIONS, sn as DEFAULT_COVER_OPTIONS, sr as RADAR_SEARCH_DOCTRINE_STROKE_COLOR, st as listControlMeasureMetadata, t as AmbushOptions, ta as ControlMeasureMetadata, ti as FeaturePartProps, tn as DisruptMissionTaskOptions, tr as AttackHelicopterOptions, tt as ControlMeasureId, u as line24DrawRule, ua as resolveParameterSemanticRole, ui as DirectionOfSupportingAttackOptions, un as CounterattackByFireOptions, ur as GenericTextOptions, ut as DEFAULT_OBSTACLE_BYPASS_DIFFICULT_OPTIONS, v as point12DrawRule, va as TextAmplifierKey, vi as StrongPointOptions, vn as BypassOptions, vr as GenericPolygonOptions, vt as DEFAULT_FIX_MISSION_TASK_OPTIONS, w as area27DrawRule, wa as ControlMeasureDrawRule, wi as GenericC2LineOptions, wn as DEFAULT_PROBABLE_LINE_OF_DEPLOYMENT_OPTIONS, wr as ClassicArrowHeadStyle, wt as BlockOptions, x as disruptDrawRule, xa as normalizeTextAmplifiers, xi as BattlePositionOptions, xn as DEFAULT_BREACH_OPTIONS, xr as BlockArrowHeadStyle, xt as FixOptions, y as penetrateDrawRule, ya as TextAmplifiers, yi as ContainOptions, yn as DEFAULT_BYPASS_OPTIONS, yr as DEFAULT_GENERIC_LINE_OPTIONS, yt as FixMissionTaskOptions, z as SimpleStyleProps, zi as ControlMeasureOptionHandleDragEvent, zn as DEFAULT_HOLDING_LINE_OPTIONS, zr as LandingZoneOptions, zt as WithdrawUnderPressureOptions } from "./index-DFZ2BoXt.mjs";
|
|
2
2
|
import { a as PatternId, c as PatternPoint, d as ControlMeasureStyle, f as FillPattern, i as NON_SOLID_FILL_PATTERNS, l as PatternStroke, n as FillPatternCommand, o as PatternPaint, r as FillPatternDefinition, s as PatternPathOperation, t as FILL_PATTERN_DEFINITIONS, u as getFillPatternDefinition } from "./patterns-CcQmmOuJ.mjs";
|
|
3
|
-
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 ContainOptions, type ControlMeasure, type ControlMeasureDrawRule, type ControlMeasureFillCapability, type ControlMeasureGeometry, type ControlMeasureGeometryType, type ControlMeasureId, type ControlMeasureKind, type ControlMeasureMetadata, type ControlMeasureOptionHandle, type ControlMeasureOptionHandleDragEvent, type ControlMeasureOptionHandles, type ControlMeasurePaintCapability, type ControlMeasureRender, type ControlMeasureRenderContext, type ControlMeasureStyle, type CounterattackByFireOptions, 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_CONTAIN_OPTIONS, DEFAULT_COUNTERATTACK_BY_FIRE_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_DISENGAGE_OPTIONS, DEFAULT_DISRUPT_MISSION_TASK_OPTIONS, DEFAULT_DISRUPT_OPTIONS, DEFAULT_ENCIRCLEMENT_OPTIONS, DEFAULT_ENGAGEMENT_AREA_OPTIONS, DEFAULT_ENGINEER_WORK_LINE_OPTIONS, DEFAULT_FINAL_PROTECTIVE_FIRE_OPTIONS, DEFAULT_FIX_MISSION_TASK_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_SECTOR_OPTIONS, DEFAULT_GENERIC_TEXT_OPTIONS, DEFAULT_GUARD_OPTIONS, DEFAULT_HANDOVER_LINE_OPTIONS, DEFAULT_HOLDING_LINE_OPTIONS, DEFAULT_JOINT_TACTICAL_ACTION_AREA_OPTIONS, DEFAULT_LABEL_HEIGHT_CSS_PIXELS, DEFAULT_LABEL_SIZE_CLAMP_CSS_PIXELS, DEFAULT_LANDING_ZONE_OPTIONS, DEFAULT_LIGHT_LINE_OPTIONS, DEFAULT_LIMIT_OF_ADVANCE_OPTIONS, DEFAULT_LINE_CAP, DEFAULT_LINE_JOIN, DEFAULT_LINE_OF_DEPARTURE_CONTACT_OPTIONS, DEFAULT_LINE_OF_DEPARTURE_OPTIONS, DEFAULT_MAIN_ATTACK_OPTIONS, DEFAULT_MINEFIELD_OPTIONS, DEFAULT_MOBILE_DEFENSE_OPTIONS, DEFAULT_OBSTACLE_BYPASS_DIFFICULT_OPTIONS, DEFAULT_OBSTACLE_BYPASS_EASY_OPTIONS, DEFAULT_OBSTACLE_BYPASS_IMPOSSIBLE_OPTIONS, DEFAULT_PENETRATE_OPTIONS, DEFAULT_PHASE_LINE_OPTIONS, DEFAULT_PICKUP_ZONE_OPTIONS, DEFAULT_PORTRAYAL, DEFAULT_PRINCIPAL_DIRECTION_OF_FIRE_OPTIONS, DEFAULT_PROBABLE_LINE_OF_DEPLOYMENT_OPTIONS, DEFAULT_RADAR_SEARCH_DOCTRINE_OPTIONS, DEFAULT_REARWARD_PASSAGE_OF_LINES_OPTIONS, DEFAULT_RELEASE_LINE_OPTIONS, DEFAULT_RETAIN_OPTIONS, DEFAULT_RETIRE_OPTIONS, DEFAULT_SCREEN_OPTIONS, DEFAULT_SECONDARY_DIRECTION_OF_FIRE_OPTIONS, DEFAULT_SEIZE_OPTIONS, DEFAULT_STROKE_DASH_CSS_PIXELS, DEFAULT_STROKE_WIDTH_CSS_PIXELS, DEFAULT_STRONG_POINT_OPTIONS, DEFAULT_SUPPORTING_ATTACK_OPTIONS, DEFAULT_SUPPORT_BY_FIRE_OPTIONS, DEFAULT_TACTICAL_ARROW_OPTIONS, DEFAULT_TURNING_MOVEMENT_OPTIONS, DEFAULT_TURN_OPTIONS, DEFAULT_WITHDRAW_OPTIONS, DEFAULT_WITHDRAW_UNDER_PRESSURE_OPTIONS, type DelayOptions, type DirectionOfAttackAviationOptions, type DirectionOfMainAttackOptions, type DirectionOfSupportingAttackOptions, type DisengageOptions, type DisruptMissionTaskOptions, type DisruptOptions, EPSILON, type EncirclementOptions, type EngagementAreaOptions, type EngineerWorkLineOptions, FILL_PATTERN_DEFINITIONS, type FLOTOptions, type FeaturePartProps, type FillPattern, type FillPatternCommand, type FillPatternDefinition, type FinalProtectiveFireOptions, type FixMissionTaskOptions, type FixOptions, type FortifiedAreaOptions, type FortifiedLineOptions, type ForwardEdgeOfBattleAreaOptions, type FrontalAttackOptions, type GeneratedLabelKey, type GenericC2LineOptions, type GenericCircleOptions, type GenericLineOptions, type GenericPolygonOptions, type GenericRectangleOptions, type GenericSectorOptions, type GenericTextOptions, type GuardOptions, type HandoverLineOptions, type HoldingLineOptions, type JointTacticalActionAreaOptions, type LabelPlacementOverride, type LabelSizeOptions, type LandingZoneOptions, type LightLineOptions, type LimitOfAdvanceOptions, type LineOfDepartureContactOptions, type LineOfDepartureOptions, type LogicalTextStyle, type MainAttackOptions, type MeasureTextRequest, type MeasuredText, type MidpointPerpendicularDrawRuleOptions, type MineType, type MinefieldOptions, type MobileDefenseOptions, NON_SOLID_FILL_PATTERNS, type ObstacleBypassDifficultOptions, type ObstacleBypassEasyOptions, type ObstacleBypassImpossibleOptions, type OptionsByKind, PARAMETER_PRESENTATION_TIERS, PROBABLE_LINE_OF_DEPLOYMENT_DASH, type ParamDescriptor, type ParameterPresentationTier, type ParameterSemanticRole, type PatternId, type PatternPaint, type PatternPathOperation, type PatternPoint, type PatternStroke, type PenetrateOptions, type PhaseLineOptions, type PickupZoneOptions, type Point2D, type PrincipalDirectionOfFireOptions, type ProbableLineOfDeploymentOptions, RADAR_SEARCH_DOCTRINE_FILL_COLOR, RADAR_SEARCH_DOCTRINE_STROKE_COLOR, type RadarSearchDoctrineOptions, type RearwardPassageOfLinesOptions, type ReleaseLineOptions, type RenderOptions, type RetainOptions, type RetireOptions, SECONDARY_DIRECTION_OF_FIRE_DASH, type ScreenOptions, type SecondaryDirectionOfFireOptions, type SeizeOptions, 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, type WithdrawOptions, type WithdrawUnderPressureOptions, ambushDrawRule, applyBoxTransformOptions, area27DrawRule, attackByFireDrawRule, axis1DrawRule, blockDrawRule, calculateMetrics, canonicalTextAmplifierKey, centerRadiusDrawRule, cloneControlMeasure, computeDefaultMidpointPerpendicularPoint, computeInitialWidthPoint, containDrawRule, controlMeasureIdFromFeature, createBaselineFrame, createMidpointPerpendicularDrawRule, disruptDrawRule, dragControlMeasureOptionHandle, dynamicPointDrawRule, foldsBoxTransformOptions, freezeOrientationOptions, getControlMeasureMetadata, getControlMeasureMetadataByValue, getControlMeasureOptionHandles, getDefaultOptions, getFillPatternDefinition, getMetersPerPixel, getMidpointPerpendicularSignedDistance, haversineDistance, isKind, line1DrawRule, line23DrawRule, line24DrawRule, line26DrawRule, line27DrawRule, listControlMeasureMetadata, normalizeTextAmplifiers, parameterPresentationTierRank, penetrateDrawRule, point12DrawRule, pointOnMidpointPerpendicularAxis, project, rectangleDrawRule, renderControlMeasure, resolveAmplifierPlacement, resolveParameterPresentationTier, resolveParameterSemanticRole, resolveStyleHints, roundToFixed, sectorDrawRule, snapToMidpointPerpendicular, sphericalBearing, staticPointDrawRule, supportByFireDrawRule, toSimpleStyle, turnDrawRule, unproject };
|
|
3
|
+
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 ContainOptions, type ControlMeasure, type ControlMeasureDrawRule, type ControlMeasureFillCapability, type ControlMeasureGeometry, type ControlMeasureGeometryType, type ControlMeasureId, type ControlMeasureKind, type ControlMeasureMetadata, type ControlMeasureOptionHandle, type ControlMeasureOptionHandleDragEvent, type ControlMeasureOptionHandles, type ControlMeasurePaintCapability, type ControlMeasureRender, type ControlMeasureRenderContext, type ControlMeasureStyle, type CounterattackByFireOptions, 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_CONTAIN_OPTIONS, DEFAULT_COUNTERATTACK_BY_FIRE_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_DISENGAGE_OPTIONS, DEFAULT_DISRUPT_MISSION_TASK_OPTIONS, DEFAULT_DISRUPT_OPTIONS, DEFAULT_ENCIRCLEMENT_OPTIONS, DEFAULT_ENGAGEMENT_AREA_OPTIONS, DEFAULT_ENGINEER_WORK_LINE_OPTIONS, DEFAULT_FINAL_PROTECTIVE_FIRE_OPTIONS, DEFAULT_FIX_MISSION_TASK_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_SECTOR_OPTIONS, DEFAULT_GENERIC_TEXT_OPTIONS, DEFAULT_GUARD_OPTIONS, DEFAULT_HANDOVER_LINE_OPTIONS, DEFAULT_HOLDING_LINE_OPTIONS, DEFAULT_INFILTRATION_LANE_OPTIONS, DEFAULT_JOINT_TACTICAL_ACTION_AREA_OPTIONS, DEFAULT_LABEL_HEIGHT_CSS_PIXELS, DEFAULT_LABEL_SIZE_CLAMP_CSS_PIXELS, DEFAULT_LANDING_ZONE_OPTIONS, DEFAULT_LIGHT_LINE_OPTIONS, DEFAULT_LIMIT_OF_ADVANCE_OPTIONS, DEFAULT_LINE_CAP, DEFAULT_LINE_JOIN, DEFAULT_LINE_OF_DEPARTURE_CONTACT_OPTIONS, DEFAULT_LINE_OF_DEPARTURE_OPTIONS, DEFAULT_MAIN_ATTACK_OPTIONS, DEFAULT_MINEFIELD_OPTIONS, DEFAULT_MOBILE_DEFENSE_OPTIONS, DEFAULT_OBSTACLE_BYPASS_DIFFICULT_OPTIONS, DEFAULT_OBSTACLE_BYPASS_EASY_OPTIONS, DEFAULT_OBSTACLE_BYPASS_IMPOSSIBLE_OPTIONS, DEFAULT_PENETRATE_OPTIONS, DEFAULT_PHASE_LINE_OPTIONS, DEFAULT_PICKUP_ZONE_OPTIONS, DEFAULT_PORTRAYAL, DEFAULT_PRINCIPAL_DIRECTION_OF_FIRE_OPTIONS, DEFAULT_PROBABLE_LINE_OF_DEPLOYMENT_OPTIONS, DEFAULT_RADAR_SEARCH_DOCTRINE_OPTIONS, DEFAULT_REARWARD_PASSAGE_OF_LINES_OPTIONS, DEFAULT_RELEASE_LINE_OPTIONS, DEFAULT_RETAIN_OPTIONS, DEFAULT_RETIRE_OPTIONS, DEFAULT_SCREEN_OPTIONS, DEFAULT_SECONDARY_DIRECTION_OF_FIRE_OPTIONS, DEFAULT_SEIZE_OPTIONS, DEFAULT_STROKE_DASH_CSS_PIXELS, DEFAULT_STROKE_WIDTH_CSS_PIXELS, DEFAULT_STRONG_POINT_OPTIONS, DEFAULT_SUPPORTING_ATTACK_OPTIONS, DEFAULT_SUPPORT_BY_FIRE_OPTIONS, DEFAULT_TACTICAL_ARROW_OPTIONS, DEFAULT_TURNING_MOVEMENT_OPTIONS, DEFAULT_TURN_OPTIONS, DEFAULT_WITHDRAW_OPTIONS, DEFAULT_WITHDRAW_UNDER_PRESSURE_OPTIONS, type DelayOptions, type DirectionOfAttackAviationOptions, type DirectionOfMainAttackOptions, type DirectionOfSupportingAttackOptions, type DisengageOptions, type DisruptMissionTaskOptions, type DisruptOptions, EPSILON, type EncirclementOptions, type EngagementAreaOptions, type EngineerWorkLineOptions, FILL_PATTERN_DEFINITIONS, type FLOTOptions, type FeaturePartProps, type FillPattern, type FillPatternCommand, type FillPatternDefinition, type FinalProtectiveFireOptions, type FixMissionTaskOptions, type FixOptions, type FortifiedAreaOptions, type FortifiedLineOptions, type ForwardEdgeOfBattleAreaOptions, type FrontalAttackOptions, type GeneratedLabelKey, type GenericC2LineOptions, type GenericCircleOptions, type GenericLineOptions, type GenericPolygonOptions, type GenericRectangleOptions, type GenericSectorOptions, type GenericTextOptions, type GuardOptions, type HandoverLineOptions, type HoldingLineOptions, type InfiltrationLaneOptions, type JointTacticalActionAreaOptions, type LabelPlacementOverride, type LabelSizeOptions, type LandingZoneOptions, type LightLineOptions, type LimitOfAdvanceOptions, type LineOfDepartureContactOptions, type LineOfDepartureOptions, type LogicalTextStyle, type MainAttackOptions, type MeasureTextRequest, type MeasuredText, type MidpointPerpendicularDrawRuleOptions, type MineType, type MinefieldOptions, type MobileDefenseOptions, NON_SOLID_FILL_PATTERNS, type ObstacleBypassDifficultOptions, type ObstacleBypassEasyOptions, type ObstacleBypassImpossibleOptions, type OptionsByKind, PARAMETER_PRESENTATION_TIERS, PROBABLE_LINE_OF_DEPLOYMENT_DASH, type ParamDescriptor, type ParameterPresentationTier, type ParameterSemanticRole, type PatternId, type PatternPaint, type PatternPathOperation, type PatternPoint, type PatternStroke, type PenetrateOptions, type PhaseLineOptions, type PickupZoneOptions, type Point2D, type PrincipalDirectionOfFireOptions, type ProbableLineOfDeploymentOptions, RADAR_SEARCH_DOCTRINE_FILL_COLOR, RADAR_SEARCH_DOCTRINE_STROKE_COLOR, type RadarSearchDoctrineOptions, type RearwardPassageOfLinesOptions, type ReleaseLineOptions, type RenderOptions, type RetainOptions, type RetireOptions, SECONDARY_DIRECTION_OF_FIRE_DASH, type ScreenOptions, type SecondaryDirectionOfFireOptions, type SeizeOptions, 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, type WithdrawOptions, type WithdrawUnderPressureOptions, ambushDrawRule, applyBoxTransformOptions, area27DrawRule, attackByFireDrawRule, axis1DrawRule, blockDrawRule, calculateMetrics, canonicalTextAmplifierKey, centerRadiusDrawRule, cloneControlMeasure, computeDefaultMidpointPerpendicularPoint, computeInitialWidthPoint, containDrawRule, controlMeasureIdFromFeature, createBaselineFrame, createMidpointPerpendicularDrawRule, disruptDrawRule, dragControlMeasureOptionHandle, dynamicPointDrawRule, foldsBoxTransformOptions, freezeOrientationOptions, getControlMeasureMetadata, getControlMeasureMetadataByValue, getControlMeasureOptionHandles, getDefaultOptions, getFillPatternDefinition, getMetersPerPixel, getMidpointPerpendicularSignedDistance, haversineDistance, isKind, line1DrawRule, line23DrawRule, line24DrawRule, line26DrawRule, line27DrawRule, listControlMeasureMetadata, normalizeTextAmplifiers, parameterPresentationTierRank, penetrateDrawRule, point12DrawRule, pointOnMidpointPerpendicularAxis, polyline1DrawRule, project, rectangleDrawRule, renderControlMeasure, resolveAmplifierPlacement, resolveParameterPresentationTier, resolveParameterSemanticRole, resolveStyleHints, roundToFixed, sectorDrawRule, snapToMidpointPerpendicular, sphericalBearing, staticPointDrawRule, supportByFireDrawRule, toSimpleStyle, turnDrawRule, unproject };
|
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $ as
|
|
1
|
+
import { $ as DEFAULT_ENCIRCLEMENT_OPTIONS, $t as DEFAULT_PORTRAYAL, A as DEFAULT_RETIRE_OPTIONS, An as pointOnMidpointPerpendicularAxis, At as DEFAULT_BLOCK_OPTIONS, B as DEFAULT_LIMIT_OF_ADVANCE_OPTIONS, Bn as getMetersPerPixel, Bt as DEFAULT_ENGAGEMENT_AREA_OPTIONS, C as DEFAULT_MAIN_ATTACK_OPTIONS, Cn as blockDrawRule, Ct as DEFAULT_BREACH_OPTIONS, D as DEFAULT_WITHDRAW_OPTIONS, Dn as computeDefaultMidpointPerpendicularPoint, Dt as DEFAULT_LIGHT_LINE_OPTIONS, E as DEFAULT_WITHDRAW_UNDER_PRESSURE_OPTIONS, En as area27DrawRule, Et as DEFAULT_ENGINEER_WORK_LINE_OPTIONS, F as DEFAULT_FORTIFIED_LINE_OPTIONS, Fn as haversineDistance, Ft as DEFAULT_ANTITANK_WALL_OPTIONS, G as DEFAULT_HOLDING_LINE_OPTIONS, Gt as TEXT_AMPLIFIER_FIELDS, H as DEFAULT_HANDOVER_LINE_OPTIONS, Ht as DEFAULT_DIRECTION_OF_SUPPORTING_ATTACK_OPTIONS, I as DEFAULT_PROBABLE_LINE_OF_DEPLOYMENT_OPTIONS, In as project, It as DEFAULT_ANTITANK_DITCH_OPTIONS, J as DEFAULT_PHASE_LINE_OPTIONS, Jt as resolveAmplifierPlacement, K as DEFAULT_INFILTRATION_LANE_OPTIONS, Kt as canonicalTextAmplifierKey, L as PROBABLE_LINE_OF_DEPLOYMENT_DASH, Ln as sphericalBearing, Lt as DEFAULT_ASSEMBLY_AREA_OPTIONS, M as DEFAULT_PENETRATE_OPTIONS, Mn as createBaselineFrame, Mt as DEFAULT_BATTLE_POSITION_OPTIONS, N as DEFAULT_FRONTAL_ATTACK_OPTIONS, Nn as calculateMetrics, Nt as DEFAULT_ATTACK_HELICOPTER_OPTIONS, O as DEFAULT_SEIZE_OPTIONS, On as createMidpointPerpendicularDrawRule, Ot as DEFAULT_BOUNDARY_OPTIONS, P as DEFAULT_FORTIFIED_AREA_OPTIONS, Pn as computeInitialWidthPoint, Pt as DEFAULT_ATTACK_BY_FIRE_OPTIONS, Q as DEFAULT_FINAL_PROTECTIVE_FIRE_OPTIONS, Qt as DEFAULT_LINE_JOIN, R as DEFAULT_LINE_OF_DEPARTURE_CONTACT_OPTIONS, Rn as unproject, Rt as DEFAULT_AREA_OF_OPERATIONS_OPTIONS, S as DEFAULT_MINEFIELD_OPTIONS, Sn as disruptDrawRule, St as DEFAULT_BYPASS_OPTIONS, T as DEFAULT_JOINT_TACTICAL_ACTION_AREA_OPTIONS, Tn as containDrawRule, Tt as DEFAULT_GENERIC_C2_LINE_OPTIONS, U as DEFAULT_FORWARD_EDGE_OF_BATTLE_AREA_OPTIONS, Ut as DEFAULT_DIRECTION_OF_MAIN_ATTACK_OPTIONS, V as DEFAULT_BATTLE_HANDOVER_LINE_OPTIONS, Vn as roundToFixed, Vt as DEFAULT_AREA_DEFENSE_OPTIONS, W as DEFAULT_RELEASE_LINE_OPTIONS, Wt as DEFAULT_DIRECTION_OF_ATTACK_AVIATION_OPTIONS, X as DEFAULT_FIX_MISSION_TASK_OPTIONS, Xt as DEFAULT_LABEL_SIZE_CLAMP_CSS_PIXELS, Y as DEFAULT_FLOT_OPTIONS, Yt as DEFAULT_LABEL_HEIGHT_CSS_PIXELS, Z as DEFAULT_FIX_OPTIONS, Zt as DEFAULT_LINE_CAP, _ as DEFAULT_PRINCIPAL_DIRECTION_OF_FIRE_OPTIONS, _n as dynamicPointDrawRule, _t as DEFAULT_GENERIC_POLYGON_OPTIONS, a as DEFINITIONS, an as rectangleDrawRule, at as DEFAULT_COVER_OPTIONS, b as DEFAULT_OBSTACLE_BYPASS_EASY_OPTIONS, bn as point12DrawRule, bt as DEFAULT_CLASSIC_ARROW_OPTIONS, c as getDefaultOptions, cn as polyline1DrawRule, ct as DEFAULT_COUNTERATTACK_OPTIONS, d as DEFAULT_TURN_OPTIONS, dn as line24DrawRule, dt as DEFAULT_RADAR_SEARCH_DOCTRINE_OPTIONS, en as DEFAULT_STROKE_DASH_CSS_PIXELS, et as DEFAULT_DISRUPT_OPTIONS, f as DEFAULT_SUPPORT_BY_FIRE_OPTIONS, fn as line23DrawRule, ft as RADAR_SEARCH_DOCTRINE_FILL_COLOR, g as SECONDARY_DIRECTION_OF_FIRE_DASH, gn as attackByFireDrawRule, gt as DEFAULT_GENERIC_RECTANGLE_OPTIONS, h as DEFAULT_SECONDARY_DIRECTION_OF_FIRE_OPTIONS, hn as ambushDrawRule, ht as DEFAULT_GENERIC_SECTOR_OPTIONS, i as CONTROL_MEASURE_METADATA, in as DEFAULT_AIRBORNE_ATTACK_OPTIONS, it as DEFAULT_DELAY_OPTIONS, j as DEFAULT_REARWARD_PASSAGE_OF_LINES_OPTIONS, jn as snapToMidpointPerpendicular, jt as DEFAULT_CONTAIN_OPTIONS, k as DEFAULT_SCREEN_OPTIONS, kn as getMidpointPerpendicularSignedDistance, kt as DEFAULT_BLOCK_ARROW_OPTIONS, l as listControlMeasureMetadata, ln as line27DrawRule, lt as DEFAULT_SUPPORTING_ATTACK_OPTIONS, m as DEFAULT_STRONG_POINT_OPTIONS, mn as line1DrawRule, mt as DEFAULT_GENERIC_TEXT_OPTIONS, n as resolveStyleHints, nt as DEFAULT_DISRUPT_MISSION_TASK_OPTIONS, o as getControlMeasureMetadata, on as axis1DrawRule, ot as DEFAULT_TACTICAL_ARROW_OPTIONS, p as DEFAULT_RETAIN_OPTIONS, pn as turnDrawRule, pt as RADAR_SEARCH_DOCTRINE_STROKE_COLOR, q as DEFAULT_BRIDGEHEAD_LINE_OPTIONS, qt as normalizeTextAmplifiers, r as CONTROL_MEASURE_IDS, rn as DEFAULT_AMBUSH_OPTIONS, rt as DEFAULT_DISENGAGE_OPTIONS, s as getControlMeasureMetadataByValue, sn as supportByFireDrawRule, st as DEFAULT_COUNTERATTACK_BY_FIRE_OPTIONS, t as renderControlMeasure, tn as DEFAULT_STROKE_WIDTH_CSS_PIXELS, tt as DEFAULT_GUARD_OPTIONS, u as DEFAULT_TURNING_MOVEMENT_OPTIONS, un as line26DrawRule, ut as DEFAULT_CLEAR_OPTIONS, v as DEFAULT_PICKUP_ZONE_OPTIONS, vn as sectorDrawRule, vt as DEFAULT_GENERIC_LINE_OPTIONS, w as DEFAULT_LANDING_ZONE_OPTIONS, wn as centerRadiusDrawRule, wt as DEFAULT_BLOCK_MISSION_TASK_OPTIONS, x as DEFAULT_OBSTACLE_BYPASS_DIFFICULT_OPTIONS, xn as penetrateDrawRule, xt as DEFAULT_CANALIZE_OPTIONS, y as DEFAULT_OBSTACLE_BYPASS_IMPOSSIBLE_OPTIONS, yn as staticPointDrawRule, yt as DEFAULT_GENERIC_CIRCLE_OPTIONS, z as DEFAULT_LINE_OF_DEPARTURE_OPTIONS, zn as EPSILON, zt as DEFAULT_MOBILE_DEFENSE_OPTIONS } from "./renderControlMeasure-qnu0Feey.mjs";
|
|
2
2
|
import { FILL_PATTERN_DEFINITIONS, NON_SOLID_FILL_PATTERNS, getFillPatternDefinition } from "./patterns.mjs";
|
|
3
3
|
//#region src/metadata.ts
|
|
4
4
|
const PARAMETER_PRESENTATION_TIERS = [
|
|
@@ -179,4 +179,4 @@ function toHexChannel(value) {
|
|
|
179
179
|
return Math.max(0, Math.min(255, Math.round(value))).toString(16).padStart(2, "0");
|
|
180
180
|
}
|
|
181
181
|
//#endregion
|
|
182
|
-
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_CONTAIN_OPTIONS, DEFAULT_COUNTERATTACK_BY_FIRE_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_DISENGAGE_OPTIONS, DEFAULT_DISRUPT_MISSION_TASK_OPTIONS, DEFAULT_DISRUPT_OPTIONS, DEFAULT_ENCIRCLEMENT_OPTIONS, DEFAULT_ENGAGEMENT_AREA_OPTIONS, DEFAULT_ENGINEER_WORK_LINE_OPTIONS, DEFAULT_FINAL_PROTECTIVE_FIRE_OPTIONS, DEFAULT_FIX_MISSION_TASK_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_SECTOR_OPTIONS, DEFAULT_GENERIC_TEXT_OPTIONS, DEFAULT_GUARD_OPTIONS, DEFAULT_HANDOVER_LINE_OPTIONS, DEFAULT_HOLDING_LINE_OPTIONS, DEFAULT_JOINT_TACTICAL_ACTION_AREA_OPTIONS, DEFAULT_LABEL_HEIGHT_CSS_PIXELS, DEFAULT_LABEL_SIZE_CLAMP_CSS_PIXELS, DEFAULT_LANDING_ZONE_OPTIONS, DEFAULT_LIGHT_LINE_OPTIONS, DEFAULT_LIMIT_OF_ADVANCE_OPTIONS, DEFAULT_LINE_CAP, DEFAULT_LINE_JOIN, DEFAULT_LINE_OF_DEPARTURE_CONTACT_OPTIONS, DEFAULT_LINE_OF_DEPARTURE_OPTIONS, DEFAULT_MAIN_ATTACK_OPTIONS, DEFAULT_MINEFIELD_OPTIONS, DEFAULT_MOBILE_DEFENSE_OPTIONS, DEFAULT_OBSTACLE_BYPASS_DIFFICULT_OPTIONS, DEFAULT_OBSTACLE_BYPASS_EASY_OPTIONS, DEFAULT_OBSTACLE_BYPASS_IMPOSSIBLE_OPTIONS, DEFAULT_PENETRATE_OPTIONS, DEFAULT_PHASE_LINE_OPTIONS, DEFAULT_PICKUP_ZONE_OPTIONS, DEFAULT_PORTRAYAL, DEFAULT_PRINCIPAL_DIRECTION_OF_FIRE_OPTIONS, DEFAULT_PROBABLE_LINE_OF_DEPLOYMENT_OPTIONS, DEFAULT_RADAR_SEARCH_DOCTRINE_OPTIONS, DEFAULT_REARWARD_PASSAGE_OF_LINES_OPTIONS, DEFAULT_RELEASE_LINE_OPTIONS, DEFAULT_RETAIN_OPTIONS, DEFAULT_RETIRE_OPTIONS, DEFAULT_SCREEN_OPTIONS, DEFAULT_SECONDARY_DIRECTION_OF_FIRE_OPTIONS, DEFAULT_SEIZE_OPTIONS, DEFAULT_STROKE_DASH_CSS_PIXELS, DEFAULT_STROKE_WIDTH_CSS_PIXELS, DEFAULT_STRONG_POINT_OPTIONS, DEFAULT_SUPPORTING_ATTACK_OPTIONS, DEFAULT_SUPPORT_BY_FIRE_OPTIONS, DEFAULT_TACTICAL_ARROW_OPTIONS, DEFAULT_TURNING_MOVEMENT_OPTIONS, DEFAULT_TURN_OPTIONS, DEFAULT_WITHDRAW_OPTIONS, DEFAULT_WITHDRAW_UNDER_PRESSURE_OPTIONS, EPSILON, FILL_PATTERN_DEFINITIONS, NON_SOLID_FILL_PATTERNS, PARAMETER_PRESENTATION_TIERS, PROBABLE_LINE_OF_DEPLOYMENT_DASH, RADAR_SEARCH_DOCTRINE_FILL_COLOR, RADAR_SEARCH_DOCTRINE_STROKE_COLOR, SECONDARY_DIRECTION_OF_FIRE_DASH, TEXT_AMPLIFIER_FIELDS, ambushDrawRule, applyBoxTransformOptions, area27DrawRule, attackByFireDrawRule, axis1DrawRule, blockDrawRule, calculateMetrics, canonicalTextAmplifierKey, centerRadiusDrawRule, cloneControlMeasure, computeDefaultMidpointPerpendicularPoint, computeInitialWidthPoint, containDrawRule, controlMeasureIdFromFeature, createBaselineFrame, createMidpointPerpendicularDrawRule, disruptDrawRule, dragControlMeasureOptionHandle, dynamicPointDrawRule, foldsBoxTransformOptions, freezeOrientationOptions, getControlMeasureMetadata, getControlMeasureMetadataByValue, getControlMeasureOptionHandles, getDefaultOptions, getFillPatternDefinition, getMetersPerPixel, getMidpointPerpendicularSignedDistance, haversineDistance, isKind, line1DrawRule, line23DrawRule, line24DrawRule, line26DrawRule, line27DrawRule, listControlMeasureMetadata, normalizeTextAmplifiers, parameterPresentationTierRank, penetrateDrawRule, point12DrawRule, pointOnMidpointPerpendicularAxis, project, rectangleDrawRule, renderControlMeasure, resolveAmplifierPlacement, resolveParameterPresentationTier, resolveParameterSemanticRole, resolveStyleHints, roundToFixed, sectorDrawRule, snapToMidpointPerpendicular, sphericalBearing, staticPointDrawRule, supportByFireDrawRule, toSimpleStyle, turnDrawRule, unproject };
|
|
182
|
+
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_CONTAIN_OPTIONS, DEFAULT_COUNTERATTACK_BY_FIRE_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_DISENGAGE_OPTIONS, DEFAULT_DISRUPT_MISSION_TASK_OPTIONS, DEFAULT_DISRUPT_OPTIONS, DEFAULT_ENCIRCLEMENT_OPTIONS, DEFAULT_ENGAGEMENT_AREA_OPTIONS, DEFAULT_ENGINEER_WORK_LINE_OPTIONS, DEFAULT_FINAL_PROTECTIVE_FIRE_OPTIONS, DEFAULT_FIX_MISSION_TASK_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_SECTOR_OPTIONS, DEFAULT_GENERIC_TEXT_OPTIONS, DEFAULT_GUARD_OPTIONS, DEFAULT_HANDOVER_LINE_OPTIONS, DEFAULT_HOLDING_LINE_OPTIONS, DEFAULT_INFILTRATION_LANE_OPTIONS, DEFAULT_JOINT_TACTICAL_ACTION_AREA_OPTIONS, DEFAULT_LABEL_HEIGHT_CSS_PIXELS, DEFAULT_LABEL_SIZE_CLAMP_CSS_PIXELS, DEFAULT_LANDING_ZONE_OPTIONS, DEFAULT_LIGHT_LINE_OPTIONS, DEFAULT_LIMIT_OF_ADVANCE_OPTIONS, DEFAULT_LINE_CAP, DEFAULT_LINE_JOIN, DEFAULT_LINE_OF_DEPARTURE_CONTACT_OPTIONS, DEFAULT_LINE_OF_DEPARTURE_OPTIONS, DEFAULT_MAIN_ATTACK_OPTIONS, DEFAULT_MINEFIELD_OPTIONS, DEFAULT_MOBILE_DEFENSE_OPTIONS, DEFAULT_OBSTACLE_BYPASS_DIFFICULT_OPTIONS, DEFAULT_OBSTACLE_BYPASS_EASY_OPTIONS, DEFAULT_OBSTACLE_BYPASS_IMPOSSIBLE_OPTIONS, DEFAULT_PENETRATE_OPTIONS, DEFAULT_PHASE_LINE_OPTIONS, DEFAULT_PICKUP_ZONE_OPTIONS, DEFAULT_PORTRAYAL, DEFAULT_PRINCIPAL_DIRECTION_OF_FIRE_OPTIONS, DEFAULT_PROBABLE_LINE_OF_DEPLOYMENT_OPTIONS, DEFAULT_RADAR_SEARCH_DOCTRINE_OPTIONS, DEFAULT_REARWARD_PASSAGE_OF_LINES_OPTIONS, DEFAULT_RELEASE_LINE_OPTIONS, DEFAULT_RETAIN_OPTIONS, DEFAULT_RETIRE_OPTIONS, DEFAULT_SCREEN_OPTIONS, DEFAULT_SECONDARY_DIRECTION_OF_FIRE_OPTIONS, DEFAULT_SEIZE_OPTIONS, DEFAULT_STROKE_DASH_CSS_PIXELS, DEFAULT_STROKE_WIDTH_CSS_PIXELS, DEFAULT_STRONG_POINT_OPTIONS, DEFAULT_SUPPORTING_ATTACK_OPTIONS, DEFAULT_SUPPORT_BY_FIRE_OPTIONS, DEFAULT_TACTICAL_ARROW_OPTIONS, DEFAULT_TURNING_MOVEMENT_OPTIONS, DEFAULT_TURN_OPTIONS, DEFAULT_WITHDRAW_OPTIONS, DEFAULT_WITHDRAW_UNDER_PRESSURE_OPTIONS, EPSILON, FILL_PATTERN_DEFINITIONS, NON_SOLID_FILL_PATTERNS, PARAMETER_PRESENTATION_TIERS, PROBABLE_LINE_OF_DEPLOYMENT_DASH, RADAR_SEARCH_DOCTRINE_FILL_COLOR, RADAR_SEARCH_DOCTRINE_STROKE_COLOR, SECONDARY_DIRECTION_OF_FIRE_DASH, TEXT_AMPLIFIER_FIELDS, ambushDrawRule, applyBoxTransformOptions, area27DrawRule, attackByFireDrawRule, axis1DrawRule, blockDrawRule, calculateMetrics, canonicalTextAmplifierKey, centerRadiusDrawRule, cloneControlMeasure, computeDefaultMidpointPerpendicularPoint, computeInitialWidthPoint, containDrawRule, controlMeasureIdFromFeature, createBaselineFrame, createMidpointPerpendicularDrawRule, disruptDrawRule, dragControlMeasureOptionHandle, dynamicPointDrawRule, foldsBoxTransformOptions, freezeOrientationOptions, getControlMeasureMetadata, getControlMeasureMetadataByValue, getControlMeasureOptionHandles, getDefaultOptions, getFillPatternDefinition, getMetersPerPixel, getMidpointPerpendicularSignedDistance, haversineDistance, isKind, line1DrawRule, line23DrawRule, line24DrawRule, line26DrawRule, line27DrawRule, listControlMeasureMetadata, normalizeTextAmplifiers, parameterPresentationTierRank, penetrateDrawRule, point12DrawRule, pointOnMidpointPerpendicularAxis, polyline1DrawRule, project, rectangleDrawRule, renderControlMeasure, resolveAmplifierPlacement, resolveParameterPresentationTier, resolveParameterSemanticRole, resolveStyleHints, roundToFixed, sectorDrawRule, snapToMidpointPerpendicular, sphericalBearing, staticPointDrawRule, supportByFireDrawRule, toSimpleStyle, turnDrawRule, unproject };
|
package/dist/preview/index.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { tt as ControlMeasureId, ya as TextAmplifiers } from "../index-DFZ2BoXt.mjs";
|
|
2
2
|
import { f as FillPattern } from "../patterns-CcQmmOuJ.mjs";
|
|
3
|
-
import { FeatureCollection, Geometry } from "geojson";
|
|
3
|
+
import { FeatureCollection, Geometry, Position } from "geojson";
|
|
4
4
|
|
|
5
5
|
//#region src/preview/index.d.ts
|
|
6
6
|
/** The hatch fill patterns a preview can render — the `FillPattern` vocabulary
|
|
@@ -24,6 +24,18 @@ declare const PREVIEW_FILL_PATTERNS: readonly {
|
|
|
24
24
|
}[];
|
|
25
25
|
/** Radius (SVG units) of a {@link PREVIEW_FILL_PATTERNS} dot. */
|
|
26
26
|
declare const PREVIEW_PATTERN_DOT_RADIUS: number;
|
|
27
|
+
/**
|
|
28
|
+
* Resolves a measure's representative input: its co-located `previewSample`
|
|
29
|
+
* override if present, otherwise the generic {@link fallbackControlPoints}.
|
|
30
|
+
* Unitless points are scaled by {@link D} to the degree offsets a generator
|
|
31
|
+
* expects.
|
|
32
|
+
*/
|
|
33
|
+
interface RepresentativeSample {
|
|
34
|
+
controlPoints: Position[];
|
|
35
|
+
options?: Record<string, unknown>;
|
|
36
|
+
textAmplifiers?: TextAmplifiers;
|
|
37
|
+
}
|
|
38
|
+
declare function representativeSample(id: ControlMeasureId): RepresentativeSample;
|
|
27
39
|
/**
|
|
28
40
|
* Renders a measure's representative preview to GeoJSON. Pure — no map engine,
|
|
29
41
|
* so it runs identically at build time (docs catalog, README generator) and in
|
|
@@ -173,4 +185,4 @@ declare function viewBoxString(shapes: PreviewShape[], dims: {
|
|
|
173
185
|
*/
|
|
174
186
|
declare function svgTextTransform(s: PreviewShape): string | undefined;
|
|
175
187
|
//#endregion
|
|
176
|
-
export { PREVIEW_FILL_PATTERNS, PREVIEW_PATTERN_DOT_RADIUS, PREVIEW_PATTERN_TILE, PreviewFillPattern, PreviewShape, PreviewTextRow, ProjectDimensions, previewLabelBackgroundHeight, previewLabelBackgroundWidth, previewTextRows, projectRenderToShapes, renderRepresentative, svgTextTransform, viewBoxString, viewBoxWithLabels };
|
|
188
|
+
export { PREVIEW_FILL_PATTERNS, PREVIEW_PATTERN_DOT_RADIUS, PREVIEW_PATTERN_TILE, PreviewFillPattern, PreviewShape, PreviewTextRow, ProjectDimensions, RepresentativeSample, previewLabelBackgroundHeight, previewLabelBackgroundWidth, previewTextRows, projectRenderToShapes, renderRepresentative, representativeSample, svgTextTransform, viewBoxString, viewBoxWithLabels };
|
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-qnu0Feey.mjs";
|
|
2
2
|
import { FILL_PATTERN_DEFINITIONS, NON_SOLID_FILL_PATTERNS } from "../patterns.mjs";
|
|
3
3
|
//#region src/preview/index.ts
|
|
4
4
|
/** Side length (SVG units) of the repeating non-mine tile in {@link PREVIEW_FILL_PATTERNS}. */
|
|
@@ -87,12 +87,6 @@ function fallbackControlPoints(m) {
|
|
|
87
87
|
[.6, .1]
|
|
88
88
|
];
|
|
89
89
|
}
|
|
90
|
-
/**
|
|
91
|
-
* Resolves a measure's representative input: its co-located `previewSample`
|
|
92
|
-
* override if present, otherwise the generic {@link fallbackControlPoints}.
|
|
93
|
-
* Unitless points are scaled by {@link D} to the degree offsets a generator
|
|
94
|
-
* expects.
|
|
95
|
-
*/
|
|
96
90
|
function representativeSample(id) {
|
|
97
91
|
const definition = DEFINITIONS[id];
|
|
98
92
|
const sample = definition.previewSample;
|
|
@@ -101,8 +95,8 @@ function representativeSample(id) {
|
|
|
101
95
|
const textAmplifiers = sample?.textAmplifiers;
|
|
102
96
|
return {
|
|
103
97
|
controlPoints,
|
|
104
|
-
...options ? { options } : {},
|
|
105
|
-
...textAmplifiers ? { textAmplifiers } : {}
|
|
98
|
+
...options ? { options: { ...options } } : {},
|
|
99
|
+
...textAmplifiers ? { textAmplifiers: { ...textAmplifiers } } : {}
|
|
106
100
|
};
|
|
107
101
|
}
|
|
108
102
|
/**
|
|
@@ -483,4 +477,4 @@ function collectShapes(g, tx, out, bboxArea, textLimits, props) {
|
|
|
483
477
|
}
|
|
484
478
|
}
|
|
485
479
|
//#endregion
|
|
486
|
-
export { PREVIEW_FILL_PATTERNS, PREVIEW_PATTERN_DOT_RADIUS, PREVIEW_PATTERN_TILE, previewLabelBackgroundHeight, previewLabelBackgroundWidth, previewTextRows, projectRenderToShapes, renderRepresentative, svgTextTransform, viewBoxString, viewBoxWithLabels };
|
|
480
|
+
export { PREVIEW_FILL_PATTERNS, PREVIEW_PATTERN_DOT_RADIUS, PREVIEW_PATTERN_TILE, previewLabelBackgroundHeight, previewLabelBackgroundWidth, previewTextRows, projectRenderToShapes, renderRepresentative, representativeSample, svgTextTransform, viewBoxString, viewBoxWithLabels };
|
|
@@ -546,13 +546,14 @@ function clonePosition(position) {
|
|
|
546
546
|
function clonePositions(positions) {
|
|
547
547
|
return positions.map(clonePosition);
|
|
548
548
|
}
|
|
549
|
-
function samePosition
|
|
549
|
+
function samePosition(a, b) {
|
|
550
550
|
return a[0] === b[0] && a[1] === b[1] && a[2] === b[2];
|
|
551
551
|
}
|
|
552
552
|
//#endregion
|
|
553
553
|
//#region src/draw-rules/midpoint-perpendicular.ts
|
|
554
554
|
function createMidpointPerpendicularDrawRule(options) {
|
|
555
555
|
const defaultDistanceRatio = options.defaultDistanceRatio ?? 1.5;
|
|
556
|
+
const variableLength = options.variableLength ?? false;
|
|
556
557
|
const constrainedIndex = options.constrainedIndex ?? 2;
|
|
557
558
|
const baselineIndexA = constrainedIndex === 0 ? 1 : 0;
|
|
558
559
|
const baselineIndexB = constrainedIndex === 0 ? 2 : 1;
|
|
@@ -564,11 +565,15 @@ function createMidpointPerpendicularDrawRule(options) {
|
|
|
564
565
|
normal: frameNormal
|
|
565
566
|
});
|
|
566
567
|
}
|
|
567
|
-
|
|
568
|
-
|
|
568
|
+
/** Slot holding the constrained point in an array of `count` points. */
|
|
569
|
+
function constrainedIndexIn(count) {
|
|
570
|
+
return variableLength ? count - 1 : constrainedIndex;
|
|
571
|
+
}
|
|
572
|
+
function packSlots(points, baselineA, baselineB, constrained) {
|
|
573
|
+
const out = points.length > 3 ? clonePositions(points) : new Array(3);
|
|
569
574
|
out[baselineIndexA] = baselineA;
|
|
570
575
|
out[baselineIndexB] = baselineB;
|
|
571
|
-
out[
|
|
576
|
+
out[constrainedIndexIn(out.length)] = constrained;
|
|
572
577
|
return out;
|
|
573
578
|
}
|
|
574
579
|
function snap(baselineA, baselineB, point) {
|
|
@@ -583,46 +588,52 @@ function createMidpointPerpendicularDrawRule(options) {
|
|
|
583
588
|
const baselineB = clonePosition(points[1]);
|
|
584
589
|
const frame = frameFor(baselineA, baselineB);
|
|
585
590
|
const derived = frame ? frame.pointAtNormalDistance(frame.length * defaultDistanceRatio) : null;
|
|
586
|
-
return derived ? packSlots(
|
|
591
|
+
return derived ? packSlots([
|
|
592
|
+
baselineA,
|
|
593
|
+
baselineB,
|
|
594
|
+
derived
|
|
595
|
+
], baselineA, baselineB, derived) : [baselineA, baselineB];
|
|
587
596
|
}
|
|
588
597
|
const baselineA = clonePosition(points[baselineIndexA]);
|
|
589
598
|
const baselineB = clonePosition(points[baselineIndexB]);
|
|
590
|
-
const rawConstrained = points[
|
|
591
|
-
return packSlots(baselineA, baselineB, snap(baselineA, baselineB, rawConstrained) ?? clonePosition(rawConstrained));
|
|
599
|
+
const rawConstrained = points[constrainedIndexIn(points.length)];
|
|
600
|
+
return packSlots(points, baselineA, baselineB, snap(baselineA, baselineB, rawConstrained) ?? clonePosition(rawConstrained));
|
|
592
601
|
}
|
|
593
602
|
return {
|
|
594
603
|
id: options.id,
|
|
595
604
|
minimumUserPoints: options.minimumUserPoints ?? 2,
|
|
596
605
|
minimumPreviewPoints: options.minimumPreviewPoints,
|
|
597
606
|
finishOnLastPointRepeat: options.finishOnLastPointRepeat,
|
|
598
|
-
canonicalPointCount: 3,
|
|
607
|
+
canonicalPointCount: variableLength ? void 0 : 3,
|
|
608
|
+
trailingFixedSlots: variableLength ? 1 : void 0,
|
|
599
609
|
derive,
|
|
600
610
|
transform(event) {
|
|
601
611
|
const { previous, next, activePointIndex } = event;
|
|
602
612
|
if (previous.length < 3 || next.length < 3) return derive(next);
|
|
613
|
+
const newConstrainedIndex = constrainedIndexIn(next.length);
|
|
603
614
|
const oldBaselineA = previous[baselineIndexA];
|
|
604
615
|
const oldBaselineB = previous[baselineIndexB];
|
|
605
|
-
const oldConstrained = previous[
|
|
616
|
+
const oldConstrained = previous[constrainedIndexIn(previous.length)];
|
|
606
617
|
const newBaselineA = next[baselineIndexA];
|
|
607
618
|
const newBaselineB = next[baselineIndexB];
|
|
608
|
-
const newConstrained = next[
|
|
619
|
+
const newConstrained = next[newConstrainedIndex];
|
|
609
620
|
if (!oldBaselineA || !oldBaselineB || !oldConstrained || !newBaselineA || !newBaselineB || !newConstrained) return derive(next);
|
|
610
621
|
const baselineAMoved = !samePosition(newBaselineA, oldBaselineA);
|
|
611
622
|
const baselineBMoved = !samePosition(newBaselineB, oldBaselineB);
|
|
612
623
|
const constrainedMoved = !samePosition(newConstrained, oldConstrained);
|
|
613
624
|
const draggingBaseline = activePointIndex === baselineIndexA || activePointIndex === baselineIndexB;
|
|
614
|
-
const draggingConstrained = activePointIndex ===
|
|
625
|
+
const draggingConstrained = activePointIndex === newConstrainedIndex;
|
|
615
626
|
if (draggingBaseline || (baselineAMoved || baselineBMoved) && !constrainedMoved) {
|
|
616
627
|
const oldFrame = frameFor(oldBaselineA, oldBaselineB);
|
|
617
628
|
const newFrame = frameFor(newBaselineA, newBaselineB);
|
|
618
629
|
if (oldFrame && newFrame) {
|
|
619
630
|
const distance = oldFrame.signedNormalDistance(oldConstrained);
|
|
620
631
|
const adjusted = newFrame.pointAtNormalDistance(distance);
|
|
621
|
-
if (adjusted) return packSlots(clonePosition(newBaselineA), clonePosition(newBaselineB), adjusted);
|
|
632
|
+
if (adjusted) return packSlots(next, clonePosition(newBaselineA), clonePosition(newBaselineB), adjusted);
|
|
622
633
|
}
|
|
623
634
|
} else if (draggingConstrained || !baselineAMoved && !baselineBMoved && constrainedMoved) {
|
|
624
635
|
const adjusted = snap(newBaselineA, newBaselineB, newConstrained);
|
|
625
|
-
if (adjusted) return packSlots(clonePosition(newBaselineA), clonePosition(newBaselineB), adjusted);
|
|
636
|
+
if (adjusted) return packSlots(next, clonePosition(newBaselineA), clonePosition(newBaselineB), adjusted);
|
|
626
637
|
}
|
|
627
638
|
return derive(next);
|
|
628
639
|
}
|
|
@@ -655,9 +666,6 @@ function frameFor(p1, p2) {
|
|
|
655
666
|
normal: "right"
|
|
656
667
|
});
|
|
657
668
|
}
|
|
658
|
-
function samePosition(a, b) {
|
|
659
|
-
return a[0] === b[0] && a[1] === b[1] && a[2] === b[2];
|
|
660
|
-
}
|
|
661
669
|
//#endregion
|
|
662
670
|
//#region src/draw-rules/area1.ts
|
|
663
671
|
function derive$14(points) {
|
|
@@ -1046,7 +1054,7 @@ const turnDrawRule = {
|
|
|
1046
1054
|
transform(event) {
|
|
1047
1055
|
const { previous, next, activePointIndex } = event;
|
|
1048
1056
|
if (previous.length < 3 || next.length < 3) return deriveWithSide(next);
|
|
1049
|
-
const endpointMoved = !samePosition
|
|
1057
|
+
const endpointMoved = !samePosition(previous[0], next[0]) || !samePosition(previous[1], next[1]);
|
|
1050
1058
|
if (activePointIndex === 0 || activePointIndex === 1 || endpointMoved) return deriveWithSide(next, sideFrom(previous));
|
|
1051
1059
|
return deriveWithSide(next);
|
|
1052
1060
|
}
|
|
@@ -1349,6 +1357,24 @@ const line32DrawRule = {
|
|
|
1349
1357
|
}
|
|
1350
1358
|
};
|
|
1351
1359
|
//#endregion
|
|
1360
|
+
//#region src/draw-rules/polyline1.ts
|
|
1361
|
+
/**
|
|
1362
|
+
* Polyline1 anchors for the Infiltration Lane.
|
|
1363
|
+
*
|
|
1364
|
+
* PT1 through PTN-1 form the lane centerline. PTN is the editable width
|
|
1365
|
+
* handle on the perpendicular through the midpoint of PT1/PT2, so its signed
|
|
1366
|
+
* distance from that segment is the lane half-width. The initial two clicks
|
|
1367
|
+
* synthesize PTN; later edits may insert more centerline vertices before it.
|
|
1368
|
+
*/
|
|
1369
|
+
const polyline1DrawRule = createMidpointPerpendicularDrawRule({
|
|
1370
|
+
id: "polyline1:infiltration-lane",
|
|
1371
|
+
defaultDistanceRatio: .18,
|
|
1372
|
+
minimumUserPoints: 2,
|
|
1373
|
+
minimumPreviewPoints: 2,
|
|
1374
|
+
variableLength: true,
|
|
1375
|
+
normal: "left"
|
|
1376
|
+
});
|
|
1377
|
+
//#endregion
|
|
1352
1378
|
//#region src/draw-rules/area8.ts
|
|
1353
1379
|
function derive$3(points) {
|
|
1354
1380
|
if (points.length < 2) return clonePositions(points);
|
|
@@ -2687,18 +2713,8 @@ function labelRotationAlong(dir) {
|
|
|
2687
2713
|
const rendered = -Math.atan2(dir[1], dir[0]);
|
|
2688
2714
|
return normalizeRadians(Math.PI - keepTextLeftToRight(rendered));
|
|
2689
2715
|
}
|
|
2690
|
-
const BOUNDARY_UNIT_LABEL_FIELDS = {
|
|
2691
|
-
unit1: {
|
|
2692
|
-
designator: "T",
|
|
2693
|
-
country: "AS"
|
|
2694
|
-
},
|
|
2695
|
-
unit2: {
|
|
2696
|
-
designator: "T1",
|
|
2697
|
-
country: "AS1"
|
|
2698
|
-
}
|
|
2699
|
-
};
|
|
2700
2716
|
/** Resolves two echelon-unit rows from a caller-selected set of amplifiers. */
|
|
2701
|
-
function unitLabelsFromAmplifiers(amplifiers, fields
|
|
2717
|
+
function unitLabelsFromAmplifiers(amplifiers, fields) {
|
|
2702
2718
|
return [{
|
|
2703
2719
|
side: 1,
|
|
2704
2720
|
designator: amplifiers[fields.unit1.designator] ?? "",
|
|
@@ -2733,6 +2749,12 @@ function pushUnitLabels(out, frame, units) {
|
|
|
2733
2749
|
}
|
|
2734
2750
|
}
|
|
2735
2751
|
/**
|
|
2752
|
+
* Default clearance between an echelon glyph and its unit labels, as a ratio of
|
|
2753
|
+
* the glyph height — the value Boundary declares as its `labelPadding` default,
|
|
2754
|
+
* shared so other echelon-carrying lines land on the same spacing.
|
|
2755
|
+
*/
|
|
2756
|
+
const ECHELON_UNIT_LABEL_PADDING = .4;
|
|
2757
|
+
/**
|
|
2736
2758
|
* Emits Boundary-style unit labels around echelon groups. Along-line groups
|
|
2737
2759
|
* straddle the line; standard-orientation groups on north/south segments form
|
|
2738
2760
|
* one row crossing it, anchored outward from the glyph.
|
|
@@ -3546,14 +3568,14 @@ const DEFAULT_ARROWHEAD_WIDTH_RATIO$1 = 1.15;
|
|
|
3546
3568
|
const DEFAULT_BOW_TIE_LENGTH_RATIO = .1;
|
|
3547
3569
|
const DEFAULT_BOW_TIE_WIDTH_RATIO = .5;
|
|
3548
3570
|
const DEFAULT_BOW_TIE_POSITION = 1 / 3;
|
|
3549
|
-
const DEFAULT_LABEL_POSITION = 2 / 3;
|
|
3571
|
+
const DEFAULT_LABEL_POSITION$1 = 2 / 3;
|
|
3550
3572
|
const DEFAULT_DIRECTION_OF_ATTACK_AVIATION_OPTIONS = {
|
|
3551
3573
|
arrowheadLengthRatio: DEFAULT_ARROWHEAD_LENGTH_RATIO$1,
|
|
3552
3574
|
arrowheadWidthRatio: DEFAULT_ARROWHEAD_WIDTH_RATIO$1,
|
|
3553
3575
|
bowTieLengthRatio: DEFAULT_BOW_TIE_LENGTH_RATIO,
|
|
3554
3576
|
bowTieWidthRatio: DEFAULT_BOW_TIE_WIDTH_RATIO,
|
|
3555
3577
|
bowTiePosition: DEFAULT_BOW_TIE_POSITION,
|
|
3556
|
-
labelPosition: DEFAULT_LABEL_POSITION,
|
|
3578
|
+
labelPosition: DEFAULT_LABEL_POSITION$1,
|
|
3557
3579
|
labelPadding: 0,
|
|
3558
3580
|
smooth: false,
|
|
3559
3581
|
smoothResolution: 12
|
|
@@ -3700,7 +3722,7 @@ function createDirectionOfAttackAviation(coordinates, options = {}, textAmplifie
|
|
|
3700
3722
|
};
|
|
3701
3723
|
const bowTieLength = Math.min(totalLength, totalLength * nonNegative(resolved.bowTieLengthRatio, DEFAULT_BOW_TIE_LENGTH_RATIO));
|
|
3702
3724
|
const bowTiePosition = clampLinePosition(resolved.bowTiePosition, DEFAULT_BOW_TIE_POSITION);
|
|
3703
|
-
const labelPosition = clampLinePosition(resolved.labelPosition, DEFAULT_LABEL_POSITION);
|
|
3725
|
+
const labelPosition = clampLinePosition(resolved.labelPosition, DEFAULT_LABEL_POSITION$1);
|
|
3704
3726
|
const bowTieCenterDistance = totalLength * bowTiePosition;
|
|
3705
3727
|
const bowTieStartDistance = Math.max(0, bowTieCenterDistance - bowTieLength / 2);
|
|
3706
3728
|
const bowTieEndDistance = Math.min(totalLength, bowTieCenterDistance + bowTieLength / 2);
|
|
@@ -4074,7 +4096,7 @@ const BAND_SAMPLE_FRACTIONS = [
|
|
|
4074
4096
|
* rerender); striding holds it to a fixed multiple of one ring scan. Rings
|
|
4075
4097
|
* with no more bands than this are still probed exhaustively. */
|
|
4076
4098
|
const MAX_SAMPLED_BANDS = 48;
|
|
4077
|
-
const DEFAULT_SMOOTH_RESOLUTION$
|
|
4099
|
+
const DEFAULT_SMOOTH_RESOLUTION$8 = 16;
|
|
4078
4100
|
/**
|
|
4079
4101
|
* Composes an area's main label text from a `prefix` (e.g. `"AO"`) and a
|
|
4080
4102
|
* `designation` (e.g. `"GREEN"`), mirroring Phase Line's "PL" precedent: a
|
|
@@ -4474,8 +4496,8 @@ function boundaryFeature(verts, gaps) {
|
|
|
4474
4496
|
* common (no `N`) case is unaffected.
|
|
4475
4497
|
*/
|
|
4476
4498
|
function labeledAreaFeatures(positions, options, texts, amplifierPlacements, context) {
|
|
4477
|
-
const { smooth = false, smoothResolution = DEFAULT_SMOOTH_RESOLUTION$
|
|
4478
|
-
const verts = buildClosedRing(positions, smooth, smoothResolution, DEFAULT_SMOOTH_RESOLUTION$
|
|
4499
|
+
const { smooth = false, smoothResolution = DEFAULT_SMOOTH_RESOLUTION$8, ...labelOptions } = options;
|
|
4500
|
+
const verts = buildClosedRing(positions, smooth, smoothResolution, DEFAULT_SMOOTH_RESOLUTION$8);
|
|
4479
4501
|
const labelFeatures = [];
|
|
4480
4502
|
const features = [boundaryFeature(verts, pushAreaLabels(labelFeatures, verts, texts, labelOptions, amplifierPlacements, void 0, context))];
|
|
4481
4503
|
features.push(...labelFeatures);
|
|
@@ -5192,7 +5214,7 @@ const TARGET_AREA_OF_INTEREST = defineControlMeasure({
|
|
|
5192
5214
|
});
|
|
5193
5215
|
//#endregion
|
|
5194
5216
|
//#region src/generators/cm12-command-control-areas/airfield-zone.ts
|
|
5195
|
-
const DEFAULT_SMOOTH_RESOLUTION$
|
|
5217
|
+
const DEFAULT_SMOOTH_RESOLUTION$7 = 16;
|
|
5196
5218
|
/** Long runway line's tilt off the horizontal, in radians (+15°). */
|
|
5197
5219
|
const LONG_LINE_ANGLE = 15 * Math.PI / 180;
|
|
5198
5220
|
/** Short runway line's tilt off the horizontal, in radians (+50°). */
|
|
@@ -5207,7 +5229,7 @@ const H_LABEL_OFFSET_RATIO = .75;
|
|
|
5207
5229
|
*/
|
|
5208
5230
|
const DEFAULT_AIRFIELD_ZONE_OPTIONS = {
|
|
5209
5231
|
smooth: true,
|
|
5210
|
-
smoothResolution: DEFAULT_SMOOTH_RESOLUTION$
|
|
5232
|
+
smoothResolution: DEFAULT_SMOOTH_RESOLUTION$7,
|
|
5211
5233
|
glyphSizeRatio: .55
|
|
5212
5234
|
};
|
|
5213
5235
|
const AIRFIELD_ZONE_METADATA = {
|
|
@@ -5265,7 +5287,7 @@ const AIRFIELD_ZONE_METADATA = {
|
|
|
5265
5287
|
*/
|
|
5266
5288
|
function createAirfieldZone(positions, options = {}, textAmplifiers = {}, context = {}) {
|
|
5267
5289
|
const { smooth = DEFAULT_AIRFIELD_ZONE_OPTIONS.smooth, smoothResolution = DEFAULT_AIRFIELD_ZONE_OPTIONS.smoothResolution, glyphSizeRatio = DEFAULT_AIRFIELD_ZONE_OPTIONS.glyphSizeRatio, ...labelOptions } = options;
|
|
5268
|
-
const verts = buildClosedRing(positions, smooth, smoothResolution, DEFAULT_SMOOTH_RESOLUTION$
|
|
5290
|
+
const verts = buildClosedRing(positions, smooth, smoothResolution, DEFAULT_SMOOTH_RESOLUTION$7);
|
|
5269
5291
|
const enyLabels = [];
|
|
5270
5292
|
const features = [boundaryFeature(verts, textAmplifiers.N ? pushAreaLabels(enyLabels, verts, { hostile: textAmplifiers.N }, labelOptions, context.amplifierPlacements, void 0, context) : [])];
|
|
5271
5293
|
let minX = Infinity;
|
|
@@ -5323,7 +5345,7 @@ const AIRFIELD_ZONE = defineControlMeasure({
|
|
|
5323
5345
|
});
|
|
5324
5346
|
//#endregion
|
|
5325
5347
|
//#region src/generators/cm12-command-control-areas/echelon-labeled-area.ts
|
|
5326
|
-
const DEFAULT_SMOOTH_RESOLUTION$
|
|
5348
|
+
const DEFAULT_SMOOTH_RESOLUTION$6 = 16;
|
|
5327
5349
|
/** Default options shared by Base Camp and Guerrilla Base — echelon off, boundary rounded. */
|
|
5328
5350
|
const DEFAULT_ECHELON_LABELED_AREA_OPTIONS = {
|
|
5329
5351
|
echelon: "none",
|
|
@@ -5332,7 +5354,7 @@ const DEFAULT_ECHELON_LABELED_AREA_OPTIONS = {
|
|
|
5332
5354
|
echelonPadding: .3,
|
|
5333
5355
|
echelonPosition: 0,
|
|
5334
5356
|
smooth: true,
|
|
5335
|
-
smoothResolution: DEFAULT_SMOOTH_RESOLUTION$
|
|
5357
|
+
smoothResolution: DEFAULT_SMOOTH_RESOLUTION$6
|
|
5336
5358
|
};
|
|
5337
5359
|
/**
|
|
5338
5360
|
* Builds the shared Base Camp / Guerrilla Base geometry: a closed area
|
|
@@ -5346,7 +5368,7 @@ const DEFAULT_ECHELON_LABELED_AREA_OPTIONS = {
|
|
|
5346
5368
|
function echelonLabeledAreaFeatures(positions, options, texts, amplifierPlacements, context) {
|
|
5347
5369
|
const { echelon = DEFAULT_ECHELON_LABELED_AREA_OPTIONS.echelon, echelonSize = DEFAULT_ECHELON_LABELED_AREA_OPTIONS.echelonSize, echelonSizePixels, echelonPadding = DEFAULT_ECHELON_LABELED_AREA_OPTIONS.echelonPadding, echelonPosition = DEFAULT_ECHELON_LABELED_AREA_OPTIONS.echelonPosition, echelonAnchor, metersPerPixel, smooth = DEFAULT_ECHELON_LABELED_AREA_OPTIONS.smooth, smoothResolution = DEFAULT_ECHELON_LABELED_AREA_OPTIONS.smoothResolution, ...labelOptions } = options;
|
|
5348
5370
|
const h = resolveEchelonHeight(echelonSize, echelonSizePixels, metersPerPixel);
|
|
5349
|
-
const verts = buildClosedRing(positions, smooth, smoothResolution, DEFAULT_SMOOTH_RESOLUTION$
|
|
5371
|
+
const verts = buildClosedRing(positions, smooth, smoothResolution, DEFAULT_SMOOTH_RESOLUTION$6);
|
|
5350
5372
|
const { strokes, fills, gaps: echelonGaps } = placeEchelon(buildAreaPerimeter(verts), h, echelon, echelonPadding, echelonPosition, echelonAnchor);
|
|
5351
5373
|
const labelFeatures = [];
|
|
5352
5374
|
const enyGaps = pushAreaLabels(labelFeatures, verts, texts, labelOptions, amplifierPlacements, void 0, context);
|
|
@@ -6307,7 +6329,7 @@ const ATTACK_HELICOPTER = defineControlMeasure({
|
|
|
6307
6329
|
});
|
|
6308
6330
|
//#endregion
|
|
6309
6331
|
//#region src/generators/cm15-maneuver-areas/battlePosition.ts
|
|
6310
|
-
const DEFAULT_SMOOTH_RESOLUTION$
|
|
6332
|
+
const DEFAULT_SMOOTH_RESOLUTION$5 = 16;
|
|
6311
6333
|
/** Default options for the Battle Position control measure. */
|
|
6312
6334
|
const DEFAULT_BATTLE_POSITION_OPTIONS = {
|
|
6313
6335
|
echelon: "battalion",
|
|
@@ -6316,7 +6338,7 @@ const DEFAULT_BATTLE_POSITION_OPTIONS = {
|
|
|
6316
6338
|
echelonPadding: .3,
|
|
6317
6339
|
echelonPosition: 0,
|
|
6318
6340
|
smooth: false,
|
|
6319
|
-
smoothResolution: DEFAULT_SMOOTH_RESOLUTION$
|
|
6341
|
+
smoothResolution: DEFAULT_SMOOTH_RESOLUTION$5
|
|
6320
6342
|
};
|
|
6321
6343
|
const BATTLE_POSITION_METADATA = {
|
|
6322
6344
|
id: "battle-position",
|
|
@@ -6358,7 +6380,7 @@ const BATTLE_POSITION_METADATA = {
|
|
|
6358
6380
|
function battlePositionAreaFeatures(positions, options, textAmplifiers, context, variant = {}) {
|
|
6359
6381
|
const { echelon = DEFAULT_BATTLE_POSITION_OPTIONS.echelon, echelonSize = DEFAULT_BATTLE_POSITION_OPTIONS.echelonSize, echelonSizePixels, echelonPadding = DEFAULT_BATTLE_POSITION_OPTIONS.echelonPadding, echelonPosition = DEFAULT_BATTLE_POSITION_OPTIONS.echelonPosition, echelonAnchor, metersPerPixel, smooth = DEFAULT_BATTLE_POSITION_OPTIONS.smooth, smoothResolution = DEFAULT_BATTLE_POSITION_OPTIONS.smoothResolution } = options;
|
|
6360
6382
|
const h = resolveEchelonHeight(echelonSize, echelonSizePixels, metersPerPixel);
|
|
6361
|
-
const verts = buildClosedRing(positions, smooth, smoothResolution, DEFAULT_SMOOTH_RESOLUTION$
|
|
6383
|
+
const verts = buildClosedRing(positions, smooth, smoothResolution, DEFAULT_SMOOTH_RESOLUTION$5);
|
|
6362
6384
|
const { strokes, fills, gaps } = placeEchelon(buildAreaPerimeter(verts), h, echelon, echelonPadding, echelonPosition, echelonAnchor);
|
|
6363
6385
|
const labelFeatures = [];
|
|
6364
6386
|
const enyGaps = pushAreaLabels(labelFeatures, verts, composeAreaLabelTexts(textAmplifiers, variant.namePrefix), options, context.amplifierPlacements, void 0, context);
|
|
@@ -6932,7 +6954,7 @@ const BRIDGE_OR_GAP = defineControlMeasure({
|
|
|
6932
6954
|
});
|
|
6933
6955
|
//#endregion
|
|
6934
6956
|
//#region src/generators/cm99-generic-arrows/blockArrow.ts
|
|
6935
|
-
const DEFAULT_SMOOTH_RESOLUTION$
|
|
6957
|
+
const DEFAULT_SMOOTH_RESOLUTION$4 = 12;
|
|
6936
6958
|
const MIN_SMOOTH_RESOLUTION$1 = 2;
|
|
6937
6959
|
const MAX_SMOOTH_RESOLUTION$1 = 64;
|
|
6938
6960
|
const DEFAULT_SHAFT_WIDTH_RATIO = .06;
|
|
@@ -6945,7 +6967,7 @@ const DEFAULT_BLOCK_ARROW_OPTIONS = {
|
|
|
6945
6967
|
arrowheadWidthRatio: .18,
|
|
6946
6968
|
arrowheadLengthRatio: .22,
|
|
6947
6969
|
smooth: false,
|
|
6948
|
-
smoothResolution: DEFAULT_SMOOTH_RESOLUTION$
|
|
6970
|
+
smoothResolution: DEFAULT_SMOOTH_RESOLUTION$4,
|
|
6949
6971
|
filled: true
|
|
6950
6972
|
};
|
|
6951
6973
|
const BLOCK_ARROW_METADATA = {
|
|
@@ -7235,7 +7257,7 @@ function axis1Geometry(coordinates) {
|
|
|
7235
7257
|
};
|
|
7236
7258
|
}
|
|
7237
7259
|
function normalizeSmoothResolution$1(value) {
|
|
7238
|
-
if (!Number.isFinite(value)) return DEFAULT_SMOOTH_RESOLUTION$
|
|
7260
|
+
if (!Number.isFinite(value)) return DEFAULT_SMOOTH_RESOLUTION$4;
|
|
7239
7261
|
return Math.min(MAX_SMOOTH_RESOLUTION$1, Math.max(MIN_SMOOTH_RESOLUTION$1, Math.round(value)));
|
|
7240
7262
|
}
|
|
7241
7263
|
//#endregion
|
|
@@ -7319,9 +7341,25 @@ function echelonLineParams(subject) {
|
|
|
7319
7341
|
max: 2,
|
|
7320
7342
|
step: .05,
|
|
7321
7343
|
visibleWhen: (opts) => resolveLabelRepetitions(opts.labelRepetitions) > 1
|
|
7344
|
+
},
|
|
7345
|
+
{
|
|
7346
|
+
key: "labelOrientation",
|
|
7347
|
+
presentationTier: "advanced",
|
|
7348
|
+
label: "Label orientation",
|
|
7349
|
+
description: `Orient the label group along the ${subject}, or per MIL-STD-2525E Figure L-10: on mostly north–south segments the group rotates perpendicular to the ${subject} as a single row crossing it.`,
|
|
7350
|
+
type: "enum",
|
|
7351
|
+
options: [{
|
|
7352
|
+
value: "along",
|
|
7353
|
+
label: `Along the ${subject}`
|
|
7354
|
+
}, {
|
|
7355
|
+
value: "standard",
|
|
7356
|
+
label: "Standard (MIL-STD-2525E)"
|
|
7357
|
+
}]
|
|
7322
7358
|
}
|
|
7323
7359
|
];
|
|
7324
7360
|
}
|
|
7361
|
+
/** Along-line position used when a measure leaves `labelPosition` unset. */
|
|
7362
|
+
const DEFAULT_LABEL_POSITION = .5;
|
|
7325
7363
|
/** A placement with nothing in it — the result for a degenerate line. */
|
|
7326
7364
|
const EMPTY_LINE_ECHELON_PLACEMENT = {
|
|
7327
7365
|
strokes: [],
|
|
@@ -7335,11 +7373,11 @@ const EMPTY_LINE_ECHELON_PLACEMENT = {
|
|
|
7335
7373
|
* placed (so a caller can label them) but no glyph or gap is emitted.
|
|
7336
7374
|
*/
|
|
7337
7375
|
function placeEchelonsAlongLine(verts, spec, h, options) {
|
|
7338
|
-
const { labelRepetitions, labelPosition,
|
|
7376
|
+
const { labelRepetitions, labelPosition, labelSpacing, labelOrientation, echelonPadding } = options;
|
|
7339
7377
|
const { segments, totalLength } = polylineSegments(verts);
|
|
7340
7378
|
if (totalLength < 1e-6) return EMPTY_LINE_ECHELON_PLACEMENT;
|
|
7341
7379
|
const reps = resolveLabelRepetitions(labelRepetitions);
|
|
7342
|
-
const singleGroupPosition = clampLinePosition(labelPosition,
|
|
7380
|
+
const singleGroupPosition = clampLinePosition(labelPosition, DEFAULT_LABEL_POSITION);
|
|
7343
7381
|
const strokes = [];
|
|
7344
7382
|
const fills = [];
|
|
7345
7383
|
const gaps = [];
|
|
@@ -7381,7 +7419,20 @@ function placeEchelonsAlongLine(verts, spec, h, options) {
|
|
|
7381
7419
|
}
|
|
7382
7420
|
//#endregion
|
|
7383
7421
|
//#region src/generators/cm11-command-control-lines/boundary.ts
|
|
7384
|
-
|
|
7422
|
+
/**
|
|
7423
|
+
* Boundary's Field T/AS mapping: unit 1 (`T`/`AS`) on the left-of-travel side,
|
|
7424
|
+
* unit 2 (`T1`/`AS1`) on the right.
|
|
7425
|
+
*/
|
|
7426
|
+
const BOUNDARY_UNIT_LABEL_FIELDS = {
|
|
7427
|
+
unit1: {
|
|
7428
|
+
designator: "T",
|
|
7429
|
+
country: "AS"
|
|
7430
|
+
},
|
|
7431
|
+
unit2: {
|
|
7432
|
+
designator: "T1",
|
|
7433
|
+
country: "AS1"
|
|
7434
|
+
}
|
|
7435
|
+
};
|
|
7385
7436
|
/** Default options for the Boundary control measure. */
|
|
7386
7437
|
const DEFAULT_BOUNDARY_OPTIONS = {
|
|
7387
7438
|
echelon: "battalion",
|
|
@@ -7391,10 +7442,10 @@ const DEFAULT_BOUNDARY_OPTIONS = {
|
|
|
7391
7442
|
labelRepetitions: 1,
|
|
7392
7443
|
labelSpacing: 1,
|
|
7393
7444
|
labelPosition: .5,
|
|
7394
|
-
labelPadding:
|
|
7445
|
+
labelPadding: ECHELON_UNIT_LABEL_PADDING,
|
|
7395
7446
|
labelOrientation: "along",
|
|
7396
7447
|
smooth: false,
|
|
7397
|
-
smoothResolution:
|
|
7448
|
+
smoothResolution: 12
|
|
7398
7449
|
};
|
|
7399
7450
|
const BOUNDARY_METADATA = {
|
|
7400
7451
|
id: "boundary",
|
|
@@ -7444,20 +7495,6 @@ const BOUNDARY_METADATA = {
|
|
|
7444
7495
|
min: 0,
|
|
7445
7496
|
max: 2,
|
|
7446
7497
|
step: .05
|
|
7447
|
-
},
|
|
7448
|
-
{
|
|
7449
|
-
key: "labelOrientation",
|
|
7450
|
-
presentationTier: "advanced",
|
|
7451
|
-
label: "Label orientation",
|
|
7452
|
-
description: "Unit labels along the line, or per MIL-STD-2525E Figure L-10: on mostly north–south segments the label group rotates perpendicular to the line as a single row crossing it.",
|
|
7453
|
-
type: "enum",
|
|
7454
|
-
options: [{
|
|
7455
|
-
value: "along",
|
|
7456
|
-
label: "Along the line"
|
|
7457
|
-
}, {
|
|
7458
|
-
value: "standard",
|
|
7459
|
-
label: "Standard (MIL-STD-2525E)"
|
|
7460
|
-
}]
|
|
7461
7498
|
}
|
|
7462
7499
|
],
|
|
7463
7500
|
textAmplifiers: [
|
|
@@ -7503,18 +7540,19 @@ function createBoundary(positions, options = {}, textAmplifiers = {}, context =
|
|
|
7503
7540
|
const h = resolveEchelonHeight(echelonSize, echelonSizePixels, metersPerPixel);
|
|
7504
7541
|
const spec = resolveEchelon(echelon);
|
|
7505
7542
|
const { properties: labelSize, screenAnchored } = echelonUnitLabelSize(h, echelonSizePixels, metersPerPixel);
|
|
7506
|
-
const
|
|
7507
|
-
|
|
7543
|
+
const verts = smoothLineVerts(positions.map((p) => project(p[0], p[1])), {
|
|
7544
|
+
smooth,
|
|
7545
|
+
smoothResolution
|
|
7546
|
+
}, 12);
|
|
7508
7547
|
const labelFeatures = [];
|
|
7509
7548
|
const { strokes: glyphStrokes, fills: glyphFills, gaps, groups } = placeEchelonsAlongLine(verts, spec, h, {
|
|
7510
7549
|
labelRepetitions,
|
|
7511
7550
|
labelPosition,
|
|
7512
|
-
defaultLabelPosition: DEFAULT_BOUNDARY_OPTIONS.labelPosition,
|
|
7513
7551
|
labelSpacing,
|
|
7514
7552
|
labelOrientation,
|
|
7515
7553
|
echelonPadding
|
|
7516
7554
|
});
|
|
7517
|
-
pushEchelonUnitLabels(labelFeatures, groups, unitLabelsFromAmplifiers(textAmplifiers), h, labelPadding, labelSize);
|
|
7555
|
+
pushEchelonUnitLabels(labelFeatures, groups, unitLabelsFromAmplifiers(textAmplifiers, BOUNDARY_UNIT_LABEL_FIELDS), h, labelPadding, labelSize);
|
|
7518
7556
|
const hostileLabelOptions = screenAnchored ? {
|
|
7519
7557
|
labelSizePixels: echelonSizePixels,
|
|
7520
7558
|
metersPerPixel,
|
|
@@ -7850,20 +7888,6 @@ const GENERIC_C2_LINE_METADATA = {
|
|
|
7850
7888
|
params: [
|
|
7851
7889
|
...SMOOTH_LINE_PARAMS,
|
|
7852
7890
|
...echelonLineParams("line"),
|
|
7853
|
-
{
|
|
7854
|
-
key: "labelOrientation",
|
|
7855
|
-
presentationTier: "advanced",
|
|
7856
|
-
label: "Label orientation",
|
|
7857
|
-
description: "Orient the echelon along the line or perpendicular on mostly north-south segments.",
|
|
7858
|
-
type: "enum",
|
|
7859
|
-
options: [{
|
|
7860
|
-
value: "along",
|
|
7861
|
-
label: "Along the line"
|
|
7862
|
-
}, {
|
|
7863
|
-
value: "standard",
|
|
7864
|
-
label: "Standard (MIL-STD-2525E)"
|
|
7865
|
-
}]
|
|
7866
|
-
},
|
|
7867
7891
|
{
|
|
7868
7892
|
key: "phaseLineName",
|
|
7869
7893
|
presentationTier: "primary",
|
|
@@ -7882,16 +7906,7 @@ const GENERIC_C2_LINE_METADATA = {
|
|
|
7882
7906
|
type: "boolean",
|
|
7883
7907
|
visibleWhen: (opts) => Boolean(String(opts.phaseLineName ?? "").trim())
|
|
7884
7908
|
},
|
|
7885
|
-
|
|
7886
|
-
key: "labelPadding",
|
|
7887
|
-
presentationTier: "advanced",
|
|
7888
|
-
label: "Label padding",
|
|
7889
|
-
description: "Extra clearance between the line and its labels, as a ratio of the label height",
|
|
7890
|
-
type: "number",
|
|
7891
|
-
min: 0,
|
|
7892
|
-
max: 2,
|
|
7893
|
-
step: .05
|
|
7894
|
-
}
|
|
7909
|
+
LINE_LABEL_PADDING_PARAM
|
|
7895
7910
|
],
|
|
7896
7911
|
textAmplifiers: [
|
|
7897
7912
|
{
|
|
@@ -7966,7 +7981,6 @@ function createGenericC2Line(positions, options = {}, textAmplifiers = {}, conte
|
|
|
7966
7981
|
const { strokes: glyphStrokes, fills: glyphFills, gaps, groups } = spec ? placeEchelonsAlongLine(verts, spec, h, {
|
|
7967
7982
|
labelRepetitions,
|
|
7968
7983
|
labelPosition,
|
|
7969
|
-
defaultLabelPosition: DEFAULT_GENERIC_C2_LINE_OPTIONS.labelPosition,
|
|
7970
7984
|
labelSpacing,
|
|
7971
7985
|
labelOrientation,
|
|
7972
7986
|
echelonPadding
|
|
@@ -8008,13 +8022,10 @@ function createGenericC2Line(positions, options = {}, textAmplifiers = {}, conte
|
|
|
8008
8022
|
coordinates: glyphFills.map((ring) => [ring])
|
|
8009
8023
|
}
|
|
8010
8024
|
});
|
|
8011
|
-
|
|
8012
|
-
|
|
8013
|
-
|
|
8014
|
-
|
|
8015
|
-
pushEchelonUnitLabels(unitLabels, groups, units, h, sizeOptions.labelPadding ?? .4, labelSize);
|
|
8016
|
-
features.push(...unitLabels);
|
|
8017
|
-
}
|
|
8025
|
+
const { properties: unitLabelSize } = echelonUnitLabelSize(h, echelonSizePixels, sizeOptions.metersPerPixel);
|
|
8026
|
+
const unitLabels = [];
|
|
8027
|
+
pushEchelonUnitLabels(unitLabels, groups, unitLabelsFromAmplifiers(textAmplifiers, GENERIC_C2_UNIT_LABEL_FIELDS), h, sizeOptions.labelPadding ?? .4, unitLabelSize);
|
|
8028
|
+
features.push(...unitLabels);
|
|
8018
8029
|
const above = [textAmplifiers.H, textAmplifiers.T].filter((v) => Boolean(v)).join(" ");
|
|
8019
8030
|
const below = [textAmplifiers.W, textAmplifiers.W1].filter((v) => Boolean(v)).join(" - ");
|
|
8020
8031
|
const trimmedPhaseLineName = phaseLineName?.trim();
|
|
@@ -12630,6 +12641,111 @@ const FINAL_COORDINATION_LINE = defineControlMeasure({
|
|
|
12630
12641
|
}
|
|
12631
12642
|
});
|
|
12632
12643
|
//#endregion
|
|
12644
|
+
//#region src/generators/cm14-maneuver-lines/infiltration-lane.ts
|
|
12645
|
+
const DEFAULT_INFILTRATION_LANE_OPTIONS = {
|
|
12646
|
+
smooth: false,
|
|
12647
|
+
smoothResolution: 12
|
|
12648
|
+
};
|
|
12649
|
+
const INFILTRATION_LANE_METADATA = {
|
|
12650
|
+
id: "infiltration-lane",
|
|
12651
|
+
name: "Infiltration Lane",
|
|
12652
|
+
description: "A control measure that coordinates forward and lateral movement of infiltrating units and fixes fire planning responsibilities.",
|
|
12653
|
+
entity: "Maneuver Lines",
|
|
12654
|
+
entityType: "Infiltration Lane",
|
|
12655
|
+
value: "140800",
|
|
12656
|
+
minCoordinates: 3,
|
|
12657
|
+
geometry: "line",
|
|
12658
|
+
geometryTypes: ["MultiLineString", "Point"],
|
|
12659
|
+
paints: {
|
|
12660
|
+
stroke: true,
|
|
12661
|
+
fill: "none",
|
|
12662
|
+
text: true
|
|
12663
|
+
},
|
|
12664
|
+
drawRule: "Polyline1",
|
|
12665
|
+
capturesLabelSize: true,
|
|
12666
|
+
params: SMOOTH_LINE_PARAMS,
|
|
12667
|
+
textAmplifiers: [{
|
|
12668
|
+
key: "T",
|
|
12669
|
+
label: "Unique designation",
|
|
12670
|
+
description: "Field T — the infiltration lane's unique designation.",
|
|
12671
|
+
placeholder: "GREEN",
|
|
12672
|
+
maxLength: 21
|
|
12673
|
+
}]
|
|
12674
|
+
};
|
|
12675
|
+
/** Creates the two parallel boundaries and centered Field T lane designation. */
|
|
12676
|
+
function createInfiltrationLane(coordinates, options = {}, textAmplifiers = {}) {
|
|
12677
|
+
const centerlineCoordinates = coordinates.slice(0, -1);
|
|
12678
|
+
const widthPoint = coordinates[coordinates.length - 1];
|
|
12679
|
+
const rawCenterline = centerlineCoordinates.map((point) => project(point[0], point[1]));
|
|
12680
|
+
const p1 = rawCenterline[0];
|
|
12681
|
+
const p2 = rawCenterline[1];
|
|
12682
|
+
const frame = createProjectedBaselineFrame(p1, p2, {
|
|
12683
|
+
origin: "midpoint",
|
|
12684
|
+
normal: "left"
|
|
12685
|
+
});
|
|
12686
|
+
if (!frame) return {
|
|
12687
|
+
type: "FeatureCollection",
|
|
12688
|
+
features: []
|
|
12689
|
+
};
|
|
12690
|
+
const signedHalfWidth = frame.signedNormalDistance(widthPoint);
|
|
12691
|
+
if (Math.abs(signedHalfWidth) < 1e-6) return {
|
|
12692
|
+
type: "FeatureCollection",
|
|
12693
|
+
features: []
|
|
12694
|
+
};
|
|
12695
|
+
const rawBoundaries = offsetPolylineSides(rawCenterline, new Array(rawCenterline.length).fill(signedHalfWidth));
|
|
12696
|
+
const smooth = (line) => smoothLineVerts(line, options, 12);
|
|
12697
|
+
const features = [{
|
|
12698
|
+
type: "Feature",
|
|
12699
|
+
properties: { part: "infiltration-lane" },
|
|
12700
|
+
geometry: {
|
|
12701
|
+
type: "MultiLineString",
|
|
12702
|
+
coordinates: [smooth(rawBoundaries.left), smooth(rawBoundaries.right)].map((line) => line.map((point) => unproject(point[0], point[1])))
|
|
12703
|
+
}
|
|
12704
|
+
}];
|
|
12705
|
+
if (textAmplifiers.T) {
|
|
12706
|
+
const { segments, totalLength } = polylineSegments(smooth(rawCenterline));
|
|
12707
|
+
const labelFrame = pointAlongPolyline(segments, totalLength, .5);
|
|
12708
|
+
if (!labelFrame) return {
|
|
12709
|
+
type: "FeatureCollection",
|
|
12710
|
+
features
|
|
12711
|
+
};
|
|
12712
|
+
features.push({
|
|
12713
|
+
type: "Feature",
|
|
12714
|
+
properties: {
|
|
12715
|
+
part: "label",
|
|
12716
|
+
labelPlacement: false,
|
|
12717
|
+
amplifierField: "T",
|
|
12718
|
+
text: textAmplifiers.T,
|
|
12719
|
+
rotation: labelRotationAlong(labelFrame.along),
|
|
12720
|
+
...labelSizeProps(options)
|
|
12721
|
+
},
|
|
12722
|
+
geometry: {
|
|
12723
|
+
type: "Point",
|
|
12724
|
+
coordinates: unproject(labelFrame.point[0], labelFrame.point[1])
|
|
12725
|
+
}
|
|
12726
|
+
});
|
|
12727
|
+
}
|
|
12728
|
+
return {
|
|
12729
|
+
type: "FeatureCollection",
|
|
12730
|
+
features
|
|
12731
|
+
};
|
|
12732
|
+
}
|
|
12733
|
+
const INFILTRATION_LANE = defineControlMeasure({
|
|
12734
|
+
metadata: INFILTRATION_LANE_METADATA,
|
|
12735
|
+
generator: createInfiltrationLane,
|
|
12736
|
+
defaultOptions: DEFAULT_INFILTRATION_LANE_OPTIONS,
|
|
12737
|
+
rule: polyline1DrawRule,
|
|
12738
|
+
previewSample: {
|
|
12739
|
+
controlPoints: [
|
|
12740
|
+
[-1, 0],
|
|
12741
|
+
[1, 0],
|
|
12742
|
+
[0, .36]
|
|
12743
|
+
],
|
|
12744
|
+
textAmplifiers: { T: "GREEN" },
|
|
12745
|
+
options: { labelSize: 100 }
|
|
12746
|
+
}
|
|
12747
|
+
});
|
|
12748
|
+
//#endregion
|
|
12633
12749
|
//#region src/generators/cm14-maneuver-lines/airhead-line.ts
|
|
12634
12750
|
/** Clearance between the boundary's southernmost point and the caption, as a
|
|
12635
12751
|
* ratio of the caption's height. */
|
|
@@ -17025,6 +17141,7 @@ const DEFINITIONS = {
|
|
|
17025
17141
|
"forward-edge-of-battle-area": FORWARD_EDGE_OF_BATTLE_AREA,
|
|
17026
17142
|
"bridgehead-line": BRIDGEHEAD_LINE,
|
|
17027
17143
|
"final-coordination-line": FINAL_COORDINATION_LINE,
|
|
17144
|
+
"infiltration-lane": INFILTRATION_LANE,
|
|
17028
17145
|
"airhead-line": AIRHEAD_LINE,
|
|
17029
17146
|
"holding-line": HOLDING_LINE,
|
|
17030
17147
|
"release-line": RELEASE_LINE,
|
|
@@ -17480,4 +17597,4 @@ function assertNever(value) {
|
|
|
17480
17597
|
throw new Error(`Unhandled control measure kind: ${String(value)}`);
|
|
17481
17598
|
}
|
|
17482
17599
|
//#endregion
|
|
17483
|
-
export {
|
|
17600
|
+
export { DEFAULT_ENCIRCLEMENT_OPTIONS as $, DEFAULT_PORTRAYAL as $t, DEFAULT_RETIRE_OPTIONS as A, pointOnMidpointPerpendicularAxis as An, DEFAULT_BLOCK_OPTIONS as At, DEFAULT_LIMIT_OF_ADVANCE_OPTIONS as B, getMetersPerPixel as Bn, DEFAULT_ENGAGEMENT_AREA_OPTIONS as Bt, DEFAULT_MAIN_ATTACK_OPTIONS as C, blockDrawRule as Cn, DEFAULT_BREACH_OPTIONS as Ct, DEFAULT_WITHDRAW_OPTIONS as D, computeDefaultMidpointPerpendicularPoint as Dn, DEFAULT_LIGHT_LINE_OPTIONS as Dt, DEFAULT_WITHDRAW_UNDER_PRESSURE_OPTIONS as E, area27DrawRule as En, DEFAULT_ENGINEER_WORK_LINE_OPTIONS as Et, DEFAULT_FORTIFIED_LINE_OPTIONS as F, haversineDistance as Fn, DEFAULT_ANTITANK_WALL_OPTIONS as Ft, DEFAULT_HOLDING_LINE_OPTIONS as G, TEXT_AMPLIFIER_FIELDS as Gt, DEFAULT_HANDOVER_LINE_OPTIONS as H, DEFAULT_DIRECTION_OF_SUPPORTING_ATTACK_OPTIONS as Ht, DEFAULT_PROBABLE_LINE_OF_DEPLOYMENT_OPTIONS as I, project as In, DEFAULT_ANTITANK_DITCH_OPTIONS as It, DEFAULT_PHASE_LINE_OPTIONS as J, resolveAmplifierPlacement as Jt, DEFAULT_INFILTRATION_LANE_OPTIONS as K, canonicalTextAmplifierKey as Kt, PROBABLE_LINE_OF_DEPLOYMENT_DASH as L, sphericalBearing as Ln, DEFAULT_ASSEMBLY_AREA_OPTIONS as Lt, DEFAULT_PENETRATE_OPTIONS as M, createBaselineFrame as Mn, DEFAULT_BATTLE_POSITION_OPTIONS as Mt, DEFAULT_FRONTAL_ATTACK_OPTIONS as N, calculateMetrics as Nn, DEFAULT_ATTACK_HELICOPTER_OPTIONS as Nt, DEFAULT_SEIZE_OPTIONS as O, createMidpointPerpendicularDrawRule as On, DEFAULT_BOUNDARY_OPTIONS as Ot, DEFAULT_FORTIFIED_AREA_OPTIONS as P, computeInitialWidthPoint as Pn, DEFAULT_ATTACK_BY_FIRE_OPTIONS as Pt, DEFAULT_FINAL_PROTECTIVE_FIRE_OPTIONS as Q, DEFAULT_LINE_JOIN as Qt, DEFAULT_LINE_OF_DEPARTURE_CONTACT_OPTIONS as R, unproject as Rn, DEFAULT_AREA_OF_OPERATIONS_OPTIONS as Rt, DEFAULT_MINEFIELD_OPTIONS as S, disruptDrawRule as Sn, DEFAULT_BYPASS_OPTIONS as St, DEFAULT_JOINT_TACTICAL_ACTION_AREA_OPTIONS as T, containDrawRule as Tn, DEFAULT_GENERIC_C2_LINE_OPTIONS as Tt, DEFAULT_FORWARD_EDGE_OF_BATTLE_AREA_OPTIONS as U, DEFAULT_DIRECTION_OF_MAIN_ATTACK_OPTIONS as Ut, DEFAULT_BATTLE_HANDOVER_LINE_OPTIONS as V, roundToFixed as Vn, DEFAULT_AREA_DEFENSE_OPTIONS as Vt, DEFAULT_RELEASE_LINE_OPTIONS as W, DEFAULT_DIRECTION_OF_ATTACK_AVIATION_OPTIONS as Wt, DEFAULT_FIX_MISSION_TASK_OPTIONS as X, DEFAULT_LABEL_SIZE_CLAMP_CSS_PIXELS as Xt, DEFAULT_FLOT_OPTIONS as Y, DEFAULT_LABEL_HEIGHT_CSS_PIXELS as Yt, DEFAULT_FIX_OPTIONS as Z, DEFAULT_LINE_CAP as Zt, DEFAULT_PRINCIPAL_DIRECTION_OF_FIRE_OPTIONS as _, dynamicPointDrawRule as _n, DEFAULT_GENERIC_POLYGON_OPTIONS as _t, DEFINITIONS as a, rectangleDrawRule as an, DEFAULT_COVER_OPTIONS as at, DEFAULT_OBSTACLE_BYPASS_EASY_OPTIONS as b, point12DrawRule as bn, DEFAULT_CLASSIC_ARROW_OPTIONS as bt, getDefaultOptions as c, polyline1DrawRule as cn, DEFAULT_COUNTERATTACK_OPTIONS as ct, DEFAULT_TURN_OPTIONS as d, line24DrawRule as dn, DEFAULT_RADAR_SEARCH_DOCTRINE_OPTIONS as dt, DEFAULT_STROKE_DASH_CSS_PIXELS as en, DEFAULT_DISRUPT_OPTIONS as et, DEFAULT_SUPPORT_BY_FIRE_OPTIONS as f, line23DrawRule as fn, RADAR_SEARCH_DOCTRINE_FILL_COLOR as ft, SECONDARY_DIRECTION_OF_FIRE_DASH as g, attackByFireDrawRule as gn, DEFAULT_GENERIC_RECTANGLE_OPTIONS as gt, DEFAULT_SECONDARY_DIRECTION_OF_FIRE_OPTIONS as h, ambushDrawRule as hn, DEFAULT_GENERIC_SECTOR_OPTIONS as ht, CONTROL_MEASURE_METADATA as i, DEFAULT_AIRBORNE_ATTACK_OPTIONS as in, DEFAULT_DELAY_OPTIONS as it, DEFAULT_REARWARD_PASSAGE_OF_LINES_OPTIONS as j, snapToMidpointPerpendicular as jn, DEFAULT_CONTAIN_OPTIONS as jt, DEFAULT_SCREEN_OPTIONS as k, getMidpointPerpendicularSignedDistance as kn, DEFAULT_BLOCK_ARROW_OPTIONS as kt, listControlMeasureMetadata as l, line27DrawRule as ln, DEFAULT_SUPPORTING_ATTACK_OPTIONS as lt, DEFAULT_STRONG_POINT_OPTIONS as m, line1DrawRule as mn, DEFAULT_GENERIC_TEXT_OPTIONS as mt, resolveStyleHints as n, DEFAULT_SYMBOL_COLOR as nn, DEFAULT_DISRUPT_MISSION_TASK_OPTIONS as nt, getControlMeasureMetadata as o, axis1DrawRule as on, DEFAULT_TACTICAL_ARROW_OPTIONS as ot, DEFAULT_RETAIN_OPTIONS as p, turnDrawRule as pn, RADAR_SEARCH_DOCTRINE_STROKE_COLOR as pt, DEFAULT_BRIDGEHEAD_LINE_OPTIONS as q, normalizeTextAmplifiers as qt, CONTROL_MEASURE_IDS as r, DEFAULT_AMBUSH_OPTIONS as rn, DEFAULT_DISENGAGE_OPTIONS as rt, getControlMeasureMetadataByValue as s, supportByFireDrawRule as sn, DEFAULT_COUNTERATTACK_BY_FIRE_OPTIONS as st, renderControlMeasure as t, DEFAULT_STROKE_WIDTH_CSS_PIXELS as tn, DEFAULT_GUARD_OPTIONS as tt, DEFAULT_TURNING_MOVEMENT_OPTIONS as u, line26DrawRule as un, DEFAULT_CLEAR_OPTIONS as ut, DEFAULT_PICKUP_ZONE_OPTIONS as v, sectorDrawRule as vn, DEFAULT_GENERIC_LINE_OPTIONS as vt, DEFAULT_LANDING_ZONE_OPTIONS as w, centerRadiusDrawRule as wn, DEFAULT_BLOCK_MISSION_TASK_OPTIONS as wt, DEFAULT_OBSTACLE_BYPASS_DIFFICULT_OPTIONS as x, penetrateDrawRule as xn, DEFAULT_CANALIZE_OPTIONS as xt, DEFAULT_OBSTACLE_BYPASS_IMPOSSIBLE_OPTIONS as y, staticPointDrawRule as yn, DEFAULT_GENERIC_CIRCLE_OPTIONS as yt, DEFAULT_LINE_OF_DEPARTURE_OPTIONS as z, EPSILON as zn, DEFAULT_MOBILE_DEFENSE_OPTIONS as zt };
|
|
@@ -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="Infiltration Lane"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M5.00 31.74 L91.00 31.74" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M5.00 16.26 L91.00 16.26" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><g transform="rotate(0.000 48.000 24.000)"><text x="48" y="24" fill="#1e293b" font-family="sans-serif" font-size="7.68" font-weight="600" text-anchor="middle" dominant-baseline="central">GREEN</text></g></svg>
|
package/package.json
CHANGED