2023-10-08 17:10:59 +00:00
|
|
|
export const flags = ['color', 'commands', 'showall', 'showaux'] as const
|
2023-10-05 06:19:11 +00:00
|
|
|
export type FlagType = (typeof flags)[number]
|
|
|
|
export type ConfigType = Partial<Record<FlagType, boolean>>
|
|
|
|
|
|
|
|
export type AppletDescription
|
|
|
|
html: string
|
|
|
|
params: Record<string, string>
|
|
|
|
id: string
|
|
|
|
width: number
|
|
|
|
height: number
|
|
|
|
|
|
|
|
export type AdapParams
|
|
|
|
codebase?: string
|
|
|
|
loader?: string
|
|
|
|
config?: ConfigType
|
|
|
|
joyceApplets: AppletDescription[]
|
|
|
|
|
|
|
|
export function params(kids: HTMLCollection): Record<string, string>
|
|
|
|
return.value: Record<string, string> := {}
|
|
|
|
for each kid of kids
|
|
|
|
unless kid.tagName is 'PARAM' then continue
|
|
|
|
name := kid.getAttribute 'name'
|
|
|
|
value := kid.getAttribute 'value'
|
|
|
|
unless name and value then continue
|
|
|
|
return.value[name] = value
|
2023-10-08 17:10:59 +00:00
|
|
|
|
|
|
|
prim3d := /polyhedron|sphere|plane|face/
|
|
|
|
export function contains3d(params: Record<string, string>): boolean
|
|
|
|
for value of Object.values(params)
|
|
|
|
if prim3d.test(value) then return true
|
|
|
|
return false
|