miguel456 2b1caeb80c
branch commit
Signed-off-by: miguel456 <me@nogueira.codes>
2023-06-29 18:21:58 +01:00

107 lines
2.9 KiB
PHP
Executable File

@extends('adminlte::components.form.input-group-component')
{{-- Set errors bag internallly --}}
@php($setErrorsBag($errors ?? null))
{{-- Set input group item section --}}
@section('input_group_item')
{{-- Select --}}
<select id="{{ $id }}" name="{{ $name }}"
{{ $attributes->merge(['class' => $makeItemClass()]) }}>
{{ $slot }}
</select>
@overwrite
{{-- Add plugin initialization and configuration code --}}
@push('js')
<script>
$(() => {
$('#{{ $id }}').select2( @json($config) );
// Add support to auto select old submitted values in case of
// validation errors.
@if($errors->any() && $enableOldSupport)
let oldOptions = @json(collect($getOldValue($errorKey)));
$('#{{ $id }} option').each(function()
{
let value = $(this).val() || $(this).text();
$(this).prop('selected', oldOptions.includes(value));
});
$('#{{ $id }}').trigger('change');
@endif
})
</script>
@endpush
{{-- CSS workarounds for the Select2 plugin --}}
{{-- NOTE: this may change with newer plugin versions --}}
@once
@push('css')
<style type="text/css">
{{-- SM size setup --}}
.input-group-sm .select2-selection--single {
height: calc(1.8125rem + 2px) !important
}
.input-group-sm .select2-selection--single .select2-selection__rendered,
.input-group-sm .select2-selection--single .select2-selection__placeholder {
font-size: .875rem !important;
line-height: 2.125;
}
.input-group-sm .select2-selection--multiple {
min-height: calc(1.8125rem + 2px) !important
}
.input-group-sm .select2-selection--multiple .select2-selection__rendered {
font-size: .875rem !important;
line-height: normal;
}
{{-- LG size setup --}}
.input-group-lg .select2-selection--single {
height: calc(2.875rem + 2px) !important;
}
.input-group-lg .select2-selection--single .select2-selection__rendered,
.input-group-lg .select2-selection--single .select2-selection__placeholder {
font-size: 1.25rem !important;
line-height: 2.25;
}
.input-group-lg .select2-selection--multiple {
min-height: calc(2.875rem + 2px) !important
}
.input-group-lg .select2-selection--multiple .select2-selection__rendered {
font-size: 1.25rem !important;
line-height: 1.7;
}
{{-- Enhance the plugin to support readonly attribute --}}
select[readonly].select2-hidden-accessible + .select2-container {
pointer-events: none;
touch-action: none;
}
select[readonly].select2-hidden-accessible + .select2-container .select2-selection {
background: #e9ecef;
box-shadow: none;
}
select[readonly].select2-hidden-accessible + .select2-container .select2-search__field {
display: none;
}
</style>
@endpush
@endonce