--- // Port of ui/advanced-table.html import BadgesList from './BadgesList.astro' import Icon from './Icon.astro' import { formatLongDate } from '@shared/lib/date-format' import { randomNumber, randomItem, randomDate } from '@shared/lib/pseudo-random' import Avatar from './Avatar.astro' import Button from './Button.astro' import ButtonList from './ButtonList.astro' import Pagination from './Pagination.astro' import people from '@data/people.json' import tableProperties from '@data/table-properties.json' interface Props { id?: string } const { id: tableId = 'advanced-table' } = 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 headers = (tableProperties as Record)['advanced-table'].headers as { 'data-sort': string 'name': string }[] const rows = (people as Record[]).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 } }) // Inline