@orbat-mapper/control-measures 0.12.0 → 0.12.1

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.
@@ -836,6 +836,12 @@ declare function createGenericC2Line(positions: Position[], options?: GenericC2L
836
836
  //#region src/internal/area-labels.d.ts
837
837
  /** Shared placement options for the centered-label area measures. */
838
838
  interface AreaLabelOptions extends LabelSizeOptions {
839
+ /**
840
+ * Render a doctrinal label prefix and Field T on separate centered lines.
841
+ * Areas without a prefix, or without Field T, keep a single-line label.
842
+ * @default false
843
+ */
844
+ multilineLabel?: boolean;
839
845
  /**
840
846
  * Extra row leading (and ENY inset), as a ratio of the label's resolved
841
847
  * text height, like the labeled line measures' own `labelPadding`.
package/dist/index.d.mts CHANGED
@@ -1,3 +1,3 @@
1
- import { $ as CONTROL_MEASURE_METADATA, $i as ControlMeasurePaintCapability, $n as DEFAULT_ATTACK_HELICOPTER_OPTIONS, $r as StyleHints, $t as DEFAULT_DISRUPT_MISSION_TASK_OPTIONS, A as BaselineFrame, Ai as sphericalBearing, An as DEFAULT_LIMIT_OF_ADVANCE_OPTIONS, Ar as AreaOfOperationsOptions, At as FortifiedAreaOptions, B as toSimpleStyle, Bi as DEFAULT_LABEL_SIZE_CLAMP_CSS_PIXELS, Bn as BridgeheadLineOptions, Br as DEFAULT_ASSEMBLY_AREA_OPTIONS, Bt as WithdrawOptions, C as area27DrawRule, Ci as EngineerWorkLineOptions, Cn as DEFAULT_PROBABLE_LINE_OF_DEPLOYMENT_OPTIONS, Cr as DEFAULT_CLASSIC_ARROW_OPTIONS, Ct as BlockOptions, D as getMidpointPerpendicularSignedDistance, Di as Point2D, Dn as LineOfDepartureContactOptions, Dr as MainAttackOptions, Dt as DEFAULT_FRONTAL_ATTACK_OPTIONS, E as createMidpointPerpendicularDrawRule, Ei as LabelSizeOptions, En as DEFAULT_LINE_OF_DEPARTURE_CONTACT_OPTIONS, Er as DEFAULT_MAIN_ATTACK_OPTIONS, Et as TurningMovementOptions, F as EPSILON, Fi as ControlMeasureOptionHandle, Fn as HandoverLineOptions, Fr as DEFAULT_LANDING_ZONE_OPTIONS, Ft as AntitankDitchOptions, G as foldsBoxTransformOptions, Gi as DEFAULT_STROKE_WIDTH_CSS_PIXELS, Gn as PhaseLineOptions, Gr as AreaDefenseOptions, Gt as DEFAULT_RETIRE_OPTIONS, H as dragControlMeasureOptionHandle, Hi as DEFAULT_LINE_JOIN, Hn as DEFAULT_FORWARD_EDGE_OF_BATTLE_AREA_OPTIONS, Hr as MobileDefenseOptions, Ht as SeizeOptions, I as getMetersPerPixel, Ii as ControlMeasureOptionHandleDragEvent, In as DEFAULT_RELEASE_LINE_OPTIONS, Ir as LandingZoneOptions, It as DEFAULT_ANTITANK_DITCH_OPTIONS, J as renderControlMeasure, Ji as MeasuredText, Jn as AttackByFireOptions, Jr as EncirclementOptions, Jt as RearwardPassageOfLinesOptions, K as freezeOrientationOptions, Ki as LogicalTextStyle, Kn as DEFAULT_FLOT_OPTIONS, Kr as DEFAULT_AREA_DEFENSE_OPTIONS, Kt as RetireOptions, L as roundToFixed, Li as ControlMeasureOptionHandles, Ln as ReleaseLineOptions, Lr as DEFAULT_JOINT_TACTICAL_ACTION_AREA_OPTIONS, Lt as DEFAULT_WITHDRAW_UNDER_PRESSURE_OPTIONS, M as BaselineFrameOptions, Mi as BoundaryOptions, Mn as BattleHandoverLineOptions, Mr as DEFAULT_PICKUP_ZONE_OPTIONS, Mt as FortifiedLineOptions, N as BaselineFrameOrigin, Ni as DEFAULT_BOUNDARY_OPTIONS, Nn as DEFAULT_BATTLE_HANDOVER_LINE_OPTIONS, Nr as PickupZoneOptions, Nt as AntitankWallOptions, O as pointOnMidpointPerpendicularAxis, Oi as haversineDistance, On as DEFAULT_LINE_OF_DEPARTURE_OPTIONS, Or as calculateMetrics, Ot as FrontalAttackOptions, P as createBaselineFrame, Pi as BoxTransformDelta, Pn as DEFAULT_HANDOVER_LINE_OPTIONS, Pr as MineType, Pt as DEFAULT_ANTITANK_WALL_OPTIONS, Q as CONTROL_MEASURE_IDS, Qi as ControlMeasureMetadata, Qn as AttackHelicopterOptions, Qr as FeaturePartProps, Qt as GuardOptions, R as SimpleStyleProps, Ri as ControlMeasureRenderContext, Rn as DEFAULT_HOLDING_LINE_OPTIONS, Rr as JointTacticalActionAreaOptions, Rt as WithdrawUnderPressureOptions, S as containDrawRule, Si as DEFAULT_ENGINEER_WORK_LINE_OPTIONS, Sn as DEFAULT_BLOCK_MISSION_TASK_OPTIONS, Sr as ClassicArrowOptions, St as DisruptOptions, T as computeDefaultMidpointPerpendicularPoint, Ti as LightLineOptions, Tn as ProbableLineOfDeploymentOptions, Tr as SupportingAttackOptions, Tt as DEFAULT_TURNING_MOVEMENT_OPTIONS, U as getControlMeasureOptionHandles, Ui as DEFAULT_PORTRAYAL, Un as ForwardEdgeOfBattleAreaOptions, Ur as DEFAULT_ENGAGEMENT_AREA_OPTIONS, Ut as DEFAULT_SCREEN_OPTIONS, V as resolveStyleHints, Vi as DEFAULT_LINE_CAP, Vn as DEFAULT_BRIDGEHEAD_LINE_OPTIONS, Vr as DEFAULT_MOBILE_DEFENSE_OPTIONS, Vt as DEFAULT_SEIZE_OPTIONS, W as applyBoxTransformOptions, Wi as DEFAULT_STROKE_DASH_CSS_PIXELS, Wn as DEFAULT_PHASE_LINE_OPTIONS, Wr as EngagementAreaOptions, Wt as ScreenOptions, X as cloneControlMeasure, Xi as ControlMeasureGeometry, Xn as DEFAULT_SUPPORT_BY_FIRE_OPTIONS, Xr as FinalProtectiveFireOptions, Xt as PenetrateOptions, Y as ControlMeasure, Yi as ControlMeasureFillCapability, Yn as DEFAULT_ATTACK_BY_FIRE_OPTIONS, Yr as DEFAULT_FINAL_PROTECTIVE_FIRE_OPTIONS, Yt as DEFAULT_PENETRATE_OPTIONS, Z as isKind, Zi as ControlMeasureGeometryType, Zn as SupportByFireOptions, Zr as ControlMeasureRender, Zt as DEFAULT_GUARD_OPTIONS, _ as point12DrawRule, _a as canonicalTextAmplifierKey, _i as DEFAULT_CONTAIN_OPTIONS, _n as BypassOptions, _r as GenericLineOptions, _t as DEFAULT_FIX_MISSION_TASK_OPTIONS, a as axis1DrawRule, aa as parameterPresentationTierRank, ai as PrincipalDirectionOfFireOptions, an as CoverOptions, ar as RadarSearchDoctrineOptions, at as getDefaultOptions, b as disruptDrawRule, ba as AnchorTransformEvent, bi as DEFAULT_GENERIC_C2_LINE_OPTIONS, bn as DEFAULT_BREACH_OPTIONS, br as DEFAULT_BLOCK_ARROW_OPTIONS, bt as FixOptions, c as line26DrawRule, ca as AmplifierPlacement, ci as DEFAULT_DIRECTION_OF_MAIN_ATTACK_OPTIONS, cn as TacticalArrowOptions, cr as DEFAULT_GENERIC_SECTOR_OPTIONS, ct as ObstacleBypassImpossibleOptions, d as turnDrawRule, da as GeneratedLabelKey, di as DirectionOfAttackAviationOptions, dn as CounterattackOptions, dr as GenericCircleOptions, dt as DEFAULT_OBSTACLE_BYPASS_EASY_OPTIONS, ea as PARAMETER_PRESENTATION_TIERS, ei as controlMeasureIdFromFeature, en as DisruptMissionTaskOptions, er as AirborneAttackOptions, et as ControlMeasureId, f as line1DrawRule, fa as LabelPlacementOverride, fi as DEFAULT_RETAIN_OPTIONS, fn as DEFAULT_COUNTERATTACK_OPTIONS, fr as DEFAULT_GENERIC_RECTANGLE_OPTIONS, ft as ObstacleBypassEasyOptions, g as staticPointDrawRule, ga as TextAmplifiers, gi as ContainOptions, gn as DEFAULT_CANALIZE_OPTIONS, gr as DEFAULT_GENERIC_LINE_OPTIONS, gt as TurnOptions, h as dynamicPointDrawRule, ha as TextAmplifierKey, hi as StrongPointOptions, hn as CanalizeOptions, hr as GenericPolygonOptions, ht as DEFAULT_TURN_OPTIONS, i as rectangleDrawRule, ia as TextAmplifierDescriptor, ii as DEFAULT_PRINCIPAL_DIRECTION_OF_FIRE_OPTIONS, in as DelayOptions, ir as RADAR_SEARCH_DOCTRINE_STROKE_COLOR, it as getControlMeasureMetadataByValue, j as BaselineFrameNormal, ji as unproject, jn as LimitOfAdvanceOptions, jr as DEFAULT_AREA_OF_OPERATIONS_OPTIONS, jt as DEFAULT_FORTIFIED_LINE_OPTIONS, k as snapToMidpointPerpendicular, ki as project, kn as LineOfDepartureOptions, kr as computeInitialWidthPoint, kt as DEFAULT_FORTIFIED_AREA_OPTIONS, l as line24DrawRule, la as AmplifierPlacements, li as DirectionOfMainAttackOptions, ln as CounterattackByFireOptions, lr as GenericSectorOptions, lt as DEFAULT_OBSTACLE_BYPASS_DIFFICULT_OPTIONS, m as attackByFireDrawRule, ma as TextAmplifierField, mi as DEFAULT_STRONG_POINT_OPTIONS, mn as DEFAULT_CLEAR_OPTIONS, mr as DEFAULT_GENERIC_POLYGON_OPTIONS, mt as MinefieldOptions, n as DEFAULT_AMBUSH_OPTIONS, na as ParameterPresentationTier, ni as SECONDARY_DIRECTION_OF_FIRE_DASH, nn as DisengageOptions, nr as DEFAULT_RADAR_SEARCH_DOCTRINE_OPTIONS, nt as OptionsByKind, o as supportByFireDrawRule, oa as resolveParameterPresentationTier, oi as DEFAULT_DIRECTION_OF_SUPPORTING_ATTACK_OPTIONS, on as DEFAULT_COVER_OPTIONS, or as DEFAULT_GENERIC_TEXT_OPTIONS, ot as listControlMeasureMetadata, p as ambushDrawRule, pa as TEXT_AMPLIFIER_FIELDS, pi as RetainOptions, pn as ClearOptions, pr as GenericRectangleOptions, pt as DEFAULT_MINEFIELD_OPTIONS, q as RenderOptions, qi as MeasureTextRequest, qn as FLOTOptions, qr as DEFAULT_ENCIRCLEMENT_OPTIONS, qt as DEFAULT_REARWARD_PASSAGE_OF_LINES_OPTIONS, r as sectorDrawRule, ra as ParameterSemanticRole, ri as SecondaryDirectionOfFireOptions, rn as DEFAULT_DELAY_OPTIONS, rr as RADAR_SEARCH_DOCTRINE_FILL_COLOR, rt as getControlMeasureMetadata, s as line27DrawRule, sa as resolveParameterSemanticRole, si as DirectionOfSupportingAttackOptions, sn as DEFAULT_TACTICAL_ARROW_OPTIONS, sr as GenericTextOptions, st as DEFAULT_OBSTACLE_BYPASS_IMPOSSIBLE_OPTIONS, t as AmbushOptions, ta as ParamDescriptor, ti as DEFAULT_SECONDARY_DIRECTION_OF_FIRE_OPTIONS, tn as DEFAULT_DISENGAGE_OPTIONS, tr as DEFAULT_AIRBORNE_ATTACK_OPTIONS, tt as ControlMeasureKind, u as line23DrawRule, ua as CanonicalTextAmplifiers, ui as DEFAULT_DIRECTION_OF_ATTACK_AVIATION_OPTIONS, un as DEFAULT_COUNTERATTACK_BY_FIRE_OPTIONS, ur as DEFAULT_GENERIC_CIRCLE_OPTIONS, ut as ObstacleBypassDifficultOptions, v as penetrateDrawRule, va as normalizeTextAmplifiers, vi as BattlePositionOptions, vn as DEFAULT_BYPASS_OPTIONS, vr as BlockArrowHeadStyle, vt as FixMissionTaskOptions, w as MidpointPerpendicularDrawRuleOptions, wi as DEFAULT_LIGHT_LINE_OPTIONS, wn as PROBABLE_LINE_OF_DEPLOYMENT_DASH, wr as DEFAULT_SUPPORTING_ATTACK_OPTIONS, wt as DEFAULT_BLOCK_OPTIONS, x as blockDrawRule, xa as ControlMeasureDrawRule, xi as GenericC2LineOptions, xn as BlockMissionTaskOptions, xr as ClassicArrowHeadStyle, xt as DEFAULT_DISRUPT_OPTIONS, y as centerRadiusDrawRule, ya as resolveAmplifierPlacement, yi as DEFAULT_BATTLE_POSITION_OPTIONS, yn as BreachOptions, yr as BlockArrowOptions, yt as DEFAULT_FIX_OPTIONS, z as SimpleStyleRender, zi as DEFAULT_LABEL_HEIGHT_CSS_PIXELS, zn as HoldingLineOptions, zr as AssemblyAreaOptions, zt as DEFAULT_WITHDRAW_OPTIONS } from "./index-IeI0ELGA.mjs";
1
+ import { $ as CONTROL_MEASURE_METADATA, $i as ControlMeasurePaintCapability, $n as DEFAULT_ATTACK_HELICOPTER_OPTIONS, $r as StyleHints, $t as DEFAULT_DISRUPT_MISSION_TASK_OPTIONS, A as BaselineFrame, Ai as sphericalBearing, An as DEFAULT_LIMIT_OF_ADVANCE_OPTIONS, Ar as AreaOfOperationsOptions, At as FortifiedAreaOptions, B as toSimpleStyle, Bi as DEFAULT_LABEL_SIZE_CLAMP_CSS_PIXELS, Bn as BridgeheadLineOptions, Br as DEFAULT_ASSEMBLY_AREA_OPTIONS, Bt as WithdrawOptions, C as area27DrawRule, Ci as EngineerWorkLineOptions, Cn as DEFAULT_PROBABLE_LINE_OF_DEPLOYMENT_OPTIONS, Cr as DEFAULT_CLASSIC_ARROW_OPTIONS, Ct as BlockOptions, D as getMidpointPerpendicularSignedDistance, Di as Point2D, Dn as LineOfDepartureContactOptions, Dr as MainAttackOptions, Dt as DEFAULT_FRONTAL_ATTACK_OPTIONS, E as createMidpointPerpendicularDrawRule, Ei as LabelSizeOptions, En as DEFAULT_LINE_OF_DEPARTURE_CONTACT_OPTIONS, Er as DEFAULT_MAIN_ATTACK_OPTIONS, Et as TurningMovementOptions, F as EPSILON, Fi as ControlMeasureOptionHandle, Fn as HandoverLineOptions, Fr as DEFAULT_LANDING_ZONE_OPTIONS, Ft as AntitankDitchOptions, G as foldsBoxTransformOptions, Gi as DEFAULT_STROKE_WIDTH_CSS_PIXELS, Gn as PhaseLineOptions, Gr as AreaDefenseOptions, Gt as DEFAULT_RETIRE_OPTIONS, H as dragControlMeasureOptionHandle, Hi as DEFAULT_LINE_JOIN, Hn as DEFAULT_FORWARD_EDGE_OF_BATTLE_AREA_OPTIONS, Hr as MobileDefenseOptions, Ht as SeizeOptions, I as getMetersPerPixel, Ii as ControlMeasureOptionHandleDragEvent, In as DEFAULT_RELEASE_LINE_OPTIONS, Ir as LandingZoneOptions, It as DEFAULT_ANTITANK_DITCH_OPTIONS, J as renderControlMeasure, Ji as MeasuredText, Jn as AttackByFireOptions, Jr as EncirclementOptions, Jt as RearwardPassageOfLinesOptions, K as freezeOrientationOptions, Ki as LogicalTextStyle, Kn as DEFAULT_FLOT_OPTIONS, Kr as DEFAULT_AREA_DEFENSE_OPTIONS, Kt as RetireOptions, L as roundToFixed, Li as ControlMeasureOptionHandles, Ln as ReleaseLineOptions, Lr as DEFAULT_JOINT_TACTICAL_ACTION_AREA_OPTIONS, Lt as DEFAULT_WITHDRAW_UNDER_PRESSURE_OPTIONS, M as BaselineFrameOptions, Mi as BoundaryOptions, Mn as BattleHandoverLineOptions, Mr as DEFAULT_PICKUP_ZONE_OPTIONS, Mt as FortifiedLineOptions, N as BaselineFrameOrigin, Ni as DEFAULT_BOUNDARY_OPTIONS, Nn as DEFAULT_BATTLE_HANDOVER_LINE_OPTIONS, Nr as PickupZoneOptions, Nt as AntitankWallOptions, O as pointOnMidpointPerpendicularAxis, Oi as haversineDistance, On as DEFAULT_LINE_OF_DEPARTURE_OPTIONS, Or as calculateMetrics, Ot as FrontalAttackOptions, P as createBaselineFrame, Pi as BoxTransformDelta, Pn as DEFAULT_HANDOVER_LINE_OPTIONS, Pr as MineType, Pt as DEFAULT_ANTITANK_WALL_OPTIONS, Q as CONTROL_MEASURE_IDS, Qi as ControlMeasureMetadata, Qn as AttackHelicopterOptions, Qr as FeaturePartProps, Qt as GuardOptions, R as SimpleStyleProps, Ri as ControlMeasureRenderContext, Rn as DEFAULT_HOLDING_LINE_OPTIONS, Rr as JointTacticalActionAreaOptions, Rt as WithdrawUnderPressureOptions, S as containDrawRule, Si as DEFAULT_ENGINEER_WORK_LINE_OPTIONS, Sn as DEFAULT_BLOCK_MISSION_TASK_OPTIONS, Sr as ClassicArrowOptions, St as DisruptOptions, T as computeDefaultMidpointPerpendicularPoint, Ti as LightLineOptions, Tn as ProbableLineOfDeploymentOptions, Tr as SupportingAttackOptions, Tt as DEFAULT_TURNING_MOVEMENT_OPTIONS, U as getControlMeasureOptionHandles, Ui as DEFAULT_PORTRAYAL, Un as ForwardEdgeOfBattleAreaOptions, Ur as DEFAULT_ENGAGEMENT_AREA_OPTIONS, Ut as DEFAULT_SCREEN_OPTIONS, V as resolveStyleHints, Vi as DEFAULT_LINE_CAP, Vn as DEFAULT_BRIDGEHEAD_LINE_OPTIONS, Vr as DEFAULT_MOBILE_DEFENSE_OPTIONS, Vt as DEFAULT_SEIZE_OPTIONS, W as applyBoxTransformOptions, Wi as DEFAULT_STROKE_DASH_CSS_PIXELS, Wn as DEFAULT_PHASE_LINE_OPTIONS, Wr as EngagementAreaOptions, Wt as ScreenOptions, X as cloneControlMeasure, Xi as ControlMeasureGeometry, Xn as DEFAULT_SUPPORT_BY_FIRE_OPTIONS, Xr as FinalProtectiveFireOptions, Xt as PenetrateOptions, Y as ControlMeasure, Yi as ControlMeasureFillCapability, Yn as DEFAULT_ATTACK_BY_FIRE_OPTIONS, Yr as DEFAULT_FINAL_PROTECTIVE_FIRE_OPTIONS, Yt as DEFAULT_PENETRATE_OPTIONS, Z as isKind, Zi as ControlMeasureGeometryType, Zn as SupportByFireOptions, Zr as ControlMeasureRender, Zt as DEFAULT_GUARD_OPTIONS, _ as point12DrawRule, _a as canonicalTextAmplifierKey, _i as DEFAULT_CONTAIN_OPTIONS, _n as BypassOptions, _r as GenericLineOptions, _t as DEFAULT_FIX_MISSION_TASK_OPTIONS, a as axis1DrawRule, aa as parameterPresentationTierRank, ai as PrincipalDirectionOfFireOptions, an as CoverOptions, ar as RadarSearchDoctrineOptions, at as getDefaultOptions, b as disruptDrawRule, ba as AnchorTransformEvent, bi as DEFAULT_GENERIC_C2_LINE_OPTIONS, bn as DEFAULT_BREACH_OPTIONS, br as DEFAULT_BLOCK_ARROW_OPTIONS, bt as FixOptions, c as line26DrawRule, ca as AmplifierPlacement, ci as DEFAULT_DIRECTION_OF_MAIN_ATTACK_OPTIONS, cn as TacticalArrowOptions, cr as DEFAULT_GENERIC_SECTOR_OPTIONS, ct as ObstacleBypassImpossibleOptions, d as turnDrawRule, da as GeneratedLabelKey, di as DirectionOfAttackAviationOptions, dn as CounterattackOptions, dr as GenericCircleOptions, dt as DEFAULT_OBSTACLE_BYPASS_EASY_OPTIONS, ea as PARAMETER_PRESENTATION_TIERS, ei as controlMeasureIdFromFeature, en as DisruptMissionTaskOptions, er as AirborneAttackOptions, et as ControlMeasureId, f as line1DrawRule, fa as LabelPlacementOverride, fi as DEFAULT_RETAIN_OPTIONS, fn as DEFAULT_COUNTERATTACK_OPTIONS, fr as DEFAULT_GENERIC_RECTANGLE_OPTIONS, ft as ObstacleBypassEasyOptions, g as staticPointDrawRule, ga as TextAmplifiers, gi as ContainOptions, gn as DEFAULT_CANALIZE_OPTIONS, gr as DEFAULT_GENERIC_LINE_OPTIONS, gt as TurnOptions, h as dynamicPointDrawRule, ha as TextAmplifierKey, hi as StrongPointOptions, hn as CanalizeOptions, hr as GenericPolygonOptions, ht as DEFAULT_TURN_OPTIONS, i as rectangleDrawRule, ia as TextAmplifierDescriptor, ii as DEFAULT_PRINCIPAL_DIRECTION_OF_FIRE_OPTIONS, in as DelayOptions, ir as RADAR_SEARCH_DOCTRINE_STROKE_COLOR, it as getControlMeasureMetadataByValue, j as BaselineFrameNormal, ji as unproject, jn as LimitOfAdvanceOptions, jr as DEFAULT_AREA_OF_OPERATIONS_OPTIONS, jt as DEFAULT_FORTIFIED_LINE_OPTIONS, k as snapToMidpointPerpendicular, ki as project, kn as LineOfDepartureOptions, kr as computeInitialWidthPoint, kt as DEFAULT_FORTIFIED_AREA_OPTIONS, l as line24DrawRule, la as AmplifierPlacements, li as DirectionOfMainAttackOptions, ln as CounterattackByFireOptions, lr as GenericSectorOptions, lt as DEFAULT_OBSTACLE_BYPASS_DIFFICULT_OPTIONS, m as attackByFireDrawRule, ma as TextAmplifierField, mi as DEFAULT_STRONG_POINT_OPTIONS, mn as DEFAULT_CLEAR_OPTIONS, mr as DEFAULT_GENERIC_POLYGON_OPTIONS, mt as MinefieldOptions, n as DEFAULT_AMBUSH_OPTIONS, na as ParameterPresentationTier, ni as SECONDARY_DIRECTION_OF_FIRE_DASH, nn as DisengageOptions, nr as DEFAULT_RADAR_SEARCH_DOCTRINE_OPTIONS, nt as OptionsByKind, o as supportByFireDrawRule, oa as resolveParameterPresentationTier, oi as DEFAULT_DIRECTION_OF_SUPPORTING_ATTACK_OPTIONS, on as DEFAULT_COVER_OPTIONS, or as DEFAULT_GENERIC_TEXT_OPTIONS, ot as listControlMeasureMetadata, p as ambushDrawRule, pa as TEXT_AMPLIFIER_FIELDS, pi as RetainOptions, pn as ClearOptions, pr as GenericRectangleOptions, pt as DEFAULT_MINEFIELD_OPTIONS, q as RenderOptions, qi as MeasureTextRequest, qn as FLOTOptions, qr as DEFAULT_ENCIRCLEMENT_OPTIONS, qt as DEFAULT_REARWARD_PASSAGE_OF_LINES_OPTIONS, r as sectorDrawRule, ra as ParameterSemanticRole, ri as SecondaryDirectionOfFireOptions, rn as DEFAULT_DELAY_OPTIONS, rr as RADAR_SEARCH_DOCTRINE_FILL_COLOR, rt as getControlMeasureMetadata, s as line27DrawRule, sa as resolveParameterSemanticRole, si as DirectionOfSupportingAttackOptions, sn as DEFAULT_TACTICAL_ARROW_OPTIONS, sr as GenericTextOptions, st as DEFAULT_OBSTACLE_BYPASS_IMPOSSIBLE_OPTIONS, t as AmbushOptions, ta as ParamDescriptor, ti as DEFAULT_SECONDARY_DIRECTION_OF_FIRE_OPTIONS, tn as DEFAULT_DISENGAGE_OPTIONS, tr as DEFAULT_AIRBORNE_ATTACK_OPTIONS, tt as ControlMeasureKind, u as line23DrawRule, ua as CanonicalTextAmplifiers, ui as DEFAULT_DIRECTION_OF_ATTACK_AVIATION_OPTIONS, un as DEFAULT_COUNTERATTACK_BY_FIRE_OPTIONS, ur as DEFAULT_GENERIC_CIRCLE_OPTIONS, ut as ObstacleBypassDifficultOptions, v as penetrateDrawRule, va as normalizeTextAmplifiers, vi as BattlePositionOptions, vn as DEFAULT_BYPASS_OPTIONS, vr as BlockArrowHeadStyle, vt as FixMissionTaskOptions, w as MidpointPerpendicularDrawRuleOptions, wi as DEFAULT_LIGHT_LINE_OPTIONS, wn as PROBABLE_LINE_OF_DEPLOYMENT_DASH, wr as DEFAULT_SUPPORTING_ATTACK_OPTIONS, wt as DEFAULT_BLOCK_OPTIONS, x as blockDrawRule, xa as ControlMeasureDrawRule, xi as GenericC2LineOptions, xn as BlockMissionTaskOptions, xr as ClassicArrowHeadStyle, xt as DEFAULT_DISRUPT_OPTIONS, y as centerRadiusDrawRule, ya as resolveAmplifierPlacement, yi as DEFAULT_BATTLE_POSITION_OPTIONS, yn as BreachOptions, yr as BlockArrowOptions, yt as DEFAULT_FIX_OPTIONS, z as SimpleStyleRender, zi as DEFAULT_LABEL_HEIGHT_CSS_PIXELS, zn as HoldingLineOptions, zr as AssemblyAreaOptions, zt as DEFAULT_WITHDRAW_OPTIONS } from "./index-DelKQdBf.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
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 };
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { $ as DEFAULT_DISRUPT_OPTIONS, $t as DEFAULT_STROKE_DASH_CSS_PIXELS, A as DEFAULT_RETIRE_OPTIONS, An as createBaselineFrame, At as DEFAULT_CONTAIN_OPTIONS, B as DEFAULT_LIMIT_OF_ADVANCE_OPTIONS, Bt as DEFAULT_AREA_DEFENSE_OPTIONS, C as DEFAULT_MAIN_ATTACK_OPTIONS, Cn as containDrawRule, Ct as DEFAULT_BLOCK_MISSION_TASK_OPTIONS, D as DEFAULT_WITHDRAW_OPTIONS, Dn as getMidpointPerpendicularSignedDistance, Dt as DEFAULT_BOUNDARY_OPTIONS, E as DEFAULT_WITHDRAW_UNDER_PRESSURE_OPTIONS, En as createMidpointPerpendicularDrawRule, Et as DEFAULT_LIGHT_LINE_OPTIONS, F as DEFAULT_FORTIFIED_LINE_OPTIONS, Fn as sphericalBearing, Ft as DEFAULT_ANTITANK_DITCH_OPTIONS, G as DEFAULT_HOLDING_LINE_OPTIONS, Gt as canonicalTextAmplifierKey, H as DEFAULT_HANDOVER_LINE_OPTIONS, Ht as DEFAULT_DIRECTION_OF_MAIN_ATTACK_OPTIONS, I as DEFAULT_PROBABLE_LINE_OF_DEPLOYMENT_OPTIONS, In as unproject, It as DEFAULT_ASSEMBLY_AREA_OPTIONS, J as DEFAULT_FLOT_OPTIONS, Jt as DEFAULT_LABEL_HEIGHT_CSS_PIXELS, K as DEFAULT_BRIDGEHEAD_LINE_OPTIONS, Kt as normalizeTextAmplifiers, L as PROBABLE_LINE_OF_DEPLOYMENT_DASH, Ln as EPSILON, Lt as DEFAULT_AREA_OF_OPERATIONS_OPTIONS, M as DEFAULT_PENETRATE_OPTIONS, Mn as computeInitialWidthPoint, Mt as DEFAULT_ATTACK_HELICOPTER_OPTIONS, N as DEFAULT_FRONTAL_ATTACK_OPTIONS, Nn as haversineDistance, Nt as DEFAULT_ATTACK_BY_FIRE_OPTIONS, O as DEFAULT_SEIZE_OPTIONS, On as pointOnMidpointPerpendicularAxis, Ot as DEFAULT_BLOCK_ARROW_OPTIONS, P as DEFAULT_FORTIFIED_AREA_OPTIONS, Pn as project, Pt as DEFAULT_ANTITANK_WALL_OPTIONS, Q as DEFAULT_ENCIRCLEMENT_OPTIONS, Qt as DEFAULT_PORTRAYAL, R as DEFAULT_LINE_OF_DEPARTURE_CONTACT_OPTIONS, Rn as getMetersPerPixel, Rt as DEFAULT_MOBILE_DEFENSE_OPTIONS, S as DEFAULT_MINEFIELD_OPTIONS, Sn as centerRadiusDrawRule, St as DEFAULT_BREACH_OPTIONS, T as DEFAULT_JOINT_TACTICAL_ACTION_AREA_OPTIONS, Tn as computeDefaultMidpointPerpendicularPoint, Tt as DEFAULT_ENGINEER_WORK_LINE_OPTIONS, U as DEFAULT_FORWARD_EDGE_OF_BATTLE_AREA_OPTIONS, Ut as DEFAULT_DIRECTION_OF_ATTACK_AVIATION_OPTIONS, V as DEFAULT_BATTLE_HANDOVER_LINE_OPTIONS, Vt as DEFAULT_DIRECTION_OF_SUPPORTING_ATTACK_OPTIONS, W as DEFAULT_RELEASE_LINE_OPTIONS, Wt as TEXT_AMPLIFIER_FIELDS, X as DEFAULT_FIX_OPTIONS, Xt as DEFAULT_LINE_CAP, Y as DEFAULT_FIX_MISSION_TASK_OPTIONS, Yt as DEFAULT_LABEL_SIZE_CLAMP_CSS_PIXELS, Z as DEFAULT_FINAL_PROTECTIVE_FIRE_OPTIONS, Zt as DEFAULT_LINE_JOIN, _ as DEFAULT_PRINCIPAL_DIRECTION_OF_FIRE_OPTIONS, _n as staticPointDrawRule, _t as DEFAULT_GENERIC_LINE_OPTIONS, a as DEFINITIONS, an as axis1DrawRule, at as DEFAULT_TACTICAL_ARROW_OPTIONS, b as DEFAULT_OBSTACLE_BYPASS_EASY_OPTIONS, bn as disruptDrawRule, bt as DEFAULT_CANALIZE_OPTIONS, c as getDefaultOptions, cn as line26DrawRule, ct as DEFAULT_SUPPORTING_ATTACK_OPTIONS, d as DEFAULT_TURN_OPTIONS, dn as turnDrawRule, dt as RADAR_SEARCH_DOCTRINE_FILL_COLOR, en as DEFAULT_STROKE_WIDTH_CSS_PIXELS, et as DEFAULT_GUARD_OPTIONS, f as DEFAULT_SUPPORT_BY_FIRE_OPTIONS, fn as line1DrawRule, ft as RADAR_SEARCH_DOCTRINE_STROKE_COLOR, g as SECONDARY_DIRECTION_OF_FIRE_DASH, gn as sectorDrawRule, gt as DEFAULT_GENERIC_POLYGON_OPTIONS, h as DEFAULT_SECONDARY_DIRECTION_OF_FIRE_OPTIONS, hn as dynamicPointDrawRule, ht as DEFAULT_GENERIC_RECTANGLE_OPTIONS, i as CONTROL_MEASURE_METADATA, in as rectangleDrawRule, it as DEFAULT_COVER_OPTIONS, j as DEFAULT_REARWARD_PASSAGE_OF_LINES_OPTIONS, jn as calculateMetrics, jt as DEFAULT_BATTLE_POSITION_OPTIONS, k as DEFAULT_SCREEN_OPTIONS, kn as snapToMidpointPerpendicular, kt as DEFAULT_BLOCK_OPTIONS, l as listControlMeasureMetadata, ln as line24DrawRule, lt as DEFAULT_CLEAR_OPTIONS, m as DEFAULT_STRONG_POINT_OPTIONS, mn as attackByFireDrawRule, mt as DEFAULT_GENERIC_SECTOR_OPTIONS, n as resolveStyleHints, nn as DEFAULT_AMBUSH_OPTIONS, nt as DEFAULT_DISENGAGE_OPTIONS, o as getControlMeasureMetadata, on as supportByFireDrawRule, ot as DEFAULT_COUNTERATTACK_BY_FIRE_OPTIONS, p as DEFAULT_RETAIN_OPTIONS, pn as ambushDrawRule, pt as DEFAULT_GENERIC_TEXT_OPTIONS, q as DEFAULT_PHASE_LINE_OPTIONS, qt as resolveAmplifierPlacement, r as CONTROL_MEASURE_IDS, rn as DEFAULT_AIRBORNE_ATTACK_OPTIONS, rt as DEFAULT_DELAY_OPTIONS, s as getControlMeasureMetadataByValue, sn as line27DrawRule, st as DEFAULT_COUNTERATTACK_OPTIONS, t as renderControlMeasure, tt as DEFAULT_DISRUPT_MISSION_TASK_OPTIONS, u as DEFAULT_TURNING_MOVEMENT_OPTIONS, un as line23DrawRule, ut as DEFAULT_RADAR_SEARCH_DOCTRINE_OPTIONS, v as DEFAULT_PICKUP_ZONE_OPTIONS, vn as point12DrawRule, vt as DEFAULT_GENERIC_CIRCLE_OPTIONS, w as DEFAULT_LANDING_ZONE_OPTIONS, wn as area27DrawRule, wt as DEFAULT_GENERIC_C2_LINE_OPTIONS, x as DEFAULT_OBSTACLE_BYPASS_DIFFICULT_OPTIONS, xn as blockDrawRule, xt as DEFAULT_BYPASS_OPTIONS, y as DEFAULT_OBSTACLE_BYPASS_IMPOSSIBLE_OPTIONS, yn as penetrateDrawRule, yt as DEFAULT_CLASSIC_ARROW_OPTIONS, z as DEFAULT_LINE_OF_DEPARTURE_OPTIONS, zn as roundToFixed, zt as DEFAULT_ENGAGEMENT_AREA_OPTIONS } from "./renderControlMeasure-CclYDSlM.mjs";
1
+ import { $ as DEFAULT_DISRUPT_OPTIONS, $t as DEFAULT_STROKE_DASH_CSS_PIXELS, A as DEFAULT_RETIRE_OPTIONS, An as createBaselineFrame, At as DEFAULT_CONTAIN_OPTIONS, B as DEFAULT_LIMIT_OF_ADVANCE_OPTIONS, Bt as DEFAULT_AREA_DEFENSE_OPTIONS, C as DEFAULT_MAIN_ATTACK_OPTIONS, Cn as containDrawRule, Ct as DEFAULT_BLOCK_MISSION_TASK_OPTIONS, D as DEFAULT_WITHDRAW_OPTIONS, Dn as getMidpointPerpendicularSignedDistance, Dt as DEFAULT_BOUNDARY_OPTIONS, E as DEFAULT_WITHDRAW_UNDER_PRESSURE_OPTIONS, En as createMidpointPerpendicularDrawRule, Et as DEFAULT_LIGHT_LINE_OPTIONS, F as DEFAULT_FORTIFIED_LINE_OPTIONS, Fn as sphericalBearing, Ft as DEFAULT_ANTITANK_DITCH_OPTIONS, G as DEFAULT_HOLDING_LINE_OPTIONS, Gt as canonicalTextAmplifierKey, H as DEFAULT_HANDOVER_LINE_OPTIONS, Ht as DEFAULT_DIRECTION_OF_MAIN_ATTACK_OPTIONS, I as DEFAULT_PROBABLE_LINE_OF_DEPLOYMENT_OPTIONS, In as unproject, It as DEFAULT_ASSEMBLY_AREA_OPTIONS, J as DEFAULT_FLOT_OPTIONS, Jt as DEFAULT_LABEL_HEIGHT_CSS_PIXELS, K as DEFAULT_BRIDGEHEAD_LINE_OPTIONS, Kt as normalizeTextAmplifiers, L as PROBABLE_LINE_OF_DEPLOYMENT_DASH, Ln as EPSILON, Lt as DEFAULT_AREA_OF_OPERATIONS_OPTIONS, M as DEFAULT_PENETRATE_OPTIONS, Mn as computeInitialWidthPoint, Mt as DEFAULT_ATTACK_HELICOPTER_OPTIONS, N as DEFAULT_FRONTAL_ATTACK_OPTIONS, Nn as haversineDistance, Nt as DEFAULT_ATTACK_BY_FIRE_OPTIONS, O as DEFAULT_SEIZE_OPTIONS, On as pointOnMidpointPerpendicularAxis, Ot as DEFAULT_BLOCK_ARROW_OPTIONS, P as DEFAULT_FORTIFIED_AREA_OPTIONS, Pn as project, Pt as DEFAULT_ANTITANK_WALL_OPTIONS, Q as DEFAULT_ENCIRCLEMENT_OPTIONS, Qt as DEFAULT_PORTRAYAL, R as DEFAULT_LINE_OF_DEPARTURE_CONTACT_OPTIONS, Rn as getMetersPerPixel, Rt as DEFAULT_MOBILE_DEFENSE_OPTIONS, S as DEFAULT_MINEFIELD_OPTIONS, Sn as centerRadiusDrawRule, St as DEFAULT_BREACH_OPTIONS, T as DEFAULT_JOINT_TACTICAL_ACTION_AREA_OPTIONS, Tn as computeDefaultMidpointPerpendicularPoint, Tt as DEFAULT_ENGINEER_WORK_LINE_OPTIONS, U as DEFAULT_FORWARD_EDGE_OF_BATTLE_AREA_OPTIONS, Ut as DEFAULT_DIRECTION_OF_ATTACK_AVIATION_OPTIONS, V as DEFAULT_BATTLE_HANDOVER_LINE_OPTIONS, Vt as DEFAULT_DIRECTION_OF_SUPPORTING_ATTACK_OPTIONS, W as DEFAULT_RELEASE_LINE_OPTIONS, Wt as TEXT_AMPLIFIER_FIELDS, X as DEFAULT_FIX_OPTIONS, Xt as DEFAULT_LINE_CAP, Y as DEFAULT_FIX_MISSION_TASK_OPTIONS, Yt as DEFAULT_LABEL_SIZE_CLAMP_CSS_PIXELS, Z as DEFAULT_FINAL_PROTECTIVE_FIRE_OPTIONS, Zt as DEFAULT_LINE_JOIN, _ as DEFAULT_PRINCIPAL_DIRECTION_OF_FIRE_OPTIONS, _n as staticPointDrawRule, _t as DEFAULT_GENERIC_LINE_OPTIONS, a as DEFINITIONS, an as axis1DrawRule, at as DEFAULT_TACTICAL_ARROW_OPTIONS, b as DEFAULT_OBSTACLE_BYPASS_EASY_OPTIONS, bn as disruptDrawRule, bt as DEFAULT_CANALIZE_OPTIONS, c as getDefaultOptions, cn as line26DrawRule, ct as DEFAULT_SUPPORTING_ATTACK_OPTIONS, d as DEFAULT_TURN_OPTIONS, dn as turnDrawRule, dt as RADAR_SEARCH_DOCTRINE_FILL_COLOR, en as DEFAULT_STROKE_WIDTH_CSS_PIXELS, et as DEFAULT_GUARD_OPTIONS, f as DEFAULT_SUPPORT_BY_FIRE_OPTIONS, fn as line1DrawRule, ft as RADAR_SEARCH_DOCTRINE_STROKE_COLOR, g as SECONDARY_DIRECTION_OF_FIRE_DASH, gn as sectorDrawRule, gt as DEFAULT_GENERIC_POLYGON_OPTIONS, h as DEFAULT_SECONDARY_DIRECTION_OF_FIRE_OPTIONS, hn as dynamicPointDrawRule, ht as DEFAULT_GENERIC_RECTANGLE_OPTIONS, i as CONTROL_MEASURE_METADATA, in as rectangleDrawRule, it as DEFAULT_COVER_OPTIONS, j as DEFAULT_REARWARD_PASSAGE_OF_LINES_OPTIONS, jn as calculateMetrics, jt as DEFAULT_BATTLE_POSITION_OPTIONS, k as DEFAULT_SCREEN_OPTIONS, kn as snapToMidpointPerpendicular, kt as DEFAULT_BLOCK_OPTIONS, l as listControlMeasureMetadata, ln as line24DrawRule, lt as DEFAULT_CLEAR_OPTIONS, m as DEFAULT_STRONG_POINT_OPTIONS, mn as attackByFireDrawRule, mt as DEFAULT_GENERIC_SECTOR_OPTIONS, n as resolveStyleHints, nn as DEFAULT_AMBUSH_OPTIONS, nt as DEFAULT_DISENGAGE_OPTIONS, o as getControlMeasureMetadata, on as supportByFireDrawRule, ot as DEFAULT_COUNTERATTACK_BY_FIRE_OPTIONS, p as DEFAULT_RETAIN_OPTIONS, pn as ambushDrawRule, pt as DEFAULT_GENERIC_TEXT_OPTIONS, q as DEFAULT_PHASE_LINE_OPTIONS, qt as resolveAmplifierPlacement, r as CONTROL_MEASURE_IDS, rn as DEFAULT_AIRBORNE_ATTACK_OPTIONS, rt as DEFAULT_DELAY_OPTIONS, s as getControlMeasureMetadataByValue, sn as line27DrawRule, st as DEFAULT_COUNTERATTACK_OPTIONS, t as renderControlMeasure, tt as DEFAULT_DISRUPT_MISSION_TASK_OPTIONS, u as DEFAULT_TURNING_MOVEMENT_OPTIONS, un as line23DrawRule, ut as DEFAULT_RADAR_SEARCH_DOCTRINE_OPTIONS, v as DEFAULT_PICKUP_ZONE_OPTIONS, vn as point12DrawRule, vt as DEFAULT_GENERIC_CIRCLE_OPTIONS, w as DEFAULT_LANDING_ZONE_OPTIONS, wn as area27DrawRule, wt as DEFAULT_GENERIC_C2_LINE_OPTIONS, x as DEFAULT_OBSTACLE_BYPASS_DIFFICULT_OPTIONS, xn as blockDrawRule, xt as DEFAULT_BYPASS_OPTIONS, y as DEFAULT_OBSTACLE_BYPASS_IMPOSSIBLE_OPTIONS, yn as penetrateDrawRule, yt as DEFAULT_CLASSIC_ARROW_OPTIONS, z as DEFAULT_LINE_OF_DEPARTURE_OPTIONS, zn as roundToFixed, zt as DEFAULT_ENGAGEMENT_AREA_OPTIONS } from "./renderControlMeasure-DYcehsHK.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 = [
@@ -1,4 +1,4 @@
1
- import { et as ControlMeasureId, ga as TextAmplifiers } from "../index-IeI0ELGA.mjs";
1
+ import { et as ControlMeasureId, ga as TextAmplifiers } from "../index-DelKQdBf.mjs";
2
2
  import { f as FillPattern } from "../patterns-CcQmmOuJ.mjs";
3
3
  import { FeatureCollection, Geometry } from "geojson";
4
4
 
@@ -88,6 +88,17 @@ interface PreviewShape {
88
88
  /** Typography preset, mirroring the label feature's `textStyle`. */
89
89
  textStyle?: "regular" | "italic" | "light" | "caps";
90
90
  }
91
+ /** One centered SVG row derived from a preview shape's explicit line breaks. */
92
+ interface PreviewTextRow {
93
+ text: string;
94
+ x: number | undefined;
95
+ y: number;
96
+ }
97
+ /**
98
+ * Splits a text preview shape into centered SVG rows. Consumers render each
99
+ * row as a `<tspan>` so explicit line breaks survive SVG whitespace collapse.
100
+ */
101
+ declare function previewTextRows(shape: PreviewShape, fontSize: number): PreviewTextRow[];
91
102
  /** Target viewBox the geometry is fit into. */
92
103
  interface ProjectDimensions {
93
104
  width: number;
@@ -111,6 +122,8 @@ declare function projectRenderToShapes(fc: FeatureCollection<Geometry, unknown>,
111
122
  * consumer that paints the backdrop rect so the box width stays consistent.
112
123
  */
113
124
  declare function previewLabelBackgroundWidth(text: string | undefined, fontSize: number): number;
125
+ /** On-screen height of a text label's preview background, including padding. */
126
+ declare function previewLabelBackgroundHeight(text: string | undefined, fontSize: number): number;
114
127
  /**
115
128
  * Grows a viewBox to include every `text` shape's estimated on-screen box —
116
129
  * {@link projectRenderToShapes} fits geometry coordinates only, so an
@@ -160,4 +173,4 @@ declare function viewBoxString(shapes: PreviewShape[], dims: {
160
173
  */
161
174
  declare function svgTextTransform(s: PreviewShape): string | undefined;
162
175
  //#endregion
163
- export { PREVIEW_FILL_PATTERNS, PREVIEW_PATTERN_DOT_RADIUS, PREVIEW_PATTERN_TILE, PreviewFillPattern, PreviewShape, ProjectDimensions, previewLabelBackgroundWidth, projectRenderToShapes, renderRepresentative, svgTextTransform, viewBoxString, viewBoxWithLabels };
176
+ export { PREVIEW_FILL_PATTERNS, PREVIEW_PATTERN_DOT_RADIUS, PREVIEW_PATTERN_TILE, PreviewFillPattern, PreviewShape, PreviewTextRow, ProjectDimensions, previewLabelBackgroundHeight, previewLabelBackgroundWidth, previewTextRows, projectRenderToShapes, renderRepresentative, svgTextTransform, viewBoxString, viewBoxWithLabels };
@@ -1,4 +1,4 @@
1
- import { a as DEFINITIONS, t as renderControlMeasure } from "../renderControlMeasure-CclYDSlM.mjs";
1
+ import { a as DEFINITIONS, t as renderControlMeasure } from "../renderControlMeasure-DYcehsHK.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}. */
@@ -139,6 +139,20 @@ function renderRepresentative(id, overrides) {
139
139
  };
140
140
  }
141
141
  }
142
+ /** Line pitch used by preview SVG consumers, relative to the font size. */
143
+ const PREVIEW_TEXT_LINE_HEIGHT_RATIO = 1.2;
144
+ /**
145
+ * Splits a text preview shape into centered SVG rows. Consumers render each
146
+ * row as a `<tspan>` so explicit line breaks survive SVG whitespace collapse.
147
+ */
148
+ function previewTextRows(shape, fontSize) {
149
+ const lines = (shape.text ?? "").split("\n");
150
+ return lines.map((text, index) => ({
151
+ text,
152
+ x: shape.cx,
153
+ y: (shape.cy ?? 0) + (index - (lines.length - 1) / 2) * fontSize * PREVIEW_TEXT_LINE_HEIGHT_RATIO
154
+ }));
155
+ }
142
156
  /**
143
157
  * Fits a rendered `FeatureCollection` into a `width`×`height` viewBox (inset by
144
158
  * `pad`) and emits preview-ready {@link PreviewShape}s. North is up (y is
@@ -194,13 +208,31 @@ const METERS_PER_DEGREE = 111320;
194
208
  * not to lay out real text. */
195
209
  const CHAR_WIDTH_RATIO = .62;
196
210
  /**
211
+ * Estimated on-screen box of a (possibly multiline) label at `fontSize`: the
212
+ * longest line's glyph run wide, and one line plus {@link
213
+ * PREVIEW_TEXT_LINE_HEIGHT_RATIO} per extra line tall. The single place that
214
+ * knows how `"\n"`-separated preview text measures, so every consumer — the
215
+ * backdrop box, the viewBox extents, the text-height fit — stays in step.
216
+ */
217
+ function previewTextBlockDimensions(text, fontSize, charWidthRatio = CHAR_WIDTH_RATIO) {
218
+ const lines = (text ?? "").split("\n");
219
+ return {
220
+ width: Math.max(...lines.map((line) => line.length)) * fontSize * charWidthRatio,
221
+ height: fontSize * (1 + (lines.length - 1) * PREVIEW_TEXT_LINE_HEIGHT_RATIO)
222
+ };
223
+ }
224
+ /**
197
225
  * On-screen width (SVG units) of a `textBackground` label's readability box at
198
226
  * `fontSize`: the glyph run (via {@link CHAR_WIDTH_RATIO}) or the font size,
199
227
  * whichever is wider, plus a small horizontal pad. Shared by every preview
200
228
  * consumer that paints the backdrop rect so the box width stays consistent.
201
229
  */
202
230
  function previewLabelBackgroundWidth(text, fontSize) {
203
- return Math.max(fontSize, (text?.length ?? 0) * fontSize * CHAR_WIDTH_RATIO) + 6;
231
+ return Math.max(fontSize, previewTextBlockDimensions(text, fontSize).width) + 6;
232
+ }
233
+ /** On-screen height of a text label's preview background, including padding. */
234
+ function previewLabelBackgroundHeight(text, fontSize) {
235
+ return previewTextBlockDimensions(text, fontSize).height + 4;
204
236
  }
205
237
  /**
206
238
  * Glyph-width ratio for {@link viewBoxWithLabels}' extent boxes. Deliberately
@@ -251,8 +283,7 @@ function viewBoxWithLabels(shapes, dims, fontSize) {
251
283
  for (const s of shapes) {
252
284
  if (s.type !== "text" || s.cx === void 0 || s.cy === void 0) continue;
253
285
  const font = fontSize(s);
254
- const w = (s.text?.length ?? 0) * EXTENT_CHAR_WIDTH_RATIO * font;
255
- const h = font;
286
+ const { width: w, height: h } = previewTextBlockDimensions(s.text, font, EXTENT_CHAR_WIDTH_RATIO);
256
287
  const left = s.textAnchor === "start" ? s.cx : s.textAnchor === "end" ? s.cx - w : s.cx - w / 2;
257
288
  const right = left + w;
258
289
  const top = s.cy - h / 2;
@@ -317,7 +348,8 @@ function resolveTextHeightPx(labelProps, text, limits) {
317
348
  const sizeMeters = labelProps.textSizeMeters;
318
349
  if (typeof sizeMeters !== "number") return void 0;
319
350
  const raw = sizeMeters * limits.scale / METERS_PER_DEGREE;
320
- const widthLimit = text.length > 0 ? limits.maxWidthPx / (text.length * CHAR_WIDTH_RATIO) : Infinity;
351
+ const runWidth = previewTextBlockDimensions(text, 1).width;
352
+ const widthLimit = runWidth > 0 ? limits.maxWidthPx / runWidth : Infinity;
321
353
  return Math.min(raw, limits.maxHeightPx, widthLimit);
322
354
  }
323
355
  function ringArea(ring) {
@@ -451,4 +483,4 @@ function collectShapes(g, tx, out, bboxArea, textLimits, props) {
451
483
  }
452
484
  }
453
485
  //#endregion
454
- export { PREVIEW_FILL_PATTERNS, PREVIEW_PATTERN_DOT_RADIUS, PREVIEW_PATTERN_TILE, previewLabelBackgroundWidth, projectRenderToShapes, renderRepresentative, svgTextTransform, viewBoxString, viewBoxWithLabels };
486
+ export { PREVIEW_FILL_PATTERNS, PREVIEW_PATTERN_DOT_RADIUS, PREVIEW_PATTERN_TILE, previewLabelBackgroundHeight, previewLabelBackgroundWidth, previewTextRows, projectRenderToShapes, renderRepresentative, svgTextTransform, viewBoxString, viewBoxWithLabels };
@@ -1952,9 +1952,19 @@ const AREA_LABEL_PADDING_PARAM = {
1952
1952
  max: 2,
1953
1953
  step: .05
1954
1954
  };
1955
+ const MULTILINE_AREA_LABEL_PARAM = {
1956
+ key: "multilineLabel",
1957
+ label: "Multiline label",
1958
+ description: "Place the doctrinal label above Field T on separate centered lines",
1959
+ type: "boolean"
1960
+ };
1955
1961
  const LABELED_AREA_PARAMS = [...AREA_SMOOTH_PARAMS, AREA_LABEL_PADDING_PARAM];
1956
- const ECHELON_AREA_PARAMS = [
1962
+ const PREFIXED_LABELED_AREA_PARAMS = [
1957
1963
  ...AREA_SMOOTH_PARAMS,
1964
+ MULTILINE_AREA_LABEL_PARAM,
1965
+ AREA_LABEL_PADDING_PARAM
1966
+ ];
1967
+ const ECHELON_GLYPH_PARAMS = [
1958
1968
  {
1959
1969
  key: "echelon",
1960
1970
  label: "Echelon",
@@ -2003,7 +2013,17 @@ const ECHELON_AREA_PARAMS = [
2003
2013
  min: -.5,
2004
2014
  max: .5,
2005
2015
  step: .01
2006
- },
2016
+ }
2017
+ ];
2018
+ const ECHELON_AREA_PARAMS = [
2019
+ ...AREA_SMOOTH_PARAMS,
2020
+ ...ECHELON_GLYPH_PARAMS,
2021
+ AREA_LABEL_PADDING_PARAM
2022
+ ];
2023
+ const PREFIXED_ECHELON_AREA_PARAMS = [
2024
+ ...AREA_SMOOTH_PARAMS,
2025
+ MULTILINE_AREA_LABEL_PARAM,
2026
+ ...ECHELON_GLYPH_PARAMS,
2007
2027
  AREA_LABEL_PADDING_PARAM
2008
2028
  ];
2009
2029
  const AREA_DESIGNATION_AMPLIFIER = {
@@ -4006,8 +4026,10 @@ function composeAreaName(prefix, designation, separator = " ") {
4006
4026
  * which differ only in `prefix` (and JTAA's empty `separator`).
4007
4027
  */
4008
4028
  function composeAreaLabelTexts(textAmplifiers, prefix = "", separator = " ") {
4029
+ const designation = textAmplifiers.T?.trim() ?? "";
4009
4030
  return {
4010
- name: composeAreaName(prefix, textAmplifiers.T, separator),
4031
+ name: composeAreaName(prefix, designation, separator),
4032
+ multilineName: prefix && designation ? `${prefix}\n${designation}` : void 0,
4011
4033
  additionalInformation: textAmplifiers.H,
4012
4034
  dtgStart: textAmplifiers.W,
4013
4035
  dtgEnd: textAmplifiers.W1,
@@ -4243,19 +4265,41 @@ function pushAreaLabels(out, ringVerts, texts, options = {}, amplifierPlacements
4243
4265
  const padding = Math.max(0, options.labelPadding ?? 0);
4244
4266
  const maskRingVerts = maskBoundary?.ringVerts ?? ringVerts;
4245
4267
  const [cx, cy] = ringLabelAnchor(ringVerts);
4268
+ const multilineName = options.multilineLabel ? texts.multilineName : void 0;
4246
4269
  const rows = [
4247
- [texts.name, "T"],
4248
- [texts.additionalInformation, "H"],
4249
- [texts.dtgStart, "W"],
4250
- [texts.dtgEnd, "W1"]
4251
- ].flatMap(([text, field]) => text ? [{
4270
+ [
4271
+ multilineName ?? texts.name,
4272
+ "T",
4273
+ multilineName ? multilineName.split("\n").length : 1
4274
+ ],
4275
+ [
4276
+ texts.additionalInformation,
4277
+ "H",
4278
+ 1
4279
+ ],
4280
+ [
4281
+ texts.dtgStart,
4282
+ "W",
4283
+ 1
4284
+ ],
4285
+ [
4286
+ texts.dtgEnd,
4287
+ "W1",
4288
+ 1
4289
+ ]
4290
+ ].flatMap(([text, field, lineCount]) => text ? [{
4252
4291
  text,
4253
- field
4292
+ field,
4293
+ lineCount
4254
4294
  }] : []);
4255
4295
  if (rows.length > 0) {
4256
4296
  const pitch = resolveLabelOffsetMeters(options, ROW_PITCH_RATIO + padding);
4257
- rows.forEach(({ text, field }, i) => {
4258
- pushLabel(out, [cx, cy + ((rows.length - 1) / 2 - i) * pitch], text, HORIZONTAL_LABEL_ROTATION, sizeProps, void 0, field);
4297
+ const totalLineCount = rows.reduce((sum, row) => sum + row.lineCount, 0);
4298
+ let precedingLineCount = 0;
4299
+ rows.forEach(({ text, field, lineCount }) => {
4300
+ const rowCenter = precedingLineCount + (lineCount - 1) / 2;
4301
+ pushLabel(out, [cx, cy + ((totalLineCount - 1) / 2 - rowCenter) * pitch], text, HORIZONTAL_LABEL_ROTATION, sizeProps, void 0, field);
4302
+ precedingLineCount += lineCount;
4259
4303
  });
4260
4304
  }
4261
4305
  if (!texts.hostile) return [];
@@ -4661,7 +4705,7 @@ const ENGAGEMENT_AREA_METADATA = {
4661
4705
  },
4662
4706
  drawRule: "Area1",
4663
4707
  capturesLabelSize: true,
4664
- params: LABELED_AREA_PARAMS,
4708
+ params: PREFIXED_LABELED_AREA_PARAMS,
4665
4709
  textAmplifiers: AREA_TEXT_AMPLIFIERS_DESIGNATION_HOSTILE
4666
4710
  };
4667
4711
  /**
@@ -4928,7 +4972,7 @@ const AREA_OF_OPERATIONS_METADATA = {
4928
4972
  },
4929
4973
  drawRule: "Area1",
4930
4974
  capturesLabelSize: true,
4931
- params: LABELED_AREA_PARAMS,
4975
+ params: PREFIXED_LABELED_AREA_PARAMS,
4932
4976
  textAmplifiers: AREA_TEXT_AMPLIFIERS
4933
4977
  };
4934
4978
  /**
@@ -4952,7 +4996,10 @@ const AREA_OF_OPERATIONS = defineControlMeasure({
4952
4996
  [-1, .5]
4953
4997
  ],
4954
4998
  textAmplifiers: { T: "GREEN" },
4955
- options: { labelSize: 96 }
4999
+ options: {
5000
+ labelSize: 96,
5001
+ multilineLabel: true
5002
+ }
4956
5003
  }
4957
5004
  });
4958
5005
  //#endregion
@@ -4987,7 +5034,7 @@ const NAMED_AREA_OF_INTEREST_METADATA = {
4987
5034
  },
4988
5035
  drawRule: "Area1",
4989
5036
  capturesLabelSize: true,
4990
- params: LABELED_AREA_PARAMS,
5037
+ params: PREFIXED_LABELED_AREA_PARAMS,
4991
5038
  textAmplifiers: AREA_TEXT_AMPLIFIERS_DESIGNATION_HOSTILE
4992
5039
  };
4993
5040
  /**
@@ -5046,7 +5093,7 @@ const TARGET_AREA_OF_INTEREST_METADATA = {
5046
5093
  },
5047
5094
  drawRule: "Area1",
5048
5095
  capturesLabelSize: true,
5049
- params: LABELED_AREA_PARAMS,
5096
+ params: PREFIXED_LABELED_AREA_PARAMS,
5050
5097
  textAmplifiers: AREA_TEXT_AMPLIFIERS_DESIGNATION_HOSTILE
5051
5098
  };
5052
5099
  /**
@@ -5298,7 +5345,7 @@ const BASE_CAMP_METADATA = {
5298
5345
  },
5299
5346
  drawRule: "Area1",
5300
5347
  capturesLabelSize: true,
5301
- params: ECHELON_AREA_PARAMS,
5348
+ params: PREFIXED_ECHELON_AREA_PARAMS,
5302
5349
  textAmplifiers: AREA_TEXT_AMPLIFIERS
5303
5350
  };
5304
5351
  /**
@@ -5356,7 +5403,7 @@ const GUERRILLA_BASE_METADATA = {
5356
5403
  },
5357
5404
  drawRule: "Area1",
5358
5405
  capturesLabelSize: true,
5359
- params: ECHELON_AREA_PARAMS,
5406
+ params: PREFIXED_ECHELON_AREA_PARAMS,
5360
5407
  textAmplifiers: AREA_TEXT_AMPLIFIERS
5361
5408
  };
5362
5409
  /**
@@ -5474,7 +5521,7 @@ const ASSEMBLY_AREA_METADATA = {
5474
5521
  },
5475
5522
  drawRule: "Area1",
5476
5523
  capturesLabelSize: true,
5477
- params: LABELED_AREA_PARAMS,
5524
+ params: PREFIXED_LABELED_AREA_PARAMS,
5478
5525
  textAmplifiers: AREA_TEXT_AMPLIFIERS
5479
5526
  };
5480
5527
  /**
@@ -6244,10 +6291,7 @@ function battlePositionAreaFeatures(positions, options, textAmplifiers, context,
6244
6291
  const verts = buildClosedRing(positions, smooth, smoothResolution, DEFAULT_SMOOTH_RESOLUTION$6);
6245
6292
  const { strokes, fills, gaps } = placeEchelon(buildAreaPerimeter(verts), h, echelon, echelonPadding, echelonPosition, echelonAnchor);
6246
6293
  const labelFeatures = [];
6247
- const enyGaps = pushAreaLabels(labelFeatures, verts, {
6248
- name: variant.namePrefix ? composeAreaName(variant.namePrefix, textAmplifiers.T) : textAmplifiers.T,
6249
- hostile: textAmplifiers.N
6250
- }, options, context.amplifierPlacements, void 0, context);
6294
+ const enyGaps = pushAreaLabels(labelFeatures, verts, composeAreaLabelTexts(textAmplifiers, variant.namePrefix), options, context.amplifierPlacements, void 0, context);
6251
6295
  const boundaryCoords = buildGappedLine(verts, [...gaps, ...enyGaps]);
6252
6296
  const features = [];
6253
6297
  if (boundaryCoords.length > 0) features.push({
@@ -6368,7 +6412,7 @@ const BATTLE_POSITION_PREPARED_METADATA = {
6368
6412
  },
6369
6413
  drawRule: "Area1",
6370
6414
  capturesLabelSize: true,
6371
- params: ECHELON_AREA_PARAMS,
6415
+ params: PREFIXED_ECHELON_AREA_PARAMS,
6372
6416
  textAmplifiers: AREA_UNIT_DESIGNATION_HOSTILE_AMPLIFIERS
6373
6417
  };
6374
6418
  /**
@@ -11224,7 +11268,7 @@ const DROP_ZONE_METADATA = {
11224
11268
  },
11225
11269
  drawRule: "Area1",
11226
11270
  capturesLabelSize: true,
11227
- params: LABELED_AREA_PARAMS,
11271
+ params: PREFIXED_LABELED_AREA_PARAMS,
11228
11272
  textAmplifiers: AREA_TEXT_AMPLIFIERS_DESIGNATION_HOSTILE
11229
11273
  };
11230
11274
  /**
@@ -11441,7 +11485,7 @@ const EXTRACTION_ZONE_METADATA = {
11441
11485
  },
11442
11486
  drawRule: "Area1",
11443
11487
  capturesLabelSize: true,
11444
- params: LABELED_AREA_PARAMS,
11488
+ params: PREFIXED_LABELED_AREA_PARAMS,
11445
11489
  textAmplifiers: AREA_TEXT_AMPLIFIERS_DESIGNATION_HOSTILE
11446
11490
  };
11447
11491
  /**
@@ -14214,7 +14258,7 @@ const JOINT_TACTICAL_ACTION_AREA_METADATA = {
14214
14258
  },
14215
14259
  drawRule: "Area1",
14216
14260
  capturesLabelSize: true,
14217
- params: LABELED_AREA_PARAMS,
14261
+ params: PREFIXED_LABELED_AREA_PARAMS,
14218
14262
  textAmplifiers: AREA_TEXT_AMPLIFIERS
14219
14263
  };
14220
14264
  /**
@@ -14274,7 +14318,7 @@ const LANDING_ZONE_METADATA = {
14274
14318
  },
14275
14319
  drawRule: "Area1",
14276
14320
  capturesLabelSize: true,
14277
- params: LABELED_AREA_PARAMS,
14321
+ params: PREFIXED_LABELED_AREA_PARAMS,
14278
14322
  textAmplifiers: AREA_TEXT_AMPLIFIERS
14279
14323
  };
14280
14324
  /**
@@ -15574,7 +15618,7 @@ const PICKUP_ZONE_METADATA = {
15574
15618
  },
15575
15619
  drawRule: "Area1",
15576
15620
  capturesLabelSize: true,
15577
- params: LABELED_AREA_PARAMS,
15621
+ params: PREFIXED_LABELED_AREA_PARAMS,
15578
15622
  textAmplifiers: AREA_TEXT_AMPLIFIERS
15579
15623
  };
15580
15624
  /**
@@ -15629,7 +15673,7 @@ const ASSAULT_POSITION_METADATA = {
15629
15673
  },
15630
15674
  drawRule: "Area1",
15631
15675
  capturesLabelSize: true,
15632
- params: LABELED_AREA_PARAMS,
15676
+ params: PREFIXED_LABELED_AREA_PARAMS,
15633
15677
  textAmplifiers: AREA_TEXT_AMPLIFIERS_DESIGNATION_HOSTILE
15634
15678
  };
15635
15679
  /**
@@ -15684,7 +15728,7 @@ const ATTACK_POSITION_METADATA = {
15684
15728
  },
15685
15729
  drawRule: "Area1",
15686
15730
  capturesLabelSize: true,
15687
- params: LABELED_AREA_PARAMS,
15731
+ params: PREFIXED_LABELED_AREA_PARAMS,
15688
15732
  textAmplifiers: AREA_TEXT_AMPLIFIERS_DESIGNATION_HOSTILE
15689
15733
  };
15690
15734
  /**
@@ -15739,7 +15783,7 @@ const OBJECTIVE_AREA_METADATA = {
15739
15783
  },
15740
15784
  drawRule: "Area1",
15741
15785
  capturesLabelSize: true,
15742
- params: LABELED_AREA_PARAMS,
15786
+ params: PREFIXED_LABELED_AREA_PARAMS,
15743
15787
  textAmplifiers: AREA_TEXT_AMPLIFIERS_DESIGNATION_HOSTILE
15744
15788
  };
15745
15789
  /**
@@ -16302,7 +16346,7 @@ const SUBMARINE_ACTION_AREA_METADATA = {
16302
16346
  },
16303
16347
  drawRule: "Area1",
16304
16348
  capturesLabelSize: true,
16305
- params: LABELED_AREA_PARAMS,
16349
+ params: PREFIXED_LABELED_AREA_PARAMS,
16306
16350
  textAmplifiers: AREA_TEXT_AMPLIFIERS_NO_ADDITIONAL_INFO
16307
16351
  };
16308
16352
  /**
@@ -16362,7 +16406,7 @@ const SUBMARINE_GENERATED_ACTION_AREA_METADATA = {
16362
16406
  },
16363
16407
  drawRule: "Area1",
16364
16408
  capturesLabelSize: true,
16365
- params: LABELED_AREA_PARAMS,
16409
+ params: PREFIXED_LABELED_AREA_PARAMS,
16366
16410
  textAmplifiers: AREA_TEXT_AMPLIFIERS_NO_ADDITIONAL_INFO
16367
16411
  };
16368
16412
  /**
@@ -1 +1 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Area of operations"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M10.00 43.00 L86.00 43.00 L86.00 5.00 L10.00 5.00 L10.00 43.00 Z" fill="#1e293b" fill-opacity="0" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round"/><g transform="rotate(0.000 48.000 24.000)"><text x="48" y="24" fill="#1e293b" font-family="sans-serif" font-size="6.554078332734459" font-weight="600" text-anchor="middle" dominant-baseline="central">AO GREEN</text></g></svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Area of operations"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M10.00 43.00 L86.00 43.00 L86.00 5.00 L10.00 5.00 L10.00 43.00 Z" fill="#1e293b" fill-opacity="0" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round"/><g transform="rotate(0.000 48.000 24.000)"><text x="48" y="24" fill="#1e293b" font-family="sans-serif" font-size="6.554078332734459" font-weight="600" text-anchor="middle" dominant-baseline="central"><tspan x="48" y="20.067553000359325">AO</tspan><tspan x="48" y="27.932446999640675">GREEN</tspan></text></g></svg>
@@ -1 +1 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Generic command and control line"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M5.00 24.00 L91.00 24.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><g transform="rotate(0.000 7.226 19.549)"><text x="7.2256800000000005" y="19.54864" fill="#1e293b" font-family="sans-serif" font-size="7.416457060725835" font-weight="600" text-anchor="start" dominant-baseline="central"><H> <T></text></g><g transform="rotate(0.000 7.226 28.451)"><text x="7.2256800000000005" y="28.45136" fill="#1e293b" font-family="sans-serif" font-size="6.193548387096775" font-weight="600" text-anchor="start" dominant-baseline="central"><W> - <W1></text></g><g transform="rotate(0.000 88.774 19.549)"><text x="88.77432" y="19.54864" fill="#1e293b" font-family="sans-serif" font-size="7.416457060725835" font-weight="600" text-anchor="end" dominant-baseline="central"><H> <T></text></g><g transform="rotate(0.000 88.774 28.451)"><text x="88.77432" y="28.45136" fill="#1e293b" font-family="sans-serif" font-size="6.193548387096775" font-weight="600" text-anchor="end" dominant-baseline="central"><W> - <W1></text></g></svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Generic command and control line"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M5.00 24.00 L91.00 24.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><g transform="rotate(0.000 7.226 19.549)"><text x="7.2256800000000005" y="19.54864" fill="#1e293b" font-family="sans-serif" font-size="7.416457060725835" font-weight="600" text-anchor="start" dominant-baseline="central">&lt;H&gt; &lt;T&gt;</text></g><g transform="rotate(0.000 7.226 28.451)"><text x="7.2256800000000005" y="28.45136" fill="#1e293b" font-family="sans-serif" font-size="6.193548387096775" font-weight="600" text-anchor="start" dominant-baseline="central">&lt;W&gt; - &lt;W1&gt;</text></g><g transform="rotate(0.000 88.774 19.549)"><text x="88.77432" y="19.54864" fill="#1e293b" font-family="sans-serif" font-size="7.416457060725835" font-weight="600" text-anchor="end" dominant-baseline="central">&lt;H&gt; &lt;T&gt;</text></g><g transform="rotate(0.000 88.774 28.451)"><text x="88.77432" y="28.45136" fill="#1e293b" font-family="sans-serif" font-size="6.193548387096775" font-weight="600" text-anchor="end" dominant-baseline="central">&lt;W&gt; - &lt;W1&gt;</text></g></svg>
@@ -1 +1 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Turning Movement"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M27.99 25.20 L41.03 15.42 L62.42 10.08 L61.15 5.00 L71.94 15.79 L67.49 30.39 L66.22 25.31 L47.91 29.89 L37.41 37.77" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M24.06 19.97 L41.34 43.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><g transform="rotate(345.964 68.507 16.645)"><text x="68.50665978316985" y="16.645224574083635" fill="#1e293b" font-family="sans-serif" font-size="2.81968608360629" font-weight="600" text-anchor="middle" dominant-baseline="central">T</text></g><g transform="rotate(323.130 39.735 26.207)"><text x="39.73495095508518" y="26.207021166752714" fill="#1e293b" font-family="sans-serif" font-size="2.81968608360629" font-weight="600" text-anchor="middle" dominant-baseline="central">DAVID</text></g><g transform="rotate(345.964 50.976 19.431)"><text x="50.97604543107899" y="19.430975735673723" fill="#1e293b" font-family="sans-serif" font-size="2.81968608360629" font-weight="600" text-anchor="middle" dominant-baseline="central">080400Z</text></g><g transform="rotate(345.964 51.729 22.440)"><text x="51.72937532266391" y="22.440371708828085" fill="#1e293b" font-family="sans-serif" font-size="2.81968608360629" font-weight="600" text-anchor="middle" dominant-baseline="central">120300Z</text></g></svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Turning Movement"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M23.26 27.99 L38.10 16.86 L62.44 10.78 L60.99 5.00 L73.27 17.28 L68.22 33.89 L66.77 28.11 L45.94 33.32 L33.99 42.29" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M22.73 27.27 L34.52 43.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><g transform="rotate(345.964 69.371 18.252)"><text x="69.3708142403948" y="18.251556808835623" fill="#1e293b" font-family="sans-serif" font-size="3.2086311502440275" font-weight="600" text-anchor="middle" dominant-baseline="central">T</text></g><g transform="rotate(323.130 36.630 29.132)"><text x="36.63036070966983" y="29.132299377276468" fill="#1e293b" font-family="sans-serif" font-size="3.2086311502440275" font-weight="600" text-anchor="middle" dominant-baseline="central">DAVID</text></g><g transform="rotate(345.964 49.422 21.422)"><text x="49.42204206321231" y="21.421572083186465" fill="#1e293b" font-family="sans-serif" font-size="3.2086311502440275" font-weight="600" text-anchor="middle" dominant-baseline="central">080400Z</text></g><g transform="rotate(345.964 50.279 24.846)"><text x="50.279285630360704" y="24.846081541534485" fill="#1e293b" font-family="sans-serif" font-size="3.2086311502440275" font-weight="600" text-anchor="middle" dominant-baseline="central">120300Z</text></g></svg>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orbat-mapper/control-measures",
3
- "version": "0.12.0",
3
+ "version": "0.12.1",
4
4
  "description": "Library for drawing tactical graphics and control measures according to MIL-STD-2525 and APP-6 standards.",
5
5
  "license": "MIT",
6
6
  "author": "Orbat Mapper",