2025-06-20 05:41:10 +00:00
|
|
|
import { TricksterItem } from '../trickster'
|
2022-07-06 07:48:11 +00:00
|
|
|
|
2025-06-20 05:41:10 +00:00
|
|
|
export const BasicColumns = ['uid', 'Image', 'Name', 'Count'] as const
|
2022-07-06 07:48:11 +00:00
|
|
|
|
2025-06-20 05:41:10 +00:00
|
|
|
export const DetailsColumns = ['Desc', 'Use'] as const
|
2022-07-06 07:48:11 +00:00
|
|
|
|
2025-06-20 05:41:10 +00:00
|
|
|
export const MoveColumns = ['MoveCount', 'Move'] as const
|
2022-07-06 07:48:11 +00:00
|
|
|
|
2025-06-20 05:41:10 +00:00
|
|
|
export const TagColumns = ['All', 'Equip', 'Drill', 'Card', 'Quest', 'Consume', 'Compound'] as const
|
2022-07-06 07:48:11 +00:00
|
|
|
|
2025-06-20 05:41:10 +00:00
|
|
|
export const EquipmentColumns = ['MinLvl', 'Slots', 'RefineNumber', 'RefineState'] as const
|
2022-07-06 07:48:11 +00:00
|
|
|
|
|
|
|
|
export const StatsColumns = [
|
2025-06-20 05:41:10 +00:00
|
|
|
'HV',
|
|
|
|
|
'AC',
|
|
|
|
|
'LK',
|
|
|
|
|
'WT',
|
|
|
|
|
'HP',
|
|
|
|
|
'MA',
|
|
|
|
|
'DP',
|
|
|
|
|
'DX',
|
|
|
|
|
'MP',
|
|
|
|
|
'AP',
|
|
|
|
|
'MD',
|
|
|
|
|
'DA',
|
|
|
|
|
'GunAP',
|
2022-07-06 07:48:11 +00:00
|
|
|
] as const
|
|
|
|
|
|
2025-06-20 05:41:10 +00:00
|
|
|
export const DebugColumns = []
|
|
|
|
|
export const HackColumns = [] as const
|
2022-07-06 07:48:11 +00:00
|
|
|
|
|
|
|
|
export const ColumnNames = [
|
|
|
|
|
...BasicColumns,
|
|
|
|
|
...MoveColumns,
|
|
|
|
|
...DetailsColumns,
|
|
|
|
|
...EquipmentColumns,
|
|
|
|
|
...StatsColumns,
|
|
|
|
|
...TagColumns,
|
|
|
|
|
...HackColumns,
|
|
|
|
|
] as const
|
|
|
|
|
|
2025-06-20 05:41:10 +00:00
|
|
|
export type ColumnName = (typeof ColumnNames)[number]
|
2022-07-06 07:48:11 +00:00
|
|
|
|
2025-06-20 05:41:10 +00:00
|
|
|
const c = (a: ColumnName | ColumnInfo): ColumnName => {
|
|
|
|
|
switch (typeof a) {
|
|
|
|
|
case 'string':
|
2022-07-06 07:48:11 +00:00
|
|
|
return a
|
2025-06-20 05:41:10 +00:00
|
|
|
case 'object':
|
2022-07-06 07:48:11 +00:00
|
|
|
return a.name
|
|
|
|
|
}
|
|
|
|
|
}
|
2025-06-20 05:41:10 +00:00
|
|
|
export const LazyColumn = c
|
2022-07-06 07:48:11 +00:00
|
|
|
|
2025-06-20 05:41:10 +00:00
|
|
|
export const ColumnSorter = (a: ColumnName | ColumnInfo, b: ColumnName | ColumnInfo): number => {
|
|
|
|
|
const n1 = ColumnNames.indexOf(c(a))
|
|
|
|
|
const n2 = ColumnNames.indexOf(c(b))
|
|
|
|
|
if (n1 === n2) {
|
2022-07-06 07:48:11 +00:00
|
|
|
return 0
|
|
|
|
|
}
|
|
|
|
|
return n1 > n2 ? 1 : -1
|
|
|
|
|
}
|
|
|
|
|
|
2025-06-20 05:41:10 +00:00
|
|
|
export interface ColumnInfo {
|
2022-07-06 07:48:11 +00:00
|
|
|
name: ColumnName
|
2025-06-20 05:41:10 +00:00
|
|
|
displayName: string
|
2022-07-06 07:48:11 +00:00
|
|
|
|
2025-06-20 05:41:10 +00:00
|
|
|
options?: (s: string[]) => string[]
|
|
|
|
|
renderer?: any
|
|
|
|
|
filtering?: boolean
|
|
|
|
|
writable?: boolean
|
|
|
|
|
getter(item: TricksterItem): string | number
|
2022-07-06 07:48:11 +00:00
|
|
|
}
|