import { AccessPolicy, LibraryItemType, LocationHead } from '@/models/library'; import { CstMatchMode, DependencyMode } from '@/models/miscellaneous'; import { CstType, ExpressionStatus } from '@/models/rsform'; import { IconAlias, IconBusiness, IconCstAxiom, IconCstBaseSet, IconCstConstSet, IconCstFunction, IconCstPredicate, IconCstStructured, IconCstTerm, IconCstTheorem, IconFilter, IconFormula, IconGraphCollapse, IconGraphExpand, IconGraphInputs, IconGraphOutputs, IconHide, IconMoveDown, IconMoveUp, IconOSS, IconPrivate, IconProps, IconProtected, IconPublic, IconRSForm, IconSettings, IconShow, IconStatusError, IconStatusIncalculable, IconStatusOK, IconStatusUnknown, IconSubfolders, IconTemplates, IconTerm, IconText, IconUser } from './Icons'; export interface DomIconProps extends IconProps { value: RequestData; } /** Icon for library item type. */ export function ItemTypeIcon({ value, size = '1.25rem', className }: DomIconProps) { switch (value) { case LibraryItemType.RSFORM: return ; case LibraryItemType.OSS: return ; } } /** Icon for access policy. */ export function PolicyIcon({ value, size = '1.25rem', className }: DomIconProps) { switch (value) { case AccessPolicy.PRIVATE: return ; case AccessPolicy.PROTECTED: return ; case AccessPolicy.PUBLIC: return ; } } /** Icon for visibility. */ export function VisibilityIcon({ value, size = '1.25rem', className }: DomIconProps) { if (value) { return ; } else { return ; } } /** Icon for subfolders. */ export function SubfoldersIcon({ value, size = '1.25rem', className }: DomIconProps) { if (value) { return ; } else { return ; } } /** Icon for location. */ export function LocationIcon({ value, size = '1.25rem', className }: DomIconProps) { switch (value.substring(0, 2) as LocationHead) { case LocationHead.COMMON: return ; case LocationHead.LIBRARY: return ; case LocationHead.PROJECTS: return ; case LocationHead.USER: return ; } } /** Icon for term graph dependency mode. */ export function DependencyIcon({ value, size = '1.25rem', className }: DomIconProps) { switch (value) { case DependencyMode.ALL: return ; case DependencyMode.OUTPUTS: return ; case DependencyMode.INPUTS: return ; case DependencyMode.EXPAND_OUTPUTS: return ; case DependencyMode.EXPAND_INPUTS: return ; } } /** Icon for constituenta match mode. */ export function MatchModeIcon({ value, size = '1.25rem', className }: DomIconProps) { switch (value) { case CstMatchMode.ALL: return ; case CstMatchMode.TEXT: return ; case CstMatchMode.EXPR: return ; case CstMatchMode.TERM: return ; case CstMatchMode.NAME: return ; } } /** Icon for expression status. */ export function StatusIcon({ value, size = '1.25rem', className }: DomIconProps) { switch (value) { case ExpressionStatus.VERIFIED: case ExpressionStatus.PROPERTY: return ; case ExpressionStatus.UNKNOWN: return ; case ExpressionStatus.INCALCULABLE: return ; case ExpressionStatus.INCORRECT: case ExpressionStatus.UNDEFINED: return ; } } /** Icon for constituenta type. */ export function CstTypeIcon({ value, size = '1.25rem', className }: DomIconProps) { switch (value) { case CstType.BASE: return ; case CstType.CONSTANT: return ; case CstType.STRUCTURED: return ; case CstType.TERM: return ; case CstType.AXIOM: return ; case CstType.FUNCTION: return ; case CstType.PREDICATE: return ; case CstType.THEOREM: return ; } } /** Icon for relocation direction. */ export function RelocateUpIcon({ value, size = '1.25rem', className }: DomIconProps) { if (value) { return ; } else { return ; } }