WebformTelephone.php in Webform 8.5
File
src/Element/WebformTelephone.php
View source
<?php
namespace Drupal\webform\Element;
use Drupal\Core\Form\FormStateInterface;
class WebformTelephone extends WebformCompositeBase {
public function getInfo() {
$info = parent::getInfo() + [
'#theme' => 'webform_composite_telephone',
];
unset($info['#title_display']);
return $info;
}
public static function getCompositeElements(array $element) {
$elements = [];
$elements['type'] = [
'#type' => 'select',
'#title' => t('Type'),
'#title_display' => 'invisible',
'#options' => 'phone_types',
'#empty_option' => t('- Type -'),
];
$elements['phone'] = [
'#type' => 'tel',
'#title' => t('Phone'),
'#title_display' => 'invisible',
'#international' => TRUE,
];
$elements['ext'] = [
'#title' => t('Ext:'),
'#type' => 'number',
'#size' => 5,
'#min' => 0,
];
return $elements;
}
public static function processWebformComposite(&$element, FormStateInterface $form_state, &$complete_form) {
$element = parent::processWebformComposite($element, $form_state, $complete_form);
if (!empty($element['#phone__international']) && \Drupal::service('webform.libraries_manager')
->isIncluded('jquery.intl-tel-input')) {
$element['#attached']['library'][] = 'webform/webform.telephone';
}
return $element;
}
}