@orbat-mapper/control-measures 0.5.0 → 0.5.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.
@@ -803,7 +803,7 @@ interface ControlMeasureStyle {
803
803
  /**
804
804
  * How a filled part's interior is painted. See `ControlMeasureStyle.fillPattern`.
805
805
  */
806
- type FillPattern = "solid" | "hatch" | "reverse-hatch" | "cross-hatch" | "horizontal" | "vertical" | "dots" | "mine-unspecified" | "mine-antipersonnel" | "mine-antipersonnel-directional" | "mine-antitank" | "mine-antitank-antihandling" | "mine-wide-area-antitank";
806
+ type FillPattern = "solid" | "hatch" | "reverse-hatch" | "cross-hatch" | "horizontal" | "vertical" | "dots" | "mine-unspecified" | "mine-antipersonnel" | "mine-antipersonnel-directional" | "mine-antitank" | "mine-antitank-antihandling" | "mine-wide-area-antitank" | "mine-cluster";
807
807
  //#endregion
808
808
  //#region src/internal/area-labels.d.ts
809
809
  /** Shared placement options for the centered-label area measures. */
@@ -1339,8 +1339,8 @@ interface NoFireAreaIrregularOptions extends AreaLabelOptions {
1339
1339
  declare function createNoFireAreaIrregular(positions: Position[], options?: NoFireAreaIrregularOptions, textAmplifiers?: CanonicalTextAmplifiers, context?: ControlMeasureGeneratorContext): FeatureCollection<Polygon | MultiLineString | Point>;
1340
1340
  //#endregion
1341
1341
  //#region src/generators/cm27-protection-areas/mine-types.d.ts
1342
- /** Modifier 1 mine-type values 13–18 from symbol set 25. */
1343
- type MineType = "unspecified" | "antipersonnel" | "antipersonnel-directional" | "antitank" | "antitank-antihandling" | "wide-area-antitank";
1342
+ /** Modifier 1 mine-type values 13–19 from symbol set 25. */
1343
+ type MineType = "unspecified" | "antipersonnel" | "antipersonnel-directional" | "antitank" | "antitank-antihandling" | "wide-area-antitank" | "mine-cluster";
1344
1344
  //#endregion
1345
1345
  //#region src/generators/cm27-protection-areas/mine-areas.d.ts
1346
1346
  interface MineAreaOptions extends LabeledAreaOptions {
package/dist/index.d.mts CHANGED
@@ -1,2 +1,2 @@
1
- import { $ as getDefaultOptions, $n as DEFAULT_BLOCK_ARROW_OPTIONS, $r as LabelSizeOptions, $t as CoverOptions, A as createBaselineFrame, Ai as normalizeTextAmplifiers, An as PhaseLineOptions, Ar as DEFAULT_SECONDARY_DIRECTION_OF_FIRE_OPTIONS, At as DEFAULT_ANTITANK_DITCH_OPTIONS, B as freezeOrientationOptions, Bn as DEFAULT_AIRBORNE_ATTACK_OPTIONS, Br as DirectionOfAttackAviationOptions, Bt as RetireOptions, C as getMidpointPerpendicularSignedDistance, Ci as GeneratedLabelKey, Cn as DEFAULT_HOLDING_LINE_OPTIONS, Cr as EncirclementOptions, Ct as DEFAULT_FORTIFIED_AREA_OPTIONS, D as BaselineFrameNormal, Di as TextAmplifierKey, Dn as DEFAULT_FORWARD_EDGE_OF_BATTLE_AREA_OPTIONS, Dr as FeaturePartProps, Dt as AntitankWallOptions, E as BaselineFrame, Ei as TextAmplifierField, En as DEFAULT_BRIDGEHEAD_LINE_OPTIONS, Er as ControlMeasureRender, Et as FortifiedLineOptions, F as SimpleStyleRender, Fn as DEFAULT_SUPPORT_BY_FIRE_OPTIONS, Fr as DEFAULT_DIRECTION_OF_SUPPORTING_ATTACK_OPTIONS, Ft as DEFAULT_SEIZE_OPTIONS, G as isKind, Gn as DEFAULT_GENERIC_RECTANGLE_OPTIONS, Gr as ControlMeasureStyle, Gt as DEFAULT_GUARD_OPTIONS, H as renderControlMeasure, Hn as GenericTextOptions, Hr as StrongPointOptions, Ht as RearwardPassageOfLinesOptions, I as toSimpleStyle, In as SupportByFireOptions, Ir as DirectionOfSupportingAttackOptions, It as SeizeOptions, J as ControlMeasureId, Jn as GenericPolygonOptions, Jr as GenericC2LineOptions, Jt as DisruptMissionTaskOptions, K as CONTROL_MEASURE_IDS, Kn as GenericRectangleOptions, Kr as FillPattern, Kt as GuardOptions, L as resolveStyleHints, Ln as AttackHelicopterOptions, Lr as DEFAULT_DIRECTION_OF_MAIN_ATTACK_OPTIONS, Lt as DEFAULT_SCREEN_OPTIONS, M as getMetersPerPixel, Mi as AnchorTransformEvent, Mn as FLOTOptions, Mr as SecondaryDirectionOfFireOptions, Mt as WithdrawUnderPressureOptions, N as roundToFixed, Ni as ControlMeasureDrawRule, Nn as AttackByFireOptions, Nr as DEFAULT_PRINCIPAL_DIRECTION_OF_FIRE_OPTIONS, Nt as DEFAULT_WITHDRAW_OPTIONS, O as BaselineFrameOptions, Oi as TextAmplifiers, On as ForwardEdgeOfBattleAreaOptions, Or as StyleHints, Ot as DEFAULT_ANTITANK_WALL_OPTIONS, P as SimpleStyleProps, Pn as DEFAULT_ATTACK_BY_FIRE_OPTIONS, Pr as PrincipalDirectionOfFireOptions, Pt as WithdrawOptions, Q as getControlMeasureMetadataByValue, Qn as BlockArrowOptions, Qr as LightLineOptions, Qt as DelayOptions, R as applyBoxTransformOptions, Rn as DEFAULT_ATTACK_HELICOPTER_OPTIONS, Rr as DirectionOfMainAttackOptions, Rt as ScreenOptions, S as createMidpointPerpendicularDrawRule, Si as CanonicalTextAmplifiers, Sn as ReleaseLineOptions, Sr as DEFAULT_ENCIRCLEMENT_OPTIONS, St as FrontalAttackOptions, T as snapToMidpointPerpendicular, Ti as TEXT_AMPLIFIER_FIELDS, Tn as BridgeheadLineOptions, Tr as FinalProtectiveFireOptions, Tt as DEFAULT_FORTIFIED_LINE_OPTIONS, U as ControlMeasure, Un as DEFAULT_GENERIC_CIRCLE_OPTIONS, Ur as BattlePositionOptions, Ut as DEFAULT_PENETRATE_OPTIONS, V as RenderOptions, Vn as DEFAULT_GENERIC_TEXT_OPTIONS, Vr as DEFAULT_STRONG_POINT_OPTIONS, Vt as DEFAULT_REARWARD_PASSAGE_OF_LINES_OPTIONS, W as cloneControlMeasure, Wn as GenericCircleOptions, Wr as DEFAULT_BATTLE_POSITION_OPTIONS, Wt as PenetrateOptions, X as OptionsByKind, Xn as GenericLineOptions, Xr as EngineerWorkLineOptions, Xt as DisengageOptions, Y as ControlMeasureKind, Yn as DEFAULT_GENERIC_LINE_OPTIONS, Yr as DEFAULT_ENGINEER_WORK_LINE_OPTIONS, Yt as DEFAULT_DISENGAGE_OPTIONS, Z as getControlMeasureMetadata, Zn as BlockArrowHeadStyle, Zr as DEFAULT_LIGHT_LINE_OPTIONS, Zt as DEFAULT_DELAY_OPTIONS, _ as centerRadiusDrawRule, _i as parameterPresentationTierRank, _n as BattleHandoverLineOptions, _r as JointTacticalActionAreaOptions, _t as BlockOptions, a as supportByFireDrawRule, ai as DEFAULT_BOUNDARY_OPTIONS, an as CounterattackOptions, ar as DEFAULT_MAIN_ATTACK_OPTIONS, at as DEFAULT_OBSTACLE_BYPASS_EASY_OPTIONS, b as MidpointPerpendicularDrawRuleOptions, bi as AmplifierPlacement, bn as HandoverLineOptions, br as AreaDefenseOptions, bt as TurningMovementOptions, c as line24DrawRule, ci as ControlMeasureGeometry, cn as DEFAULT_CLEAR_OPTIONS, cr as computeInitialWidthPoint, ct as MinefieldOptions, d as line1DrawRule, di as ControlMeasurePaintCapability, dn as BypassOptions, dr as DEFAULT_PICKUP_ZONE_OPTIONS, dt as DEFAULT_FIX_MISSION_TASK_OPTIONS, ei as Point2D, en as DEFAULT_COVER_OPTIONS, er as ClassicArrowHeadStyle, et as listControlMeasureMetadata, f as ambushDrawRule, fi as PARAMETER_PRESENTATION_TIERS, fn as DEFAULT_BYPASS_OPTIONS, fr as PickupZoneOptions, ft as FixMissionTaskOptions, g as penetrateDrawRule, gi as TextAmplifierDescriptor, gn as DEFAULT_BLOCK_MISSION_TASK_OPTIONS, gr as DEFAULT_JOINT_TACTICAL_ACTION_AREA_OPTIONS, gt as DisruptOptions, h as point12DrawRule, hi as ParameterSemanticRole, hn as BlockMissionTaskOptions, hr as LandingZoneOptions, ht as DEFAULT_DISRUPT_OPTIONS, i as axis1DrawRule, ii as BoundaryOptions, in as DEFAULT_COUNTERATTACK_BY_FIRE_OPTIONS, ir as SupportingAttackOptions, it as ObstacleBypassDifficultOptions, j as EPSILON, ji as resolveAmplifierPlacement, jn as DEFAULT_FLOT_OPTIONS, jr as SECONDARY_DIRECTION_OF_FIRE_DASH, jt as DEFAULT_WITHDRAW_UNDER_PRESSURE_OPTIONS, k as BaselineFrameOrigin, ki as canonicalTextAmplifierKey, kn as DEFAULT_PHASE_LINE_OPTIONS, kr as controlMeasureIdFromFeature, kt as AntitankDitchOptions, l as line23DrawRule, li as ControlMeasureGeometryType, ln as CanalizeOptions, lr as AreaOfOperationsOptions, lt as DEFAULT_TURN_OPTIONS, m as staticPointDrawRule, mi as ParameterPresentationTier, mn as DEFAULT_BREACH_OPTIONS, mr as DEFAULT_LANDING_ZONE_OPTIONS, mt as FixOptions, n as DEFAULT_AMBUSH_OPTIONS, ni as project, nn as TacticalArrowOptions, nr as DEFAULT_CLASSIC_ARROW_OPTIONS, nt as ObstacleBypassImpossibleOptions, o as line27DrawRule, oi as BoxTransformDelta, on as DEFAULT_COUNTERATTACK_OPTIONS, or as MainAttackOptions, ot as ObstacleBypassEasyOptions, p as attackByFireDrawRule, pi as ParamDescriptor, pn as BreachOptions, pr as MineType, pt as DEFAULT_FIX_OPTIONS, q as CONTROL_MEASURE_METADATA, qn as DEFAULT_GENERIC_POLYGON_OPTIONS, qr as DEFAULT_GENERIC_C2_LINE_OPTIONS, qt as DEFAULT_DISRUPT_MISSION_TASK_OPTIONS, r as rectangleDrawRule, ri as unproject, rn as CounterattackByFireOptions, rr as DEFAULT_SUPPORTING_ATTACK_OPTIONS, rt as DEFAULT_OBSTACLE_BYPASS_DIFFICULT_OPTIONS, s as line26DrawRule, si as ControlMeasureFillCapability, sn as ClearOptions, sr as calculateMetrics, st as DEFAULT_MINEFIELD_OPTIONS, t as AmbushOptions, ti as haversineDistance, tn as DEFAULT_TACTICAL_ARROW_OPTIONS, tr as ClassicArrowOptions, tt as DEFAULT_OBSTACLE_BYPASS_IMPOSSIBLE_OPTIONS, u as turnDrawRule, ui as ControlMeasureMetadata, un as DEFAULT_CANALIZE_OPTIONS, ur as DEFAULT_AREA_OF_OPERATIONS_OPTIONS, ut as TurnOptions, v as disruptDrawRule, vi as resolveParameterPresentationTier, vn as DEFAULT_BATTLE_HANDOVER_LINE_OPTIONS, vr as AssemblyAreaOptions, vt as DEFAULT_BLOCK_OPTIONS, w as pointOnMidpointPerpendicularAxis, wi as LabelPlacementOverride, wn as HoldingLineOptions, wr as DEFAULT_FINAL_PROTECTIVE_FIRE_OPTIONS, wt as FortifiedAreaOptions, x as computeDefaultMidpointPerpendicularPoint, xi as AmplifierPlacements, xn as DEFAULT_RELEASE_LINE_OPTIONS, xr as DEFAULT_AREA_DEFENSE_OPTIONS, xt as DEFAULT_FRONTAL_ATTACK_OPTIONS, y as blockDrawRule, yi as resolveParameterSemanticRole, yn as DEFAULT_HANDOVER_LINE_OPTIONS, yr as DEFAULT_ASSEMBLY_AREA_OPTIONS, yt as DEFAULT_TURNING_MOVEMENT_OPTIONS, z as foldsBoxTransformOptions, zn as AirborneAttackOptions, zr as DEFAULT_DIRECTION_OF_ATTACK_AVIATION_OPTIONS, zt as DEFAULT_RETIRE_OPTIONS } from "./index-B4PZpprJ.mjs";
1
+ import { $ as getDefaultOptions, $n as DEFAULT_BLOCK_ARROW_OPTIONS, $r as LabelSizeOptions, $t as CoverOptions, A as createBaselineFrame, Ai as normalizeTextAmplifiers, An as PhaseLineOptions, Ar as DEFAULT_SECONDARY_DIRECTION_OF_FIRE_OPTIONS, At as DEFAULT_ANTITANK_DITCH_OPTIONS, B as freezeOrientationOptions, Bn as DEFAULT_AIRBORNE_ATTACK_OPTIONS, Br as DirectionOfAttackAviationOptions, Bt as RetireOptions, C as getMidpointPerpendicularSignedDistance, Ci as GeneratedLabelKey, Cn as DEFAULT_HOLDING_LINE_OPTIONS, Cr as EncirclementOptions, Ct as DEFAULT_FORTIFIED_AREA_OPTIONS, D as BaselineFrameNormal, Di as TextAmplifierKey, Dn as DEFAULT_FORWARD_EDGE_OF_BATTLE_AREA_OPTIONS, Dr as FeaturePartProps, Dt as AntitankWallOptions, E as BaselineFrame, Ei as TextAmplifierField, En as DEFAULT_BRIDGEHEAD_LINE_OPTIONS, Er as ControlMeasureRender, Et as FortifiedLineOptions, F as SimpleStyleRender, Fn as DEFAULT_SUPPORT_BY_FIRE_OPTIONS, Fr as DEFAULT_DIRECTION_OF_SUPPORTING_ATTACK_OPTIONS, Ft as DEFAULT_SEIZE_OPTIONS, G as isKind, Gn as DEFAULT_GENERIC_RECTANGLE_OPTIONS, Gr as ControlMeasureStyle, Gt as DEFAULT_GUARD_OPTIONS, H as renderControlMeasure, Hn as GenericTextOptions, Hr as StrongPointOptions, Ht as RearwardPassageOfLinesOptions, I as toSimpleStyle, In as SupportByFireOptions, Ir as DirectionOfSupportingAttackOptions, It as SeizeOptions, J as ControlMeasureId, Jn as GenericPolygonOptions, Jr as GenericC2LineOptions, Jt as DisruptMissionTaskOptions, K as CONTROL_MEASURE_IDS, Kn as GenericRectangleOptions, Kr as FillPattern, Kt as GuardOptions, L as resolveStyleHints, Ln as AttackHelicopterOptions, Lr as DEFAULT_DIRECTION_OF_MAIN_ATTACK_OPTIONS, Lt as DEFAULT_SCREEN_OPTIONS, M as getMetersPerPixel, Mi as AnchorTransformEvent, Mn as FLOTOptions, Mr as SecondaryDirectionOfFireOptions, Mt as WithdrawUnderPressureOptions, N as roundToFixed, Ni as ControlMeasureDrawRule, Nn as AttackByFireOptions, Nr as DEFAULT_PRINCIPAL_DIRECTION_OF_FIRE_OPTIONS, Nt as DEFAULT_WITHDRAW_OPTIONS, O as BaselineFrameOptions, Oi as TextAmplifiers, On as ForwardEdgeOfBattleAreaOptions, Or as StyleHints, Ot as DEFAULT_ANTITANK_WALL_OPTIONS, P as SimpleStyleProps, Pn as DEFAULT_ATTACK_BY_FIRE_OPTIONS, Pr as PrincipalDirectionOfFireOptions, Pt as WithdrawOptions, Q as getControlMeasureMetadataByValue, Qn as BlockArrowOptions, Qr as LightLineOptions, Qt as DelayOptions, R as applyBoxTransformOptions, Rn as DEFAULT_ATTACK_HELICOPTER_OPTIONS, Rr as DirectionOfMainAttackOptions, Rt as ScreenOptions, S as createMidpointPerpendicularDrawRule, Si as CanonicalTextAmplifiers, Sn as ReleaseLineOptions, Sr as DEFAULT_ENCIRCLEMENT_OPTIONS, St as FrontalAttackOptions, T as snapToMidpointPerpendicular, Ti as TEXT_AMPLIFIER_FIELDS, Tn as BridgeheadLineOptions, Tr as FinalProtectiveFireOptions, Tt as DEFAULT_FORTIFIED_LINE_OPTIONS, U as ControlMeasure, Un as DEFAULT_GENERIC_CIRCLE_OPTIONS, Ur as BattlePositionOptions, Ut as DEFAULT_PENETRATE_OPTIONS, V as RenderOptions, Vn as DEFAULT_GENERIC_TEXT_OPTIONS, Vr as DEFAULT_STRONG_POINT_OPTIONS, Vt as DEFAULT_REARWARD_PASSAGE_OF_LINES_OPTIONS, W as cloneControlMeasure, Wn as GenericCircleOptions, Wr as DEFAULT_BATTLE_POSITION_OPTIONS, Wt as PenetrateOptions, X as OptionsByKind, Xn as GenericLineOptions, Xr as EngineerWorkLineOptions, Xt as DisengageOptions, Y as ControlMeasureKind, Yn as DEFAULT_GENERIC_LINE_OPTIONS, Yr as DEFAULT_ENGINEER_WORK_LINE_OPTIONS, Yt as DEFAULT_DISENGAGE_OPTIONS, Z as getControlMeasureMetadata, Zn as BlockArrowHeadStyle, Zr as DEFAULT_LIGHT_LINE_OPTIONS, Zt as DEFAULT_DELAY_OPTIONS, _ as centerRadiusDrawRule, _i as parameterPresentationTierRank, _n as BattleHandoverLineOptions, _r as JointTacticalActionAreaOptions, _t as BlockOptions, a as supportByFireDrawRule, ai as DEFAULT_BOUNDARY_OPTIONS, an as CounterattackOptions, ar as DEFAULT_MAIN_ATTACK_OPTIONS, at as DEFAULT_OBSTACLE_BYPASS_EASY_OPTIONS, b as MidpointPerpendicularDrawRuleOptions, bi as AmplifierPlacement, bn as HandoverLineOptions, br as AreaDefenseOptions, bt as TurningMovementOptions, c as line24DrawRule, ci as ControlMeasureGeometry, cn as DEFAULT_CLEAR_OPTIONS, cr as computeInitialWidthPoint, ct as MinefieldOptions, d as line1DrawRule, di as ControlMeasurePaintCapability, dn as BypassOptions, dr as DEFAULT_PICKUP_ZONE_OPTIONS, dt as DEFAULT_FIX_MISSION_TASK_OPTIONS, ei as Point2D, en as DEFAULT_COVER_OPTIONS, er as ClassicArrowHeadStyle, et as listControlMeasureMetadata, f as ambushDrawRule, fi as PARAMETER_PRESENTATION_TIERS, fn as DEFAULT_BYPASS_OPTIONS, fr as PickupZoneOptions, ft as FixMissionTaskOptions, g as penetrateDrawRule, gi as TextAmplifierDescriptor, gn as DEFAULT_BLOCK_MISSION_TASK_OPTIONS, gr as DEFAULT_JOINT_TACTICAL_ACTION_AREA_OPTIONS, gt as DisruptOptions, h as point12DrawRule, hi as ParameterSemanticRole, hn as BlockMissionTaskOptions, hr as LandingZoneOptions, ht as DEFAULT_DISRUPT_OPTIONS, i as axis1DrawRule, ii as BoundaryOptions, in as DEFAULT_COUNTERATTACK_BY_FIRE_OPTIONS, ir as SupportingAttackOptions, it as ObstacleBypassDifficultOptions, j as EPSILON, ji as resolveAmplifierPlacement, jn as DEFAULT_FLOT_OPTIONS, jr as SECONDARY_DIRECTION_OF_FIRE_DASH, jt as DEFAULT_WITHDRAW_UNDER_PRESSURE_OPTIONS, k as BaselineFrameOrigin, ki as canonicalTextAmplifierKey, kn as DEFAULT_PHASE_LINE_OPTIONS, kr as controlMeasureIdFromFeature, kt as AntitankDitchOptions, l as line23DrawRule, li as ControlMeasureGeometryType, ln as CanalizeOptions, lr as AreaOfOperationsOptions, lt as DEFAULT_TURN_OPTIONS, m as staticPointDrawRule, mi as ParameterPresentationTier, mn as DEFAULT_BREACH_OPTIONS, mr as DEFAULT_LANDING_ZONE_OPTIONS, mt as FixOptions, n as DEFAULT_AMBUSH_OPTIONS, ni as project, nn as TacticalArrowOptions, nr as DEFAULT_CLASSIC_ARROW_OPTIONS, nt as ObstacleBypassImpossibleOptions, o as line27DrawRule, oi as BoxTransformDelta, on as DEFAULT_COUNTERATTACK_OPTIONS, or as MainAttackOptions, ot as ObstacleBypassEasyOptions, p as attackByFireDrawRule, pi as ParamDescriptor, pn as BreachOptions, pr as MineType, pt as DEFAULT_FIX_OPTIONS, q as CONTROL_MEASURE_METADATA, qn as DEFAULT_GENERIC_POLYGON_OPTIONS, qr as DEFAULT_GENERIC_C2_LINE_OPTIONS, qt as DEFAULT_DISRUPT_MISSION_TASK_OPTIONS, r as rectangleDrawRule, ri as unproject, rn as CounterattackByFireOptions, rr as DEFAULT_SUPPORTING_ATTACK_OPTIONS, rt as DEFAULT_OBSTACLE_BYPASS_DIFFICULT_OPTIONS, s as line26DrawRule, si as ControlMeasureFillCapability, sn as ClearOptions, sr as calculateMetrics, st as DEFAULT_MINEFIELD_OPTIONS, t as AmbushOptions, ti as haversineDistance, tn as DEFAULT_TACTICAL_ARROW_OPTIONS, tr as ClassicArrowOptions, tt as DEFAULT_OBSTACLE_BYPASS_IMPOSSIBLE_OPTIONS, u as turnDrawRule, ui as ControlMeasureMetadata, un as DEFAULT_CANALIZE_OPTIONS, ur as DEFAULT_AREA_OF_OPERATIONS_OPTIONS, ut as TurnOptions, v as disruptDrawRule, vi as resolveParameterPresentationTier, vn as DEFAULT_BATTLE_HANDOVER_LINE_OPTIONS, vr as AssemblyAreaOptions, vt as DEFAULT_BLOCK_OPTIONS, w as pointOnMidpointPerpendicularAxis, wi as LabelPlacementOverride, wn as HoldingLineOptions, wr as DEFAULT_FINAL_PROTECTIVE_FIRE_OPTIONS, wt as FortifiedAreaOptions, x as computeDefaultMidpointPerpendicularPoint, xi as AmplifierPlacements, xn as DEFAULT_RELEASE_LINE_OPTIONS, xr as DEFAULT_AREA_DEFENSE_OPTIONS, xt as DEFAULT_FRONTAL_ATTACK_OPTIONS, y as blockDrawRule, yi as resolveParameterSemanticRole, yn as DEFAULT_HANDOVER_LINE_OPTIONS, yr as DEFAULT_ASSEMBLY_AREA_OPTIONS, yt as DEFAULT_TURNING_MOVEMENT_OPTIONS, z as foldsBoxTransformOptions, zn as AirborneAttackOptions, zr as DEFAULT_DIRECTION_OF_ATTACK_AVIATION_OPTIONS, zt as DEFAULT_RETIRE_OPTIONS } from "./index-B9foUCfy.mjs";
2
2
  export { type AirborneAttackOptions, type AmbushOptions, type AmplifierPlacement, type AmplifierPlacements, type AnchorTransformEvent, type AntitankDitchOptions, type AntitankWallOptions, type AreaDefenseOptions, type AreaOfOperationsOptions, type AssemblyAreaOptions, type AttackByFireOptions, type AttackHelicopterOptions, type BaselineFrame, type BaselineFrameNormal, type BaselineFrameOptions, type BaselineFrameOrigin, type BattleHandoverLineOptions, type BattlePositionOptions, type BlockArrowHeadStyle, type BlockArrowOptions, type BlockMissionTaskOptions, type BlockOptions, type BoundaryOptions, type BoxTransformDelta, type BreachOptions, type BridgeheadLineOptions, type BypassOptions, CONTROL_MEASURE_IDS, CONTROL_MEASURE_METADATA, type CanalizeOptions, type CanonicalTextAmplifiers, type ClassicArrowHeadStyle, type ClassicArrowOptions, type ClearOptions, type ControlMeasure, type ControlMeasureDrawRule, type ControlMeasureFillCapability, type ControlMeasureGeometry, type ControlMeasureGeometryType, type ControlMeasureId, type ControlMeasureKind, type ControlMeasureMetadata, type ControlMeasurePaintCapability, type ControlMeasureRender, type ControlMeasureStyle, type 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_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_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_TEXT_OPTIONS, DEFAULT_GUARD_OPTIONS, DEFAULT_HANDOVER_LINE_OPTIONS, DEFAULT_HOLDING_LINE_OPTIONS, DEFAULT_JOINT_TACTICAL_ACTION_AREA_OPTIONS, DEFAULT_LANDING_ZONE_OPTIONS, DEFAULT_LIGHT_LINE_OPTIONS, DEFAULT_MAIN_ATTACK_OPTIONS, DEFAULT_MINEFIELD_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_PRINCIPAL_DIRECTION_OF_FIRE_OPTIONS, DEFAULT_REARWARD_PASSAGE_OF_LINES_OPTIONS, DEFAULT_RELEASE_LINE_OPTIONS, DEFAULT_RETIRE_OPTIONS, DEFAULT_SCREEN_OPTIONS, DEFAULT_SECONDARY_DIRECTION_OF_FIRE_OPTIONS, DEFAULT_SEIZE_OPTIONS, DEFAULT_STRONG_POINT_OPTIONS, DEFAULT_SUPPORTING_ATTACK_OPTIONS, DEFAULT_SUPPORT_BY_FIRE_OPTIONS, DEFAULT_TACTICAL_ARROW_OPTIONS, DEFAULT_TURNING_MOVEMENT_OPTIONS, DEFAULT_TURN_OPTIONS, 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 EngineerWorkLineOptions, type FLOTOptions, type FeaturePartProps, type FillPattern, 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 GenericTextOptions, type GuardOptions, type HandoverLineOptions, type HoldingLineOptions, type JointTacticalActionAreaOptions, type LabelPlacementOverride, type LabelSizeOptions, type LandingZoneOptions, type LightLineOptions, type MainAttackOptions, type MidpointPerpendicularDrawRuleOptions, type MineType, type MinefieldOptions, type ObstacleBypassDifficultOptions, type ObstacleBypassEasyOptions, type ObstacleBypassImpossibleOptions, type OptionsByKind, PARAMETER_PRESENTATION_TIERS, type ParamDescriptor, type ParameterPresentationTier, type ParameterSemanticRole, type PenetrateOptions, type PhaseLineOptions, type PickupZoneOptions, type Point2D, type PrincipalDirectionOfFireOptions, type RearwardPassageOfLinesOptions, type ReleaseLineOptions, type RenderOptions, 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, attackByFireDrawRule, axis1DrawRule, blockDrawRule, calculateMetrics, canonicalTextAmplifierKey, centerRadiusDrawRule, cloneControlMeasure, computeDefaultMidpointPerpendicularPoint, computeInitialWidthPoint, controlMeasureIdFromFeature, createBaselineFrame, createMidpointPerpendicularDrawRule, disruptDrawRule, foldsBoxTransformOptions, freezeOrientationOptions, getControlMeasureMetadata, getControlMeasureMetadataByValue, getDefaultOptions, getMetersPerPixel, getMidpointPerpendicularSignedDistance, haversineDistance, isKind, line1DrawRule, line23DrawRule, line24DrawRule, line26DrawRule, line27DrawRule, listControlMeasureMetadata, normalizeTextAmplifiers, parameterPresentationTierRank, penetrateDrawRule, point12DrawRule, pointOnMidpointPerpendicularAxis, project, rectangleDrawRule, renderControlMeasure, resolveAmplifierPlacement, resolveParameterPresentationTier, resolveParameterSemanticRole, resolveStyleHints, roundToFixed, snapToMidpointPerpendicular, staticPointDrawRule, supportByFireDrawRule, toSimpleStyle, turnDrawRule, unproject };
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { $ as DEFAULT_TACTICAL_ARROW_OPTIONS, $t as blockDrawRule, A as DEFAULT_REARWARD_PASSAGE_OF_LINES_OPTIONS, At as DEFAULT_DIRECTION_OF_ATTACK_AVIATION_OPTIONS, B as DEFAULT_BRIDGEHEAD_LINE_OPTIONS, Bt as line27DrawRule, C as DEFAULT_LANDING_ZONE_OPTIONS, Ct as DEFAULT_ANTITANK_WALL_OPTIONS, D as DEFAULT_SEIZE_OPTIONS, Dt as DEFAULT_AREA_DEFENSE_OPTIONS, E as DEFAULT_WITHDRAW_OPTIONS, Et as DEFAULT_AREA_OF_OPERATIONS_OPTIONS, F as DEFAULT_BATTLE_HANDOVER_LINE_OPTIONS, Ft as DEFAULT_AMBUSH_OPTIONS, G as DEFAULT_FINAL_PROTECTIVE_FIRE_OPTIONS, Gt as line1DrawRule, H as DEFAULT_FLOT_OPTIONS, Ht as line24DrawRule, I as DEFAULT_HANDOVER_LINE_OPTIONS, It as DEFAULT_AIRBORNE_ATTACK_OPTIONS, J as DEFAULT_GUARD_OPTIONS, Jt as staticPointDrawRule, K as DEFAULT_ENCIRCLEMENT_OPTIONS, Kt as ambushDrawRule, L as DEFAULT_FORWARD_EDGE_OF_BATTLE_AREA_OPTIONS, Lt as rectangleDrawRule, M as DEFAULT_FRONTAL_ATTACK_OPTIONS, Mt as canonicalTextAmplifierKey, N as DEFAULT_FORTIFIED_AREA_OPTIONS, Nt as normalizeTextAmplifiers, O as DEFAULT_SCREEN_OPTIONS, Ot as DEFAULT_DIRECTION_OF_SUPPORTING_ATTACK_OPTIONS, P as DEFAULT_FORTIFIED_LINE_OPTIONS, Pt as resolveAmplifierPlacement, Q as DEFAULT_COVER_OPTIONS, Qt as disruptDrawRule, R as DEFAULT_RELEASE_LINE_OPTIONS, Rt as axis1DrawRule, S as DEFAULT_MAIN_ATTACK_OPTIONS, St as DEFAULT_ATTACK_BY_FIRE_OPTIONS, T as DEFAULT_WITHDRAW_UNDER_PRESSURE_OPTIONS, Tt as DEFAULT_ASSEMBLY_AREA_OPTIONS, U as DEFAULT_FIX_MISSION_TASK_OPTIONS, Ut as line23DrawRule, V as DEFAULT_PHASE_LINE_OPTIONS, Vt as line26DrawRule, W as DEFAULT_FIX_OPTIONS, Wt as turnDrawRule, X as DEFAULT_DISENGAGE_OPTIONS, Xt as penetrateDrawRule, Y as DEFAULT_DISRUPT_MISSION_TASK_OPTIONS, Yt as point12DrawRule, Z as DEFAULT_DELAY_OPTIONS, Zt as centerRadiusDrawRule, _ as DEFAULT_PICKUP_ZONE_OPTIONS, _t as DEFAULT_BOUNDARY_OPTIONS, a as DEFINITIONS, an as createBaselineFrame, at as DEFAULT_GENERIC_RECTANGLE_OPTIONS, b as DEFAULT_OBSTACLE_BYPASS_DIFFICULT_OPTIONS, bt as DEFAULT_BATTLE_POSITION_OPTIONS, c as getDefaultOptions, cn as haversineDistance, ct as DEFAULT_GENERIC_CIRCLE_OPTIONS, d as DEFAULT_TURN_OPTIONS, dn as EPSILON, dt as DEFAULT_BYPASS_OPTIONS, en as computeDefaultMidpointPerpendicularPoint, et as DEFAULT_COUNTERATTACK_BY_FIRE_OPTIONS, f as DEFAULT_SUPPORT_BY_FIRE_OPTIONS, fn as getMetersPerPixel, ft as DEFAULT_BREACH_OPTIONS, g as DEFAULT_PRINCIPAL_DIRECTION_OF_FIRE_OPTIONS, gt as DEFAULT_LIGHT_LINE_OPTIONS, h as SECONDARY_DIRECTION_OF_FIRE_DASH, ht as DEFAULT_ENGINEER_WORK_LINE_OPTIONS, i as CONTROL_MEASURE_METADATA, in as snapToMidpointPerpendicular, it as DEFAULT_GENERIC_TEXT_OPTIONS, j as DEFAULT_PENETRATE_OPTIONS, jt as TEXT_AMPLIFIER_FIELDS, k as DEFAULT_RETIRE_OPTIONS, kt as DEFAULT_DIRECTION_OF_MAIN_ATTACK_OPTIONS, l as listControlMeasureMetadata, ln as project, lt as DEFAULT_CLASSIC_ARROW_OPTIONS, m as DEFAULT_SECONDARY_DIRECTION_OF_FIRE_OPTIONS, mt as DEFAULT_GENERIC_C2_LINE_OPTIONS, n as resolveStyleHints, nn as getMidpointPerpendicularSignedDistance, nt as DEFAULT_SUPPORTING_ATTACK_OPTIONS, o as getControlMeasureMetadata, on as calculateMetrics, ot as DEFAULT_GENERIC_POLYGON_OPTIONS, p as DEFAULT_STRONG_POINT_OPTIONS, pn as roundToFixed, pt as DEFAULT_BLOCK_MISSION_TASK_OPTIONS, q as DEFAULT_DISRUPT_OPTIONS, qt as attackByFireDrawRule, r as CONTROL_MEASURE_IDS, rn as pointOnMidpointPerpendicularAxis, rt as DEFAULT_CLEAR_OPTIONS, s as getControlMeasureMetadataByValue, sn as computeInitialWidthPoint, st as DEFAULT_GENERIC_LINE_OPTIONS, t as renderControlMeasure, tn as createMidpointPerpendicularDrawRule, tt as DEFAULT_COUNTERATTACK_OPTIONS, u as DEFAULT_TURNING_MOVEMENT_OPTIONS, un as unproject, ut as DEFAULT_CANALIZE_OPTIONS, v as DEFAULT_OBSTACLE_BYPASS_IMPOSSIBLE_OPTIONS, vt as DEFAULT_BLOCK_ARROW_OPTIONS, w as DEFAULT_JOINT_TACTICAL_ACTION_AREA_OPTIONS, wt as DEFAULT_ANTITANK_DITCH_OPTIONS, x as DEFAULT_MINEFIELD_OPTIONS, xt as DEFAULT_ATTACK_HELICOPTER_OPTIONS, y as DEFAULT_OBSTACLE_BYPASS_EASY_OPTIONS, yt as DEFAULT_BLOCK_OPTIONS, z as DEFAULT_HOLDING_LINE_OPTIONS, zt as supportByFireDrawRule } from "./renderControlMeasure-o7IpeFDt.mjs";
1
+ import { $ as DEFAULT_TACTICAL_ARROW_OPTIONS, $t as blockDrawRule, A as DEFAULT_REARWARD_PASSAGE_OF_LINES_OPTIONS, At as DEFAULT_DIRECTION_OF_ATTACK_AVIATION_OPTIONS, B as DEFAULT_BRIDGEHEAD_LINE_OPTIONS, Bt as line27DrawRule, C as DEFAULT_LANDING_ZONE_OPTIONS, Ct as DEFAULT_ANTITANK_WALL_OPTIONS, D as DEFAULT_SEIZE_OPTIONS, Dt as DEFAULT_AREA_DEFENSE_OPTIONS, E as DEFAULT_WITHDRAW_OPTIONS, Et as DEFAULT_AREA_OF_OPERATIONS_OPTIONS, F as DEFAULT_BATTLE_HANDOVER_LINE_OPTIONS, Ft as DEFAULT_AMBUSH_OPTIONS, G as DEFAULT_FINAL_PROTECTIVE_FIRE_OPTIONS, Gt as line1DrawRule, H as DEFAULT_FLOT_OPTIONS, Ht as line24DrawRule, I as DEFAULT_HANDOVER_LINE_OPTIONS, It as DEFAULT_AIRBORNE_ATTACK_OPTIONS, J as DEFAULT_GUARD_OPTIONS, Jt as staticPointDrawRule, K as DEFAULT_ENCIRCLEMENT_OPTIONS, Kt as ambushDrawRule, L as DEFAULT_FORWARD_EDGE_OF_BATTLE_AREA_OPTIONS, Lt as rectangleDrawRule, M as DEFAULT_FRONTAL_ATTACK_OPTIONS, Mt as canonicalTextAmplifierKey, N as DEFAULT_FORTIFIED_AREA_OPTIONS, Nt as normalizeTextAmplifiers, O as DEFAULT_SCREEN_OPTIONS, Ot as DEFAULT_DIRECTION_OF_SUPPORTING_ATTACK_OPTIONS, P as DEFAULT_FORTIFIED_LINE_OPTIONS, Pt as resolveAmplifierPlacement, Q as DEFAULT_COVER_OPTIONS, Qt as disruptDrawRule, R as DEFAULT_RELEASE_LINE_OPTIONS, Rt as axis1DrawRule, S as DEFAULT_MAIN_ATTACK_OPTIONS, St as DEFAULT_ATTACK_BY_FIRE_OPTIONS, T as DEFAULT_WITHDRAW_UNDER_PRESSURE_OPTIONS, Tt as DEFAULT_ASSEMBLY_AREA_OPTIONS, U as DEFAULT_FIX_MISSION_TASK_OPTIONS, Ut as line23DrawRule, V as DEFAULT_PHASE_LINE_OPTIONS, Vt as line26DrawRule, W as DEFAULT_FIX_OPTIONS, Wt as turnDrawRule, X as DEFAULT_DISENGAGE_OPTIONS, Xt as penetrateDrawRule, Y as DEFAULT_DISRUPT_MISSION_TASK_OPTIONS, Yt as point12DrawRule, Z as DEFAULT_DELAY_OPTIONS, Zt as centerRadiusDrawRule, _ as DEFAULT_PICKUP_ZONE_OPTIONS, _t as DEFAULT_BOUNDARY_OPTIONS, a as DEFINITIONS, an as createBaselineFrame, at as DEFAULT_GENERIC_RECTANGLE_OPTIONS, b as DEFAULT_OBSTACLE_BYPASS_DIFFICULT_OPTIONS, bt as DEFAULT_BATTLE_POSITION_OPTIONS, c as getDefaultOptions, cn as haversineDistance, ct as DEFAULT_GENERIC_CIRCLE_OPTIONS, d as DEFAULT_TURN_OPTIONS, dn as EPSILON, dt as DEFAULT_BYPASS_OPTIONS, en as computeDefaultMidpointPerpendicularPoint, et as DEFAULT_COUNTERATTACK_BY_FIRE_OPTIONS, f as DEFAULT_SUPPORT_BY_FIRE_OPTIONS, fn as getMetersPerPixel, ft as DEFAULT_BREACH_OPTIONS, g as DEFAULT_PRINCIPAL_DIRECTION_OF_FIRE_OPTIONS, gt as DEFAULT_LIGHT_LINE_OPTIONS, h as SECONDARY_DIRECTION_OF_FIRE_DASH, ht as DEFAULT_ENGINEER_WORK_LINE_OPTIONS, i as CONTROL_MEASURE_METADATA, in as snapToMidpointPerpendicular, it as DEFAULT_GENERIC_TEXT_OPTIONS, j as DEFAULT_PENETRATE_OPTIONS, jt as TEXT_AMPLIFIER_FIELDS, k as DEFAULT_RETIRE_OPTIONS, kt as DEFAULT_DIRECTION_OF_MAIN_ATTACK_OPTIONS, l as listControlMeasureMetadata, ln as project, lt as DEFAULT_CLASSIC_ARROW_OPTIONS, m as DEFAULT_SECONDARY_DIRECTION_OF_FIRE_OPTIONS, mt as DEFAULT_GENERIC_C2_LINE_OPTIONS, n as resolveStyleHints, nn as getMidpointPerpendicularSignedDistance, nt as DEFAULT_SUPPORTING_ATTACK_OPTIONS, o as getControlMeasureMetadata, on as calculateMetrics, ot as DEFAULT_GENERIC_POLYGON_OPTIONS, p as DEFAULT_STRONG_POINT_OPTIONS, pn as roundToFixed, pt as DEFAULT_BLOCK_MISSION_TASK_OPTIONS, q as DEFAULT_DISRUPT_OPTIONS, qt as attackByFireDrawRule, r as CONTROL_MEASURE_IDS, rn as pointOnMidpointPerpendicularAxis, rt as DEFAULT_CLEAR_OPTIONS, s as getControlMeasureMetadataByValue, sn as computeInitialWidthPoint, st as DEFAULT_GENERIC_LINE_OPTIONS, t as renderControlMeasure, tn as createMidpointPerpendicularDrawRule, tt as DEFAULT_COUNTERATTACK_OPTIONS, u as DEFAULT_TURNING_MOVEMENT_OPTIONS, un as unproject, ut as DEFAULT_CANALIZE_OPTIONS, v as DEFAULT_OBSTACLE_BYPASS_IMPOSSIBLE_OPTIONS, vt as DEFAULT_BLOCK_ARROW_OPTIONS, w as DEFAULT_JOINT_TACTICAL_ACTION_AREA_OPTIONS, wt as DEFAULT_ANTITANK_DITCH_OPTIONS, x as DEFAULT_MINEFIELD_OPTIONS, xt as DEFAULT_ATTACK_HELICOPTER_OPTIONS, y as DEFAULT_OBSTACLE_BYPASS_EASY_OPTIONS, yt as DEFAULT_BLOCK_OPTIONS, z as DEFAULT_HOLDING_LINE_OPTIONS, zt as supportByFireDrawRule } from "./renderControlMeasure-Jv6k67sO.mjs";
2
2
  //#region src/metadata.ts
3
3
  const PARAMETER_PRESENTATION_TIERS = [
4
4
  "primary",
@@ -1,4 +1,4 @@
1
- import { J as ControlMeasureId, Kr as FillPattern, Oi as TextAmplifiers } from "../index-B4PZpprJ.mjs";
1
+ import { J as ControlMeasureId, Kr as FillPattern, Oi as TextAmplifiers } from "../index-B9foUCfy.mjs";
2
2
  import { FeatureCollection, Geometry } from "geojson";
3
3
 
4
4
  //#region src/preview/index.d.ts
@@ -17,7 +17,8 @@ declare const PREVIEW_PATTERN_TILE = 8;
17
17
  declare const PREVIEW_FILL_PATTERNS: readonly {
18
18
  readonly id: PreviewFillPattern;
19
19
  readonly paths: readonly string[];
20
- readonly filledPaths?: readonly string[];
20
+ readonly filledPaths?: readonly string[]; /** Optional SVG dash pattern applied to this pattern's stroked paths. */
21
+ readonly strokeDash?: readonly number[];
21
22
  readonly tileSize?: number; /** Filled dot centers (tile units); the `"dots"` family has no stroked path. */
22
23
  readonly dots?: readonly (readonly [number, number])[];
23
24
  }[];
@@ -1,4 +1,4 @@
1
- import { a as DEFINITIONS, t as renderControlMeasure } from "../renderControlMeasure-o7IpeFDt.mjs";
1
+ import { a as DEFINITIONS, t as renderControlMeasure } from "../renderControlMeasure-Jv6k67sO.mjs";
2
2
  //#region src/preview/index.ts
3
3
  /** Side length (SVG units) of the repeating hatch tile in {@link PREVIEW_FILL_PATTERNS}. */
4
4
  const PREVIEW_PATTERN_TILE = 8;
@@ -43,14 +43,14 @@ const PREVIEW_FILL_PATTERNS = [
43
43
  {
44
44
  id: "mine-antipersonnel",
45
45
  tileSize: 16,
46
- paths: ["M6.5,6 L4.5,3.5 M9.5,6 L11.5,3.5"],
46
+ paths: ["M6.433,6.05 L4.667,3.833 M9.567,6.05 L11.333,3.833"],
47
47
  filledPaths: ["M10.5,8 A2.5,2.5 0 1,1 5.5,8 A2.5,2.5 0 1,1 10.5,8 Z"]
48
48
  },
49
49
  {
50
50
  id: "mine-antipersonnel-directional",
51
51
  tileSize: 16,
52
- paths: ["M6.5,6 L4.5,3.5 M9.5,6 L11.5,3.5 M10,8 L13.5,8"],
53
- filledPaths: ["M10.5,8 A2.5,2.5 0 1,1 5.5,8 A2.5,2.5 0 1,1 10.5,8 Z", "M14.5,8 L13,6.8 L13,9.2 Z"]
52
+ paths: ["M6.433,6.05 L4.667,3.833 M9.567,6.05 L11.333,3.833 M10.5,8 L11.05,8 M11.833,7.667 L12.167,7.95 L11.833,8.333 Z"],
53
+ filledPaths: ["M10.5,8 A2.5,2.5 0 1,1 5.5,8 A2.5,2.5 0 1,1 10.5,8 Z"]
54
54
  },
55
55
  {
56
56
  id: "mine-antitank",
@@ -61,14 +61,20 @@ const PREVIEW_FILL_PATTERNS = [
61
61
  {
62
62
  id: "mine-antitank-antihandling",
63
63
  tileSize: 16,
64
- paths: ["M8,10 L8,13.5 L9.5,12"],
64
+ paths: ["M8,10.5 L8,12.667 L9,11.667"],
65
65
  filledPaths: ["M10.5,8 A2.5,2.5 0 1,1 5.5,8 A2.5,2.5 0 1,1 10.5,8 Z"]
66
66
  },
67
67
  {
68
68
  id: "mine-wide-area-antitank",
69
69
  tileSize: 16,
70
- paths: ["M5,11 L6,12.5 L7,10.5 M9,10.5 L10,12.5 L11,11"],
70
+ paths: ["M4.667,10.5 L6,12.167 L6.917,10.333 M9.083,10.333 L10,12.167 L11.333,10.5"],
71
71
  filledPaths: ["M10.5,8 A2.5,2.5 0 1,1 5.5,8 A2.5,2.5 0 1,1 10.5,8 Z"]
72
+ },
73
+ {
74
+ id: "mine-cluster",
75
+ tileSize: 16,
76
+ paths: ["M11,9.667 L5,9.667 C5,8 5.5,6.333 8,6.333 C10.5,6.333 11,8 11,9.667 Z"],
77
+ strokeDash: [1.25, .833]
72
78
  }
73
79
  ];
74
80
  /** Radius (SVG units) of a {@link PREVIEW_FILL_PATTERNS} dot. */
@@ -1579,7 +1579,7 @@ const AREA_LABEL_PADDING_PARAM = {
1579
1579
  key: "labelPadding",
1580
1580
  presentationTier: "advanced",
1581
1581
  label: "Label padding",
1582
- description: "Extra spacing between the area's label rows, as a ratio of the label height",
1582
+ description: "Extra spacing between or around the area's labels, as a ratio of label height",
1583
1583
  type: "number",
1584
1584
  min: 0,
1585
1585
  max: 2,
@@ -12536,7 +12536,7 @@ const MAIN_ATTACK = defineControlMeasure({
12536
12536
  const MINE_TYPE_PARAM = {
12537
12537
  key: "mineType",
12538
12538
  label: "Mine type",
12539
- description: "Modifier 1 (symbol set 25 values 13–18).",
12539
+ description: "Modifier 1 (symbol set 25 values 13–19).",
12540
12540
  type: "enum",
12541
12541
  presentationTier: "primary",
12542
12542
  semanticRole: "doctrinal",
@@ -12564,6 +12564,10 @@ const MINE_TYPE_PARAM = {
12564
12564
  {
12565
12565
  label: "Wide area antitank mine (18)",
12566
12566
  value: "wide-area-antitank"
12567
+ },
12568
+ {
12569
+ label: "Mine cluster (19)",
12570
+ value: "mine-cluster"
12567
12571
  }
12568
12572
  ]
12569
12573
  };
@@ -12573,7 +12577,8 @@ const MINE_FILL_PATTERNS = {
12573
12577
  "antipersonnel-directional": "mine-antipersonnel-directional",
12574
12578
  antitank: "mine-antitank",
12575
12579
  "antitank-antihandling": "mine-antitank-antihandling",
12576
- "wide-area-antitank": "mine-wide-area-antitank"
12580
+ "wide-area-antitank": "mine-wide-area-antitank",
12581
+ "mine-cluster": "mine-cluster"
12577
12582
  };
12578
12583
  function mineFillPattern(mineType) {
12579
12584
  return MINE_FILL_PATTERNS[mineType];
@@ -12655,8 +12660,16 @@ const MINEFIELD_METADATA = {
12655
12660
  ]
12656
12661
  };
12657
12662
  const CIRCLE_SEGMENTS = 32;
12658
- const FRAME_HEIGHT_RATIO = .48;
12659
- const MINE_RADIUS_RATIO = .075;
12663
+ /** Milsymbol's 270701 frame is 150 units wide by 70 high. */
12664
+ const FRAME_HEIGHT_RATIO = 70 / 150;
12665
+ /** Modifier 1 mine rings use radius 15 within that 150-unit frame. */
12666
+ const MINE_RADIUS_RATIO = 15 / 150;
12667
+ /** Milsymbol centers the three rings at x=55,100,145 in a frame spanning x=25..175. */
12668
+ const MINE_CENTER_RATIOS = [
12669
+ -45 / 150,
12670
+ 0,
12671
+ 45 / 150
12672
+ ];
12660
12673
  const LABEL_SIZE_RATIO = .14;
12661
12674
  const LABEL_CLEARANCE_RATIO = .11;
12662
12675
  /** Unit-circle offsets, built once — a mine ring is rotation-invariant. */
@@ -12676,6 +12689,47 @@ function circleRing(center, radius) {
12676
12689
  function line(points) {
12677
12690
  return points.map(toPosition);
12678
12691
  }
12692
+ function cubicPoint(t, p0, p1, p2, p3) {
12693
+ const u = 1 - t;
12694
+ const u2 = u * u;
12695
+ const t2 = t * t;
12696
+ return [u2 * u * p0[0] + 3 * u2 * t * p1[0] + 3 * u * t2 * p2[0] + t2 * t * p3[0], u2 * u * p0[1] + 3 * u2 * t * p1[1] + 3 * u * t2 * p2[1] + t2 * t * p3[1]];
12697
+ }
12698
+ /**
12699
+ * Arc-length gaps reproducing a dash/gap cadence along a polyline of length
12700
+ * `total`, starting on a dash. Feeding these to {@link buildGappedLine} dashes
12701
+ * the outline with the same walker the boundary measures already use.
12702
+ */
12703
+ function dashGaps(total, dashLength, gapLength) {
12704
+ const gaps = [];
12705
+ for (let start = dashLength; start < total; start += dashLength + gapLength) gaps.push({
12706
+ g0: start,
12707
+ g1: Math.min(start + gapLength, total)
12708
+ });
12709
+ return gaps;
12710
+ }
12711
+ /** Total arc length of an open polyline. */
12712
+ function polylineLength(points) {
12713
+ let total = 0;
12714
+ for (let index = 0; index < points.length - 1; index++) total += pointToPointDistance(points[index], points[index + 1]);
12715
+ return total;
12716
+ }
12717
+ /**
12718
+ * Milsymbol's 36×20-unit dashed mine-cluster outline, scaled from its 15-unit
12719
+ * mine radius. `tactical-draw`'s `fill-pattern.ts` rasterizes the same curve in
12720
+ * tile units for the area-fill pictogram — keep the two in step.
12721
+ */
12722
+ function mineClusterGlyph(mineCenter, radius, offset) {
12723
+ const scale = radius / 15;
12724
+ const local = (x, y) => offset(mineCenter, x * scale, y * scale);
12725
+ const right = local(18, -10);
12726
+ const left = local(-18, -10);
12727
+ const top = local(0, 10);
12728
+ const outline = [right, left];
12729
+ for (let index = 1; index <= 16; index++) outline.push(cubicPoint(index / 16, left, local(-18, 0), local(-15, 10), top));
12730
+ for (let index = 1; index <= 16; index++) outline.push(cubicPoint(index / 16, top, local(15, 10), local(18, 0), right));
12731
+ return buildGappedLine(outline, dashGaps(polylineLength(outline), 7.5 * scale, 5 * scale));
12732
+ }
12679
12733
  /** Creates the frame and three Modifier 1 mine glyphs around the center anchor. */
12680
12734
  function createMinefield(coordinates, options = {}, textAmplifiers = {}, context = {}) {
12681
12735
  const anchor = coordinates[0];
@@ -12693,11 +12747,7 @@ function createMinefield(coordinates, options = {}, textAmplifiers = {}, context
12693
12747
  };
12694
12748
  const height = width * FRAME_HEIGHT_RATIO;
12695
12749
  const radius = width * MINE_RADIUS_RATIO;
12696
- const mineCenters = [
12697
- -.25,
12698
- 0,
12699
- .25
12700
- ].map((ratio) => offset(center, width * ratio, 0));
12750
+ const mineCenters = MINE_CENTER_RATIOS.map((ratio) => offset(center, width * ratio, 0));
12701
12751
  const halfWidth = width / 2;
12702
12752
  const halfHeight = height / 2;
12703
12753
  const frameVerts = [
@@ -12753,39 +12803,48 @@ function createMinefield(coordinates, options = {}, textAmplifiers = {}, context
12753
12803
  features
12754
12804
  };
12755
12805
  }
12806
+ if (mineType === "mine-cluster") {
12807
+ features.push({
12808
+ type: "Feature",
12809
+ properties: { part: "mine-details" },
12810
+ geometry: {
12811
+ type: "MultiLineString",
12812
+ coordinates: mineCenters.flatMap((mineCenter) => mineClusterGlyph(mineCenter, radius, offset))
12813
+ }
12814
+ });
12815
+ return {
12816
+ type: "FeatureCollection",
12817
+ features
12818
+ };
12819
+ }
12756
12820
  const filledRings = circles.map((ring) => [ring]);
12757
12821
  const details = [];
12758
- if (mineType === "antipersonnel" || mineType === "antipersonnel-directional") for (const mineCenter of mineCenters) details.push(line([offset(mineCenter, -radius * .55, radius * .7), offset(mineCenter, -radius * 1.35, radius * 1.55)]), line([offset(mineCenter, radius * .55, radius * .7), offset(mineCenter, radius * 1.35, radius * 1.55)]));
12759
- if (mineType === "antipersonnel-directional") for (const mineCenter of mineCenters) {
12760
- const shaftEnd = offset(mineCenter, radius * 1.45, 0);
12761
- const tip = offset(mineCenter, radius * 1.9, 0);
12762
- details.push(line([offset(mineCenter, radius * .75, 0), shaftEnd]));
12763
- filledRings.push([closeRing(line([
12764
- tip,
12765
- offset(shaftEnd, 0, radius * .25),
12766
- offset(shaftEnd, 0, -radius * .25)
12767
- ]))]);
12768
- }
12822
+ if (mineType === "antipersonnel" || mineType === "antipersonnel-directional") for (const mineCenter of mineCenters) details.push(line([offset(mineCenter, -9.4 / 15 * radius, 11.7 / 15 * radius), offset(mineCenter, -20 / 15 * radius, 25 / 15 * radius)]), line([offset(mineCenter, 9.4 / 15 * radius, 11.7 / 15 * radius), offset(mineCenter, 20 / 15 * radius, 25 / 15 * radius)]));
12823
+ if (mineType === "antipersonnel-directional") for (const mineCenter of mineCenters) details.push(line([offset(mineCenter, radius, 0), offset(mineCenter, 18.3 / 15 * radius, 0)]), closeRing(line([
12824
+ offset(mineCenter, 23 / 15 * radius, 2 / 15 * radius),
12825
+ offset(mineCenter, 25 / 15 * radius, .3 / 15 * radius),
12826
+ offset(mineCenter, 23 / 15 * radius, -2 / 15 * radius)
12827
+ ])));
12769
12828
  if (mineType === "antitank-antihandling") for (const mineCenter of mineCenters) details.push(line([
12770
- offset(mineCenter, 0, -radius * .75),
12771
- offset(mineCenter, 0, -radius * 1.75),
12772
- offset(mineCenter, radius * .4, -radius * 1.45)
12829
+ offset(mineCenter, 0, -radius),
12830
+ offset(mineCenter, 0, -28 / 15 * radius),
12831
+ offset(mineCenter, 6 / 15 * radius, -22 / 15 * radius)
12773
12832
  ]));
12774
12833
  if (mineType === "wide-area-antitank") {
12775
- const touchX = radius * .55;
12776
- const touchY = -Math.sqrt(radius * radius - touchX * touchX);
12777
- const troughX = radius * 1.05;
12778
- const troughY = -radius * 1.45;
12779
- const outerX = radius * 1.45;
12780
- const peakY = -radius * .8;
12834
+ const innerX = 6.5 / 15 * radius;
12835
+ const innerY = -14 / 15 * radius;
12836
+ const troughX = 12 / 15 * radius;
12837
+ const troughY = -25 / 15 * radius;
12838
+ const outerX = 20 / 15 * radius;
12839
+ const outerY = -radius;
12781
12840
  for (const mineCenter of mineCenters) details.push(line([
12782
- offset(mineCenter, -outerX, peakY),
12841
+ offset(mineCenter, -outerX, outerY),
12783
12842
  offset(mineCenter, -troughX, troughY),
12784
- offset(mineCenter, -touchX, touchY)
12843
+ offset(mineCenter, -innerX, innerY)
12785
12844
  ]), line([
12786
- offset(mineCenter, touchX, touchY),
12845
+ offset(mineCenter, innerX, innerY),
12787
12846
  offset(mineCenter, troughX, troughY),
12788
- offset(mineCenter, outerX, peakY)
12847
+ offset(mineCenter, outerX, outerY)
12789
12848
  ]));
12790
12849
  }
12791
12850
  features.push({
@@ -12924,13 +12983,14 @@ function createMineArea(positions, options, minedArea, textAmplifiers, context)
12924
12983
  const ring = buildClosedRing(positions, options.smooth ?? DEFAULT_MINE_AREA_OPTIONS.smooth, options.smoothResolution ?? DEFAULT_MINE_AREA_OPTIONS.smoothResolution, 16);
12925
12984
  const mineType = options.mineType ?? DEFAULT_MINE_AREA_OPTIONS.mineType;
12926
12985
  const labelFeatures = [];
12986
+ const labelPadding = Math.max(0, options.labelPadding ?? 0);
12927
12987
  const sideOffset = textAmplifiers.N ? resolveLabelOffsetMeters(options, 1.5) : 0;
12928
12988
  return {
12929
12989
  type: "FeatureCollection",
12930
12990
  features: [...patternedAreaFeatures(ring, [...minedArea ? pushBoundaryMarkers(labelFeatures, ring, "M", cardinalBoundaryPoints(ring, sideOffset).map((point) => ({ point })), {
12931
12991
  rotation: HORIZONTAL_LABEL_ROTATION,
12932
12992
  textHeight: resolveLabelOffsetMeters(options, 1),
12933
- clearance: resolveLabelOffsetMeters(options, .12),
12993
+ clearance: resolveLabelOffsetMeters(options, .12 + labelPadding),
12934
12994
  sizeProps: labelSizeProps(options)
12935
12995
  }) : [], ...pushAreaLabels(labelFeatures, ring, { hostile: textAmplifiers.N }, options, context.amplifierPlacements)], mineFillPattern(mineType)), ...labelFeatures]
12936
12996
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orbat-mapper/control-measures",
3
- "version": "0.5.0",
3
+ "version": "0.5.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",