@insticc/genericform 2.0.7 → 2.1.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.
- package/build/Demo.js +37 -37
- package/build/Demo2.js +15 -15
- package/build/FormFields/CustomAction.js +38 -0
- package/build/FormFields/CustomCheckbox.js +11 -3
- package/build/FormFields/CustomCheckboxGroup.js +178 -51
- package/build/FormFields/CustomComponent.js +10 -3
- package/build/FormFields/CustomDatePicker.js +24 -5
- package/build/FormFields/CustomDropdown.js +18 -4
- package/build/FormFields/CustomFileInput.js +131 -0
- package/build/FormFields/CustomInput.js +12 -4
- package/build/FormFields/CustomJson.js +11 -3
- package/build/FormFields/CustomLabel.js +8 -3
- package/build/FormFields/CustomMobilePhone.js +166 -0
- package/build/FormFields/CustomMultiDropdown.js +12 -4
- package/build/FormFields/CustomNumberInput.js +12 -4
- package/build/FormFields/CustomRadioGroup.js +26 -12
- package/build/FormFields/CustomSearch.js +12 -4
- package/build/FormFields/CustomTextArea.js +12 -4
- package/build/FormFields/CustomToggle.js +11 -3
- package/build/FormFields/defaults.js +22 -6
- package/build/index.css +11 -7
- package/build/index.js +211 -63
- package/package.json +1 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
5
6
|
});
|
|
@@ -11,36 +12,103 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
11
12
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
12
13
|
function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
|
|
13
14
|
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
14
|
-
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
15
15
|
function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
|
|
16
16
|
function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
|
|
17
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
18
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
19
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
20
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
21
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
22
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
23
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
24
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
17
25
|
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
18
|
-
var
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
26
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
27
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
28
|
+
var IndeterminateCheckbox = function IndeterminateCheckbox(_ref) {
|
|
29
|
+
var id = _ref.id,
|
|
30
|
+
checked = _ref.checked,
|
|
31
|
+
indeterminate = _ref.indeterminate,
|
|
32
|
+
disabled = _ref.disabled,
|
|
33
|
+
style = _ref.style,
|
|
34
|
+
onChange = _ref.onChange;
|
|
35
|
+
var ref = (0, _react.useRef)(null);
|
|
36
|
+
(0, _react.useEffect)(function () {
|
|
37
|
+
if (ref.current) ref.current.indeterminate = indeterminate;
|
|
38
|
+
}, [indeterminate]);
|
|
39
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("input", {
|
|
40
|
+
ref: ref,
|
|
41
|
+
id: id,
|
|
42
|
+
type: "checkbox",
|
|
43
|
+
checked: checked,
|
|
44
|
+
disabled: disabled,
|
|
45
|
+
style: style,
|
|
46
|
+
onChange: onChange
|
|
47
|
+
});
|
|
48
|
+
};
|
|
49
|
+
var CustomCheckboxGroup = function CustomCheckboxGroup(_ref2) {
|
|
50
|
+
var onChange = _ref2.onChange,
|
|
51
|
+
onOptionChange = _ref2.onOptionChange,
|
|
52
|
+
name = _ref2.name,
|
|
53
|
+
_ref2$checked = _ref2.checked,
|
|
54
|
+
checked = _ref2$checked === void 0 ? [] : _ref2$checked,
|
|
55
|
+
label = _ref2.label,
|
|
56
|
+
_ref2$options = _ref2.options,
|
|
57
|
+
options = _ref2$options === void 0 ? [] : _ref2$options,
|
|
58
|
+
_ref2$required = _ref2.required,
|
|
59
|
+
required = _ref2$required === void 0 ? false : _ref2$required,
|
|
60
|
+
_ref2$grouped = _ref2.grouped,
|
|
61
|
+
grouped = _ref2$grouped === void 0 ? false : _ref2$grouped,
|
|
62
|
+
_ref2$collapsible = _ref2.collapsible,
|
|
63
|
+
collapsible = _ref2$collapsible === void 0 ? false : _ref2$collapsible,
|
|
64
|
+
_ref2$defaultCollapse = _ref2.defaultCollapsed,
|
|
65
|
+
defaultCollapsed = _ref2$defaultCollapse === void 0 ? true : _ref2$defaultCollapse,
|
|
66
|
+
_ref2$enableParent = _ref2.enableParent,
|
|
67
|
+
enableParent = _ref2$enableParent === void 0 ? false : _ref2$enableParent,
|
|
68
|
+
error = _ref2.error,
|
|
69
|
+
_ref2$tooltip = _ref2.tooltip,
|
|
70
|
+
tooltip = _ref2$tooltip === void 0 ? "" : _ref2$tooltip,
|
|
71
|
+
_ref2$mainDivStyle = _ref2.mainDivStyle,
|
|
72
|
+
mainDivStyle = _ref2$mainDivStyle === void 0 ? {} : _ref2$mainDivStyle,
|
|
73
|
+
_ref2$labelStyle = _ref2.labelStyle,
|
|
74
|
+
labelStyle = _ref2$labelStyle === void 0 ? {} : _ref2$labelStyle,
|
|
75
|
+
_ref2$spanStyle = _ref2.spanStyle,
|
|
76
|
+
spanStyle = _ref2$spanStyle === void 0 ? {} : _ref2$spanStyle,
|
|
77
|
+
_ref2$groupInputStyle = _ref2.groupInputStyle,
|
|
78
|
+
groupInputStyle = _ref2$groupInputStyle === void 0 ? {} : _ref2$groupInputStyle,
|
|
79
|
+
_ref2$inputStyle = _ref2.inputStyle,
|
|
80
|
+
inputStyle = _ref2$inputStyle === void 0 ? {} : _ref2$inputStyle,
|
|
81
|
+
_ref2$tooltipStyle = _ref2.tooltipStyle,
|
|
82
|
+
tooltipStyle = _ref2$tooltipStyle === void 0 ? {} : _ref2$tooltipStyle;
|
|
83
|
+
var _useState = (0, _react.useState)({}),
|
|
84
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
85
|
+
collapsed = _useState2[0],
|
|
86
|
+
setCollapsed = _useState2[1];
|
|
87
|
+
(0, _react.useEffect)(function () {
|
|
88
|
+
if (!collapsible || !defaultCollapsed || !options.length) return;
|
|
89
|
+
setCollapsed(options.reduce(function (acc, _, idx) {
|
|
90
|
+
return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, idx, true));
|
|
91
|
+
}, {}));
|
|
92
|
+
}, [options.length]);
|
|
93
|
+
var getChildValues = (0, _react.useCallback)(function (opt) {
|
|
94
|
+
var _opt$options$map, _opt$options;
|
|
95
|
+
return (_opt$options$map = (_opt$options = opt.options) === null || _opt$options === void 0 ? void 0 : _opt$options.map(function (s) {
|
|
96
|
+
return s.name || s.value;
|
|
97
|
+
})) !== null && _opt$options$map !== void 0 ? _opt$options$map : [];
|
|
98
|
+
}, []);
|
|
99
|
+
var isAllChecked = (0, _react.useCallback)(function (opt) {
|
|
100
|
+
var parentVal = opt.name || opt.value;
|
|
101
|
+
var children = getChildValues(opt);
|
|
102
|
+
return children.length > 0 && checked.includes(parentVal) && children.every(function (v) {
|
|
103
|
+
return checked.includes(v);
|
|
104
|
+
});
|
|
105
|
+
}, [checked, getChildValues]);
|
|
106
|
+
var isSomeChecked = (0, _react.useCallback)(function (opt) {
|
|
107
|
+
var children = getChildValues(opt);
|
|
108
|
+
return children.some(function (v) {
|
|
109
|
+
return checked.includes(v);
|
|
110
|
+
}) && !isAllChecked(opt);
|
|
111
|
+
}, [checked, getChildValues, isAllChecked]);
|
|
44
112
|
var handleChange = (0, _react.useCallback)(function (value, state) {
|
|
45
113
|
var data = state ? checked.includes(value) ? checked : [].concat(_toConsumableArray(checked), [value]) : checked.filter(function (v) {
|
|
46
114
|
return v !== value;
|
|
@@ -48,14 +116,39 @@ var CustomCheckboxGroup = function CustomCheckboxGroup(_ref) {
|
|
|
48
116
|
onChange === null || onChange === void 0 || onChange(name, data);
|
|
49
117
|
onOptionChange === null || onOptionChange === void 0 || onOptionChange(data);
|
|
50
118
|
}, [onChange, onOptionChange, name, checked]);
|
|
119
|
+
var handleParentChange = (0, _react.useCallback)(function (opt, state) {
|
|
120
|
+
var parentVal = opt.name || opt.value;
|
|
121
|
+
var children = getChildValues(opt);
|
|
122
|
+
var data = state ? _toConsumableArray(new Set([].concat(_toConsumableArray(checked), [parentVal]))) : checked.filter(function (v) {
|
|
123
|
+
return v !== parentVal && !children.includes(v);
|
|
124
|
+
});
|
|
125
|
+
onChange === null || onChange === void 0 || onChange(name, data);
|
|
126
|
+
onOptionChange === null || onOptionChange === void 0 || onOptionChange(data);
|
|
127
|
+
}, [onChange, onOptionChange, name, checked, getChildValues]);
|
|
128
|
+
var toggleCollapse = (0, _react.useCallback)(function (idx) {
|
|
129
|
+
setCollapsed(function (prev) {
|
|
130
|
+
return _objectSpread(_objectSpread({}, prev), {}, _defineProperty({}, idx, !prev[idx]));
|
|
131
|
+
});
|
|
132
|
+
}, []);
|
|
51
133
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
52
134
|
className: "ufg-field-group",
|
|
53
135
|
id: name,
|
|
54
136
|
style: mainDivStyle,
|
|
55
|
-
children: [(0, _defaults.labelJsx)(
|
|
137
|
+
children: [(0, _defaults.labelJsx)({
|
|
138
|
+
name: name,
|
|
139
|
+
labelStyle: labelStyle,
|
|
140
|
+
label: label,
|
|
141
|
+
required: required,
|
|
142
|
+
spanStyle: spanStyle,
|
|
143
|
+
disableHtmlFor: true
|
|
144
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
56
145
|
className: "ufg-checkbox-group",
|
|
146
|
+
style: groupInputStyle,
|
|
57
147
|
children: options.map(function (opt, idx) {
|
|
58
|
-
var _opt$
|
|
148
|
+
var _opt$options2;
|
|
149
|
+
var hasChildren = !!((_opt$options2 = opt.options) !== null && _opt$options2 !== void 0 && _opt$options2.length);
|
|
150
|
+
var isCollapsed = collapsible && !!collapsed[idx];
|
|
151
|
+
var parentVal = opt.name || opt.value;
|
|
59
152
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
60
153
|
children: [idx > 0 && grouped && /*#__PURE__*/(0, _jsxRuntime.jsx)("hr", {
|
|
61
154
|
style: {
|
|
@@ -63,27 +156,58 @@ var CustomCheckboxGroup = function CustomCheckboxGroup(_ref) {
|
|
|
63
156
|
color: '#888888'
|
|
64
157
|
}
|
|
65
158
|
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
159
|
+
style: {
|
|
160
|
+
display: 'flex',
|
|
161
|
+
alignItems: 'center',
|
|
162
|
+
gap: 4
|
|
163
|
+
},
|
|
164
|
+
children: [collapsible && hasChildren && /*#__PURE__*/(0, _jsxRuntime.jsx)("button", {
|
|
165
|
+
type: "button",
|
|
166
|
+
onClick: function onClick() {
|
|
167
|
+
return toggleCollapse(idx);
|
|
168
|
+
},
|
|
169
|
+
style: {
|
|
170
|
+
background: 'none',
|
|
171
|
+
border: 'none',
|
|
172
|
+
cursor: 'pointer',
|
|
173
|
+
padding: '0 2px',
|
|
174
|
+
lineHeight: 1
|
|
175
|
+
},
|
|
176
|
+
"aria-label": isCollapsed ? 'Expand' : 'Collapse',
|
|
177
|
+
children: isCollapsed ? '▶' : '▼'
|
|
178
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
179
|
+
className: "ufg-checkbox-item",
|
|
180
|
+
style: inputStyle,
|
|
181
|
+
children: [enableParent && hasChildren ? /*#__PURE__*/(0, _jsxRuntime.jsx)(IndeterminateCheckbox, {
|
|
182
|
+
id: "".concat(name, "-").concat(idx),
|
|
183
|
+
checked: checked.includes(parentVal),
|
|
184
|
+
indeterminate: isSomeChecked(opt),
|
|
185
|
+
disabled: !!opt.disabled,
|
|
186
|
+
style: opt.inputStyle,
|
|
187
|
+
onChange: function onChange(e) {
|
|
188
|
+
return handleParentChange(opt, e.target.checked);
|
|
189
|
+
}
|
|
190
|
+
}) : /*#__PURE__*/(0, _jsxRuntime.jsx)("input", {
|
|
191
|
+
id: "".concat(name, "-").concat(idx),
|
|
192
|
+
type: "checkbox",
|
|
193
|
+
checked: checked.includes(parentVal),
|
|
194
|
+
disabled: !!opt.disabled,
|
|
195
|
+
style: opt.inputStyle,
|
|
196
|
+
onChange: function onChange(e) {
|
|
197
|
+
return handleChange(parentVal, e.target.checked);
|
|
198
|
+
}
|
|
199
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("label", {
|
|
200
|
+
htmlFor: "".concat(name, "-").concat(idx),
|
|
201
|
+
style: opt.labelStyle,
|
|
202
|
+
children: opt.label || opt.text
|
|
203
|
+
})]
|
|
81
204
|
})]
|
|
82
|
-
},
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
205
|
+
}), hasChildren && !isCollapsed && /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
206
|
+
className: "ufg-checkbox-group",
|
|
207
|
+
style: {
|
|
208
|
+
paddingLeft: collapsible ? '2rem' : '1.25rem'
|
|
209
|
+
},
|
|
210
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {}), opt.options.map(function (subopt, subidx) {
|
|
87
211
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
88
212
|
className: "ufg-checkbox-item",
|
|
89
213
|
style: inputStyle,
|
|
@@ -102,7 +226,7 @@ var CustomCheckboxGroup = function CustomCheckboxGroup(_ref) {
|
|
|
102
226
|
children: subopt.label || subopt.text
|
|
103
227
|
})]
|
|
104
228
|
}, subopt.name || subopt.value);
|
|
105
|
-
})
|
|
229
|
+
})]
|
|
106
230
|
})]
|
|
107
231
|
}, "".concat(name, "-").concat(idx));
|
|
108
232
|
})
|
|
@@ -113,10 +237,13 @@ CustomCheckboxGroup.propTypes = {
|
|
|
113
237
|
onChange: _propTypes["default"].func.isRequired,
|
|
114
238
|
onOptionChange: _propTypes["default"].func,
|
|
115
239
|
name: _propTypes["default"].string.isRequired,
|
|
116
|
-
|
|
240
|
+
label: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].object]),
|
|
117
241
|
options: _propTypes["default"].array.isRequired,
|
|
118
242
|
required: _propTypes["default"].bool,
|
|
119
243
|
grouped: _propTypes["default"].bool,
|
|
244
|
+
collapsible: _propTypes["default"].bool,
|
|
245
|
+
defaultCollapsed: _propTypes["default"].bool,
|
|
246
|
+
enableParent: _propTypes["default"].bool,
|
|
120
247
|
error: _propTypes["default"].string,
|
|
121
248
|
tooltip: _propTypes["default"].string,
|
|
122
249
|
mainDivStyle: _propTypes["default"].object,
|
|
@@ -13,7 +13,7 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default":
|
|
|
13
13
|
* No onChange / value — purely structural.
|
|
14
14
|
*/var CustomComponent = function CustomComponent(_ref) {
|
|
15
15
|
var name = _ref.name,
|
|
16
|
-
|
|
16
|
+
label = _ref.label,
|
|
17
17
|
component = _ref.component,
|
|
18
18
|
_ref$required = _ref.required,
|
|
19
19
|
required = _ref$required === void 0 ? false : _ref$required,
|
|
@@ -28,12 +28,19 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default":
|
|
|
28
28
|
className: "ufg-component-wrapper",
|
|
29
29
|
id: name,
|
|
30
30
|
style: mainDivStyle,
|
|
31
|
-
children: [
|
|
31
|
+
children: [(0, _defaults.labelJsx)({
|
|
32
|
+
name: name,
|
|
33
|
+
labelStyle: labelStyle,
|
|
34
|
+
label: label,
|
|
35
|
+
required: required,
|
|
36
|
+
spanStyle: spanStyle,
|
|
37
|
+
disableHtmlFor: true
|
|
38
|
+
}), component, (0, _defaults.errorJsx)(error)]
|
|
32
39
|
});
|
|
33
40
|
};
|
|
34
41
|
CustomComponent.propTypes = {
|
|
35
42
|
name: _propTypes["default"].string,
|
|
36
|
-
|
|
43
|
+
label: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].object]),
|
|
37
44
|
component: _propTypes["default"].node,
|
|
38
45
|
required: _propTypes["default"].bool,
|
|
39
46
|
error: _propTypes["default"].string,
|
|
@@ -24,7 +24,7 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
|
|
|
24
24
|
var CustomDatePicker = function CustomDatePicker(_ref) {
|
|
25
25
|
var onChange = _ref.onChange,
|
|
26
26
|
name = _ref.name,
|
|
27
|
-
|
|
27
|
+
label = _ref.label,
|
|
28
28
|
value = _ref.value,
|
|
29
29
|
_ref$disabled = _ref.disabled,
|
|
30
30
|
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
@@ -36,6 +36,7 @@ var CustomDatePicker = function CustomDatePicker(_ref) {
|
|
|
36
36
|
dateFormat = _ref$dateFormat === void 0 ? "DD/MM/YYYY" : _ref$dateFormat,
|
|
37
37
|
_ref$timeFormat = _ref.timeFormat,
|
|
38
38
|
timeFormat = _ref$timeFormat === void 0 ? false : _ref$timeFormat,
|
|
39
|
+
isValidDate = _ref.isValidDate,
|
|
39
40
|
error = _ref.error,
|
|
40
41
|
_ref$tooltip = _ref.tooltip,
|
|
41
42
|
tooltip = _ref$tooltip === void 0 ? "" : _ref$tooltip,
|
|
@@ -56,21 +57,38 @@ var CustomDatePicker = function CustomDatePicker(_ref) {
|
|
|
56
57
|
var handleChange = (0, _react.useCallback)(function (date) {
|
|
57
58
|
return onChange === null || onChange === void 0 ? void 0 : onChange(date, name);
|
|
58
59
|
}, [onChange, name]);
|
|
60
|
+
var formatDate = function formatDate(value) {
|
|
61
|
+
if (!value) return "";
|
|
62
|
+
var date = new Date(value);
|
|
63
|
+
if (Number.isNaN(date.getTime())) return "";
|
|
64
|
+
return date.toLocaleDateString("sv-SE");
|
|
65
|
+
};
|
|
59
66
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
60
67
|
className: "ufg-field-group",
|
|
61
68
|
id: "form-dateDiv-".concat(name),
|
|
62
69
|
style: mainDivStyle,
|
|
63
|
-
children: [(0, _defaults.labelJsx)(
|
|
70
|
+
children: [(0, _defaults.labelJsx)({
|
|
71
|
+
name: name,
|
|
72
|
+
labelStyle: labelStyle,
|
|
73
|
+
label: label,
|
|
74
|
+
required: required,
|
|
75
|
+
spanStyle: spanStyle,
|
|
76
|
+
showHelp: showHelp,
|
|
77
|
+
helpText: helpText
|
|
78
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactDatetime["default"], {
|
|
64
79
|
id: "form-date-".concat(name),
|
|
65
|
-
value: value,
|
|
80
|
+
value: value || "",
|
|
66
81
|
dateFormat: dateFormat,
|
|
67
82
|
timeFormat: timeFormat,
|
|
68
83
|
input: true,
|
|
69
84
|
disabled: disabled,
|
|
70
85
|
required: required,
|
|
71
86
|
style: inputStyle,
|
|
87
|
+
isValidDate: isValidDate,
|
|
72
88
|
renderInput: function renderInput(props, openCalendar) {
|
|
73
89
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)("input", _objectSpread(_objectSpread({
|
|
90
|
+
id: "form-input-".concat(name),
|
|
91
|
+
value: formatDate(value),
|
|
74
92
|
readOnly: true
|
|
75
93
|
}, props), {}, {
|
|
76
94
|
placeholder: placeholder,
|
|
@@ -80,19 +98,20 @@ var CustomDatePicker = function CustomDatePicker(_ref) {
|
|
|
80
98
|
}));
|
|
81
99
|
},
|
|
82
100
|
onChange: handleChange
|
|
83
|
-
}), (0, _defaults.errorJsx)(error), (0, _defaults.tooltipJsx)(tooltip, tooltipStyle)]
|
|
101
|
+
}, value || "empty"), (0, _defaults.errorJsx)(error), (0, _defaults.tooltipJsx)(tooltip, tooltipStyle)]
|
|
84
102
|
});
|
|
85
103
|
};
|
|
86
104
|
CustomDatePicker.propTypes = {
|
|
87
105
|
onChange: _propTypes["default"].func.isRequired,
|
|
88
106
|
name: _propTypes["default"].string.isRequired,
|
|
89
|
-
|
|
107
|
+
label: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].object]),
|
|
90
108
|
value: _propTypes["default"].any,
|
|
91
109
|
disabled: _propTypes["default"].bool,
|
|
92
110
|
required: _propTypes["default"].bool,
|
|
93
111
|
placeholder: _propTypes["default"].string,
|
|
94
112
|
dateFormat: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].bool]),
|
|
95
113
|
timeFormat: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].bool]),
|
|
114
|
+
isValidDate: _propTypes["default"].func,
|
|
96
115
|
error: _propTypes["default"].string,
|
|
97
116
|
tooltip: _propTypes["default"].string,
|
|
98
117
|
showHelp: _propTypes["default"].bool,
|
|
@@ -14,7 +14,7 @@ var CustomDropdown = function CustomDropdown(_ref) {
|
|
|
14
14
|
var _value$optionProp;
|
|
15
15
|
var onChange = _ref.onChange,
|
|
16
16
|
name = _ref.name,
|
|
17
|
-
|
|
17
|
+
label = _ref.label,
|
|
18
18
|
placeholder = _ref.placeholder,
|
|
19
19
|
_ref$value = _ref.value,
|
|
20
20
|
value = _ref$value === void 0 ? "" : _ref$value,
|
|
@@ -97,11 +97,20 @@ var CustomDropdown = function CustomDropdown(_ref) {
|
|
|
97
97
|
className: "ufg-field-group",
|
|
98
98
|
id: name,
|
|
99
99
|
style: mainDivStyle,
|
|
100
|
-
children: [(0, _defaults.labelJsx)(
|
|
100
|
+
children: [(0, _defaults.labelJsx)({
|
|
101
|
+
name: name,
|
|
102
|
+
labelStyle: labelStyle,
|
|
103
|
+
label: label,
|
|
104
|
+
required: required,
|
|
105
|
+
spanStyle: spanStyle,
|
|
106
|
+
showHelp: showHelp,
|
|
107
|
+
helpText: helpText
|
|
108
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)("select", {
|
|
101
109
|
id: "form-input-".concat(name),
|
|
102
110
|
name: name,
|
|
103
111
|
value: selectValue,
|
|
104
112
|
disabled: disabled,
|
|
113
|
+
required: required,
|
|
105
114
|
multiple: multiple,
|
|
106
115
|
className: "ufg-select".concat(error ? " error" : ""),
|
|
107
116
|
style: inputStyle,
|
|
@@ -122,7 +131,12 @@ var CustomDropdown = function CustomDropdown(_ref) {
|
|
|
122
131
|
className: "ufg-field-group",
|
|
123
132
|
id: "".concat(name, "_content"),
|
|
124
133
|
style: mainDivStyle,
|
|
125
|
-
children: [
|
|
134
|
+
children: [(0, _defaults.labelJsx)({
|
|
135
|
+
name: "".concat(name, "_content"),
|
|
136
|
+
labelStyle: labelStyle,
|
|
137
|
+
label: contentLabel,
|
|
138
|
+
spanStyle: spanStyle
|
|
139
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("pre", {
|
|
126
140
|
className: "ufg-select-content",
|
|
127
141
|
style: contentStyle,
|
|
128
142
|
children: contentValue
|
|
@@ -133,7 +147,7 @@ var CustomDropdown = function CustomDropdown(_ref) {
|
|
|
133
147
|
CustomDropdown.propTypes = {
|
|
134
148
|
onChange: _propTypes["default"].func.isRequired,
|
|
135
149
|
name: _propTypes["default"].string.isRequired,
|
|
136
|
-
|
|
150
|
+
label: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].object]),
|
|
137
151
|
value: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number, _propTypes["default"].array, _propTypes["default"].object]),
|
|
138
152
|
options: _propTypes["default"].array,
|
|
139
153
|
placeholder: _propTypes["default"].string,
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _defaults = require("./defaults");
|
|
9
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
10
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
11
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
12
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
13
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
14
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
15
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
16
|
+
var CustomFileInput = function CustomFileInput(_ref) {
|
|
17
|
+
var onChange = _ref.onChange,
|
|
18
|
+
value = _ref.value,
|
|
19
|
+
_ref$accept = _ref.accept,
|
|
20
|
+
accept = _ref$accept === void 0 ? '.pdf' : _ref$accept,
|
|
21
|
+
name = _ref.name,
|
|
22
|
+
label = _ref.label,
|
|
23
|
+
placeholder = _ref.placeholder,
|
|
24
|
+
_ref$disabled = _ref.disabled,
|
|
25
|
+
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
26
|
+
_ref$required = _ref.required,
|
|
27
|
+
required = _ref$required === void 0 ? false : _ref$required,
|
|
28
|
+
error = _ref.error,
|
|
29
|
+
_ref$tooltip = _ref.tooltip,
|
|
30
|
+
tooltip = _ref$tooltip === void 0 ? "" : _ref$tooltip,
|
|
31
|
+
_ref$showHelp = _ref.showHelp,
|
|
32
|
+
showHelp = _ref$showHelp === void 0 ? false : _ref$showHelp,
|
|
33
|
+
_ref$helpText = _ref.helpText,
|
|
34
|
+
helpText = _ref$helpText === void 0 ? "" : _ref$helpText,
|
|
35
|
+
_ref$mainDivStyle = _ref.mainDivStyle,
|
|
36
|
+
mainDivStyle = _ref$mainDivStyle === void 0 ? {} : _ref$mainDivStyle,
|
|
37
|
+
_ref$labelStyle = _ref.labelStyle,
|
|
38
|
+
labelStyle = _ref$labelStyle === void 0 ? {} : _ref$labelStyle,
|
|
39
|
+
_ref$spanStyle = _ref.spanStyle,
|
|
40
|
+
spanStyle = _ref$spanStyle === void 0 ? {} : _ref$spanStyle,
|
|
41
|
+
_ref$inputStyle = _ref.inputStyle,
|
|
42
|
+
inputStyle = _ref$inputStyle === void 0 ? {} : _ref$inputStyle,
|
|
43
|
+
_ref$tooltipStyle = _ref.tooltipStyle,
|
|
44
|
+
tooltipStyle = _ref$tooltipStyle === void 0 ? {} : _ref$tooltipStyle;
|
|
45
|
+
var ref = (0, _react.useRef)();
|
|
46
|
+
var handleChange = function handleChange(e) {
|
|
47
|
+
var _e$target$files$, _e$target$files;
|
|
48
|
+
var file = (_e$target$files$ = (_e$target$files = e.target.files) === null || _e$target$files === void 0 ? void 0 : _e$target$files[0]) !== null && _e$target$files$ !== void 0 ? _e$target$files$ : null;
|
|
49
|
+
onChange === null || onChange === void 0 || onChange(name, file);
|
|
50
|
+
e.target.value = '';
|
|
51
|
+
};
|
|
52
|
+
var handleRemove = function handleRemove() {
|
|
53
|
+
onChange === null || onChange === void 0 || onChange(name, null);
|
|
54
|
+
};
|
|
55
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
56
|
+
className: "ufg-field-group",
|
|
57
|
+
id: name,
|
|
58
|
+
style: mainDivStyle,
|
|
59
|
+
children: [(0, _defaults.labelJsx)({
|
|
60
|
+
name: name,
|
|
61
|
+
labelStyle: labelStyle,
|
|
62
|
+
label: label,
|
|
63
|
+
required: required,
|
|
64
|
+
spanStyle: spanStyle,
|
|
65
|
+
showHelp: showHelp,
|
|
66
|
+
helpText: helpText
|
|
67
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
68
|
+
style: {
|
|
69
|
+
display: 'flex',
|
|
70
|
+
alignItems: 'center',
|
|
71
|
+
gap: 8
|
|
72
|
+
},
|
|
73
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("button", {
|
|
74
|
+
type: "button",
|
|
75
|
+
className: "ufg-button ufg-input",
|
|
76
|
+
style: _objectSpread(_objectSpread({
|
|
77
|
+
fontWeight: 'normal',
|
|
78
|
+
width: 'auto'
|
|
79
|
+
}, inputStyle), {}, {
|
|
80
|
+
whiteSpace: 'nowrap'
|
|
81
|
+
}),
|
|
82
|
+
disabled: disabled,
|
|
83
|
+
onClick: function onClick() {
|
|
84
|
+
var _ref$current;
|
|
85
|
+
return (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.click();
|
|
86
|
+
},
|
|
87
|
+
children: placeholder || "Select"
|
|
88
|
+
}), value ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
89
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
90
|
+
style: {
|
|
91
|
+
fontSize: '0.85rem',
|
|
92
|
+
color: '#333',
|
|
93
|
+
wordBreak: 'break-all'
|
|
94
|
+
},
|
|
95
|
+
children: value.name
|
|
96
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("button", {
|
|
97
|
+
type: "button",
|
|
98
|
+
className: "ufg-button ufg-input",
|
|
99
|
+
style: {
|
|
100
|
+
minWidth: '40px',
|
|
101
|
+
width: '40px',
|
|
102
|
+
padding: '2px 8px',
|
|
103
|
+
fontSize: '0.8rem',
|
|
104
|
+
color: '#db2828',
|
|
105
|
+
borderColor: '#db2828'
|
|
106
|
+
},
|
|
107
|
+
onClick: handleRemove,
|
|
108
|
+
title: "Remove file",
|
|
109
|
+
children: "\u2715"
|
|
110
|
+
})]
|
|
111
|
+
}) : /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
112
|
+
style: {
|
|
113
|
+
fontSize: '0.82rem',
|
|
114
|
+
color: '#aaa'
|
|
115
|
+
},
|
|
116
|
+
children: "No file selected"
|
|
117
|
+
})]
|
|
118
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("input", {
|
|
119
|
+
id: "form-input-".concat(name),
|
|
120
|
+
ref: ref,
|
|
121
|
+
type: "file",
|
|
122
|
+
accept: accept,
|
|
123
|
+
style: {
|
|
124
|
+
display: 'none'
|
|
125
|
+
},
|
|
126
|
+
disabled: disabled,
|
|
127
|
+
onChange: handleChange
|
|
128
|
+
}), (0, _defaults.errorJsx)(error), (0, _defaults.tooltipJsx)(tooltip, tooltipStyle)]
|
|
129
|
+
});
|
|
130
|
+
};
|
|
131
|
+
var _default = exports["default"] = CustomFileInput;
|
|
@@ -16,7 +16,7 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
|
|
|
16
16
|
var CustomInput = function CustomInput(_ref) {
|
|
17
17
|
var onChange = _ref.onChange,
|
|
18
18
|
name = _ref.name,
|
|
19
|
-
|
|
19
|
+
label = _ref.label,
|
|
20
20
|
_ref$value = _ref.value,
|
|
21
21
|
value = _ref$value === void 0 ? "" : _ref$value,
|
|
22
22
|
_ref$type = _ref.type,
|
|
@@ -51,12 +51,20 @@ var CustomInput = function CustomInput(_ref) {
|
|
|
51
51
|
className: "ufg-field-group",
|
|
52
52
|
id: name,
|
|
53
53
|
style: mainDivStyle,
|
|
54
|
-
children: [(0, _defaults.labelJsx)(
|
|
54
|
+
children: [(0, _defaults.labelJsx)({
|
|
55
|
+
name: name,
|
|
56
|
+
labelStyle: labelStyle,
|
|
57
|
+
label: label,
|
|
58
|
+
required: required,
|
|
59
|
+
spanStyle: spanStyle,
|
|
60
|
+
showHelp: showHelp,
|
|
61
|
+
helpText: helpText
|
|
62
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("input", {
|
|
55
63
|
id: "form-input-".concat(name),
|
|
56
64
|
type: type,
|
|
57
65
|
name: name,
|
|
58
66
|
value: value,
|
|
59
|
-
placeholder: placeholder !== null && placeholder !== void 0 ? placeholder :
|
|
67
|
+
placeholder: placeholder !== null && placeholder !== void 0 ? placeholder : label,
|
|
60
68
|
disabled: disabled,
|
|
61
69
|
required: required,
|
|
62
70
|
className: "ufg-input".concat(error ? " error" : "").concat(className ? " ".concat(className) : ""),
|
|
@@ -68,7 +76,7 @@ var CustomInput = function CustomInput(_ref) {
|
|
|
68
76
|
CustomInput.propTypes = _defineProperty(_defineProperty({
|
|
69
77
|
onChange: _propTypes["default"].func.isRequired,
|
|
70
78
|
name: _propTypes["default"].string.isRequired,
|
|
71
|
-
|
|
79
|
+
label: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].object]),
|
|
72
80
|
value: _propTypes["default"].string,
|
|
73
81
|
type: _propTypes["default"].string,
|
|
74
82
|
disabled: _propTypes["default"].bool,
|