forked from github/plane
125 lines
2.2 KiB
TypeScript
125 lines
2.2 KiB
TypeScript
// components
|
|
import {
|
|
CheckboxAttributeForm,
|
|
DateTimeAttributeForm,
|
|
EmailAttributeForm,
|
|
FileAttributeForm,
|
|
NumberAttributeForm,
|
|
RelationAttributeForm,
|
|
SelectAttributeForm,
|
|
TextAttributeForm,
|
|
UrlAttributeForm,
|
|
} from "components/custom-attributes";
|
|
// icons
|
|
import {
|
|
AtSign,
|
|
Baseline,
|
|
CaseSensitive,
|
|
CheckCircle,
|
|
Clock4,
|
|
Disc,
|
|
FileMinus,
|
|
Forward,
|
|
Hash,
|
|
Link2,
|
|
LucideIcon,
|
|
} from "lucide-react";
|
|
// types
|
|
import { TCustomAttributeTypes, TCustomAttributeUnits } from "types";
|
|
|
|
export const CUSTOM_ATTRIBUTES_LIST: {
|
|
[key in Partial<TCustomAttributeTypes>]: {
|
|
component: React.FC<any>;
|
|
icon: LucideIcon;
|
|
label: string;
|
|
};
|
|
} = {
|
|
checkbox: {
|
|
component: CheckboxAttributeForm,
|
|
icon: CheckCircle,
|
|
label: "Checkbox",
|
|
},
|
|
datetime: {
|
|
component: DateTimeAttributeForm,
|
|
icon: Clock4,
|
|
label: "Date Time",
|
|
},
|
|
email: {
|
|
component: EmailAttributeForm,
|
|
icon: AtSign,
|
|
label: "Email",
|
|
},
|
|
files: {
|
|
component: FileAttributeForm,
|
|
icon: FileMinus,
|
|
label: "Files",
|
|
},
|
|
multi_select: {
|
|
component: SelectAttributeForm,
|
|
icon: Disc,
|
|
label: "Multi Select",
|
|
},
|
|
number: {
|
|
component: NumberAttributeForm,
|
|
icon: Hash,
|
|
label: "Number",
|
|
},
|
|
option: {
|
|
icon: Baseline,
|
|
label: "Option",
|
|
},
|
|
relation: {
|
|
component: RelationAttributeForm,
|
|
icon: Forward,
|
|
label: "Relation",
|
|
},
|
|
select: {
|
|
component: SelectAttributeForm,
|
|
icon: Disc,
|
|
label: "Select",
|
|
},
|
|
text: {
|
|
component: TextAttributeForm,
|
|
icon: CaseSensitive,
|
|
label: "Text",
|
|
},
|
|
url: {
|
|
component: UrlAttributeForm,
|
|
icon: Link2,
|
|
label: "URL",
|
|
},
|
|
};
|
|
|
|
export const CUSTOM_ATTRIBUTE_UNITS: {
|
|
label: string;
|
|
value: TCustomAttributeUnits;
|
|
}[] = [
|
|
{
|
|
label: "Cycle",
|
|
value: "cycle",
|
|
},
|
|
{
|
|
label: "Issue",
|
|
value: "issue",
|
|
},
|
|
{
|
|
label: "Module",
|
|
value: "module",
|
|
},
|
|
{
|
|
label: "User",
|
|
value: "user",
|
|
},
|
|
];
|
|
|
|
export const DATE_FORMATS = [
|
|
{ label: "Day/Month/Year", value: "DD-MM-YYYY" },
|
|
{ label: "Month/Day/Year", value: "MM-DD-YYYY" },
|
|
{ label: "Year/Month/Day", value: "YYYY-MM-DD" },
|
|
];
|
|
|
|
export const TIME_FORMATS = [
|
|
{ label: "12 Hours", value: "12" },
|
|
{ label: "24 Hours", value: "24" },
|
|
];
|