import { LocationHead } from '@/features/library/models/library'; import { ExpressionStatus } from '@/features/rsform/models/rsform'; import { CstMatchMode, DependencyMode } from '@/features/rsform/stores/cstSearch'; import { IconAlias, IconBusiness, IconFilter, IconFormula, IconGraphCollapse, IconGraphExpand, IconGraphInputs, IconGraphOutputs, IconHide, IconMoveDown, IconMoveUp, type IconProps, IconPublic, IconSettings, IconShow, IconStatusError, IconStatusIncalculable, IconStatusOK, IconStatusUnknown, IconSubfolders, IconTemplates, IconTerm, IconText, IconUser } from './Icons'; export interface DomIconProps extends IconProps { value: RequestData; } /** 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 relocation direction. */ export function RelocateUpIcon({ value, size = '1.25rem', className }: DomIconProps) { if (value) { return ; } else { return ; } }