void BaseMultipleFieldsDateAndTimeInputType::setValue(const String& sanitizedValue, bool valueChanged, TextFieldEventBehavior eventBehavior)
{
    InputType::setValue(sanitizedValue, valueChanged, eventBehavior);
    DateTimeEditElement* edit = dateTimeEditElement();
    if (valueChanged || (sanitizedValue.isEmpty() && edit && edit->anyEditableFieldsHaveValues())) {
        element().updateView();
        element().setNeedsValidityCheck();
    }
}
void MultipleFieldsTemporalInputTypeView::didSetValue(
    const String& sanitizedValue,
    bool valueChanged) {
  DateTimeEditElement* edit = dateTimeEditElement();
  if (valueChanged || (sanitizedValue.isEmpty() && edit &&
                       edit->anyEditableFieldsHaveValues())) {
    element().updateView();
    element().setNeedsValidityCheck();
  }
}
bool MultipleFieldsTemporalInputTypeView::hasBadInput() const {
  DateTimeEditElement* edit = dateTimeEditElement();
  return element().value().isEmpty() && edit &&
         edit->anyEditableFieldsHaveValues();
}
bool BaseMultipleFieldsDateAndTimeInputType::hasBadInput() const
{
    DateTimeEditElement* edit = dateTimeEditElement();
    return element().value().isEmpty() && edit && edit->anyEditableFieldsHaveValues();
}