@goldenpine/react-form-builder2 0.20.3-build.3 → 0.20.3-build.30

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.
@@ -13,17 +13,30 @@ var ComponentLabel = function ComponentLabel(props) {
13
13
  if (!labelText) {
14
14
  return null;
15
15
  }
16
+
17
+ // Since we use <div> to replace <span> in the label in form-elements-edit.jsx to support multiple-line labels,
18
+ // we need to ensure that the required label, *, is inserted correctly.
19
+ // If it's simply appended the label string, it will show on a new line.
20
+ // The workaround is to insert it before the first closing </div> or </li> tag if it exists,
21
+ // so it appears at the end of the first line of the label.
22
+ var updatedLabel = labelText;
23
+ if (hasRequiredLabel) {
24
+ var insertSpan = '<span class="label-required" style="color:red;">*</span>';
25
+ var closingTagRegex = /<\/(div|li)>/i; // case-insensitive match for </div> or </li>
26
+
27
+ if (closingTagRegex.test(labelText)) {
28
+ updatedLabel = labelText.replace(closingTagRegex, "".concat(insertSpan, "</$1>"));
29
+ } else {
30
+ // Neither </div> nor </li> found — append at the end
31
+ updatedLabel = labelText + insertSpan;
32
+ }
33
+ }
16
34
  return /*#__PURE__*/_react["default"].createElement("label", {
17
35
  className: props.className || 'form-label'
18
36
  }, /*#__PURE__*/_react["default"].createElement("span", {
19
37
  dangerouslySetInnerHTML: {
20
- __html: labelText
21
- }
22
- }), hasRequiredLabel && /*#__PURE__*/_react["default"].createElement("span", {
23
- className: "label-required",
24
- style: {
25
- color: "red"
38
+ __html: updatedLabel
26
39
  }
27
- }, "*"));
40
+ }));
28
41
  };
29
42
  var _default = exports["default"] = ComponentLabel;
@@ -37,6 +37,7 @@ var CustomElement = /*#__PURE__*/function (_Component) {
37
37
  var props = {};
38
38
  props.name = this.props.data.field_name;
39
39
  props.defaultValue = this.props.defaultValue;
40
+ var labelHidden = this.props.data.labelHidden || false;
40
41
  if (this.props.mutable && this.props.data.forwardRef) {
41
42
  props.ref = this.inputField;
42
43
  }
@@ -57,10 +58,10 @@ var CustomElement = /*#__PURE__*/function (_Component) {
57
58
  }, /*#__PURE__*/_react["default"].createElement(_componentHeader["default"], this.props), bare ? /*#__PURE__*/_react["default"].createElement(Element, (0, _extends2["default"])({
58
59
  data: this.props.data
59
60
  }, this.props.data.props, props)) : /*#__PURE__*/_react["default"].createElement("div", {
60
- className: "form-group"
61
- }, /*#__PURE__*/_react["default"].createElement(_componentLabel["default"], (0, _extends2["default"])({
62
- className: "form-label"
63
- }, this.props)), /*#__PURE__*/_react["default"].createElement(Element, (0, _extends2["default"])({
61
+ className: "mb-3"
62
+ }, /*#__PURE__*/_react["default"].createElement(_componentLabel["default"], (0, _extends2["default"])({}, this.props, {
63
+ className: ["form-label", this.props.className, labelHidden ? "d-none" : ""].filter(Boolean).join(" ")
64
+ })), /*#__PURE__*/_react["default"].createElement(Element, (0, _extends2["default"])({
64
65
  data: this.props.data
65
66
  }, this.props.data.props, props))));
66
67
  }
@@ -65,6 +65,7 @@ var DatePicker = /*#__PURE__*/function (_React$Component) {
65
65
  props.type = 'date';
66
66
  props.className = 'form-control';
67
67
  props.name = this.props.data.field_name;
68
+ var labelHidden = this.props.data.labelHidden || false;
68
69
  var readOnly = this.props.data.readOnly || this.props.read_only;
69
70
  var iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
70
71
  var placeholderText = this.state.formatMask.toLowerCase();
@@ -80,8 +81,8 @@ var DatePicker = /*#__PURE__*/function (_React$Component) {
80
81
  className: baseClasses,
81
82
  style: _objectSpread({}, this.props.style)
82
83
  }, /*#__PURE__*/_react["default"].createElement(_componentHeader["default"], this.props), /*#__PURE__*/_react["default"].createElement("div", {
83
- className: "form-group"
84
- }, /*#__PURE__*/_react["default"].createElement(_componentLabel["default"], this.props), /*#__PURE__*/_react["default"].createElement("div", null, readOnly && /*#__PURE__*/_react["default"].createElement("input", {
84
+ className: "mb-3"
85
+ }, !labelHidden && /*#__PURE__*/_react["default"].createElement(_componentLabel["default"], this.props), /*#__PURE__*/_react["default"].createElement("div", null, readOnly && /*#__PURE__*/_react["default"].createElement("input", {
85
86
  type: "text",
86
87
  name: props.name,
87
88
  ref: props.ref,