Some checks failed
Deploy Application / deploy (push) Has been cancelled
52 lines
1.2 KiB
PHP
52 lines
1.2 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\Framework\View\ValueObjects;
|
|
|
|
/**
|
|
* Admin Table Attributes
|
|
*
|
|
* Data attributes for admin table functionality including sorting,
|
|
* pagination, searching, and column configuration.
|
|
*/
|
|
enum AdminTableAttribute: string implements DataAttributeInterface
|
|
{
|
|
// Table configuration
|
|
case RESOURCE = 'data-resource';
|
|
case API_ENDPOINT = 'data-api-endpoint';
|
|
case SORTABLE = 'data-sortable';
|
|
case SEARCHABLE = 'data-searchable';
|
|
case PAGINATED = 'data-paginated';
|
|
case PER_PAGE = 'data-per-page';
|
|
|
|
// Column configuration
|
|
case COLUMN = 'data-column';
|
|
case SORT_DIR = 'data-sort-dir';
|
|
|
|
// Pagination
|
|
case PAGE = 'data-page';
|
|
|
|
// Search and pagination containers
|
|
case TABLE_SEARCH = 'data-table-search';
|
|
case TABLE_PAGINATION = 'data-table-pagination';
|
|
|
|
public function value(): string
|
|
{
|
|
return $this->value;
|
|
}
|
|
|
|
public function toSelector(): string
|
|
{
|
|
return '[' . $this->value . ']';
|
|
}
|
|
|
|
public function toDatasetKey(): string
|
|
{
|
|
// Remove "data-" prefix and convert kebab-case to camelCase
|
|
$key = substr($this->value, 5); // Remove "data-"
|
|
return str_replace('-', '', ucwords($key, '-'));
|
|
}
|
|
}
|
|
|