Prepare modules

This commit is contained in:
2025-03-22 12:44:30 -06:00
parent 099267ee07
commit 7d8566350d
137 changed files with 3723 additions and 4325 deletions

View File

@ -128,27 +128,6 @@ abstract class AbstractFormOffCanvasComponent extends Component
*/
abstract protected function model(): string;
/**
* Define los campos del formulario.
*
* @return array<string, mixed>
*/
abstract protected function fields(): array;
/**
* Retorna los valores por defecto para los campos del formulario.
*
* @return array<string, mixed> Valores predeterminados.
*/
abstract protected function defaults(): array;
/**
* Campo que se debe enfocar cuando se abra el formulario.
*
* @return string
*/
abstract protected function focusOnOpen(): string;
/**
* Define reglas de validación dinámicas según el modo del formulario.
*
@ -157,13 +136,6 @@ abstract class AbstractFormOffCanvasComponent extends Component
*/
abstract protected function dynamicRules(string $mode): array;
/**
* Devuelve las opciones que se mostrarán en los selectores del formulario.
*
* @return array<string, mixed> Opciones para los campos del formulario.
*/
abstract protected function options(): array;
/**
* Retorna la ruta de la vista asociada al formulario.
*
@ -171,6 +143,50 @@ abstract class AbstractFormOffCanvasComponent extends Component
*/
abstract protected function viewPath(): string;
// ===================== CONFIGURACIÓN =====================
/**
* Define los campos del formulario.
*
* @return array<string, mixed>
*/
protected function fields(): array
{
return (new ($this->model()))->getFillable();
}
/**
* Retorna los valores por defecto para los campos del formulario.
*
* @return array<string, mixed> Valores predeterminados.
*/
protected function defaults(): array
{
return [];
}
/**
* Campo que se debe enfocar cuando se abra el formulario.
*
* @return string
*/
protected function focusOnOpen(): string
{
return '';
}
// ===================== OPCIONES =====================
/**
* Devuelve las opciones que se mostrarán en los selectores del formulario.
*
* @return array<string, mixed> Opciones para los campos del formulario.
*/
protected function options(): array
{
return [];
}
// ===================== VALIDACIONES =====================
protected function attributes(): array
@ -198,7 +214,7 @@ abstract class AbstractFormOffCanvasComponent extends Component
$model = new ($this->model());
$this->tagName = $model->tagName;
$this->tagName = Str::camel($model->tagName);
$this->columnNameLabel = $model->columnNameLabel;
$this->singularName = $model->singularName;
$this->offcanvasId = 'offcanvas' . ucfirst(Str::camel($model->tagName));
@ -288,6 +304,9 @@ abstract class AbstractFormOffCanvasComponent extends Component
$model = $this->model()::find($id);
if ($model) {
dd($this->fields());
$data = $model->only(['id', ...$this->fields()]);
$this->applyCasts($data);