Skip to content

Commit e2328dc

Browse files
committed
feat(suir): added typings to components
1 parent 111bd7a commit e2328dc

22 files changed

+415
-5
lines changed
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import { UseFieldApiComponentConfig, AnyObject } from "@data-driven-forms/react-form-renderer";
2+
import { CheckboxProps as SuirCheckboxProps, FormFieldProps, HeaderProps } from 'semantic-ui-react';
3+
import { ReactNode } from "react";
4+
import { FormFieldGridProps, HelperTextProps } from "./form-field-grid";
5+
import { CommonFieldProps } from "./common-field-props";
6+
7+
export interface CheckboxOption extends AnyObject {
8+
label: ReactNode;
9+
value?: any;
10+
}
11+
12+
export interface CheckboxProps extends SuirCheckboxProps {
13+
options?: CheckboxOption[];
14+
/** Sub components customization API */
15+
FormFieldProps?: FormFieldProps;
16+
HeaderProps?: HeaderProps;
17+
OptionsListProps?: React.HTMLProps<HTMLDivElement>;
18+
}
19+
20+
declare const Checkbox: React.ComponentType<CheckboxProps & CommonFieldProps & UseFieldApiComponentConfig>;
21+
22+
export default Checkbox;
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import { ReactNode } from "react";
2+
import { FormFieldGridProps, HelperTextProps } from "./form-field-grid";
3+
4+
export interface CommonFieldProps {
5+
isReadOnly?: boolean;
6+
isDisabled?: boolean;
7+
isRequired?: boolean;
8+
label?: ReactNode;
9+
helperText?: ReactNode;
10+
description?: ReactNode;
11+
validateOnMount?: boolean;
12+
id?: string;
13+
/** Sub components customization API */
14+
FormFieldGridProps?: FormFieldGridProps;
15+
HelperTextProps?: HelperTextProps;
16+
}
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
import { ComponentTypes } from '@data-driven-forms/react-form-renderer';
2+
3+
interface Components {
4+
TextField: React.ComponentType;
5+
Textarea: React.ComponentType;
6+
Select: React.ComponentType;
7+
Checkbox: React.ComponentType;
8+
Radio: React.ComponentType;
9+
Switch: React.ComponentType;
10+
DatePicker: React.ComponentType;
11+
TimePicker: React.ComponentType;
12+
PlainText: React.ComponentType;
13+
SubForm: React.ComponentType;
14+
Wizard: React.ComponentType;
15+
DualListSelect: React.ComponentType;
16+
Slider: React.ComponentType;
17+
}
18+
19+
interface componentMapper {
20+
[ComponentTypes.TEXT_FIELD]: React.ComponentType;
21+
[ComponentTypes.TEXTAREA]: React.ComponentType;
22+
[ComponentTypes.SELECT]: React.ComponentType;
23+
[ComponentTypes.CHECKBOX]: React.ComponentType;
24+
[ComponentTypes.SUB_FORM]: React.ComponentType;
25+
[ComponentTypes.RADIO]: React.ComponentType;
26+
[ComponentTypes.TABS]: React.ComponentType;
27+
[ComponentTypes.DATE_PICKER]: React.ComponentType;
28+
[ComponentTypes.TIME_PICKER]: React.ComponentType;
29+
[ComponentTypes.SWITCH]: React.ComponentType;
30+
[ComponentTypes.PLAIN_TEXT]: React.ComponentType;
31+
[ComponentTypes.WIZARD]: React.ComponentType;
32+
[ComponentTypes.FIELD_ARRAY]: React.ComponentType;
33+
[ComponentTypes.DUAL_LIST_SELECT]: React.ComponentType;
34+
[ComponentTypes.SLIDER]: React.ComponentType;
35+
}
36+
37+
interface RawComponents {
38+
RawSelect: React.ComponentType;
39+
}
40+
41+
export const rawComponents: RawComponents;
42+
43+
declare const componentMapper: componentMapper;
44+
45+
export const components: Components;
46+
47+
export default componentMapper;
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import { UseFieldApiComponentConfig } from "@data-driven-forms/react-form-renderer";
2+
import { CommonFieldProps } from "./common-field-props";
3+
4+
export interface DatePickerProps {}
5+
6+
declare const DatePicker: React.ComponentType<DatePickerProps & CommonFieldProps & UseFieldApiComponentConfig>;
7+
8+
export default DatePicker;

packages/suir-component-mapper/src/files/date-picker.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@ DatePicker.propTypes = {
5353
label: PropTypes.node,
5454
helperText: PropTypes.node,
5555
validateOnMount: PropTypes.bool,
56-
locale: PropTypes.string,
5756
description: PropTypes.node,
5857
/** Sub components customization API */
5958
FormFieldGridProps: PropTypes.object,
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
import { UseFieldApiComponentConfig } from "@data-driven-forms/react-form-renderer";
2+
import { CommonFieldProps } from "./common-field-props";
3+
import { ReactNode } from "react";
4+
import { SegmentProps, FormFieldProps, InputProps, GridColumnProps, ButtonProps, HeaderProps } from "semantic-ui-react";
5+
6+
export interface DualListSelectOption {
7+
label: ReactNode;
8+
value?: any;
9+
}
10+
11+
export interface DualListSelectOptionProps extends React.HTMLProps<HTMLDivElement> {
12+
selectedClassName?: string;
13+
}
14+
15+
export interface DualListSelectProps {
16+
leftTitle?: ReactNode;
17+
rightTitle?: ReactNode;
18+
moveLeftTitle?: ReactNode;
19+
moveRightTitle?: ReactNode;
20+
allToLeft?: boolean;
21+
allToRight?: boolean;
22+
moveAllLeftTitle?: ReactNode;
23+
moveAllRightTitle?: ReactNode;
24+
noValueTitle?: ReactNode;
25+
noOptionsTitle?: ReactNode;
26+
filterOptionsTitle?: ReactNode;
27+
filterValueTitle?: ReactNode;
28+
filterValueText?: ReactNode;
29+
filterOptionsText?: ReactNode;
30+
leftValues?: DualListSelectOption[];
31+
rightValues?: DualListSelectOption[];
32+
/** Sub components customization API */
33+
OptionsListProps?: SegmentProps;
34+
OptionProps?: DualListSelectOptionProps;
35+
LabelProps?: FormFieldProps;
36+
ToolbarProps?: InputProps;
37+
ButtonGridProps?: GridColumnProps;
38+
RightButtonProps?: ButtonProps;
39+
DoubleRightButtonProps?: ButtonProps;
40+
LeftButtonProps?: ButtonProps;
41+
DoubleLeftButtonProps?: ButtonProps;
42+
OptionsHeaderProps?: HeaderProps;
43+
ValuesHeaderProps?: HeaderProps;
44+
}
45+
46+
declare const DualListSelect: React.ComponentType<DualListSelectProps & CommonFieldProps & UseFieldApiComponentConfig>;
47+
48+
export default DualListSelect;
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
import { ReactNode } from "react";
2+
import { FieldArrayField } from "@data-driven-forms/react-form-renderer";
3+
import { ButtonGroupProps, ButtonProps, HeaderProps } from "semantic-ui-react";
4+
5+
export interface FieldArrayButtonLabels {
6+
add?: ReactNode;
7+
remove?: ReactNode;
8+
}
9+
10+
export interface FieldArrayProps {
11+
label?: ReactNode;
12+
description?: ReactNode;
13+
fields: FieldArrayField[];
14+
defaultItem?: any;
15+
minItems?: number;
16+
maxItems?: number;
17+
noItemsMessage?: ReactNode;
18+
buttonLabels?: FieldArrayButtonLabels;
19+
/** Sub components customization API */
20+
FieldArrayGridProps?: React.HTMLProps<HTMLDivElement>;
21+
FieldArrayHeaderProps?: React.HTMLProps<HTMLDivElement>;
22+
FieldArrayButtonGridProps?: React.HTMLProps<HTMLDivElement>;
23+
ButtonGroupProps?: ButtonGroupProps;
24+
UndoButtonProps?: ButtonProps;
25+
RedoButtonProps?: ButtonProps;
26+
AddButtonProps?: ButtonProps;
27+
DescriptionProps?: HeaderProps;
28+
ArrayItemsGridProps?: React.HTMLProps<HTMLDivElement>;
29+
NoItemsProps?: React.HTMLProps<HTMLParagraphElement>;
30+
RemoveButtonProps?: ButtonProps;
31+
ArrayItemGridProps?: React.HTMLProps<HTMLDivElement>;
32+
ArrayItemFieldsGridProps?: React.HTMLProps<HTMLDivElement>;
33+
}
34+
35+
declare const FieldArray: React.ComponentType<FieldArrayProps>;
36+
37+
export default FieldArray;
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import { ReactNode } from "react";
2+
3+
export interface HelperTextProps {
4+
className?: string;
5+
}
6+
7+
export interface FormFieldGridProps {
8+
className?: string;
9+
helperText?: ReactNode;
10+
HelperTextProps?: HelperTextProps;
11+
}
12+
13+
declare const FormFieldGrid: React.ComponentType<FormFieldGridProps>;
14+
15+
export default FormFieldGrid;
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import { FormTemplateRenderProps } from "@data-driven-forms/react-form-renderer";
2+
3+
export interface FormTemplateProps extends FormTemplateRenderProps {
4+
FormWrapper?: React.ComponentType;
5+
Button?: React.ComponentType;
6+
ButtonGroup?: React.ComponentType;
7+
Title?: React.ComponentType;
8+
Description?: React.ComponentType;
9+
FormWrapperProps?: React.HTMLAttributes<HTMLFormElement>;
10+
}
11+
12+
declare const FormTemplate: React.ComponentType<FormTemplateProps>;
13+
14+
export default FormTemplate;
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import { ReactNode } from "react";
2+
3+
export interface PlainTextProps {
4+
label: ReactNode;
5+
name: string;
6+
variant?: 'p'|'span'|'strong'|'b'|'cite'|'caption'|'code'|'em'|'i'|'h1'|'h2'|'h3'|'h4'|'h5'|'h6'|'h6'|'div'|'label'|'pre'|'q'|'samp'|'small'|'sub'|'sup';
7+
}
8+
9+
declare const PlainText: React.ComponentType<PlainTextProps>;
10+
11+
export default PlainText;

0 commit comments

Comments
 (0)