@php
Assets::addScriptsDirectly('vendor/core/core/base/js/repeater-field.js');
$values = array_values(is_array($value) ? $value : (array) json_decode($value ?: '[]', true));
$added = [];
if (! empty($values)) {
for ($i = 0; $i < count($values); $i++) {
$group = '';
foreach ($fields as $key => $field) {
$item = Form::hidden($name . '[' . $i . '][' . $key . '][key]', $field['attributes']['name']);
$field['attributes']['name'] = $name . '[' . $i . '][' . $key . '][value]';
$field['attributes']['value'] = Arr::get($values, $i . '.' . $key . '.value');
$field['attributes']['options']['id'] = $id = 'repeater_field_' . md5($field['attributes']['name']);
Arr::set($field, 'attributes.id', $id);
Arr::set($field, 'label_attr.for', $id);
$item .= Blade::render(sprintf('%s', Html::attributes(Arr::get($field, 'label_attr', [])), $field['label']));
$item .= call_user_func_array([Form::class, $field['type']], array_values($field['attributes']));
$group .= Blade::render(sprintf("%s", $item));
}
$added[] = Blade::render(sprintf('
%s
', $group));
}
}
$group = '';
foreach ($fields as $key => $field) {
$item = Form::hidden($name . '[__key__][' . $key . '][key]', $field['attributes']['name']);
$field['attributes']['name'] = $name . '[__key__][' . $key . '][value]';
$field['attributes']['options']['id'] = 'repeater_field_' . md5($field['attributes']['name']) . '__key__';
Arr::set($field, 'label_attr.for', $field['attributes']['options']['id']);
$item .= Blade::render(sprintf('%s', Html::attributes(Arr::get($field, 'label_attr', [])), $field['label']));
$item .= call_user_func_array([Form::class, $field['type']], array_values($field['attributes']));
$group .= Blade::render(sprintf('%s', $item));
}
$defaultFields = [Blade::render(sprintf('%s
', $group))];
$repeaterId = 'repeater_field_' . md5($name) . '_' . uniqid();
@endphp
@foreach ($added as $field)
@endforeach
{{ __('Add new') }}
@foreach($defaultFields as $defaultFieldIndex => $defaultField)
@endforeach
{{ $defaultField }}