react-survey-builder 1.0.27 → 1.0.29

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.
@@ -63,6 +63,7 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
63
63
  authenticity_token = _ref.authenticity_token,
64
64
  task_id = _ref.task_id,
65
65
  buttonClassName = _ref.buttonClassName,
66
+ checkboxButtonClassName = _ref.checkboxButtonClassName,
66
67
  formId = _ref.formId,
67
68
  methods = _ref.methods,
68
69
  _ref$print = _ref.print,
@@ -444,7 +445,8 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
444
445
  return inputs.current[item.fieldName] = c;
445
446
  },
446
447
  isInvalid: invalid,
447
- item: item
448
+ item: item,
449
+ className: item.element === 'RadioButtons' || item.element === 'Checkbox' ? checkboxButtonClassName !== null && checkboxButtonClassName !== void 0 ? checkboxButtonClassName : null : null
448
450
  });
449
451
  }
450
452
  });
@@ -695,7 +697,8 @@ var ReactSurveyFormFields = function ReactSurveyFormFields(_ref) {
695
697
  return inputs.current[item.fieldName] = c;
696
698
  },
697
699
  isInvalid: invalid,
698
- item: item
700
+ item: item,
701
+ className: checkboxButtonClassName !== null && checkboxButtonClassName !== void 0 ? checkboxButtonClassName : null
699
702
  });
700
703
  }
701
704
  });
package/lib/form.js CHANGED
@@ -63,6 +63,7 @@ var ReactSurvey = function ReactSurvey(_ref) {
63
63
  authenticity_token = _ref.authenticity_token,
64
64
  task_id = _ref.task_id,
65
65
  buttonClassName = _ref.buttonClassName,
66
+ checkboxButtonClassName = _ref.checkboxButtonClassName,
66
67
  formId = _ref.formId,
67
68
  _ref$print = _ref.print,
68
69
  print = _ref$print === void 0 ? false : _ref$print;
@@ -452,7 +453,8 @@ var ReactSurvey = function ReactSurvey(_ref) {
452
453
  return inputs.current[item.fieldName] = c;
453
454
  },
454
455
  isInvalid: invalid,
455
- item: item
456
+ item: item,
457
+ className: item.element === 'RadioButtons' || item.element === 'Checkbox' ? checkboxButtonClassName !== null && checkboxButtonClassName !== void 0 ? checkboxButtonClassName : null : null
456
458
  });
457
459
  }
458
460
  });
@@ -703,7 +705,8 @@ var ReactSurvey = function ReactSurvey(_ref) {
703
705
  return inputs.current[item.fieldName] = c;
704
706
  },
705
707
  isInvalid: invalid,
706
- item: item
708
+ item: item,
709
+ className: checkboxButtonClassName !== null && checkboxButtonClassName !== void 0 ? checkboxButtonClassName : null
707
710
  });
708
711
  }
709
712
  });
@@ -34,6 +34,7 @@ var _componentErrorMessage = _interopRequireDefault(require("./component-error-m
34
34
  var _ipUtils = require("../utils/ipUtils");
35
35
  var _momentTimezone = _interopRequireDefault(require("moment-timezone"));
36
36
  var _ri = require("react-icons/ri");
37
+ var _UUID = _interopRequireDefault(require("../UUID"));
37
38
  var _excluded = ["onChange"],
38
39
  _excluded2 = ["onChange", "formatMask"]; // eslint-disable-next-line max-classes-per-file
39
40
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
@@ -1165,7 +1166,7 @@ var Checkboxes = /*#__PURE__*/function (_React$Component15) {
1165
1166
  }, /*#__PURE__*/_react["default"].createElement(_componentLabel["default"], (0, _extends2["default"])({}, this.props, {
1166
1167
  htmlFor: this.props.name
1167
1168
  })), this.props.item.options.map(function (option) {
1168
- var _self$props$item$inli;
1169
+ var _self$props$item$inli, _this20$props$checkbo;
1169
1170
  var props = {};
1170
1171
  props.name = "option_".concat(option.key);
1171
1172
  props.value = option.value;
@@ -1176,7 +1177,8 @@ var Checkboxes = /*#__PURE__*/function (_React$Component15) {
1176
1177
  }
1177
1178
  return /*#__PURE__*/_react["default"].createElement(_reactBootstrap.ToggleButton, (0, _extends2["default"])({
1178
1179
  type: "checkbox",
1179
- variant: "survey-builder-checkbox",
1180
+ variant: (_this20$props$checkbo = _this20.props.checkboxButtonClassName) !== null && _this20$props$checkbo !== void 0 ? _this20$props$checkbo : "outline-light",
1181
+ className: "btn-survey-builder-checkbox",
1180
1182
  key: "preview_".concat(option.key),
1181
1183
  id: "fid_preview_".concat(option.key),
1182
1184
  inputRef: function inputRef(c) {
@@ -1188,7 +1190,7 @@ var Checkboxes = /*#__PURE__*/function (_React$Component15) {
1188
1190
  self.onCheckboxChange(option.value, e);
1189
1191
  }
1190
1192
  }, props), /*#__PURE__*/_react["default"].createElement("div", {
1191
- className: "d-flex align-items-center justify-content-between text-survey-builder-checkbox"
1193
+ className: "d-flex align-items-center justify-content-between text-black text-survey-builder-checkbox"
1192
1194
  }, props.checked !== true && /*#__PURE__*/_react["default"].createElement(_ri.RiCheckboxBlankLine, {
1193
1195
  size: "40px",
1194
1196
  className: "me-3 flex-shrink-0"
@@ -1221,28 +1223,31 @@ var Checkbox = /*#__PURE__*/function (_React$Component16) {
1221
1223
  key: "render",
1222
1224
  value: function render() {
1223
1225
  var _this22 = this,
1224
- _this$props$item$inli;
1226
+ _this$props$checkboxB;
1225
1227
  var baseClasses = 'SortableItem rfb-item';
1226
1228
  if (this.props.item.pageBreakBefore) {
1227
1229
  baseClasses += ' alwaysbreak';
1228
1230
  }
1229
1231
  var props = {};
1230
1232
  // eslint-disable-next-line no-undef
1231
- props.name = this.props.name;
1233
+ props.name = this.props.name + '-' + _UUID["default"].uuid();
1232
1234
  props.onChange = function (event) {
1233
- _this22.props.onChange(event.target.checked);
1235
+ if (_this22.props.onChange) {
1236
+ _this22.props.onChange(event.target.checked);
1237
+ }
1234
1238
  };
1235
- props.isInvalid = this.props.isInvalid;
1239
+ //props.isInvalid = this.props.isInvalid;
1236
1240
  props.onBlur = this.props.onBlur;
1237
1241
  props.autoComplete = "new-password";
1238
1242
  if (this.props.item.disabled) {
1239
1243
  props.disabled = 'disabled';
1240
1244
  }
1241
1245
  if (this.props.item.mutable) {
1242
- props.ref = this.inputField;
1246
+ props.inputRef = this.inputField;
1243
1247
  }
1244
1248
  props.checked = this.props.value;
1245
- props.inline = (_this$props$item$inli = this.props.item.inline) !== null && _this$props$item$inli !== void 0 ? _this$props$item$inli : false;
1249
+ //props.inline = this.props.item.inline ?? false;
1250
+
1246
1251
  if (this.props.item.print === true) {
1247
1252
  return /*#__PURE__*/_react["default"].createElement("div", {
1248
1253
  style: _objectSpread({}, this.props.style),
@@ -1266,11 +1271,12 @@ var Checkbox = /*#__PURE__*/function (_React$Component16) {
1266
1271
  className: "form-label"
1267
1272
  }, this.props)), /*#__PURE__*/_react["default"].createElement(_reactBootstrap.ToggleButton, (0, _extends2["default"])({
1268
1273
  type: "checkbox",
1269
- variant: "survey-builder-checkbox",
1274
+ variant: (_this$props$checkboxB = this.props.checkboxButtonClassName) !== null && _this$props$checkboxB !== void 0 ? _this$props$checkboxB : "outline-light",
1275
+ className: "btn-survey-builder-checkbox",
1270
1276
  value: props.name,
1271
1277
  id: props.name
1272
1278
  }, props), /*#__PURE__*/_react["default"].createElement("div", {
1273
- className: "d-flex align-items-center justify-content-between text-survey-builder-checkbox"
1279
+ className: "d-flex align-items-center justify-content-between text-black text-survey-builder-checkbox"
1274
1280
  }, props.checked !== true && /*#__PURE__*/_react["default"].createElement(_ri.RiCheckboxBlankLine, {
1275
1281
  size: "40px",
1276
1282
  className: "me-3 flex-shrink-0"
@@ -1331,7 +1337,7 @@ var RadioButtons = /*#__PURE__*/function (_React$Component17) {
1331
1337
  }, /*#__PURE__*/_react["default"].createElement(_componentHeader["default"], this.props), /*#__PURE__*/_react["default"].createElement(_reactBootstrap.Form.Group, {
1332
1338
  className: "form-group mb-3"
1333
1339
  }, /*#__PURE__*/_react["default"].createElement(_componentLabel["default"], this.props), this.props.item.options.map(function (option) {
1334
- var _self$props$item$inli2;
1340
+ var _self$props$item$inli2, _this24$props$checkbo;
1335
1341
  var props = {};
1336
1342
  props.name = self.props.name;
1337
1343
  props.value = option.value;
@@ -1343,17 +1349,33 @@ var RadioButtons = /*#__PURE__*/function (_React$Component17) {
1343
1349
  props.disabled = 'disabled';
1344
1350
  }
1345
1351
  props.inline = (_self$props$item$inli2 = self.props.item.inline) !== null && _self$props$item$inli2 !== void 0 ? _self$props$item$inli2 : false;
1346
- return /*#__PURE__*/_react["default"].createElement(_reactBootstrap.Form.Check, (0, _extends2["default"])({
1352
+ return /*#__PURE__*/_react["default"].createElement(_reactBootstrap.ToggleButton, (0, _extends2["default"])({
1347
1353
  label: option.text,
1348
1354
  type: "radio",
1355
+ variant: (_this24$props$checkbo = _this24.props.checkboxButtonClassName) !== null && _this24$props$checkbo !== void 0 ? _this24$props$checkbo : "outline-light",
1356
+ className: "btn-survey-builder-checkbox",
1349
1357
  key: "preview_".concat(option.key),
1350
1358
  id: "fid_preview_".concat(option.key),
1351
- ref: function ref(c) {
1359
+ inputRef: function inputRef(c) {
1352
1360
  if (c && self.props.item.mutable) {
1353
1361
  self.options["child_ref_".concat(option.key)] = c;
1354
1362
  }
1355
1363
  }
1356
- }, props));
1364
+ }, props), /*#__PURE__*/_react["default"].createElement("div", {
1365
+ className: "d-flex align-items-center justify-content-between text-black text-survey-builder-checkbox"
1366
+ }, props.checked !== true && /*#__PURE__*/_react["default"].createElement(_ri.RiRadioButtonLine, {
1367
+ size: "40px",
1368
+ className: "me-3 flex-shrink-0"
1369
+ }), props.checked === true && /*#__PURE__*/_react["default"].createElement(_ri.RiRadioButtonFill, {
1370
+ size: "40px",
1371
+ className: "me-3 flex-shrink-0"
1372
+ }), /*#__PURE__*/_react["default"].createElement("div", {
1373
+ className: "text-start"
1374
+ }, /*#__PURE__*/_react["default"].createElement("span", {
1375
+ dangerouslySetInnerHTML: {
1376
+ __html: _this24.props.item.boxLabel
1377
+ }
1378
+ }))));
1357
1379
  }), this.props.item.help ? /*#__PURE__*/_react["default"].createElement(_reactBootstrap.Form.Text, {
1358
1380
  muted: true
1359
1381
  }, this.props.item.help) : null, /*#__PURE__*/_react["default"].createElement(_componentErrorMessage["default"], {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-survey-builder",
3
- "version": "1.0.27",
3
+ "version": "1.0.29",
4
4
  "description": "A complete survey builder for react.",
5
5
  "main": "lib/index.js",
6
6
  "types": "types/index.d.ts",
package/types/index.d.ts CHANGED
@@ -174,6 +174,7 @@ export interface SurveyGeneratorProps {
174
174
  backButton?: JSX.Element;
175
175
  buttons?: JSX.Element;
176
176
  buttonClassName?: string;
177
+ checkboxButtonClassName?: string;
177
178
  formId?: string;
178
179
  methods?: Record<any, any>;
179
180
  print?: boolean;