import { faFile, faFolder } from "@fortawesome/free-regular-svg-icons"; import { faPencilAlt } from "@fortawesome/free-solid-svg-icons"; import type { IconDefinition } from "font-awesome-6"; export interface WorkflowInput { id?: string; // unique ID. defaults to module ID moduleId: string; title: string; description: string; stateOverwrites?: { parameter_type?: "text" | "integer" | "boolean" | "color" | "float" | "directory_uri"; collection_type?: "sample_sheet"; }; icon: IconDefinition; } export function getWorkflowInputs(): WorkflowInput[] { return [ { moduleId: "data_input", title: "Input Dataset", description: "Single dataset input", icon: faFile, }, { moduleId: "data_collection_input", title: "Input Dataset Collection", description: "Input for a collection of datasets", icon: faFolder, }, { moduleId: "data_collection_input", title: "Input Sample Sheet Collection", description: "Input for a collection of datasets with attached sample sheet metadata", icon: faFolder, stateOverwrites: { collection_type: "sample_sheet", }, }, { moduleId: "parameter_input", title: "Text Input", description: "Text parameter used for workflow logic", icon: faPencilAlt, stateOverwrites: { parameter_type: "text", }, }, { id: "parameter_input_integer", moduleId: "parameter_input", title: "Integer Input", description: "Whole number parameter used for workflow logic", icon: faPencilAlt, stateOverwrites: { parameter_type: "integer", }, }, { id: "parameter_input_float", moduleId: "parameter_input", title: "Float Input", description: "Imprecise decimal number parameter used for workflow logic", icon: faPencilAlt, stateOverwrites: { parameter_type: "float", }, }, { id: "parameter_input_boolean", moduleId: "parameter_input", title: "Boolean Input", description: "True / False parameter used for workflow logic", icon: faPencilAlt, stateOverwrites: { parameter_type: "boolean", }, }, { id: "parameter_input_color", moduleId: "parameter_input", title: "Color Input", description: "Color parameter used for workflow logic", icon: faPencilAlt, stateOverwrites: { parameter_type: "color", }, }, { id: "parameter_input_directory_uri", moduleId: "parameter_input", title: "Directory Input", description: "Directory parameter used for workflow logic", icon: faPencilAlt, stateOverwrites: { parameter_type: "directory_uri", }, }, ]; }