@insticc/genericform 1.0.3 → 1.0.4
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/FormFields/CustomCheckbox.js +1 -0
- package/build/FormFields/CustomDatePicker.js +1 -0
- package/build/FormFields/CustomInput.js +1 -0
- package/build/FormFields/CustomLabel.js +2 -0
- package/build/FormFields/CustomNumberInput.js +2 -1
- package/build/FormFields/CustomSearch.js +2 -0
- package/build/FormFields/MultipleCheckbox.js +1 -0
- package/build/FormFields/MultipleDropdown.js +1 -0
- package/build/FormFields/YearDatePicker.js +4 -0
- package/build/index.css +18 -0
- package/build/index.js +123 -12
- package/package.json +1 -1
|
@@ -20,6 +20,7 @@ var CustomCheckbox = function CustomCheckbox(_ref) {
|
|
|
20
20
|
helpText = _ref$helpText === void 0 ? "" : _ref$helpText;
|
|
21
21
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
22
22
|
className: "checkboxDiv",
|
|
23
|
+
id: name,
|
|
23
24
|
key: name
|
|
24
25
|
}, /*#__PURE__*/_react["default"].createElement(_semanticUiReact.Form.Checkbox, {
|
|
25
26
|
type: "checkbox",
|
|
@@ -21,6 +21,7 @@ var CustomDatePicker = function CustomDatePicker(_ref) {
|
|
|
21
21
|
_ref$style = _ref.style,
|
|
22
22
|
style = _ref$style === void 0 ? null : _ref$style;
|
|
23
23
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
24
|
+
className: "datePickerDiv",
|
|
24
25
|
key: name,
|
|
25
26
|
id: 'form-dateDiv-' + name,
|
|
26
27
|
style: style ? style : {
|
|
@@ -22,6 +22,7 @@ var CustomInput = function CustomInput(_ref) {
|
|
|
22
22
|
inputStyle = _ref$inputStyle === void 0 ? null : _ref$inputStyle,
|
|
23
23
|
className = _ref.className;
|
|
24
24
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
25
|
+
className: "inputDiv",
|
|
25
26
|
id: name,
|
|
26
27
|
style: style ? style : {
|
|
27
28
|
marginBottom: '13px'
|
|
@@ -12,6 +12,8 @@ var CustomLabel = function CustomLabel(_ref) {
|
|
|
12
12
|
_ref$style = _ref.style,
|
|
13
13
|
style = _ref$style === void 0 ? null : _ref$style;
|
|
14
14
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
15
|
+
className: "labelDiv",
|
|
16
|
+
id: name,
|
|
15
17
|
key: name,
|
|
16
18
|
style: style ? style : {
|
|
17
19
|
marginBottom: '13px'
|
|
@@ -25,7 +25,8 @@ var CustomNumberInput = function CustomNumberInput(_ref) {
|
|
|
25
25
|
_ref$tooltip = _ref.tooltip,
|
|
26
26
|
tooltip = _ref$tooltip === void 0 ? "" : _ref$tooltip;
|
|
27
27
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
28
|
-
className: "
|
|
28
|
+
className: "inputNumberDiv",
|
|
29
|
+
id: name,
|
|
29
30
|
key: name
|
|
30
31
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
31
32
|
style: {
|
|
@@ -17,6 +17,8 @@ var CustomSearch = function CustomSearch(_ref) {
|
|
|
17
17
|
isLoading = _ref.isLoading,
|
|
18
18
|
options = _ref.options;
|
|
19
19
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
20
|
+
className: "searchDiv",
|
|
21
|
+
id: name,
|
|
20
22
|
key: name
|
|
21
23
|
}, /*#__PURE__*/_react["default"].createElement("label", {
|
|
22
24
|
htmlFor: "form-input-" + name,
|
|
@@ -22,6 +22,7 @@ var MultipleCheckbox = function MultipleCheckbox(_ref) {
|
|
|
22
22
|
checkboxDivStyle = _ref$checkboxDivStyle === void 0 ? null : _ref$checkboxDivStyle;
|
|
23
23
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
24
24
|
key: name,
|
|
25
|
+
id: name,
|
|
25
26
|
className: "multipleCheckboxDiv",
|
|
26
27
|
style: divStyle
|
|
27
28
|
}, /*#__PURE__*/_react["default"].createElement("label", {
|
|
@@ -16,6 +16,7 @@ var MultipleDropdown = function MultipleDropdown(_ref) {
|
|
|
16
16
|
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
17
17
|
options = _ref.options;
|
|
18
18
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
19
|
+
className: "multipleDropdownDiv",
|
|
19
20
|
id: name,
|
|
20
21
|
key: name
|
|
21
22
|
}, /*#__PURE__*/_react["default"].createElement("label", {
|
|
@@ -22,6 +22,7 @@ var YearDatePicker = function YearDatePicker(_ref) {
|
|
|
22
22
|
_ref$currentMaxYear = _ref.currentMaxYear,
|
|
23
23
|
currentMaxYear = _ref$currentMaxYear === void 0 ? false : _ref$currentMaxYear;
|
|
24
24
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
25
|
+
className: "yearDateDiv",
|
|
25
26
|
key: name,
|
|
26
27
|
id: 'form-dateYearDiv-' + name,
|
|
27
28
|
style: style ? style : {
|
|
@@ -70,6 +71,9 @@ var YearDatePicker = function YearDatePicker(_ref) {
|
|
|
70
71
|
readOnly: true,
|
|
71
72
|
onClick: openCalendar // Ensures the calendar opens when the input is clicked
|
|
72
73
|
}));
|
|
74
|
+
},
|
|
75
|
+
inputProps: {
|
|
76
|
+
placeholder: "Select year"
|
|
73
77
|
}
|
|
74
78
|
})));
|
|
75
79
|
};
|
package/build/index.css
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
.form-columns {
|
|
2
|
+
display: flex;
|
|
3
|
+
flex-direction: row;
|
|
4
|
+
gap: 2rem;
|
|
5
|
+
align-items: flex-start;
|
|
6
|
+
flex-wrap: wrap;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.form-column {
|
|
10
|
+
width: fit-content;
|
|
11
|
+
min-width: 200px;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
@media (max-width: 768px) {
|
|
15
|
+
.form-columns {
|
|
16
|
+
flex-direction: column;
|
|
17
|
+
}
|
|
18
|
+
}
|
package/build/index.js
CHANGED
|
@@ -20,6 +20,7 @@ var _MultipleCheckbox = _interopRequireDefault(require("./FormFields/MultipleChe
|
|
|
20
20
|
var _MultipleDropdown = _interopRequireDefault(require("./FormFields/MultipleDropdown"));
|
|
21
21
|
var _MultipleRadioButton = _interopRequireDefault(require("./FormFields/MultipleRadioButton"));
|
|
22
22
|
var _YearDatePicker = _interopRequireDefault(require("./FormFields/YearDatePicker"));
|
|
23
|
+
require("./index.css");
|
|
23
24
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
24
25
|
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); }
|
|
25
26
|
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
@@ -89,7 +90,8 @@ var GenericForm = exports["default"] = /*#__PURE__*/function (_React$Component)
|
|
|
89
90
|
options: field.options,
|
|
90
91
|
onChange: _this.props.handleChange,
|
|
91
92
|
disabled: field.disabled,
|
|
92
|
-
upward: field.openUpward
|
|
93
|
+
upward: field.openUpward,
|
|
94
|
+
placeholder: field.placeholder || 'Select option'
|
|
93
95
|
});
|
|
94
96
|
var findList = list.find(function (l) {
|
|
95
97
|
return l.name === field.name;
|
|
@@ -132,15 +134,18 @@ var GenericForm = exports["default"] = /*#__PURE__*/function (_React$Component)
|
|
|
132
134
|
formStyle = _this$props.formStyle,
|
|
133
135
|
_this$props$haveSaveB = _this$props.haveSaveButton,
|
|
134
136
|
haveSaveButton = _this$props$haveSaveB === void 0 ? true : _this$props$haveSaveB,
|
|
135
|
-
handleSubmit = _this$props.handleSubmit
|
|
137
|
+
handleSubmit = _this$props.handleSubmit,
|
|
138
|
+
_this$props$splitForm = _this$props.splitForm,
|
|
139
|
+
splitForm = _this$props$splitForm === void 0 ? false : _this$props$splitForm,
|
|
140
|
+
splitField = _this$props.splitField,
|
|
141
|
+
splitGroup = _this$props.splitGroup;
|
|
136
142
|
var sortedFields = _this.state.sortedFields;
|
|
143
|
+
|
|
144
|
+
// Group fields by their group name or 'ungrouped'
|
|
137
145
|
var groupedFields = {};
|
|
138
|
-
// Grouping
|
|
139
146
|
sortedFields.forEach(function (field) {
|
|
140
147
|
var group = field.group || 'ungrouped';
|
|
141
|
-
if (!groupedFields[group])
|
|
142
|
-
groupedFields[group] = [];
|
|
143
|
-
}
|
|
148
|
+
if (!groupedFields[group]) groupedFields[group] = [];
|
|
144
149
|
groupedFields[group].push(field);
|
|
145
150
|
});
|
|
146
151
|
divStyle = divStyle || {
|
|
@@ -149,6 +154,116 @@ var GenericForm = exports["default"] = /*#__PURE__*/function (_React$Component)
|
|
|
149
154
|
formStyle = formStyle || {
|
|
150
155
|
margin: 'auto'
|
|
151
156
|
};
|
|
157
|
+
|
|
158
|
+
// Helper: split array of fields by splitField name
|
|
159
|
+
var splitByField = function splitByField(fields) {
|
|
160
|
+
var index = fields.findIndex(function (f) {
|
|
161
|
+
return f.name === splitField;
|
|
162
|
+
});
|
|
163
|
+
if (index === -1) {
|
|
164
|
+
return {
|
|
165
|
+
left: fields,
|
|
166
|
+
right: []
|
|
167
|
+
}; // No splitField found, all on left
|
|
168
|
+
}
|
|
169
|
+
return {
|
|
170
|
+
left: fields.slice(0, index + 1),
|
|
171
|
+
right: fields.slice(index + 1)
|
|
172
|
+
};
|
|
173
|
+
};
|
|
174
|
+
|
|
175
|
+
// Helper: render list of fields filtering hidden ones
|
|
176
|
+
var renderFields = function renderFields(fields) {
|
|
177
|
+
return fields.map(function (field) {
|
|
178
|
+
if (!field.hide) {
|
|
179
|
+
return _this.renderField(field);
|
|
180
|
+
}
|
|
181
|
+
return null;
|
|
182
|
+
});
|
|
183
|
+
};
|
|
184
|
+
|
|
185
|
+
// If splitting is requested and splitField is provided
|
|
186
|
+
if (splitForm && splitField) {
|
|
187
|
+
if (splitGroup) {
|
|
188
|
+
// Split at the group level
|
|
189
|
+
var groups = Object.keys(groupedFields).sort();
|
|
190
|
+
|
|
191
|
+
// Find which group contains the splitField
|
|
192
|
+
var splitGroupIndex = groups.findIndex(function (group) {
|
|
193
|
+
return groupedFields[group].some(function (f) {
|
|
194
|
+
return f.name === splitField;
|
|
195
|
+
});
|
|
196
|
+
});
|
|
197
|
+
if (splitGroupIndex === -1) {
|
|
198
|
+
// splitField not found, render normal
|
|
199
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
200
|
+
style: divStyle
|
|
201
|
+
}, /*#__PURE__*/_react["default"].createElement(_semanticUiReact.Form, {
|
|
202
|
+
style: formStyle,
|
|
203
|
+
onSubmit: handleSubmit
|
|
204
|
+
}, groups.map(function (group) {
|
|
205
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
206
|
+
key: group
|
|
207
|
+
}, group !== 'ungrouped' && /*#__PURE__*/_react["default"].createElement("h2", null, group), renderFields(groupedFields[group]));
|
|
208
|
+
})));
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
// Groups for left and right columns
|
|
212
|
+
var leftGroups = groups.slice(0, splitGroupIndex + 1);
|
|
213
|
+
var rightGroups = groups.slice(splitGroupIndex + 1);
|
|
214
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
215
|
+
style: divStyle
|
|
216
|
+
}, /*#__PURE__*/_react["default"].createElement(_semanticUiReact.Form, {
|
|
217
|
+
style: formStyle,
|
|
218
|
+
onSubmit: handleSubmit
|
|
219
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
220
|
+
className: "form-columns"
|
|
221
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
222
|
+
className: "form-column"
|
|
223
|
+
}, leftGroups.map(function (group) {
|
|
224
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
225
|
+
key: group
|
|
226
|
+
}, group !== 'ungrouped' && /*#__PURE__*/_react["default"].createElement("h2", null, group), renderFields(groupedFields[group]));
|
|
227
|
+
})), /*#__PURE__*/_react["default"].createElement("div", {
|
|
228
|
+
className: "form-column"
|
|
229
|
+
}, rightGroups.map(function (group) {
|
|
230
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
231
|
+
key: group
|
|
232
|
+
}, group !== 'ungrouped' && /*#__PURE__*/_react["default"].createElement("h2", null, group), renderFields(groupedFields[group]));
|
|
233
|
+
})))));
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
// Split inside each group by splitField
|
|
237
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
238
|
+
style: divStyle
|
|
239
|
+
}, /*#__PURE__*/_react["default"].createElement(_semanticUiReact.Form, {
|
|
240
|
+
style: formStyle,
|
|
241
|
+
onSubmit: handleSubmit
|
|
242
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
243
|
+
className: "form-columns"
|
|
244
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
245
|
+
className: "form-column"
|
|
246
|
+
}, Object.keys(groupedFields).map(function (group) {
|
|
247
|
+
var fields = groupedFields[group];
|
|
248
|
+
var _splitByField = splitByField(fields),
|
|
249
|
+
left = _splitByField.left;
|
|
250
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
251
|
+
key: group
|
|
252
|
+
}, group !== 'ungrouped' && /*#__PURE__*/_react["default"].createElement("h2", null, group), renderFields(left));
|
|
253
|
+
})), /*#__PURE__*/_react["default"].createElement("div", {
|
|
254
|
+
className: "form-column"
|
|
255
|
+
}, Object.keys(groupedFields).map(function (group) {
|
|
256
|
+
var fields = groupedFields[group];
|
|
257
|
+
var _splitByField2 = splitByField(fields),
|
|
258
|
+
right = _splitByField2.right;
|
|
259
|
+
if (right.length === 0) return null;
|
|
260
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
261
|
+
key: group
|
|
262
|
+
}, group !== 'ungrouped' && /*#__PURE__*/_react["default"].createElement("h2", null, group), renderFields(right));
|
|
263
|
+
})))));
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
// Default: no split
|
|
152
267
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
153
268
|
style: divStyle
|
|
154
269
|
}, /*#__PURE__*/_react["default"].createElement(_semanticUiReact.Form, {
|
|
@@ -157,12 +272,7 @@ var GenericForm = exports["default"] = /*#__PURE__*/function (_React$Component)
|
|
|
157
272
|
}, Object.keys(groupedFields).map(function (group) {
|
|
158
273
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
159
274
|
key: group
|
|
160
|
-
}, group !== 'ungrouped' && /*#__PURE__*/_react["default"].createElement("h2", null, group), groupedFields[group]
|
|
161
|
-
var showField = !field.hide;
|
|
162
|
-
if (showField) {
|
|
163
|
-
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, _this.renderField(field));
|
|
164
|
-
}
|
|
165
|
-
}));
|
|
275
|
+
}, group !== 'ungrouped' && /*#__PURE__*/_react["default"].createElement("h2", null, group), renderFields(groupedFields[group]));
|
|
166
276
|
})));
|
|
167
277
|
});
|
|
168
278
|
_defineProperty(_this, "renderField", function (field) {
|
|
@@ -313,6 +423,7 @@ var GenericForm = exports["default"] = /*#__PURE__*/function (_React$Component)
|
|
|
313
423
|
_this2.reRenderDropdown(element, true);
|
|
314
424
|
}
|
|
315
425
|
});
|
|
426
|
+
this.sortFields(fields);
|
|
316
427
|
}
|
|
317
428
|
}
|
|
318
429
|
}, {
|