@props([ 'formAction' => '', 'formId' => 'schemeFilterForm', 'filterRows' => [], 'context' => 'standalone', 'resetUrl' => '', 'title' => 'FIND SCHEMES', 'planType' => '', 'includeContextHidden' => true, 'preserveQuery' => [], 'showFooterActions' => true, ]) @php $schemeFiltersCollapsible = ($context === 'plan') || (function_exists('is_mec_role') && is_mec_role()); $schemeFiltersCollapseId = 'pmsSchemeFiltersCollapse_'.preg_replace('/[^a-zA-Z0-9_-]+/', '_', (string) $formId); @endphp
@if ($includeContextHidden) @endif @foreach ($preserveQuery as $preserveName => $preserveValue) @if ($preserveValue !== null && $preserveValue !== '') @endif @endforeach @if($context !== 'plan' && $includeContextHidden) @php $pc1StatPreserve = request('pc1_stat'); $pc1StatPreserve = in_array((string) $pc1StatPreserve, ['created', 'pending', 'approved'], true) ? (string) $pc1StatPreserve : null; @endphp @if($pc1StatPreserve) @endif @endif @if($context === 'plan') @php $preservePlanType = request('plan_type', $planType); $preserveMonth = request('month', session('plan_create_month')); $preserveYear = request('year', session('plan_create_year')); if (($preserveMonth === null || $preserveMonth === '') || ($preserveYear === null || $preserveYear === '')) { $visitMeta = session('plan_visit_meta', []); if (! is_array($visitMeta)) { $visitMeta = []; } if ($preserveMonth === null || $preserveMonth === '') { $preserveMonth = $visitMeta['month'] ?? null; } if ($preserveYear === null || $preserveYear === '') { $preserveYear = $visitMeta['year'] ?? null; } } @endphp @if($preservePlanType) @endif @if($preserveMonth !== null && $preserveMonth !== '') @endif @if($preserveYear !== null && $preserveYear !== '') @endif @if(request()->filled('return_plan_id')) @endif @php $preserveSchemeIds = request('scheme_ids', []); if (!is_array($preserveSchemeIds)) { $preserveSchemeIds = $preserveSchemeIds !== null && $preserveSchemeIds !== '' ? [$preserveSchemeIds] : []; } @endphp @foreach($preserveSchemeIds as $sid) @if($sid !== null && $sid !== '') @endif @endforeach @php $preserveLockedIds = request('locked_scheme_ids', []); if (!is_array($preserveLockedIds)) { $preserveLockedIds = $preserveLockedIds !== null && $preserveLockedIds !== '' ? [$preserveLockedIds] : []; } @endphp @foreach($preserveLockedIds as $sid) @if($sid !== null && $sid !== '') @endif @endforeach @endif
{{-- Header: title left; actions top right when collapsible --}}
@if($schemeFiltersCollapsible) @endif
{{ $title }}
@if($schemeFiltersCollapsible)
{{ __('Reset All') }}
@endif
@if($schemeFiltersCollapsible)
@endif
@foreach ($filterRows as $rowIndex => $row) @php $isFlagsBarRow = count($row) === 1 && ($row[0]['layout'] ?? '') === 'flags_bar'; @endphp
@foreach ($row as $cell) @php $cellLabel = $cell['label'] ?? ''; $fields = $cell['fields'] ?? []; $colClass = $cell['col'] ?? 'col-12 col-md-6 col-lg-3'; $cellLayout = $cell['layout'] ?? 'default'; $innerFlexClass = 'd-flex flex-wrap align-items-center w-100'; if (in_array($cellLayout, ['checkbox_row', 'checkbox_row_panel'], true)) { $innerFlexClass .= ' scheme-filter-checkbox-row'; if ($cellLayout === 'checkbox_row_panel') { $innerFlexClass .= ' scheme-filter-checkbox-row--in-panel'; } } @endphp @if ($cellLabel && count($fields) > 0) @if ($cellLayout === 'flags_bar')
Scheme Flags: @foreach ($fields as $field) @php $key = $field['key'] ?? ''; $cbLabel = $field['checkbox_label'] ?? $field['key'] ?? ''; $cbChecked = scheme_plan_filter_flag_checked($key, $planType, $context); $cbId = 'scheme_filter_' . preg_replace('/[^a-zA-Z0-9_-]+/', '_', $formId . '_' . $key); @endphp
@endforeach {{-- Action buttons live here for non-collapsible contexts --}} @if(! $schemeFiltersCollapsible)
Reset All
@endif
@elseif ($cellLayout === 'flags_inline')
@foreach ($fields as $field) @php $key = $field['key'] ?? ''; $cbLabel = $field['checkbox_label'] ?? $field['key'] ?? ''; $cbChecked = scheme_plan_filter_flag_checked($key, $planType, $context); $cbId = 'scheme_filter_' . preg_replace('/[^a-zA-Z0-9_-]+/', '_', $formId . '_' . $key); @endphp
@endforeach
@else
@if ($cellLayout === 'checkbox_row_panel')
@endif
@foreach ($fields as $idx => $field) @php $key = $field['key'] ?? ''; $type = $field['type'] ?? 'text'; $options = $field['options'] ?? []; $placeholder = $field['placeholder'] ?? ''; $value = request($key); $separator = $field['separator'] ?? null; $inputClass = $field['inputClass'] ?? ''; $select2StyleInput = ($context === 'plan' && in_array($type, ['text', 'number'], true)); @endphp @if ($key) @if ($type === 'number') @elseif ($type === 'select2_lookup') @elseif ($type === 'select') @php $richData = $field['richStatusData'] ?? null; $richMap = []; if (is_array($richData)) { foreach ($richData as $rd) { $richMap[$rd['label']] = $rd; } } @endphp @elseif ($type === 'multiselect') @php $multiSelected = old($key, request($key, [])); if (!is_array($multiSelected)) { $multiSelected = $multiSelected !== null && $multiSelected !== '' ? [$multiSelected] : []; } $multiSelectedStr = array_map('strval', $multiSelected); $multiPlaceholder = $field['placeholder'] ?? 'Select…'; @endphp @elseif ($type === 'checkbox') @php $cbChecked = scheme_plan_filter_flag_checked($key, $planType, $context); $cbLabel = array_key_exists('checkbox_label', $field) ? (string) ($field['checkbox_label'] ?? '') : (string) $cellLabel; $cbId = 'scheme_filter_' . preg_replace('/[^a-zA-Z0-9_-]+/', '_', $formId . '_' . $key); $cbInline = in_array($cellLayout, ['checkbox_row', 'checkbox_row_panel'], true); @endphp
@else @endif @if ($separator !== null && $idx < count($fields) - 1) {{ $separator }} @endif @endif @endforeach
@if ($cellLayout === 'checkbox_row_panel')
@endif
@endif @endif @endforeach
@endforeach
@if ($showFooterActions && ! $schemeFiltersCollapsible) {{-- Actions bottom: same controls as header, above table --}} @endif @if($schemeFiltersCollapsible)
@endif
@if ($schemeFiltersCollapsible) @once @push('scripts') @endpush @endonce @endif