Nextras\Forms\Controls\DateTimePickerPrototype::extractRangeRule PHP Метод

extractRangeRule() защищенный Метод

Finds minimum and maximum allowed dates.
protected extractRangeRule ( Rules $rules ) : array
$rules Nette\Forms\Rules
Результат array 0 => DateTime|null $minDate, 1 => DateTime|null $maxDate
    protected function extractRangeRule(Rules $rules)
    {
        $controlMin = $controlMax = null;
        foreach ($rules as $rule) {
            $branch = property_exists($rule, 'branch') ? $rule->branch : $rule->subRules;
            if (!$branch) {
                $validator = property_exists($rule, 'validator') ? $rule->validator : $rule->operation;
                if ($validator === Form::RANGE && !$rule->isNegative) {
                    $ruleMinMax = $rule->arg;
                }
            } elseif ($branch) {
                $validator = property_exists($rule, 'validator') ? $rule->validator : $rule->operation;
                if ($validator === Form::FILLED && !$rule->isNegative && $rule->control === $this) {
                    $ruleMinMax = $this->extractRangeRule($branch);
                }
            }
            if (isset($ruleMinMax)) {
                list($ruleMin, $ruleMax) = $ruleMinMax;
                if ($ruleMin !== null && ($controlMin === null || $ruleMin > $controlMin)) {
                    $controlMin = $ruleMin;
                }
                if ($ruleMax !== null && ($controlMax === null || $ruleMax < $controlMax)) {
                    $controlMax = $ruleMax;
                }
                $ruleMinMax = null;
            }
        }
        return array($controlMin, $controlMax);
    }