wrapper($input);
}
private static function field($field, $rowID, $field_name, $formID, $formViewerInstance, $nestedLayout, $form_atomic_Cls_map, $value)
{
$fieldHelpers = new ConversationalFieldHelpers($formID, $field, $rowID, $form_atomic_Cls_map);
$addBtnMarkup = '';
$addToEndBtnMarkup = '';
if (isset($field->addBtn->show) && $field->addBtn->show) {
$addBtnPreIcn = $fieldHelpers->icon('addBtnPreIcn', 'rpt-add-btn-pre-i');
$addBtnSufIcn = $fieldHelpers->icon('addBtnSufIcn', 'rpt-add-btn-suf-i');
$addBtnMarkup = sprintf(
'
%6$s
%7$s
',
$fieldHelpers->getCustomAttributes('rpt-add-btn'),
$fieldHelpers->getConversationalMultiCls('rpt-add-btn') . ' ' . $fieldHelpers->getCustomClasses('rpt-add-btn'),
$field->addBtn->btnTyp,
$field->fieldName,
$fieldHelpers->getConversationalMultiCls('rpt-add-btn-pre-i'),
$fieldHelpers->kses_post($fieldHelpers->renderHTMR($field->addBtn->txt)),
$addBtnSufIcn
);
};
if (isset($field->addToEndBtn->show) && $field->addToEndBtn->show) {
$addToEndBtnPreIcn = $fieldHelpers->icon('addToEndBtnPreIcn', 'add-to-end-btn-pre-i');
$addToEndBtnSufIcn = $fieldHelpers->icon('addToEndBtnSufIcn', 'add-to-end-btn-suf-i');
$addToEndBtnMarkup = sprintf(
'
%7$s
%8$s
%9$s
',
$fieldHelpers->getCustomAttributes('add-to-end-btn-wrp'),
$fieldHelpers->getConversationalMultiCls('add-to-end-btn-wrp') . ' ' . $fieldHelpers->getCustomClasses('add-to-end-btn-wrp'),
$fieldHelpers->getCustomAttributes('add-to-end-btn'),
$fieldHelpers->getConversationalMultiCls('add-to-end-btn') . ' ' . $fieldHelpers->getCustomClasses('add-to-end-btn'),
$field->addToEndBtn->btnTyp,
$field->fieldName,
$addToEndBtnPreIcn,
$fieldHelpers->kses_post($fieldHelpers->renderHTMR($field->addToEndBtn->txt)),
$addToEndBtnSufIcn
);
};
$removeBtnPreIcn = $fieldHelpers->icon('removeBtnPreIcn', 'rpt-rmv-btn-pre-i');
$removeBtnSufIcn = $fieldHelpers->icon('removeBtnSufIcn', 'rpt-rmv-btn-suf-i');
$conversationalTheme = new DefaultConversationalTheme($formViewerInstance->getFormInfo()->conversationalSettings);
$fieldHtml = '';
if (isset($nestedLayout->lg)) {
foreach ($nestedLayout->lg as $row) {
$fieldHtml .= $conversationalTheme->inputWrapper($formViewerInstance, $row->i, true);
}
}
// role="region" marks each repeater row as a landmark region for screen reader navigation
// aria-label provides context about the row (dynamically updated by JS when rows change)
$repeatableWrap = '
getCustomAttributes('rpt-wrp') . '
class="' . $fieldHelpers->getConversationalMultiCls('rpt-wrp') . ' ' . $fieldHelpers->getCustomClasses('rpt-wrp') . '"
role="region"
aria-label="Repeater row"
>
getCustomAttributes('rpt-grid-wrp') . '
class="' . $fieldHelpers->getConversationalMultiCls('rpt-grid-wrp') . ' ' . $fieldHelpers->getCustomClasses('rpt-grid-wrp') . '"
>
' . $fieldHtml . '
getCustomAttributes('pair-btn-wrp') . '
class="' . $fieldHelpers->getConversationalMultiCls('pair-btn-wrp') . ' ' . $fieldHelpers->getCustomClasses('pair-btn-wrp') . '"
>
' . $addBtnMarkup . '
getCustomAttributes('rpt-rmv-btn') . '
class="' . $fieldHelpers->getConversationalMultiCls('rpt-rmv-btn') . ' ' . $fieldHelpers->getCustomClasses('rpt-rmv-btn') . '"
type="' . $field->removeBtn->btnTyp . '"
data-parent-field-name="' . $field->fieldName . '"
aria-label="Remove this row"
>
' . $fieldHelpers->renderHTMR($field->removeBtn->txt) . '
' . $removeBtnSufIcn . '
';
$repeatedRow = apply_filters('bitform_repeater_repeated_rows', $repeatableWrap, $field);
// role="group" indicates this is a collection of related form controls
// aria-labelledby links to the field label for screen reader context
return sprintf(
' ',
$fieldHelpers->getCustomAttributes('inp-fld-wrp'),
$fieldHelpers->getConversationalMultiCls('inp-fld-wrp') . ' ' . $fieldHelpers->getConversationalCls('inner-grid-fld-wrp') . ' ' . $fieldHelpers->getCustomClasses('inp-fld-wrp'),
$fieldHelpers->getCustomAttributes('rpt-fld-wrp'),
$fieldHelpers->getConversationalMultiCls('rpt-fld-wrp') . ' ' . $fieldHelpers->getCustomClasses('rpt-fld-wrp'),
$fieldHelpers->getLabelId(),
$fieldHelpers->getErrorId(),
$repeatedRow,
$addToEndBtnMarkup,
$fieldHelpers->esc_attr($field->fieldName . '-repeat-index')
);
}
}