@props([ 'label' => null, 'type' => 'text', 'icon' => null, 'prepend' => null, 'append' => null, 'rounded' => false, 'size' => null, 'help' => null, 'model' => null, 'debounce' => false, 'defer' => true, 'lazy' => false, 'mask' => null, 'direction' => 'col', 'outlined' => null, 'autocompleteResults' => [], 'autocompleteModel' => null, 'svg' => null, 'svgRight' => false ]) @php if ($type == 'number') $inputmode = 'decimal'; else if (in_array($type, ['tel', 'search', 'email', 'url'])) $inputmode = $type; else $inputmode = 'text'; $bind = ''; if ($debounce) $bind = '.debounce.' . (ctype_digit($debounce) ? $debounce : 150) . 'ms'; else if ($lazy) $bind = '.lazy'; else if ($defer) $bind = '.defer'; $wireModel = $attributes->whereStartsWith('wire:model')->first(); $key = $attributes->get('name', $model ?? $wireModel); $id = $attributes->get('id', $model ?? $wireModel) ?? uniqid(); $isRow = $direction === 'row'; if($mask == 'date' && empty($placeholder)) { $placeholder= "jj/mm/aaaa"; } $mask = match($mask) { 'numeric' => [ 'numeral' => true, 'numeralDecimalScale' => 0, 'numeralPositiveOnly' => true ], 'integer' => [ 'numeral' => true, 'delimiter' => '', 'numeralDecimalScale' => 0, 'numeralPositiveOnly' => true ], 'currency' => [ 'numeral' => true, 'delimiter' => ' ', 'numeralDecimalScale' => 0, 'numeralPositiveOnly' => true ], 'decimal-currency' => [ 'numeral' => true, 'delimiter' => ' ', 'numeralDecimalScale' => 2, 'numeralPositiveOnly' => true ], 'decimal' => [ 'numeral' => true, 'numeralDecimalScale' => 2, 'numeralPositiveOnly' => true ], 'date' => [ 'date' => true, 'delimiter' => "/", 'datePattern' => ['d', 'm', 'Y'] ], 'time' => [ 'time' => true, 'timePattern' => ['h', 'm'] ], default => null }; $attributes = $attributes->class([ 'form-control', 'form-control-' . $size => $size, 'form-round' => $rounded, 'rounded-end' => !$append && !$rounded, 'is-invalid' => $errors->has($key), 'form-control-outlined' => $outlined, 'ps-5' => ! $svgRight ])->merge([ 'type' => $type, 'inputmode' => $inputmode, 'id' => $id, 'wire:model' . $bind => $model, 'col-sm-9' => $isRow, 'id' => $id, ]); @endphp
@if($svg && ! $svgRight)
@svg($svg)
@endif @if($svg && $svgRight)
@svg($svg)
@endif