@orbat-mapper/control-measures 0.24.0 → 0.25.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.
@@ -1322,6 +1322,8 @@ declare const DEFAULT_TACTICAL_ARROW_OPTIONS: Required<TacticalArrowOptions>;
1322
1322
  * rows.
1323
1323
  */
1324
1324
  interface EncirclementOptions extends AreaLabelOptions {
1325
+ /** Leave the boundary open between the last and first control points. @default false */
1326
+ open?: boolean;
1325
1327
  /**
1326
1328
  * Spacing between adjacent barbs as a ratio of the symbol's mean radius;
1327
1329
  * smaller values pack the barbs more densely. The barbs are then distributed
@@ -1354,7 +1356,9 @@ interface EncirclementOptions extends AreaLabelOptions {
1354
1356
  declare const DEFAULT_ENCIRCLEMENT_OPTIONS: EncirclementOptions;
1355
1357
  /**
1356
1358
  * Creates an Encirclement tactical graphic: a complete smooth boundary ring
1357
- * with outward arrowhead barbs resting on it. The boundary is an unfilled
1359
+ * with outward arrowhead barbs resting on it. Set `open` to leave the last
1360
+ * and first control points unconnected, with endpoint-preserving smoothing.
1361
+ * The closed boundary is an unfilled
1358
1362
  * Polygon; the barbs are open "V" strokes (a MultiLineString) whose base is the
1359
1363
  * boundary arc itself. When a Field N (ENY) marker is set, it masks the
1360
1364
  * boundary with a knockout gap wherever its text box touches the ring
package/dist/index.d.mts CHANGED
@@ -1,3 +1,3 @@
1
- import { $ as SimpleStyleRender, $a as AmplifierPlacements, $i as DirectionOfMainAttackOptions, $n as ClearOptions, $r as GenericCircleOptions, $t as DEFAULT_WITHDRAW_UNDER_PRESSURE_OPTIONS, A as secureDrawRule, Aa as DEFAULT_LABEL_SIZE_CLAMP_CSS_PIXELS, Ai as MobileDefenseOptions, An as MovementToContactOptions, Ar as DEFAULT_FORWARD_EDGE_OF_BATTLE_AREA_OPTIONS, At as MinefieldOptions, B as createMidpointPerpendicularDrawRule, Ba as ControlMeasureGeometry, Bi as FinalProtectiveFireOptions, Bn as DelayOptions, Br as AttackHelicopterOptions, Bt as TurningMovementOptions, C as turnDrawRule, Ca as DEFAULT_BOUNDARY_OPTIONS, Ci as DEFAULT_LANDING_ZONE_OPTIONS, Cn as DEFAULT_NEUTRALIZE_OPTIONS, Cr as ReleaseLineOptions, Ct as DEFAULT_OBSTACLE_BYPASS_IMPOSSIBLE_OPTIONS, D as dynamicPointDrawRule, Da as ControlMeasureOptionHandles, Di as AssemblyAreaOptions, Dn as DEFAULT_DESTROY_OPTIONS, Dr as InfiltrationLaneOptions, Dt as DEFAULT_OBSTACLE_BYPASS_EASY_OPTIONS, E as attackByFireDrawRule, Ea as ControlMeasureOptionHandleDragEvent, Ei as JointTacticalActionAreaOptions, En as DefeatOptions, Er as DEFAULT_INFILTRATION_LANE_OPTIONS, Et as ObstacleBypassDifficultOptions, F as blockDrawRule, Fa as DEFAULT_STROKE_WIDTH_CSS_PIXELS, Fi as DEFAULT_ENCIRCLEMENT_OPTIONS, Fn as DEFAULT_DISENGAGE_OPTIONS, Fr as FLOTOptions, Ft as DEFAULT_DISRUPT_OPTIONS, G as BaselineFrameNormal, Ga as ParamDescriptor, Gi as DEFAULT_SECONDARY_DIRECTION_OF_FIRE_OPTIONS, Gn as CounterattackOptions, Gr as RADAR_SEARCH_DOCTRINE_FILL_COLOR, Gt as DEFAULT_FORTIFIED_LINE_OPTIONS, H as pointOnMidpointPerpendicularAxis, Ha as ControlMeasureMetadata, Hi as FeaturePartProps, Hn as DEFAULT_COVER_OPTIONS, Hr as AirborneAttackOptions, Ht as FrontalAttackOptions, I as containDrawRule, Ia as LogicalTextStyle, Ii as EncirclementOptions, In as DisengageOptions, Ir as AttackByFireOptions, It as DisruptOptions, J as createBaselineFrame, Ja as TextAmplifierDescriptor, Ji as DEFAULT_PRINCIPAL_DIRECTION_OF_FIRE_OPTIONS, Jn as DEFAULT_CORDON_AND_SEARCH_OPTIONS, Jr as DEFAULT_GENERIC_TEXT_OPTIONS, Jt as DEFAULT_ANTITANK_WALL_OPTIONS, K as BaselineFrameOptions, Ka as ParameterPresentationTier, Ki as SECONDARY_DIRECTION_OF_FIRE_DASH, Kn as DEFAULT_COUNTERATTACK_OPTIONS, Kr as RADAR_SEARCH_DOCTRINE_STROKE_COLOR, Kt as FortifiedLineOptions, L as area27DrawRule, La as MeasureTextRequest, Li as DEFAULT_TACTICAL_ARROW_OPTIONS, Ln as DEFAULT_DEMONSTRATE_OPTIONS, Lr as DEFAULT_ATTACK_BY_FIRE_OPTIONS, Lt as BlockOptions, M as occupyDrawRule, Ma as DEFAULT_LINE_JOIN, Mi as EngagementAreaOptions, Mn as GuardOptions, Mr as DEFAULT_PHASE_LINE_OPTIONS, Mt as FixMissionTaskOptions, N as centerRadiusDrawRule, Na as DEFAULT_PORTRAYAL, Ni as AreaDefenseOptions, Nn as DEFAULT_DISRUPT_MISSION_TASK_OPTIONS, Nr as PhaseLineOptions, Nt as DEFAULT_FIX_OPTIONS, O as staticPointDrawRule, Oa as ControlMeasureRenderContext, Oi as DEFAULT_ASSEMBLY_AREA_OPTIONS, On as DestroyOptions, Or as BridgeheadLineOptions, Ot as ObstacleBypassEasyOptions, P as disruptDrawRule, Pa as DEFAULT_STROKE_DASH_CSS_PIXELS, Pi as DEFAULT_AREA_DEFENSE_OPTIONS, Pn as DisruptMissionTaskOptions, Pr as DEFAULT_FLOT_OPTIONS, Pt as FixOptions, Q as SimpleStyleProps, Qa as AmplifierPlacement, Qi as DEFAULT_DIRECTION_OF_MAIN_ATTACK_OPTIONS, Qn as IsolateOptions, Qr as DEFAULT_GENERIC_CIRCLE_OPTIONS, Qt as TurnOptions, R as MidpointPerpendicularDrawRuleOptions, Ra as MeasuredText, Ri as TacticalArrowOptions, Rn as DemonstrateOptions, Rr as DEFAULT_SUPPORT_BY_FIRE_OPTIONS, Rt as DEFAULT_BLOCK_OPTIONS, S as line23DrawRule, Sa as BoundaryOptions, Si as MineType, Sn as SuppressOptions, Sr as DEFAULT_RELEASE_LINE_OPTIONS, St as listControlMeasureMetadata, T as ambushDrawRule, Ta as ControlMeasureOptionHandle, Ti as DEFAULT_JOINT_TACTICAL_ACTION_AREA_OPTIONS, Tn as DEFAULT_DEFEAT_OPTIONS, Tr as HoldingLineOptions, Tt as DEFAULT_OBSTACLE_BYPASS_DIFFICULT_OPTIONS, U as snapToMidpointPerpendicular, Ua as ControlMeasurePaintCapability, Ui as StyleHints, Un as CounterattackByFireOptions, Ur as DEFAULT_AIRBORNE_ATTACK_OPTIONS, Ut as DEFAULT_FORTIFIED_AREA_OPTIONS, V as getMidpointPerpendicularSignedDistance, Va as ControlMeasureGeometryType, Vi as ControlMeasureRender, Vn as CoverOptions, Vr as DEFAULT_ATTACK_HELICOPTER_OPTIONS, Vt as DEFAULT_FRONTAL_ATTACK_OPTIONS, W as BaselineFrame, Wa as PARAMETER_PRESENTATION_TIERS, Wi as controlMeasureIdFromFeature, Wn as DEFAULT_COUNTERATTACK_BY_FIRE_OPTIONS, Wr as DEFAULT_RADAR_SEARCH_DOCTRINE_OPTIONS, Wt as FortifiedAreaOptions, X as getMetersPerPixel, Xa as resolveParameterPresentationTier, Xi as DEFAULT_DIRECTION_OF_SUPPORTING_ATTACK_OPTIONS, Xn as DEFAULT_CORDON_AND_KNOCK_OPTIONS, Xr as DEFAULT_GENERIC_SECTOR_OPTIONS, Xt as DEFAULT_ANTITANK_DITCH_OPTIONS, Y as EPSILON, Ya as parameterPresentationTierRank, Yi as PrincipalDirectionOfFireOptions, Yn as CordonAndKnockOptions, Yr as GenericTextOptions, Yt as AntitankDitchOptions, Z as roundToFixed, Za as resolveParameterSemanticRole, Zi as DirectionOfSupportingAttackOptions, Zn as DEFAULT_ISOLATE_OPTIONS, Zr as GenericSectorOptions, Zt as DEFAULT_TURN_OPTIONS, _ as supportByFireDrawRule, _a as Point2D, _i as computeInitialWidthPoint, _n as DEFAULT_PENETRATE_OPTIONS, _r as LimitOfAdvanceOptions, _t as ControlMeasureKind, a as SizePairSwitchResult, aa as StrongPointOptions, ai as GenericLineOptions, an as DEFAULT_SEIZE_OPTIONS, ao as TextAmplifierKey, ar as BreachOptions, at as getControlMeasureOptionHandles, b as line26DrawRule, ba as sphericalBearing, bi as DEFAULT_PICKUP_ZONE_OPTIONS, bn as OccupyOptions, br as DEFAULT_HANDOVER_LINE_OPTIONS, bt as getControlMeasureMetadataByValue, c as FollowAndSupportOptions, ca as BattlePositionOptions, ci as DEFAULT_BLOCK_ARROW_OPTIONS, cn as SecureOptions, co as normalizeTextAmplifiers, cr as DEFAULT_BLOCK_MISSION_TASK_OPTIONS, ct as freezeOrientationOptions, d as createFollowAndAssume, da as GenericC2LineOptions, di as DEFAULT_CLASSIC_ARROW_OPTIONS, dn as DEFAULT_RETIRE_OPTIONS, do as SizeUnit, dr as ProbableLineOfDeploymentOptions, dt as ControlMeasure, ea as DEFAULT_DIRECTION_OF_ATTACK_AVIATION_OPTIONS, ei as DEFAULT_GENERIC_RECTANGLE_OPTIONS, en as WithdrawUnderPressureOptions, eo as CanonicalTextAmplifiers, er as DEFAULT_CLEAR_OPTIONS, et as toSimpleStyle, f as AmbushOptions, fa as DEFAULT_ENGINEER_WORK_LINE_OPTIONS, fi as DEFAULT_SUPPORTING_ATTACK_OPTIONS, fn as RetireOptions, fo as AnchorTransformEvent, fr as DEFAULT_LINE_OF_DEPARTURE_CONTACT_OPTIONS, ft as cloneControlMeasure, g as axis1DrawRule, ga as LabelSizeOptions, gi as calculateMetrics, gn as RearwardPassageOfLinesOptions, gr as DEFAULT_LIMIT_OF_ADVANCE_OPTIONS, gt as ControlMeasureId, h as rectangleDrawRule, ha as LightLineOptions, hi as MainAttackOptions, hn as DEFAULT_REARWARD_PASSAGE_OF_LINES_OPTIONS, hr as LineOfDepartureOptions, ht as CONTROL_MEASURE_METADATA, i as SizePairResolution, ia as DEFAULT_STRONG_POINT_OPTIONS, ii as DEFAULT_GENERIC_LINE_OPTIONS, in as EvacuateOptions, io as TextAmplifierField, ir as DEFAULT_BYPASS_OPTIONS, it as dragControlMeasureOptionHandle, j as penetrateDrawRule, ja as DEFAULT_LINE_CAP, ji as DEFAULT_ENGAGEMENT_AREA_OPTIONS, jn as DEFAULT_GUARD_OPTIONS, jr as ForwardEdgeOfBattleAreaOptions, jt as DEFAULT_FIX_MISSION_TASK_OPTIONS, k as point12DrawRule, ka as DEFAULT_LABEL_HEIGHT_CSS_PIXELS, ki as DEFAULT_MOBILE_DEFENSE_OPTIONS, kn as DEFAULT_MOVEMENT_TO_CONTACT_OPTIONS, kr as DEFAULT_BRIDGEHEAD_LINE_OPTIONS, kt as DEFAULT_MINEFIELD_OPTIONS, l as createFollowAndSupport, la as DEFAULT_BATTLE_POSITION_OPTIONS, li as ClassicArrowHeadStyle, ln as DEFAULT_SCREEN_OPTIONS, lo as resolveAmplifierPlacement, lr as DEFAULT_PROBABLE_LINE_OF_DEPLOYMENT_OPTIONS, lt as RenderOptions, m as sectorDrawRule, ma as DEFAULT_LIGHT_LINE_OPTIONS, mi as DEFAULT_MAIN_ATTACK_OPTIONS, mn as ReliefInPlaceOptions, mr as DEFAULT_LINE_OF_DEPARTURE_OPTIONS, mt as CONTROL_MEASURE_IDS, n as SizePairRendering, na as DEFAULT_RETAIN_OPTIONS, ni as DEFAULT_GENERIC_POLYGON_OPTIONS, nn as WithdrawOptions, no as LabelPlacementOverride, nr as DEFAULT_CANALIZE_OPTIONS, nt as resolveStyleHints, o as resolveSizePair, oa as ContainOptions, oi as BlockArrowHeadStyle, on as SeizeOptions, oo as TextAmplifiers, or as DEFAULT_BREACH_OPTIONS, ot as applyBoxTransformOptions, p as DEFAULT_AMBUSH_OPTIONS, pa as EngineerWorkLineOptions, pi as SupportingAttackOptions, pn as DEFAULT_RELIEF_IN_PLACE_OPTIONS, po as ControlMeasureDrawRule, pr as LineOfDepartureContactOptions, pt as isKind, q as BaselineFrameOrigin, qa as ParameterSemanticRole, qi as SecondaryDirectionOfFireOptions, qn as CordonAndSearchOptions, qr as RadarSearchDoctrineOptions, qt as AntitankWallOptions, r as SizePairRequest, ra as RetainOptions, ri as GenericPolygonOptions, rn as DEFAULT_EVACUATE_OPTIONS, ro as TEXT_AMPLIFIER_FIELDS, rr as BypassOptions, rt as resolveSymbolColor, s as switchSizePairUnit, sa as DEFAULT_CONTAIN_OPTIONS, si as BlockArrowOptions, sn as DEFAULT_SECURE_OPTIONS, so as canonicalTextAmplifierKey, sr as BlockMissionTaskOptions, st as foldsBoxTransformOptions, t as SizePairFailure, ta as DirectionOfAttackAviationOptions, ti as GenericRectangleOptions, tn as DEFAULT_WITHDRAW_OPTIONS, to as GeneratedLabelKey, tr as CanalizeOptions, tt as resolveDefaultSymbolColor, u as FollowAndAssumeOptions, ua as DEFAULT_GENERIC_C2_LINE_OPTIONS, ui as ClassicArrowOptions, un as ScreenOptions, uo as ControlMeasureSizePair, ur as PROBABLE_LINE_OF_DEPLOYMENT_DASH, ut as renderControlMeasure, v as polyline1DrawRule, va as haversineDistance, vi as AreaOfOperationsOptions, vn as PenetrateOptions, vr as BattleHandoverLineOptions, vt as OptionsByKind, w as line1DrawRule, wa as BoxTransformDelta, wi as LandingZoneOptions, wn as NeutralizeOptions, wr as DEFAULT_HOLDING_LINE_OPTIONS, wt as ObstacleBypassImpossibleOptions, x as line24DrawRule, xa as unproject, xi as PickupZoneOptions, xn as DEFAULT_SUPPRESS_OPTIONS, xr as HandoverLineOptions, xt as getDefaultOptions, y as line27DrawRule, ya as project, yi as DEFAULT_AREA_OF_OPERATIONS_OPTIONS, yn as DEFAULT_OCCUPY_OPTIONS, yr as DEFAULT_BATTLE_HANDOVER_LINE_OPTIONS, yt as getControlMeasureMetadata, z as computeDefaultMidpointPerpendicularPoint, za as ControlMeasureFillCapability, zi as DEFAULT_FINAL_PROTECTIVE_FIRE_OPTIONS, zn as DEFAULT_DELAY_OPTIONS, zr as SupportByFireOptions, zt as DEFAULT_TURNING_MOVEMENT_OPTIONS } from "./index-CCZqdSQS.mjs";
1
+ import { $ as SimpleStyleRender, $a as AmplifierPlacements, $i as DirectionOfMainAttackOptions, $n as ClearOptions, $r as GenericCircleOptions, $t as DEFAULT_WITHDRAW_UNDER_PRESSURE_OPTIONS, A as secureDrawRule, Aa as DEFAULT_LABEL_SIZE_CLAMP_CSS_PIXELS, Ai as MobileDefenseOptions, An as MovementToContactOptions, Ar as DEFAULT_FORWARD_EDGE_OF_BATTLE_AREA_OPTIONS, At as MinefieldOptions, B as createMidpointPerpendicularDrawRule, Ba as ControlMeasureGeometry, Bi as FinalProtectiveFireOptions, Bn as DelayOptions, Br as AttackHelicopterOptions, Bt as TurningMovementOptions, C as turnDrawRule, Ca as DEFAULT_BOUNDARY_OPTIONS, Ci as DEFAULT_LANDING_ZONE_OPTIONS, Cn as DEFAULT_NEUTRALIZE_OPTIONS, Cr as ReleaseLineOptions, Ct as DEFAULT_OBSTACLE_BYPASS_IMPOSSIBLE_OPTIONS, D as dynamicPointDrawRule, Da as ControlMeasureOptionHandles, Di as AssemblyAreaOptions, Dn as DEFAULT_DESTROY_OPTIONS, Dr as InfiltrationLaneOptions, Dt as DEFAULT_OBSTACLE_BYPASS_EASY_OPTIONS, E as attackByFireDrawRule, Ea as ControlMeasureOptionHandleDragEvent, Ei as JointTacticalActionAreaOptions, En as DefeatOptions, Er as DEFAULT_INFILTRATION_LANE_OPTIONS, Et as ObstacleBypassDifficultOptions, F as blockDrawRule, Fa as DEFAULT_STROKE_WIDTH_CSS_PIXELS, Fi as DEFAULT_ENCIRCLEMENT_OPTIONS, Fn as DEFAULT_DISENGAGE_OPTIONS, Fr as FLOTOptions, Ft as DEFAULT_DISRUPT_OPTIONS, G as BaselineFrameNormal, Ga as ParamDescriptor, Gi as DEFAULT_SECONDARY_DIRECTION_OF_FIRE_OPTIONS, Gn as CounterattackOptions, Gr as RADAR_SEARCH_DOCTRINE_FILL_COLOR, Gt as DEFAULT_FORTIFIED_LINE_OPTIONS, H as pointOnMidpointPerpendicularAxis, Ha as ControlMeasureMetadata, Hi as FeaturePartProps, Hn as DEFAULT_COVER_OPTIONS, Hr as AirborneAttackOptions, Ht as FrontalAttackOptions, I as containDrawRule, Ia as LogicalTextStyle, Ii as EncirclementOptions, In as DisengageOptions, Ir as AttackByFireOptions, It as DisruptOptions, J as createBaselineFrame, Ja as TextAmplifierDescriptor, Ji as DEFAULT_PRINCIPAL_DIRECTION_OF_FIRE_OPTIONS, Jn as DEFAULT_CORDON_AND_SEARCH_OPTIONS, Jr as DEFAULT_GENERIC_TEXT_OPTIONS, Jt as DEFAULT_ANTITANK_WALL_OPTIONS, K as BaselineFrameOptions, Ka as ParameterPresentationTier, Ki as SECONDARY_DIRECTION_OF_FIRE_DASH, Kn as DEFAULT_COUNTERATTACK_OPTIONS, Kr as RADAR_SEARCH_DOCTRINE_STROKE_COLOR, Kt as FortifiedLineOptions, L as area27DrawRule, La as MeasureTextRequest, Li as DEFAULT_TACTICAL_ARROW_OPTIONS, Ln as DEFAULT_DEMONSTRATE_OPTIONS, Lr as DEFAULT_ATTACK_BY_FIRE_OPTIONS, Lt as BlockOptions, M as occupyDrawRule, Ma as DEFAULT_LINE_JOIN, Mi as EngagementAreaOptions, Mn as GuardOptions, Mr as DEFAULT_PHASE_LINE_OPTIONS, Mt as FixMissionTaskOptions, N as centerRadiusDrawRule, Na as DEFAULT_PORTRAYAL, Ni as AreaDefenseOptions, Nn as DEFAULT_DISRUPT_MISSION_TASK_OPTIONS, Nr as PhaseLineOptions, Nt as DEFAULT_FIX_OPTIONS, O as staticPointDrawRule, Oa as ControlMeasureRenderContext, Oi as DEFAULT_ASSEMBLY_AREA_OPTIONS, On as DestroyOptions, Or as BridgeheadLineOptions, Ot as ObstacleBypassEasyOptions, P as disruptDrawRule, Pa as DEFAULT_STROKE_DASH_CSS_PIXELS, Pi as DEFAULT_AREA_DEFENSE_OPTIONS, Pn as DisruptMissionTaskOptions, Pr as DEFAULT_FLOT_OPTIONS, Pt as FixOptions, Q as SimpleStyleProps, Qa as AmplifierPlacement, Qi as DEFAULT_DIRECTION_OF_MAIN_ATTACK_OPTIONS, Qn as IsolateOptions, Qr as DEFAULT_GENERIC_CIRCLE_OPTIONS, Qt as TurnOptions, R as MidpointPerpendicularDrawRuleOptions, Ra as MeasuredText, Ri as TacticalArrowOptions, Rn as DemonstrateOptions, Rr as DEFAULT_SUPPORT_BY_FIRE_OPTIONS, Rt as DEFAULT_BLOCK_OPTIONS, S as line23DrawRule, Sa as BoundaryOptions, Si as MineType, Sn as SuppressOptions, Sr as DEFAULT_RELEASE_LINE_OPTIONS, St as listControlMeasureMetadata, T as ambushDrawRule, Ta as ControlMeasureOptionHandle, Ti as DEFAULT_JOINT_TACTICAL_ACTION_AREA_OPTIONS, Tn as DEFAULT_DEFEAT_OPTIONS, Tr as HoldingLineOptions, Tt as DEFAULT_OBSTACLE_BYPASS_DIFFICULT_OPTIONS, U as snapToMidpointPerpendicular, Ua as ControlMeasurePaintCapability, Ui as StyleHints, Un as CounterattackByFireOptions, Ur as DEFAULT_AIRBORNE_ATTACK_OPTIONS, Ut as DEFAULT_FORTIFIED_AREA_OPTIONS, V as getMidpointPerpendicularSignedDistance, Va as ControlMeasureGeometryType, Vi as ControlMeasureRender, Vn as CoverOptions, Vr as DEFAULT_ATTACK_HELICOPTER_OPTIONS, Vt as DEFAULT_FRONTAL_ATTACK_OPTIONS, W as BaselineFrame, Wa as PARAMETER_PRESENTATION_TIERS, Wi as controlMeasureIdFromFeature, Wn as DEFAULT_COUNTERATTACK_BY_FIRE_OPTIONS, Wr as DEFAULT_RADAR_SEARCH_DOCTRINE_OPTIONS, Wt as FortifiedAreaOptions, X as getMetersPerPixel, Xa as resolveParameterPresentationTier, Xi as DEFAULT_DIRECTION_OF_SUPPORTING_ATTACK_OPTIONS, Xn as DEFAULT_CORDON_AND_KNOCK_OPTIONS, Xr as DEFAULT_GENERIC_SECTOR_OPTIONS, Xt as DEFAULT_ANTITANK_DITCH_OPTIONS, Y as EPSILON, Ya as parameterPresentationTierRank, Yi as PrincipalDirectionOfFireOptions, Yn as CordonAndKnockOptions, Yr as GenericTextOptions, Yt as AntitankDitchOptions, Z as roundToFixed, Za as resolveParameterSemanticRole, Zi as DirectionOfSupportingAttackOptions, Zn as DEFAULT_ISOLATE_OPTIONS, Zr as GenericSectorOptions, Zt as DEFAULT_TURN_OPTIONS, _ as supportByFireDrawRule, _a as Point2D, _i as computeInitialWidthPoint, _n as DEFAULT_PENETRATE_OPTIONS, _r as LimitOfAdvanceOptions, _t as ControlMeasureKind, a as SizePairSwitchResult, aa as StrongPointOptions, ai as GenericLineOptions, an as DEFAULT_SEIZE_OPTIONS, ao as TextAmplifierKey, ar as BreachOptions, at as getControlMeasureOptionHandles, b as line26DrawRule, ba as sphericalBearing, bi as DEFAULT_PICKUP_ZONE_OPTIONS, bn as OccupyOptions, br as DEFAULT_HANDOVER_LINE_OPTIONS, bt as getControlMeasureMetadataByValue, c as FollowAndSupportOptions, ca as BattlePositionOptions, ci as DEFAULT_BLOCK_ARROW_OPTIONS, cn as SecureOptions, co as normalizeTextAmplifiers, cr as DEFAULT_BLOCK_MISSION_TASK_OPTIONS, ct as freezeOrientationOptions, d as createFollowAndAssume, da as GenericC2LineOptions, di as DEFAULT_CLASSIC_ARROW_OPTIONS, dn as DEFAULT_RETIRE_OPTIONS, do as SizeUnit, dr as ProbableLineOfDeploymentOptions, dt as ControlMeasure, ea as DEFAULT_DIRECTION_OF_ATTACK_AVIATION_OPTIONS, ei as DEFAULT_GENERIC_RECTANGLE_OPTIONS, en as WithdrawUnderPressureOptions, eo as CanonicalTextAmplifiers, er as DEFAULT_CLEAR_OPTIONS, et as toSimpleStyle, f as AmbushOptions, fa as DEFAULT_ENGINEER_WORK_LINE_OPTIONS, fi as DEFAULT_SUPPORTING_ATTACK_OPTIONS, fn as RetireOptions, fo as AnchorTransformEvent, fr as DEFAULT_LINE_OF_DEPARTURE_CONTACT_OPTIONS, ft as cloneControlMeasure, g as axis1DrawRule, ga as LabelSizeOptions, gi as calculateMetrics, gn as RearwardPassageOfLinesOptions, gr as DEFAULT_LIMIT_OF_ADVANCE_OPTIONS, gt as ControlMeasureId, h as rectangleDrawRule, ha as LightLineOptions, hi as MainAttackOptions, hn as DEFAULT_REARWARD_PASSAGE_OF_LINES_OPTIONS, hr as LineOfDepartureOptions, ht as CONTROL_MEASURE_METADATA, i as SizePairResolution, ia as DEFAULT_STRONG_POINT_OPTIONS, ii as DEFAULT_GENERIC_LINE_OPTIONS, in as EvacuateOptions, io as TextAmplifierField, ir as DEFAULT_BYPASS_OPTIONS, it as dragControlMeasureOptionHandle, j as penetrateDrawRule, ja as DEFAULT_LINE_CAP, ji as DEFAULT_ENGAGEMENT_AREA_OPTIONS, jn as DEFAULT_GUARD_OPTIONS, jr as ForwardEdgeOfBattleAreaOptions, jt as DEFAULT_FIX_MISSION_TASK_OPTIONS, k as point12DrawRule, ka as DEFAULT_LABEL_HEIGHT_CSS_PIXELS, ki as DEFAULT_MOBILE_DEFENSE_OPTIONS, kn as DEFAULT_MOVEMENT_TO_CONTACT_OPTIONS, kr as DEFAULT_BRIDGEHEAD_LINE_OPTIONS, kt as DEFAULT_MINEFIELD_OPTIONS, l as createFollowAndSupport, la as DEFAULT_BATTLE_POSITION_OPTIONS, li as ClassicArrowHeadStyle, ln as DEFAULT_SCREEN_OPTIONS, lo as resolveAmplifierPlacement, lr as DEFAULT_PROBABLE_LINE_OF_DEPLOYMENT_OPTIONS, lt as RenderOptions, m as sectorDrawRule, ma as DEFAULT_LIGHT_LINE_OPTIONS, mi as DEFAULT_MAIN_ATTACK_OPTIONS, mn as ReliefInPlaceOptions, mr as DEFAULT_LINE_OF_DEPARTURE_OPTIONS, mt as CONTROL_MEASURE_IDS, n as SizePairRendering, na as DEFAULT_RETAIN_OPTIONS, ni as DEFAULT_GENERIC_POLYGON_OPTIONS, nn as WithdrawOptions, no as LabelPlacementOverride, nr as DEFAULT_CANALIZE_OPTIONS, nt as resolveStyleHints, o as resolveSizePair, oa as ContainOptions, oi as BlockArrowHeadStyle, on as SeizeOptions, oo as TextAmplifiers, or as DEFAULT_BREACH_OPTIONS, ot as applyBoxTransformOptions, p as DEFAULT_AMBUSH_OPTIONS, pa as EngineerWorkLineOptions, pi as SupportingAttackOptions, pn as DEFAULT_RELIEF_IN_PLACE_OPTIONS, po as ControlMeasureDrawRule, pr as LineOfDepartureContactOptions, pt as isKind, q as BaselineFrameOrigin, qa as ParameterSemanticRole, qi as SecondaryDirectionOfFireOptions, qn as CordonAndSearchOptions, qr as RadarSearchDoctrineOptions, qt as AntitankWallOptions, r as SizePairRequest, ra as RetainOptions, ri as GenericPolygonOptions, rn as DEFAULT_EVACUATE_OPTIONS, ro as TEXT_AMPLIFIER_FIELDS, rr as BypassOptions, rt as resolveSymbolColor, s as switchSizePairUnit, sa as DEFAULT_CONTAIN_OPTIONS, si as BlockArrowOptions, sn as DEFAULT_SECURE_OPTIONS, so as canonicalTextAmplifierKey, sr as BlockMissionTaskOptions, st as foldsBoxTransformOptions, t as SizePairFailure, ta as DirectionOfAttackAviationOptions, ti as GenericRectangleOptions, tn as DEFAULT_WITHDRAW_OPTIONS, to as GeneratedLabelKey, tr as CanalizeOptions, tt as resolveDefaultSymbolColor, u as FollowAndAssumeOptions, ua as DEFAULT_GENERIC_C2_LINE_OPTIONS, ui as ClassicArrowOptions, un as ScreenOptions, uo as ControlMeasureSizePair, ur as PROBABLE_LINE_OF_DEPLOYMENT_DASH, ut as renderControlMeasure, v as polyline1DrawRule, va as haversineDistance, vi as AreaOfOperationsOptions, vn as PenetrateOptions, vr as BattleHandoverLineOptions, vt as OptionsByKind, w as line1DrawRule, wa as BoxTransformDelta, wi as LandingZoneOptions, wn as NeutralizeOptions, wr as DEFAULT_HOLDING_LINE_OPTIONS, wt as ObstacleBypassImpossibleOptions, x as line24DrawRule, xa as unproject, xi as PickupZoneOptions, xn as DEFAULT_SUPPRESS_OPTIONS, xr as HandoverLineOptions, xt as getDefaultOptions, y as line27DrawRule, ya as project, yi as DEFAULT_AREA_OF_OPERATIONS_OPTIONS, yn as DEFAULT_OCCUPY_OPTIONS, yr as DEFAULT_BATTLE_HANDOVER_LINE_OPTIONS, yt as getControlMeasureMetadata, z as computeDefaultMidpointPerpendicularPoint, za as ControlMeasureFillCapability, zi as DEFAULT_FINAL_PROTECTIVE_FIRE_OPTIONS, zn as DEFAULT_DELAY_OPTIONS, zr as SupportByFireOptions, zt as DEFAULT_TURNING_MOVEMENT_OPTIONS } from "./index-C7xE-PHF.mjs";
2
2
  import { a as PatternId, c as PatternPoint, d as ColorRole, f as ControlMeasureStyle, g as SymbolColors, h as MIL_STD_GREEN, i as NON_SOLID_FILL_PATTERNS, l as PatternStroke, m as FillPattern, n as FillPatternCommand, o as PatternPaint, p as DEFAULT_SYMBOL_COLOR, r as FillPatternDefinition, s as PatternPathOperation, t as FILL_PATTERN_DEFINITIONS, u as getFillPatternDefinition } from "./patterns-DMO-zeaM.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 ColorRole, 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 ControlMeasureSizePair, type ControlMeasureStyle, type CordonAndKnockOptions, type CordonAndSearchOptions, 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_CORDON_AND_KNOCK_OPTIONS, DEFAULT_CORDON_AND_SEARCH_OPTIONS, DEFAULT_COUNTERATTACK_BY_FIRE_OPTIONS, DEFAULT_COUNTERATTACK_OPTIONS, DEFAULT_COVER_OPTIONS, DEFAULT_DEFEAT_OPTIONS, DEFAULT_DELAY_OPTIONS, DEFAULT_DEMONSTRATE_OPTIONS, DEFAULT_DESTROY_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_EVACUATE_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_ISOLATE_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_MOVEMENT_TO_CONTACT_OPTIONS, DEFAULT_NEUTRALIZE_OPTIONS, DEFAULT_OBSTACLE_BYPASS_DIFFICULT_OPTIONS, DEFAULT_OBSTACLE_BYPASS_EASY_OPTIONS, DEFAULT_OBSTACLE_BYPASS_IMPOSSIBLE_OPTIONS, DEFAULT_OCCUPY_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_RELIEF_IN_PLACE_OPTIONS, DEFAULT_RETAIN_OPTIONS, DEFAULT_RETIRE_OPTIONS, DEFAULT_SCREEN_OPTIONS, DEFAULT_SECONDARY_DIRECTION_OF_FIRE_OPTIONS, DEFAULT_SECURE_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_SUPPRESS_OPTIONS, DEFAULT_SYMBOL_COLOR, DEFAULT_TACTICAL_ARROW_OPTIONS, DEFAULT_TURNING_MOVEMENT_OPTIONS, DEFAULT_TURN_OPTIONS, DEFAULT_WITHDRAW_OPTIONS, DEFAULT_WITHDRAW_UNDER_PRESSURE_OPTIONS, type DefeatOptions, type DelayOptions, type DemonstrateOptions, type DestroyOptions, type DirectionOfAttackAviationOptions, type DirectionOfMainAttackOptions, type DirectionOfSupportingAttackOptions, type DisengageOptions, type DisruptMissionTaskOptions, type DisruptOptions, EPSILON, type EncirclementOptions, type EngagementAreaOptions, type EngineerWorkLineOptions, type EvacuateOptions, FILL_PATTERN_DEFINITIONS, type FLOTOptions, type FeaturePartProps, type FillPattern, type FillPatternCommand, type FillPatternDefinition, type FinalProtectiveFireOptions, type FixMissionTaskOptions, type FixOptions, type FollowAndAssumeOptions, type FollowAndSupportOptions, 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 IsolateOptions, type JointTacticalActionAreaOptions, type LabelPlacementOverride, type LabelSizeOptions, type LandingZoneOptions, type LightLineOptions, type LimitOfAdvanceOptions, type LineOfDepartureContactOptions, type LineOfDepartureOptions, type LogicalTextStyle, MIL_STD_GREEN, type MainAttackOptions, type MeasureTextRequest, type MeasuredText, type MidpointPerpendicularDrawRuleOptions, type MineType, type MinefieldOptions, type MobileDefenseOptions, type MovementToContactOptions, NON_SOLID_FILL_PATTERNS, type NeutralizeOptions, type ObstacleBypassDifficultOptions, type ObstacleBypassEasyOptions, type ObstacleBypassImpossibleOptions, type OccupyOptions, 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 ReliefInPlaceOptions, type RenderOptions, type RetainOptions, type RetireOptions, SECONDARY_DIRECTION_OF_FIRE_DASH, type ScreenOptions, type SecondaryDirectionOfFireOptions, type SecureOptions, type SeizeOptions, type SimpleStyleProps, type SimpleStyleRender, type SizePairFailure, type SizePairRendering, type SizePairRequest, type SizePairResolution, type SizePairSwitchResult, type SizeUnit, type StrongPointOptions, type StyleHints, type SupportByFireOptions, type SupportingAttackOptions, type SuppressOptions, type SymbolColors, 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, createFollowAndAssume, createFollowAndSupport, createMidpointPerpendicularDrawRule, disruptDrawRule, dragControlMeasureOptionHandle, dynamicPointDrawRule, foldsBoxTransformOptions, freezeOrientationOptions, getControlMeasureMetadata, getControlMeasureMetadataByValue, getControlMeasureOptionHandles, getDefaultOptions, getFillPatternDefinition, getMetersPerPixel, getMidpointPerpendicularSignedDistance, haversineDistance, isKind, line1DrawRule, line23DrawRule, line24DrawRule, line26DrawRule, line27DrawRule, listControlMeasureMetadata, normalizeTextAmplifiers, occupyDrawRule, parameterPresentationTierRank, penetrateDrawRule, point12DrawRule, pointOnMidpointPerpendicularAxis, polyline1DrawRule, project, rectangleDrawRule, renderControlMeasure, resolveAmplifierPlacement, resolveDefaultSymbolColor, resolveParameterPresentationTier, resolveParameterSemanticRole, resolveSizePair, resolveStyleHints, resolveSymbolColor, roundToFixed, sectorDrawRule, secureDrawRule, snapToMidpointPerpendicular, sphericalBearing, staticPointDrawRule, supportByFireDrawRule, switchSizePairUnit, toSimpleStyle, turnDrawRule, unproject };
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { $ as DEFAULT_INFILTRATION_LANE_OPTIONS, $n as snapToMidpointPerpendicular, $t as DEFAULT_ENGAGEMENT_AREA_OPTIONS, A as DEFAULT_EVACUATE_OPTIONS, An as line26DrawRule, At as DEFAULT_GENERIC_POLYGON_OPTIONS, B as DEFAULT_FRONTAL_ATTACK_OPTIONS, Bn as point12DrawRule, Bt as DEFAULT_LIGHT_LINE_OPTIONS, C as DEFAULT_MINEFIELD_OPTIONS, Cn as rectangleDrawRule, Ct as DEFAULT_CLEAR_OPTIONS, D as DEFAULT_TURN_OPTIONS, Dn as supportByFireDrawRule, Dt as DEFAULT_GENERIC_TEXT_OPTIONS, E as DEFAULT_JOINT_TACTICAL_ACTION_AREA_OPTIONS, En as computeInitialWidthPoint, Et as RADAR_SEARCH_DOCTRINE_STROKE_COLOR, F as DEFAULT_RELIEF_IN_PLACE_OPTIONS, Fn as ambushDrawRule, Ft as DEFAULT_BYPASS_OPTIONS, G as DEFAULT_LINE_OF_DEPARTURE_CONTACT_OPTIONS, Gn as blockDrawRule, Gt as DEFAULT_BATTLE_POSITION_OPTIONS, H as DEFAULT_FORTIFIED_LINE_OPTIONS, Hn as penetrateDrawRule, Ht as DEFAULT_BLOCK_ARROW_OPTIONS, I as DEFAULT_REARWARD_PASSAGE_OF_LINES_OPTIONS, In as attackByFireDrawRule, It as DEFAULT_BREACH_OPTIONS, J as DEFAULT_BATTLE_HANDOVER_LINE_OPTIONS, Jn as area27DrawRule, Jt as DEFAULT_ANTITANK_WALL_OPTIONS, K as DEFAULT_LINE_OF_DEPARTURE_OPTIONS, Kn as centerRadiusDrawRule, Kt as DEFAULT_ATTACK_HELICOPTER_OPTIONS, L as DEFAULT_PENETRATE_OPTIONS, Ln as dynamicPointDrawRule, Lt as DEFAULT_BLOCK_MISSION_TASK_OPTIONS, M as DEFAULT_SECURE_OPTIONS, Mn as line23DrawRule, Mt as DEFAULT_GENERIC_CIRCLE_OPTIONS, N as DEFAULT_SCREEN_OPTIONS, Nn as turnDrawRule, Nt as DEFAULT_CLASSIC_ARROW_OPTIONS, O as DEFAULT_WITHDRAW_UNDER_PRESSURE_OPTIONS, On as polyline1DrawRule, Ot as DEFAULT_GENERIC_SECTOR_OPTIONS, P as DEFAULT_RETIRE_OPTIONS, Pn as line1DrawRule, Pt as DEFAULT_CANALIZE_OPTIONS, Q as DEFAULT_HOLDING_LINE_OPTIONS, Qn as pointOnMidpointPerpendicularAxis, Qt as DEFAULT_MOBILE_DEFENSE_OPTIONS, R as DEFAULT_OCCUPY_OPTIONS, Rn as sectorDrawRule, Rt as DEFAULT_GENERIC_C2_LINE_OPTIONS, S as DEFAULT_OBSTACLE_BYPASS_DIFFICULT_OPTIONS, Sn as MIL_STD_GREEN, St as DEFAULT_ISOLATE_OPTIONS, T as DEFAULT_LANDING_ZONE_OPTIONS, Tn as calculateMetrics, Tt as RADAR_SEARCH_DOCTRINE_FILL_COLOR, U as DEFAULT_PROBABLE_LINE_OF_DEPLOYMENT_OPTIONS, Un as occupyDrawRule, Ut as DEFAULT_BLOCK_OPTIONS, V as DEFAULT_FORTIFIED_AREA_OPTIONS, Vn as secureDrawRule, Vt as DEFAULT_BOUNDARY_OPTIONS, W as PROBABLE_LINE_OF_DEPLOYMENT_DASH, Wn as disruptDrawRule, Wt as DEFAULT_CONTAIN_OPTIONS, X as DEFAULT_FORWARD_EDGE_OF_BATTLE_AREA_OPTIONS, Xn as createMidpointPerpendicularDrawRule, Xt as DEFAULT_ASSEMBLY_AREA_OPTIONS, Y as DEFAULT_HANDOVER_LINE_OPTIONS, Yn as computeDefaultMidpointPerpendicularPoint, Yt as DEFAULT_ANTITANK_DITCH_OPTIONS, Z as DEFAULT_RELEASE_LINE_OPTIONS, Zn as getMidpointPerpendicularSignedDistance, Zt as DEFAULT_AREA_OF_OPERATIONS_OPTIONS, _ as SECONDARY_DIRECTION_OF_FIRE_DASH, _n as DEFAULT_LINE_JOIN, _t as DEFAULT_COUNTERATTACK_BY_FIRE_OPTIONS, a as CONTROL_MEASURE_IDS, an as canonicalTextAmplifierKey, ar as EPSILON, at as DEFAULT_FINAL_PROTECTIVE_FIRE_OPTIONS, b as DEFAULT_OBSTACLE_BYPASS_IMPOSSIBLE_OPTIONS, bn as DEFAULT_STROKE_WIDTH_CSS_PIXELS, bt as DEFAULT_CORDON_AND_SEARCH_OPTIONS, c as getControlMeasureMetadata, cn as DEFAULT_AMBUSH_OPTIONS, cr as roundToFixed, ct as DEFAULT_GUARD_OPTIONS, d as listControlMeasureMetadata, dn as DEFAULT_NEUTRALIZE_OPTIONS, dt as DEFAULT_DISRUPT_MISSION_TASK_OPTIONS, en as DEFAULT_AREA_DEFENSE_OPTIONS, er as createBaselineFrame, et as DEFAULT_BRIDGEHEAD_LINE_OPTIONS, f as DEFAULT_TURNING_MOVEMENT_OPTIONS, fn as DEFAULT_SUPPRESS_OPTIONS, ft as DEFAULT_DISENGAGE_OPTIONS, g as DEFAULT_SECONDARY_DIRECTION_OF_FIRE_OPTIONS, gn as DEFAULT_LINE_CAP, gt as DEFAULT_TACTICAL_ARROW_OPTIONS, h as DEFAULT_STRONG_POINT_OPTIONS, hn as DEFAULT_LABEL_SIZE_CLAMP_CSS_PIXELS, ht as DEFAULT_COVER_OPTIONS, i as resolveSymbolColor, in as TEXT_AMPLIFIER_FIELDS, ir as unproject, it as DEFAULT_FIX_OPTIONS, j as DEFAULT_SEIZE_OPTIONS, jn as line24DrawRule, jt as DEFAULT_GENERIC_LINE_OPTIONS, k as DEFAULT_WITHDRAW_OPTIONS, kn as line27DrawRule, kt as DEFAULT_GENERIC_RECTANGLE_OPTIONS, l as getControlMeasureMetadataByValue, ln as DEFAULT_AIRBORNE_ATTACK_OPTIONS, lt as createFollowAndSupport, m as DEFAULT_RETAIN_OPTIONS, mn as DEFAULT_LABEL_HEIGHT_CSS_PIXELS, mt as DEFAULT_DELAY_OPTIONS, n as resolveDefaultSymbolColor, nn as DEFAULT_DIRECTION_OF_MAIN_ATTACK_OPTIONS, nr as project, nt as DEFAULT_FLOT_OPTIONS, o as CONTROL_MEASURE_METADATA, on as normalizeTextAmplifiers, or as getMetersPerPixel, ot as DEFAULT_ENCIRCLEMENT_OPTIONS, p as DEFAULT_SUPPORT_BY_FIRE_OPTIONS, pn as DEFAULT_DEFEAT_OPTIONS, pt as DEFAULT_DEMONSTRATE_OPTIONS, q as DEFAULT_LIMIT_OF_ADVANCE_OPTIONS, qn as containDrawRule, qt as DEFAULT_ATTACK_BY_FIRE_OPTIONS, r as resolveStyleHints, rn as DEFAULT_DIRECTION_OF_ATTACK_AVIATION_OPTIONS, rr as sphericalBearing, rt as DEFAULT_FIX_MISSION_TASK_OPTIONS, s as DEFINITIONS, sn as resolveAmplifierPlacement, sr as isFiniteNumber, st as DEFAULT_DISRUPT_OPTIONS, t as renderControlMeasure, tn as DEFAULT_DIRECTION_OF_SUPPORTING_ATTACK_OPTIONS, tr as haversineDistance, tt as DEFAULT_PHASE_LINE_OPTIONS, u as getDefaultOptions, un as DEFAULT_DESTROY_OPTIONS, ut as createFollowAndAssume, v as DEFAULT_PRINCIPAL_DIRECTION_OF_FIRE_OPTIONS, vn as DEFAULT_PORTRAYAL, vt as DEFAULT_COUNTERATTACK_OPTIONS, w as DEFAULT_MAIN_ATTACK_OPTIONS, wn as axis1DrawRule, wt as DEFAULT_RADAR_SEARCH_DOCTRINE_OPTIONS, x as DEFAULT_OBSTACLE_BYPASS_EASY_OPTIONS, xn as DEFAULT_SYMBOL_COLOR, xt as DEFAULT_CORDON_AND_KNOCK_OPTIONS, y as DEFAULT_PICKUP_ZONE_OPTIONS, yn as DEFAULT_STROKE_DASH_CSS_PIXELS, yt as DEFAULT_SUPPORTING_ATTACK_OPTIONS, z as DEFAULT_MOVEMENT_TO_CONTACT_OPTIONS, zn as staticPointDrawRule, zt as DEFAULT_ENGINEER_WORK_LINE_OPTIONS } from "./renderControlMeasure-CohBtiQZ.mjs";
1
+ import { $ as DEFAULT_INFILTRATION_LANE_OPTIONS, $n as snapToMidpointPerpendicular, $t as DEFAULT_ENGAGEMENT_AREA_OPTIONS, A as DEFAULT_EVACUATE_OPTIONS, An as line26DrawRule, At as DEFAULT_GENERIC_POLYGON_OPTIONS, B as DEFAULT_FRONTAL_ATTACK_OPTIONS, Bn as point12DrawRule, Bt as DEFAULT_LIGHT_LINE_OPTIONS, C as DEFAULT_MINEFIELD_OPTIONS, Cn as rectangleDrawRule, Ct as DEFAULT_CLEAR_OPTIONS, D as DEFAULT_TURN_OPTIONS, Dn as supportByFireDrawRule, Dt as DEFAULT_GENERIC_TEXT_OPTIONS, E as DEFAULT_JOINT_TACTICAL_ACTION_AREA_OPTIONS, En as computeInitialWidthPoint, Et as RADAR_SEARCH_DOCTRINE_STROKE_COLOR, F as DEFAULT_RELIEF_IN_PLACE_OPTIONS, Fn as ambushDrawRule, Ft as DEFAULT_BYPASS_OPTIONS, G as DEFAULT_LINE_OF_DEPARTURE_CONTACT_OPTIONS, Gn as blockDrawRule, Gt as DEFAULT_BATTLE_POSITION_OPTIONS, H as DEFAULT_FORTIFIED_LINE_OPTIONS, Hn as penetrateDrawRule, Ht as DEFAULT_BLOCK_ARROW_OPTIONS, I as DEFAULT_REARWARD_PASSAGE_OF_LINES_OPTIONS, In as attackByFireDrawRule, It as DEFAULT_BREACH_OPTIONS, J as DEFAULT_BATTLE_HANDOVER_LINE_OPTIONS, Jn as area27DrawRule, Jt as DEFAULT_ANTITANK_WALL_OPTIONS, K as DEFAULT_LINE_OF_DEPARTURE_OPTIONS, Kn as centerRadiusDrawRule, Kt as DEFAULT_ATTACK_HELICOPTER_OPTIONS, L as DEFAULT_PENETRATE_OPTIONS, Ln as dynamicPointDrawRule, Lt as DEFAULT_BLOCK_MISSION_TASK_OPTIONS, M as DEFAULT_SECURE_OPTIONS, Mn as line23DrawRule, Mt as DEFAULT_GENERIC_CIRCLE_OPTIONS, N as DEFAULT_SCREEN_OPTIONS, Nn as turnDrawRule, Nt as DEFAULT_CLASSIC_ARROW_OPTIONS, O as DEFAULT_WITHDRAW_UNDER_PRESSURE_OPTIONS, On as polyline1DrawRule, Ot as DEFAULT_GENERIC_SECTOR_OPTIONS, P as DEFAULT_RETIRE_OPTIONS, Pn as line1DrawRule, Pt as DEFAULT_CANALIZE_OPTIONS, Q as DEFAULT_HOLDING_LINE_OPTIONS, Qn as pointOnMidpointPerpendicularAxis, Qt as DEFAULT_MOBILE_DEFENSE_OPTIONS, R as DEFAULT_OCCUPY_OPTIONS, Rn as sectorDrawRule, Rt as DEFAULT_GENERIC_C2_LINE_OPTIONS, S as DEFAULT_OBSTACLE_BYPASS_DIFFICULT_OPTIONS, Sn as MIL_STD_GREEN, St as DEFAULT_ISOLATE_OPTIONS, T as DEFAULT_LANDING_ZONE_OPTIONS, Tn as calculateMetrics, Tt as RADAR_SEARCH_DOCTRINE_FILL_COLOR, U as DEFAULT_PROBABLE_LINE_OF_DEPLOYMENT_OPTIONS, Un as occupyDrawRule, Ut as DEFAULT_BLOCK_OPTIONS, V as DEFAULT_FORTIFIED_AREA_OPTIONS, Vn as secureDrawRule, Vt as DEFAULT_BOUNDARY_OPTIONS, W as PROBABLE_LINE_OF_DEPLOYMENT_DASH, Wn as disruptDrawRule, Wt as DEFAULT_CONTAIN_OPTIONS, X as DEFAULT_FORWARD_EDGE_OF_BATTLE_AREA_OPTIONS, Xn as createMidpointPerpendicularDrawRule, Xt as DEFAULT_ASSEMBLY_AREA_OPTIONS, Y as DEFAULT_HANDOVER_LINE_OPTIONS, Yn as computeDefaultMidpointPerpendicularPoint, Yt as DEFAULT_ANTITANK_DITCH_OPTIONS, Z as DEFAULT_RELEASE_LINE_OPTIONS, Zn as getMidpointPerpendicularSignedDistance, Zt as DEFAULT_AREA_OF_OPERATIONS_OPTIONS, _ as SECONDARY_DIRECTION_OF_FIRE_DASH, _n as DEFAULT_LINE_JOIN, _t as DEFAULT_COUNTERATTACK_BY_FIRE_OPTIONS, a as CONTROL_MEASURE_IDS, an as canonicalTextAmplifierKey, ar as EPSILON, at as DEFAULT_FINAL_PROTECTIVE_FIRE_OPTIONS, b as DEFAULT_OBSTACLE_BYPASS_IMPOSSIBLE_OPTIONS, bn as DEFAULT_STROKE_WIDTH_CSS_PIXELS, bt as DEFAULT_CORDON_AND_SEARCH_OPTIONS, c as getControlMeasureMetadata, cn as DEFAULT_AMBUSH_OPTIONS, cr as roundToFixed, ct as DEFAULT_GUARD_OPTIONS, d as listControlMeasureMetadata, dn as DEFAULT_NEUTRALIZE_OPTIONS, dt as DEFAULT_DISRUPT_MISSION_TASK_OPTIONS, en as DEFAULT_AREA_DEFENSE_OPTIONS, er as createBaselineFrame, et as DEFAULT_BRIDGEHEAD_LINE_OPTIONS, f as DEFAULT_TURNING_MOVEMENT_OPTIONS, fn as DEFAULT_SUPPRESS_OPTIONS, ft as DEFAULT_DISENGAGE_OPTIONS, g as DEFAULT_SECONDARY_DIRECTION_OF_FIRE_OPTIONS, gn as DEFAULT_LINE_CAP, gt as DEFAULT_TACTICAL_ARROW_OPTIONS, h as DEFAULT_STRONG_POINT_OPTIONS, hn as DEFAULT_LABEL_SIZE_CLAMP_CSS_PIXELS, ht as DEFAULT_COVER_OPTIONS, i as resolveSymbolColor, in as TEXT_AMPLIFIER_FIELDS, ir as unproject, it as DEFAULT_FIX_OPTIONS, j as DEFAULT_SEIZE_OPTIONS, jn as line24DrawRule, jt as DEFAULT_GENERIC_LINE_OPTIONS, k as DEFAULT_WITHDRAW_OPTIONS, kn as line27DrawRule, kt as DEFAULT_GENERIC_RECTANGLE_OPTIONS, l as getControlMeasureMetadataByValue, ln as DEFAULT_AIRBORNE_ATTACK_OPTIONS, lt as createFollowAndSupport, m as DEFAULT_RETAIN_OPTIONS, mn as DEFAULT_LABEL_HEIGHT_CSS_PIXELS, mt as DEFAULT_DELAY_OPTIONS, n as resolveDefaultSymbolColor, nn as DEFAULT_DIRECTION_OF_MAIN_ATTACK_OPTIONS, nr as project, nt as DEFAULT_FLOT_OPTIONS, o as CONTROL_MEASURE_METADATA, on as normalizeTextAmplifiers, or as getMetersPerPixel, ot as DEFAULT_ENCIRCLEMENT_OPTIONS, p as DEFAULT_SUPPORT_BY_FIRE_OPTIONS, pn as DEFAULT_DEFEAT_OPTIONS, pt as DEFAULT_DEMONSTRATE_OPTIONS, q as DEFAULT_LIMIT_OF_ADVANCE_OPTIONS, qn as containDrawRule, qt as DEFAULT_ATTACK_BY_FIRE_OPTIONS, r as resolveStyleHints, rn as DEFAULT_DIRECTION_OF_ATTACK_AVIATION_OPTIONS, rr as sphericalBearing, rt as DEFAULT_FIX_MISSION_TASK_OPTIONS, s as DEFINITIONS, sn as resolveAmplifierPlacement, sr as isFiniteNumber, st as DEFAULT_DISRUPT_OPTIONS, t as renderControlMeasure, tn as DEFAULT_DIRECTION_OF_SUPPORTING_ATTACK_OPTIONS, tr as haversineDistance, tt as DEFAULT_PHASE_LINE_OPTIONS, u as getDefaultOptions, un as DEFAULT_DESTROY_OPTIONS, ut as createFollowAndAssume, v as DEFAULT_PRINCIPAL_DIRECTION_OF_FIRE_OPTIONS, vn as DEFAULT_PORTRAYAL, vt as DEFAULT_COUNTERATTACK_OPTIONS, w as DEFAULT_MAIN_ATTACK_OPTIONS, wn as axis1DrawRule, wt as DEFAULT_RADAR_SEARCH_DOCTRINE_OPTIONS, x as DEFAULT_OBSTACLE_BYPASS_EASY_OPTIONS, xn as DEFAULT_SYMBOL_COLOR, xt as DEFAULT_CORDON_AND_KNOCK_OPTIONS, y as DEFAULT_PICKUP_ZONE_OPTIONS, yn as DEFAULT_STROKE_DASH_CSS_PIXELS, yt as DEFAULT_SUPPORTING_ATTACK_OPTIONS, z as DEFAULT_MOVEMENT_TO_CONTACT_OPTIONS, zn as staticPointDrawRule, zt as DEFAULT_ENGINEER_WORK_LINE_OPTIONS } from "./renderControlMeasure-CMfJUHs1.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 { gt as ControlMeasureId, oo as TextAmplifiers } from "../index-CCZqdSQS.mjs";
1
+ import { gt as ControlMeasureId, oo as TextAmplifiers } from "../index-C7xE-PHF.mjs";
2
2
  import { g as SymbolColors, m as FillPattern } from "../patterns-DMO-zeaM.mjs";
3
3
  import { FeatureCollection, Geometry, Position } from "geojson";
4
4
 
@@ -1,4 +1,4 @@
1
- import { s as DEFINITIONS, t as renderControlMeasure } from "../renderControlMeasure-CohBtiQZ.mjs";
1
+ import { s as DEFINITIONS, t as renderControlMeasure } from "../renderControlMeasure-CMfJUHs1.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}. */
@@ -3903,6 +3903,12 @@ const FORTIFIED_AREA_SIZE_PARAMS = [{
3903
3903
  unit: "m"
3904
3904
  }];
3905
3905
  const ENCIRCLEMENT_PARAMS = [
3906
+ {
3907
+ key: "open",
3908
+ label: "Open",
3909
+ description: "Leave the boundary open between the last and first control points.",
3910
+ type: "boolean"
3911
+ },
3906
3912
  {
3907
3913
  key: "smooth",
3908
3914
  label: "Smooth",
@@ -5148,24 +5154,33 @@ function ringSignedArea2(verts) {
5148
5154
  return area2;
5149
5155
  }
5150
5156
  /**
5157
+ * Projects `positions` into unclosed ring points, dropping a trailing vertex
5158
+ * that duplicates the first (already-closed input).
5159
+ */
5160
+ function projectRingPoints(positions) {
5161
+ const projected = positions.map((p) => project(p[0], p[1]));
5162
+ return projected.length > 1 && Math.abs(projected[0][0] - projected[projected.length - 1][0]) < 1e-6 && Math.abs(projected[0][1] - projected[projected.length - 1][1]) < 1e-6 ? projected.slice(0, -1) : projected;
5163
+ }
5164
+ /**
5151
5165
  * Projects `positions` and returns a closed ring (first == last), optionally
5152
5166
  * smoothed through the control points with a closed centripetal Catmull-Rom
5153
5167
  * spline. A trailing vertex that duplicates the first (already-closed input)
5154
5168
  * is dropped before closing/smoothing.
5155
5169
  */
5156
5170
  function buildClosedRing(positions, smooth, smoothResolution, defaultSmoothResolution) {
5157
- const projected = positions.map((p) => project(p[0], p[1]));
5158
- const ringPts = projected.length > 1 && Math.abs(projected[0][0] - projected[projected.length - 1][0]) < 1e-6 && Math.abs(projected[0][1] - projected[projected.length - 1][1]) < 1e-6 ? projected.slice(0, -1) : projected;
5171
+ const ringPts = projectRingPoints(positions);
5159
5172
  return smooth ? closedCatmullRom(ringPts, normalizeSmoothResolution$2(smoothResolution, defaultSmoothResolution)) : [...ringPts, ringPts[0]];
5160
5173
  }
5161
5174
  /**
5162
5175
  * Walks a closed ring into per-segment metadata (unit direction, outward
5163
5176
  * normal, cumulative arc length) plus the total perimeter and the arc-length
5164
5177
  * anchor of the bottom edge — the segment whose midpoint sits lowest (min
5165
- * projected y), the side opposite the front.
5178
+ * projected y), the side opposite the front. With `open`, `verts` is an
5179
+ * unclosed path: the closing edge is omitted, but normals still follow the
5180
+ * winding of the implied ring.
5166
5181
  */
5167
- function buildAreaPerimeter(verts) {
5168
- const ccw = ringSignedArea2(verts) > 0;
5182
+ function buildAreaPerimeter(verts, open = false) {
5183
+ const ccw = ringSignedArea2(open && verts.length > 0 ? [...verts, verts[0]] : verts) > 0;
5169
5184
  const segs = [];
5170
5185
  let totalLength = 0;
5171
5186
  let anchorTarget = 0;
@@ -5666,12 +5681,12 @@ function patternedAreaFeatures(verts, gaps, fillPattern) {
5666
5681
  /**
5667
5682
  * The area's boundary feature: a gapped `MultiLineString` when a Field N (ENY)
5668
5683
  * marker has carved masking `gaps` from the ring (via {@link buildGappedLine},
5669
- * ADR-0023), or a closed `Polygon` otherwise. Shared by every area measure that
5684
+ * ADR-0023) or when the boundary is `open`, or a closed `Polygon` otherwise. Shared by every area measure that
5670
5685
  * lets an ENY marker mask its boundary (see {@link labeledAreaFeatures},
5671
5686
  * Encirclement).
5672
5687
  */
5673
- function boundaryFeature(verts, gaps) {
5674
- if (gaps.length > 0) return {
5688
+ function boundaryFeature(verts, gaps, open = false) {
5689
+ if (open || gaps.length > 0) return {
5675
5690
  type: "Feature",
5676
5691
  properties: { part: "boundary" },
5677
5692
  geometry: {
@@ -13163,6 +13178,7 @@ const DEFAULT_SMOOTH_RESOLUTION$2 = 16;
13163
13178
  * static default, so this covers only the barb/smoothing options.
13164
13179
  */
13165
13180
  const DEFAULT_ENCIRCLEMENT_OPTIONS = {
13181
+ open: false,
13166
13182
  barbSpacingRatio: DEFAULT_BARB_SPACING_RATIO,
13167
13183
  barbLengthRatio: DEFAULT_BARB_LENGTH_RATIO,
13168
13184
  smooth: true,
@@ -13228,15 +13244,15 @@ function meanRadius(verts) {
13228
13244
  * same `perimeter`'s vertex walk) is suppressed — the barb would otherwise
13229
13245
  * sit on top of the boundary knockout.
13230
13246
  */
13231
- function buildBarbs(perimeter, spacing, barbLength, gaps) {
13247
+ function buildBarbs(perimeter, spacing, barbLength, gaps, open) {
13232
13248
  const { segs, totalLength } = perimeter;
13233
13249
  if (segs.length === 0 || totalLength < 1e-6 || barbLength < 1e-6 || spacing < 1e-6) return [];
13234
13250
  const count = Math.max(3, Math.round(totalLength / spacing));
13235
13251
  const half = Math.min(barbLength / 2, totalLength / (2 * count));
13236
- const at = (arc) => pointOnRing(segs, (arc % totalLength + totalLength) % totalLength);
13252
+ const at = (arc) => pointOnRing(segs, open ? Math.max(0, Math.min(totalLength, arc)) : (arc % totalLength + totalLength) % totalLength);
13237
13253
  const barbs = [];
13238
13254
  for (let k = 0; k < count; k++) {
13239
- const center = k * totalLength / count;
13255
+ const center = (k + (open ? .5 : 0)) * totalLength / count;
13240
13256
  if (arcInGaps(center, gaps)) continue;
13241
13257
  const baseStart = at(center - half).point;
13242
13258
  const { point, seg } = at(center);
@@ -13252,7 +13268,9 @@ function buildBarbs(perimeter, spacing, barbLength, gaps) {
13252
13268
  }
13253
13269
  /**
13254
13270
  * Creates an Encirclement tactical graphic: a complete smooth boundary ring
13255
- * with outward arrowhead barbs resting on it. The boundary is an unfilled
13271
+ * with outward arrowhead barbs resting on it. Set `open` to leave the last
13272
+ * and first control points unconnected, with endpoint-preserving smoothing.
13273
+ * The closed boundary is an unfilled
13256
13274
  * Polygon; the barbs are open "V" strokes (a MultiLineString) whose base is the
13257
13275
  * boundary arc itself. When a Field N (ENY) marker is set, it masks the
13258
13276
  * boundary with a knockout gap wherever its text box touches the ring
@@ -13267,15 +13285,19 @@ function buildBarbs(perimeter, spacing, barbLength, gaps) {
13267
13285
  * ring's west and east edges, per the doctrinal hostile example.
13268
13286
  */
13269
13287
  function createEncirclement(positions, options = {}, textAmplifiers = {}, context = {}) {
13270
- const { barbSpacingRatio = DEFAULT_BARB_SPACING_RATIO, barbLengthRatio = DEFAULT_BARB_LENGTH_RATIO, smooth = DEFAULT_ENCIRCLEMENT_OPTIONS.smooth, smoothResolution = DEFAULT_ENCIRCLEMENT_OPTIONS.smoothResolution } = options;
13271
- const verts = buildClosedRing(positions, smooth, smoothResolution, DEFAULT_SMOOTH_RESOLUTION$2);
13272
- const perimeter = buildAreaPerimeter(verts);
13288
+ const { open = false, barbSpacingRatio = DEFAULT_BARB_SPACING_RATIO, barbLengthRatio = DEFAULT_BARB_LENGTH_RATIO, smooth = DEFAULT_ENCIRCLEMENT_OPTIONS.smooth, smoothResolution = DEFAULT_ENCIRCLEMENT_OPTIONS.smoothResolution } = options;
13289
+ const verts = open ? smoothLineVerts(projectRingPoints(positions), {
13290
+ smooth,
13291
+ smoothResolution
13292
+ }, DEFAULT_SMOOTH_RESOLUTION$2) : buildClosedRing(positions, smooth, smoothResolution, DEFAULT_SMOOTH_RESOLUTION$2);
13293
+ const ring = open ? [...verts, verts[0]] : verts;
13294
+ const perimeter = buildAreaPerimeter(verts, open);
13273
13295
  const labelFeatures = [];
13274
- const gaps = pushAreaLabels(labelFeatures, verts, { hostile: textAmplifiers.N }, options, context.amplifierPlacements, void 0, context);
13275
- const radius = meanRadius(verts);
13296
+ const gaps = pushAreaLabels(labelFeatures, ring, { hostile: textAmplifiers.N }, options, context.amplifierPlacements, open ? { ringVerts: verts } : void 0, context);
13297
+ const radius = meanRadius(ring);
13276
13298
  const barbLength = radius * Math.max(0, barbLengthRatio);
13277
- const barbs = buildBarbs(perimeter, radius * Math.max(0, barbSpacingRatio), barbLength, gaps);
13278
- const features = [boundaryFeature(verts, gaps)];
13299
+ const barbs = buildBarbs(perimeter, radius * Math.max(0, barbSpacingRatio), barbLength, gaps, open);
13300
+ const features = [boundaryFeature(verts, gaps, open)];
13279
13301
  if (barbs.length > 0) features.push({
13280
13302
  type: "Feature",
13281
13303
  properties: { part: "barbs" },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orbat-mapper/control-measures",
3
- "version": "0.24.0",
3
+ "version": "0.25.0",
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",