[ 'value' => 'json' ], 'jsonAssoc' => true, ]; } public function getValueAttr(Json $value, array $data) { $raw = $value->value(); $firstOrSelf = function ($val) { if (is_array($val)) { if (empty($val)) { return ''; } $vals = array_values($val); return $vals[0] ?? ''; } return $val; }; return match ($data['type']) { 'radio', 'select', 'elTreeSelect', 'input' => (string)$firstOrSelf($raw), 'switch' => (bool)$raw, 'timePicker', 'colorPicker', 'datePicker', 'fcEditor' => (fn($val) => (is_array($val) && count($val) == 1) ? (array_values($val)[0] ?? '') : $val)($raw), default => $raw, }; } }