UNPKG

molstar

Version:

A comprehensive macromolecular library.

50 lines (49 loc) 2.11 kB
/** * Copyright (c) 2018-2019 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author Alexander Rose <alexander.rose@weirdbyte.de> */ import { SizeType, LocationSize } from '../mol-geo/geometry/size-data'; import { ParamDefinition as PD } from '../mol-util/param-definition'; import { ThemeDataContext, ThemeRegistry, ThemeProvider } from '../mol-theme/theme'; export { SizeTheme }; interface SizeTheme<P extends PD.Params> { readonly factory: SizeTheme.Factory<P>; readonly granularity: SizeType; readonly size: LocationSize; readonly props: Readonly<PD.Values<P>>; readonly description?: string; } declare namespace SizeTheme { export type Props = { [k: string]: any; }; export type Factory<P extends PD.Params> = (ctx: ThemeDataContext, props: PD.Values<P>) => SizeTheme<P>; export const EmptyFactory: () => SizeTheme<{}>; export const Empty: SizeTheme<{}>; export function areEqual(themeA: SizeTheme<any>, themeB: SizeTheme<any>): boolean; export interface Provider<P extends PD.Params = any, Id extends string = string> extends ThemeProvider<SizeTheme<P>, P, Id> { } export const EmptyProvider: Provider<{}>; export type Registry = ThemeRegistry<SizeTheme<any>>; export function createRegistry(): ThemeRegistry<SizeTheme<{}>>; export const BuiltIn: { physical: Provider<{ scale: PD.Numeric; }, "physical">; 'shape-group': Provider<{}, "shape-group">; uncertainty: Provider<{ bfactorFactor: PD.Numeric; rmsfFactor: PD.Numeric; baseSize: PD.Numeric; }, "uncertainty">; uniform: Provider<{ value: PD.Numeric; }, "uniform">; }; type _BuiltIn = typeof BuiltIn; export type BuiltIn = keyof _BuiltIn; export type ParamValues<C extends SizeTheme.Provider<any>> = C extends SizeTheme.Provider<infer P> ? PD.Values<P> : never; export type BuiltInParams<T extends BuiltIn> = Partial<ParamValues<_BuiltIn[T]>>; export {}; }