Files
michaelschiemer/src/Framework/View/ValueObjects/AdminTableAttribute.php
2025-11-24 21:28:25 +01:00

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, '-'));
}
}