@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.
@@ -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 CustomCheckboxGroup = function CustomCheckboxGroup(_ref) {
19
- var onChange = _ref.onChange,
20
- onOptionChange = _ref.onOptionChange,
21
- name = _ref.name,
22
- _ref$checked = _ref.checked,
23
- checked = _ref$checked === void 0 ? [] : _ref$checked,
24
- displayName = _ref.displayName,
25
- _ref$options = _ref.options,
26
- options = _ref$options === void 0 ? [] : _ref$options,
27
- _ref$required = _ref.required,
28
- required = _ref$required === void 0 ? false : _ref$required,
29
- _ref$grouped = _ref.grouped,
30
- grouped = _ref$grouped === void 0 ? false : _ref$grouped,
31
- error = _ref.error,
32
- _ref$tooltip = _ref.tooltip,
33
- tooltip = _ref$tooltip === void 0 ? "" : _ref$tooltip,
34
- _ref$mainDivStyle = _ref.mainDivStyle,
35
- mainDivStyle = _ref$mainDivStyle === void 0 ? {} : _ref$mainDivStyle,
36
- _ref$labelStyle = _ref.labelStyle,
37
- labelStyle = _ref$labelStyle === void 0 ? {} : _ref$labelStyle,
38
- _ref$spanStyle = _ref.spanStyle,
39
- spanStyle = _ref$spanStyle === void 0 ? {} : _ref$spanStyle,
40
- _ref$inputStyle = _ref.inputStyle,
41
- inputStyle = _ref$inputStyle === void 0 ? {} : _ref$inputStyle,
42
- _ref$tooltipStyle = _ref.tooltipStyle,
43
- tooltipStyle = _ref$tooltipStyle === void 0 ? {} : _ref$tooltipStyle;
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)(name, labelStyle, displayName, required, spanStyle), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
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$options;
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
- className: "ufg-checkbox-item",
67
- style: inputStyle,
68
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("input", {
69
- id: "".concat(name, "-").concat(idx),
70
- type: "checkbox",
71
- checked: checked.includes(opt.name || opt.value),
72
- disabled: !!opt.disabled,
73
- style: opt.inputStyle,
74
- onChange: function onChange(e) {
75
- return handleChange(opt.name || opt.value, e.target.checked);
76
- }
77
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)("label", {
78
- htmlFor: "".concat(name, "-").concat(idx),
79
- style: opt.labelStyle,
80
- children: opt.label || opt.text
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
- }, opt.name || opt.value), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
83
- style: opt.options ? {
84
- paddingLeft: '1.25rem'
85
- } : undefined,
86
- children: (_opt$options = opt.options) === null || _opt$options === void 0 ? void 0 : _opt$options.map(function (subopt, subidx) {
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
- displayName: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].object]),
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
- displayName = _ref.displayName,
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: [displayName && (0, _defaults.labelJsx)(name, labelStyle, displayName, required, spanStyle), component, (0, _defaults.errorJsx)(error)]
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
- displayName: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].object]),
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
- displayName = _ref.displayName,
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)(name, labelStyle, displayName, required, spanStyle, showHelp, helpText), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactDatetime["default"], {
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
- displayName: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].object]),
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
- displayName = _ref.displayName,
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)(name, labelStyle, displayName, required, spanStyle, showHelp, helpText), /*#__PURE__*/(0, _jsxRuntime.jsxs)("select", {
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: [contentLabel && (0, _defaults.labelJsx)("".concat(name, "_content"), labelStyle, contentLabel, false, spanStyle), /*#__PURE__*/(0, _jsxRuntime.jsx)("pre", {
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
- displayName: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].object]),
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
- displayName = _ref.displayName,
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)(name, labelStyle, displayName, required, spanStyle, showHelp, helpText), /*#__PURE__*/(0, _jsxRuntime.jsx)("input", {
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 : displayName,
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
- displayName: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].object]),
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,