| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206 | 
							- @php
 -     $isContained = $isContained();
 -     $statePath = $getStatePath();
 -     $previousAction = $getAction('previous');
 -     $nextAction = $getAction('next');
 -     $currentStepDescription = $getCurrentStepDescription();
 -     $areStepTabsHidden = $areStepTabsHidden();
 - @endphp
 - 
 - <div
 -     wire:ignore.self
 -     x-cloak
 -     x-data="{
 -         step: null,
 - 
 -         nextStep: function () {
 -             let nextStepIndex = this.getStepIndex(this.step) + 1
 - 
 -             if (nextStepIndex >= this.getSteps().length) {
 -                 return
 -             }
 - 
 -             this.step = this.getSteps()[nextStepIndex]
 - 
 -             this.autofocusFields()
 -             this.scroll()
 -         },
 - 
 -         previousStep: function () {
 -             let previousStepIndex = this.getStepIndex(this.step) - 1
 - 
 -             if (previousStepIndex < 0) {
 -                 return
 -             }
 - 
 -             this.step = this.getSteps()[previousStepIndex]
 - 
 -             this.autofocusFields()
 -             this.scroll()
 -         },
 - 
 -         scroll: function () {
 -             this.$nextTick(() => {
 -                 this.$refs.header.children[
 -                     this.getStepIndex(this.step)
 -                 ].scrollIntoView({ behavior: 'smooth', block: 'start' })
 -             })
 -         },
 - 
 -         autofocusFields: function () {
 -             $nextTick(() =>
 -                 this.$refs[`step-${this.step}`]
 -                     .querySelector('[autofocus]')
 -                     ?.focus(),
 -             )
 -         },
 - 
 -         getStepIndex: function (step) {
 -             let index = this.getSteps().findIndex(
 -                 (indexedStep) => indexedStep === step,
 -             )
 - 
 -             if (index === -1) {
 -                 return 0
 -             }
 - 
 -             return index
 -         },
 - 
 -         getSteps: function () {
 -             return JSON.parse(this.$refs.stepsData.value)
 -         },
 - 
 -         isFirstStep: function () {
 -             return this.getStepIndex(this.step) <= 0
 -         },
 - 
 -         isLastStep: function () {
 -             return this.getStepIndex(this.step) + 1 >= this.getSteps().length
 -         },
 - 
 -         isStepAccessible: function (stepId) {
 -             return (
 -                 @js($isSkippable()) || this.getStepIndex(this.step) > this.getStepIndex(stepId)
 -             )
 -         },
 - 
 -         updateQueryString: function () {
 -             if (! @js($isStepPersistedInQueryString())) {
 -                 return
 -             }
 - 
 -             const url = new URL(window.location.href)
 -             url.searchParams.set(@js($getStepQueryStringKey()), this.step)
 - 
 -             history.pushState(null, document.title, url.toString())
 -         },
 -     }"
 -     x-init="
 -         $watch('step', () => updateQueryString())
 - 
 -         step = getSteps().at({{ $getStartStep() - 1 }})
 - 
 -         autofocusFields()
 -     "
 -     x-on:next-wizard-step.window="if ($event.detail.statePath === '{{ $statePath }}') nextStep()"
 -     {{
 -         $attributes
 -             ->merge([
 -                 'id' => $getId(),
 -             ], escape: false)
 -             ->merge($getExtraAttributes(), escape: false)
 -             ->merge($getExtraAlpineAttributes(), escape: false)
 -             ->class([
 -                 'fi-fo-wizard',
 -                 'fi-contained rounded-xl bg-white shadow-sm ring-1 ring-gray-950/5 dark:bg-gray-900 dark:ring-white/10' => $isContained,
 -             ])
 -     }}
 - >
 -     <input
 -         type="hidden"
 -         value="{{
 -             collect($getChildComponentContainer()->getComponents())
 -                 ->filter(static fn (\Filament\Forms\Components\Wizard\Step $step): bool => $step->isVisible())
 -                 ->map(static fn (\Filament\Forms\Components\Wizard\Step $step) => $step->getId())
 -                 ->values()
 -                 ->toJson()
 -         }}"
 -         x-ref="stepsData"
 -     />
 - 
 -     @foreach ($getChildComponentContainer()->getComponents() as $step)
 -         <div
 -             x-ref="step-{{ $step->getId() }}"
 -             wire:key="{{ $this->getId() }}.{{ $statePath }}.{{ $step->getId() }}.step"
 -             x-bind:class="{ 'hidden': step !== '{{ $step->getId() }}' }"
 -         >
 -             <x-filament::section
 -                 :id="'wizard-step-{{ $step->getId() }}'"
 -                 :icon="$step->getIcon()"
 -             >
 -                 @if (!$step->isLabelHidden())
 -                     <x-slot name="heading">
 -                         {{ $step->getLabel() }}
 -                     </x-slot>
 -                 @endif
 - 
 -                 @if (filled($description = $step->getDescription()))
 -                     <x-slot name="description">
 -                         {{ $description }}
 -                     </x-slot>
 -                 @endif
 - 
 -                 {{ $step->getChildComponentContainer() }}
 - 
 -                 <footer
 -                     @class([
 -                         'fi-section-footer py-6',
 -                     ])
 -                 >
 -                     <div
 -                         @class([
 -                             'flex items-center justify-between gap-x-3',
 -                         ])
 -                     >
 -                         <span
 -                             x-cloak
 -                             @if (! $previousAction->isDisabled())
 -                                 x-on:click="previousStep"
 -                             @endif
 -                             x-show="! isFirstStep()"
 -                         >
 -                             {{ $previousAction }}
 -                         </span>
 - 
 -                         <span x-show="isFirstStep()">
 -                             {{ $getCancelAction() }}
 -                         </span>
 - 
 -                         <span
 -                             x-cloak
 -                             @if (! $nextAction->isDisabled())
 -                                 x-on:click="
 -                                     $wire.dispatchFormEvent(
 -                                         'wizard::nextStep',
 -                                         '{{ $statePath }}',
 -                                         getStepIndex(step),
 -                                     )
 -                                 "
 -                             @endif
 -                             x-bind:class="{ 'hidden': isLastStep(), 'block': ! isLastStep() }"
 -                         >
 -                             {{ $nextAction }}
 -                         </span>
 - 
 -                         <span
 -                             x-bind:class="{ 'hidden': ! isLastStep(), 'block': isLastStep() }"
 -                         >
 -                             {{ $getSubmitAction() }}
 -                         </span>
 -                     </div>
 -                 </footer>
 -             </x-filament::section>
 -         </div>
 -     @endforeach
 - </div>
 
 
  |