--- import BadgeList from '@ui/BadgeList.astro' import { people } from '@shared/lib/people' import Icon from '@ui/Icon.astro' import { formatLongDate } from '@shared/lib/date-format' import { randomItem, randomDate } from '@shared/lib/pseudo-random' import Avatar from '@ui/Avatar.astro' import Button from '@ui/Button.astro' import ButtonList from '@ui/ButtonList.astro' import Pagination from '@ui/Pagination.astro' import tableProperties from '@data/table-properties.json' import CaptureScript from '../CaptureScript.astro' import { requireIndex } from '@shared/lib/array' import CardTitle from '@ui/CardTitle.astro' interface Props { id: string } interface AdvancedTableProperties { headers: { 'data-sort': string; 'name': string }[] } const { id: tableId } = Astro.props const statuses = ['Active', 'Inactive', 'Requested'] const perPage = ['10', '20', '50', '100'] const categories = ['Agencies', 'Individual', 'Event', 'Ticket'] const tags = ['QTA,Event,Tickets,TODO', 'Event,Tickets', 'QTA,Event', 'Tickets'] const advancedTable = (tableProperties as { 'advanced-table': AdvancedTableProperties })['advanced-table'] const headers = advancedTable.headers const rows = people.map((person, i) => { const index = i + 1 const status = randomItem(index + 5, statuses) const itemTags = randomItem(index + 5, tags).split(',') const category = randomItem(index, categories) const date = formatLongDate(randomDate(index)) return { person, index, status, itemTags, category, date } }) const perPageDefault = requireIndex(perPage, 1) const sortKeys = headers.map((header) => header['data-sort']) ---
Table description.
| { headers.map((header) => ( | )) } | |||||
|---|---|---|---|---|---|---|
|
|
{person.city}, {person.country} | {status === 'Active' ? Active : status === 'Inactive' ? Inactive : Requested} | {date} |
|
{category}
|