envoc-form 4.1.0 → 4.3.0

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.
Files changed (48) hide show
  1. package/README.md +5266 -940
  2. package/es/DatePicker/DatePickerGroup.d.ts +1 -1
  3. package/es/DatePicker/DatePickerGroup.js +7 -3
  4. package/es/DateTimePicker/DateTimePickerGroup.d.ts +13 -0
  5. package/es/DateTimePicker/DateTimePickerGroup.js +90 -0
  6. package/es/DateTimePicker/DateTimePickerHelper.d.ts +3 -0
  7. package/es/DateTimePicker/DateTimePickerHelper.js +1 -0
  8. package/es/DateTimePicker/StringDateTimePickerGroup.d.ts +10 -0
  9. package/es/DateTimePicker/StringDateTimePickerGroup.js +53 -0
  10. package/es/Input/PhoneNumberInputGroup.d.ts +10 -0
  11. package/es/Input/PhoneNumberInputGroup.js +47 -0
  12. package/es/hooks/index.d.ts +2 -0
  13. package/es/hooks/index.js +2 -0
  14. package/es/hooks/useFormValue.d.ts +2 -0
  15. package/es/hooks/useFormValue.js +7 -0
  16. package/es/index.d.ts +6 -0
  17. package/es/index.js +4 -0
  18. package/lib/DatePicker/DatePickerGroup.d.ts +1 -1
  19. package/lib/DatePicker/DatePickerGroup.js +7 -3
  20. package/lib/DateTimePicker/DateTimePickerGroup.d.ts +13 -0
  21. package/lib/DateTimePicker/DateTimePickerGroup.js +96 -0
  22. package/lib/DateTimePicker/DateTimePickerHelper.d.ts +3 -0
  23. package/lib/DateTimePicker/DateTimePickerHelper.js +2 -0
  24. package/lib/DateTimePicker/StringDateTimePickerGroup.d.ts +10 -0
  25. package/lib/DateTimePicker/StringDateTimePickerGroup.js +59 -0
  26. package/lib/Input/PhoneNumberInputGroup.d.ts +10 -0
  27. package/lib/Input/PhoneNumberInputGroup.js +52 -0
  28. package/lib/hooks/index.d.ts +2 -0
  29. package/lib/hooks/index.js +8 -0
  30. package/lib/hooks/useFormValue.d.ts +2 -0
  31. package/lib/hooks/useFormValue.js +10 -0
  32. package/lib/index.d.ts +6 -0
  33. package/lib/index.js +8 -1
  34. package/package.json +5 -4
  35. package/src/DatePicker/DatePickerGroup.tsx +22 -9
  36. package/src/DatePicker/__snapshots__/DatePicker.test.tsx.snap +119 -117
  37. package/src/DateTimePicker/DateTimePicker.test.tsx +243 -0
  38. package/src/DateTimePicker/DateTimePickerGroup.tsx +128 -0
  39. package/src/DateTimePicker/DateTimePickerHelper.ts +4 -0
  40. package/src/DateTimePicker/StringDateTimePickerGroup.tsx +61 -0
  41. package/src/DateTimePicker/__snapshots__/DateTimePicker.test.tsx.snap +218 -0
  42. package/src/Input/PhoneNumberInputGroup.tsx +49 -0
  43. package/src/Input/__Tests__/PhoneNumberInputGroup.test.tsx +37 -0
  44. package/src/Input/__Tests__/__snapshots__/PhoneNumberInputGroup.test.tsx.snap +33 -0
  45. package/src/__Tests__/FormTestBase.tsx +1 -0
  46. package/src/hooks/index.ts +3 -0
  47. package/src/hooks/useFormValue.ts +16 -0
  48. package/src/index.ts +10 -0
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __rest = (this && this.__rest) || function (s, e) {
14
+ var t = {};
15
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
16
+ t[p] = s[p];
17
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
18
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
19
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
20
+ t[p[i]] = s[p[i]];
21
+ }
22
+ return t;
23
+ };
24
+ var __importDefault = (this && this.__importDefault) || function (mod) {
25
+ return (mod && mod.__esModule) ? mod : { "default": mod };
26
+ };
27
+ Object.defineProperty(exports, "__esModule", { value: true });
28
+ var jsx_runtime_1 = require("react/jsx-runtime");
29
+ var react_1 = __importDefault(require("react"));
30
+ var classnames_1 = __importDefault(require("classnames"));
31
+ var InputGroup_1 = __importDefault(require("./InputGroup"));
32
+ var FormDefaults_1 = require("../FormDefaults");
33
+ var normalizers_1 = require("../Normalization/normalizers");
34
+ function PhoneNumberInputGroup(_a, ref) {
35
+ var _b;
36
+ var className = _a.className, rest = __rest(_a, ["className"]);
37
+ var input = rest.input;
38
+ return ((0, jsx_runtime_1.jsx)(InputGroup_1.default, __assign({ ref: ref, autoComplete: "tel-national" }, rest, { type: "text", className: (0, classnames_1.default)(className, FormDefaults_1.FormDefaults.cssClassPrefix + 'phone-number-group'), value: (_b = input.value) !== null && _b !== void 0 ? _b : '', onChange: function (e) {
39
+ if (!e.target.value) {
40
+ input.onChange(undefined);
41
+ }
42
+ else {
43
+ input.onChange((0, normalizers_1.phoneNumber)(e.target.value));
44
+ }
45
+ } })));
46
+ }
47
+ /**A standard phone number input. Will display to the user in `+XXX XXX-XXX-XXXX` format as the number is being inputted.
48
+ * The data will get sent in the same format as displayed. Uses `normalizers.phoneNumber`.
49
+ * @default autoComplete="tel-national"
50
+ */
51
+ var PhoneNumberInputGroupWithRef = react_1.default.forwardRef(PhoneNumberInputGroup);
52
+ exports.default = PhoneNumberInputGroupWithRef;
@@ -0,0 +1,2 @@
1
+ import useFormValue from './useFormValue';
2
+ export { useFormValue };
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.useFormValue = void 0;
7
+ var useFormValue_1 = __importDefault(require("./useFormValue"));
8
+ exports.useFormValue = useFormValue_1.default;
@@ -0,0 +1,2 @@
1
+ import { FormBuilderProp } from 'Form/Form';
2
+ export default function useFormValue<TForm extends object, TPropKey extends keyof TForm>(formBuilder: FormBuilderProp<TForm>, fieldName: TPropKey): readonly [TForm[TPropKey], (value: TForm[TPropKey]) => void];
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var react_1 = require("react");
4
+ var formik_1 = require("formik");
5
+ function useFormValue(formBuilder, fieldName) {
6
+ var _a = (0, formik_1.useFormikContext)(), values = _a.values, setFieldValue = _a.setFieldValue;
7
+ var setValue = (0, react_1.useCallback)(function (value) { return setFieldValue(fieldName, value); }, [fieldName, setFieldValue]);
8
+ return [values[fieldName], setValue];
9
+ }
10
+ exports.default = useFormValue;
package/lib/index.d.ts CHANGED
@@ -14,6 +14,10 @@ export { default as StringDatePickerGroup } from './DatePicker/StringDatePickerG
14
14
  export type { StringDatePickerGroupProps } from './DatePicker/StringDatePickerGroup';
15
15
  export { default as StringDateOnlyPickerGroup } from './DatePicker/StringDateOnlyPickerGroup';
16
16
  export type { StringDateOnlyPickerGroupProps } from './DatePicker/StringDateOnlyPickerGroup';
17
+ export { default as DateTimePickerGroup } from './DateTimePicker/DateTimePickerGroup';
18
+ export type { DateTimePickerGroupProps } from './DateTimePicker/DateTimePickerGroup';
19
+ export { default as StringDateTimePickerGroup } from './DateTimePicker/StringDateTimePickerGroup';
20
+ export type { StringDateTimePickerGroupProps } from './DateTimePicker/StringDateTimePickerGroup';
17
21
  export { default as Field } from './Field/Field';
18
22
  export type { FieldProps } from './Field/Field';
19
23
  export type { RenderComponent } from './Field/Field';
@@ -48,6 +52,8 @@ export { default as MoneyInputGroup } from './Input/MoneyInputGroup';
48
52
  export type { MoneyInputGroupProps } from './Input/MoneyInputGroup';
49
53
  export { default as NumberInputGroup } from './Input/NumberInputGroup';
50
54
  export type { NumberInputGroupProps } from './Input/NumberInputGroup';
55
+ export { default as PhoneNumberInputGroup } from './Input/PhoneNumberInputGroup';
56
+ export type { PhoneNumberInputGroupProps } from './Input/PhoneNumberInputGroup';
51
57
  export { default as StringInputGroup } from './Input/StringInputGroup';
52
58
  export type { StringInputGroupProps } from './Input/StringInputGroup';
53
59
  export type { NormalizationFunction } from './Normalization/NormalizationFunction';
package/lib/index.js CHANGED
@@ -29,7 +29,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
29
29
  return (mod && mod.__esModule) ? mod : { "default": mod };
30
30
  };
31
31
  Object.defineProperty(exports, "__esModule", { value: true });
32
- exports.validators = exports.serialize = exports.objectContainsNonSerializableProperty = exports.TextAreaGroup = exports.SingleStringSelectGroup = exports.MultiStringSelectGroup = exports.SingleNumberSelectGroup = exports.MultiNumberSelectGroup = exports.BooleanSelectGroup = exports.SelectGroup = exports.normalizers = exports.StringInputGroup = exports.NumberInputGroup = exports.MoneyInputGroup = exports.InputGroup = exports.IconInputGroup = exports.Group = exports.FormDefaults = exports.StandardFormActions = exports.FormActions = exports.ServerErrorContext = exports.Form = exports.FileGroup = exports.FieldArray = exports.useStandardField = exports.StandAloneInput = exports.FieldNameContext = exports.FieldErrorScrollTarget = exports.Field = exports.StringDateOnlyPickerGroup = exports.StringDatePickerGroup = exports.convertToTimeZoneInsensitiveISOString = exports.DatePickerGroup = exports.ConfirmDeleteForm = exports.ConfirmBaseForm = exports.SubmitFormButton = exports.AddressInput = void 0;
32
+ exports.validators = exports.serialize = exports.objectContainsNonSerializableProperty = exports.TextAreaGroup = exports.SingleStringSelectGroup = exports.MultiStringSelectGroup = exports.SingleNumberSelectGroup = exports.MultiNumberSelectGroup = exports.BooleanSelectGroup = exports.SelectGroup = exports.normalizers = exports.StringInputGroup = exports.PhoneNumberInputGroup = exports.NumberInputGroup = exports.MoneyInputGroup = exports.InputGroup = exports.IconInputGroup = exports.Group = exports.FormDefaults = exports.StandardFormActions = exports.FormActions = exports.ServerErrorContext = exports.Form = exports.FileGroup = exports.FieldArray = exports.useStandardField = exports.StandAloneInput = exports.FieldNameContext = exports.FieldErrorScrollTarget = exports.Field = exports.StringDateTimePickerGroup = exports.DateTimePickerGroup = exports.StringDateOnlyPickerGroup = exports.StringDatePickerGroup = exports.convertToTimeZoneInsensitiveISOString = exports.DatePickerGroup = exports.ConfirmDeleteForm = exports.ConfirmBaseForm = exports.SubmitFormButton = exports.AddressInput = void 0;
33
33
  // Address
34
34
  var AddressInput_1 = require("./AddressInput/AddressInput");
35
35
  Object.defineProperty(exports, "AddressInput", { enumerable: true, get: function () { return __importDefault(AddressInput_1).default; } });
@@ -51,6 +51,11 @@ var StringDatePickerGroup_1 = require("./DatePicker/StringDatePickerGroup");
51
51
  Object.defineProperty(exports, "StringDatePickerGroup", { enumerable: true, get: function () { return __importDefault(StringDatePickerGroup_1).default; } });
52
52
  var StringDateOnlyPickerGroup_1 = require("./DatePicker/StringDateOnlyPickerGroup");
53
53
  Object.defineProperty(exports, "StringDateOnlyPickerGroup", { enumerable: true, get: function () { return __importDefault(StringDateOnlyPickerGroup_1).default; } });
54
+ // DateTime
55
+ var DateTimePickerGroup_1 = require("./DateTimePicker/DateTimePickerGroup");
56
+ Object.defineProperty(exports, "DateTimePickerGroup", { enumerable: true, get: function () { return __importDefault(DateTimePickerGroup_1).default; } });
57
+ var StringDateTimePickerGroup_1 = require("./DateTimePicker/StringDateTimePickerGroup");
58
+ Object.defineProperty(exports, "StringDateTimePickerGroup", { enumerable: true, get: function () { return __importDefault(StringDateTimePickerGroup_1).default; } });
54
59
  // Field
55
60
  var Field_1 = require("./Field/Field");
56
61
  Object.defineProperty(exports, "Field", { enumerable: true, get: function () { return __importDefault(Field_1).default; } });
@@ -91,6 +96,8 @@ var MoneyInputGroup_1 = require("./Input/MoneyInputGroup");
91
96
  Object.defineProperty(exports, "MoneyInputGroup", { enumerable: true, get: function () { return __importDefault(MoneyInputGroup_1).default; } });
92
97
  var NumberInputGroup_1 = require("./Input/NumberInputGroup");
93
98
  Object.defineProperty(exports, "NumberInputGroup", { enumerable: true, get: function () { return __importDefault(NumberInputGroup_1).default; } });
99
+ var PhoneNumberInputGroup_1 = require("./Input/PhoneNumberInputGroup");
100
+ Object.defineProperty(exports, "PhoneNumberInputGroup", { enumerable: true, get: function () { return __importDefault(PhoneNumberInputGroup_1).default; } });
94
101
  var StringInputGroup_1 = require("./Input/StringInputGroup");
95
102
  Object.defineProperty(exports, "StringInputGroup", { enumerable: true, get: function () { return __importDefault(StringInputGroup_1).default; } });
96
103
  exports.normalizers = __importStar(require("./Normalization/normalizers"));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "envoc-form",
3
- "version": "4.1.0",
3
+ "version": "4.3.0",
4
4
  "description": "Envoc form components",
5
5
  "keywords": [
6
6
  "react-component",
@@ -38,7 +38,7 @@
38
38
  "axios": "^0.21.1",
39
39
  "classnames": "^2.3.1",
40
40
  "date-fns": "^2.22.1",
41
- "envoc-request": "^4.1.0",
41
+ "envoc-request": "^4.3.0",
42
42
  "lru-cache": "^6.0.0",
43
43
  "prop-types": "^15.7.2",
44
44
  "react-date-picker": "^8.2.0",
@@ -53,7 +53,8 @@
53
53
  "uuid": "^8.3.2",
54
54
  "@fortawesome/react-fontawesome": "~0.1.16",
55
55
  "@fortawesome/free-solid-svg-icons": "~5.15.4",
56
- "@fortawesome/fontawesome-svg-core": "~1.2.36"
56
+ "@fortawesome/fontawesome-svg-core": "~1.2.36",
57
+ "react-datetime-picker": "~5.6.0"
57
58
  },
58
59
  "devDependencies": {
59
60
  "@babel/cli": "^7.14.5",
@@ -84,7 +85,7 @@
84
85
  "react-router-dom": "^6.14.1",
85
86
  "react-scripts": "^4.0.3",
86
87
  "rimraf": "~3.0.2",
87
- "sass": "^1.35.2",
88
+ "sass": "^1.75.0",
88
89
  "sass-loader": "^11.0.1",
89
90
  "style-loader": "^2.0.0",
90
91
  "webpack": "^5.45.0",
@@ -32,6 +32,8 @@ export default function DatePickerGroup<T>({
32
32
  required,
33
33
  disabled,
34
34
  convert,
35
+ maxDate = new Date(9999, 11, 31),
36
+ minDate = new Date(1000, 0, 1),
35
37
  ...rest
36
38
  }: DatePickerGroupProps<T>) {
37
39
  const [displayDate, setDisplayDate] = useState<Date | null>(null);
@@ -60,15 +62,25 @@ export default function DatePickerGroup<T>({
60
62
  )}
61
63
  required={required}
62
64
  disabled={disabled}>
63
- <DatePicker
64
- {...rest}
65
- className={classnames(
66
- FormDefaults.cssClassPrefix + 'date-picker',
67
- className
68
- )}
69
- value={displayDate}
70
- onChange={handleChange}
71
- />
65
+ <div
66
+ onBlur={() => {
67
+ // Manually trigger Formik's onBlur when the user clicks away from the date picker
68
+ input.onBlur();
69
+ }}>
70
+ <DatePicker
71
+ {...rest}
72
+ className={classnames(
73
+ FormDefaults.cssClassPrefix + 'date-picker',
74
+ className
75
+ )}
76
+ value={displayDate}
77
+ onChange={handleChange}
78
+ disabled={disabled}
79
+ required={required}
80
+ maxDate={maxDate}
81
+ minDate={minDate}
82
+ />
83
+ </div>
72
84
  </Group>
73
85
  );
74
86
 
@@ -106,6 +118,7 @@ export default function DatePickerGroup<T>({
106
118
  export function convertToTimeZoneInsensitiveISOString(date: Date): string {
107
119
  const year = new Intl.DateTimeFormat('en', { year: 'numeric' })
108
120
  .format(date)
121
+ .substring(0, 4)
109
122
  .padStart(4, '0');
110
123
  const month = new Intl.DateTimeFormat('en', { month: '2-digit' }).format(
111
124
  date
@@ -18,132 +18,134 @@ exports[`IconInputGroup has matching snapshot 1`] = `
18
18
  >
19
19
  Favorite Date
20
20
  </label>
21
- <div
22
- class="react-date-picker react-date-picker--closed react-date-picker--enabled envoc-form-date-picker"
23
- >
21
+ <div>
24
22
  <div
25
- class="react-date-picker__wrapper"
23
+ class="react-date-picker react-date-picker--closed react-date-picker--enabled envoc-form-date-picker"
26
24
  >
27
25
  <div
28
- class="react-date-picker__inputGroup"
29
- >
30
- <input
31
- max="2023-09-23"
32
- min="2022-06-22"
33
- name="date"
34
- style="visibility: hidden; position: absolute; z-index: -999;"
35
- type="date"
36
- value=""
37
- />
38
- <input
39
- autocomplete="off"
40
- class="react-date-picker__inputGroup__input react-date-picker__inputGroup__month"
41
- data-input="true"
42
- inputmode="numeric"
43
- max="12"
44
- min="1"
45
- name="month"
46
- placeholder="mm"
47
- type="number"
48
- value=""
49
- />
50
- <span
51
- class="react-date-picker__inputGroup__divider"
52
- >
53
- /
54
- </span>
55
- <input
56
- autocomplete="off"
57
- class="react-date-picker__inputGroup__input react-date-picker__inputGroup__day"
58
- data-input="true"
59
- inputmode="numeric"
60
- max="31"
61
- min="1"
62
- name="day"
63
- placeholder="dd"
64
- type="number"
65
- value=""
66
- />
67
- <span
68
- class="react-date-picker__inputGroup__divider"
69
- >
70
- /
71
- </span>
72
- <input
73
- autocomplete="off"
74
- class="react-date-picker__inputGroup__input react-date-picker__inputGroup__year"
75
- data-input="true"
76
- inputmode="numeric"
77
- max="2023"
78
- min="2022"
79
- name="year"
80
- placeholder="yyyy"
81
- step="1"
82
- type="number"
83
- value=""
84
- />
85
- </div>
86
- <button
87
- class="react-date-picker__clear-button react-date-picker__button"
88
- type="button"
26
+ class="react-date-picker__wrapper"
89
27
  >
90
- <svg
91
- class="react-date-picker__clear-button__icon react-date-picker__button__icon"
92
- height="19"
93
- stroke="black"
94
- stroke-width="2"
95
- viewBox="0 0 19 19"
96
- width="19"
97
- xmlns="http://www.w3.org/2000/svg"
28
+ <div
29
+ class="react-date-picker__inputGroup"
98
30
  >
99
- <line
100
- x1="4"
101
- x2="15"
102
- y1="4"
103
- y2="15"
31
+ <input
32
+ max="2023-09-23"
33
+ min="2022-06-22"
34
+ name="date"
35
+ style="visibility: hidden; position: absolute; z-index: -999;"
36
+ type="date"
37
+ value=""
104
38
  />
105
- <line
106
- x1="15"
107
- x2="4"
108
- y1="4"
109
- y2="15"
39
+ <input
40
+ autocomplete="off"
41
+ class="react-date-picker__inputGroup__input react-date-picker__inputGroup__month"
42
+ data-input="true"
43
+ inputmode="numeric"
44
+ max="12"
45
+ min="1"
46
+ name="month"
47
+ placeholder="mm"
48
+ type="number"
49
+ value=""
110
50
  />
111
- </svg>
112
- </button>
113
- <button
114
- class="react-date-picker__calendar-button react-date-picker__button"
115
- type="button"
116
- >
117
- <svg
118
- class="react-date-picker__calendar-button__icon react-date-picker__button__icon"
119
- height="19"
120
- stroke="black"
121
- stroke-width="2"
122
- viewBox="0 0 19 19"
123
- width="19"
124
- xmlns="http://www.w3.org/2000/svg"
125
- >
126
- <rect
127
- fill="none"
128
- height="15"
129
- width="15"
130
- x="2"
131
- y="2"
132
- />
133
- <line
134
- x1="6"
135
- x2="6"
136
- y1="0"
137
- y2="4"
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__day"
59
+ data-input="true"
60
+ inputmode="numeric"
61
+ max="31"
62
+ min="1"
63
+ name="day"
64
+ placeholder="dd"
65
+ type="number"
66
+ value=""
138
67
  />
139
- <line
140
- x1="13"
141
- x2="13"
142
- y1="0"
143
- y2="4"
68
+ <span
69
+ class="react-date-picker__inputGroup__divider"
70
+ >
71
+ /
72
+ </span>
73
+ <input
74
+ autocomplete="off"
75
+ class="react-date-picker__inputGroup__input react-date-picker__inputGroup__year"
76
+ data-input="true"
77
+ inputmode="numeric"
78
+ max="2023"
79
+ min="2022"
80
+ name="year"
81
+ placeholder="yyyy"
82
+ step="1"
83
+ type="number"
84
+ value=""
144
85
  />
145
- </svg>
146
- </button>
86
+ </div>
87
+ <button
88
+ class="react-date-picker__clear-button react-date-picker__button"
89
+ type="button"
90
+ >
91
+ <svg
92
+ class="react-date-picker__clear-button__icon react-date-picker__button__icon"
93
+ height="19"
94
+ stroke="black"
95
+ stroke-width="2"
96
+ viewBox="0 0 19 19"
97
+ width="19"
98
+ xmlns="http://www.w3.org/2000/svg"
99
+ >
100
+ <line
101
+ x1="4"
102
+ x2="15"
103
+ y1="4"
104
+ y2="15"
105
+ />
106
+ <line
107
+ x1="15"
108
+ x2="4"
109
+ y1="4"
110
+ y2="15"
111
+ />
112
+ </svg>
113
+ </button>
114
+ <button
115
+ class="react-date-picker__calendar-button react-date-picker__button"
116
+ type="button"
117
+ >
118
+ <svg
119
+ class="react-date-picker__calendar-button__icon react-date-picker__button__icon"
120
+ height="19"
121
+ stroke="black"
122
+ stroke-width="2"
123
+ viewBox="0 0 19 19"
124
+ width="19"
125
+ xmlns="http://www.w3.org/2000/svg"
126
+ >
127
+ <rect
128
+ fill="none"
129
+ height="15"
130
+ width="15"
131
+ x="2"
132
+ y="2"
133
+ />
134
+ <line
135
+ x1="6"
136
+ x2="6"
137
+ y1="0"
138
+ y2="4"
139
+ />
140
+ <line
141
+ x1="13"
142
+ x2="13"
143
+ y1="0"
144
+ y2="4"
145
+ />
146
+ </svg>
147
+ </button>
148
+ </div>
147
149
  </div>
148
150
  </div>
149
151
  </div>