envoc-form 4.0.1-0 → 4.0.1-3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/DatePicker/DateOnlyDatePickerGroup.d.ts +10 -0
- package/es/DatePicker/DateOnlyDatePickerGroup.js +23 -0
- package/es/DatePicker/DatePickerGroup.d.ts +9 -0
- package/es/{DatePickerInput/DatePickerInput.js → DatePicker/DatePickerGroup.js} +21 -18
- package/es/DatePicker/DatePickerHelper.d.ts +3 -0
- package/es/DatePicker/DatePickerHelper.js +1 -0
- package/es/DatePicker/StringDatePickerGroup.d.ts +5 -0
- package/es/DatePicker/StringDatePickerGroup.js +19 -0
- package/es/Field/Field.d.ts +2 -2
- package/es/Field/Field.js +1 -1
- package/es/Field/StandAloneInput.d.ts +9 -0
- package/es/Field/StandAloneInput.js +49 -0
- package/es/Group.d.ts +1 -1
- package/es/Input/StringInputGroup.d.ts +1 -1
- package/es/TextArea/TextAreaGroup.d.ts +8 -0
- package/es/TextArea/TextAreaGroup.js +33 -0
- package/es/Validation/validators.d.ts +1 -1
- package/es/Validation/validators.js +1 -1
- package/es/index.d.ts +20 -5
- package/es/index.js +8 -1
- package/lib/DatePicker/DateOnlyDatePickerGroup.d.ts +10 -0
- package/lib/DatePicker/DateOnlyDatePickerGroup.js +29 -0
- package/lib/DatePicker/DatePickerGroup.d.ts +9 -0
- package/lib/{DatePickerInput/DatePickerInput.js → DatePicker/DatePickerGroup.js} +24 -19
- package/lib/DatePicker/DatePickerHelper.d.ts +3 -0
- package/lib/DatePicker/DatePickerHelper.js +2 -0
- package/lib/DatePicker/StringDatePickerGroup.d.ts +5 -0
- package/lib/DatePicker/StringDatePickerGroup.js +25 -0
- package/lib/Field/Field.d.ts +2 -2
- package/lib/Field/Field.js +1 -1
- package/lib/Field/StandAloneInput.d.ts +9 -0
- package/lib/Field/StandAloneInput.js +75 -0
- package/lib/Group.d.ts +1 -1
- package/lib/Input/StringInputGroup.d.ts +1 -1
- package/lib/TextArea/TextAreaGroup.d.ts +8 -0
- package/lib/TextArea/TextAreaGroup.js +38 -0
- package/lib/Validation/validators.d.ts +1 -1
- package/lib/Validation/validators.js +1 -1
- package/lib/index.d.ts +20 -5
- package/lib/index.js +16 -3
- package/package.json +2 -2
- package/src/AddressInput/__snapshots__/AddressInput.test.tsx.snap +4 -0
- package/src/DatePicker/DateOnlyDatePickerGroup.tsx +24 -0
- package/src/{DatePickerInput/DatePickerInput.test.tsx → DatePicker/DatePicker.test.tsx} +3 -3
- package/src/DatePicker/DatePickerGroup.tsx +87 -0
- package/src/DatePicker/DatePickerHelper.ts +4 -0
- package/src/DatePicker/StringDatePickerGroup.tsx +14 -0
- package/src/{DatePickerInput/__snapshots__/DatePickerInput.test.tsx.snap → DatePicker/__snapshots__/DatePicker.test.tsx.snap} +0 -0
- package/src/Field/Field.tsx +8 -5
- package/src/Field/StandAloneInput.tsx +51 -0
- package/src/File/__snapshots__/FileGroup.test.tsx.snap +1 -0
- package/src/Group.tsx +1 -1
- package/src/Input/StringInputGroup.tsx +9 -1
- package/src/Input/__Tests__/__snapshots__/IconInputGroup.test.tsx.snap +1 -0
- package/src/Input/__Tests__/__snapshots__/MoneyInputGroup.test.tsx.snap +1 -0
- package/src/Input/__Tests__/__snapshots__/NumberInputGroup.test.tsx.snap +1 -0
- package/src/Input/__Tests__/__snapshots__/StringInputGroup.test.tsx.snap +1 -0
- package/src/TextArea/TextAreaGroup.tsx +55 -0
- package/src/Validation/validators.ts +2 -2
- package/src/index.ts +41 -5
- package/es/DatePickerInput/DatePickerInput.d.ts +0 -14
- package/lib/DatePickerInput/DatePickerInput.d.ts +0 -14
- package/src/DatePickerInput/DatePickerInput.tsx +0 -85
@@ -0,0 +1,55 @@
|
|
1
|
+
import React, { LegacyRef } from 'react';
|
2
|
+
import classNames from 'classnames';
|
3
|
+
import { InjectedFieldProps } from '../Field/InjectedFieldProps';
|
4
|
+
import Group, { GroupProps } from '../Group';
|
5
|
+
|
6
|
+
export interface TextAreaGroupProps
|
7
|
+
extends InjectedFieldProps<string | undefined>,
|
8
|
+
Omit<
|
9
|
+
React.HTMLProps<HTMLTextAreaElement>,
|
10
|
+
keyof InjectedFieldProps<any> | 'children' | 'className' | 'label'
|
11
|
+
>,
|
12
|
+
Omit<GroupProps, keyof InjectedFieldProps<any> | 'children'> {
|
13
|
+
icon?: React.ReactNode;
|
14
|
+
}
|
15
|
+
|
16
|
+
/** generic controlled <textarea/> wrapped by a Group */
|
17
|
+
function TextAreaGroup(
|
18
|
+
{
|
19
|
+
input,
|
20
|
+
meta,
|
21
|
+
label,
|
22
|
+
helpText,
|
23
|
+
className,
|
24
|
+
disabled,
|
25
|
+
icon,
|
26
|
+
...rest
|
27
|
+
}: TextAreaGroupProps,
|
28
|
+
ref: LegacyRef<HTMLTextAreaElement>
|
29
|
+
) {
|
30
|
+
return (
|
31
|
+
<Group
|
32
|
+
input={input}
|
33
|
+
meta={meta}
|
34
|
+
disabled={disabled}
|
35
|
+
label={label}
|
36
|
+
helpText={helpText}
|
37
|
+
className={classNames(className, 'text-area-group')}>
|
38
|
+
{icon}
|
39
|
+
<textarea
|
40
|
+
{...input}
|
41
|
+
{...rest}
|
42
|
+
value={input.value}
|
43
|
+
onChange={(val) => input.onChange(val.target.value)}
|
44
|
+
ref={ref}
|
45
|
+
className={classNames(className, 'text-area-group')}
|
46
|
+
/>
|
47
|
+
</Group>
|
48
|
+
);
|
49
|
+
}
|
50
|
+
|
51
|
+
const TextAreaGroupWithRef = React.forwardRef(
|
52
|
+
TextAreaGroup
|
53
|
+
) as React.ComponentType<TextAreaGroupProps>;
|
54
|
+
|
55
|
+
export default TextAreaGroupWithRef;
|
@@ -15,11 +15,11 @@ export const length = (len: number) => (value: string | number | undefined) => {
|
|
15
15
|
return !hasError ? undefined : `Length must be ${len}`;
|
16
16
|
};
|
17
17
|
|
18
|
-
export const integer = (val: string | undefined) => {
|
18
|
+
export const integer = (val: string | number | undefined) => {
|
19
19
|
if (!val) {
|
20
20
|
return undefined;
|
21
21
|
}
|
22
|
-
if (!Number.isInteger(parseFloat(val))) {
|
22
|
+
if (!Number.isInteger(typeof val === 'number' ? val : parseFloat(val))) {
|
23
23
|
return 'Must be a whole number';
|
24
24
|
}
|
25
25
|
};
|
package/src/index.ts
CHANGED
@@ -15,19 +15,38 @@ export { default as ConfirmDeleteForm } from './ConfirmDeleteForm/ConfirmDeleteF
|
|
15
15
|
export type { ConfirmDeleteFormProps } from './ConfirmDeleteForm/ConfirmDeleteForm';
|
16
16
|
|
17
17
|
// Date
|
18
|
-
export { default as
|
19
|
-
export type {
|
18
|
+
export { default as DatePickerGroup } from './DatePicker/DatePickerGroup';
|
19
|
+
export type { DatePickerGroupProps as DatePickerGroupProps } from './DatePicker/DatePickerGroup';
|
20
|
+
export { convertToTimeZoneInsensitiveISOString } from './DatePicker/DatePickerGroup';
|
21
|
+
|
22
|
+
export type { DatePickerHelper } from './DatePicker/DatePickerHelper';
|
23
|
+
|
24
|
+
export { default as DateOnlyDatePickerGroup } from './DatePicker/DateOnlyDatePickerGroup';
|
25
|
+
export type {
|
26
|
+
DateOnly,
|
27
|
+
DateOnlyDatePickerGroupProps,
|
28
|
+
} from './DatePicker/DateOnlyDatePickerGroup';
|
29
|
+
|
30
|
+
export { default as StringDatePickerGroup } from './DatePicker/StringDatePickerGroup';
|
31
|
+
export type { StringDatePickerGroupProps } from './DatePicker/StringDatePickerGroup';
|
20
32
|
|
21
33
|
// Field
|
22
34
|
export { default as Field } from './Field/Field';
|
23
35
|
export type { FieldProps } from './Field/Field';
|
24
36
|
|
37
|
+
export type { RenderComponent } from './Field/Field';
|
38
|
+
export type { RenderComponentProps } from './Field/Field';
|
39
|
+
|
25
40
|
export { default as FieldErrorScrollTarget } from './Field/FieldErrorScrollTarget';
|
26
41
|
|
27
42
|
export { FieldNameContext } from './Field/FieldNameContext';
|
28
43
|
|
29
44
|
export type { InjectedFieldProps } from './Field/InjectedFieldProps';
|
30
45
|
|
46
|
+
export { default as StandAloneInput } from './Field/StandAloneInput';
|
47
|
+
|
48
|
+
export type { StandAloneInputProps } from './Field/StandAloneInput';
|
49
|
+
|
31
50
|
export { default as useStandardField } from './Field/useStandardField';
|
32
51
|
export type { useStandardFieldProps } from './Field/useStandardField';
|
33
52
|
|
@@ -54,6 +73,9 @@ export type {
|
|
54
73
|
export { default as FormActions } from './FormActions';
|
55
74
|
export type { FormActionsProps as FormActionsProps } from './FormActions';
|
56
75
|
|
76
|
+
export { default as StandardFormActions } from './StandardFormActions';
|
77
|
+
export type { StandardFormActionsProps as StandardFormActionsProps } from './StandardFormActions';
|
78
|
+
|
57
79
|
// Input
|
58
80
|
export { default as Group } from './Group';
|
59
81
|
export type { GroupProps as GroupProps } from './Group';
|
@@ -79,7 +101,7 @@ export * as normalizers from './Normalization/normalizers';
|
|
79
101
|
|
80
102
|
// Select
|
81
103
|
export { default as SelectGroup } from './Select/SelectGroup';
|
82
|
-
export type { SelectGroupProps } from './Select/SelectGroup';
|
104
|
+
export type { SelectGroupProps, SelectOption } from './Select/SelectGroup';
|
83
105
|
|
84
106
|
export { BooleanSelectGroup } from './Select/BooleanSelectGroup';
|
85
107
|
export type { BooleanSelectGroupProps } from './Select/BooleanSelectGroup';
|
@@ -88,13 +110,27 @@ export {
|
|
88
110
|
MultiNumberSelectGroup,
|
89
111
|
SingleNumberSelectGroup,
|
90
112
|
} from './Select/NumberSelectGroup';
|
91
|
-
export type {
|
113
|
+
export type {
|
114
|
+
MultiNumberSelectGroupProps,
|
115
|
+
SingleNumberSelectGroupProps,
|
116
|
+
} from './Select/NumberSelectGroup';
|
117
|
+
|
118
|
+
export type { SelectGroupPropsHelper } from './Select/SelectGroupPropsHelper';
|
92
119
|
|
93
120
|
export {
|
94
121
|
MultiStringSelectGroup,
|
95
122
|
SingleStringSelectGroup,
|
96
123
|
} from './Select/StringSelectGroup';
|
97
|
-
export type {
|
124
|
+
export type {
|
125
|
+
MultiStringSelectGroupProps,
|
126
|
+
SingleStringSelectGroupProps,
|
127
|
+
} from './Select/StringSelectGroup';
|
128
|
+
|
129
|
+
// Text Area
|
130
|
+
|
131
|
+
export { default as TextAreaGroup } from './TextArea/TextAreaGroup';
|
132
|
+
|
133
|
+
export type { TextAreaGroupProps } from './TextArea/TextAreaGroup';
|
98
134
|
|
99
135
|
// Utils
|
100
136
|
export { default as objectContainsNonSerializableProperty } from './utils/objectContainsNonSerializableProperty';
|
@@ -1,14 +0,0 @@
|
|
1
|
-
/// <reference types="react" />
|
2
|
-
import { DatePickerProps } from 'react-date-picker';
|
3
|
-
import { InjectedFieldProps } from '../Field/InjectedFieldProps';
|
4
|
-
import { GroupProps } from '../Group';
|
5
|
-
export interface DateOnly {
|
6
|
-
year?: number;
|
7
|
-
month?: number;
|
8
|
-
day?: number;
|
9
|
-
}
|
10
|
-
declare type InjectedDate = InjectedFieldProps<DateOnly | undefined>;
|
11
|
-
export interface DatePickerInputProps extends InjectedDate, Omit<DatePickerProps, keyof InjectedDate | 'name' | 'value' | 'className'>, Omit<GroupProps, keyof InjectedDate | 'children'> {
|
12
|
-
}
|
13
|
-
export default function DatePickerInput({ input, meta, label, helpText, className, disabled, ...rest }: DatePickerInputProps): JSX.Element;
|
14
|
-
export {};
|
@@ -1,14 +0,0 @@
|
|
1
|
-
/// <reference types="react" />
|
2
|
-
import { DatePickerProps } from 'react-date-picker';
|
3
|
-
import { InjectedFieldProps } from '../Field/InjectedFieldProps';
|
4
|
-
import { GroupProps } from '../Group';
|
5
|
-
export interface DateOnly {
|
6
|
-
year?: number;
|
7
|
-
month?: number;
|
8
|
-
day?: number;
|
9
|
-
}
|
10
|
-
declare type InjectedDate = InjectedFieldProps<DateOnly | undefined>;
|
11
|
-
export interface DatePickerInputProps extends InjectedDate, Omit<DatePickerProps, keyof InjectedDate | 'name' | 'value' | 'className'>, Omit<GroupProps, keyof InjectedDate | 'children'> {
|
12
|
-
}
|
13
|
-
export default function DatePickerInput({ input, meta, label, helpText, className, disabled, ...rest }: DatePickerInputProps): JSX.Element;
|
14
|
-
export {};
|
@@ -1,85 +0,0 @@
|
|
1
|
-
import { useState } from 'react';
|
2
|
-
import DatePicker, { DatePickerProps } from 'react-date-picker';
|
3
|
-
import classnames from 'classnames';
|
4
|
-
import parseISO from 'date-fns/parseISO';
|
5
|
-
import { InjectedFieldProps } from '../Field/InjectedFieldProps';
|
6
|
-
import Group, { GroupProps } from '../Group';
|
7
|
-
|
8
|
-
// Docs for react-date-picker https://www.npmjs.com/package/react-date-picker
|
9
|
-
|
10
|
-
// TODO: pick better home for this
|
11
|
-
export interface DateOnly {
|
12
|
-
year?: number;
|
13
|
-
month?: number;
|
14
|
-
day?: number;
|
15
|
-
}
|
16
|
-
|
17
|
-
type InjectedDate = InjectedFieldProps<DateOnly | undefined>;
|
18
|
-
|
19
|
-
export interface DatePickerInputProps
|
20
|
-
extends InjectedDate,
|
21
|
-
Omit<DatePickerProps, keyof InjectedDate | 'name' | 'value' | 'className'>,
|
22
|
-
Omit<GroupProps, keyof InjectedDate | 'children'> {}
|
23
|
-
|
24
|
-
export default function DatePickerInput({
|
25
|
-
input,
|
26
|
-
meta,
|
27
|
-
label,
|
28
|
-
helpText,
|
29
|
-
className,
|
30
|
-
disabled,
|
31
|
-
...rest
|
32
|
-
}: DatePickerInputProps) {
|
33
|
-
const [displayDate, setDisplayDate] = useState<Date | null>(null);
|
34
|
-
|
35
|
-
function handleChange(e: DatePickerProps['value'] | undefined) {
|
36
|
-
const { onChange } = input;
|
37
|
-
if (onChange == null) {
|
38
|
-
return;
|
39
|
-
}
|
40
|
-
|
41
|
-
if (!e) {
|
42
|
-
onChange(undefined);
|
43
|
-
setDisplayDate(null);
|
44
|
-
return;
|
45
|
-
}
|
46
|
-
|
47
|
-
if (e instanceof Date) {
|
48
|
-
const parsedValue = parseISO(e.toISOString().split('T')[0]);
|
49
|
-
|
50
|
-
setDisplayDate(parsedValue);
|
51
|
-
onChange({
|
52
|
-
year: e.getFullYear(),
|
53
|
-
month: e.getMonth() + 1,
|
54
|
-
day: e.getDate(),
|
55
|
-
});
|
56
|
-
} else {
|
57
|
-
// e is instanceof Date[]
|
58
|
-
const parsedValue = parseISO(e[0].toISOString().split('T')[0]);
|
59
|
-
|
60
|
-
setDisplayDate(parsedValue);
|
61
|
-
onChange({
|
62
|
-
year: e[0].getFullYear(),
|
63
|
-
month: e[0].getMonth() + 1,
|
64
|
-
day: e[0].getDate(),
|
65
|
-
});
|
66
|
-
}
|
67
|
-
}
|
68
|
-
|
69
|
-
return (
|
70
|
-
<Group
|
71
|
-
input={input}
|
72
|
-
meta={meta}
|
73
|
-
label={label}
|
74
|
-
helpText={helpText}
|
75
|
-
className={classnames(className, 'date-picker')}
|
76
|
-
disabled={disabled}>
|
77
|
-
<DatePicker
|
78
|
-
{...rest}
|
79
|
-
className={classnames('date-picker', className)}
|
80
|
-
value={displayDate}
|
81
|
-
onChange={handleChange}
|
82
|
-
/>
|
83
|
-
</Group>
|
84
|
-
);
|
85
|
-
}
|