envoc-form 2.0.1-7 → 2.0.1
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/README.md +7 -7
- package/dist/css/envoc-form-styles.css +43 -5
- package/dist/css/envoc-form-styles.css.map +1 -1
- package/es/AddressInput/AddressInput.js +7 -6
- package/es/ConfirmBaseForm/ConfirmBaseForm.js +3 -2
- package/es/ConfirmDeleteForm/ConfirmDeleteForm.js +2 -1
- package/es/DatePickerInput/DatePickerInput.js +22 -5
- package/es/FileInput/DefaultFileList.js +12 -8
- package/es/FileInput/DropzoneFileInput.js +24 -23
- package/es/FileInput/FileInput.js +31 -9
- package/es/Form/Form.js +4 -2
- package/es/FormGroupWrapper.js +2 -1
- package/es/FormInput/FormInput.js +12 -6
- package/es/FormInputArray/FormInputArray.js +39 -24
- package/es/IconInput.js +2 -1
- package/es/ReactSelectField/ReactSelectField.js +6 -3
- package/es/SubmitFormButton.js +2 -1
- package/es/__Tests__/FormTestBase.js +5 -2
- package/es/normalizers.js +10 -5
- package/es/useStandardFormInput.js +4 -2
- package/es/utils/objectToFormData.js +10 -2
- package/lib/AddressInput/AddressInput.js +14 -8
- package/lib/ConfirmBaseForm/ConfirmBaseForm.js +4 -2
- package/lib/ConfirmDeleteForm/ConfirmDeleteForm.js +3 -1
- package/lib/DatePickerInput/DatePickerInput.js +25 -5
- package/lib/FileInput/DefaultFileList.js +20 -13
- package/lib/FileInput/DropzoneFileInput.js +25 -25
- package/lib/FileInput/FileInput.js +39 -10
- package/lib/Form/Form.js +11 -4
- package/lib/Form/FormBasedPreventNavigation.js +5 -1
- package/lib/FormGroupWrapper.js +3 -1
- package/lib/FormInput/FormInput.js +13 -6
- package/lib/FormInputArray/FormInputArray.js +47 -26
- package/lib/FormSection.js +5 -1
- package/lib/IconInput.js +3 -1
- package/lib/ReactSelectField/ReactSelectField.js +13 -5
- package/lib/ReactSelectField/index.js +6 -2
- package/lib/SubmitFormButton.js +3 -1
- package/lib/__Tests__/FormTestBase.js +6 -2
- package/lib/index.js +7 -3
- package/lib/normalizers.js +10 -5
- package/lib/useStandardFormInput.js +5 -2
- package/lib/utils/objectToFormData.js +10 -2
- package/lib/validators/index.js +5 -1
- package/package.json +99 -93
- package/src/AddressInput/AddesssInput.test.js +23 -23
- package/src/AddressInput/AddressInput.js +73 -73
- package/src/AddressInput/UsStates.js +53 -53
- package/src/AddressInput/__snapshots__/AddesssInput.test.js.snap +207 -207
- package/src/AddressInput/index.js +2 -2
- package/src/BoolInput/BoolInput.js +7 -7
- package/src/BoolInput/BoolInput.test.js +23 -23
- package/src/BoolInput/InlineBoolInput.js +7 -7
- package/src/BoolInput/__snapshots__/BoolInput.test.js.snap +89 -89
- package/src/BoolInput/boolOptions.js +6 -6
- package/src/BoolInput/index.js +4 -4
- package/src/ConfirmBaseForm/ConfirmBaseForm.js +37 -37
- package/src/ConfirmBaseForm/ConfirmBaseForm.test.js +14 -14
- package/src/ConfirmBaseForm/__snapshots__/ConfirmBaseForm.test.js.snap +23 -23
- package/src/ConfirmBaseForm/index.js +1 -1
- package/src/ConfirmDeleteForm/ConfirmDeleteForm.js +39 -39
- package/src/ConfirmDeleteForm/ConfirmDeleteForm.test.js +24 -24
- package/src/ConfirmDeleteForm/__snapshots__/ConfirmDeleteForm.test.js.snap +25 -25
- package/src/ConfirmDeleteForm/index.js +1 -1
- package/src/DatePickerInput/DatePickerInput.js +58 -46
- package/src/DatePickerInput/DatePickerInput.test.js +74 -74
- package/src/DatePickerInput/__snapshots__/DatePickerInput.test.js.snap +134 -134
- package/src/DatePickerInput/date-picker-input.scss +42 -42
- package/src/DatePickerInput/index.js +3 -3
- package/src/ErrorScrollTarget.js +6 -6
- package/src/FileInput/DefaultFileList.js +39 -39
- package/src/FileInput/DropzoneFileInput.js +56 -59
- package/src/FileInput/DropzoneFileInput.test.js +24 -0
- package/src/FileInput/FileInput.js +77 -49
- package/src/FileInput/FileInput.test.js +24 -15
- package/src/FileInput/__snapshots__/DropzoneFileInput.test.js.snap +57 -0
- package/src/FileInput/__snapshots__/FileInput.test.js.snap +58 -22
- package/src/FileInput/file-input.scss +58 -17
- package/src/FileInput/index.js +4 -4
- package/src/Form/FocusError.js +48 -48
- package/src/Form/Form.js +139 -138
- package/src/Form/Form.test.js +23 -23
- package/src/Form/FormBasedPreventNavigation.js +25 -25
- package/src/Form/ServerErrorContext.js +7 -7
- package/src/Form/__snapshots__/Form.test.js.snap +9 -9
- package/src/Form/index.js +3 -3
- package/src/FormGroup.js +30 -30
- package/src/FormGroupWrapper.js +28 -28
- package/src/FormInput/FormInput.js +144 -144
- package/src/FormInput/FormInput.test.js +66 -66
- package/src/FormInput/__snapshots__/FormInput.test.js.snap +323 -316
- package/src/FormInput/form-input.scss +9 -9
- package/src/FormInput/index.js +2 -2
- package/src/FormInputArray/FormInputArray.js +224 -210
- package/src/FormInputArray/FormInputArray.test.js +108 -59
- package/src/FormInputArray/__snapshots__/FormInputArray.test.js.snap +52 -40
- package/src/FormInputArray/form-input-array.scss +13 -8
- package/src/FormInputArray/index.js +2 -2
- package/src/FormSection.js +13 -13
- package/src/IconInput.js +31 -31
- package/src/InlineFormInput/InlineFormInput.js +6 -6
- package/src/InlineFormInput/InlineFormInput.test.js +23 -23
- package/src/InlineFormInput/__snapshots__/InlineFormInput.test.js.snap +26 -26
- package/src/InlineFormInput/index.js +3 -3
- package/src/InlineFormInput/inline-form-input.scss +3 -3
- package/src/MoneyInput/InlineMoneyInput.js +7 -7
- package/src/MoneyInput/MoneyInput.js +7 -7
- package/src/MoneyInput/MoneyInputs.test.js +43 -43
- package/src/MoneyInput/__snapshots__/MoneyInputs.test.js.snap +81 -81
- package/src/MoneyInput/index.js +4 -4
- package/src/MoneyInput/money-input.scss +3 -3
- package/src/MoneyInput/moneyInputProps.js +12 -12
- package/src/NestedFormFieldContext.js +6 -6
- package/src/ReactSelectField/ReactSelectField.js +122 -120
- package/src/ReactSelectField/index.js +6 -6
- package/src/ReactSelectField/react-select-field.scss +5 -5
- package/src/StandardFormActions.js +27 -27
- package/src/SubmitFormButton.js +28 -28
- package/src/__Tests__/FormTestBase.js +14 -11
- package/src/__Tests__/IconInput.test.js +23 -23
- package/src/__Tests__/StandardFormActions.test.js +23 -23
- package/src/__Tests__/SubmitFormButton.test.js +23 -23
- package/src/__Tests__/__snapshots__/IconInput.test.js.snap +38 -38
- package/src/__Tests__/__snapshots__/StandardFormActions.test.js.snap +25 -25
- package/src/__Tests__/__snapshots__/SubmitFormButton.test.js.snap +18 -18
- package/src/__Tests__/index.js +2 -2
- package/src/_variables.scss +11 -11
- package/src/index.js +33 -33
- package/src/normalizers.js +42 -32
- package/src/selectors.js +3 -3
- package/src/styles.scss +7 -7
- package/src/useStandardFormInput.js +118 -118
- package/src/utils/index.js +3 -3
- package/src/utils/objectContainsNonSerializableProperty.js +15 -15
- package/src/utils/objectContainsNonSerializableProperty.test.js +49 -49
- package/src/utils/objectToFormData.js +89 -83
- package/src/utils/objectToFormData.test.js +76 -47
- package/src/utils/typeChecks.js +18 -18
- package/src/validators/index.js +2 -2
- package/src/validators/validators.js +93 -93
- package/src/validators/validators.test.js +79 -79
- package/CHANGELOG.json +0 -95
- package/CHANGELOG.md +0 -58
@@ -1,74 +1,74 @@
|
|
1
|
-
import React from 'react';
|
2
|
-
import { render } from '@testing-library/react';
|
3
|
-
import '@testing-library/jest-dom/extend-expect';
|
4
|
-
import DatePickerInput from './DatePickerInput';
|
5
|
-
|
6
|
-
//hack so the datepicker internals don't complain about this not existing in the context of jest
|
7
|
-
HTMLCanvasElement.prototype.getContext = () => {};
|
8
|
-
|
9
|
-
//Tell console.error to be quiet about the errors so jest output isn't super noisy
|
10
|
-
//https://github.com/facebook/jest/pull/5267#issuecomment-356605468
|
11
|
-
beforeEach(() => {
|
12
|
-
jest.spyOn(console, 'error');
|
13
|
-
console.error.mockImplementation(() => {});
|
14
|
-
});
|
15
|
-
|
16
|
-
afterEach(() => {
|
17
|
-
console.error.mockRestore();
|
18
|
-
});
|
19
|
-
|
20
|
-
describe('DatePickerInput', () => {
|
21
|
-
it('Renders without error', () => {
|
22
|
-
render(
|
23
|
-
<DatePickerInput
|
24
|
-
minDate={new Date('9/23/2020')}
|
25
|
-
maxDate={new Date('09/23/2021')}
|
26
|
-
/>
|
27
|
-
);
|
28
|
-
});
|
29
|
-
|
30
|
-
it('Throws when given an invalid format date', () => {
|
31
|
-
expect(() =>
|
32
|
-
render(
|
33
|
-
<DatePickerInput
|
34
|
-
minDate={new Date('9/23/2020')}
|
35
|
-
maxDate={new Date('09/23/2021')}
|
36
|
-
value="09/25/2020"
|
37
|
-
/>
|
38
|
-
)
|
39
|
-
).toThrow();
|
40
|
-
});
|
41
|
-
|
42
|
-
it('Throws when given a date with time included', () => {
|
43
|
-
expect(() =>
|
44
|
-
render(
|
45
|
-
<DatePickerInput
|
46
|
-
minDate={new Date('9/23/2020')}
|
47
|
-
maxDate={new Date('09/23/2021')}
|
48
|
-
value="2020-09-25T19:07:49.774Z"
|
49
|
-
/>
|
50
|
-
)
|
51
|
-
).toThrow();
|
52
|
-
});
|
53
|
-
|
54
|
-
it('Accepts valid date only format', () => {
|
55
|
-
render(
|
56
|
-
<DatePickerInput
|
57
|
-
minDate={new Date('9/23/2020')}
|
58
|
-
maxDate={new Date('09/23/2021')}
|
59
|
-
value="2020-09-25"
|
60
|
-
/>
|
61
|
-
);
|
62
|
-
});
|
63
|
-
|
64
|
-
it('has matching snapshot', () => {
|
65
|
-
const renderResult = render(
|
66
|
-
<DatePickerInput
|
67
|
-
minDate={new Date('9/23/2020')}
|
68
|
-
maxDate={new Date('09/23/2021')}
|
69
|
-
value="2020-09-25"
|
70
|
-
/>
|
71
|
-
);
|
72
|
-
expect(renderResult.asFragment()).toMatchSnapshot();
|
73
|
-
});
|
74
|
-
});
|
1
|
+
import React from 'react';
|
2
|
+
import { render } from '@testing-library/react';
|
3
|
+
import '@testing-library/jest-dom/extend-expect';
|
4
|
+
import DatePickerInput from './DatePickerInput';
|
5
|
+
|
6
|
+
//hack so the datepicker internals don't complain about this not existing in the context of jest
|
7
|
+
HTMLCanvasElement.prototype.getContext = () => {};
|
8
|
+
|
9
|
+
//Tell console.error to be quiet about the errors so jest output isn't super noisy
|
10
|
+
//https://github.com/facebook/jest/pull/5267#issuecomment-356605468
|
11
|
+
beforeEach(() => {
|
12
|
+
jest.spyOn(console, 'error');
|
13
|
+
console.error.mockImplementation(() => {});
|
14
|
+
});
|
15
|
+
|
16
|
+
afterEach(() => {
|
17
|
+
console.error.mockRestore();
|
18
|
+
});
|
19
|
+
|
20
|
+
describe('DatePickerInput', () => {
|
21
|
+
it('Renders without error', () => {
|
22
|
+
render(
|
23
|
+
<DatePickerInput
|
24
|
+
minDate={new Date('9/23/2020')}
|
25
|
+
maxDate={new Date('09/23/2021')}
|
26
|
+
/>
|
27
|
+
);
|
28
|
+
});
|
29
|
+
|
30
|
+
it('Throws when given an invalid format date', () => {
|
31
|
+
expect(() =>
|
32
|
+
render(
|
33
|
+
<DatePickerInput
|
34
|
+
minDate={new Date('9/23/2020')}
|
35
|
+
maxDate={new Date('09/23/2021')}
|
36
|
+
value="09/25/2020"
|
37
|
+
/>
|
38
|
+
)
|
39
|
+
).toThrow();
|
40
|
+
});
|
41
|
+
|
42
|
+
it('Throws when given a date with time included', () => {
|
43
|
+
expect(() =>
|
44
|
+
render(
|
45
|
+
<DatePickerInput
|
46
|
+
minDate={new Date('9/23/2020')}
|
47
|
+
maxDate={new Date('09/23/2021')}
|
48
|
+
value="2020-09-25T19:07:49.774Z"
|
49
|
+
/>
|
50
|
+
)
|
51
|
+
).toThrow();
|
52
|
+
});
|
53
|
+
|
54
|
+
it('Accepts valid date only format', () => {
|
55
|
+
render(
|
56
|
+
<DatePickerInput
|
57
|
+
minDate={new Date('9/23/2020')}
|
58
|
+
maxDate={new Date('09/23/2021')}
|
59
|
+
value="2020-09-25"
|
60
|
+
/>
|
61
|
+
);
|
62
|
+
});
|
63
|
+
|
64
|
+
it('has matching snapshot', () => {
|
65
|
+
const renderResult = render(
|
66
|
+
<DatePickerInput
|
67
|
+
minDate={new Date('9/23/2020')}
|
68
|
+
maxDate={new Date('09/23/2021')}
|
69
|
+
value="2020-09-25"
|
70
|
+
/>
|
71
|
+
);
|
72
|
+
expect(renderResult.asFragment()).toMatchSnapshot();
|
73
|
+
});
|
74
|
+
});
|
@@ -1,134 +1,134 @@
|
|
1
|
-
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
2
|
-
|
3
|
-
exports[`DatePickerInput has matching snapshot 1`] = `
|
4
|
-
<DocumentFragment>
|
5
|
-
<div
|
6
|
-
class="react-date-picker react-date-picker--closed react-date-picker--enabled form-control"
|
7
|
-
>
|
8
|
-
<div
|
9
|
-
class="react-date-picker__wrapper"
|
10
|
-
>
|
11
|
-
<div
|
12
|
-
class="react-date-picker__inputGroup"
|
13
|
-
>
|
14
|
-
<input
|
15
|
-
max="2021-09-23"
|
16
|
-
min="2020-09-23"
|
17
|
-
name="date"
|
18
|
-
style="visibility: hidden; position: absolute; z-index: -999;"
|
19
|
-
type="date"
|
20
|
-
value="2020-09-25"
|
21
|
-
/>
|
22
|
-
<input
|
23
|
-
autocomplete="off"
|
24
|
-
class="react-date-picker__inputGroup__input react-date-picker__inputGroup__month"
|
25
|
-
data-input="true"
|
26
|
-
inputmode="numeric"
|
27
|
-
max="12"
|
28
|
-
min="9"
|
29
|
-
name="month"
|
30
|
-
placeholder="--"
|
31
|
-
type="number"
|
32
|
-
value="9"
|
33
|
-
/>
|
34
|
-
<span
|
35
|
-
class="react-date-picker__inputGroup__divider"
|
36
|
-
>
|
37
|
-
/
|
38
|
-
</span>
|
39
|
-
<input
|
40
|
-
autocomplete="off"
|
41
|
-
class="react-date-picker__inputGroup__input react-date-picker__inputGroup__day"
|
42
|
-
data-input="true"
|
43
|
-
inputmode="numeric"
|
44
|
-
max="30"
|
45
|
-
min="23"
|
46
|
-
name="day"
|
47
|
-
placeholder="--"
|
48
|
-
type="number"
|
49
|
-
value="25"
|
50
|
-
/>
|
51
|
-
<span
|
52
|
-
class="react-date-picker__inputGroup__divider"
|
53
|
-
>
|
54
|
-
/
|
55
|
-
</span>
|
56
|
-
<input
|
57
|
-
autocomplete="off"
|
58
|
-
class="react-date-picker__inputGroup__input react-date-picker__inputGroup__year"
|
59
|
-
data-input="true"
|
60
|
-
inputmode="numeric"
|
61
|
-
max="2021"
|
62
|
-
min="2020"
|
63
|
-
name="year"
|
64
|
-
placeholder="----"
|
65
|
-
step="1"
|
66
|
-
type="number"
|
67
|
-
value="2020"
|
68
|
-
/>
|
69
|
-
</div>
|
70
|
-
<button
|
71
|
-
class="react-date-picker__clear-button react-date-picker__button"
|
72
|
-
type="button"
|
73
|
-
>
|
74
|
-
<svg
|
75
|
-
class="react-date-picker__clear-button__icon react-date-picker__button__icon"
|
76
|
-
height="19"
|
77
|
-
stroke="black"
|
78
|
-
stroke-width="2"
|
79
|
-
viewBox="0 0 19 19"
|
80
|
-
width="19"
|
81
|
-
xmlns="http://www.w3.org/2000/svg"
|
82
|
-
>
|
83
|
-
<line
|
84
|
-
x1="4"
|
85
|
-
x2="15"
|
86
|
-
y1="4"
|
87
|
-
y2="15"
|
88
|
-
/>
|
89
|
-
<line
|
90
|
-
x1="15"
|
91
|
-
x2="4"
|
92
|
-
y1="4"
|
93
|
-
y2="15"
|
94
|
-
/>
|
95
|
-
</svg>
|
96
|
-
</button>
|
97
|
-
<button
|
98
|
-
class="react-date-picker__calendar-button react-date-picker__button"
|
99
|
-
type="button"
|
100
|
-
>
|
101
|
-
<svg
|
102
|
-
class="react-date-picker__calendar-button__icon react-date-picker__button__icon"
|
103
|
-
height="19"
|
104
|
-
stroke="black"
|
105
|
-
stroke-width="2"
|
106
|
-
viewBox="0 0 19 19"
|
107
|
-
width="19"
|
108
|
-
xmlns="http://www.w3.org/2000/svg"
|
109
|
-
>
|
110
|
-
<rect
|
111
|
-
fill="none"
|
112
|
-
height="15"
|
113
|
-
width="15"
|
114
|
-
x="2"
|
115
|
-
y="2"
|
116
|
-
/>
|
117
|
-
<line
|
118
|
-
x1="6"
|
119
|
-
x2="6"
|
120
|
-
y1="0"
|
121
|
-
y2="4"
|
122
|
-
/>
|
123
|
-
<line
|
124
|
-
x1="13"
|
125
|
-
x2="13"
|
126
|
-
y1="0"
|
127
|
-
y2="4"
|
128
|
-
/>
|
129
|
-
</svg>
|
130
|
-
</button>
|
131
|
-
</div>
|
132
|
-
</div>
|
133
|
-
</DocumentFragment>
|
134
|
-
`;
|
1
|
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
2
|
+
|
3
|
+
exports[`DatePickerInput has matching snapshot 1`] = `
|
4
|
+
<DocumentFragment>
|
5
|
+
<div
|
6
|
+
class="react-date-picker react-date-picker--closed react-date-picker--enabled form-control"
|
7
|
+
>
|
8
|
+
<div
|
9
|
+
class="react-date-picker__wrapper"
|
10
|
+
>
|
11
|
+
<div
|
12
|
+
class="react-date-picker__inputGroup"
|
13
|
+
>
|
14
|
+
<input
|
15
|
+
max="2021-09-23"
|
16
|
+
min="2020-09-23"
|
17
|
+
name="date"
|
18
|
+
style="visibility: hidden; position: absolute; z-index: -999;"
|
19
|
+
type="date"
|
20
|
+
value="2020-09-25"
|
21
|
+
/>
|
22
|
+
<input
|
23
|
+
autocomplete="off"
|
24
|
+
class="react-date-picker__inputGroup__input react-date-picker__inputGroup__month"
|
25
|
+
data-input="true"
|
26
|
+
inputmode="numeric"
|
27
|
+
max="12"
|
28
|
+
min="9"
|
29
|
+
name="month"
|
30
|
+
placeholder="--"
|
31
|
+
type="number"
|
32
|
+
value="9"
|
33
|
+
/>
|
34
|
+
<span
|
35
|
+
class="react-date-picker__inputGroup__divider"
|
36
|
+
>
|
37
|
+
/
|
38
|
+
</span>
|
39
|
+
<input
|
40
|
+
autocomplete="off"
|
41
|
+
class="react-date-picker__inputGroup__input react-date-picker__inputGroup__day"
|
42
|
+
data-input="true"
|
43
|
+
inputmode="numeric"
|
44
|
+
max="30"
|
45
|
+
min="23"
|
46
|
+
name="day"
|
47
|
+
placeholder="--"
|
48
|
+
type="number"
|
49
|
+
value="25"
|
50
|
+
/>
|
51
|
+
<span
|
52
|
+
class="react-date-picker__inputGroup__divider"
|
53
|
+
>
|
54
|
+
/
|
55
|
+
</span>
|
56
|
+
<input
|
57
|
+
autocomplete="off"
|
58
|
+
class="react-date-picker__inputGroup__input react-date-picker__inputGroup__year"
|
59
|
+
data-input="true"
|
60
|
+
inputmode="numeric"
|
61
|
+
max="2021"
|
62
|
+
min="2020"
|
63
|
+
name="year"
|
64
|
+
placeholder="----"
|
65
|
+
step="1"
|
66
|
+
type="number"
|
67
|
+
value="2020"
|
68
|
+
/>
|
69
|
+
</div>
|
70
|
+
<button
|
71
|
+
class="react-date-picker__clear-button react-date-picker__button"
|
72
|
+
type="button"
|
73
|
+
>
|
74
|
+
<svg
|
75
|
+
class="react-date-picker__clear-button__icon react-date-picker__button__icon"
|
76
|
+
height="19"
|
77
|
+
stroke="black"
|
78
|
+
stroke-width="2"
|
79
|
+
viewBox="0 0 19 19"
|
80
|
+
width="19"
|
81
|
+
xmlns="http://www.w3.org/2000/svg"
|
82
|
+
>
|
83
|
+
<line
|
84
|
+
x1="4"
|
85
|
+
x2="15"
|
86
|
+
y1="4"
|
87
|
+
y2="15"
|
88
|
+
/>
|
89
|
+
<line
|
90
|
+
x1="15"
|
91
|
+
x2="4"
|
92
|
+
y1="4"
|
93
|
+
y2="15"
|
94
|
+
/>
|
95
|
+
</svg>
|
96
|
+
</button>
|
97
|
+
<button
|
98
|
+
class="react-date-picker__calendar-button react-date-picker__button"
|
99
|
+
type="button"
|
100
|
+
>
|
101
|
+
<svg
|
102
|
+
class="react-date-picker__calendar-button__icon react-date-picker__button__icon"
|
103
|
+
height="19"
|
104
|
+
stroke="black"
|
105
|
+
stroke-width="2"
|
106
|
+
viewBox="0 0 19 19"
|
107
|
+
width="19"
|
108
|
+
xmlns="http://www.w3.org/2000/svg"
|
109
|
+
>
|
110
|
+
<rect
|
111
|
+
fill="none"
|
112
|
+
height="15"
|
113
|
+
width="15"
|
114
|
+
x="2"
|
115
|
+
y="2"
|
116
|
+
/>
|
117
|
+
<line
|
118
|
+
x1="6"
|
119
|
+
x2="6"
|
120
|
+
y1="0"
|
121
|
+
y2="4"
|
122
|
+
/>
|
123
|
+
<line
|
124
|
+
x1="13"
|
125
|
+
x2="13"
|
126
|
+
y1="0"
|
127
|
+
y2="4"
|
128
|
+
/>
|
129
|
+
</svg>
|
130
|
+
</button>
|
131
|
+
</div>
|
132
|
+
</div>
|
133
|
+
</DocumentFragment>
|
134
|
+
`;
|
@@ -1,42 +1,42 @@
|
|
1
|
-
@import '../variables';
|
2
|
-
|
3
|
-
.react-date-picker {
|
4
|
-
padding: 0;
|
5
|
-
&.react-date-picker--open {
|
6
|
-
border: 1px solid $input-border-color--focused;
|
7
|
-
box-shadow: $input-box-shadow--focused;
|
8
|
-
}
|
9
|
-
&.react-date-picker--disabled {
|
10
|
-
background-color: $input-disabled-background-color;
|
11
|
-
border-color: $input-disabled-border-color;
|
12
|
-
}
|
13
|
-
|
14
|
-
.react-date-picker__wrapper {
|
15
|
-
width: 100%;
|
16
|
-
border: none;
|
17
|
-
}
|
18
|
-
|
19
|
-
.react-date-picker__inputGroup {
|
20
|
-
width: 100%;
|
21
|
-
margin-left: 10px;
|
22
|
-
}
|
23
|
-
|
24
|
-
.is-invalid.react-date-picker {
|
25
|
-
border: 1px solid $red;
|
26
|
-
}
|
27
|
-
|
28
|
-
.react-date-picker__calendar {
|
29
|
-
z-index: 3;
|
30
|
-
}
|
31
|
-
.react-date-picker__inputGroup__input {
|
32
|
-
min-width: 18px;
|
33
|
-
text-align: center;
|
34
|
-
&.react-date-picker__inputGroup__year {
|
35
|
-
min-width: 40px;
|
36
|
-
}
|
37
|
-
}
|
38
|
-
|
39
|
-
.react-calendar__tile--now {
|
40
|
-
outline: 1px solid rgba(0, 0, 0, 0.5);
|
41
|
-
}
|
42
|
-
}
|
1
|
+
@import '../variables';
|
2
|
+
|
3
|
+
.react-date-picker {
|
4
|
+
padding: 0;
|
5
|
+
&.react-date-picker--open {
|
6
|
+
border: 1px solid $input-border-color--focused;
|
7
|
+
box-shadow: $input-box-shadow--focused;
|
8
|
+
}
|
9
|
+
&.react-date-picker--disabled {
|
10
|
+
background-color: $input-disabled-background-color;
|
11
|
+
border-color: $input-disabled-border-color;
|
12
|
+
}
|
13
|
+
|
14
|
+
.react-date-picker__wrapper {
|
15
|
+
width: 100%;
|
16
|
+
border: none;
|
17
|
+
}
|
18
|
+
|
19
|
+
.react-date-picker__inputGroup {
|
20
|
+
width: 100%;
|
21
|
+
margin-left: 10px;
|
22
|
+
}
|
23
|
+
|
24
|
+
.is-invalid.react-date-picker {
|
25
|
+
border: 1px solid $red;
|
26
|
+
}
|
27
|
+
|
28
|
+
.react-date-picker__calendar {
|
29
|
+
z-index: 3;
|
30
|
+
}
|
31
|
+
.react-date-picker__inputGroup__input {
|
32
|
+
min-width: 18px;
|
33
|
+
text-align: center;
|
34
|
+
&.react-date-picker__inputGroup__year {
|
35
|
+
min-width: 40px;
|
36
|
+
}
|
37
|
+
}
|
38
|
+
|
39
|
+
.react-calendar__tile--now {
|
40
|
+
outline: 1px solid rgba(0, 0, 0, 0.5);
|
41
|
+
}
|
42
|
+
}
|
@@ -1,3 +1,3 @@
|
|
1
|
-
import DatePickerInput from './DatePickerInput';
|
2
|
-
|
3
|
-
export default DatePickerInput;
|
1
|
+
import DatePickerInput from './DatePickerInput';
|
2
|
+
|
3
|
+
export default DatePickerInput;
|
package/src/ErrorScrollTarget.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
import React from 'react';
|
2
|
-
|
3
|
-
export default function ErrorScrollTarget(props) {
|
4
|
-
const divId = `${props.name.toLowerCase()}-error-scroll-target`;
|
5
|
-
return <div id={divId} style={{ display: 'none' }} />;
|
6
|
-
}
|
1
|
+
import React from 'react';
|
2
|
+
|
3
|
+
export default function ErrorScrollTarget(props) {
|
4
|
+
const divId = `${props.name.toLowerCase()}-error-scroll-target`;
|
5
|
+
return <div id={divId} style={{ display: 'none' }} />;
|
6
|
+
}
|
@@ -1,39 +1,39 @@
|
|
1
|
-
import
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
color={`d-flex ${
|
21
|
-
warning ? 'warning' : 'success'
|
22
|
-
} justify-content-between list-group-item ${
|
23
|
-
warning ? 'list-group-item-warning' : 'list-group-item-success'
|
24
|
-
} px-3 py-1 rounded-1`}>
|
25
|
-
<span className="d-flex justify-content-between w-100">
|
26
|
-
<span>{item.
|
27
|
-
</span>
|
28
|
-
</ListGroupItem>
|
29
|
-
);
|
30
|
-
}
|
31
|
-
|
32
|
-
function humanFileSize(size) {
|
33
|
-
const i = Math.floor(Math.log(size) / Math.log(1024));
|
34
|
-
return (
|
35
|
-
(size / Math.pow(1024, i)).toFixed(2) * 1 +
|
36
|
-
' ' +
|
37
|
-
['B', 'KB', 'MB', 'GB', 'TB'][i]
|
38
|
-
);
|
39
|
-
}
|
1
|
+
import React from 'react';
|
2
|
+
import { ListGroupItem, ListGroup } from 'reactstrap';
|
3
|
+
|
4
|
+
export default function DefaultFileList({ files, rejectedFiles = [] }) {
|
5
|
+
return (
|
6
|
+
<ListGroup>
|
7
|
+
{files.map((file) => (
|
8
|
+
<Group key={file.path} item={file} warning={false} />
|
9
|
+
))}
|
10
|
+
{rejectedFiles.map(({ file }) => {
|
11
|
+
return <Group key={file.path} item={file} warning={true} />;
|
12
|
+
})}
|
13
|
+
</ListGroup>
|
14
|
+
);
|
15
|
+
}
|
16
|
+
|
17
|
+
function Group({ item, warning }) {
|
18
|
+
return (
|
19
|
+
<ListGroupItem
|
20
|
+
color={`d-flex ${
|
21
|
+
warning ? 'warning' : 'success'
|
22
|
+
} justify-content-between list-group-item ${
|
23
|
+
warning ? 'list-group-item-warning' : 'list-group-item-success'
|
24
|
+
} px-3 py-1 rounded-1`}>
|
25
|
+
<span className="d-flex justify-content-between w-100">
|
26
|
+
<span>{item.name}</span> <span>{humanFileSize(item.size)}</span>
|
27
|
+
</span>
|
28
|
+
</ListGroupItem>
|
29
|
+
);
|
30
|
+
}
|
31
|
+
|
32
|
+
function humanFileSize(size) {
|
33
|
+
const i = Math.floor(Math.log(size) / Math.log(1024));
|
34
|
+
return (
|
35
|
+
(size / Math.pow(1024, i)).toFixed(2) * 1 +
|
36
|
+
' ' +
|
37
|
+
['B', 'KB', 'MB', 'GB', 'TB'][i]
|
38
|
+
);
|
39
|
+
}
|