Path : /var/www/html/phkaymedia/vendor/jantinnerezo/livewire-alert/src/ |
B-Con CMD Config cPanel C-Rdp D-Log Info Jump Mass Ransom Symlink vHost Zone-H |
Current File : /var/www/html/phkaymedia/vendor/jantinnerezo/livewire-alert/src/LivewireAlert.php |
<?php namespace Jantinnerezo\LivewireAlert; use Illuminate\Support\Arr; use Jantinnerezo\LivewireAlert\Exceptions\AlertException; trait LivewireAlert { public function confirm(string $title, $options = []) { $options = array_merge( config('livewire-alert.confirm'), $options, ); $type = Arr::get($options, 'icon'); $this->alert($type,$title, $options); } public function alert(string $type = 'success', string $message = '', array $options = []) { $this->dispatchOrFlashAlert([ 'type' => $type, 'message' => $message, 'options' => $options ]); } public function flash(string $type = 'success', string $message = '', array $options = [], $redirect = '/') { $this->dispatchOrFlashAlert([ 'type' => $type, 'message' => $message, 'options' => $options, 'flash' => true ]); return redirect()->to($redirect); } protected function dispatchOrFlashAlert(array $configuration) { $type = Arr::get($configuration, 'type'); $message = Arr::get($configuration, 'message'); $events = collect(Arr::only( Arr::get($configuration, 'options'), $this->livewireAlertEvents() )) ->map(function ($event) { return $this->getEventProperties($event); }) ->toArray(); $data = Arr::get($configuration, 'options.data'); $options = Arr::only( Arr::get($configuration, 'options'), $this->configurationKeys() ); $isFlash = Arr::has($configuration, 'flash') && Arr::get($configuration, 'flash') === true; $options = array_merge( config('livewire-alert.alert') ?? [], config('livewire-alert.' . $type) ?? [], $options ); if (! in_array($type,$this->livewireAlertIcons())) { throw new AlertException( "Invalid '{$type}' alert icon." ); } $payload = [ 'type' => $type, 'message' => $message, 'events' => $events, 'options' => $options, 'data' => $data, ]; if (! $isFlash) { $this->dispatchBrowserEvent('alert', $payload); return; } session()->flash('livewire-alert', $payload); } protected function getEventProperties($event) { $expectedKeys = ['id', 'component', 'listener']; if (is_array( $event)) { $event = Arr::only($event, $expectedKeys); if (! Arr::exists($event, 'component')) { throw new AlertException('Missing component key on event properties'); } if (! Arr::exists($event, 'listener')) { throw new AlertException('Missing listener key on event properties'); } Arr::set($event, 'id', null); return $event; } return [ 'id' => $this->id, 'component' => 'self', 'listener' => $event ]; } protected function livewireAlertIcons(): array { return [ '', 'success', 'info', 'warning', 'error', 'question' ]; } protected function livewireAlertEvents(): array { return [ 'onConfirmed', 'onDismissed', 'onDenied', 'onProgressFinished' ]; } protected function configurationKeys(): array { return [ 'title', 'titleText', 'html', 'text', 'icon', 'iconColor', 'iconHtml', 'showClass', 'hideClass', 'footer', 'backdrop', 'toast', 'target', 'input', 'width', 'padding', 'color', 'background', 'position', 'grow', 'customClass', 'timer', 'timerProgressBar', 'heightAuto', 'allowOutsideClick', 'allowEscapeKey', 'allowEnterKey', 'stopKeydownPropagation', 'keydownListenerCapture', 'showConfirmButton', 'showDenyButton', 'showCancelButton', 'confirmButtonText', 'denyButtonText', 'cancelButtonText', 'confirmButtonText', 'confirmButtonColor', 'denyButtonColor', 'cancelButtonColor', 'confirmButtonAriaLabel', 'denyButtonAriaLabel', 'cancelButtonAriaLabel', 'buttonsStyling', 'reverseButtons', 'focusConfirm', 'returnFocus', 'focusDeny', 'focusCancel', 'showCloseButton', 'closeButtonHtml', 'closeButtonAriaLabel', 'loaderHtml', 'showLoaderOnConfirm', 'showLoaderOnDeny', 'scrollbarPadding', 'preConfirm', 'preDeny', 'returnInputValueOnDeny', 'imageUrl', 'imageWidth', 'imageHeight', 'imageAlt', 'inputLabel', 'inputPlaceholder', 'inputValue', 'inputOptions', 'inputAutoTrim', 'inputAttributes', 'inputValidator', 'validationMessage', 'progressSteps', 'currentProgressStep', 'progressStepsDistance', 'willOpen', 'didOpen', 'didRender', 'willClose', 'didClose', 'didDestroy' ]; } }