added Laravel liwereve to the project and created a component for editing further tasks

This commit is contained in:
ygbanzato 2023-09-01 15:55:03 +01:00
parent bf4426cb84
commit b896b64328
248 changed files with 31209 additions and 120 deletions

View File

@ -34,6 +34,108 @@
class CreateProjectController extends Controller class CreateProjectController extends Controller
{ {
public function deleteFurtherTasks(Request $request)
{
$receiveDataEquipment = Equipment::where('equipment_id', $request->equipmentID)->first();
// Buscar os registros que correspondem ao equipmentID e que têm further_tasks_id nos selectedTasks
$tasksToDelete = OrderEquipmentTasks::where('equipment_id', $request->equipmentID)
->whereIn('further_tasks_id', $request->selectedTasks)
->get();
// Excluir esses registros
foreach ($tasksToDelete as $task) {
$task->delete();
}
// Se o treatmentFurtherTask for "DeleteFurtherTask", exclua os registros da tabela principal FurtherTasks
if ($request->treatmentFurtherTask == "DeleteFurtherTask") {
FurtherTasks::whereIn('further_tasks_id', $request->selectedTasks)->delete();
}
// Reordenar os registros restantes
$remainingTasks = OrderEquipmentTasks::where('equipment_id', $request->equipmentID)
->orderBy('execution_order', 'asc')
->get();
$executionOrder = 1;
foreach ($remainingTasks as $task) {
$task->execution_order = $executionOrder;
$task->save();
$executionOrder++;
}
return redirect()->back()->with('success', 'Ordem de execução do equipamento: ' . $receiveDataEquipment->equipment_tag . ' Atulizada!');
}
public function addFurtherTasks(Request $request)
{
// Recebe e organiza os dados do equipameto recebido : ($request->equipmentID) e organiza em asc de acordo com a Ordem de execução
$equipmentId = $request->equipmentID;
$tasksToReorder = OrderEquipmentTasks::where('equipment_id', $equipmentId)
->orderBy('execution_order', 'asc')
->get();
$receiveDataEquipment = Equipment::where('equipment_id', $request->equipmentID)->first();
// *Para Criar uma nova Tarefa complementar deve ser a soma dos dados das 2 tabelas para dar o numero da proxima tarefa e assim o numero da TC
// Obtenha a contagem de registros nas tabelas ElementalTasks e FurtherTasks
$elementalTasksCount = ElementalTasks::count();
$furtherTasksCount = FurtherTasks::count();
// Calcule o valor de further_tasks_id
$newFurtherTaskId = $elementalTasksCount + $furtherTasksCount + 1;
// Calcule o valor de further_tasks_name
$newFurtherTaskName = 'TC' . ($furtherTasksCount + 1);
$insertPosition = $request->ArrayListElementsTasks + 1;
// Incrementar a execution_order das tarefas após a posição de inserção
foreach ($tasksToReorder as $task) {
if ($task->execution_order >= $insertPosition) {
$task->execution_order += 1;
$task->save();
}
}
// Agora, insira a nova tarefa na posição desejada
$newOrderEquipmentTask = new OrderEquipmentTasks;
$newOrderEquipmentTask->equipment_id = $equipmentId;
$newOrderEquipmentTask->execution_order = $insertPosition;
$newOrderEquipmentTask->elemental_tasks_id = null;
// Se o selectedFurtherTaskExisting for null quer dizer que e uma TC complementar criada e nova se nao for null quer dizer que vamos criar uma TC existente.
if ($request->selectedFurtherTaskExisting == 'null') {
// Cria uma nova tarefa Complementar
$newFurtherTask = new FurtherTasks;
$newFurtherTask->further_tasks_id = $newFurtherTaskId;
$newFurtherTask->further_tasks_name = $newFurtherTaskName;
$newFurtherTask->further_tasks_description = $request->furtherTask;
$newFurtherTask->company_projects_id = $receiveDataEquipment->company_projects_id;
$newFurtherTask->save();
$newOrderEquipmentTask->further_tasks_id = $newFurtherTask->further_tasks_id;
} else {
$newOrderEquipmentTask->further_tasks_id = $request->selectedFurtherTaskExisting;
}
$newOrderEquipmentTask->inspection = 'Nao';
$newOrderEquipmentTask->save();
return redirect()->back()->with('success', 'Ordem de execução do equipamento: ' . $receiveDataEquipment->equipment_tag . ' Atulizada!');
}
public function receiveEquipmentToAssociateTasks(Request $request) public function receiveEquipmentToAssociateTasks(Request $request)
{ {
// dd($request); // dd($request);

View File

@ -0,0 +1,52 @@
<?php
namespace App\Livewire\Articulado;
use Livewire\Component;
use App\Models\OrderEquipmentTasks;
use App\Models\FurtherTasks;
class AdditonalTask extends Component
{
public $equipment;
public $tasks = [];
public $furtherTasks = [];
public $furtherTaskRecords = [];
public $selectedFurtherTask = 'null';
public $showAdditionalTask = false;
public function mount($equipment)
{
$this->equipment = $equipment;
$this->tasks = OrderEquipmentTasks::where('equipment_id', $this->equipment->equipment_id)
->orderBy('execution_order', 'asc')
->get();
// Coletando todos os registros onde further_tasks_id é diferente de null
$this->furtherTaskRecords = OrderEquipmentTasks::where('equipment_id', $this->equipment->equipment_id)
->whereNotNull('further_tasks_id')
->get();
// Coletando todos os further_tasks_id da coleção $tasks que são diferentes de null
$existingFurtherTaskIds = $this->tasks->whereNotNull('further_tasks_id')->pluck('further_tasks_id');
// Buscando furtherTasks que não estão presentes em $tasks
$this->furtherTasks = FurtherTasks::where('company_projects_id', $this->equipment->company_projects_id)
->whereNotIn('further_tasks_id', $existingFurtherTaskIds)
->get();
}
public function toggle()
{
$this->showAdditionalTask = !$this->showAdditionalTask;
}
public function render()
{
return view('livewire.articulado.additonal-task');
}
}

View File

@ -15,5 +15,8 @@ class FurtherTasks extends Model
protected $primaryKey = 'further_tasks_id'; protected $primaryKey = 'further_tasks_id';
public function orderEquipmentTasks()
{
return $this->hasMany(OrderEquipmentTasks::class,'further_tasks_id','further_tasks_id');
}
} }

View File

@ -12,6 +12,8 @@ class OrderEquipmentTasks extends Model
protected $table = 'ordered_equipment_tasks'; protected $table = 'ordered_equipment_tasks';
// protected $primaryKey = 'ordered_equipment_tasks_id';
public function equipment() public function equipment()
{ {
return $this->belongsTo(Equipment::class, 'equipment_id', 'equipment_id'); return $this->belongsTo(Equipment::class, 'equipment_id', 'equipment_id');
@ -21,4 +23,9 @@ public function elementalTask()
{ {
return $this->belongsTo(ElementalTasks::class,'elemental_tasks_id','elemental_tasks_id'); return $this->belongsTo(ElementalTasks::class,'elemental_tasks_id','elemental_tasks_id');
} }
public function furtherTasks()
{
return $this->belongsTo(FurtherTasks::class,'further_tasks_id','further_tasks_id');
}
} }

View File

@ -11,6 +11,7 @@
"laravel/framework": "^10.8", "laravel/framework": "^10.8",
"laravel/sanctum": "^3.2", "laravel/sanctum": "^3.2",
"laravel/tinker": "^2.8", "laravel/tinker": "^2.8",
"livewire/livewire": "^3.0",
"phpoffice/phpspreadsheet": "^1.28", "phpoffice/phpspreadsheet": "^1.28",
"symfony/http-client": "^6.2", "symfony/http-client": "^6.2",
"symfony/mailgun-mailer": "^6.2", "symfony/mailgun-mailer": "^6.2",

75
composer.lock generated
View File

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"content-hash": "51ebbc942093bdb678f8cecc025df588", "content-hash": "a57e63e19cef626ac7d557917fce5eb3",
"packages": [ "packages": [
{ {
"name": "bacon/bacon-qr-code", "name": "bacon/bacon-qr-code",
@ -1930,6 +1930,79 @@
], ],
"time": "2022-04-17T13:12:02+00:00" "time": "2022-04-17T13:12:02+00:00"
}, },
{
"name": "livewire/livewire",
"version": "v3.0.1",
"source": {
"type": "git",
"url": "https://github.com/livewire/livewire.git",
"reference": "2e426e8d47e03c4777334ec0c8397341bcfa15f3"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/livewire/livewire/zipball/2e426e8d47e03c4777334ec0c8397341bcfa15f3",
"reference": "2e426e8d47e03c4777334ec0c8397341bcfa15f3",
"shasum": ""
},
"require": {
"illuminate/database": "^10.0|^11.0",
"illuminate/support": "^10.0|^11.0",
"illuminate/validation": "^10.0|^11.0",
"league/mime-type-detection": "^1.9",
"php": "^8.1",
"symfony/http-kernel": "^5.0|^6.0"
},
"require-dev": {
"calebporzio/sushi": "^2.1",
"laravel/framework": "^10.0|^11.0",
"mockery/mockery": "^1.3.1",
"orchestra/testbench": "^7.0|^8.0",
"orchestra/testbench-dusk": "^7.0|^8.0",
"phpunit/phpunit": "^9.0",
"psy/psysh": "@stable"
},
"type": "library",
"extra": {
"laravel": {
"providers": [
"Livewire\\LivewireServiceProvider"
],
"aliases": {
"Livewire": "Livewire\\Livewire"
}
}
},
"autoload": {
"files": [
"src/helpers.php"
],
"psr-4": {
"Livewire\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Caleb Porzio",
"email": "calebporzio@gmail.com"
}
],
"description": "A front-end framework for Laravel.",
"support": {
"issues": "https://github.com/livewire/livewire/issues",
"source": "https://github.com/livewire/livewire/tree/v3.0.1"
},
"funding": [
{
"url": "https://github.com/livewire",
"type": "github"
}
],
"time": "2023-08-25T18:13:03+00:00"
},
{ {
"name": "maennchen/zipstream-php", "name": "maennchen/zipstream-php",
"version": "v2.4.0", "version": "v2.4.0",

158
config/livewire.php Normal file
View File

@ -0,0 +1,158 @@
<?php
return [
/*
|---------------------------------------------------------------------------
| Class Namespace
|---------------------------------------------------------------------------
|
| This value sets the root class namespace for Livewire component classes in
| your application. This value will change where component auto-discovery
| finds components. It's also referenced by the file creation commands.
|
*/
'class_namespace' => 'App\\Livewire',
/*
|---------------------------------------------------------------------------
| View Path
|---------------------------------------------------------------------------
|
| This value is used to specify where Livewire component Blade templates are
| stored when running file creation commands like `artisan make:livewire`.
| It is also used if you choose to omit a component's render() method.
|
*/
'view_path' => resource_path('views/livewire'),
/*
|---------------------------------------------------------------------------
| Layout
|---------------------------------------------------------------------------
| The view that will be used as the layout when rendering a single component
| as an entire page via `Route::get('/post/create', CreatePost::class);`.
| In this case, the view returned by CreatePost will render into $slot.
|
*/
'layout' => 'components.layouts.app',
/*
|---------------------------------------------------------------------------
| Lazy Loading Placeholder
|---------------------------------------------------------------------------
| Livewire allows you to lazy load components that would otherwise slow down
| the initial page load. Every component can have a custom placeholder or
| you can define the default placeholder view for all components below.
|
*/
'lazy_placeholder' => null,
/*
|---------------------------------------------------------------------------
| Temporary File Uploads
|---------------------------------------------------------------------------
|
| Livewire handles file uploads by storing uploads in a temporary directory
| before the file is stored permanently. All file uploads are directed to
| a global endpoint for temporary storage. You may configure this below:
|
*/
'temporary_file_upload' => [
'disk' => null, // Example: 'local', 's3' | Default: 'default'
'rules' => null, // Example: ['file', 'mimes:png,jpg'] | Default: ['required', 'file', 'max:12288'] (12MB)
'directory' => null, // Example: 'tmp' | Default: 'livewire-tmp'
'middleware' => null, // Example: 'throttle:5,1' | Default: 'throttle:60,1'
'preview_mimes' => [ // Supported file types for temporary pre-signed file URLs...
'png', 'gif', 'bmp', 'svg', 'wav', 'mp4',
'mov', 'avi', 'wmv', 'mp3', 'm4a',
'jpg', 'jpeg', 'mpga', 'webp', 'wma',
],
'max_upload_time' => 5, // Max duration (in minutes) before an upload is invalidated...
],
/*
|---------------------------------------------------------------------------
| Render On Redirect
|---------------------------------------------------------------------------
|
| This value determines if Livewire will run a component's `render()` method
| after a redirect has been triggered using something like `redirect(...)`
| Setting this to true will render the view once more before redirecting
|
*/
'render_on_redirect' => false,
/*
|---------------------------------------------------------------------------
| Eloquent Model Binding
|---------------------------------------------------------------------------
|
| Previous versions of Livewire supported binding directly to eloquent model
| properties using wire:model by default. However, this behavior has been
| deemed too "magical" and has therefore been put under a feature flag.
|
*/
'legacy_model_binding' => false,
/*
|---------------------------------------------------------------------------
| Auto-inject Frontend Assets
|---------------------------------------------------------------------------
|
| By default, Livewire automatically injects its JavaScript and CSS into the
| <head> and <body> of pages containing Livewire components. By disabling
| this behavior, you need to use @livewireStyles and @livewireScripts.
|
*/
'inject_assets' => true,
/*
|---------------------------------------------------------------------------
| Navigate (SPA mode)
|---------------------------------------------------------------------------
|
| By adding `wire:navigate` to links in your Livewire application, Livewire
| will prevent the default link handling and instead request those pages
| via AJAX, creating an SPA-like effect. Configure this behavior here.
|
*/
'navigate' => [
'show_progress_bar' => true,
],
/*
|---------------------------------------------------------------------------
| HTML Morph Markers
|---------------------------------------------------------------------------
|
| Livewire intelligently "morphs" existing HTML into the newly rendered HTML
| after each update. To make this process more reliable, Livewire injects
| "markers" into the rendered Blade surrounding @if, @class & @foreach.
|
*/
'inject_morph_markers' => true,
/*
|---------------------------------------------------------------------------
| Pagination Theme
|---------------------------------------------------------------------------
|
| When enabling Livewire's pagination feature by using the `WithPagination`
| trait, Livewire will use Tailwind templates to render pagination views
| on the page. If you want Bootstrap CSS, you can specify: "bootstrap"
|
*/
'pagination_theme' => 'tailwind',
];

View File

@ -54,6 +54,11 @@ :root {
--font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
} }
.scrollable-list {
max-height: calc(1.5em + .75rem + 2px + 2px + 1.5em + .75rem + 2px + 2px + 1.5em + .75rem + 2px + 2px + 1.5em + .75rem + 2px); /* Altura de 4 itens de lista */
overflow-y: auto;
}
/* PT_Sans */ /* PT_Sans */
@font-face { @font-face {
font-family: 'PT_Sans'; font-family: 'PT_Sans';

View File

@ -0,0 +1,13 @@
<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
@livewireStyles
<title>{{ $title ?? 'Page Title' }}</title>
</head>
<body>
{{ $slot }}
@livewireScripts
</body>
</html>

View File

@ -0,0 +1,144 @@
<div class="card-footer">
<div class="icheck-primary d-inline">
<input type="checkbox" id="checkboxAddicionalTask{{ $equipment->equipment_id }}" wire:click="toggle">
<label for="checkboxAddicionalTask{{ $equipment->equipment_id }}">
Tarefa Complementares
</label>
</div>
@if ($showAdditionalTask)
<div id="descriptionAdditionalTask">
<br>
<div>
</div>
<ul class="nav nav-tabs nav-tabs-bordered">
<li class="nav-item">
<button type="button" class="nav-link active" data-bs-toggle="tab" data-bs-target="#AddFurtherTask">
Adicionar TC
</button>
</li>
<li class="nav-item">
<button type="button" class="nav-link" data-bs-toggle="tab" data-bs-target="#DeleteFurtherTask">
Excluir TC
</button>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane fade DeleteFurtherTask" id="DeleteFurtherTask">
<form action="{{ route('deleteFurtherTasks') }}" method="POST">
@csrf
<input type="hidden" name="equipmentID" value="{{ $equipment->equipment_id }}">
<div class="form-group">
<div class="card">
<div class="card-body">
<div class="text-center">
<p><b>Excluir Tarefa Complementar</b></p>
</div>
<ul class="list-group scrollable-list" style="border: 1px solid #09255C;">
@foreach ($furtherTaskRecords as $task)
<li class="list-group-item d-flex align-items-center" aria-current="true">
<input class="icheck-primary me-2" type="checkbox"
name="selectedTasks[]" value="{{ $task->further_tasks_id }}">
({{ $task->furtherTasks->further_tasks_name }})
- {{ $task->furtherTasks->further_tasks_description }}
</li>
@endforeach
</ul>
<br>
<div>
<select class="form-control" name="treatmentFurtherTask"
id="treatmentFurtherTask">
<option value="DeleteFurtherTask">Excluir Tarefa Complementar</option>
<option value="DeleteFurtherTasksOfEquipment">
Excluir Tarefa do equipamento
</option>
</select>
<br>
<div class="text-right">
<button type="submit" class="btn btn-outline-danger">Excluir</button>
</div>
</div>
</div>
</div>
</div>
</form>
</div>
<div class="tab-pane fade show active AddFurtherTask" id="AddFurtherTask">
<form action="{{ route('addFurtherTasks') }}" method="post">
@csrf
<div class="form-group">
<div class="card">
<div class="card-body">
<div class="text-center">
<p><b>Fluxo da Tarefa</b></p>
</div>
<input type="hidden" name="equipmentID" value="{{ $equipment->equipment_id }}">
<div class="row">
<div class="col-sm-6">
<p>Tarefas complementares ja existentes:</p>
<select class="form-control" name="selectedFurtherTaskExisting"
id="selectedFurtherTaskExisting" wire:model="selectedFurtherTask"
wire:change="$refresh">
<option value="null" name="nullFurtherTasks">N/A</option>
@foreach ($furtherTasks as $furtherTask)
<option value="{{ $furtherTask->further_tasks_id }}">
{{ $furtherTask->further_tasks_description }}</option>
@endforeach
</select>
</div>
<div class="col-sm-6">
<p>Indique a tarefa complementar :</p>
{{-- <input name="furtherTask" type="text" class="form-control"> --}}
<input name="furtherTask" type="text" class="form-control"
{{ $selectedFurtherTask != 'null' ? 'disabled' : '' }}>
</div>
</div>
<br>
<div>
<p>Selecione Após qual tarefa :</p>
<select name="ArrayListElementsTasks" id="ArrayListElementsTasks"
class="form-control">
@foreach ($tasks as $task)
@if ($task->elemental_tasks_id)
<option name='startFutherTask'
value="{{ $task->execution_order }}">
{{ $task->execution_order }} --
{{ $task->elementalTask->elemental_tasks_description }}
</option>
@else
<option name='startFutherTask'
value="{{ $task->execution_order }}">
{{ $task->execution_order }} --
({{ $task->furtherTasks->further_tasks_name }})
{{ $task->furtherTasks->further_tasks_description }}</option>
@endif
@endforeach
</select>
</div>
<br>
<div class="row">
<div class="col-sm-6">
</div>
<div class="col-sm-6 text-right">
<input class="btn btn-outline-success" type="submit" value="Adicionar">
</div>
</div>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
@endif
</div>

View File

@ -684,7 +684,6 @@ class="form-control card_inputs" id="isolationEquipment"
</div> </div>
<!-- ./ISV-card --> <!-- ./ISV-card -->
<!-- CV-card --> <!-- CV-card -->
<div id="cv_card" class="card card-info"> <div id="cv_card" class="card card-info">
@ -1263,7 +1262,7 @@ class="form-control card_inputs"
id="equipmentTag" placeholder="Tag..." id="equipmentTag" placeholder="Tag..."
aria-label="Tag Equipment" aria-label="Tag Equipment"
aria-describedby="form-tagEquipment"> aria-describedby="form-tagEquipment">
<label>Tag </label> {{-- <label>Tag </label> --}}
</div> </div>
</div> </div>
</div> </div>
@ -1283,7 +1282,7 @@ class="form-control card_inputs"
placeholder="Descrição Equipamento..." placeholder="Descrição Equipamento..."
aria-label="Tag Equipment" aria-label="Tag Equipment"
aria-describedby="form-equipmentDescription"> aria-describedby="form-equipmentDescription">
<label>Descrição Equipamento </label> {{-- <label>Descrição Equipamento </label> --}}
</div> </div>
</div> </div>
</div> </div>
@ -1307,7 +1306,7 @@ class="form-control card_inputs"
placeholder="Número de série" placeholder="Número de série"
aria-label="Serial Number Equipment" aria-label="Serial Number Equipment"
aria-describedby="form-serialNumberEquipment"> aria-describedby="form-serialNumberEquipment">
<label>Número de série </label> {{-- <label>Número de série </label> --}}
</div> </div>
</div> </div>
</div> </div>
@ -1325,7 +1324,7 @@ class="form-control card_inputs"
id="equipmentBrand" placeholder="Marca" id="equipmentBrand" placeholder="Marca"
aria-label="Serial Number Equipment" aria-label="Serial Number Equipment"
aria-describedby="form-equipmentBrand"> aria-describedby="form-equipmentBrand">
<label>Marca</label> {{-- <label>Marca</label> --}}
</div> </div>
</div> </div>
</div> </div>
@ -1343,7 +1342,7 @@ class="form-control card_inputs"
id="equipmentModel" placeholder="Modelo" id="equipmentModel" placeholder="Modelo"
aria-label="Serial Number Equipment" aria-label="Serial Number Equipment"
aria-describedby="form-equipmentModel"> aria-describedby="form-equipmentModel">
<label>Modelo</label> {{-- <label>Modelo</label> --}}
</div> </div>
</div> </div>
</div> </div>
@ -1364,7 +1363,7 @@ class="form-control card_inputs"
id="dimension" placeholder="Dimensão" id="dimension" placeholder="Dimensão"
aria-label="Serial Number Equipment" aria-label="Serial Number Equipment"
aria-describedby="form-dimension"> aria-describedby="form-dimension">
<label>Dimensão</label> {{-- <label>Dimensão</label> --}}
</div> </div>
</div> </div>
</div> </div>
@ -1381,7 +1380,7 @@ class="form-control card_inputs"
id="rating" placeholder="Rating..." id="rating" placeholder="Rating..."
aria-label="Serial Number Equipment" aria-label="Serial Number Equipment"
aria-describedby="form-rating"> aria-describedby="form-rating">
<label>Rating</label> {{-- <label>Rating</label> --}}
</div> </div>
</div> </div>
</div> </div>
@ -1398,7 +1397,7 @@ class="form-control card_inputs"
id="dim_certa" placeholder="Dim certa..." id="dim_certa" placeholder="Dim certa..."
aria-label="Serial Number Equipment" aria-label="Serial Number Equipment"
aria-describedby="form-dim_certa"> aria-describedby="form-dim_certa">
<label>Dim certa</label> {{-- <label>Dim certa</label> --}}
</div> </div>
</div> </div>
</div> </div>
@ -1421,7 +1420,7 @@ class="form-control card_inputs"
placeholder="Main Equipment" placeholder="Main Equipment"
aria-label="Main Equipment" aria-label="Main Equipment"
aria-describedby="form-main_equipment"> aria-describedby="form-main_equipment">
<label>Main Equipment</label> {{-- <label>Main Equipment</label> --}}
</div> </div>
</div> </div>
</div> </div>
@ -1437,7 +1436,7 @@ class="form-control card_inputs"
id="p&id" placeholder="P&ID" id="p&id" placeholder="P&ID"
aria-label="P & id" aria-label="P & id"
aria-describedby="form-p&id"> aria-describedby="form-p&id">
<label>P&ID</label> {{-- <label>P&ID</label> --}}
</div> </div>
</div> </div>
</div> </div>
@ -1453,7 +1452,7 @@ class="form-control card_inputs"
id="sap_number" placeholder="Nº SAP" id="sap_number" placeholder="Nº SAP"
aria-label="Numero Sap" aria-label="Numero Sap"
aria-describedby="form-sap_number"> aria-describedby="form-sap_number">
<label> SAP</label> {{-- <label> SAP</label> --}}
</div> </div>
</div> </div>
</div> </div>
@ -1476,7 +1475,7 @@ class="form-control card_inputs"
placeholder="SP (Bar) Cold" placeholder="SP (Bar) Cold"
aria-label="SP (Bar) Cold" aria-label="SP (Bar) Cold"
aria-describedby="form-SP_(Bar)_Cold"> aria-describedby="form-SP_(Bar)_Cold">
<label>SP (Bar) Cold</label> {{-- <label>SP (Bar) Cold</label> --}}
</div> </div>
</div> </div>
</div> </div>
@ -1494,7 +1493,7 @@ class="form-control card_inputs"
placeholder="Back Presure (Bar)" placeholder="Back Presure (Bar)"
aria-label="Back Presure (Bar)" aria-label="Back Presure (Bar)"
aria-describedby="form-Back_Presure_(Bar)"> aria-describedby="form-Back_Presure_(Bar)">
<label>Back Presure (Bar)</label> {{-- <label>Back Presure (Bar)</label> --}}
</div> </div>
</div> </div>
</div> </div>
@ -1511,7 +1510,7 @@ class="form-control card_inputs"
id="material" placeholder="Material" id="material" placeholder="Material"
aria-label="Material" aria-label="Material"
aria-describedby="form-material"> aria-describedby="form-material">
<label>Material</label> {{-- <label>Material</label> --}}
</div> </div>
</div> </div>
</div> </div>
@ -1533,7 +1532,7 @@ class="form-control card_inputs"
id="manufacturer" placeholder="Fabricante" id="manufacturer" placeholder="Fabricante"
aria-label="Fabricante" aria-label="Fabricante"
aria-describedby="form-manufacturer"> aria-describedby="form-manufacturer">
<label>Fabricante</label> {{-- <label>Fabricante</label> --}}
</div> </div>
</div> </div>
</div> </div>
@ -1549,7 +1548,7 @@ class="form-control card_inputs"
id="isolation" placeholder="Isolamento" id="isolation" placeholder="Isolamento"
aria-label="Isolamento" aria-label="Isolamento"
aria-describedby="form-isolation"> aria-describedby="form-isolation">
<label>Isolamento</label> {{-- <label>Isolamento</label> --}}
</div> </div>
</div> </div>
</div> </div>
@ -1570,7 +1569,7 @@ class="form-control card_inputs"
<option value="Sim">Sim</option> <option value="Sim">Sim</option>
<option value="Nao" selected>Nao</option> <option value="Nao" selected>Nao</option>
</select> </select>
<label>Andaime?</label> {{-- <label>Andaime?</label> --}}
</div> </div>
</div> </div>
</div> </div>
@ -1586,7 +1585,7 @@ class="form-control card_inputs"
<option value="Sim">Sim</option> <option value="Sim">Sim</option>
<option value="Nao" selected>Nao</option> <option value="Nao" selected>Nao</option>
</select> </select>
<label>Grua?</label> {{-- <label>Grua?</label> --}}
</div> </div>
</div> </div>
</div> </div>
@ -1813,12 +1812,12 @@ class="form-control card_inputs"
<div class="card"> <div class="card">
<div class="card-body"> <div class="card-body">
<div class="text-center"> <div class="text-center">
<p><b>Fluxo da Tarefa</b></p> <p><b>Fluxo de Tarefas, Equipamento: {{$listEquipmentsProject->equipment_tag}}</b></p>
<p id="ValuesTableElementsTasks"></p> <p id="ValuesTableElementsTasks"></p>
</div> </div>
<div class="row"> <div class="row">
<div class="col-sm-6"> <div class="col-sm-6">
<p>Indique a tarefa :</p> <p>Indique a tarefa complementar : </p>
<input type="text" <input type="text"
class="form-control"> class="form-control">
</div> </div>
@ -1873,11 +1872,11 @@ class="btn btn-outline-success ">Adicionar</a>
<div class="has-float-label"> <div class="has-float-label">
<input type="text" name="tag" <input type="text" name="tag"
value="{{ $listEquipmentsProject->equipment_tag }}" value="{{ $listEquipmentsProject->equipment_tag }}"
class="form-control card_inputs" class="form-control inputsIspt"
id="equipmentTag" placeholder="Tag..." id="equipmentTag" placeholder="Tag..."
aria-label="Tag Equipment" aria-label="Tag Equipment"
aria-describedby="form-tagEquipment"> aria-describedby="form-tagEquipment">
<label>Tag </label> {{-- <label>Tag </label> --}}
</div> </div>
</div> </div>
</div> </div>
@ -1897,7 +1896,7 @@ class="form-control card_inputs"
placeholder="Descrição Equipamento..." placeholder="Descrição Equipamento..."
aria-label="Tag Equipment" aria-label="Tag Equipment"
aria-describedby="form-equipmentDescription"> aria-describedby="form-equipmentDescription">
<label>Descrição Equipamento </label> {{-- <label>Descrição Equipamento </label> --}}
</div> </div>
</div> </div>
</div> </div>
@ -1922,7 +1921,7 @@ class="form-control card_inputs"
placeholder="Número de série" placeholder="Número de série"
aria-label="Serial Number Equipment" aria-label="Serial Number Equipment"
aria-describedby="form-serialNumberEquipment"> aria-describedby="form-serialNumberEquipment">
<label>Número de série </label> {{-- <label>Número de série </label> --}}
</div> </div>
</div> </div>
</div> </div>
@ -1940,7 +1939,7 @@ class="form-control card_inputs"
id="equipmentBrand" placeholder="Marca" id="equipmentBrand" placeholder="Marca"
aria-label="Marca Equipamento" aria-label="Marca Equipamento"
aria-describedby="form-equipmentBrand"> aria-describedby="form-equipmentBrand">
<label>Marca</label> {{-- <label>Marca</label> --}}
</div> </div>
</div> </div>
</div> </div>
@ -1958,7 +1957,7 @@ class="form-control card_inputs"
id="equipmentModel" placeholder="Modelo" id="equipmentModel" placeholder="Modelo"
aria-label="Modelo Equipamento" aria-label="Modelo Equipamento"
aria-describedby="form-equipmentModel"> aria-describedby="form-equipmentModel">
<label>Modelo</label> {{-- <label>Modelo</label> --}}
</div> </div>
</div> </div>
</div> </div>
@ -1979,7 +1978,7 @@ class="form-control card_inputs"
id="dimension" placeholder="Dimensão" id="dimension" placeholder="Dimensão"
aria-label="Dimensao Equipamento" aria-label="Dimensao Equipamento"
aria-describedby="form-dimension"> aria-describedby="form-dimension">
<label>Dimensão</label> {{-- <label>Dimensão</label> --}}
</div> </div>
</div> </div>
</div> </div>
@ -1995,7 +1994,7 @@ class="form-control card_inputs"
id="rating" placeholder="Rating..." id="rating" placeholder="Rating..."
aria-label="Rating Equipamento" aria-label="Rating Equipamento"
aria-describedby="form-rating"> aria-describedby="form-rating">
<label>Rating</label> {{-- <label>Rating</label> --}}
</div> </div>
</div> </div>
</div> </div>
@ -2011,7 +2010,7 @@ class="form-control card_inputs"
id="dim_certa" placeholder="Dim certa..." id="dim_certa" placeholder="Dim certa..."
aria-label="Dim certa Equipamento" aria-label="Dim certa Equipamento"
aria-describedby="form-dim_certa"> aria-describedby="form-dim_certa">
<label>Dim certa</label> {{-- <label>Dim certa</label> --}}
</div> </div>
</div> </div>
</div> </div>
@ -2034,7 +2033,7 @@ class="form-control card_inputs"
placeholder="Main Equipment" placeholder="Main Equipment"
aria-label="Main Equipment" aria-label="Main Equipment"
aria-describedby="form-main_equipment"> aria-describedby="form-main_equipment">
<label>Main Equipment</label> {{-- <label>Main Equipment</label> --}}
</div> </div>
</div> </div>
</div> </div>
@ -2051,7 +2050,7 @@ class="form-control card_inputs"
id="P_idEquipment" placeholder="P&ID" id="P_idEquipment" placeholder="P&ID"
aria-label="P&ID" aria-label="P&ID"
aria-describedby="form-P_IidEquipment"> aria-describedby="form-P_IidEquipment">
<label>P&ID</label> {{-- <label>P&ID</label> --}}
</div> </div>
</div> </div>
</div> </div>
@ -2068,7 +2067,7 @@ class="form-control card_inputs"
id="NumberSapEquipment" placeholder="Nº SAP" id="NumberSapEquipment" placeholder="Nº SAP"
aria-label="Numero SAP Equipamento" aria-label="Numero SAP Equipamento"
aria-describedby="form-NumberSapEquipment"> aria-describedby="form-NumberSapEquipment">
<label> SAP</label> {{-- <label> SAP</label> --}}
</div> </div>
</div> </div>
</div> </div>
@ -2091,7 +2090,7 @@ class="form-control card_inputs"
placeholder="Material" placeholder="Material"
aria-label="Material Equipamento" aria-label="Material Equipamento"
aria-describedby="form-materialEquipment"> aria-describedby="form-materialEquipment">
<label>Material</label> {{-- <label>Material</label> --}}
</div> </div>
</div> </div>
</div> </div>
@ -2109,7 +2108,7 @@ class="form-control card_inputs"
placeholder="Fabricante" placeholder="Fabricante"
aria-label="Fabricante Equipamento" aria-label="Fabricante Equipamento"
aria-describedby="form-manufacturerEquipment"> aria-describedby="form-manufacturerEquipment">
<label>Fabricante</label> {{-- <label>Fabricante</label> --}}
</div> </div>
</div> </div>
</div> </div>
@ -2127,7 +2126,7 @@ class="form-control card_inputs"
placeholder="Isolamento" placeholder="Isolamento"
aria-label="Isolamento Equipamento" aria-label="Isolamento Equipamento"
aria-describedby="form-isolationEquipment"> aria-describedby="form-isolationEquipment">
<label>Isolamento</label> {{-- <label>Isolamento</label> --}}
</div> </div>
</div> </div>
</div> </div>
@ -2148,7 +2147,7 @@ class="form-control card_inputs"
<option value="Sim">Sim</option> <option value="Sim">Sim</option>
<option value="Nao" selected>Nao</option> <option value="Nao" selected>Nao</option>
</select> </select>
<label>Andaime?</label> {{-- <label>Andaime?</label> --}}
</div> </div>
</div> </div>
</div> </div>
@ -2164,7 +2163,7 @@ class="form-control card_inputs"
<option value="Sim">Sim</option> <option value="Sim">Sim</option>
<option value="Nao" selected>Nao</option> <option value="Nao" selected>Nao</option>
</select> </select>
<label>Grua?</label> {{-- <label>Grua?</label> --}}
</div> </div>
</div> </div>
</div> </div>
@ -2197,6 +2196,7 @@ class="form-control card_inputs"
</div> </div>
<!-- /.card-header --> <!-- /.card-header -->
<div class="card-body p-0"> <div class="card-body p-0">
<table class="table table-sm "> <table class="table table-sm ">
<thead> <thead>
<tr> <tr>
@ -2360,60 +2360,9 @@ class="form-control card_inputs"
</div> </div>
<!-- /.card-body --> <!-- /.card-body -->
<div class="card-footer"> @livewire('articulado.additonal-task',['equipment' => $listEquipmentsProject], key($listEquipmentsProject->equipment_id))
{{-- @foreach ($taskExecutionOrders as $taskExecutionOrder)
<p> {}
</p>
@endforeach --}}
<!--Tarefa Complementar -->
<div class="icheck-primary d-inline">
<input type="checkbox" id="checkboxAddicionalTask"
unchecked>
<label for="checkboxAddicionalTask">
Tarefa Complementares
</label>
</div>
</div>
</div> </div>
<!-- general form elements disabled -->
<div id="descriptionAdditionalTask">
<div class="form-group">
<div class="card">
<div class="card-body">
<div class="text-center">
<p><b>Fluxo da Tarefa</b></p>
<p id="ValuesTableElementsTasks"></p>
</div>
<div class="row">
<div class="col-sm-6">
<p>Indique a tarefa :</p>
<input type="text"
class="form-control">
</div>
<div class="col-sm-6">
<p>Selecione Após qual tarefa :</p>
<select id="ArrayListElementsTasks"
class="form-control">
<option value="InitTask">Tarefa
Inicial
</option>
</select>
</div>
</div>
<br>
<div class="row">
<div class="col-sm-6"></div>
<div class="col-sm-6 text-right">
<a type="button"
id="AddComplementTasks"
class="btn btn-outline-success ">Adicionar</a>
</div>
</div>
</div>
</div>
</div>
</div>
{{-- ./description --}} {{-- ./description --}}
</div> </div>
{{-- ./card-body --}} {{-- ./card-body --}}
@ -2444,7 +2393,7 @@ class="form-control card_inputs"
id="equipmentTag" placeholder="Tag..." id="equipmentTag" placeholder="Tag..."
aria-label="Tag Equipment" aria-label="Tag Equipment"
aria-describedby="form-tagEquipment"> aria-describedby="form-tagEquipment">
<label>Tag </label> {{-- <label>Tag </label> --}}
</div> </div>
</div> </div>
</div> </div>
@ -2464,7 +2413,7 @@ class="form-control card_inputs"
placeholder="Descrição Equipamento..." placeholder="Descrição Equipamento..."
aria-label="equipmentDescription" aria-label="equipmentDescription"
aria-describedby="form-equipmentDescription"> aria-describedby="form-equipmentDescription">
<label>Descrição Equipamento </label> {{-- <label>Descrição Equipamento </label> --}}
</div> </div>
</div> </div>
</div> </div>
@ -2488,7 +2437,7 @@ class="form-control card_inputs"
placeholder="Número de série" placeholder="Número de série"
aria-label="Serial Number Equipment" aria-label="Serial Number Equipment"
aria-describedby="form-serialNumberEquipment"> aria-describedby="form-serialNumberEquipment">
<label>Número de série </label> {{-- <label>Número de série </label> --}}
</div> </div>
</div> </div>
</div> </div>
@ -2506,7 +2455,7 @@ class="form-control card_inputs"
id="equipmentBrand" placeholder="Modelo" id="equipmentBrand" placeholder="Modelo"
aria-label="Marca Equipamento" aria-label="Marca Equipamento"
aria-describedby="form-equipmentBrand"> aria-describedby="form-equipmentBrand">
<label>Marca</label> {{-- <label>Marca</label> --}}
</div> </div>
</div> </div>
</div> </div>
@ -2524,7 +2473,7 @@ class="form-control card_inputs"
id="equipmentModel" placeholder="Modelo" id="equipmentModel" placeholder="Modelo"
aria-label="Modelo Equipamento" aria-label="Modelo Equipamento"
aria-describedby="form-equipmentModel"> aria-describedby="form-equipmentModel">
<label>Modelo</label> {{-- <label>Modelo</label> --}}
</div> </div>
</div> </div>
</div> </div>
@ -2544,7 +2493,7 @@ class="form-control card_inputs"
id="dimension" placeholder="Dimensão" id="dimension" placeholder="Dimensão"
aria-label="Dimensao Equipamento" aria-label="Dimensao Equipamento"
aria-describedby="form-dimension"> aria-describedby="form-dimension">
<label>Dimensão</label> {{-- <label>Dimensão</label> --}}
</div> </div>
</div> </div>
</div> </div>
@ -2561,7 +2510,7 @@ class="form-control card_inputs"
id="rating" placeholder="Rating..." id="rating" placeholder="Rating..."
aria-label="Rating Equipamento" aria-label="Rating Equipamento"
aria-describedby="form-rating"> aria-describedby="form-rating">
<label>Rating</label> {{-- <label>Rating</label> --}}
</div> </div>
</div> </div>
</div> </div>
@ -2578,7 +2527,7 @@ class="form-control card_inputs"
id="dim_certa" placeholder="Dim certa..." id="dim_certa" placeholder="Dim certa..."
aria-label="Dim certa Equipamento" aria-label="Dim certa Equipamento"
aria-describedby="form-dim_certa"> aria-describedby="form-dim_certa">
<label>Dim certa</label> {{-- <label>Dim certa</label> --}}
</div> </div>
</div> </div>
</div> </div>
@ -2600,7 +2549,7 @@ class="form-control card_inputs"
placeholder="Main Equipment" placeholder="Main Equipment"
aria-label="Main Equipment" aria-label="Main Equipment"
aria-describedby="form-main_equipment"> aria-describedby="form-main_equipment">
<label>Main Equipment</label> {{-- <label>Main Equipment</label> --}}
</div> </div>
</div> </div>
</div> </div>
@ -2617,7 +2566,7 @@ class="form-control card_inputs"
id="p&id" placeholder="P&ID" id="p&id" placeholder="P&ID"
aria-label="P&ID" aria-label="P&ID"
aria-describedby="form-P_IidEquipment"> aria-describedby="form-P_IidEquipment">
<label>P&ID</label> {{-- <label>P&ID</label> --}}
</div> </div>
</div> </div>
</div> </div>
@ -2634,7 +2583,7 @@ class="form-control card_inputs"
id="sap_number" placeholder="Nº SAP" id="sap_number" placeholder="Nº SAP"
aria-label="Numero SAP Equipamento" aria-label="Numero SAP Equipamento"
aria-describedby="form-NumberSapEquipment"> aria-describedby="form-NumberSapEquipment">
<label> SAP</label> {{-- <label> SAP</label> --}}
</div> </div>
</div> </div>
</div> </div>
@ -2655,7 +2604,7 @@ class="form-control card_inputs"
id="material" placeholder="Material" id="material" placeholder="Material"
aria-label="Material Equipamento" aria-label="Material Equipamento"
aria-describedby="form-materialEquipment"> aria-describedby="form-materialEquipment">
<label>Material</label> {{-- <label>Material</label> --}}
</div> </div>
</div> </div>
</div> </div>
@ -2673,7 +2622,7 @@ class="form-control card_inputs"
placeholder="Fabricante" placeholder="Fabricante"
aria-label="Fabricante Equipamento" aria-label="Fabricante Equipamento"
aria-describedby="form-manufacturerEquipment"> aria-describedby="form-manufacturerEquipment">
<label>Fabricante</label> {{-- <label>Fabricante</label> --}}
</div> </div>
</div> </div>
</div> </div>
@ -2690,7 +2639,7 @@ class="form-control card_inputs"
id="isolation" placeholder="Isolamento" id="isolation" placeholder="Isolamento"
aria-label="Isolamento Equipamento" aria-label="Isolamento Equipamento"
aria-describedby="form-isolationEquipment"> aria-describedby="form-isolationEquipment">
<label>Isolamento</label> {{-- <label>Isolamento</label> --}}
</div> </div>
</div> </div>
</div> </div>
@ -2712,7 +2661,7 @@ class="form-control card_inputs"
placeholder="Fabricante do atuador" placeholder="Fabricante do atuador"
aria-label="Fabricante do Atuador" aria-label="Fabricante do Atuador"
aria-describedby="form-actuatorManufacturer"> aria-describedby="form-actuatorManufacturer">
<label>Fabricante do atuador</label> {{-- <label>Fabricante do atuador</label> --}}
</div> </div>
</div> </div>
</div> </div>
@ -2730,7 +2679,7 @@ class="form-control card_inputs"
placeholder="Modelo do atuador" placeholder="Modelo do atuador"
aria-label="Modelo do atuador" aria-label="Modelo do atuador"
aria-describedby="form-ActuatorModel"> aria-describedby="form-ActuatorModel">
<label>Modelo do atuador</label> {{-- <label>Modelo do atuador</label> --}}
</div> </div>
</div> </div>
</div> </div>
@ -2748,7 +2697,7 @@ class="form-control card_inputs"
placeholder="N.º de série do atuador" placeholder="N.º de série do atuador"
aria-label="Numero de série do atuado" aria-label="Numero de série do atuado"
aria-describedby="form-actuatorSerialNumber"> aria-describedby="form-actuatorSerialNumber">
<label>N.º de série do atuador</label> {{-- <label>N.º de série do atuador</label> --}}
</div> </div>
</div> </div>
</div> </div>
@ -2770,7 +2719,7 @@ class="form-control card_inputs"
placeholder="Fabricante do posicionador" placeholder="Fabricante do posicionador"
aria-label="Fabricante do posicionador" aria-label="Fabricante do posicionador"
aria-describedby="form-PositionerManufacturer"> aria-describedby="form-PositionerManufacturer">
<label>Fabricante do posicionador</label> {{-- <label>Fabricante do posicionador</label> --}}
</div> </div>
</div> </div>
</div> </div>
@ -2788,7 +2737,7 @@ class="form-control card_inputs"
placeholder="N.º de série do posicionador" placeholder="N.º de série do posicionador"
aria-label="Numero de série do posicionador" aria-label="Numero de série do posicionador"
aria-describedby="form-PositionerSerialNumber"> aria-describedby="form-PositionerSerialNumber">
<label>N.º de série do posicionador</label> {{-- <label>N.º de série do posicionador</label> --}}
</div> </div>
</div> </div>
</div> </div>
@ -3013,11 +2962,13 @@ class="form-control card_inputs"
</div> </div>
<!-- general form elements disabled --> <!-- general form elements disabled -->
<div id="descriptionAdditionalTask"> <div id="descriptionAdditionalTask">
<div class="form-group"> <div class="form-group">
<div class="card"> <div class="card">
<div class="card-body"> <div class="card-body">
<div class="text-center"> <div class="text-center">
<p><b>Fluxo da Tarefa</b></p> <p><b>Fluxo de Tarefas, Equipamento: </b></p>
<p id="ValuesTableElementsTasks"></p> <p id="ValuesTableElementsTasks"></p>
</div> </div>
<div class="row"> <div class="row">
@ -3598,7 +3549,6 @@ function(task) {
}); });
</script> </script>
<script> <script>
$(function() { $(function() {
$('#descriptionAdditionalTask').hide(); $('#descriptionAdditionalTask').hide();

View File

@ -38,8 +38,6 @@
Route::get('/CreateUsers', [Pending_UserController::class, 'ListPendingUsers'])->name('CreateUsers'); Route::get('/CreateUsers', [Pending_UserController::class, 'ListPendingUsers'])->name('CreateUsers');
Route::get('/CreateUsers/{id}', [Pending_UserController::class, 'ShowFormUser'])->name('ShowPendingUser'); Route::get('/CreateUsers/{id}', [Pending_UserController::class, 'ShowFormUser'])->name('ShowPendingUser');
Route::post('formulario/receive', [Pending_UserController::class, 'store'])->name('criarUser'); Route::post('formulario/receive', [Pending_UserController::class, 'store'])->name('criarUser');
@ -159,6 +157,10 @@
Route::get('test2/{id}', 'showStep2')->name('test2'); Route::get('test2/{id}', 'showStep2')->name('test2');
Route::get('test3/{id}', 'showStep3')->name('test3'); Route::get('test3/{id}', 'showStep3')->name('test3');
// Para adicionar uma tarefa Complementar
Route::post('addFurtherTasks','addFurtherTasks')->name('addFurtherTasks');
Route::post('deleteFurtherTasks','deleteFurtherTasks')->name('deleteFurtherTasks');
Route::get('createProject', 'createProjectForStep1')->name('createProject'); Route::get('createProject', 'createProjectForStep1')->name('createProject');

View File

@ -18,13 +18,19 @@
'App\\Http\\Controllers\\Controller' => $baseDir . '/app/Http/Controllers/Controller.php', 'App\\Http\\Controllers\\Controller' => $baseDir . '/app/Http/Controllers/Controller.php',
'App\\Http\\Controllers\\CreateProjectController' => $baseDir . '/app/Http/Controllers/CreateProjectController.php', 'App\\Http\\Controllers\\CreateProjectController' => $baseDir . '/app/Http/Controllers/CreateProjectController.php',
'App\\Http\\Controllers\\CustomRegistrationController' => $baseDir . '/app/Http/Controllers/CustomRegistrationController.php', 'App\\Http\\Controllers\\CustomRegistrationController' => $baseDir . '/app/Http/Controllers/CustomRegistrationController.php',
'App\\Http\\Controllers\\ExecutionProjectController' => $baseDir . '/app/Http/Controllers/ExecutionProjectController.php',
'App\\Http\\Controllers\\FormController' => $baseDir . '/app/Http/Controllers/FormController.php', 'App\\Http\\Controllers\\FormController' => $baseDir . '/app/Http/Controllers/FormController.php',
'App\\Http\\Controllers\\Pending_UserController' => $baseDir . '/app/Http/Controllers/Pending_UserController.php', 'App\\Http\\Controllers\\Pending_UserController' => $baseDir . '/app/Http/Controllers/Pending_UserController.php',
'App\\Http\\Controllers\\PreparedProjectController' => $baseDir . '/app/Http/Controllers/PreparedProjectController.php',
'App\\Http\\Controllers\\ProjectoDatacontroller' => $baseDir . '/app/Http/Controllers/ProjectoDatacontroller.php', 'App\\Http\\Controllers\\ProjectoDatacontroller' => $baseDir . '/app/Http/Controllers/ProjectoDatacontroller.php',
'App\\Http\\Controllers\\WorkstationsJobsController' => $baseDir . '/app/Http/Controllers/WorkstationsJobsController.php',
'App\\Http\\Controllers\\userController' => $baseDir . '/app/Http/Controllers/userController.php', 'App\\Http\\Controllers\\userController' => $baseDir . '/app/Http/Controllers/userController.php',
'App\\Http\\Kernel' => $baseDir . '/app/Http/Kernel.php', 'App\\Http\\Kernel' => $baseDir . '/app/Http/Kernel.php',
'App\\Http\\Middleware\\Authenticate' => $baseDir . '/app/Http/Middleware/Authenticate.php', 'App\\Http\\Middleware\\Authenticate' => $baseDir . '/app/Http/Middleware/Authenticate.php',
'App\\Http\\Middleware\\CheckAdmin' => $baseDir . '/app/Http/Middleware/CheckAdmin.php',
'App\\Http\\Middleware\\CheckSuperAdmin' => $baseDir . '/app/Http/Middleware/CheckSuperAdmin.php', 'App\\Http\\Middleware\\CheckSuperAdmin' => $baseDir . '/app/Http/Middleware/CheckSuperAdmin.php',
'App\\Http\\Middleware\\CheckTechnical' => $baseDir . '/app/Http/Middleware/CheckTechnical.php',
'App\\Http\\Middleware\\CheckUserType' => $baseDir . '/app/Http/Middleware/CheckUserType.php',
'App\\Http\\Middleware\\EncryptCookies' => $baseDir . '/app/Http/Middleware/EncryptCookies.php', 'App\\Http\\Middleware\\EncryptCookies' => $baseDir . '/app/Http/Middleware/EncryptCookies.php',
'App\\Http\\Middleware\\PreventRequestsDuringMaintenance' => $baseDir . '/app/Http/Middleware/PreventRequestsDuringMaintenance.php', 'App\\Http\\Middleware\\PreventRequestsDuringMaintenance' => $baseDir . '/app/Http/Middleware/PreventRequestsDuringMaintenance.php',
'App\\Http\\Middleware\\RedirectIfAuthenticated' => $baseDir . '/app/Http/Middleware/RedirectIfAuthenticated.php', 'App\\Http\\Middleware\\RedirectIfAuthenticated' => $baseDir . '/app/Http/Middleware/RedirectIfAuthenticated.php',
@ -37,8 +43,11 @@
'App\\Models\\AmbitsEquipment' => $baseDir . '/app/Models/AmbitsEquipment.php', 'App\\Models\\AmbitsEquipment' => $baseDir . '/app/Models/AmbitsEquipment.php',
'App\\Models\\CompanyProject' => $baseDir . '/app/Models/CompanyProject.php', 'App\\Models\\CompanyProject' => $baseDir . '/app/Models/CompanyProject.php',
'App\\Models\\ConstructionWorkstation' => $baseDir . '/app/Models/ConstructionWorkstation.php', 'App\\Models\\ConstructionWorkstation' => $baseDir . '/app/Models/ConstructionWorkstation.php',
'App\\Models\\ControlEquipmentWorkstation' => $baseDir . '/app/Models/ControlEquipmentWorkstation.php',
'App\\Models\\ElementalTasks' => $baseDir . '/app/Models/ElementalTasks.php',
'App\\Models\\Equipment' => $baseDir . '/app/Models/Equipment.php', 'App\\Models\\Equipment' => $baseDir . '/app/Models/Equipment.php',
'App\\Models\\EquipmentAssociationAmbit' => $baseDir . '/app/Models/EquipmentAssociationAmbit.php', 'App\\Models\\EquipmentAssociationAmbit' => $baseDir . '/app/Models/EquipmentAssociationAmbit.php',
'App\\Models\\EquipmentComments' => $baseDir . '/app/Models/EquipmentComments.php',
'App\\Models\\EquipmentType' => $baseDir . '/app/Models/EquipmentType.php', 'App\\Models\\EquipmentType' => $baseDir . '/app/Models/EquipmentType.php',
'App\\Models\\FurtherTasks' => $baseDir . '/app/Models/FurtherTasks.php', 'App\\Models\\FurtherTasks' => $baseDir . '/app/Models/FurtherTasks.php',
'App\\Models\\GeneralAttributesEquipment' => $baseDir . '/app/Models/GeneralAttributesEquipment.php', 'App\\Models\\GeneralAttributesEquipment' => $baseDir . '/app/Models/GeneralAttributesEquipment.php',
@ -47,6 +56,7 @@
'App\\Models\\PendingUser' => $baseDir . '/app/Models/PendingUser.php', 'App\\Models\\PendingUser' => $baseDir . '/app/Models/PendingUser.php',
'App\\Models\\Plant' => $baseDir . '/app/Models/Plant.php', 'App\\Models\\Plant' => $baseDir . '/app/Models/Plant.php',
'App\\Models\\SpecificAttributesEquipmentType' => $baseDir . '/app/Models/SpecificAttributesEquipmentType.php', 'App\\Models\\SpecificAttributesEquipmentType' => $baseDir . '/app/Models/SpecificAttributesEquipmentType.php',
'App\\Models\\TasksAssociationAmbits' => $baseDir . '/app/Models/TasksAssociationAmbits.php',
'App\\Models\\TypeUser' => $baseDir . '/app/Models/TypeUser.php', 'App\\Models\\TypeUser' => $baseDir . '/app/Models/TypeUser.php',
'App\\Models\\Unit' => $baseDir . '/app/Models/Unit.php', 'App\\Models\\Unit' => $baseDir . '/app/Models/Unit.php',
'App\\Models\\User' => $baseDir . '/app/Models/User.php', 'App\\Models\\User' => $baseDir . '/app/Models/User.php',
@ -3037,6 +3047,206 @@
'League\\MimeTypeDetection\\GeneratedExtensionToMimeTypeMap' => $vendorDir . '/league/mime-type-detection/src/GeneratedExtensionToMimeTypeMap.php', 'League\\MimeTypeDetection\\GeneratedExtensionToMimeTypeMap' => $vendorDir . '/league/mime-type-detection/src/GeneratedExtensionToMimeTypeMap.php',
'League\\MimeTypeDetection\\MimeTypeDetector' => $vendorDir . '/league/mime-type-detection/src/MimeTypeDetector.php', 'League\\MimeTypeDetection\\MimeTypeDetector' => $vendorDir . '/league/mime-type-detection/src/MimeTypeDetector.php',
'League\\MimeTypeDetection\\OverridingExtensionToMimeTypeMap' => $vendorDir . '/league/mime-type-detection/src/OverridingExtensionToMimeTypeMap.php', 'League\\MimeTypeDetection\\OverridingExtensionToMimeTypeMap' => $vendorDir . '/league/mime-type-detection/src/OverridingExtensionToMimeTypeMap.php',
'Livewire\\Attribute' => $vendorDir . '/livewire/livewire/src/Attribute.php',
'Livewire\\Attributes\\Computed' => $vendorDir . '/livewire/livewire/src/Attributes/Computed.php',
'Livewire\\Attributes\\Js' => $vendorDir . '/livewire/livewire/src/Attributes/Js.php',
'Livewire\\Attributes\\Layout' => $vendorDir . '/livewire/livewire/src/Attributes/Layout.php',
'Livewire\\Attributes\\Lazy' => $vendorDir . '/livewire/livewire/src/Attributes/Lazy.php',
'Livewire\\Attributes\\Locked' => $vendorDir . '/livewire/livewire/src/Attributes/Locked.php',
'Livewire\\Attributes\\Modelable' => $vendorDir . '/livewire/livewire/src/Attributes/Modelable.php',
'Livewire\\Attributes\\On' => $vendorDir . '/livewire/livewire/src/Attributes/On.php',
'Livewire\\Attributes\\Reactive' => $vendorDir . '/livewire/livewire/src/Attributes/Reactive.php',
'Livewire\\Attributes\\Renderless' => $vendorDir . '/livewire/livewire/src/Attributes/Renderless.php',
'Livewire\\Attributes\\Rule' => $vendorDir . '/livewire/livewire/src/Attributes/Rule.php',
'Livewire\\Attributes\\Title' => $vendorDir . '/livewire/livewire/src/Attributes/Title.php',
'Livewire\\Attributes\\Url' => $vendorDir . '/livewire/livewire/src/Attributes/Url.php',
'Livewire\\Component' => $vendorDir . '/livewire/livewire/src/Component.php',
'Livewire\\ComponentHook' => $vendorDir . '/livewire/livewire/src/ComponentHook.php',
'Livewire\\ComponentHookRegistry' => $vendorDir . '/livewire/livewire/src/ComponentHookRegistry.php',
'Livewire\\Concerns\\InteractsWithProperties' => $vendorDir . '/livewire/livewire/src/Concerns/InteractsWithProperties.php',
'Livewire\\Drawer\\BaseUtils' => $vendorDir . '/livewire/livewire/src/Drawer/BaseUtils.php',
'Livewire\\Drawer\\ImplicitRouteBinding' => $vendorDir . '/livewire/livewire/src/Drawer/ImplicitRouteBinding.php',
'Livewire\\Drawer\\Regexes' => $vendorDir . '/livewire/livewire/src/Drawer/Regexes.php',
'Livewire\\Drawer\\Utils' => $vendorDir . '/livewire/livewire/src/Drawer/Utils.php',
'Livewire\\EventBus' => $vendorDir . '/livewire/livewire/src/EventBus.php',
'Livewire\\Exceptions\\BypassViewHandler' => $vendorDir . '/livewire/livewire/src/Exceptions/BypassViewHandler.php',
'Livewire\\Exceptions\\ComponentAttributeMissingOnDynamicComponentException' => $vendorDir . '/livewire/livewire/src/Exceptions/ComponentAttributeMissingOnDynamicComponentException.php',
'Livewire\\Exceptions\\ComponentNotFoundException' => $vendorDir . '/livewire/livewire/src/Exceptions/ComponentNotFoundException.php',
'Livewire\\Exceptions\\LivewirePageExpiredBecauseNewDeploymentHasSignificantEnoughChanges' => $vendorDir . '/livewire/livewire/src/Exceptions/LivewirePageExpiredBecauseNewDeploymentHasSignificantEnoughChanges.php',
'Livewire\\Exceptions\\MethodNotFoundException' => $vendorDir . '/livewire/livewire/src/Exceptions/MethodNotFoundException.php',
'Livewire\\Exceptions\\MissingRulesException' => $vendorDir . '/livewire/livewire/src/Exceptions/MissingRulesException.php',
'Livewire\\Exceptions\\NonPublicComponentMethodCall' => $vendorDir . '/livewire/livewire/src/Exceptions/NonPublicComponentMethodCall.php',
'Livewire\\Exceptions\\PropertyNotFoundException' => $vendorDir . '/livewire/livewire/src/Exceptions/PropertyNotFoundException.php',
'Livewire\\Exceptions\\PublicPropertyNotFoundException' => $vendorDir . '/livewire/livewire/src/Exceptions/PublicPropertyNotFoundException.php',
'Livewire\\Exceptions\\RootTagMissingFromViewException' => $vendorDir . '/livewire/livewire/src/Exceptions/RootTagMissingFromViewException.php',
'Livewire\\Features\\SupportAttributes\\Attribute' => $vendorDir . '/livewire/livewire/src/Features/SupportAttributes/Attribute.php',
'Livewire\\Features\\SupportAttributes\\AttributeCollection' => $vendorDir . '/livewire/livewire/src/Features/SupportAttributes/AttributeCollection.php',
'Livewire\\Features\\SupportAttributes\\AttributeLevel' => $vendorDir . '/livewire/livewire/src/Features/SupportAttributes/AttributeLevel.php',
'Livewire\\Features\\SupportAttributes\\HandlesAttributes' => $vendorDir . '/livewire/livewire/src/Features/SupportAttributes/HandlesAttributes.php',
'Livewire\\Features\\SupportAttributes\\SupportAttributes' => $vendorDir . '/livewire/livewire/src/Features/SupportAttributes/SupportAttributes.php',
'Livewire\\Features\\SupportAutoInjectedAssets\\SupportAutoInjectedAssets' => $vendorDir . '/livewire/livewire/src/Features/SupportAutoInjectedAssets/SupportAutoInjectedAssets.php',
'Livewire\\Features\\SupportBladeAttributes\\SupportBladeAttributes' => $vendorDir . '/livewire/livewire/src/Features/SupportBladeAttributes/SupportBladeAttributes.php',
'Livewire\\Features\\SupportChecksumErrorDebugging\\SupportChecksumErrorDebugging' => $vendorDir . '/livewire/livewire/src/Features/SupportChecksumErrorDebugging/SupportChecksumErrorDebugging.php',
'Livewire\\Features\\SupportComputed\\BaseComputed' => $vendorDir . '/livewire/livewire/src/Features/SupportComputed/BaseComputed.php',
'Livewire\\Features\\SupportComputed\\CannotCallComputedDirectlyException' => $vendorDir . '/livewire/livewire/src/Features/SupportComputed/CannotCallComputedDirectlyException.php',
'Livewire\\Features\\SupportComputed\\SupportLegacyComputedPropertySyntax' => $vendorDir . '/livewire/livewire/src/Features/SupportComputed/SupportLegacyComputedPropertySyntax.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\AttributeCommand' => $vendorDir . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/AttributeCommand.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\ComponentParser' => $vendorDir . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/ComponentParser.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\ComponentParserFromExistingComponent' => $vendorDir . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/ComponentParserFromExistingComponent.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\CopyCommand' => $vendorDir . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/CopyCommand.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\CpCommand' => $vendorDir . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/CpCommand.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\DeleteCommand' => $vendorDir . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/DeleteCommand.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\FileManipulationCommand' => $vendorDir . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/FileManipulationCommand.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\FormCommand' => $vendorDir . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/FormCommand.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\LayoutCommand' => $vendorDir . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/LayoutCommand.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\MakeCommand' => $vendorDir . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/MakeCommand.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\MakeLivewireCommand' => $vendorDir . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/MakeLivewireCommand.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\MoveCommand' => $vendorDir . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/MoveCommand.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\MvCommand' => $vendorDir . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/MvCommand.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\PublishCommand' => $vendorDir . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/PublishCommand.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\RmCommand' => $vendorDir . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/RmCommand.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\S3CleanupCommand' => $vendorDir . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/S3CleanupCommand.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\StubsCommand' => $vendorDir . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/StubsCommand.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\TouchCommand' => $vendorDir . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/TouchCommand.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\UpgradeCommand' => $vendorDir . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/UpgradeCommand.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\Upgrade\\AddLiveModifierToEntangleDirectives' => $vendorDir . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/Upgrade/AddLiveModifierToEntangleDirectives.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\Upgrade\\AddLiveModifierToWireModelDirectives' => $vendorDir . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/Upgrade/AddLiveModifierToWireModelDirectives.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\Upgrade\\ChangeDefaultLayoutView' => $vendorDir . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/Upgrade/ChangeDefaultLayoutView.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\Upgrade\\ChangeDefaultNamespace' => $vendorDir . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/Upgrade/ChangeDefaultNamespace.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\Upgrade\\ChangeForgetComputedToUnset' => $vendorDir . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/Upgrade/ChangeForgetComputedToUnset.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\Upgrade\\ChangeLazyToBlurModifierOnWireModelDirectives' => $vendorDir . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/Upgrade/ChangeLazyToBlurModifierOnWireModelDirectives.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\Upgrade\\ChangeTestAssertionMethods' => $vendorDir . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/Upgrade/ChangeTestAssertionMethods.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\Upgrade\\ChangeWireLoadDirectiveToWireInit' => $vendorDir . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/Upgrade/ChangeWireLoadDirectiveToWireInit.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\Upgrade\\ClearViewCache' => $vendorDir . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/Upgrade/ClearViewCache.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\Upgrade\\RemoveDeferModifierFromEntangleDirectives' => $vendorDir . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/Upgrade/RemoveDeferModifierFromEntangleDirectives.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\Upgrade\\RemoveDeferModifierFromWireModelDirectives' => $vendorDir . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/Upgrade/RemoveDeferModifierFromWireModelDirectives.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\Upgrade\\RemovePrefetchModifierFromWireClickDirective' => $vendorDir . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/Upgrade/RemovePrefetchModifierFromWireClickDirective.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\Upgrade\\RemovePreventModifierFromWireSubmitDirective' => $vendorDir . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/Upgrade/RemovePreventModifierFromWireSubmitDirective.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\Upgrade\\ReplaceEmitWithDispatch' => $vendorDir . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/Upgrade/ReplaceEmitWithDispatch.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\Upgrade\\RepublishNavigation' => $vendorDir . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/Upgrade/RepublishNavigation.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\Upgrade\\ThirdPartyUpgradeNotice' => $vendorDir . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/Upgrade/ThirdPartyUpgradeNotice.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\Upgrade\\UpgradeAlpineInstructions' => $vendorDir . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/Upgrade/UpgradeAlpineInstructions.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\Upgrade\\UpgradeConfigInstructions' => $vendorDir . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/Upgrade/UpgradeConfigInstructions.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\Upgrade\\UpgradeIntroduction' => $vendorDir . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/Upgrade/UpgradeIntroduction.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\Upgrade\\UpgradeStep' => $vendorDir . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/Upgrade/UpgradeStep.php',
'Livewire\\Features\\SupportConsoleCommands\\SupportConsoleCommands' => $vendorDir . '/livewire/livewire/src/Features/SupportConsoleCommands/SupportConsoleCommands.php',
'Livewire\\Features\\SupportDisablingBackButtonCache\\DisableBackButtonCacheMiddleware' => $vendorDir . '/livewire/livewire/src/Features/SupportDisablingBackButtonCache/DisableBackButtonCacheMiddleware.php',
'Livewire\\Features\\SupportDisablingBackButtonCache\\HandlesDisablingBackButtonCache' => $vendorDir . '/livewire/livewire/src/Features/SupportDisablingBackButtonCache/HandlesDisablingBackButtonCache.php',
'Livewire\\Features\\SupportDisablingBackButtonCache\\SupportDisablingBackButtonCache' => $vendorDir . '/livewire/livewire/src/Features/SupportDisablingBackButtonCache/SupportDisablingBackButtonCache.php',
'Livewire\\Features\\SupportEntangle\\SupportEntangle' => $vendorDir . '/livewire/livewire/src/Features/SupportEntangle/SupportEntangle.php',
'Livewire\\Features\\SupportEvents\\BaseOn' => $vendorDir . '/livewire/livewire/src/Features/SupportEvents/BaseOn.php',
'Livewire\\Features\\SupportEvents\\Event' => $vendorDir . '/livewire/livewire/src/Features/SupportEvents/Event.php',
'Livewire\\Features\\SupportEvents\\HandlesEvents' => $vendorDir . '/livewire/livewire/src/Features/SupportEvents/HandlesEvents.php',
'Livewire\\Features\\SupportEvents\\SupportEvents' => $vendorDir . '/livewire/livewire/src/Features/SupportEvents/SupportEvents.php',
'Livewire\\Features\\SupportEvents\\TestsEvents' => $vendorDir . '/livewire/livewire/src/Features/SupportEvents/TestsEvents.php',
'Livewire\\Features\\SupportFileDownloads\\SupportFileDownloads' => $vendorDir . '/livewire/livewire/src/Features/SupportFileDownloads/SupportFileDownloads.php',
'Livewire\\Features\\SupportFileDownloads\\TestsFileDownloads' => $vendorDir . '/livewire/livewire/src/Features/SupportFileDownloads/TestsFileDownloads.php',
'Livewire\\Features\\SupportFileUploads\\FilePreviewController' => $vendorDir . '/livewire/livewire/src/Features/SupportFileUploads/FilePreviewController.php',
'Livewire\\Features\\SupportFileUploads\\FileUploadConfiguration' => $vendorDir . '/livewire/livewire/src/Features/SupportFileUploads/FileUploadConfiguration.php',
'Livewire\\Features\\SupportFileUploads\\FileUploadController' => $vendorDir . '/livewire/livewire/src/Features/SupportFileUploads/FileUploadController.php',
'Livewire\\Features\\SupportFileUploads\\FileUploadSynth' => $vendorDir . '/livewire/livewire/src/Features/SupportFileUploads/FileUploadSynth.php',
'Livewire\\Features\\SupportFileUploads\\GenerateSignedUploadUrl' => $vendorDir . '/livewire/livewire/src/Features/SupportFileUploads/GenerateSignedUploadUrl.php',
'Livewire\\Features\\SupportFileUploads\\MissingFileUploadsTraitException' => $vendorDir . '/livewire/livewire/src/Features/SupportFileUploads/MissingFileUploadsTraitException.php',
'Livewire\\Features\\SupportFileUploads\\S3DoesntSupportMultipleFileUploads' => $vendorDir . '/livewire/livewire/src/Features/SupportFileUploads/S3DoesntSupportMultipleFileUploads.php',
'Livewire\\Features\\SupportFileUploads\\SupportFileUploads' => $vendorDir . '/livewire/livewire/src/Features/SupportFileUploads/SupportFileUploads.php',
'Livewire\\Features\\SupportFileUploads\\TemporaryUploadedFile' => $vendorDir . '/livewire/livewire/src/Features/SupportFileUploads/TemporaryUploadedFile.php',
'Livewire\\Features\\SupportFileUploads\\WithFileUploads' => $vendorDir . '/livewire/livewire/src/Features/SupportFileUploads/WithFileUploads.php',
'Livewire\\Features\\SupportFormObjects\\Form' => $vendorDir . '/livewire/livewire/src/Features/SupportFormObjects/Form.php',
'Livewire\\Features\\SupportFormObjects\\FormObjectSynth' => $vendorDir . '/livewire/livewire/src/Features/SupportFormObjects/FormObjectSynth.php',
'Livewire\\Features\\SupportFormObjects\\SupportFormObjects' => $vendorDir . '/livewire/livewire/src/Features/SupportFormObjects/SupportFormObjects.php',
'Livewire\\Features\\SupportJsEvaluation\\BaseJs' => $vendorDir . '/livewire/livewire/src/Features/SupportJsEvaluation/BaseJs.php',
'Livewire\\Features\\SupportJsEvaluation\\HandlesJsEvaluation' => $vendorDir . '/livewire/livewire/src/Features/SupportJsEvaluation/HandlesJsEvaluation.php',
'Livewire\\Features\\SupportJsEvaluation\\SupportJsEvaluation' => $vendorDir . '/livewire/livewire/src/Features/SupportJsEvaluation/SupportJsEvaluation.php',
'Livewire\\Features\\SupportLazyLoading\\BaseLazy' => $vendorDir . '/livewire/livewire/src/Features/SupportLazyLoading/BaseLazy.php',
'Livewire\\Features\\SupportLazyLoading\\SupportLazyLoading' => $vendorDir . '/livewire/livewire/src/Features/SupportLazyLoading/SupportLazyLoading.php',
'Livewire\\Features\\SupportLegacyModels\\CannotBindToModelDataWithoutValidationRuleException' => $vendorDir . '/livewire/livewire/src/Features/SupportLegacyModels/CannotBindToModelDataWithoutValidationRuleException.php',
'Livewire\\Features\\SupportLegacyModels\\EloquentCollectionSynth' => $vendorDir . '/livewire/livewire/src/Features/SupportLegacyModels/EloquentCollectionSynth.php',
'Livewire\\Features\\SupportLegacyModels\\EloquentModelSynth' => $vendorDir . '/livewire/livewire/src/Features/SupportLegacyModels/EloquentModelSynth.php',
'Livewire\\Features\\SupportLegacyModels\\SupportLegacyModels' => $vendorDir . '/livewire/livewire/src/Features/SupportLegacyModels/SupportLegacyModels.php',
'Livewire\\Features\\SupportLifecycleHooks\\DirectlyCallingLifecycleHooksNotAllowedException' => $vendorDir . '/livewire/livewire/src/Features/SupportLifecycleHooks/DirectlyCallingLifecycleHooksNotAllowedException.php',
'Livewire\\Features\\SupportLifecycleHooks\\SupportLifecycleHooks' => $vendorDir . '/livewire/livewire/src/Features/SupportLifecycleHooks/SupportLifecycleHooks.php',
'Livewire\\Features\\SupportLocales\\SupportLocales' => $vendorDir . '/livewire/livewire/src/Features/SupportLocales/SupportLocales.php',
'Livewire\\Features\\SupportLockedProperties\\BaseLocked' => $vendorDir . '/livewire/livewire/src/Features/SupportLockedProperties/BaseLocked.php',
'Livewire\\Features\\SupportModels\\ModelSynth' => $vendorDir . '/livewire/livewire/src/Features/SupportModels/ModelSynth.php',
'Livewire\\Features\\SupportModels\\SupportModels' => $vendorDir . '/livewire/livewire/src/Features/SupportModels/SupportModels.php',
'Livewire\\Features\\SupportMorphAwareIfStatement\\SupportMorphAwareIfStatement' => $vendorDir . '/livewire/livewire/src/Features/SupportMorphAwareIfStatement/SupportMorphAwareIfStatement.php',
'Livewire\\Features\\SupportMultipleRootElementDetection\\MultipleRootElementsDetectedException' => $vendorDir . '/livewire/livewire/src/Features/SupportMultipleRootElementDetection/MultipleRootElementsDetectedException.php',
'Livewire\\Features\\SupportMultipleRootElementDetection\\SupportMultipleRootElementDetection' => $vendorDir . '/livewire/livewire/src/Features/SupportMultipleRootElementDetection/SupportMultipleRootElementDetection.php',
'Livewire\\Features\\SupportNavigate\\SupportNavigate' => $vendorDir . '/livewire/livewire/src/Features/SupportNavigate/SupportNavigate.php',
'Livewire\\Features\\SupportNestingComponents\\SupportNestingComponents' => $vendorDir . '/livewire/livewire/src/Features/SupportNestingComponents/SupportNestingComponents.php',
'Livewire\\Features\\SupportPageComponents\\BaseLayout' => $vendorDir . '/livewire/livewire/src/Features/SupportPageComponents/BaseLayout.php',
'Livewire\\Features\\SupportPageComponents\\BaseTitle' => $vendorDir . '/livewire/livewire/src/Features/SupportPageComponents/BaseTitle.php',
'Livewire\\Features\\SupportPageComponents\\HandlesPageComponents' => $vendorDir . '/livewire/livewire/src/Features/SupportPageComponents/HandlesPageComponents.php',
'Livewire\\Features\\SupportPageComponents\\LayoutConfig' => $vendorDir . '/livewire/livewire/src/Features/SupportPageComponents/LayoutConfig.php',
'Livewire\\Features\\SupportPageComponents\\MissingLayoutException' => $vendorDir . '/livewire/livewire/src/Features/SupportPageComponents/MissingLayoutException.php',
'Livewire\\Features\\SupportPageComponents\\SupportPageComponents' => $vendorDir . '/livewire/livewire/src/Features/SupportPageComponents/SupportPageComponents.php',
'Livewire\\Features\\SupportPagination\\HandlesPagination' => $vendorDir . '/livewire/livewire/src/Features/SupportPagination/HandlesPagination.php',
'Livewire\\Features\\SupportPagination\\SupportPagination' => $vendorDir . '/livewire/livewire/src/Features/SupportPagination/SupportPagination.php',
'Livewire\\Features\\SupportQueryString\\BaseUrl' => $vendorDir . '/livewire/livewire/src/Features/SupportQueryString/BaseUrl.php',
'Livewire\\Features\\SupportQueryString\\SupportQueryString' => $vendorDir . '/livewire/livewire/src/Features/SupportQueryString/SupportQueryString.php',
'Livewire\\Features\\SupportReactiveProps\\BaseReactive' => $vendorDir . '/livewire/livewire/src/Features/SupportReactiveProps/BaseReactive.php',
'Livewire\\Features\\SupportReactiveProps\\CannotMutateReactivePropException' => $vendorDir . '/livewire/livewire/src/Features/SupportReactiveProps/CannotMutateReactivePropException.php',
'Livewire\\Features\\SupportReactiveProps\\SupportReactiveProps' => $vendorDir . '/livewire/livewire/src/Features/SupportReactiveProps/SupportReactiveProps.php',
'Livewire\\Features\\SupportRedirects\\HandlesRedirects' => $vendorDir . '/livewire/livewire/src/Features/SupportRedirects/HandlesRedirects.php',
'Livewire\\Features\\SupportRedirects\\Redirector' => $vendorDir . '/livewire/livewire/src/Features/SupportRedirects/Redirector.php',
'Livewire\\Features\\SupportRedirects\\SupportRedirects' => $vendorDir . '/livewire/livewire/src/Features/SupportRedirects/SupportRedirects.php',
'Livewire\\Features\\SupportRedirects\\TestsRedirects' => $vendorDir . '/livewire/livewire/src/Features/SupportRedirects/TestsRedirects.php',
'Livewire\\Features\\SupportStreaming\\HandlesStreaming' => $vendorDir . '/livewire/livewire/src/Features/SupportStreaming/HandlesStreaming.php',
'Livewire\\Features\\SupportStreaming\\SupportStreaming' => $vendorDir . '/livewire/livewire/src/Features/SupportStreaming/SupportStreaming.php',
'Livewire\\Features\\SupportTeleporting\\SupportTeleporting' => $vendorDir . '/livewire/livewire/src/Features/SupportTeleporting/SupportTeleporting.php',
'Livewire\\Features\\SupportTesting\\ComponentState' => $vendorDir . '/livewire/livewire/src/Features/SupportTesting/ComponentState.php',
'Livewire\\Features\\SupportTesting\\DuskBrowserMacros' => $vendorDir . '/livewire/livewire/src/Features/SupportTesting/DuskBrowserMacros.php',
'Livewire\\Features\\SupportTesting\\DuskTestable' => $vendorDir . '/livewire/livewire/src/Features/SupportTesting/DuskTestable.php',
'Livewire\\Features\\SupportTesting\\InitialRender' => $vendorDir . '/livewire/livewire/src/Features/SupportTesting/InitialRender.php',
'Livewire\\Features\\SupportTesting\\MakesAssertions' => $vendorDir . '/livewire/livewire/src/Features/SupportTesting/MakesAssertions.php',
'Livewire\\Features\\SupportTesting\\Render' => $vendorDir . '/livewire/livewire/src/Features/SupportTesting/Render.php',
'Livewire\\Features\\SupportTesting\\RequestBroker' => $vendorDir . '/livewire/livewire/src/Features/SupportTesting/RequestBroker.php',
'Livewire\\Features\\SupportTesting\\SubsequentRender' => $vendorDir . '/livewire/livewire/src/Features/SupportTesting/SubsequentRender.php',
'Livewire\\Features\\SupportTesting\\SupportTesting' => $vendorDir . '/livewire/livewire/src/Features/SupportTesting/SupportTesting.php',
'Livewire\\Features\\SupportTesting\\Testable' => $vendorDir . '/livewire/livewire/src/Features/SupportTesting/Testable.php',
'Livewire\\Features\\SupportValidation\\BaseRule' => $vendorDir . '/livewire/livewire/src/Features/SupportValidation/BaseRule.php',
'Livewire\\Features\\SupportValidation\\HandlesValidation' => $vendorDir . '/livewire/livewire/src/Features/SupportValidation/HandlesValidation.php',
'Livewire\\Features\\SupportValidation\\SupportValidation' => $vendorDir . '/livewire/livewire/src/Features/SupportValidation/SupportValidation.php',
'Livewire\\Features\\SupportValidation\\TestsValidation' => $vendorDir . '/livewire/livewire/src/Features/SupportValidation/TestsValidation.php',
'Livewire\\Features\\SupportWireModelingNestedComponents\\BaseModelable' => $vendorDir . '/livewire/livewire/src/Features/SupportWireModelingNestedComponents/BaseModelable.php',
'Livewire\\Features\\SupportWireModelingNestedComponents\\SupportWireModelingNestedComponents' => $vendorDir . '/livewire/livewire/src/Features/SupportWireModelingNestedComponents/SupportWireModelingNestedComponents.php',
'Livewire\\Features\\SupportWireables\\SupportWireables' => $vendorDir . '/livewire/livewire/src/Features/SupportWireables/SupportWireables.php',
'Livewire\\Features\\SupportWireables\\WireableSynth' => $vendorDir . '/livewire/livewire/src/Features/SupportWireables/WireableSynth.php',
'Livewire\\Form' => $vendorDir . '/livewire/livewire/src/Form.php',
'Livewire\\ImplicitlyBoundMethod' => $vendorDir . '/livewire/livewire/src/ImplicitlyBoundMethod.php',
'Livewire\\Livewire' => $vendorDir . '/livewire/livewire/src/Livewire.php',
'Livewire\\LivewireManager' => $vendorDir . '/livewire/livewire/src/LivewireManager.php',
'Livewire\\LivewireServiceProvider' => $vendorDir . '/livewire/livewire/src/LivewireServiceProvider.php',
'Livewire\\Mechanisms\\CompileLivewireTags' => $vendorDir . '/livewire/livewire/src/Mechanisms/CompileLivewireTags.php',
'Livewire\\Mechanisms\\ComponentRegistry' => $vendorDir . '/livewire/livewire/src/Mechanisms/ComponentRegistry.php',
'Livewire\\Mechanisms\\DataStore' => $vendorDir . '/livewire/livewire/src/Mechanisms/DataStore.php',
'Livewire\\Mechanisms\\ExtendBlade\\ExtendBlade' => $vendorDir . '/livewire/livewire/src/Mechanisms/ExtendBlade/ExtendBlade.php',
'Livewire\\Mechanisms\\ExtendBlade\\ExtendedCompilerEngine' => $vendorDir . '/livewire/livewire/src/Mechanisms/ExtendBlade/ExtendedCompilerEngine.php',
'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets' => $vendorDir . '/livewire/livewire/src/Mechanisms/FrontendAssets/FrontendAssets.php',
'Livewire\\Mechanisms\\HandleComponents\\BaseRenderless' => $vendorDir . '/livewire/livewire/src/Mechanisms/HandleComponents/BaseRenderless.php',
'Livewire\\Mechanisms\\HandleComponents\\Checksum' => $vendorDir . '/livewire/livewire/src/Mechanisms/HandleComponents/Checksum.php',
'Livewire\\Mechanisms\\HandleComponents\\ComponentContext' => $vendorDir . '/livewire/livewire/src/Mechanisms/HandleComponents/ComponentContext.php',
'Livewire\\Mechanisms\\HandleComponents\\CorruptComponentPayloadException' => $vendorDir . '/livewire/livewire/src/Mechanisms/HandleComponents/CorruptComponentPayloadException.php',
'Livewire\\Mechanisms\\HandleComponents\\HandleComponents' => $vendorDir . '/livewire/livewire/src/Mechanisms/HandleComponents/HandleComponents.php',
'Livewire\\Mechanisms\\HandleComponents\\Synthesizers\\ArraySynth' => $vendorDir . '/livewire/livewire/src/Mechanisms/HandleComponents/Synthesizers/ArraySynth.php',
'Livewire\\Mechanisms\\HandleComponents\\Synthesizers\\CarbonSynth' => $vendorDir . '/livewire/livewire/src/Mechanisms/HandleComponents/Synthesizers/CarbonSynth.php',
'Livewire\\Mechanisms\\HandleComponents\\Synthesizers\\CollectionSynth' => $vendorDir . '/livewire/livewire/src/Mechanisms/HandleComponents/Synthesizers/CollectionSynth.php',
'Livewire\\Mechanisms\\HandleComponents\\Synthesizers\\EnumSynth' => $vendorDir . '/livewire/livewire/src/Mechanisms/HandleComponents/Synthesizers/EnumSynth.php',
'Livewire\\Mechanisms\\HandleComponents\\Synthesizers\\IntSynth' => $vendorDir . '/livewire/livewire/src/Mechanisms/HandleComponents/Synthesizers/IntSynth.php',
'Livewire\\Mechanisms\\HandleComponents\\Synthesizers\\StdClassSynth' => $vendorDir . '/livewire/livewire/src/Mechanisms/HandleComponents/Synthesizers/StdClassSynth.php',
'Livewire\\Mechanisms\\HandleComponents\\Synthesizers\\StringableSynth' => $vendorDir . '/livewire/livewire/src/Mechanisms/HandleComponents/Synthesizers/StringableSynth.php',
'Livewire\\Mechanisms\\HandleComponents\\Synthesizers\\Synth' => $vendorDir . '/livewire/livewire/src/Mechanisms/HandleComponents/Synthesizers/Synth.php',
'Livewire\\Mechanisms\\HandleComponents\\ViewContext' => $vendorDir . '/livewire/livewire/src/Mechanisms/HandleComponents/ViewContext.php',
'Livewire\\Mechanisms\\HandleRequests\\HandleRequests' => $vendorDir . '/livewire/livewire/src/Mechanisms/HandleRequests/HandleRequests.php',
'Livewire\\Mechanisms\\PersistentMiddleware\\PersistentMiddleware' => $vendorDir . '/livewire/livewire/src/Mechanisms/PersistentMiddleware/PersistentMiddleware.php',
'Livewire\\Mechanisms\\RenderComponent' => $vendorDir . '/livewire/livewire/src/Mechanisms/RenderComponent.php',
'Livewire\\Pipe' => $vendorDir . '/livewire/livewire/src/Pipe.php',
'Livewire\\Transparency' => $vendorDir . '/livewire/livewire/src/Transparency.php',
'Livewire\\WireDirective' => $vendorDir . '/livewire/livewire/src/WireDirective.php',
'Livewire\\Wireable' => $vendorDir . '/livewire/livewire/src/Wireable.php',
'Livewire\\WithFileUploads' => $vendorDir . '/livewire/livewire/src/WithFileUploads.php',
'Livewire\\WithPagination' => $vendorDir . '/livewire/livewire/src/WithPagination.php',
'Livewire\\Wrapped' => $vendorDir . '/livewire/livewire/src/Wrapped.php',
'Matrix\\Builder' => $vendorDir . '/markbaker/matrix/classes/src/Builder.php', 'Matrix\\Builder' => $vendorDir . '/markbaker/matrix/classes/src/Builder.php',
'Matrix\\Decomposition\\Decomposition' => $vendorDir . '/markbaker/matrix/classes/src/Decomposition/Decomposition.php', 'Matrix\\Decomposition\\Decomposition' => $vendorDir . '/markbaker/matrix/classes/src/Decomposition/Decomposition.php',
'Matrix\\Decomposition\\LU' => $vendorDir . '/markbaker/matrix/classes/src/Decomposition/LU.php', 'Matrix\\Decomposition\\LU' => $vendorDir . '/markbaker/matrix/classes/src/Decomposition/LU.php',

View File

@ -10,8 +10,8 @@
'6e3fae29631ef280660b3cdad06f25a8' => $vendorDir . '/symfony/deprecation-contracts/function.php', '6e3fae29631ef280660b3cdad06f25a8' => $vendorDir . '/symfony/deprecation-contracts/function.php',
'e69f7f6ee287b969198c3c9d6777bd38' => $vendorDir . '/symfony/polyfill-intl-normalizer/bootstrap.php', 'e69f7f6ee287b969198c3c9d6777bd38' => $vendorDir . '/symfony/polyfill-intl-normalizer/bootstrap.php',
'320cde22f66dd4f5d3fd621d3e88b98f' => $vendorDir . '/symfony/polyfill-ctype/bootstrap.php', '320cde22f66dd4f5d3fd621d3e88b98f' => $vendorDir . '/symfony/polyfill-ctype/bootstrap.php',
'25072dd6e2470089de65ae7bf11d3109' => $vendorDir . '/symfony/polyfill-php72/bootstrap.php',
'667aeda72477189d0494fecd327c3641' => $vendorDir . '/symfony/var-dumper/Resources/functions/dump.php', '667aeda72477189d0494fecd327c3641' => $vendorDir . '/symfony/var-dumper/Resources/functions/dump.php',
'25072dd6e2470089de65ae7bf11d3109' => $vendorDir . '/symfony/polyfill-php72/bootstrap.php',
'f598d06aa772fa33d905e87be6398fb1' => $vendorDir . '/symfony/polyfill-intl-idn/bootstrap.php', 'f598d06aa772fa33d905e87be6398fb1' => $vendorDir . '/symfony/polyfill-intl-idn/bootstrap.php',
'8825ede83f2f289127722d4e842cf7e8' => $vendorDir . '/symfony/polyfill-intl-grapheme/bootstrap.php', '8825ede83f2f289127722d4e842cf7e8' => $vendorDir . '/symfony/polyfill-intl-grapheme/bootstrap.php',
'b6b991a57620e2fb6b2f66f03fe9ddc2' => $vendorDir . '/symfony/string/Resources/functions.php', 'b6b991a57620e2fb6b2f66f03fe9ddc2' => $vendorDir . '/symfony/string/Resources/functions.php',
@ -31,6 +31,7 @@
'c7a3c339e7e14b60e06a2d7fcce9476b' => $vendorDir . '/laravel/framework/src/Illuminate/Events/functions.php', 'c7a3c339e7e14b60e06a2d7fcce9476b' => $vendorDir . '/laravel/framework/src/Illuminate/Events/functions.php',
'f0906e6318348a765ffb6eb24e0d0938' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/helpers.php', 'f0906e6318348a765ffb6eb24e0d0938' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/helpers.php',
'58571171fd5812e6e447dce228f52f4d' => $vendorDir . '/laravel/framework/src/Illuminate/Support/helpers.php', '58571171fd5812e6e447dce228f52f4d' => $vendorDir . '/laravel/framework/src/Illuminate/Support/helpers.php',
'40275907c8566c390185147049ef6e5d' => $vendorDir . '/livewire/livewire/src/helpers.php',
'a1cfe24d14977df6878b9bf804af2d1c' => $vendorDir . '/nunomaduro/collision/src/Adapters/Phpunit/Autoload.php', 'a1cfe24d14977df6878b9bf804af2d1c' => $vendorDir . '/nunomaduro/collision/src/Adapters/Phpunit/Autoload.php',
'ec07570ca5a812141189b1fa81503674' => $vendorDir . '/phpunit/phpunit/src/Framework/Assert/Functions.php', 'ec07570ca5a812141189b1fa81503674' => $vendorDir . '/phpunit/phpunit/src/Framework/Assert/Functions.php',
'320163ac6b93aebe3dc25b60a0533d56' => $vendorDir . '/spatie/laravel-ignition/src/helpers.php', '320163ac6b93aebe3dc25b60a0533d56' => $vendorDir . '/spatie/laravel-ignition/src/helpers.php',

View File

@ -66,6 +66,7 @@
'MyCLabs\\Enum\\' => array($vendorDir . '/myclabs/php-enum/src'), 'MyCLabs\\Enum\\' => array($vendorDir . '/myclabs/php-enum/src'),
'Monolog\\' => array($vendorDir . '/monolog/monolog/src/Monolog'), 'Monolog\\' => array($vendorDir . '/monolog/monolog/src/Monolog'),
'Matrix\\' => array($vendorDir . '/markbaker/matrix/classes/src'), 'Matrix\\' => array($vendorDir . '/markbaker/matrix/classes/src'),
'Livewire\\' => array($vendorDir . '/livewire/livewire/src'),
'League\\MimeTypeDetection\\' => array($vendorDir . '/league/mime-type-detection/src'), 'League\\MimeTypeDetection\\' => array($vendorDir . '/league/mime-type-detection/src'),
'League\\Flysystem\\' => array($vendorDir . '/league/flysystem/src'), 'League\\Flysystem\\' => array($vendorDir . '/league/flysystem/src'),
'League\\Config\\' => array($vendorDir . '/league/config/src'), 'League\\Config\\' => array($vendorDir . '/league/config/src'),

View File

@ -11,8 +11,8 @@ class ComposerStaticInit4de2290df2a8c5142f72130885c7079d
'6e3fae29631ef280660b3cdad06f25a8' => __DIR__ . '/..' . '/symfony/deprecation-contracts/function.php', '6e3fae29631ef280660b3cdad06f25a8' => __DIR__ . '/..' . '/symfony/deprecation-contracts/function.php',
'e69f7f6ee287b969198c3c9d6777bd38' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/bootstrap.php', 'e69f7f6ee287b969198c3c9d6777bd38' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/bootstrap.php',
'320cde22f66dd4f5d3fd621d3e88b98f' => __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php', '320cde22f66dd4f5d3fd621d3e88b98f' => __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php',
'25072dd6e2470089de65ae7bf11d3109' => __DIR__ . '/..' . '/symfony/polyfill-php72/bootstrap.php',
'667aeda72477189d0494fecd327c3641' => __DIR__ . '/..' . '/symfony/var-dumper/Resources/functions/dump.php', '667aeda72477189d0494fecd327c3641' => __DIR__ . '/..' . '/symfony/var-dumper/Resources/functions/dump.php',
'25072dd6e2470089de65ae7bf11d3109' => __DIR__ . '/..' . '/symfony/polyfill-php72/bootstrap.php',
'f598d06aa772fa33d905e87be6398fb1' => __DIR__ . '/..' . '/symfony/polyfill-intl-idn/bootstrap.php', 'f598d06aa772fa33d905e87be6398fb1' => __DIR__ . '/..' . '/symfony/polyfill-intl-idn/bootstrap.php',
'8825ede83f2f289127722d4e842cf7e8' => __DIR__ . '/..' . '/symfony/polyfill-intl-grapheme/bootstrap.php', '8825ede83f2f289127722d4e842cf7e8' => __DIR__ . '/..' . '/symfony/polyfill-intl-grapheme/bootstrap.php',
'b6b991a57620e2fb6b2f66f03fe9ddc2' => __DIR__ . '/..' . '/symfony/string/Resources/functions.php', 'b6b991a57620e2fb6b2f66f03fe9ddc2' => __DIR__ . '/..' . '/symfony/string/Resources/functions.php',
@ -32,6 +32,7 @@ class ComposerStaticInit4de2290df2a8c5142f72130885c7079d
'c7a3c339e7e14b60e06a2d7fcce9476b' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Events/functions.php', 'c7a3c339e7e14b60e06a2d7fcce9476b' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Events/functions.php',
'f0906e6318348a765ffb6eb24e0d0938' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/helpers.php', 'f0906e6318348a765ffb6eb24e0d0938' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/helpers.php',
'58571171fd5812e6e447dce228f52f4d' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/helpers.php', '58571171fd5812e6e447dce228f52f4d' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/helpers.php',
'40275907c8566c390185147049ef6e5d' => __DIR__ . '/..' . '/livewire/livewire/src/helpers.php',
'a1cfe24d14977df6878b9bf804af2d1c' => __DIR__ . '/..' . '/nunomaduro/collision/src/Adapters/Phpunit/Autoload.php', 'a1cfe24d14977df6878b9bf804af2d1c' => __DIR__ . '/..' . '/nunomaduro/collision/src/Adapters/Phpunit/Autoload.php',
'ec07570ca5a812141189b1fa81503674' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Assert/Functions.php', 'ec07570ca5a812141189b1fa81503674' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Assert/Functions.php',
'320163ac6b93aebe3dc25b60a0533d56' => __DIR__ . '/..' . '/spatie/laravel-ignition/src/helpers.php', '320163ac6b93aebe3dc25b60a0533d56' => __DIR__ . '/..' . '/spatie/laravel-ignition/src/helpers.php',
@ -131,6 +132,7 @@ class ComposerStaticInit4de2290df2a8c5142f72130885c7079d
), ),
'L' => 'L' =>
array ( array (
'Livewire\\' => 9,
'League\\MimeTypeDetection\\' => 25, 'League\\MimeTypeDetection\\' => 25,
'League\\Flysystem\\' => 17, 'League\\Flysystem\\' => 17,
'League\\Config\\' => 14, 'League\\Config\\' => 14,
@ -433,6 +435,10 @@ class ComposerStaticInit4de2290df2a8c5142f72130885c7079d
array ( array (
0 => __DIR__ . '/..' . '/markbaker/matrix/classes/src', 0 => __DIR__ . '/..' . '/markbaker/matrix/classes/src',
), ),
'Livewire\\' =>
array (
0 => __DIR__ . '/..' . '/livewire/livewire/src',
),
'League\\MimeTypeDetection\\' => 'League\\MimeTypeDetection\\' =>
array ( array (
0 => __DIR__ . '/..' . '/league/mime-type-detection/src', 0 => __DIR__ . '/..' . '/league/mime-type-detection/src',
@ -602,13 +608,19 @@ class ComposerStaticInit4de2290df2a8c5142f72130885c7079d
'App\\Http\\Controllers\\Controller' => __DIR__ . '/../..' . '/app/Http/Controllers/Controller.php', 'App\\Http\\Controllers\\Controller' => __DIR__ . '/../..' . '/app/Http/Controllers/Controller.php',
'App\\Http\\Controllers\\CreateProjectController' => __DIR__ . '/../..' . '/app/Http/Controllers/CreateProjectController.php', 'App\\Http\\Controllers\\CreateProjectController' => __DIR__ . '/../..' . '/app/Http/Controllers/CreateProjectController.php',
'App\\Http\\Controllers\\CustomRegistrationController' => __DIR__ . '/../..' . '/app/Http/Controllers/CustomRegistrationController.php', 'App\\Http\\Controllers\\CustomRegistrationController' => __DIR__ . '/../..' . '/app/Http/Controllers/CustomRegistrationController.php',
'App\\Http\\Controllers\\ExecutionProjectController' => __DIR__ . '/../..' . '/app/Http/Controllers/ExecutionProjectController.php',
'App\\Http\\Controllers\\FormController' => __DIR__ . '/../..' . '/app/Http/Controllers/FormController.php', 'App\\Http\\Controllers\\FormController' => __DIR__ . '/../..' . '/app/Http/Controllers/FormController.php',
'App\\Http\\Controllers\\Pending_UserController' => __DIR__ . '/../..' . '/app/Http/Controllers/Pending_UserController.php', 'App\\Http\\Controllers\\Pending_UserController' => __DIR__ . '/../..' . '/app/Http/Controllers/Pending_UserController.php',
'App\\Http\\Controllers\\PreparedProjectController' => __DIR__ . '/../..' . '/app/Http/Controllers/PreparedProjectController.php',
'App\\Http\\Controllers\\ProjectoDatacontroller' => __DIR__ . '/../..' . '/app/Http/Controllers/ProjectoDatacontroller.php', 'App\\Http\\Controllers\\ProjectoDatacontroller' => __DIR__ . '/../..' . '/app/Http/Controllers/ProjectoDatacontroller.php',
'App\\Http\\Controllers\\WorkstationsJobsController' => __DIR__ . '/../..' . '/app/Http/Controllers/WorkstationsJobsController.php',
'App\\Http\\Controllers\\userController' => __DIR__ . '/../..' . '/app/Http/Controllers/userController.php', 'App\\Http\\Controllers\\userController' => __DIR__ . '/../..' . '/app/Http/Controllers/userController.php',
'App\\Http\\Kernel' => __DIR__ . '/../..' . '/app/Http/Kernel.php', 'App\\Http\\Kernel' => __DIR__ . '/../..' . '/app/Http/Kernel.php',
'App\\Http\\Middleware\\Authenticate' => __DIR__ . '/../..' . '/app/Http/Middleware/Authenticate.php', 'App\\Http\\Middleware\\Authenticate' => __DIR__ . '/../..' . '/app/Http/Middleware/Authenticate.php',
'App\\Http\\Middleware\\CheckAdmin' => __DIR__ . '/../..' . '/app/Http/Middleware/CheckAdmin.php',
'App\\Http\\Middleware\\CheckSuperAdmin' => __DIR__ . '/../..' . '/app/Http/Middleware/CheckSuperAdmin.php', 'App\\Http\\Middleware\\CheckSuperAdmin' => __DIR__ . '/../..' . '/app/Http/Middleware/CheckSuperAdmin.php',
'App\\Http\\Middleware\\CheckTechnical' => __DIR__ . '/../..' . '/app/Http/Middleware/CheckTechnical.php',
'App\\Http\\Middleware\\CheckUserType' => __DIR__ . '/../..' . '/app/Http/Middleware/CheckUserType.php',
'App\\Http\\Middleware\\EncryptCookies' => __DIR__ . '/../..' . '/app/Http/Middleware/EncryptCookies.php', 'App\\Http\\Middleware\\EncryptCookies' => __DIR__ . '/../..' . '/app/Http/Middleware/EncryptCookies.php',
'App\\Http\\Middleware\\PreventRequestsDuringMaintenance' => __DIR__ . '/../..' . '/app/Http/Middleware/PreventRequestsDuringMaintenance.php', 'App\\Http\\Middleware\\PreventRequestsDuringMaintenance' => __DIR__ . '/../..' . '/app/Http/Middleware/PreventRequestsDuringMaintenance.php',
'App\\Http\\Middleware\\RedirectIfAuthenticated' => __DIR__ . '/../..' . '/app/Http/Middleware/RedirectIfAuthenticated.php', 'App\\Http\\Middleware\\RedirectIfAuthenticated' => __DIR__ . '/../..' . '/app/Http/Middleware/RedirectIfAuthenticated.php',
@ -621,8 +633,11 @@ class ComposerStaticInit4de2290df2a8c5142f72130885c7079d
'App\\Models\\AmbitsEquipment' => __DIR__ . '/../..' . '/app/Models/AmbitsEquipment.php', 'App\\Models\\AmbitsEquipment' => __DIR__ . '/../..' . '/app/Models/AmbitsEquipment.php',
'App\\Models\\CompanyProject' => __DIR__ . '/../..' . '/app/Models/CompanyProject.php', 'App\\Models\\CompanyProject' => __DIR__ . '/../..' . '/app/Models/CompanyProject.php',
'App\\Models\\ConstructionWorkstation' => __DIR__ . '/../..' . '/app/Models/ConstructionWorkstation.php', 'App\\Models\\ConstructionWorkstation' => __DIR__ . '/../..' . '/app/Models/ConstructionWorkstation.php',
'App\\Models\\ControlEquipmentWorkstation' => __DIR__ . '/../..' . '/app/Models/ControlEquipmentWorkstation.php',
'App\\Models\\ElementalTasks' => __DIR__ . '/../..' . '/app/Models/ElementalTasks.php',
'App\\Models\\Equipment' => __DIR__ . '/../..' . '/app/Models/Equipment.php', 'App\\Models\\Equipment' => __DIR__ . '/../..' . '/app/Models/Equipment.php',
'App\\Models\\EquipmentAssociationAmbit' => __DIR__ . '/../..' . '/app/Models/EquipmentAssociationAmbit.php', 'App\\Models\\EquipmentAssociationAmbit' => __DIR__ . '/../..' . '/app/Models/EquipmentAssociationAmbit.php',
'App\\Models\\EquipmentComments' => __DIR__ . '/../..' . '/app/Models/EquipmentComments.php',
'App\\Models\\EquipmentType' => __DIR__ . '/../..' . '/app/Models/EquipmentType.php', 'App\\Models\\EquipmentType' => __DIR__ . '/../..' . '/app/Models/EquipmentType.php',
'App\\Models\\FurtherTasks' => __DIR__ . '/../..' . '/app/Models/FurtherTasks.php', 'App\\Models\\FurtherTasks' => __DIR__ . '/../..' . '/app/Models/FurtherTasks.php',
'App\\Models\\GeneralAttributesEquipment' => __DIR__ . '/../..' . '/app/Models/GeneralAttributesEquipment.php', 'App\\Models\\GeneralAttributesEquipment' => __DIR__ . '/../..' . '/app/Models/GeneralAttributesEquipment.php',
@ -631,6 +646,7 @@ class ComposerStaticInit4de2290df2a8c5142f72130885c7079d
'App\\Models\\PendingUser' => __DIR__ . '/../..' . '/app/Models/PendingUser.php', 'App\\Models\\PendingUser' => __DIR__ . '/../..' . '/app/Models/PendingUser.php',
'App\\Models\\Plant' => __DIR__ . '/../..' . '/app/Models/Plant.php', 'App\\Models\\Plant' => __DIR__ . '/../..' . '/app/Models/Plant.php',
'App\\Models\\SpecificAttributesEquipmentType' => __DIR__ . '/../..' . '/app/Models/SpecificAttributesEquipmentType.php', 'App\\Models\\SpecificAttributesEquipmentType' => __DIR__ . '/../..' . '/app/Models/SpecificAttributesEquipmentType.php',
'App\\Models\\TasksAssociationAmbits' => __DIR__ . '/../..' . '/app/Models/TasksAssociationAmbits.php',
'App\\Models\\TypeUser' => __DIR__ . '/../..' . '/app/Models/TypeUser.php', 'App\\Models\\TypeUser' => __DIR__ . '/../..' . '/app/Models/TypeUser.php',
'App\\Models\\Unit' => __DIR__ . '/../..' . '/app/Models/Unit.php', 'App\\Models\\Unit' => __DIR__ . '/../..' . '/app/Models/Unit.php',
'App\\Models\\User' => __DIR__ . '/../..' . '/app/Models/User.php', 'App\\Models\\User' => __DIR__ . '/../..' . '/app/Models/User.php',
@ -3621,6 +3637,206 @@ class ComposerStaticInit4de2290df2a8c5142f72130885c7079d
'League\\MimeTypeDetection\\GeneratedExtensionToMimeTypeMap' => __DIR__ . '/..' . '/league/mime-type-detection/src/GeneratedExtensionToMimeTypeMap.php', 'League\\MimeTypeDetection\\GeneratedExtensionToMimeTypeMap' => __DIR__ . '/..' . '/league/mime-type-detection/src/GeneratedExtensionToMimeTypeMap.php',
'League\\MimeTypeDetection\\MimeTypeDetector' => __DIR__ . '/..' . '/league/mime-type-detection/src/MimeTypeDetector.php', 'League\\MimeTypeDetection\\MimeTypeDetector' => __DIR__ . '/..' . '/league/mime-type-detection/src/MimeTypeDetector.php',
'League\\MimeTypeDetection\\OverridingExtensionToMimeTypeMap' => __DIR__ . '/..' . '/league/mime-type-detection/src/OverridingExtensionToMimeTypeMap.php', 'League\\MimeTypeDetection\\OverridingExtensionToMimeTypeMap' => __DIR__ . '/..' . '/league/mime-type-detection/src/OverridingExtensionToMimeTypeMap.php',
'Livewire\\Attribute' => __DIR__ . '/..' . '/livewire/livewire/src/Attribute.php',
'Livewire\\Attributes\\Computed' => __DIR__ . '/..' . '/livewire/livewire/src/Attributes/Computed.php',
'Livewire\\Attributes\\Js' => __DIR__ . '/..' . '/livewire/livewire/src/Attributes/Js.php',
'Livewire\\Attributes\\Layout' => __DIR__ . '/..' . '/livewire/livewire/src/Attributes/Layout.php',
'Livewire\\Attributes\\Lazy' => __DIR__ . '/..' . '/livewire/livewire/src/Attributes/Lazy.php',
'Livewire\\Attributes\\Locked' => __DIR__ . '/..' . '/livewire/livewire/src/Attributes/Locked.php',
'Livewire\\Attributes\\Modelable' => __DIR__ . '/..' . '/livewire/livewire/src/Attributes/Modelable.php',
'Livewire\\Attributes\\On' => __DIR__ . '/..' . '/livewire/livewire/src/Attributes/On.php',
'Livewire\\Attributes\\Reactive' => __DIR__ . '/..' . '/livewire/livewire/src/Attributes/Reactive.php',
'Livewire\\Attributes\\Renderless' => __DIR__ . '/..' . '/livewire/livewire/src/Attributes/Renderless.php',
'Livewire\\Attributes\\Rule' => __DIR__ . '/..' . '/livewire/livewire/src/Attributes/Rule.php',
'Livewire\\Attributes\\Title' => __DIR__ . '/..' . '/livewire/livewire/src/Attributes/Title.php',
'Livewire\\Attributes\\Url' => __DIR__ . '/..' . '/livewire/livewire/src/Attributes/Url.php',
'Livewire\\Component' => __DIR__ . '/..' . '/livewire/livewire/src/Component.php',
'Livewire\\ComponentHook' => __DIR__ . '/..' . '/livewire/livewire/src/ComponentHook.php',
'Livewire\\ComponentHookRegistry' => __DIR__ . '/..' . '/livewire/livewire/src/ComponentHookRegistry.php',
'Livewire\\Concerns\\InteractsWithProperties' => __DIR__ . '/..' . '/livewire/livewire/src/Concerns/InteractsWithProperties.php',
'Livewire\\Drawer\\BaseUtils' => __DIR__ . '/..' . '/livewire/livewire/src/Drawer/BaseUtils.php',
'Livewire\\Drawer\\ImplicitRouteBinding' => __DIR__ . '/..' . '/livewire/livewire/src/Drawer/ImplicitRouteBinding.php',
'Livewire\\Drawer\\Regexes' => __DIR__ . '/..' . '/livewire/livewire/src/Drawer/Regexes.php',
'Livewire\\Drawer\\Utils' => __DIR__ . '/..' . '/livewire/livewire/src/Drawer/Utils.php',
'Livewire\\EventBus' => __DIR__ . '/..' . '/livewire/livewire/src/EventBus.php',
'Livewire\\Exceptions\\BypassViewHandler' => __DIR__ . '/..' . '/livewire/livewire/src/Exceptions/BypassViewHandler.php',
'Livewire\\Exceptions\\ComponentAttributeMissingOnDynamicComponentException' => __DIR__ . '/..' . '/livewire/livewire/src/Exceptions/ComponentAttributeMissingOnDynamicComponentException.php',
'Livewire\\Exceptions\\ComponentNotFoundException' => __DIR__ . '/..' . '/livewire/livewire/src/Exceptions/ComponentNotFoundException.php',
'Livewire\\Exceptions\\LivewirePageExpiredBecauseNewDeploymentHasSignificantEnoughChanges' => __DIR__ . '/..' . '/livewire/livewire/src/Exceptions/LivewirePageExpiredBecauseNewDeploymentHasSignificantEnoughChanges.php',
'Livewire\\Exceptions\\MethodNotFoundException' => __DIR__ . '/..' . '/livewire/livewire/src/Exceptions/MethodNotFoundException.php',
'Livewire\\Exceptions\\MissingRulesException' => __DIR__ . '/..' . '/livewire/livewire/src/Exceptions/MissingRulesException.php',
'Livewire\\Exceptions\\NonPublicComponentMethodCall' => __DIR__ . '/..' . '/livewire/livewire/src/Exceptions/NonPublicComponentMethodCall.php',
'Livewire\\Exceptions\\PropertyNotFoundException' => __DIR__ . '/..' . '/livewire/livewire/src/Exceptions/PropertyNotFoundException.php',
'Livewire\\Exceptions\\PublicPropertyNotFoundException' => __DIR__ . '/..' . '/livewire/livewire/src/Exceptions/PublicPropertyNotFoundException.php',
'Livewire\\Exceptions\\RootTagMissingFromViewException' => __DIR__ . '/..' . '/livewire/livewire/src/Exceptions/RootTagMissingFromViewException.php',
'Livewire\\Features\\SupportAttributes\\Attribute' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportAttributes/Attribute.php',
'Livewire\\Features\\SupportAttributes\\AttributeCollection' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportAttributes/AttributeCollection.php',
'Livewire\\Features\\SupportAttributes\\AttributeLevel' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportAttributes/AttributeLevel.php',
'Livewire\\Features\\SupportAttributes\\HandlesAttributes' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportAttributes/HandlesAttributes.php',
'Livewire\\Features\\SupportAttributes\\SupportAttributes' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportAttributes/SupportAttributes.php',
'Livewire\\Features\\SupportAutoInjectedAssets\\SupportAutoInjectedAssets' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportAutoInjectedAssets/SupportAutoInjectedAssets.php',
'Livewire\\Features\\SupportBladeAttributes\\SupportBladeAttributes' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportBladeAttributes/SupportBladeAttributes.php',
'Livewire\\Features\\SupportChecksumErrorDebugging\\SupportChecksumErrorDebugging' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportChecksumErrorDebugging/SupportChecksumErrorDebugging.php',
'Livewire\\Features\\SupportComputed\\BaseComputed' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportComputed/BaseComputed.php',
'Livewire\\Features\\SupportComputed\\CannotCallComputedDirectlyException' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportComputed/CannotCallComputedDirectlyException.php',
'Livewire\\Features\\SupportComputed\\SupportLegacyComputedPropertySyntax' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportComputed/SupportLegacyComputedPropertySyntax.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\AttributeCommand' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/AttributeCommand.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\ComponentParser' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/ComponentParser.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\ComponentParserFromExistingComponent' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/ComponentParserFromExistingComponent.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\CopyCommand' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/CopyCommand.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\CpCommand' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/CpCommand.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\DeleteCommand' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/DeleteCommand.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\FileManipulationCommand' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/FileManipulationCommand.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\FormCommand' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/FormCommand.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\LayoutCommand' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/LayoutCommand.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\MakeCommand' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/MakeCommand.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\MakeLivewireCommand' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/MakeLivewireCommand.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\MoveCommand' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/MoveCommand.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\MvCommand' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/MvCommand.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\PublishCommand' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/PublishCommand.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\RmCommand' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/RmCommand.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\S3CleanupCommand' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/S3CleanupCommand.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\StubsCommand' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/StubsCommand.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\TouchCommand' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/TouchCommand.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\UpgradeCommand' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/UpgradeCommand.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\Upgrade\\AddLiveModifierToEntangleDirectives' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/Upgrade/AddLiveModifierToEntangleDirectives.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\Upgrade\\AddLiveModifierToWireModelDirectives' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/Upgrade/AddLiveModifierToWireModelDirectives.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\Upgrade\\ChangeDefaultLayoutView' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/Upgrade/ChangeDefaultLayoutView.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\Upgrade\\ChangeDefaultNamespace' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/Upgrade/ChangeDefaultNamespace.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\Upgrade\\ChangeForgetComputedToUnset' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/Upgrade/ChangeForgetComputedToUnset.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\Upgrade\\ChangeLazyToBlurModifierOnWireModelDirectives' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/Upgrade/ChangeLazyToBlurModifierOnWireModelDirectives.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\Upgrade\\ChangeTestAssertionMethods' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/Upgrade/ChangeTestAssertionMethods.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\Upgrade\\ChangeWireLoadDirectiveToWireInit' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/Upgrade/ChangeWireLoadDirectiveToWireInit.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\Upgrade\\ClearViewCache' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/Upgrade/ClearViewCache.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\Upgrade\\RemoveDeferModifierFromEntangleDirectives' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/Upgrade/RemoveDeferModifierFromEntangleDirectives.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\Upgrade\\RemoveDeferModifierFromWireModelDirectives' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/Upgrade/RemoveDeferModifierFromWireModelDirectives.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\Upgrade\\RemovePrefetchModifierFromWireClickDirective' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/Upgrade/RemovePrefetchModifierFromWireClickDirective.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\Upgrade\\RemovePreventModifierFromWireSubmitDirective' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/Upgrade/RemovePreventModifierFromWireSubmitDirective.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\Upgrade\\ReplaceEmitWithDispatch' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/Upgrade/ReplaceEmitWithDispatch.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\Upgrade\\RepublishNavigation' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/Upgrade/RepublishNavigation.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\Upgrade\\ThirdPartyUpgradeNotice' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/Upgrade/ThirdPartyUpgradeNotice.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\Upgrade\\UpgradeAlpineInstructions' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/Upgrade/UpgradeAlpineInstructions.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\Upgrade\\UpgradeConfigInstructions' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/Upgrade/UpgradeConfigInstructions.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\Upgrade\\UpgradeIntroduction' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/Upgrade/UpgradeIntroduction.php',
'Livewire\\Features\\SupportConsoleCommands\\Commands\\Upgrade\\UpgradeStep' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportConsoleCommands/Commands/Upgrade/UpgradeStep.php',
'Livewire\\Features\\SupportConsoleCommands\\SupportConsoleCommands' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportConsoleCommands/SupportConsoleCommands.php',
'Livewire\\Features\\SupportDisablingBackButtonCache\\DisableBackButtonCacheMiddleware' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportDisablingBackButtonCache/DisableBackButtonCacheMiddleware.php',
'Livewire\\Features\\SupportDisablingBackButtonCache\\HandlesDisablingBackButtonCache' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportDisablingBackButtonCache/HandlesDisablingBackButtonCache.php',
'Livewire\\Features\\SupportDisablingBackButtonCache\\SupportDisablingBackButtonCache' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportDisablingBackButtonCache/SupportDisablingBackButtonCache.php',
'Livewire\\Features\\SupportEntangle\\SupportEntangle' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportEntangle/SupportEntangle.php',
'Livewire\\Features\\SupportEvents\\BaseOn' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportEvents/BaseOn.php',
'Livewire\\Features\\SupportEvents\\Event' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportEvents/Event.php',
'Livewire\\Features\\SupportEvents\\HandlesEvents' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportEvents/HandlesEvents.php',
'Livewire\\Features\\SupportEvents\\SupportEvents' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportEvents/SupportEvents.php',
'Livewire\\Features\\SupportEvents\\TestsEvents' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportEvents/TestsEvents.php',
'Livewire\\Features\\SupportFileDownloads\\SupportFileDownloads' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportFileDownloads/SupportFileDownloads.php',
'Livewire\\Features\\SupportFileDownloads\\TestsFileDownloads' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportFileDownloads/TestsFileDownloads.php',
'Livewire\\Features\\SupportFileUploads\\FilePreviewController' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportFileUploads/FilePreviewController.php',
'Livewire\\Features\\SupportFileUploads\\FileUploadConfiguration' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportFileUploads/FileUploadConfiguration.php',
'Livewire\\Features\\SupportFileUploads\\FileUploadController' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportFileUploads/FileUploadController.php',
'Livewire\\Features\\SupportFileUploads\\FileUploadSynth' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportFileUploads/FileUploadSynth.php',
'Livewire\\Features\\SupportFileUploads\\GenerateSignedUploadUrl' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportFileUploads/GenerateSignedUploadUrl.php',
'Livewire\\Features\\SupportFileUploads\\MissingFileUploadsTraitException' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportFileUploads/MissingFileUploadsTraitException.php',
'Livewire\\Features\\SupportFileUploads\\S3DoesntSupportMultipleFileUploads' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportFileUploads/S3DoesntSupportMultipleFileUploads.php',
'Livewire\\Features\\SupportFileUploads\\SupportFileUploads' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportFileUploads/SupportFileUploads.php',
'Livewire\\Features\\SupportFileUploads\\TemporaryUploadedFile' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportFileUploads/TemporaryUploadedFile.php',
'Livewire\\Features\\SupportFileUploads\\WithFileUploads' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportFileUploads/WithFileUploads.php',
'Livewire\\Features\\SupportFormObjects\\Form' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportFormObjects/Form.php',
'Livewire\\Features\\SupportFormObjects\\FormObjectSynth' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportFormObjects/FormObjectSynth.php',
'Livewire\\Features\\SupportFormObjects\\SupportFormObjects' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportFormObjects/SupportFormObjects.php',
'Livewire\\Features\\SupportJsEvaluation\\BaseJs' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportJsEvaluation/BaseJs.php',
'Livewire\\Features\\SupportJsEvaluation\\HandlesJsEvaluation' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportJsEvaluation/HandlesJsEvaluation.php',
'Livewire\\Features\\SupportJsEvaluation\\SupportJsEvaluation' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportJsEvaluation/SupportJsEvaluation.php',
'Livewire\\Features\\SupportLazyLoading\\BaseLazy' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportLazyLoading/BaseLazy.php',
'Livewire\\Features\\SupportLazyLoading\\SupportLazyLoading' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportLazyLoading/SupportLazyLoading.php',
'Livewire\\Features\\SupportLegacyModels\\CannotBindToModelDataWithoutValidationRuleException' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportLegacyModels/CannotBindToModelDataWithoutValidationRuleException.php',
'Livewire\\Features\\SupportLegacyModels\\EloquentCollectionSynth' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportLegacyModels/EloquentCollectionSynth.php',
'Livewire\\Features\\SupportLegacyModels\\EloquentModelSynth' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportLegacyModels/EloquentModelSynth.php',
'Livewire\\Features\\SupportLegacyModels\\SupportLegacyModels' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportLegacyModels/SupportLegacyModels.php',
'Livewire\\Features\\SupportLifecycleHooks\\DirectlyCallingLifecycleHooksNotAllowedException' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportLifecycleHooks/DirectlyCallingLifecycleHooksNotAllowedException.php',
'Livewire\\Features\\SupportLifecycleHooks\\SupportLifecycleHooks' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportLifecycleHooks/SupportLifecycleHooks.php',
'Livewire\\Features\\SupportLocales\\SupportLocales' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportLocales/SupportLocales.php',
'Livewire\\Features\\SupportLockedProperties\\BaseLocked' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportLockedProperties/BaseLocked.php',
'Livewire\\Features\\SupportModels\\ModelSynth' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportModels/ModelSynth.php',
'Livewire\\Features\\SupportModels\\SupportModels' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportModels/SupportModels.php',
'Livewire\\Features\\SupportMorphAwareIfStatement\\SupportMorphAwareIfStatement' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportMorphAwareIfStatement/SupportMorphAwareIfStatement.php',
'Livewire\\Features\\SupportMultipleRootElementDetection\\MultipleRootElementsDetectedException' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportMultipleRootElementDetection/MultipleRootElementsDetectedException.php',
'Livewire\\Features\\SupportMultipleRootElementDetection\\SupportMultipleRootElementDetection' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportMultipleRootElementDetection/SupportMultipleRootElementDetection.php',
'Livewire\\Features\\SupportNavigate\\SupportNavigate' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportNavigate/SupportNavigate.php',
'Livewire\\Features\\SupportNestingComponents\\SupportNestingComponents' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportNestingComponents/SupportNestingComponents.php',
'Livewire\\Features\\SupportPageComponents\\BaseLayout' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportPageComponents/BaseLayout.php',
'Livewire\\Features\\SupportPageComponents\\BaseTitle' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportPageComponents/BaseTitle.php',
'Livewire\\Features\\SupportPageComponents\\HandlesPageComponents' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportPageComponents/HandlesPageComponents.php',
'Livewire\\Features\\SupportPageComponents\\LayoutConfig' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportPageComponents/LayoutConfig.php',
'Livewire\\Features\\SupportPageComponents\\MissingLayoutException' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportPageComponents/MissingLayoutException.php',
'Livewire\\Features\\SupportPageComponents\\SupportPageComponents' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportPageComponents/SupportPageComponents.php',
'Livewire\\Features\\SupportPagination\\HandlesPagination' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportPagination/HandlesPagination.php',
'Livewire\\Features\\SupportPagination\\SupportPagination' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportPagination/SupportPagination.php',
'Livewire\\Features\\SupportQueryString\\BaseUrl' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportQueryString/BaseUrl.php',
'Livewire\\Features\\SupportQueryString\\SupportQueryString' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportQueryString/SupportQueryString.php',
'Livewire\\Features\\SupportReactiveProps\\BaseReactive' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportReactiveProps/BaseReactive.php',
'Livewire\\Features\\SupportReactiveProps\\CannotMutateReactivePropException' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportReactiveProps/CannotMutateReactivePropException.php',
'Livewire\\Features\\SupportReactiveProps\\SupportReactiveProps' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportReactiveProps/SupportReactiveProps.php',
'Livewire\\Features\\SupportRedirects\\HandlesRedirects' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportRedirects/HandlesRedirects.php',
'Livewire\\Features\\SupportRedirects\\Redirector' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportRedirects/Redirector.php',
'Livewire\\Features\\SupportRedirects\\SupportRedirects' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportRedirects/SupportRedirects.php',
'Livewire\\Features\\SupportRedirects\\TestsRedirects' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportRedirects/TestsRedirects.php',
'Livewire\\Features\\SupportStreaming\\HandlesStreaming' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportStreaming/HandlesStreaming.php',
'Livewire\\Features\\SupportStreaming\\SupportStreaming' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportStreaming/SupportStreaming.php',
'Livewire\\Features\\SupportTeleporting\\SupportTeleporting' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportTeleporting/SupportTeleporting.php',
'Livewire\\Features\\SupportTesting\\ComponentState' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportTesting/ComponentState.php',
'Livewire\\Features\\SupportTesting\\DuskBrowserMacros' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportTesting/DuskBrowserMacros.php',
'Livewire\\Features\\SupportTesting\\DuskTestable' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportTesting/DuskTestable.php',
'Livewire\\Features\\SupportTesting\\InitialRender' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportTesting/InitialRender.php',
'Livewire\\Features\\SupportTesting\\MakesAssertions' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportTesting/MakesAssertions.php',
'Livewire\\Features\\SupportTesting\\Render' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportTesting/Render.php',
'Livewire\\Features\\SupportTesting\\RequestBroker' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportTesting/RequestBroker.php',
'Livewire\\Features\\SupportTesting\\SubsequentRender' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportTesting/SubsequentRender.php',
'Livewire\\Features\\SupportTesting\\SupportTesting' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportTesting/SupportTesting.php',
'Livewire\\Features\\SupportTesting\\Testable' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportTesting/Testable.php',
'Livewire\\Features\\SupportValidation\\BaseRule' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportValidation/BaseRule.php',
'Livewire\\Features\\SupportValidation\\HandlesValidation' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportValidation/HandlesValidation.php',
'Livewire\\Features\\SupportValidation\\SupportValidation' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportValidation/SupportValidation.php',
'Livewire\\Features\\SupportValidation\\TestsValidation' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportValidation/TestsValidation.php',
'Livewire\\Features\\SupportWireModelingNestedComponents\\BaseModelable' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportWireModelingNestedComponents/BaseModelable.php',
'Livewire\\Features\\SupportWireModelingNestedComponents\\SupportWireModelingNestedComponents' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportWireModelingNestedComponents/SupportWireModelingNestedComponents.php',
'Livewire\\Features\\SupportWireables\\SupportWireables' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportWireables/SupportWireables.php',
'Livewire\\Features\\SupportWireables\\WireableSynth' => __DIR__ . '/..' . '/livewire/livewire/src/Features/SupportWireables/WireableSynth.php',
'Livewire\\Form' => __DIR__ . '/..' . '/livewire/livewire/src/Form.php',
'Livewire\\ImplicitlyBoundMethod' => __DIR__ . '/..' . '/livewire/livewire/src/ImplicitlyBoundMethod.php',
'Livewire\\Livewire' => __DIR__ . '/..' . '/livewire/livewire/src/Livewire.php',
'Livewire\\LivewireManager' => __DIR__ . '/..' . '/livewire/livewire/src/LivewireManager.php',
'Livewire\\LivewireServiceProvider' => __DIR__ . '/..' . '/livewire/livewire/src/LivewireServiceProvider.php',
'Livewire\\Mechanisms\\CompileLivewireTags' => __DIR__ . '/..' . '/livewire/livewire/src/Mechanisms/CompileLivewireTags.php',
'Livewire\\Mechanisms\\ComponentRegistry' => __DIR__ . '/..' . '/livewire/livewire/src/Mechanisms/ComponentRegistry.php',
'Livewire\\Mechanisms\\DataStore' => __DIR__ . '/..' . '/livewire/livewire/src/Mechanisms/DataStore.php',
'Livewire\\Mechanisms\\ExtendBlade\\ExtendBlade' => __DIR__ . '/..' . '/livewire/livewire/src/Mechanisms/ExtendBlade/ExtendBlade.php',
'Livewire\\Mechanisms\\ExtendBlade\\ExtendedCompilerEngine' => __DIR__ . '/..' . '/livewire/livewire/src/Mechanisms/ExtendBlade/ExtendedCompilerEngine.php',
'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets' => __DIR__ . '/..' . '/livewire/livewire/src/Mechanisms/FrontendAssets/FrontendAssets.php',
'Livewire\\Mechanisms\\HandleComponents\\BaseRenderless' => __DIR__ . '/..' . '/livewire/livewire/src/Mechanisms/HandleComponents/BaseRenderless.php',
'Livewire\\Mechanisms\\HandleComponents\\Checksum' => __DIR__ . '/..' . '/livewire/livewire/src/Mechanisms/HandleComponents/Checksum.php',
'Livewire\\Mechanisms\\HandleComponents\\ComponentContext' => __DIR__ . '/..' . '/livewire/livewire/src/Mechanisms/HandleComponents/ComponentContext.php',
'Livewire\\Mechanisms\\HandleComponents\\CorruptComponentPayloadException' => __DIR__ . '/..' . '/livewire/livewire/src/Mechanisms/HandleComponents/CorruptComponentPayloadException.php',
'Livewire\\Mechanisms\\HandleComponents\\HandleComponents' => __DIR__ . '/..' . '/livewire/livewire/src/Mechanisms/HandleComponents/HandleComponents.php',
'Livewire\\Mechanisms\\HandleComponents\\Synthesizers\\ArraySynth' => __DIR__ . '/..' . '/livewire/livewire/src/Mechanisms/HandleComponents/Synthesizers/ArraySynth.php',
'Livewire\\Mechanisms\\HandleComponents\\Synthesizers\\CarbonSynth' => __DIR__ . '/..' . '/livewire/livewire/src/Mechanisms/HandleComponents/Synthesizers/CarbonSynth.php',
'Livewire\\Mechanisms\\HandleComponents\\Synthesizers\\CollectionSynth' => __DIR__ . '/..' . '/livewire/livewire/src/Mechanisms/HandleComponents/Synthesizers/CollectionSynth.php',
'Livewire\\Mechanisms\\HandleComponents\\Synthesizers\\EnumSynth' => __DIR__ . '/..' . '/livewire/livewire/src/Mechanisms/HandleComponents/Synthesizers/EnumSynth.php',
'Livewire\\Mechanisms\\HandleComponents\\Synthesizers\\IntSynth' => __DIR__ . '/..' . '/livewire/livewire/src/Mechanisms/HandleComponents/Synthesizers/IntSynth.php',
'Livewire\\Mechanisms\\HandleComponents\\Synthesizers\\StdClassSynth' => __DIR__ . '/..' . '/livewire/livewire/src/Mechanisms/HandleComponents/Synthesizers/StdClassSynth.php',
'Livewire\\Mechanisms\\HandleComponents\\Synthesizers\\StringableSynth' => __DIR__ . '/..' . '/livewire/livewire/src/Mechanisms/HandleComponents/Synthesizers/StringableSynth.php',
'Livewire\\Mechanisms\\HandleComponents\\Synthesizers\\Synth' => __DIR__ . '/..' . '/livewire/livewire/src/Mechanisms/HandleComponents/Synthesizers/Synth.php',
'Livewire\\Mechanisms\\HandleComponents\\ViewContext' => __DIR__ . '/..' . '/livewire/livewire/src/Mechanisms/HandleComponents/ViewContext.php',
'Livewire\\Mechanisms\\HandleRequests\\HandleRequests' => __DIR__ . '/..' . '/livewire/livewire/src/Mechanisms/HandleRequests/HandleRequests.php',
'Livewire\\Mechanisms\\PersistentMiddleware\\PersistentMiddleware' => __DIR__ . '/..' . '/livewire/livewire/src/Mechanisms/PersistentMiddleware/PersistentMiddleware.php',
'Livewire\\Mechanisms\\RenderComponent' => __DIR__ . '/..' . '/livewire/livewire/src/Mechanisms/RenderComponent.php',
'Livewire\\Pipe' => __DIR__ . '/..' . '/livewire/livewire/src/Pipe.php',
'Livewire\\Transparency' => __DIR__ . '/..' . '/livewire/livewire/src/Transparency.php',
'Livewire\\WireDirective' => __DIR__ . '/..' . '/livewire/livewire/src/WireDirective.php',
'Livewire\\Wireable' => __DIR__ . '/..' . '/livewire/livewire/src/Wireable.php',
'Livewire\\WithFileUploads' => __DIR__ . '/..' . '/livewire/livewire/src/WithFileUploads.php',
'Livewire\\WithPagination' => __DIR__ . '/..' . '/livewire/livewire/src/WithPagination.php',
'Livewire\\Wrapped' => __DIR__ . '/..' . '/livewire/livewire/src/Wrapped.php',
'Matrix\\Builder' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/Builder.php', 'Matrix\\Builder' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/Builder.php',
'Matrix\\Decomposition\\Decomposition' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/Decomposition/Decomposition.php', 'Matrix\\Decomposition\\Decomposition' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/Decomposition/Decomposition.php',
'Matrix\\Decomposition\\LU' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/Decomposition/LU.php', 'Matrix\\Decomposition\\LU' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/Decomposition/LU.php',

View File

@ -2332,6 +2332,82 @@
], ],
"install-path": "../league/mime-type-detection" "install-path": "../league/mime-type-detection"
}, },
{
"name": "livewire/livewire",
"version": "v3.0.1",
"version_normalized": "3.0.1.0",
"source": {
"type": "git",
"url": "https://github.com/livewire/livewire.git",
"reference": "2e426e8d47e03c4777334ec0c8397341bcfa15f3"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/livewire/livewire/zipball/2e426e8d47e03c4777334ec0c8397341bcfa15f3",
"reference": "2e426e8d47e03c4777334ec0c8397341bcfa15f3",
"shasum": ""
},
"require": {
"illuminate/database": "^10.0|^11.0",
"illuminate/support": "^10.0|^11.0",
"illuminate/validation": "^10.0|^11.0",
"league/mime-type-detection": "^1.9",
"php": "^8.1",
"symfony/http-kernel": "^5.0|^6.0"
},
"require-dev": {
"calebporzio/sushi": "^2.1",
"laravel/framework": "^10.0|^11.0",
"mockery/mockery": "^1.3.1",
"orchestra/testbench": "^7.0|^8.0",
"orchestra/testbench-dusk": "^7.0|^8.0",
"phpunit/phpunit": "^9.0",
"psy/psysh": "@stable"
},
"time": "2023-08-25T18:13:03+00:00",
"type": "library",
"extra": {
"laravel": {
"providers": [
"Livewire\\LivewireServiceProvider"
],
"aliases": {
"Livewire": "Livewire\\Livewire"
}
}
},
"installation-source": "dist",
"autoload": {
"files": [
"src/helpers.php"
],
"psr-4": {
"Livewire\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Caleb Porzio",
"email": "calebporzio@gmail.com"
}
],
"description": "A front-end framework for Laravel.",
"support": {
"issues": "https://github.com/livewire/livewire/issues",
"source": "https://github.com/livewire/livewire/tree/v3.0.1"
},
"funding": [
{
"url": "https://github.com/livewire",
"type": "github"
}
],
"install-path": "../livewire/livewire"
},
{ {
"name": "maennchen/zipstream-php", "name": "maennchen/zipstream-php",
"version": "v2.4.0", "version": "v2.4.0",

View File

@ -3,7 +3,7 @@
'name' => 'laravel/laravel', 'name' => 'laravel/laravel',
'pretty_version' => 'dev-master', 'pretty_version' => 'dev-master',
'version' => 'dev-master', 'version' => 'dev-master',
'reference' => '4e737a48bd2c0aa3e6c6280aa95097119540e5ec', 'reference' => 'bf4426cb8465f6ab1b88f8c25c63ca8a2e6a478c',
'type' => 'project', 'type' => 'project',
'install_path' => __DIR__ . '/../../', 'install_path' => __DIR__ . '/../../',
'aliases' => array(), 'aliases' => array(),
@ -409,7 +409,7 @@
'laravel/laravel' => array( 'laravel/laravel' => array(
'pretty_version' => 'dev-master', 'pretty_version' => 'dev-master',
'version' => 'dev-master', 'version' => 'dev-master',
'reference' => '4e737a48bd2c0aa3e6c6280aa95097119540e5ec', 'reference' => 'bf4426cb8465f6ab1b88f8c25c63ca8a2e6a478c',
'type' => 'project', 'type' => 'project',
'install_path' => __DIR__ . '/../../', 'install_path' => __DIR__ . '/../../',
'aliases' => array(), 'aliases' => array(),
@ -496,6 +496,15 @@
'aliases' => array(), 'aliases' => array(),
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'livewire/livewire' => array(
'pretty_version' => 'v3.0.1',
'version' => '3.0.1.0',
'reference' => '2e426e8d47e03c4777334ec0c8397341bcfa15f3',
'type' => 'library',
'install_path' => __DIR__ . '/../livewire/livewire',
'aliases' => array(),
'dev_requirement' => false,
),
'maennchen/zipstream-php' => array( 'maennchen/zipstream-php' => array(
'pretty_version' => 'v2.4.0', 'pretty_version' => 'v2.4.0',
'version' => '2.4.0.0', 'version' => '2.4.0.0',

9
vendor/livewire/livewire/LICENSE.md vendored Normal file
View File

@ -0,0 +1,9 @@
## MIT License
Copyright © Caleb Porzio
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

41
vendor/livewire/livewire/README.md vendored Normal file
View File

@ -0,0 +1,41 @@
<p align="center"><img width="300" src="/art/readme_logo.png" alt="Livewire Logo"></p>
<p align="center">
<a href="https://packagist.org/packages/livewire/livewire">
<img src="https://poser.pugx.org/livewire/livewire/d/total.svg" alt="Total Downloads">
</a>
<a href="https://packagist.org/packages/livewire/livewire">
<img src="https://poser.pugx.org/livewire/livewire/v/stable.svg" alt="Latest Stable Version">
</a>
<a href="https://packagist.org/packages/livewire/livewire">
<img src="https://poser.pugx.org/livewire/livewire/license.svg" alt="License">
</a>
</p>
## Introduction
Livewire is a full-stack framework for Laravel that allows you to build dynamic UI components without leaving PHP.
## Official Documentation
You can read the official documentation on the [Livewire website](https://livewire.laravel.com/docs).
## Contributing
<a name="contributing"></a>
Thank you for considering contributing to Livewire! You can read the contribution guide [here](.github/CONTRIBUTING.md).
## Code of Conduct
<a name="code-of-conduct"></a>
In order to ensure that the Laravel community is welcoming to all, please review and abide by Laravel's [Code of Conduct](https://laravel.com/docs/contributions#code-of-conduct).
## Security Vulnerabilities
<a name="security-vulnerabilities"></a>
Please review [our security policy](https://github.com/livewire/livewire/security/policy) on how to report security vulnerabilities.
## License
<a name="license"></a>
Livewire is open-sourced software licensed under the [MIT license](LICENSE.md).

55
vendor/livewire/livewire/composer.json vendored Normal file
View File

@ -0,0 +1,55 @@
{
"name": "livewire/livewire",
"description": "A front-end framework for Laravel.",
"license": "MIT",
"authors": [
{
"name": "Caleb Porzio",
"email": "calebporzio@gmail.com"
}
],
"require": {
"php": "^8.1",
"symfony/http-kernel": "^5.0|^6.0",
"illuminate/support": "^10.0|^11.0",
"illuminate/database": "^10.0|^11.0",
"illuminate/validation": "^10.0|^11.0",
"league/mime-type-detection": "^1.9"
},
"require-dev": {
"psy/psysh": "@stable",
"mockery/mockery": "^1.3.1",
"phpunit/phpunit": "^9.0",
"laravel/framework": "^10.0|^11.0",
"orchestra/testbench": "^7.0|^8.0",
"orchestra/testbench-dusk": "^7.0|^8.0",
"calebporzio/sushi": "^2.1"
},
"autoload": {
"files": [
"src/helpers.php"
],
"psr-4": {
"Livewire\\": "src/"
}
},
"autoload-dev": {
"psr-4": {
"App\\": "vendor/orchestra/testbench-core/laravel/app",
"Tests\\": "tests/",
"LegacyTests\\": "legacy_tests/"
}
},
"extra": {
"laravel": {
"providers": [
"Livewire\\LivewireServiceProvider"
],
"aliases": {
"Livewire": "Livewire\\Livewire"
}
}
},
"minimum-stability": "dev",
"prefer-stable": true
}

View File

@ -0,0 +1,158 @@
<?php
return [
/*
|---------------------------------------------------------------------------
| Class Namespace
|---------------------------------------------------------------------------
|
| This value sets the root class namespace for Livewire component classes in
| your application. This value will change where component auto-discovery
| finds components. It's also referenced by the file creation commands.
|
*/
'class_namespace' => 'App\\Livewire',
/*
|---------------------------------------------------------------------------
| View Path
|---------------------------------------------------------------------------
|
| This value is used to specify where Livewire component Blade templates are
| stored when running file creation commands like `artisan make:livewire`.
| It is also used if you choose to omit a component's render() method.
|
*/
'view_path' => resource_path('views/livewire'),
/*
|---------------------------------------------------------------------------
| Layout
|---------------------------------------------------------------------------
| The view that will be used as the layout when rendering a single component
| as an entire page via `Route::get('/post/create', CreatePost::class);`.
| In this case, the view returned by CreatePost will render into $slot.
|
*/
'layout' => 'components.layouts.app',
/*
|---------------------------------------------------------------------------
| Lazy Loading Placeholder
|---------------------------------------------------------------------------
| Livewire allows you to lazy load components that would otherwise slow down
| the initial page load. Every component can have a custom placeholder or
| you can define the default placeholder view for all components below.
|
*/
'lazy_placeholder' => null,
/*
|---------------------------------------------------------------------------
| Temporary File Uploads
|---------------------------------------------------------------------------
|
| Livewire handles file uploads by storing uploads in a temporary directory
| before the file is stored permanently. All file uploads are directed to
| a global endpoint for temporary storage. You may configure this below:
|
*/
'temporary_file_upload' => [
'disk' => null, // Example: 'local', 's3' | Default: 'default'
'rules' => null, // Example: ['file', 'mimes:png,jpg'] | Default: ['required', 'file', 'max:12288'] (12MB)
'directory' => null, // Example: 'tmp' | Default: 'livewire-tmp'
'middleware' => null, // Example: 'throttle:5,1' | Default: 'throttle:60,1'
'preview_mimes' => [ // Supported file types for temporary pre-signed file URLs...
'png', 'gif', 'bmp', 'svg', 'wav', 'mp4',
'mov', 'avi', 'wmv', 'mp3', 'm4a',
'jpg', 'jpeg', 'mpga', 'webp', 'wma',
],
'max_upload_time' => 5, // Max duration (in minutes) before an upload is invalidated...
],
/*
|---------------------------------------------------------------------------
| Render On Redirect
|---------------------------------------------------------------------------
|
| This value determines if Livewire will run a component's `render()` method
| after a redirect has been triggered using something like `redirect(...)`
| Setting this to true will render the view once more before redirecting
|
*/
'render_on_redirect' => false,
/*
|---------------------------------------------------------------------------
| Eloquent Model Binding
|---------------------------------------------------------------------------
|
| Previous versions of Livewire supported binding directly to eloquent model
| properties using wire:model by default. However, this behavior has been
| deemed too "magical" and has therefore been put under a feature flag.
|
*/
'legacy_model_binding' => false,
/*
|---------------------------------------------------------------------------
| Auto-inject Frontend Assets
|---------------------------------------------------------------------------
|
| By default, Livewire automatically injects its JavaScript and CSS into the
| <head> and <body> of pages containing Livewire components. By disabling
| this behavior, you need to use @livewireStyles and @livewireScripts.
|
*/
'inject_assets' => true,
/*
|---------------------------------------------------------------------------
| Navigate (SPA mode)
|---------------------------------------------------------------------------
|
| By adding `wire:navigate` to links in your Livewire application, Livewire
| will prevent the default link handling and instead request those pages
| via AJAX, creating an SPA-like effect. Configure this behavior here.
|
*/
'navigate' => [
'show_progress_bar' => true,
],
/*
|---------------------------------------------------------------------------
| HTML Morph Markers
|---------------------------------------------------------------------------
|
| Livewire intelligently "morphs" existing HTML into the newly rendered HTML
| after each update. To make this process more reliable, Livewire injects
| "markers" into the rendered Blade surrounding @if, @class & @foreach.
|
*/
'inject_morph_markers' => true,
/*
|---------------------------------------------------------------------------
| Pagination Theme
|---------------------------------------------------------------------------
|
| When enabling Livewire's pagination feature by using the `WithPagination`
| trait, Livewire will use Tailwind templates to render pagination views
| on the page. If you want Bootstrap CSS, you can specify: "bootstrap"
|
*/
'pagination_theme' => 'tailwind',
];

File diff suppressed because it is too large Load Diff

7599
vendor/livewire/livewire/dist/livewire.js vendored Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,2 @@
{"/livewire.js":"11c49d7e"}

View File

@ -0,0 +1,10 @@
<?php
namespace Livewire;
use Livewire\Features\SupportAttributes\Attribute as BaseAttribute;
abstract class Attribute extends BaseAttribute
{
//
}

View File

@ -0,0 +1,11 @@
<?php
namespace Livewire\Attributes;
use Livewire\Features\SupportComputed\BaseComputed;
#[\Attribute]
class Computed extends BaseComputed
{
//
}

View File

@ -0,0 +1,11 @@
<?php
namespace Livewire\Attributes;
use Livewire\Features\SupportJsEvaluation\BaseJs;
#[\Attribute]
class Js extends BaseJs
{
//
}

View File

@ -0,0 +1,11 @@
<?php
namespace Livewire\Attributes;
use Livewire\Features\SupportPageComponents\BaseLayout;
#[\Attribute]
class Layout extends BaseLayout
{
//
}

View File

@ -0,0 +1,11 @@
<?php
namespace Livewire\Attributes;
use Livewire\Features\SupportLazyLoading\BaseLazy;
#[\Attribute]
class Lazy extends BaseLazy
{
//
}

View File

@ -0,0 +1,11 @@
<?php
namespace Livewire\Attributes;
use Livewire\Features\SupportLockedProperties\BaseLocked;
#[\Attribute]
class Locked extends BaseLocked
{
//
}

View File

@ -0,0 +1,11 @@
<?php
namespace Livewire\Attributes;
use Livewire\Features\SupportWireModelingNestedComponents\BaseModelable;
#[\Attribute]
class Modelable extends BaseModelable
{
//
}

View File

@ -0,0 +1,12 @@
<?php
namespace Livewire\Attributes;
use Attribute;
use Livewire\Features\SupportEvents\BaseOn;
#[Attribute(Attribute::IS_REPEATABLE | Attribute::TARGET_METHOD)]
class On extends BaseOn
{
//
}

View File

@ -0,0 +1,11 @@
<?php
namespace Livewire\Attributes;
use Livewire\Features\SupportReactiveProps\BaseReactive;
#[\Attribute]
class Reactive extends BaseReactive
{
//
}

View File

@ -0,0 +1,11 @@
<?php
namespace Livewire\Attributes;
use Livewire\Mechanisms\HandleComponents\BaseRenderless;
#[\Attribute]
class Renderless extends BaseRenderless
{
//
}

View File

@ -0,0 +1,13 @@
<?php
namespace Livewire\Attributes;
use Attribute;
use Livewire\Features\SupportValidation\BaseRule;
#[Attribute(Attribute::IS_REPEATABLE | Attribute::TARGET_ALL)]
class Rule extends BaseRule
{
//
}

View File

@ -0,0 +1,11 @@
<?php
namespace Livewire\Attributes;
use Livewire\Features\SupportPageComponents\BaseTitle;
#[\Attribute]
class Title extends BaseTitle
{
//
}

View File

@ -0,0 +1,11 @@
<?php
namespace Livewire\Attributes;
use Livewire\Features\SupportQueryString\BaseUrl;
#[\Attribute]
class Url extends BaseUrl
{
//
}

View File

@ -0,0 +1,138 @@
<?php
namespace Livewire;
use Livewire\Features\SupportDisablingBackButtonCache\HandlesDisablingBackButtonCache;
use Livewire\Features\SupportPageComponents\HandlesPageComponents;
use Livewire\Features\SupportJsEvaluation\HandlesJsEvaluation;
use Livewire\Features\SupportAttributes\HandlesAttributes;
use Livewire\Features\SupportValidation\HandlesValidation;
use Livewire\Features\SupportStreaming\HandlesStreaming;
use Livewire\Features\SupportRedirects\HandlesRedirects;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Livewire\Features\SupportEvents\HandlesEvents;
use Livewire\Exceptions\PropertyNotFoundException;
use Livewire\Concerns\InteractsWithProperties;
use Illuminate\Support\Traits\Macroable;
use BadMethodCallException;
abstract class Component
{
use Macroable { __call as macroCall; }
use AuthorizesRequests;
use InteractsWithProperties;
use HandlesEvents;
use HandlesRedirects;
use HandlesStreaming;
use HandlesAttributes;
use HandlesValidation;
use HandlesJsEvaluation;
use HandlesPageComponents;
use HandlesDisablingBackButtonCache;
protected $__id;
protected $__name;
function id()
{
return $this->getId();
}
function setId($id)
{
$this->__id = $id;
}
function getId()
{
return $this->__id;
}
function setName($name)
{
$this->__name = $name;
}
function getName()
{
return $this->__name;
}
function skipRender($html = null)
{
store($this)->set('skipRender', $html ?: true);
}
function skipMount()
{
store($this)->set('skipMount', true);
}
function skipHydrate()
{
store($this)->set('skipHydrate', true);
}
function __isset($property)
{
try {
$value = $this->__get($property);
if (isset($value)) {
return true;
}
} catch(PropertyNotFoundException $ex) {}
return false;
}
function __get($property)
{
$value = 'noneset';
$returnValue = function ($newValue) use (&$value) {
$value = $newValue;
};
$finish = trigger('__get', $this, $property, $returnValue);
$value = $finish($value);
if ($value === 'noneset') {
throw new PropertyNotFoundException($property, $this->getName());
}
return $value;
}
function __unset($property)
{
trigger('__unset', $this, $property);
}
function __call($method, $params)
{
$value = 'noneset';
$returnValue = function ($newValue) use (&$value) {
$value = $newValue;
};
$finish = trigger('__call', $this, $method, $params, $returnValue);
$value = $finish($value);
if ($value !== 'noneset') {
return $value;
}
if (static::hasMacro($method)) {
return $this->macroCall($method, $params);
}
throw new BadMethodCallException(sprintf(
'Method %s::%s does not exist.', static::class, $method
));
}
}

View File

@ -0,0 +1,103 @@
<?php
namespace Livewire;
abstract class ComponentHook
{
protected $component;
function setComponent($component)
{
$this->component = $component;
}
function callBoot(...$params) {
if (method_exists($this, 'boot')) $this->boot(...$params);
}
function callMount(...$params) {
if (method_exists($this, 'mount')) $this->mount(...$params);
}
function callHydrate(...$params) {
if (method_exists($this, 'hydrate')) $this->hydrate(...$params);
}
function callUpdate($propertyName, $fullPath, $newValue) {
$callbacks = [];
if (method_exists($this, 'update')) $callbacks[] = $this->update($propertyName, $fullPath, $newValue);
return function (...$params) use ($callbacks) {
foreach ($callbacks as $callback) {
if (is_callable($callback)) $callback(...$params);
}
};
}
function callCall($method, $params, $returnEarly) {
$callbacks = [];
if (method_exists($this, 'call')) $callbacks[] = $this->call($method, $params, $returnEarly);
return function (...$params) use ($callbacks) {
foreach ($callbacks as $callback) {
if (is_callable($callback)) $callback(...$params);
}
};
}
function callRender(...$params) {
$callbacks = [];
if (method_exists($this, 'render')) $callbacks[] = $this->render(...$params);
return function (...$params) use ($callbacks) {
foreach ($callbacks as $callback) {
if (is_callable($callback)) $callback(...$params);
}
};
}
function callDehydrate(...$params) {
if (method_exists($this, 'dehydrate')) $this->dehydrate(...$params);
}
function callDestroy(...$params) {
if (method_exists($this, 'destroy')) $this->destroy(...$params);
}
function callException(...$params) {
if (method_exists($this, 'exception')) $this->exception(...$params);
}
function getProperties()
{
return $this->component->all();
}
function getProperty($name)
{
return data_get($this->getProperties(), $name);
}
function storeSet($key, $value)
{
store($this->component)->set($key, $value);
}
function storePush($key, $value, $iKey = null)
{
store($this->component)->push($key, $value, $iKey);
}
function storeGet($key, $default = null)
{
return store($this->component)->get($key, $default);
}
function storeHas($key)
{
return store($this->component)->has($key);
}
}

View File

@ -0,0 +1,105 @@
<?php
namespace Livewire;
use WeakMap;
use Livewire\Drawer\Utils;
class ComponentHookRegistry
{
protected static $components;
protected static $componentHooks = [];
static function register($hook)
{
if (method_exists($hook, 'provide')) $hook::provide();
if (in_array($hook, static::$componentHooks)) return;
static::$componentHooks[] = $hook;
}
static function getHook($component, $hook)
{
if (! isset(static::$components[$component])) return;
$componentHooks = static::$components[$component];
foreach ($componentHooks as $componentHook) {
if ($componentHook instanceof $hook) return $componentHook;
}
}
static function boot()
{
static::$components = new WeakMap;
foreach (static::$componentHooks as $hook) {
on('mount', function ($component, $params, $key, $parent) use ($hook) {
$hook = static::initializeHook($hook, $component);
$hook->callBoot();
$hook->callMount($params, $parent);
});
on('hydrate', function ($component, $memo) use ($hook) {
$hook = static::initializeHook($hook, $component);
$hook->callBoot();
$hook->callHydrate($memo);
});
}
on('update', function ($component, $fullPath, $newValue) {
$propertyName = Utils::beforeFirstDot($fullPath);
return static::proxyCallToHooks($component, 'callUpdate')($propertyName, $fullPath, $newValue);
});
on('call', function ($component, $method, $params, $addEffect, $earlyReturn) {
return static::proxyCallToHooks($component, 'callCall')($method, $params, $earlyReturn);
});
on('render', function ($component, $view, $data) {
return static::proxyCallToHooks($component, 'callRender')($view, $data);
});
on('dehydrate', function ($component, $context) {
static::proxyCallToHooks($component, 'callDehydrate')($context);
});
on('destroy', function ($component, $context) {
static::proxyCallToHooks($component, 'callDestroy')($context);
});
on('exception', function ($component, $e, $stopPropagation) {
static::proxyCallToHooks($component, 'callException')($e, $stopPropagation);
});
}
static public function initializeHook($hook, $target)
{
if (! isset(static::$components[$target])) static::$components[$target] = [];
static::$components[$target][] = $hook = new $hook;
$hook->setComponent($target);
return tap($hook)->setComponent($target);
}
static function proxyCallToHooks($target, $method) {
return function (...$params) use ($target, $method) {
$callbacks = [];
foreach (static::$components[$target] ?? [] as $hook) {
$callbacks[] = $hook->{$method}(...$params);
}
return function (...$forwards) use ($callbacks) {
foreach ($callbacks as $callback) {
$callback(...$forwards);
}
};
};
}
}

View File

@ -0,0 +1,102 @@
<?php
namespace Livewire\Concerns;
use Illuminate\Database\Eloquent\Model;
use Livewire\Drawer\Utils;
trait InteractsWithProperties
{
public function hasProperty($prop)
{
return property_exists($this, Utils::beforeFirstDot($prop));
}
public function getPropertyValue($name)
{
$value = $this->{Utils::beforeFirstDot($name)};
if (Utils::containsDots($name)) {
return data_get($value, Utils::afterFirstDot($name));
}
return $value;
}
public function fill($values)
{
$publicProperties = array_keys($this->all());
if ($values instanceof Model) {
$values = $values->toArray();
}
foreach ($values as $key => $value) {
if (in_array(Utils::beforeFirstDot($key), $publicProperties)) {
data_set($this, $key, $value);
}
}
}
public function reset(...$properties)
{
$properties = count($properties) && is_array($properties[0])
? $properties[0]
: $properties;
// Reset all
if (empty($properties)) {
$properties = array_keys($this->all());
}
$freshInstance = new static;
foreach ($properties as $property) {
$defaultValue = data_get($freshInstance, $property);
$unset = '__unset__';
$unsetByDefault = !$defaultValue && $unset === data_get($freshInstance, $property, $unset);
// Handle resetting properties that are unset by default.
if ($unsetByDefault) {
data_forget($this, $property);
continue;
}
data_set($this, $property, $defaultValue);
}
}
protected function resetExcept(...$properties)
{
if (count($properties) && is_array($properties[0])) {
$properties = $properties[0];
}
$keysToReset = array_diff(array_keys($this->all()), $properties);
$this->reset($keysToReset);
}
public function only($properties)
{
$results = [];
foreach ($properties as $property) {
$results[$property] = $this->hasProperty($property) ? $this->getPropertyValue($property) : null;
}
return $results;
}
public function except($properties)
{
if (! is_array($properties)) $properties = [$properties];
return array_diff_key($this->all(), array_flip($properties));
}
public function all()
{
return Utils::getPublicPropertiesDefinedOnSubclass($this);
}
}

View File

@ -0,0 +1,96 @@
<?php
namespace Livewire\Drawer;
use ReflectionClass;
class BaseUtils
{
static function isSyntheticTuple($payload) {
return is_array($payload)
&& count($payload) === 2
&& isset($payload[1]['s']);
}
static function isAPrimitive($target) {
return
is_numeric($target) ||
is_string($target) ||
is_bool($target) ||
is_null($target);
}
static function getPublicPropertiesDefinedOnSubclass($target) {
return static::getPublicProperties($target, function ($property) {
// Filter out any properties from the first-party Component class...
return $property->getDeclaringClass()->getName() !== \Livewire\Component::class;
});
}
static function getPublicProperties($target, $filter = null)
{
return collect((new \ReflectionObject($target))->getProperties())
->filter(function ($property) {
return $property->isPublic() && ! $property->isStatic() && $property->isDefault();
})
->filter($filter ?? fn () => true)
->mapWithKeys(function ($property) use ($target) {
// Ensures typed property is initialized in PHP >=7.4, if so, return its value,
// if not initialized, return null (as expected in earlier PHP Versions)
if (method_exists($property, 'isInitialized') && !$property->isInitialized($target)) {
// If a type of `array` is given with no value, let's assume users want
// it prefilled with an empty array...
$value = (method_exists($property, 'getType') && $property->getType() && method_exists($property->getType(), 'getName') && $property->getType()->getName() === 'array')
? [] : null;
} else {
$value = $property->getValue($target);
}
return [$property->getName() => $value];
})
->all();
}
static function getPublicMethodsDefinedBySubClass($target)
{
$methods = array_filter((new \ReflectionObject($target))->getMethods(), function ($method) {
$isInBaseComponentClass = $method->getDeclaringClass()->getName() === \Livewire\Component::class;
return $method->isPublic()
&& ! $method->isStatic()
&& ! $isInBaseComponentClass;
});
return array_map(function ($method) {
return $method->getName();
}, $methods);
}
static function hasAttribute($target, $property, $attributeClass) {
$property = static::getProperty($target, $property);
foreach ($property->getAttributes() as $attribute) {
$instance = $attribute->newInstance();
if ($instance instanceof $attributeClass) return true;
}
return false;
}
static function getProperty($target, $property) {
return (new ReflectionClass($target))->getProperty($property);
}
static function propertyIsTyped($target, $property) {
$property = static::getProperty($target, $property);
return $property->hasType();
}
static function propertyIsTypedAndUninitialized($target, $property) {
$property = static::getProperty($target, $property);
return $property->hasType() && (! $property->isInitialized($target));
}
}

View File

@ -0,0 +1,112 @@
<?php
namespace Livewire\Drawer;
use ReflectionMethod;
use Livewire\Component;
use Illuminate\Support\Reflector;
use Illuminate\Support\Collection;
use Illuminate\Routing\Route;
use Illuminate\Database\Eloquent\ModelNotFoundException;
use Illuminate\Contracts\Routing\UrlRoutable;
use Livewire\Drawer\Utils;
/**
* This class mirrors the functionality of Laravel's Illuminate\Routing\ImplicitRouteBinding class.
*/
class ImplicitRouteBinding
{
protected $container;
public function __construct($container)
{
$this->container = $container;
}
public function resolveAllParameters(Route $route, Component $component)
{
$params = $this->resolveMountParameters($route, $component);
$props = $this->resolveComponentProps($route, $component);
return $params->merge($props)->all();
}
public function resolveMountParameters(Route $route, Component $component)
{
if (! method_exists($component, 'mount')) {
return new Collection();
}
// Cache the current route action (this callback actually), just to be safe.
$cache = $route->getAction('uses');
// We'll set the route action to be the "mount" method from the chosen
// Livewire component, to get the proper implicit bindings.
$route->uses(get_class($component).'@mount');
// This is normally handled in the "SubstituteBindings" middleware, but
// because that middleware has already ran, we need to run them again.
$this->container['router']->substituteImplicitBindings($route);
$parameters = $route->resolveMethodDependencies($route->parameters(), new ReflectionMethod($component, 'mount'));
// Restore the original route action.
$route->uses($cache);
return new Collection($parameters);
}
public function resolveComponentProps(Route $route, Component $component)
{
return $this->getPublicPropertyTypes($component)
->intersectByKeys($route->parametersWithoutNulls())
->map(function ($className, $propName) use ($route) {
// If typed public property, resolve the class
if($className) {
$resolved = $this->resolveParameter($route, $propName, $className);
// We'll also pass the resolved model back to the route
// so that it can be used for any depending on bindings
$route->setParameter($propName, $resolved);
return $resolved;
}
// Otherwise, just return the route parameter
return $route->parameter($propName);
});
}
public function getPublicPropertyTypes($component)
{
return collect(Utils::getPublicPropertiesDefinedOnSubclass($component))
->map(function ($value, $name) use ($component) {
return Reflector::getParameterClassName(new \ReflectionProperty($component, $name));
});
}
protected function resolveParameter($route, $parameterName, $parameterClassName)
{
$parameterValue = $route->parameter($parameterName);
if ($parameterValue instanceof UrlRoutable) {
return $parameterValue;
}
$instance = $this->container->make($parameterClassName);
$parent = $route->parentOfParameter($parameterName);
if ($parent instanceof UrlRoutable && array_key_exists($parameterName, $route->bindingFields())) {
if (! $model = $parent->resolveChildRouteBinding(
$parameterName, $parameterValue, $route->bindingFieldFor($parameterName)
)) {
throw (new ModelNotFoundException())->setModel(get_class($instance), [$parameterValue]);
}
} elseif (! $model = $instance->resolveRouteBinding($parameterValue, $route->bindingFieldFor($parameterName))) {
throw (new ModelNotFoundException())->setModel(get_class($instance), [$parameterValue]);
}
return $model;
}
}

View File

@ -0,0 +1,169 @@
<?php
namespace Livewire\Drawer;
class Regexes
{
static $livewireOpeningTag = "
<
\s*
livewire[-\:]([\w\-\:\.]*)
(?<attributes>
(?:
\s+
(?:
(?:
@(?:class)(\( (?: (?>[^()]+) | (?-1) )* \))
)
|
(?:
\{\{\s*\\\$attributes(?:[^}]+?)?\s*\}\}
)
|
(?:
[\w\-:.@]+
(
=
(?:
\\\"[^\\\"]*\\\"
|
\'[^\']*\'
|
[^\'\\\"=<>]+
)
)?
)
)
)*
\s*
)
(?<![\/=\-])
>
";
static $livewireOpeningTagOrSelfClosingTag = "
<
\s*
livewire[-\:]([\w\-\:\.]*)
(?<attributes>
(?:
\s+
(?:
(?:
@(?:class)(\( (?: (?>[^()]+) | (?-1) )* \))
)
|
(?:
\{\{\s*\\\$attributes(?:[^}]+?)?\s*\}\}
)
|
(?:
[:][$][\w]+
)
|
(?:
[\w\-:.@]+
(
=
(?:
\\\"[^\\\"]*\\\"
|
\'[^\']*\'
|
[^\'\\\"=<>]+
)
)?
)
)
)*
\s*
)
\/?>
";
static $livewireSelfClosingTag = "
<
\s*
livewire[-\:]([\w\-\:\.]*)
\s*
(?<attributes>
(?:
\s+
(?:
(?:
@(?:class)(\( (?: (?>[^()]+) | (?-1) )* \))
)
|
(?:
\{\{\s*\\\$attributes(?:[^}]+?)?\s*\}\}
)
|
(?:
[\w\-:.@]+
(
=
(?:
\\\"[^\\\"]*\\\"
|
\'[^\']*\'
|
[^\'\\\"=<>]+
)
)?
)
)
)*
\s*
)
\/>
";
static $livewireClosingTag = "<\/\s*livewire[-\:][\w\-\:\.]*\s*>";
static $slotOpeningTag = "
<
\s*
x[\-\:]slot
(?:\:(?<inlineName>\w+(?:-\w+)*))?
(?:\s+(:?)name=(?<name>(\"[^\"]+\"|\\\'[^\\\']+\\\'|[^\s>]+)))?
(?<attributes>
(?:
\s+
(?:
(?:
@(?:class)(\( (?: (?>[^()]+) | (?-1) )* \))
)
|
(?:
\{\{\s*\\\$attributes(?:[^}]+?)?\s*\}\}
)
|
(?:
[\w\-:.@]+
(
=
(?:
\\\"[^\\\"]*\\\"
|
\'[^\']*\'
|
[^\'\\\"=<>]+
)
)?
)
)
)*
\s*
)
(?<![\/=\-])
>
";
static $slotClosingTag = "<\/\s*x[\-\:]slot[^>]*>";
static $bladeDirective = "\B@(@?\w+(?:::\w+)?)([ \t]*)(\( ( (?>[^()]+) | (?3) )* \))?";
static function specificBladeDirective($directive) {
return "(@?$directive(?:::\w+)?)([ \t]*)(\( ( (?>[^()]+) | (?3) )* \))";
}
}

View File

@ -0,0 +1,176 @@
<?php
namespace Livewire\Drawer;
use Livewire\Exceptions\RootTagMissingFromViewException;
use function Livewire\invade;
class Utils extends BaseUtils
{
static function insertAttributesIntoHtmlRoot($html, $attributes) {
$attributesFormattedForHtmlElement = static::stringifyHtmlAttributes($attributes);
preg_match('/(?:\n\s*|^\s*)<([a-zA-Z0-9\-]+)/', $html, $matches, PREG_OFFSET_CAPTURE);
throw_unless(
count($matches),
new RootTagMissingFromViewException
);
$tagName = $matches[1][0];
$lengthOfTagName = strlen($tagName);
$positionOfFirstCharacterInTagName = $matches[1][1];
return substr_replace(
$html,
' '.$attributesFormattedForHtmlElement,
$positionOfFirstCharacterInTagName + $lengthOfTagName,
0
);
}
static function stringifyHtmlAttributes($attributes)
{
return collect($attributes)
->mapWithKeys(function ($value, $key) {
return [$key => static::escapeStringForHtml($value)];
})->map(function ($value, $key) {
return sprintf('%s="%s"', $key, $value);
})->implode(' ');
}
static function escapeStringForHtml($subject)
{
if (is_string($subject) || is_numeric($subject)) {
return htmlspecialchars($subject, ENT_QUOTES|ENT_SUBSTITUTE);
}
return htmlspecialchars(json_encode($subject), ENT_QUOTES|ENT_SUBSTITUTE);
}
static function pretendResponseIsFile($file, $mimeType = 'application/javascript')
{
$expires = strtotime('+1 year');
$lastModified = filemtime($file);
$cacheControl = 'public, max-age=31536000';
if (static::matchesCache($lastModified)) {
return response()->make('', 304, [
'Expires' => static::httpDate($expires),
'Cache-Control' => $cacheControl,
]);
}
$headers = [
'Content-Type' => "$mimeType; charset=utf-8",
'Expires' => static::httpDate($expires),
'Cache-Control' => $cacheControl,
'Last-Modified' => static::httpDate($lastModified),
];
if (str($file)->endsWith('.br')) {
$headers['Content-Encoding'] = 'br';
}
return response()->file($file, $headers);
}
static function matchesCache($lastModified)
{
$ifModifiedSince = $_SERVER['HTTP_IF_MODIFIED_SINCE'] ?? '';
return @strtotime($ifModifiedSince) === $lastModified;
}
static function httpDate($timestamp)
{
return sprintf('%s GMT', gmdate('D, d M Y H:i:s', $timestamp));
}
static function containsDots($subject)
{
return str_contains($subject, '.');
}
static function dotSegments($subject)
{
return explode('.', $subject);
}
static function beforeFirstDot($subject)
{
return head(explode('.', $subject));
}
static function afterFirstDot($subject) : string
{
return str($subject)->after('.');
}
static public function hasProperty($target, $property)
{
return property_exists($target, static::beforeFirstDot($property));
}
static public function shareWithViews($name, $value)
{
$old = app('view')->shared($name, 'notfound');
app('view')->share($name, $value);
return $revert = function () use ($name, $old) {
if ($old === 'notfound') {
unset(invade(app('view'))->shared[$name]);
} else {
app('view')->share($name, $old);
}
};
}
static function generateBladeView($subject, $data = [])
{
if (! is_string($subject)) {
return tap($subject)->with($data);
}
$component = new class($subject) extends \Illuminate\View\Component
{
protected $template;
public function __construct($template)
{
$this->template = $template;
}
public function render()
{
return $this->template;
}
};
$view = app('view')->make($component->resolveView(), $data);
return $view;
}
static function applyMiddleware(\Illuminate\Http\Request $request, $middleware = [])
{
return (new \Illuminate\Pipeline\Pipeline(app()))
->send($request)
->through($middleware)
->then(function() {
return new \Illuminate\Http\Response();
});
}
static function extractAttributeDataFromHtml($html, $attribute)
{
$data = (string) str($html)->betweenFirst($attribute.'="', '"');
return json_decode(
htmlspecialchars_decode($data, ENT_QUOTES|ENT_SUBSTITUTE),
associative: true,
);
}
}

View File

@ -0,0 +1,82 @@
<?php
namespace Livewire;
class EventBus
{
protected $listeners = [];
protected $listenersAfter = [];
protected $listenersBefore = [];
function boot()
{
app()->singleton($this::class);
}
function on($name, $callback) {
if (! isset($this->listeners[$name])) $this->listeners[$name] = [];
$this->listeners[$name][] = $callback;
return fn() => $this->off($name, $callback);
}
function before($name, $callback) {
if (! isset($this->listenersBefore[$name])) $this->listenersBefore[$name] = [];
$this->listenersBefore[$name][] = $callback;
return fn() => $this->off($name, $callback);
}
function after($name, $callback) {
if (! isset($this->listenersAfter[$name])) $this->listenersAfter[$name] = [];
$this->listenersAfter[$name][] = $callback;
return fn() => $this->off($name, $callback);
}
function off($name, $callback) {
$index = array_search($callback, $this->listeners[$name] ?? []);
$indexAfter = array_search($callback, $this->listenersAfter[$name] ?? []);
$indexBefore = array_search($callback, $this->listenersBefore[$name] ?? []);
if ($index !== false) unset($this->listeners[$name][$index]);
elseif ($indexAfter !== false) unset($this->listenersAfter[$name][$indexAfter]);
elseif ($indexBefore !== false) unset($this->listenersBefore[$name][$indexBefore]);
}
function trigger($name, ...$params) {
$middlewares = [];
$listeners = array_merge(
($this->listenersBefore[$name] ?? []),
($this->listeners[$name] ?? []),
($this->listenersAfter[$name] ?? []),
);
foreach ($listeners as $callback) {
$result = $callback(...$params);
if ($result) {
$middlewares[] = $result;
}
}
return function (&$forward = null, ...$extras) use ($middlewares) {
foreach ($middlewares as $finisher) {
if ($finisher === null) continue;
$finisher = is_array($finisher) ? last($finisher) : $finisher;
$result = $finisher($forward, ...$extras);
// Only overwrite previous "forward" if something is returned from the callback.
$forward = $result ?? $forward;
}
return $forward;
};
}
}

View File

@ -0,0 +1,8 @@
<?php
namespace Livewire\Exceptions;
trait BypassViewHandler
{
//
}

View File

@ -0,0 +1,13 @@
<?php
namespace Livewire\Exceptions;
class ComponentAttributeMissingOnDynamicComponentException extends \Exception
{
use BypassViewHandler;
public function __construct()
{
parent::__construct('Dynamic component tag is missing component attribute.');
}
}

View File

@ -0,0 +1,8 @@
<?php
namespace Livewire\Exceptions;
class ComponentNotFoundException extends \Exception
{
use BypassViewHandler;
}

View File

@ -0,0 +1,16 @@
<?php
namespace Livewire\Exceptions;
use Symfony\Component\HttpKernel\Exception\HttpException;
class LivewirePageExpiredBecauseNewDeploymentHasSignificantEnoughChanges extends HttpException
{
public function __construct()
{
parent::__construct(
419,
'New deployment contains changes to Livewire that have invalidated currently open browser pages.'
);
}
}

View File

@ -0,0 +1,15 @@
<?php
namespace Livewire\Exceptions;
class MethodNotFoundException extends \Exception
{
use BypassViewHandler;
public function __construct($method)
{
parent::__construct(
"Unable to call component method. Public method [{$method}] not found on component"
);
}
}

View File

@ -0,0 +1,15 @@
<?php
namespace Livewire\Exceptions;
class MissingRulesException extends \Exception
{
use BypassViewHandler;
public function __construct($component)
{
parent::__construct(
"Missing [\$rules/rules()] property/method on Livewire component: [{$component}]."
);
}
}

View File

@ -0,0 +1,13 @@
<?php
namespace Livewire\Exceptions;
class NonPublicComponentMethodCall extends \Exception
{
use BypassViewHandler;
public function __construct($method)
{
parent::__construct('Component method not found: ['.$method.']');
}
}

View File

@ -0,0 +1,15 @@
<?php
namespace Livewire\Exceptions;
class PropertyNotFoundException extends \Exception
{
use BypassViewHandler;
public function __construct($property, $component)
{
parent::__construct(
"Property [\${$property}] not found on component: [{$component}]"
);
}
}

View File

@ -0,0 +1,15 @@
<?php
namespace Livewire\Exceptions;
class PublicPropertyNotFoundException extends \Exception
{
use BypassViewHandler;
public function __construct($property, $component)
{
parent::__construct(
"Unable to set component data. Public property [\${$property}] not found on component: [{$component}]"
);
}
}

View File

@ -0,0 +1,16 @@
<?php
namespace Livewire\Exceptions;
class RootTagMissingFromViewException extends \Exception
{
use BypassViewHandler;
public function __construct()
{
parent::__construct(
"Livewire encountered a missing root tag when trying to render a " .
"component. \n When rendering a Blade view, make sure it contains a root HTML tag."
);
}
}

View File

@ -0,0 +1,54 @@
<?php
namespace Livewire\Features\SupportAttributes;
use Livewire\Component;
abstract class Attribute
{
protected Component $component;
protected AttributeLevel $level;
protected $levelName;
function __boot($component, AttributeLevel $level, $name = null)
{
$this->component = $component;
$this->level = $level;
$this->levelName = $name;
}
function getComponent()
{
return $this->component;
}
function getLevel()
{
return $this->level;
}
function getName()
{
return $this->levelName;
}
function getValue()
{
if ($this->level !== AttributeLevel::PROPERTY) {
throw new \Exception('Can\'t set the value of a non-property attribute.');
}
return data_get($this->component->all(), $this->levelName);
}
function setValue($value)
{
if ($this->level !== AttributeLevel::PROPERTY) {
throw new \Exception('Can\'t set the value of a non-property attribute.');
}
data_set($this->component, $this->levelName, $value);
}
}

View File

@ -0,0 +1,41 @@
<?php
namespace Livewire\Features\SupportAttributes;
use Illuminate\Support\Collection;
use ReflectionAttribute;
use ReflectionObject;
class AttributeCollection extends Collection
{
static function fromComponent($component, $subTarget = null, $propertyNamePrefix = '')
{
$instance = new static;
$reflected = new ReflectionObject($subTarget ?? $component);
foreach ($reflected->getAttributes(Attribute::class, ReflectionAttribute::IS_INSTANCEOF) as $attribute) {
$instance->push(tap($attribute->newInstance(), function ($attribute) use ($component) {
$attribute->__boot($component, AttributeLevel::ROOT);
}));
}
foreach ($reflected->getMethods() as $method) {
foreach ($method->getAttributes(Attribute::class, ReflectionAttribute::IS_INSTANCEOF) as $attribute) {
$instance->push(tap($attribute->newInstance(), function ($attribute) use ($component, $method, $propertyNamePrefix) {
$attribute->__boot($component, AttributeLevel::METHOD, $propertyNamePrefix . $method->getName());
}));
}
}
foreach ($reflected->getProperties() as $property) {
foreach ($property->getAttributes(Attribute::class, ReflectionAttribute::IS_INSTANCEOF) as $attribute) {
$instance->push(tap($attribute->newInstance(), function ($attribute) use ($component, $property, $propertyNamePrefix) {
$attribute->__boot($component, AttributeLevel::PROPERTY, $propertyNamePrefix . $property->getName());
}));
}
}
return $instance;
}
}

View File

@ -0,0 +1,10 @@
<?php
namespace Livewire\Features\SupportAttributes;
enum AttributeLevel
{
case ROOT;
case PROPERTY;
case METHOD;
}

View File

@ -0,0 +1,25 @@
<?php
namespace Livewire\Features\SupportAttributes;
trait HandlesAttributes
{
protected AttributeCollection $attributes;
function getAttributes()
{
return $this->attributes ??= AttributeCollection::fromComponent($this);
}
function setPropertyAttribute($property, $attribute)
{
$attribute->__boot($this, AttributeLevel::PROPERTY, $property);
$this->mergeOutsideAttributes(new AttributeCollection([$attribute]));
}
function mergeOutsideAttributes(AttributeCollection $attributes)
{
$this->attributes = $this->getAttributes()->concat($attributes);
}
}

View File

@ -0,0 +1,142 @@
<?php
namespace Livewire\Features\SupportAttributes;
use Livewire\Features\SupportAttributes\Attribute as LivewireAttribute;
use Livewire\ComponentHook;
class SupportAttributes extends ComponentHook
{
function boot(...$params)
{
$this->component
->getAttributes()
->whereInstanceOf(LivewireAttribute::class)
->each(function ($attribute) use ($params) {
if (method_exists($attribute, 'boot')) {
$attribute->boot(...$params);
}
});
}
function mount(...$params)
{
$this->component
->getAttributes()
->whereInstanceOf(LivewireAttribute::class)
->each(function ($attribute) use ($params) {
if (method_exists($attribute, 'mount')) {
$attribute->mount(...$params);
}
});
}
function hydrate(...$params)
{
$this->component
->getAttributes()
->whereInstanceOf(LivewireAttribute::class)
->each(function ($attribute) use ($params) {
if (method_exists($attribute, 'hydrate')) {
$attribute->hydrate(...$params);
}
});
}
function update($propertyName, $fullPath, $newValue)
{
$callbacks = $this->component
->getAttributes()
->whereInstanceOf(LivewireAttribute::class)
->filter(fn ($attr) => $attr->getLevel() === AttributeLevel::PROPERTY)
->filter(fn ($attr) => $attr->getName() === $fullPath)
->map(function ($attribute) use ($fullPath, $newValue) {
if (method_exists($attribute, 'update')) {
return $attribute->update($fullPath, $newValue);
}
});
return function (...$params) use ($callbacks) {
foreach ($callbacks as $callback) {
if (is_callable($callback)) $callback(...$params);
}
};
}
function call($method, $params, $returnEarly)
{
$callbacks = $this->component
->getAttributes()
->whereInstanceOf(LivewireAttribute::class)
->filter(fn ($attr) => $attr->getLevel() === AttributeLevel::METHOD)
->filter(fn ($attr) => $attr->getName() === $method)
->map(function ($attribute) use ($params, $returnEarly) {
if (method_exists($attribute, 'call')) {
return $attribute->call($params, $returnEarly);
}
});
return function (...$params) use ($callbacks) {
foreach ($callbacks as $callback) {
if (is_callable($callback)) $callback(...$params);
}
};
}
function render(...$params)
{
$callbacks = $this->component
->getAttributes()
->whereInstanceOf(LivewireAttribute::class)
->map(function ($attribute) use ($params) {
if (method_exists($attribute, 'render')) {
return $attribute->render(...$params);
}
});
return function (...$params) use ($callbacks) {
foreach ($callbacks as $callback) {
if (is_callable($callback)) {
$callback(...$params);
}
}
};
}
function dehydrate(...$params)
{
$this->component
->getAttributes()
->whereInstanceOf(LivewireAttribute::class)
->each(function ($attribute) use ($params) {
if (method_exists($attribute, 'dehydrate')) {
$attribute->dehydrate(...$params);
}
});
}
function destroy(...$params)
{
$this->component
->getAttributes()
->whereInstanceOf(LivewireAttribute::class)
->each(function ($attribute) use ($params) {
if (method_exists($attribute, 'destroy')) {
$attribute->destroy(...$params);
}
});
}
function exception(...$params)
{
$this->component
->getAttributes()
->whereInstanceOf(LivewireAttribute::class)
->each(function ($attribute) use ($params) {
if (method_exists($attribute, 'exception')) {
$attribute->exception(...$params);
}
});
}
}

View File

@ -0,0 +1,62 @@
<?php
namespace Livewire\Features\SupportAutoInjectedAssets;
use Illuminate\Foundation\Http\Events\RequestHandled;
use Livewire\ComponentHook;
use Livewire\Mechanisms\FrontendAssets\FrontendAssets;
use function Livewire\on;
class SupportAutoInjectedAssets extends ComponentHook
{
static $hasRenderedAComponentThisRequest = false;
static $forceAssetInjection = false;
static function provide()
{
on('flush-state', function () {
static::$hasRenderedAComponentThisRequest = false;
static::$forceAssetInjection = false;
});
app('events')->listen(RequestHandled::class, function ($handled) {
if (! static::$forceAssetInjection && config('livewire.inject_assets', true) === false) return;
if (! str($handled->response->headers->get('content-type'))->contains('text/html')) return;
if (! method_exists($handled->response, 'status') || $handled->response->status() !== 200) return;
if ((! static::$hasRenderedAComponentThisRequest) && (! static::$forceAssetInjection)) return;
if (app(FrontendAssets::class)->hasRenderedScripts) return;
$html = $handled->response->getContent();
if (str($html)->contains('</html>')) {
$handled->response->setContent(static::injectAssets($html));
}
});
}
public function dehydrate()
{
static::$hasRenderedAComponentThisRequest = true;
}
static function injectAssets($html)
{
$livewireStyles = FrontendAssets::styles();
$livewireScripts = FrontendAssets::scripts();
$html = str($html);
if ($html->test('/<\s*\/\s*head\s*>/i') && $html->test('/<\s*\/\s*body\s*>/i')) {
return $html
->replaceMatches('/(<\s*\/\s*head\s*>)/i', $livewireStyles.'$1')
->replaceMatches('/(<\s*\/\s*body\s*>)/i', $livewireScripts.'$1')
->toString();
}
return $html
->replaceMatches('/(<\s*html(?:\s[^>])*>)/i', '$1'.$livewireStyles)
->replaceMatches('/(<\s*\/\s*html\s*>)/i', $livewireScripts.'$1')
->toString();
}
}

View File

@ -0,0 +1,22 @@
<?php
namespace Livewire\Features\SupportBladeAttributes;
use Livewire\WireDirective;
use Illuminate\View\ComponentAttributeBag;
use Livewire\ComponentHook;
class SupportBladeAttributes extends ComponentHook
{
static function provide()
{
ComponentAttributeBag::macro('wire', function ($name) {
$entries = head((array) $this->whereStartsWith('wire:'.$name));
$directive = head(array_keys($entries));
$value = head(array_values($entries));
return new WireDirective($name, $directive, $value);
});
}
}

View File

@ -0,0 +1,82 @@
<?php
namespace Livewire\Features\SupportChecksumErrorDebugging;
use Illuminate\Support\Facades\Artisan;
use Illuminate\Support\Facades\File;
class SupportChecksumErrorDebugging
{
function boot()
{
// @todo: dont write to this file unless the command is running...
return;
$file = storage_path('framework/cache/lw-checksum-log.json');
Artisan::command('livewire:monitor-checksum', function () use ($file) {
File::put($file, json_encode(['checksums' => [], 'failure' => null]));
$this->info('Monitoring for checksum errors...');
while (true) {
$cache = json_decode(File::get($file), true);
if ($cache['failure']) {
$this->info('Failure: '.$cache['failure']);
$cache['failure'] = null;
}
File::put($file, json_encode($cache));
sleep(1);
}
})->purpose('Debug checksum errors in Livewire');
on('checksum.fail', function ($checksum, $comparitor, $tamperedSnapshot) use ($file) {
$cache = json_decode(File::get($file), true);
if (! isset($cache['checksums'][$checksum])) return;
$canonicalSnapshot = $cache['checksums'][$checksum];
$good = $this->array_diff_assoc_recursive($canonicalSnapshot, $tamperedSnapshot);
$bad = $this->array_diff_assoc_recursive($tamperedSnapshot, $canonicalSnapshot);
$cache['failure'] = "\nBefore: ".json_encode($good)."\nAfter: ".json_encode($bad);
File::put($file, json_encode($cache));
});
on('checksum.generate', function ($checksum, $snapshot) use ($file) {
$cache = json_decode(File::get($file), true);
$cache['checksums'][$checksum] = $snapshot;
File::put($file, json_encode($cache));
});
}
// https://www.php.net/manual/en/function.array-diff-assoc.php#111675
function array_diff_assoc_recursive($array1, $array2) {
$difference=array();
foreach($array1 as $key => $value) {
if( is_array($value) ) {
if( !isset($array2[$key]) || !is_array($array2[$key]) ) {
$difference[$key] = $value;
} else {
$new_diff = $this->array_diff_assoc_recursive($value, $array2[$key]);
if( !empty($new_diff) )
$difference[$key] = $new_diff;
}
} else if( !array_key_exists($key,$array2) || $array2[$key] !== $value ) {
$difference[$key] = $value;
}
}
return $difference;
}
}

View File

@ -0,0 +1,128 @@
<?php
namespace Livewire\Features\SupportComputed;
use function Livewire\invade;
use function Livewire\on;
use function Livewire\off;
use Livewire\Features\SupportAttributes\Attribute;
use Illuminate\Support\Facades\Cache;
#[\Attribute]
class BaseComputed extends Attribute
{
protected $requestCachedValue;
function __construct(
public $persist = false,
public $seconds = 3600, // 1 hour...
public $cache = false,
) {}
function boot()
{
off('__get', $this->handleMagicGet(...));
on('__get', $this->handleMagicGet(...));
off('__unset', $this->handleMagicUnset(...));
on('__unset', $this->handleMagicUnset(...));
}
function call()
{
throw new CannotCallComputedDirectlyException(
$this->component->getName(),
$this->getName(),
);
}
protected function handleMagicGet($target, $property, $returnValue)
{
if ($target !== $this->component) return;
if ($property !== $this->getName()) return;
if ($this->persist) {
$returnValue($this->handlePersistedGet());
return;
}
if ($this->cache) {
$returnValue($this->handleCachedGet());
return;
}
$returnValue(
$this->requestCachedValue ??= $this->evaluateComputed()
);
}
protected function handleMagicUnset($target, $property)
{
if ($target !== $this->component) return;
if ($property !== $this->getName()) return;
if ($this->persist) {
$this->handlePersistedUnset();
return;
}
if ($this->cache) {
$this->handleCachedUnset();
return;
}
unset($this->requestCachedValue);
}
protected function handlePersistedGet()
{
$key = $this->generatePersistedKey();
return Cache::remember($key, $this->seconds, function () {
return $this->evaluateComputed();
});
}
protected function handleCachedGet()
{
$key = $this->generateCachedKey();
return Cache::remember($key, $this->seconds, function () {
return $this->evaluateComputed();
});
}
protected function handlePersistedUnset()
{
$key = $this->generatePersistedKey();
Cache::forget($key);
}
protected function handleCachedUnset()
{
$key = $this->generateCachedKey();
Cache::forget($key);
}
protected function generatePersistedKey()
{
return 'lw_computed.'.$this->component->getId().'.'.$this->getName();
}
protected function generateCachedKey()
{
return 'lw_computed.'.$this->component->getName().'.'.$this->getName();
}
protected function evaluateComputed()
{
return invade($this->component)->{$this->getName()}();
}
}

View File

@ -0,0 +1,15 @@
<?php
namespace Livewire\Features\SupportComputed;
use Exception;
class CannotCallComputedDirectlyException extends Exception
{
function __construct($componentName, $methodName)
{
parent::__construct(
"Cannot call [{$methodName}()] computed property method directly on component: {$componentName}"
);
}
}

View File

@ -0,0 +1,68 @@
<?php
namespace Livewire\Features\SupportComputed;
use Livewire\ComponentHook;
use Livewire\Drawer\Utils as SyntheticUtils;
use function Livewire\on;
use function Livewire\store;
use function Livewire\wrap;
class SupportLegacyComputedPropertySyntax extends ComponentHook
{
static function provide()
{
on('__get', function ($target, $property, $returnValue) {
if (static::hasComputedProperty($target, $property)) {
$returnValue(static::getComputedProperty($target, $property));
}
});
}
public static function getComputedProperties($target)
{
return collect(static::getComputedPropertyNames($target))
->mapWithKeys(function ($property) use ($target) {
return [$property => static::getComputedProperty($target, $property)];
})
->all();
}
public static function hasComputedProperty($target, $property)
{
return array_search((string) str($property)->camel(), static::getComputedPropertyNames($target)) !== false;
}
public static function getComputedProperty($target, $property)
{
if (! static::hasComputedProperty($target, $property)) {
throw new \Exception('No computed property found: $'.$property);
}
$method = 'get'.str($property)->studly().'Property';
store($target)->push(
'computedProperties',
$value = store($target)->find('computedProperties', $property, fn() => wrap($target)->$method()),
$property,
);
return $value;
}
public static function getComputedPropertyNames($target)
{
$methodNames = SyntheticUtils::getPublicMethodsDefinedBySubClass($target);
return collect($methodNames)
->filter(function ($method) {
return str($method)->startsWith('get')
&& str($method)->endsWith('Property');
})
->map(function ($method) {
return (string) str($method)->between('get', 'Property')->camel();
})
->all();
}
}

View File

@ -0,0 +1,50 @@
<?php
namespace Livewire\Features\SupportConsoleCommands\Commands;
use Illuminate\Console\GeneratorCommand;
class AttributeCommand extends GeneratorCommand
{
/**
* The console command name.
*
* @var string
*/
protected $signature = 'livewire:attribute {name} {--force}';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Create a new Livewire attribute class';
/**
* The type of class being generated.
*
* @var string
*/
protected $type = 'Attribute';
/**
* Get the stub file for the generator.
*
* @return string
*/
public function getStub()
{
return __DIR__ . '/livewire.attribute.stub';
}
/**
* Get the default namespace for the class.
*
* @param string $rootNamespace
* @return string
*/
public function getDefaultNamespace($rootNamespace)
{
return $rootNamespace . '\Livewire\Attributes';
}
}

View File

@ -0,0 +1,225 @@
<?php
namespace Livewire\Features\SupportConsoleCommands\Commands;
use Illuminate\Support\Arr;
use Illuminate\Support\Str;
use Illuminate\Support\Facades\File;
use function Livewire\str;
class ComponentParser
{
protected $baseClassNamespace;
protected $baseTestNamespace;
protected $baseClassPath;
protected $baseViewPath;
protected $baseTestPath;
protected $stubDirectory;
protected $viewPath;
protected $component;
protected $componentClass;
protected $directories;
public function __construct($classNamespace, $viewPath, $rawCommand, $stubSubDirectory = '')
{
$this->baseClassNamespace = $classNamespace;
$this->baseTestNamespace = 'Tests\Feature\Livewire';
$classPath = static::generatePathFromNamespace($classNamespace);
$testPath = static::generateTestPathFromNamespace($this->baseTestNamespace);
$this->baseClassPath = rtrim($classPath, DIRECTORY_SEPARATOR).'/';
$this->baseViewPath = rtrim($viewPath, DIRECTORY_SEPARATOR).'/';
$this->baseTestPath = rtrim($testPath, DIRECTORY_SEPARATOR).'/';
if(! empty($stubSubDirectory) && str($stubSubDirectory)->startsWith('..')) {
$this->stubDirectory = rtrim(str($stubSubDirectory)->replaceFirst('..' . DIRECTORY_SEPARATOR, ''), DIRECTORY_SEPARATOR).'/';
} else {
$this->stubDirectory = rtrim('stubs'.DIRECTORY_SEPARATOR.$stubSubDirectory, DIRECTORY_SEPARATOR).'/';
}
$directories = preg_split('/[.\/(\\\\)]+/', $rawCommand);
$camelCase = str(array_pop($directories))->camel();
$kebabCase = str($camelCase)->kebab();
$this->component = $kebabCase;
$this->componentClass = str($this->component)->studly();
$this->directories = array_map([Str::class, 'studly'], $directories);
}
public function component()
{
return $this->component;
}
public function classPath()
{
return $this->baseClassPath.collect()
->concat($this->directories)
->push($this->classFile())
->implode('/');
}
public function relativeClassPath() : string
{
return str($this->classPath())->replaceFirst(base_path().DIRECTORY_SEPARATOR, '');
}
public function classFile()
{
return $this->componentClass.'.php';
}
public function classNamespace()
{
return empty($this->directories)
? $this->baseClassNamespace
: $this->baseClassNamespace.'\\'.collect()
->concat($this->directories)
->map([Str::class, 'studly'])
->implode('\\');
}
public function className()
{
return $this->componentClass;
}
public function classContents($inline = false)
{
$stubName = $inline ? 'livewire.inline.stub' : 'livewire.stub';
if (File::exists($stubPath = base_path($this->stubDirectory.$stubName))) {
$template = file_get_contents($stubPath);
} else {
$template = file_get_contents(__DIR__.DIRECTORY_SEPARATOR.$stubName);
}
if ($inline) {
$template = preg_replace('/\[quote\]/', $this->wisdomOfTheTao(), $template);
}
return preg_replace(
['/\[namespace\]/', '/\[class\]/', '/\[view\]/'],
[$this->classNamespace(), $this->className(), $this->viewName()],
$template
);
}
public function viewPath()
{
return $this->baseViewPath.collect()
->concat($this->directories)
->map([Str::class, 'kebab'])
->push($this->viewFile())
->implode(DIRECTORY_SEPARATOR);
}
public function relativeViewPath() : string
{
return str($this->viewPath())->replaceFirst(base_path().'/', '');
}
public function viewFile()
{
return $this->component.'.blade.php';
}
public function viewName()
{
return collect()
->when(config('livewire.view_path') !== resource_path(), function ($collection) {
return $collection->concat(explode('/',str($this->baseViewPath)->after(resource_path('views'))));
})
->filter()
->concat($this->directories)
->map([Str::class, 'kebab'])
->push($this->component)
->implode('.');
}
public function viewContents()
{
if( ! File::exists($stubPath = base_path($this->stubDirectory.'livewire.view.stub'))) {
$stubPath = __DIR__.DIRECTORY_SEPARATOR.'livewire.view.stub';
}
return preg_replace(
'/\[quote\]/',
$this->wisdomOfTheTao(),
file_get_contents($stubPath)
);
}
public function testNamespace()
{
return empty($this->directories)
? $this->baseTestNamespace
: $this->baseTestNamespace.'\\'.collect()
->concat($this->directories)
->map([Str::class, 'studly'])
->implode('\\');
}
public function testClassName()
{
return $this->componentClass.'Test';
}
public function testFile()
{
return $this->componentClass.'Test.php';
}
public function testPath()
{
return $this->baseTestPath.collect()
->concat($this->directories)
->push($this->testFile())
->implode('/');
}
public function relativeTestPath() : string
{
return str($this->testPath())->replaceFirst(base_path().'/', '');
}
public function testContents($testType = 'phpunit')
{
$stubName = $testType === 'pest' ? 'livewire.pest.stub' : 'livewire.test.stub';
if(File::exists($stubPath = base_path($this->stubDirectory.$stubName))) {
$template = file_get_contents($stubPath);
} else {
$template = file_get_contents(__DIR__.DIRECTORY_SEPARATOR.$stubName);
}
return preg_replace(
['/\[testnamespace\]/', '/\[classwithnamespace\]/', '/\[testclass\]/', '/\[class\]/'],
[$this->testNamespace(), $this->classNamespace() . '\\' . $this->className(), $this->testClassName(), $this->className()],
$template
);
}
public function wisdomOfTheTao()
{
$wisdom = require __DIR__.DIRECTORY_SEPARATOR.'the-tao.php';
return Arr::random($wisdom);
}
public static function generatePathFromNamespace($namespace)
{
$name = str($namespace)->finish('\\')->replaceFirst(app()->getNamespace(), '');
return app('path').'/'.str_replace('\\', '/', $name);
}
public static function generateTestPathFromNamespace($namespace)
{
return str(base_path($namespace))
->replace('\\', '/', $namespace)
->replaceFirst('T', 't');
}
}

View File

@ -0,0 +1,28 @@
<?php
namespace Livewire\Features\SupportConsoleCommands\Commands;
class ComponentParserFromExistingComponent extends ComponentParser
{
protected $existingParser;
public function __construct($classNamespace, $viewPath, $rawCommand, $existingParser)
{
$this->existingParser = $existingParser;
parent::__construct($classNamespace, $viewPath, $rawCommand);
}
public function classContents($inline = false)
{
$originalFile = file_get_contents($this->existingParser->classPath());
$escapedClassNamespace = preg_replace('/\\\/', '\\\\\\', $this->existingParser->classNamespace());
return preg_replace_array(
["/namespace {$escapedClassNamespace}/", "/class {$this->existingParser->className()}/", "/{$this->existingParser->viewName()}/"],
["namespace {$this->classNamespace()}", "class {$this->className()}", $this->viewName()],
$originalFile
);
}
}

View File

@ -0,0 +1,84 @@
<?php
namespace Livewire\Features\SupportConsoleCommands\Commands;
use Illuminate\Support\Facades\File;
class CopyCommand extends FileManipulationCommand
{
protected $signature = 'livewire:copy {name} {new-name} {--inline} {--force} {--test}';
protected $description = 'Copy a Livewire component';
protected $newParser;
public function handle()
{
$this->parser = new ComponentParser(
config('livewire.class_namespace'),
config('livewire.view_path'),
$this->argument('name')
);
$this->newParser = new ComponentParserFromExistingComponent(
config('livewire.class_namespace'),
config('livewire.view_path'),
$this->argument('new-name'),
$this->parser
);
$force = $this->option('force');
$inline = $this->option('inline');
$test = $this->option('test');
$class = $this->copyClass($force, $inline);
if (! $inline) $view = $this->copyView($force);
if ($test){
$test = $this->copyTest($force);
}
$this->line("<options=bold,reverse;fg=green> COMPONENT COPIED </> 🤙\n");
$class && $this->line("<options=bold;fg=green>CLASS:</> {$this->parser->relativeClassPath()} <options=bold;fg=green>=></> {$this->newParser->relativeClassPath()}");
if (! $inline) $view && $this->line("<options=bold;fg=green>VIEW:</> {$this->parser->relativeViewPath()} <options=bold;fg=green>=></> {$this->newParser->relativeViewPath()}");
if ($test) $test && $this->line("<options=bold;fg=green>Test:</> {$this->parser->relativeTestPath()} <options=bold;fg=green>=></> {$this->newParser->relativeTestPath()}");
}
protected function copyTest($force)
{
if (File::exists($this->newParser->testPath()) && ! $force) {
$this->line("<options=bold,reverse;fg=red> WHOOPS-IE-TOOTLES </> 😳 \n");
$this->line("<fg=red;options=bold>Test already exists:</> {$this->newParser->relativeTestPath()}");
return false;
}
$this->ensureDirectoryExists($this->newParser->testPath());
return File::copy("{$this->parser->testPath()}", $this->newParser->testPath());
}
protected function copyClass($force, $inline)
{
if (File::exists($this->newParser->classPath()) && ! $force) {
$this->line("<options=bold,reverse;fg=red> WHOOPS-IE-TOOTLES </> 😳 \n");
$this->line("<fg=red;options=bold>Class already exists:</> {$this->newParser->relativeClassPath()}");
return false;
}
$this->ensureDirectoryExists($this->newParser->classPath());
return File::put($this->newParser->classPath(), $this->newParser->classContents($inline));
}
protected function copyView($force)
{
if (File::exists($this->newParser->viewPath()) && ! $force) {
$this->line("<fg=red;options=bold>View already exists:</> {$this->newParser->relativeViewPath()}");
return false;
}
$this->ensureDirectoryExists($this->newParser->viewPath());
return File::copy("{$this->parser->viewPath()}", $this->newParser->viewPath());
}
}

View File

@ -0,0 +1,13 @@
<?php
namespace Livewire\Features\SupportConsoleCommands\Commands;
class CpCommand extends CopyCommand
{
protected $signature = 'livewire:cp {name} {new-name} {--inline} {--force} {--test}';
protected function configure()
{
$this->setHidden(true);
}
}

View File

@ -0,0 +1,89 @@
<?php
namespace Livewire\Features\SupportConsoleCommands\Commands;
use Illuminate\Support\Facades\File;
class DeleteCommand extends FileManipulationCommand
{
protected $signature = 'livewire:delete {name} {--inline} {--force} {--test}';
protected $description = 'Delete a Livewire component';
public function handle()
{
$this->parser = new ComponentParser(
config('livewire.class_namespace'),
config('livewire.view_path'),
$this->argument('name')
);
if (! $force = $this->option('force')) {
$shouldContinue = $this->confirm(
"<fg=yellow>Are you sure you want to delete the following files?</>\n\n{$this->parser->relativeClassPath()}\n{$this->parser->relativeViewPath()}\n"
);
if (! $shouldContinue) {
return;
}
}
$inline = $this->option('inline');
$test = $this->option('test');
$class = $this->removeClass($force);
if (! $inline) $view = $this->removeView($force);
if ($test) $test = $this->removeTest($force);
$this->line("<options=bold,reverse;fg=yellow> COMPONENT DESTROYED </> 🦖💫\n");
$class && $this->line("<options=bold;fg=yellow>CLASS:</> {$this->parser->relativeClassPath()}");
if (! $inline) $view && $this->line("<options=bold;fg=yellow>VIEW:</> {$this->parser->relativeViewPath()}");
if ($test) $test && $this->line("<options=bold;fg=yellow>Test:</> {$this->parser->relativeTestPath()}");
}
protected function removeTest($force = false)
{
$testPath = $this->parser->testPath();
if (! File::exists($testPath) && ! $force) {
$this->line("<options=bold,reverse;fg=red> WHOOPS-IE-TOOTLES </> 😳 \n");
$this->line("<fg=red;options=bold>Test doesn't exist:</> {$this->parser->relativeTestPath()}");
return false;
}
File::delete($testPath);
return $testPath;
}
protected function removeClass($force = false)
{
$classPath = $this->parser->classPath();
if (! File::exists($classPath) && ! $force) {
$this->line("<options=bold,reverse;fg=red> WHOOPS-IE-TOOTLES </> 😳 \n");
$this->line("<fg=red;options=bold>Class doesn't exist:</> {$this->parser->relativeClassPath()}");
return false;
}
File::delete($classPath);
return $classPath;
}
protected function removeView($force = false)
{
$viewPath = $this->parser->viewPath();
if (! File::exists($viewPath) && ! $force) {
$this->line("<fg=red;options=bold>View doesn't exist:</> {$this->parser->relativeViewPath()}");
return false;
}
File::delete($viewPath);
return $viewPath;
}
}

View File

@ -0,0 +1,45 @@
<?php
namespace Livewire\Features\SupportConsoleCommands\Commands;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\File;
use function Livewire\str;
class FileManipulationCommand extends Command
{
protected $parser;
protected function ensureDirectoryExists($path)
{
if (! File::isDirectory(dirname($path))) {
File::makeDirectory(dirname($path), 0777, $recursive = true, $force = true);
}
}
public function isFirstTimeMakingAComponent()
{
$namespace = str(config('livewire.class_namespace'))->replaceFirst(app()->getNamespace(), '');
$livewireFolder = app_path($namespace->explode('\\')->implode(DIRECTORY_SEPARATOR));
return ! File::isDirectory($livewireFolder);
}
public function writeWelcomeMessage()
{
$asciiLogo = <<<EOT
<fg=magenta> _._</>
<fg=magenta>/ /<fg=white>o</>\ \ </> <fg=cyan> || () () __ </>
<fg=magenta>|_\ /_|</> <fg=cyan> || || \\\// /_\ \\\ // || |~~ /_\ </>
<fg=magenta> <fg=cyan>|</>`<fg=cyan>|</>`<fg=cyan>|</> </> <fg=cyan> || || \/ \\\_ \^/ || || \\\_ </>
EOT;
// _._
// / /o\ \ || () () __
// |_\ /_| || || \\\// /_\ \\\ // || |~~ /_\
// |`|`| || || \/ \\\_ \^/ || || \\\_
$this->line("\n".$asciiLogo."\n");
$this->line("\n<options=bold>Congratulations, you've created your first Livewire component!</> 🎉🎉🎉\n");
}
}

View File

@ -0,0 +1,50 @@
<?php
namespace Livewire\Features\SupportConsoleCommands\Commands;
use Illuminate\Console\GeneratorCommand;
class FormCommand extends GeneratorCommand
{
/**
* The console command name.
*
* @var string
*/
protected $signature = 'livewire:form {name} {--force}';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Create a new Livewire form class';
/**
* The type of class being generated.
*
* @var string
*/
protected $type = 'Form';
/**
* Get the stub file for the generator.
*
* @return string
*/
public function getStub()
{
return __DIR__ . '/livewire.form.stub';
}
/**
* Get the default namespace for the class.
*
* @param string $rootNamespace
* @return string
*/
public function getDefaultNamespace($rootNamespace)
{
return $rootNamespace . '\Livewire\Forms';
}
}

View File

@ -0,0 +1,78 @@
<?php
namespace Livewire\Features\SupportConsoleCommands\Commands;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Str;
class LayoutCommand extends FileManipulationCommand
{
protected $signature = 'livewire:layout {--force} {--stub= : If you have several stubs, stored in subfolders }';
protected $description = 'Create a new app layout file';
public function handle()
{
$baseViewPath = resource_path('views');
$layout = str(config('livewire.layout'));
$layoutPath = $this->layoutPath($baseViewPath, $layout);
$relativeLayoutPath = $this->relativeLayoutPath($layoutPath);
$force = $this->option('force');
$stubPath = $this->stubPath($this->option('stub'));
if (File::exists($layoutPath) && ! $force) {
$this->line("<fg=red;options=bold>View already exists:</> {$relativeLayoutPath}");
return false;
}
$this->ensureDirectoryExists($layoutPath);
$result = File::copy($stubPath, $layoutPath);
if ($result) {
$this->line("<options=bold,reverse;fg=green> LAYOUT CREATED </> 🤙\n");
$this->line("<options=bold;fg=green>CLASS:</> {$relativeLayoutPath}");
}
}
protected function stubPath($stubSubDirectory = '')
{
$stubName = 'livewire.layout.stub';
if (! empty($stubSubDirectory) && str($stubSubDirectory)->startsWith('..')) {
$stubDirectory = rtrim(str($stubSubDirectory)->replaceFirst('..' . DIRECTORY_SEPARATOR, ''), DIRECTORY_SEPARATOR) . '/';
} else {
$stubDirectory = rtrim('stubs' . DIRECTORY_SEPARATOR . $stubSubDirectory, DIRECTORY_SEPARATOR) . '/';
}
if (File::exists($stubPath = base_path($stubDirectory . $stubName))) {
return $stubPath;
}
return __DIR__ . DIRECTORY_SEPARATOR . $stubName;
}
protected function layoutPath($baseViewPath, $layout)
{
$directories = $layout->explode('.');
$name = Str::kebab($directories->pop());
return $baseViewPath . DIRECTORY_SEPARATOR . collect()
->concat($directories)
->map([Str::class, 'kebab'])
->push("{$name}.blade.php")
->implode(DIRECTORY_SEPARATOR);
}
protected function relativeLayoutPath($layoutPath)
{
return (string) str($layoutPath)->replaceFirst(base_path() . '/', '');
}
}

View File

@ -0,0 +1,211 @@
<?php
namespace Livewire\Features\SupportConsoleCommands\Commands;
use Illuminate\Support\Facades\File;
class MakeCommand extends FileManipulationCommand
{
protected $signature = 'livewire:make {name} {--force} {--inline} {--test} {--pest} {--stub= : If you have several stubs, stored in subfolders }';
protected $description = 'Create a new Livewire component';
public function handle()
{
$this->parser = new ComponentParser(
config('livewire.class_namespace'),
config('livewire.view_path'),
$this->argument('name'),
$this->option('stub')
);
if (!$this->isClassNameValid($name = $this->parser->className())) {
$this->line("<options=bold,reverse;fg=red> WHOOPS! </> 😳 \n");
$this->line("<fg=red;options=bold>Class is invalid:</> {$name}");
return;
}
if ($this->isReservedClassName($name)) {
$this->line("<options=bold,reverse;fg=red> WHOOPS! </> 😳 \n");
$this->line("<fg=red;options=bold>Class is reserved:</> {$name}");
return;
}
$force = $this->option('force');
$inline = $this->option('inline');
$test = $this->option('test') || $this->option('pest');
$testType = $this->option('test') ? 'phpunit' : 'pest';
$showWelcomeMessage = $this->isFirstTimeMakingAComponent();
$class = $this->createClass($force, $inline);
$view = $this->createView($force, $inline);
if ($test) {
$test = $this->createTest($force, $testType);
}
if($class || $view) {
$this->line("<options=bold,reverse;fg=green> COMPONENT CREATED </> 🤙\n");
$class && $this->line("<options=bold;fg=green>CLASS:</> {$this->parser->relativeClassPath()}");
if (! $inline) {
$view && $this->line("<options=bold;fg=green>VIEW:</> {$this->parser->relativeViewPath()}");
}
if ($test) {
$test && $this->line("<options=bold;fg=green>TEST:</> {$this->parser->relativeTestPath()}");
}
if ($showWelcomeMessage && ! app()->runningUnitTests()) {
$this->writeWelcomeMessage();
}
}
}
protected function createClass($force = false, $inline = false)
{
$classPath = $this->parser->classPath();
if (File::exists($classPath) && ! $force) {
$this->line("<options=bold,reverse;fg=red> WHOOPS-IE-TOOTLES </> 😳 \n");
$this->line("<fg=red;options=bold>Class already exists:</> {$this->parser->relativeClassPath()}");
return false;
}
$this->ensureDirectoryExists($classPath);
File::put($classPath, $this->parser->classContents($inline));
return $classPath;
}
protected function createView($force = false, $inline = false)
{
if ($inline) {
return false;
}
$viewPath = $this->parser->viewPath();
if (File::exists($viewPath) && ! $force) {
$this->line("<fg=red;options=bold>View already exists:</> {$this->parser->relativeViewPath()}");
return false;
}
$this->ensureDirectoryExists($viewPath);
File::put($viewPath, $this->parser->viewContents());
return $viewPath;
}
protected function createTest($force = false, $testType = 'phpunit')
{
$testPath = $this->parser->testPath();
if (File::exists($testPath) && ! $force) {
$this->line("<options=bold,reverse;fg=red> WHOOPS-IE-TOOTLES </> 😳 \n");
$this->line("<fg=red;options=bold>Test class already exists:</> {$this->parser->relativeTestPath()}");
return false;
}
$this->ensureDirectoryExists($testPath);
File::put($testPath, $this->parser->testContents($testType));
return $testPath;
}
public function isClassNameValid($name)
{
return preg_match("/^[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*$/", $name);
}
public function isReservedClassName($name)
{
return array_search(strtolower($name), $this->getReservedName()) !== false;
}
private function getReservedName()
{
return [
'parent',
'component',
'interface',
'__halt_compiler',
'abstract',
'and',
'array',
'as',
'break',
'callable',
'case',
'catch',
'class',
'clone',
'const',
'continue',
'declare',
'default',
'die',
'do',
'echo',
'else',
'elseif',
'empty',
'enddeclare',
'endfor',
'endforeach',
'endif',
'endswitch',
'endwhile',
'eval',
'exit',
'extends',
'final',
'finally',
'fn',
'for',
'foreach',
'function',
'global',
'goto',
'if',
'implements',
'include',
'include_once',
'instanceof',
'insteadof',
'interface',
'isset',
'list',
'namespace',
'new',
'or',
'print',
'private',
'protected',
'public',
'require',
'require_once',
'return',
'static',
'switch',
'throw',
'trait',
'try',
'unset',
'use',
'var',
'while',
'xor',
'yield',
];
}
}

View File

@ -0,0 +1,8 @@
<?php
namespace Livewire\Features\SupportConsoleCommands\Commands;
class MakeLivewireCommand extends MakeCommand
{
protected $signature = 'make:livewire {name} {--force} {--inline} {--test} {--pest} {--stub=}';
}

View File

@ -0,0 +1,89 @@
<?php
namespace Livewire\Features\SupportConsoleCommands\Commands;
use Illuminate\Support\Facades\File;
class MoveCommand extends FileManipulationCommand
{
protected $signature = 'livewire:move {name} {new-name} {--force} {--inline}';
protected $description = 'Move a Livewire component';
protected $newParser;
public function handle()
{
$this->parser = new ComponentParser(
config('livewire.class_namespace'),
config('livewire.view_path'),
$this->argument('name')
);
$this->newParser = new ComponentParserFromExistingComponent(
config('livewire.class_namespace'),
config('livewire.view_path'),
$this->argument('new-name'),
$this->parser
);
$inline = $this->option('inline');
$class = $this->renameClass();
if (! $inline) $view = $this->renameView();
$test = $this->renameTest();
if ($class) $this->line("<options=bold,reverse;fg=green> COMPONENT MOVED </> 🤙\n");
$class && $this->line("<options=bold;fg=green>CLASS:</> {$this->parser->relativeClassPath()} <options=bold;fg=green>=></> {$this->newParser->relativeClassPath()}");
if (! $inline) $view && $this->line("<options=bold;fg=green>VIEW:</> {$this->parser->relativeViewPath()} <options=bold;fg=green>=></> {$this->newParser->relativeViewPath()}");
if ($test) $test && $this->line("<options=bold;fg=green>Test:</> {$this->parser->relativeTestPath()} <options=bold;fg=green>=></> {$this->newParser->relativeTestPath()}");
}
protected function renameClass()
{
if (File::exists($this->newParser->classPath())) {
$this->line("<options=bold,reverse;fg=red> WHOOPS-IE-TOOTLES </> 😳 \n");
$this->line("<fg=red;options=bold>Class already exists:</> {$this->newParser->relativeClassPath()}");
return false;
}
$this->ensureDirectoryExists($this->newParser->classPath());
File::put($this->newParser->classPath(), $this->newParser->classContents());
return File::delete($this->parser->classPath());
}
protected function renameView()
{
$newViewPath = $this->newParser->viewPath();
if (File::exists($newViewPath)) {
$this->line("<fg=red;options=bold>View already exists:</> {$this->newParser->relativeViewPath()}");
return false;
}
$this->ensureDirectoryExists($newViewPath);
File::move($this->parser->viewPath(), $newViewPath);
return $newViewPath;
}
protected function renameTest()
{
$oldTestPath = $this->parser->testPath();
$newTestPath = $this->newParser->testPath();
if (!File::exists($oldTestPath) || File::exists($newTestPath)) {
return false;
}
$this->ensureDirectoryExists($newTestPath);
File::move($oldTestPath, $newTestPath);
return $newTestPath;
}
}

View File

@ -0,0 +1,13 @@
<?php
namespace Livewire\Features\SupportConsoleCommands\Commands;
class MvCommand extends MoveCommand
{
protected $signature = 'livewire:mv {name} {new-name} {--inline} {--force}';
protected function configure()
{
$this->setHidden(true);
}
}

View File

@ -0,0 +1,45 @@
<?php
namespace Livewire\Features\SupportConsoleCommands\Commands;
use Illuminate\Console\Command;
class PublishCommand extends Command
{
protected $signature = 'livewire:publish
{ --assets : Indicates if Livewire\'s front-end assets should be published }
{ --config : Indicates if Livewire\'s config file should be published }
{ --pagination : Indicates if Livewire\'s pagination views should be published }';
protected $description = 'Publish Livewire configuration';
public function handle()
{
if ($this->option('assets')) {
$this->publishAssets();
} elseif ($this->option('config')) {
$this->publishConfig();
} elseif ($this->option('pagination')) {
$this->publishPagination();
} else {
$this->publishAssets();
$this->publishConfig();
$this->publishPagination();
}
}
public function publishAssets()
{
$this->call('vendor:publish', ['--tag' => 'livewire:assets', '--force' => true]);
}
public function publishConfig()
{
$this->call('vendor:publish', ['--tag' => 'livewire:config', '--force' => true]);
}
public function publishPagination()
{
$this->call('vendor:publish', ['--tag' => 'livewire:pagination', '--force' => true]);
}
}

View File

@ -0,0 +1,13 @@
<?php
namespace Livewire\Features\SupportConsoleCommands\Commands;
class RmCommand extends DeleteCommand
{
protected $signature = 'livewire:rm {name} {--inline} {--force} {--test}';
protected function configure()
{
$this->setHidden(true);
}
}

View File

@ -0,0 +1,51 @@
<?php
namespace Livewire\Features\SupportConsoleCommands\Commands;
use function Livewire\invade;
use Livewire\Features\SupportFileUploads\FileUploadConfiguration;
use Illuminate\Console\Command;
class S3CleanupCommand extends Command
{
protected $signature = 'livewire:configure-s3-upload-cleanup';
protected $description = 'Configure temporary file upload s3 directory to automatically cleanup files older than 24hrs.';
public function handle()
{
if (! FileUploadConfiguration::isUsingS3()) {
$this->error("Configuration ['livewire.temporary_file_upload.disk'] is not set to a disk with an S3 driver.");
return;
}
$driver = FileUploadConfiguration::storage()->getDriver();
// Flysystem V2+ doesn't allow direct access to adapter, so we need to invade instead.
$adapter = invade($driver)->adapter;
// Flysystem V2+ doesn't allow direct access to client, so we need to invade instead.
$client = invade($adapter)->client;
// Flysystem V2+ doesn't allow direct access to bucket, so we need to invade instead.
$bucket = invade($adapter)->bucket;
$client->putBucketLifecycleConfiguration([
'Bucket' => $bucket,
'LifecycleConfiguration' => [
'Rules' => [
[
'Prefix' => $prefix = FileUploadConfiguration::path(),
'Expiration' => [
'Days' => 1,
],
'Status' => 'Enabled',
],
],
],
]);
$this->info('Livewire temporary S3 upload directory ['.$prefix.'] set to automatically cleanup files older than 24hrs!');
}
}

View File

@ -0,0 +1,49 @@
<?php
namespace Livewire\Features\SupportConsoleCommands\Commands;
use Illuminate\Console\Command;
use Illuminate\Filesystem\Filesystem;
class StubsCommand extends Command
{
protected $signature = 'livewire:stubs';
protected $description = 'Publish Livewire stubs';
protected $parser;
public function handle()
{
if (! is_dir($stubsPath = base_path('stubs'))) {
(new Filesystem)->makeDirectory($stubsPath);
}
file_put_contents(
$stubsPath.'/livewire.stub',
file_get_contents(__DIR__.'/livewire.stub')
);
file_put_contents(
$stubsPath.'/livewire.inline.stub',
file_get_contents(__DIR__.'/livewire.inline.stub')
);
file_put_contents(
$stubsPath.'/livewire.view.stub',
file_get_contents(__DIR__.'/livewire.view.stub')
);
file_put_contents(
$stubsPath.'/livewire.test.stub',
file_get_contents(__DIR__.'/livewire.test.stub')
);
file_put_contents(
$stubsPath.'/livewire.pest.stub',
file_get_contents(__DIR__.'/livewire.pest.stub')
);
$this->info('Stubs published successfully.');
}
}

View File

@ -0,0 +1,13 @@
<?php
namespace Livewire\Features\SupportConsoleCommands\Commands;
class TouchCommand extends MakeCommand
{
protected $signature = 'livewire:touch {name} {--force} {--inline} {--test} {--pest} {--stub=default}';
protected function configure()
{
$this->setHidden(true);
}
}

View File

@ -0,0 +1,32 @@
<?php
namespace Livewire\Features\SupportConsoleCommands\Commands\Upgrade;
use Livewire\Features\SupportConsoleCommands\Commands\UpgradeCommand;
class AddLiveModifierToEntangleDirectives extends UpgradeStep
{
public function handle(UpgradeCommand $console, \Closure $next)
{
$this->interactiveReplacement(
console: $console,
title: 'The @entangle(...) directive is now deferred by default.',
before: '@entangle(...)',
after: '@entangle(...).live',
pattern: '/@entangle\(((?:[^)(]|\((?:[^)(]|\((?:[^)(]|\([^)(]*\))*\))*\))*)\)(?!\.(?:defer|live))/',
replacement: '@entangle($1).live',
);
$this->interactiveReplacement(
console: $console,
title: 'The $wire.entangle function is now deferred by default and has been changed to $wire.$entangle.',
before: '$wire.entangle(...)',
after: '$wire.$entangle(..., true)',
pattern: '/\$wire\.entangle\(((?:[^)(]|\((?:[^)(]|\((?:[^)(]|\([^)(]*\))*\))*\))*)\)(?!\.(?:defer))/',
replacement: '$wire.$entangle($1, true)',
directories: ['resources/views', 'resources/js']
);
return $next($console);
}
}

View File

@ -0,0 +1,22 @@
<?php
namespace Livewire\Features\SupportConsoleCommands\Commands\Upgrade;
use Livewire\Features\SupportConsoleCommands\Commands\UpgradeCommand;
class AddLiveModifierToWireModelDirectives extends UpgradeStep
{
public function handle(UpgradeCommand $console, \Closure $next)
{
$this->interactiveReplacement(
console: $console,
title: 'The wire:model directive is now deferred by default.',
before: 'wire:model',
after: 'wire:model.live',
pattern: '/wire:model(?!\.(?:defer|lazy|live))/',
replacement: 'wire:model.live',
);
return $next($console);
}
}

View File

@ -0,0 +1,47 @@
<?php
namespace Livewire\Features\SupportConsoleCommands\Commands\Upgrade;
use Livewire\Features\SupportConsoleCommands\Commands\UpgradeCommand;
class ChangeDefaultLayoutView extends UpgradeStep
{
public function handle(UpgradeCommand $console, \Closure $next)
{
if($this->hasOldLayout())
{
$console->line("<fg=#FB70A9;bg=black;options=bold,reverse> The Livewire default layout has has changed. </>");
$console->newLine();
$console->line('When rendering full-page components Livewire would use the "layouts.app" view as the default layout. This has been changed to "components.layouts.app".');
$choice = $console->choice('Would you like to migrate or keep the old layout?', [
'migrate',
'keep',
], 'migrate');
if($choice == 'keep') {
$console->line('Keeping the old default layout...');
$this->publishConfigIfMissing($console);
$console->line('Setting the default layout to "layouts.app"...');
$this->patternReplacement('/components\.layouts\.app/', 'layouts.app', 'config');
return $next($console);
}
$console->line('Setting the default layout to "components.layouts.app"...');
$this->patternReplacement('/layouts\.app/', 'components.layouts.app', 'config');
}
return $next($console);
}
protected function hasOldLayout()
{
return config('livewire.class_namespace') === 'layouts.app' || $this->filesystem()->exists('resources/views/layouts/app.blade.php');
}
}

View File

@ -0,0 +1,111 @@
<?php
namespace Livewire\Features\SupportConsoleCommands\Commands\Upgrade;
use Livewire\Features\SupportConsoleCommands\Commands\ComponentParser;
use Livewire\Features\SupportConsoleCommands\Commands\ComponentParserFromExistingComponent;
use Livewire\Features\SupportConsoleCommands\Commands\UpgradeCommand;
class ChangeDefaultNamespace extends UpgradeStep
{
public function handle(UpgradeCommand $console, \Closure $next)
{
if($this->hasOldNamespace())
{
$console->line("<fg=#FB70A9;bg=black;options=bold,reverse> The Livewire namespace has changed. </>");
$console->newLine();
$console->line('The <options=underscore>App\\Http\\Livewire</> namespace was detected and is no longer the default in Livewire v3. Livewire v3 now uses the <options=underscore>App\\Livewire</> namespace.');
$choice = $console->choice('Would you like to migrate or keep the old namespace?', [
'migrate',
'keep',
], 'migrate');
if($choice === 'keep') {
$console->line('Keeping the old namespace...');
$this->publishConfigIfMissing($console);
$console->line('Setting the default namespace to "App\\Http\\Livewire"...');
$config = $this->filesystem()->get('config/livewire.php');
$config = str_replace('App\\\\Livewire', 'App\\\\Http\\\\Livewire', $config);
$this->filesystem()->put('config/livewire.php', $config);
return $next($console);
}
$componentNames = [];
$results = collect($this->filesystem()->allFiles('app/Http/Livewire'))->map(function($file) {
return str($file)->after('app/Http/Livewire/')->before('.php')->__toString();
})->map(function($component) use (&$componentNames) {
// Track component names to update namespace references later on.
$componentNames[] = $component;
$parser = new ComponentParser(
'App\\Http\\Livewire',
config('livewire.view_path'),
$component,
);
$newParser = new ComponentParserFromExistingComponent(
'App\\Livewire',
config('livewire.view_path'),
$component,
$parser
);
if ($this->filesystem()->exists($newParser->relativeClassPath())) {
return ['Skipped', $component, 'Already exists'];
}
if($this->filesystem()->directoryMissing(dirname($newParser->relativeClassPath()))) {
$this->filesystem()->createDirectory(dirname($newParser->relativeClassPath()));
}
$this->filesystem()->put($newParser->relativeClassPath(), $newParser->classContents());
$this->filesystem()->delete($parser->relativeClassPath());
return ['Migrated', $component];
});
foreach($componentNames as $name) {
$name = str($name)->replace('/', '\\\\')->toString();
// Update any namespace references
$this->patternReplacement(
pattern: "/App\\\Http\\\Livewire\\\({$name})/",
replacement: 'App\Livewire\\\$1',
directories: [
'app',
'resources/views',
'routes',
'tests',
]
);
}
// Update vite config
$this->patternReplacement(
pattern: '/App\/Http\/Livewire/',
replacement: 'App/Livewire',
mode: 'manual',
files: 'vite.config.js'
);
$console->table(
['Status', 'Component', 'Remark'], $results
);
}
return $next($console);
}
protected function hasOldNamespace()
{
return $this->filesystem()->exists('app/Http/Livewire') || config('livewire.class_namespace') === 'App\\Http\\Livewire';
}
}

View File

@ -0,0 +1,39 @@
<?php
namespace Livewire\Features\SupportConsoleCommands\Commands\Upgrade;
use Livewire\Features\SupportConsoleCommands\Commands\UpgradeCommand;
class ChangeForgetComputedToUnset extends UpgradeStep
{
public function handle(UpgradeCommand $console, \Closure $next)
{
$this->interactiveReplacement(
console: $console,
title: 'The forgetComputed component method is replaced by PHP\'s unset function',
before: '$this->forgetComputed(\'title\')',
after: 'unset($this->title)',
pattern: '/\$this->forgetComputed\((.*?)\);/',
replacement: function($matches) {
$replacement = '';
if(isset($matches[1])) {
preg_match_all('/(?:\'|")(.*?)(?:\'|")/', $matches[1], $keys);
$replacement .= 'unset(';
foreach($keys[1] ?? [] as $key) {
$replacement .= '$this->' . $key . ', ';
}
$replacement = rtrim($replacement, ', ');
$replacement .= ');';
}
// Leave unchanged if no replacement was possible.
return $replacement ?: $matches[0];
},
directories: 'app',
);
return $next($console);
}
}

View File

@ -0,0 +1,22 @@
<?php
namespace Livewire\Features\SupportConsoleCommands\Commands\Upgrade;
use Livewire\Features\SupportConsoleCommands\Commands\UpgradeCommand;
class ChangeLazyToBlurModifierOnWireModelDirectives extends UpgradeStep
{
public function handle(UpgradeCommand $console, \Closure $next)
{
$this->interactiveReplacement(
console: $console,
title: 'The wire:model.lazy modifier is now wire:model.blur.',
before: 'wire:model.lazy',
after: 'wire:model.blur',
pattern: '/wire:model.lazy/',
replacement: 'wire:model.blur',
);
return $next($console);
}
}

View File

@ -0,0 +1,53 @@
<?php
namespace Livewire\Features\SupportConsoleCommands\Commands\Upgrade;
use Livewire\Features\SupportConsoleCommands\Commands\UpgradeCommand;
class ChangeTestAssertionMethods extends UpgradeStep
{
public function handle(UpgradeCommand $console, \Closure $next)
{
$this->interactiveReplacement(
console: $console,
title: 'assertEmitted is now assertDispatched.',
before: 'assertEmitted',
after: 'assertDispatched',
pattern: '/assertEmitted\((.*)\)/',
replacement: 'assertDispatched($1)',
directories: 'tests'
);
$this->interactiveReplacement(
console: $console,
title: 'assertEmittedTo is now assertDispatchedTo.',
before: 'assertEmittedTo',
after: 'assertDispatchedTo',
pattern: '/assertEmittedTo\((.*)\)/',
replacement: 'assertDispatchedTo($1)',
directories: 'tests'
);
$this->interactiveReplacement(
console: $console,
title: 'assertNotEmitted is now assertNotDispatched.',
before: 'assertNotEmitted',
after: 'assertNotDispatched',
pattern: '/assertNotEmitted\((.*)\)/',
replacement: 'assertNotDispatched($1)',
directories: 'tests'
);
$this->interactiveReplacement(
console: $console,
title: 'assertEmittedUp is no longer available.',
before: 'assertEmittedUp',
after: '<removed>',
pattern: '/->assertEmittedUp\(.*\)/',
replacement: '',
directories: 'tests'
);
return $next($console);
}
}

View File

@ -0,0 +1,23 @@
<?php
namespace Livewire\Features\SupportConsoleCommands\Commands\Upgrade;
use Livewire\Features\SupportConsoleCommands\Commands\UpgradeCommand;
class ChangeWireLoadDirectiveToWireInit extends UpgradeStep
{
public function handle(UpgradeCommand $console, \Closure $next)
{
$this->interactiveReplacement(
console: $console,
title: 'The livewire:load is now livewire:init.',
before: 'livewire:load',
after: 'livewire:init',
pattern: '/livewire:load/',
replacement: 'livewire:init',
directories: ['resources/views', 'resources/js']
);
return $next($console);
}
}

View File

@ -0,0 +1,15 @@
<?php
namespace Livewire\Features\SupportConsoleCommands\Commands\Upgrade;
use Livewire\Features\SupportConsoleCommands\Commands\UpgradeCommand;
class ClearViewCache extends UpgradeStep
{
public function handle(UpgradeCommand $console, \Closure $next)
{
$console->call('view:clear');
return $next($console);
}
}

View File

@ -0,0 +1,22 @@
<?php
namespace Livewire\Features\SupportConsoleCommands\Commands\Upgrade;
use Livewire\Features\SupportConsoleCommands\Commands\UpgradeCommand;
class RemoveDeferModifierFromEntangleDirectives extends UpgradeStep
{
public function handle(UpgradeCommand $console, \Closure $next)
{
$this->interactiveReplacement(
console: $console,
title: 'The @entangle(...) directive is now deferred by default.',
before: '@entangle(...).defer',
after: '@entangle(...)',
pattern: '/@entangle\(((?:[^)(]|\((?:[^)(]|\((?:[^)(]|\([^)(]*\))*\))*\))*)\)\.defer/',
replacement: '@entangle($1)',
);
return $next($console);
}
}

View File

@ -0,0 +1,22 @@
<?php
namespace Livewire\Features\SupportConsoleCommands\Commands\Upgrade;
use Livewire\Features\SupportConsoleCommands\Commands\UpgradeCommand;
class RemoveDeferModifierFromWireModelDirectives extends UpgradeStep
{
public function handle(UpgradeCommand $console, \Closure $next)
{
$this->interactiveReplacement(
console: $console,
title: 'The wire:model directive is now deferred by default.',
before: 'wire:model.defer',
after: 'wire:model',
pattern: '/wire:model\.defer/',
replacement: 'wire:model',
);
return $next($console);
}
}

View File

@ -0,0 +1,22 @@
<?php
namespace Livewire\Features\SupportConsoleCommands\Commands\Upgrade;
use Livewire\Features\SupportConsoleCommands\Commands\UpgradeCommand;
class RemovePrefetchModifierFromWireClickDirective extends UpgradeStep
{
public function handle(UpgradeCommand $console, \Closure $next)
{
$this->interactiveReplacement(
console: $console,
title: 'The wire:click.prefetch modifier has been removed.',
before: 'wire:click.prefetch',
after: 'wire:click',
pattern: '/wire:click\.prefetch/',
replacement: 'wire:click',
);
return $next($console);
}
}

View File

@ -0,0 +1,22 @@
<?php
namespace Livewire\Features\SupportConsoleCommands\Commands\Upgrade;
use Livewire\Features\SupportConsoleCommands\Commands\UpgradeCommand;
class RemovePreventModifierFromWireSubmitDirective extends UpgradeStep
{
public function handle(UpgradeCommand $console, \Closure $next)
{
$this->interactiveReplacement(
console: $console,
title: 'The wire:submit directive now prevents submission by default.',
before: 'wire:submit.prevent',
after: 'wire:submit',
pattern: '/wire:submit\.prevent/',
replacement: 'wire:submit',
);
return $next($console);
}
}

Some files were not shown because too many files have changed in this diff Show More