I created a custom webform element, It works perfectly, but when I add a table form element, It is not showing

My Code :
<?php
namespace Drupal\webform_mapper\Plugin\WebformElement;
use Drupal\Component\Utility\NestedArray;
use Drupal\Core\DependencyInjection\DependencySerializationTrait;
use Drupal\Core\Form\FormStateInterface;
use Drupal\webform\Plugin\WebformElementBase;
use Drupal\webform\WebformSubmissionInterface;
class WebformExampleElement extends WebformElementBase {
use DependencySerializationTrait;
protected function defineDefaultProperties() {
return [
'multiple' => '',
'size' => '',
'minlength' => '',
'maxlength' => '',
'placeholder' => '',
'source_webform' => '',
'target_elements' => [],
'reference_element' => [],
'reference_element_2' => [],
] + parent::defineDefaultProperties();
}
public function prepare(array &$element, WebformSubmissionInterface $webform_submission = NULL) {
parent::prepare($element, $webform_submission);
}
public function form(array $form, FormStateInterface $form_state) {
$form = parent::form($form, $form_state);
$form['mapped_container'] = [
'#type' => 'fieldset',
'#title' => $this->t('Auto complete data element settings'),
'#open' => TRUE,
'#weight' => -10,
'#attributes' => [
'id' => ['webform-mapped-container'],
],
];
$query = \Drupal::entityQuery('webform');
$results = $query->execute();
$form['mapped_container']['source_webform'] = [
'#type' => 'select',
'#title' => $this->t('Source webform'),
'#options' => $results,
'#ajax' => [
'callback' => [$this, 'updateFormCallback'],
'wrapper' => 'webform-mapped-container',
],
];
$id = $form_state->getValue('source_webform') != NULL ? $form_state->getValue('source_webform') : '';
if (!empty($id)) {
$form['mapped_container']['reference_element'] = [
'#type' => 'select',
'#title' => $this->t('Reference Element'),
'#options' => ['t1', 't2'],
];
$form['mapped_container']['reference_element_2'] = [
'#type' => 'select',
'#title' => $this->t('Reference Element'),
'#options' => ['t5', 't2'],
];
$form['mapped_container']['target_elements'] = [
'#type' => 'table',
'#title' => $this->t('Map Source Elements to Target Elements'),
'#header' => [
$this
->t('Source Webform Elements'),
$this
->t('Target Webform Elements'),
],
];
for ($i = 1; $i <= 4; $i++) {
$form['mapped_container']['target_elements'][$i]['name'] = [
'#type' => 'textfield',
'#title' => $this
->t('Name'),
'#title_display' => 'invisible',
];
$form['mapped_container']['target_elements'][$i]['phone'] = [
'#type' => 'tel',
'#title' => $this
->t('Phone'),
'#title_display' => 'invisible',
];
}
}
return $form;
}
public function updateFormCallback(array $form, FormStateInterface $form_state) {
$id = $form_state->getValues()['properties']['source_webform'];
$form_state->setValue('source_webform', $id);
$triggering_element = $form_state->getTriggeringElement();
$parents = array_slice($triggering_element['#array_parents'], 0, -1);
$element = NestedArray::getValue($form, $parents);
return $element;
}
public function preview() {
return [];
}
}