-
Notifications
You must be signed in to change notification settings - Fork 11
/
index.ts
87 lines (80 loc) · 2.85 KB
/
index.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
import type { categories, elem_symbols } from './labels'
export { default as BohrAtom } from './BohrAtom.svelte'
export { default as ColorBar } from './ColorBar.svelte'
export { default as ColorCustomizer } from './ColorCustomizer.svelte'
export { default as ColorScaleSelect } from './ColorScaleSelect.svelte'
export { default as element_data } from './element-data'
export { default as ElementHeading } from './ElementHeading.svelte'
export { default as ElementPhoto } from './ElementPhoto.svelte'
export { default as ElementScatter } from './ElementScatter.svelte'
export { default as ElementStats } from './ElementStats.svelte'
export { default as ElementTile } from './ElementTile.svelte'
export { default as Icon } from './Icon.svelte'
export { default as Line } from './Line.svelte'
export { default as Nucleus } from './Nucleus.svelte'
export { default, default as PeriodicTable } from './PeriodicTable.svelte'
export { default as PropertySelect } from './PropertySelect.svelte'
export { default as ScatterPlot } from './ScatterPlot.svelte'
export { default as ScatterPoint } from './ScatterPoint.svelte'
export { default as TableInset } from './TableInset.svelte'
export type Category = (typeof categories)[number]
export type ElementSymbol = (typeof elem_symbols)[number]
export type ChemicalElement = {
'cpk-hex': string | null
appearance: string
atomic_mass: number
atomic_radius: number
boiling_point: number | null
category: Category
column: number // aka group, in range 1 - 18
covalent_radius: number
density: number
discoverer: string
electron_affinity: number
electron_configuration_semantic: string
electron_configuration: string
electronegativity_pauling: number | null
electronegativity: number | null
first_ionization: number
ionization_energies: number[]
jmol_color: string
melting_point: number | null
metal: boolean | null
metalloid: boolean | null
molar_heat: number | null
electrons: number
neutrons: number
protons: number
n_shells: number
n_valence: number
name: string
natural: boolean | null
nonmetal: boolean | null
number_of_isotopes: number
number: number
period: number
phase: 'Gas' | 'Liquid' | 'Solid'
radioactive: boolean | null
row: number // != period for lanthanides and actinides
shells: number[]
specific_heat: number
spectral_img: string
summary: string
symbol: string
year: number | string
}
export type Coords = { x: number; y: number }
export type DispatchPayload = CustomEvent<{
element: ChemicalElement
active: boolean // whether the event target tile is currently active
dom_event: Event // the DOM event that triggered the Svelte dispatch
}>
export type PeriodicTableEvents = {
click: DispatchPayload
mouseenter: DispatchPayload
mouseleave: DispatchPayload
keyup: DispatchPayload
keydown: DispatchPayload
focus: DispatchPayload
blur: DispatchPayload
}