from typing import List


def clampRange(range_: List[float], min_: float, max_: float) -> List[float]:
    """
    Clamps a two-element range array in a span-preserving manner. If the span
    of the input range is less than (max - min) and an endpoint exceeds either
    the min or max value, the range is translated such that the span is
    preserved and one endpoint touches the boundary of the [min, max] range.
    If the span exceeds (max - min), the range [min, max] is returned.
    """
    range_ = [min(range_[:2]), max(range_[:2])]
    span = range_[1] - range_[0]
    if span > max_ - min_:
        return [min_, max_]
    elif range_[0] < min_:
        return [min_, min_ + span]
    elif range_[1] > max_:
        return [max_ - span, max_]
    else:
        return range_