@props([ 'theme' => '', 'inline' => true, 'filter' => null, 'tableName' => null, 'multiple' => true, 'initialValues' => [], ]) @php $framework = config('livewire-powergrid.plugins.select'); $collection = collect(); if (filled(data_get($filter, 'dataSource'))) { $collection = collect(data_get($filter, 'dataSource'))->transform(function (array|\Illuminate\Support\Collection|\Illuminate\Database\Eloquent\Model $entry) use ($filter) { if (is_array($entry)) { $entry = collect($entry); } return $entry->only([data_get($filter, 'optionValue'), data_get($filter, 'optionLabel')]); }); } $params = [ 'tableName' => $tableName, 'label' => data_get($filter, 'title'), 'dataField' => data_get($filter, 'field'), 'optionValue' => data_get($filter, 'optionValue'), 'optionLabel' => data_get($filter, 'optionLabel'), 'initialValues' => $initialValues, 'framework' => $framework[config('livewire-powergrid.plugins.select.default')], ]; if (\Illuminate\Support\Arr::has($filter, ['url', 'method'])) { $params['asyncData'] = [ 'url' => data_get($filter, 'url'), 'method' => data_get($filter, 'method'), 'parameters' => data_get($filter, 'parameters'), 'headers' => data_get($filter, 'headers'), ]; } $alpineData = $framework['default'] == 'tom' ? 'pgTomSelect(' . \Illuminate\Support\Js::from($params) . ')' : 'pgSlimSelect(' . \Illuminate\Support\Js::from($params) . ')'; @endphp