{{-- enumからラジオボタンを生成する @props key enumのフォルダ名.ファイル名 @props name name属性の値 @props value デフォルト値 @props type 表示名の種別(enumの名称 or 略称:abbr) @props required 必須選択か否か @props border 枠線の有無 @props disabled disabled属性 --}} @props(['key', 'name'=>null, 'value', 'type'=>'', 'required'=>false, 'border'=>false, 'disabled' => false]) @php $items = ($type=='abbr') ? Enum::getAbbrs($key) : Enum::getItems($key); $merged = $required ? $items : $items->concat([(object)['value'=>'', 'name'=>__('Not selected')]]); $has = $merged->contains('value', $value); if (!$has) $value = $required ? $merged->first()->value: ''; $checked = fn($val) => ($val == $value) ? 'checked' : ''; $class = $border ? 'border border-secondary-300 rounded py-0.5 pl-2 pr-3': ''; @endphp
merge(['class' => "item-wrap [&>span>input]:input-radio [&>span>label]:item-label {$class}"]) }}> @foreach($merged as $item) value)}} > @endforeach