react-survey-builder 1.0.16 → 1.0.18

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.
Files changed (38) hide show
  1. package/README.md +18 -16
  2. package/dist/186.index.js +1 -0
  3. package/dist/app.css +1 -1
  4. package/dist/app.css.map +1 -1
  5. package/dist/index.js +1 -1
  6. package/lib/dynamic-option-list.js +1 -1
  7. package/lib/fieldset/FieldSet.js +15 -17
  8. package/lib/form copy.js +622 -0
  9. package/lib/form-fields.js +201 -208
  10. package/lib/form.js +765 -534
  11. package/lib/index.js +3 -3
  12. package/lib/language-provider/locales/en-us.json +1 -0
  13. package/lib/multi-column/MultiColumnRow.js +25 -25
  14. package/lib/multi-column/dustbin.js +16 -16
  15. package/lib/multi-column/grip.js +6 -6
  16. package/lib/preview.js +41 -40
  17. package/lib/sortable-element.js +6 -6
  18. package/lib/sortable-form-elements.js +2 -0
  19. package/lib/stores/store.js +22 -22
  20. package/lib/survey-elements/component-drag-handle.js +6 -6
  21. package/lib/survey-elements/component-drag-layer.js +3 -3
  22. package/lib/survey-elements/component-drag-preview.js +1 -1
  23. package/lib/survey-elements/component-error-message.js +1 -0
  24. package/lib/survey-elements/component-header.js +5 -5
  25. package/lib/survey-elements/component-label.js +12 -6
  26. package/lib/survey-elements/custom-element.js +23 -12
  27. package/lib/survey-elements/header-bar.js +5 -5
  28. package/lib/survey-elements/index.js +817 -740
  29. package/lib/survey-elements/myxss.js +68 -1
  30. package/lib/survey-elements-edit.js +211 -53
  31. package/lib/toolbar-draggable-item.js +4 -4
  32. package/lib/toolbar.js +49 -18
  33. package/lib/utils/ipUtils.js +53 -0
  34. package/package.json +2 -3
  35. package/types/index.d.ts +5 -1
  36. package/dist/967.index.js +0 -1
  37. package/lib/survey-elements/date-picker.js +0 -272
  38. package/lib/utils/custom-date-picker.js +0 -93
@@ -12,23 +12,23 @@ var _onPost;
12
12
  var _onLoad;
13
13
  var store = new _beedle["default"]({
14
14
  actions: {
15
- setData: function setData(context, data, saveData) {
16
- context.commit('setData', data);
17
- if (saveData) this.save(data);
15
+ setData: function setData(context, items, saveData) {
16
+ context.commit('setData', items);
17
+ if (saveData) this.save(items);
18
18
  },
19
19
  load: function load(context, _ref) {
20
20
  var _this = this;
21
21
  var loadUrl = _ref.loadUrl,
22
22
  saveUrl = _ref.saveUrl,
23
- data = _ref.data,
23
+ items = _ref.items,
24
24
  saveAlways = _ref.saveAlways;
25
25
  _saveUrl = saveUrl;
26
26
  var saveA = saveAlways || saveAlways === undefined;
27
27
  context.commit('setSaveAlways', saveA);
28
28
  if (_onLoad) {
29
29
  _onLoad().then(function (x) {
30
- if (data && data.length > 0 && x.length === 0) {
31
- data.forEach(function (y) {
30
+ if (items && items.length > 0 && x.length === 0) {
31
+ items.forEach(function (y) {
32
32
  return x.push(y);
33
33
  });
34
34
  }
@@ -36,30 +36,30 @@ var store = new _beedle["default"]({
36
36
  });
37
37
  } else if (loadUrl) {
38
38
  (0, _requests.get)(loadUrl).then(function (x) {
39
- if (data && data.length > 0 && x.length === 0) {
40
- data.forEach(function (y) {
39
+ if (items && items.length > 0 && x.length === 0) {
40
+ items.forEach(function (y) {
41
41
  return x.push(y);
42
42
  });
43
43
  }
44
44
  _this.setData(context, x);
45
45
  });
46
46
  } else {
47
- this.setData(context, data);
47
+ this.setData(context, items);
48
48
  }
49
49
  },
50
50
  create: function create(context, element) {
51
51
  var _context$state = context.state,
52
- data = _context$state.data,
52
+ items = _context$state.items,
53
53
  saveAlways = _context$state.saveAlways;
54
- data.push(element);
55
- this.setData(context, data, saveAlways);
54
+ items.push(element);
55
+ this.setData(context, items, saveAlways);
56
56
  },
57
57
  "delete": function _delete(context, element) {
58
58
  var _context$state2 = context.state,
59
- data = _context$state2.data,
59
+ items = _context$state2.items,
60
60
  saveAlways = _context$state2.saveAlways;
61
- data.splice(data.indexOf(element), 1);
62
- this.setData(context, data, saveAlways);
61
+ items.splice(items.indexOf(element), 1);
62
+ this.setData(context, items, saveAlways);
63
63
  },
64
64
  deleteLastItem: function deleteLastItem(context) {
65
65
  var lastItem = context.state.lastItem;
@@ -76,8 +76,8 @@ var store = new _beedle["default"]({
76
76
  }
77
77
  },
78
78
  post: function post(context) {
79
- var data = context.state.data;
80
- this.setData(context, data, true);
79
+ var items = context.state.items;
80
+ this.setData(context, items, true);
81
81
  },
82
82
  updateOrder: function updateOrder(context, elements) {
83
83
  var saveAlways = context.state.saveAlways;
@@ -95,14 +95,14 @@ var store = new _beedle["default"]({
95
95
  // console.log('insertItem', item);
96
96
  context.commit('setLastItem', item.isContainer ? null : item);
97
97
  },
98
- save: function save(data) {
98
+ save: function save(items) {
99
99
  if (_onPost) {
100
100
  _onPost({
101
- task_data: data
101
+ task_data: items
102
102
  });
103
103
  } else if (_saveUrl) {
104
104
  (0, _requests.post)(_saveUrl, {
105
- task_data: data
105
+ task_data: items
106
106
  });
107
107
  }
108
108
  }
@@ -110,7 +110,7 @@ var store = new _beedle["default"]({
110
110
  mutations: {
111
111
  setData: function setData(state, payload) {
112
112
  // eslint-disable-next-line no-param-reassign
113
- state.data = payload;
113
+ state.items = payload;
114
114
  return state;
115
115
  },
116
116
  setSaveAlways: function setSaveAlways(state, payload) {
@@ -126,7 +126,7 @@ var store = new _beedle["default"]({
126
126
  }
127
127
  },
128
128
  initialState: {
129
- data: [],
129
+ items: [],
130
130
  saveAlways: true,
131
131
  lastItem: null
132
132
  }
@@ -29,21 +29,21 @@ var style = {
29
29
  };
30
30
  var dragHandleSource = {
31
31
  beginDrag: function beginDrag(props) {
32
- var data = props.data,
32
+ var item = props.item,
33
33
  index = props.index,
34
34
  onDestroy = props.onDestroy,
35
35
  setAsChild = props.setAsChild,
36
36
  getDataById = props.getDataById;
37
37
  return {
38
38
  itemType: _ItemTypes["default"].BOX,
39
- index: data.parentId ? -1 : index,
40
- parentIndex: data.parentIndex,
41
- id: data.id,
42
- col: data.col,
39
+ index: item.parentId ? -1 : index,
40
+ parentIndex: item.parentIndex,
41
+ id: item.id,
42
+ col: item.col,
43
43
  onDestroy: onDestroy,
44
44
  setAsChild: setAsChild,
45
45
  getDataById: getDataById,
46
- data: data
46
+ data: item
47
47
  };
48
48
  }
49
49
  };
@@ -18,9 +18,9 @@ var layerStyles = {
18
18
  width: '100%',
19
19
  height: '100%'
20
20
  };
21
- function getItemStyles(props) {
22
- var initialOffset = props.initialOffset,
23
- currentOffset = props.currentOffset;
21
+ function getItemStyles(_ref) {
22
+ var initialOffset = _ref.initialOffset,
23
+ currentOffset = _ref.currentOffset;
24
24
  if (!initialOffset || !currentOffset) {
25
25
  return {
26
26
  display: 'none'
@@ -36,7 +36,7 @@ var BoxDragPreview = exports.BoxDragPreview = function BoxDragPreview(_ref2) {
36
36
  _React$useState2 = (0, _slicedToArray2["default"])(_React$useState, 2),
37
37
  tickTock = _React$useState2[0],
38
38
  setTickTock = _React$useState2[1];
39
- var text = item.data.content ? item.data.content : item.data.label ? item.data.label : item.data.text;
39
+ var text = item.item.content ? item.item.content : item.item.label ? item.item.label : item.item.text;
40
40
  var isLongText = text.length > 20;
41
41
  var previewText = isLongText ? "".concat(text.slice(0, 20), "...") : text;
42
42
 
@@ -29,6 +29,7 @@ var getError = exports.getError = function getError(errors, name) {
29
29
  var ComponentErrorMessage = function ComponentErrorMessage(_ref) {
30
30
  var name = _ref.name;
31
31
  var methods = (0, _reactHookForm.useFormContext)();
32
+ if (!methods) return null;
32
33
  if (getError(methods.formState.errors, name) !== undefined) {
33
34
  return /*#__PURE__*/_react["default"].createElement(_errorMessage.ErrorMessage, {
34
35
  errors: methods.formState.errors,
@@ -8,22 +8,22 @@ exports["default"] = void 0;
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
  var _headerBar = _interopRequireDefault(require("./header-bar"));
10
10
  var ComponentHeader = function ComponentHeader(props) {
11
- if (props.mutable) {
11
+ if (props.item.mutable) {
12
12
  return null;
13
13
  }
14
- return /*#__PURE__*/_react["default"].createElement("div", null, props.data.pageBreakBefore && /*#__PURE__*/_react["default"].createElement("div", {
14
+ return /*#__PURE__*/_react["default"].createElement("div", null, props.item.pageBreakBefore && /*#__PURE__*/_react["default"].createElement("div", {
15
15
  className: "preview-page-break"
16
16
  }, "Page Break"), /*#__PURE__*/_react["default"].createElement(_headerBar["default"], {
17
17
  isFieldSet: props.isFieldSet,
18
18
  parent: props.parent,
19
19
  editModeOn: props.editModeOn,
20
- data: props.data,
20
+ item: props.item,
21
21
  index: props.index,
22
22
  setAsChild: props.setAsChild,
23
23
  onDestroy: props._onDestroy,
24
24
  onEdit: props.onEdit,
25
- "static": props.data["static"],
26
- required: props.data.required
25
+ "static": props.item["static"],
26
+ required: props.item.required
27
27
  }));
28
28
  };
29
29
  var _default = exports["default"] = ComponentHeader;
@@ -8,17 +8,23 @@ exports["default"] = void 0;
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
  var _myxss = _interopRequireDefault(require("./myxss"));
10
10
  var _reactBootstrap = require("react-bootstrap");
11
- var ComponentLabel = function ComponentLabel(props) {
12
- var _props$hideRequiredAl;
13
- var hasRequiredLabel = props.data.hasOwnProperty('required') && props.data.required === true && !props.readOnly;
14
- var labelText = _myxss["default"].process(props.data.label);
11
+ var ComponentLabel = function ComponentLabel(_ref) {
12
+ var _item$hideLabel;
13
+ var item = _ref.item,
14
+ className = _ref.className,
15
+ htmlFor = _ref.htmlFor;
16
+ var hasRequiredLabel = item.hasOwnProperty('required') && item.required === true && !item.readOnly;
17
+ var labelText = _myxss["default"].process(item.label);
15
18
  if (!labelText || !labelText.trim()) {
16
19
  return null;
17
20
  }
18
21
  labelText = "".concat(labelText).concat(hasRequiredLabel ? '*' : '');
19
- var hideRequiredAlert = (_props$hideRequiredAl = props.hideRequiredAlert) !== null && _props$hideRequiredAl !== void 0 ? _props$hideRequiredAl : props.data.hideRequiredAlert;
22
+ var hideRequiredAlert = item.hideRequiredAlert;
23
+ var hideLabel = (_item$hideLabel = item.hideLabel) !== null && _item$hideLabel !== void 0 ? _item$hideLabel : false;
24
+ if (hideLabel) return null;
20
25
  return /*#__PURE__*/_react["default"].createElement("label", {
21
- className: props.className || ''
26
+ className: className || '',
27
+ htmlFor: htmlFor
22
28
  }, /*#__PURE__*/_react["default"].createElement("span", {
23
29
  dangerouslySetInnerHTML: {
24
30
  __html: labelText
@@ -16,6 +16,7 @@ var _react = _interopRequireDefault(require("react"));
16
16
  var _componentHeader = _interopRequireDefault(require("./component-header"));
17
17
  var _componentLabel = _interopRequireDefault(require("./component-label"));
18
18
  var _reactBootstrap = require("react-bootstrap");
19
+ var _componentErrorMessage = _interopRequireDefault(require("./component-error-message"));
19
20
  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; }
20
21
  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) { (0, _defineProperty2["default"])(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; }
21
22
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
@@ -33,34 +34,44 @@ var CustomElement = /*#__PURE__*/function (_React$Component) {
33
34
  (0, _createClass2["default"])(CustomElement, [{
34
35
  key: "render",
35
36
  value: function render() {
36
- var bare = this.props.data.bare;
37
+ var bare = this.props.item.bare;
37
38
  var props = {};
38
- props.name = this.props.data.fieldName;
39
+ props.name = this.props.item.fieldName;
39
40
  props.defaultValue = this.props.defaultValue;
40
- if (this.props.mutable && this.props.data.forwardRef) {
41
+ if (this.props.item.forwardRef) {
41
42
  props.ref = this.inputField;
42
43
  }
43
- if (this.props.readOnly) {
44
+ if (this.props.item.disabled) {
44
45
  props.disabled = 'disabled';
45
46
  }
46
47
 
47
48
  // Return if component is invalid.
48
- if (!this.props.data.component) return null;
49
- var Element = this.props.data.component;
49
+ if (!this.props.item.component) return null;
50
+ var Element = this.props.item.component;
50
51
  var baseClasses = 'SortableItem rfb-item';
51
- if (this.props.data.pageBreakBefore) {
52
+ if (this.props.item.pageBreakBefore) {
52
53
  baseClasses += ' alwaysbreak';
53
54
  }
54
55
  return /*#__PURE__*/_react["default"].createElement("div", {
55
56
  className: baseClasses,
56
57
  style: _objectSpread({}, this.props.style)
57
58
  }, /*#__PURE__*/_react["default"].createElement(_componentHeader["default"], this.props), bare ? /*#__PURE__*/_react["default"].createElement(Element, (0, _extends2["default"])({
58
- data: this.props.data
59
- }, this.props.data.props, props)) : /*#__PURE__*/_react["default"].createElement(_reactBootstrap.Form.Group, null, /*#__PURE__*/_react["default"].createElement(_componentLabel["default"], (0, _extends2["default"])({
59
+ id: props.name,
60
+ item: this.props.item
61
+ }, this.props.item.props, props)) : /*#__PURE__*/_react["default"].createElement(_reactBootstrap.Form.Group, {
62
+ className: "form-group mb-3"
63
+ }, /*#__PURE__*/_react["default"].createElement(_componentLabel["default"], (0, _extends2["default"])({
60
64
  className: "form-label"
61
- }, this.props)), /*#__PURE__*/_react["default"].createElement(Element, (0, _extends2["default"])({
62
- data: this.props.data
63
- }, this.props.data.props, props))));
65
+ }, this.props, {
66
+ htmlFor: props.name
67
+ })), /*#__PURE__*/_react["default"].createElement(Element, (0, _extends2["default"])({
68
+ id: props.name,
69
+ item: this.props.item
70
+ }, this.props.item.props, props)), this.props.item.help ? /*#__PURE__*/_react["default"].createElement(_reactBootstrap.Form.Text, {
71
+ muted: true
72
+ }, this.props.item.help) : null, /*#__PURE__*/_react["default"].createElement(_componentErrorMessage["default"], {
73
+ name: props.name
74
+ })));
64
75
  }
65
76
  }]);
66
77
  return CustomElement;
@@ -32,22 +32,22 @@ var HeaderBar = exports["default"] = /*#__PURE__*/function (_React$Component) {
32
32
  className: "d-flex toolbar-header align-items-center justify-content-between p-2"
33
33
  }, /*#__PURE__*/_react["default"].createElement(_reactBootstrap.Badge, {
34
34
  bg: "secondary"
35
- }, this.props.data.text), /*#__PURE__*/_react["default"].createElement("div", {
35
+ }, this.props.item.text), /*#__PURE__*/_react["default"].createElement("div", {
36
36
  className: "toolbar-header-buttons"
37
- }, this.props.data.element !== 'LineBreak' && /*#__PURE__*/_react["default"].createElement(_reactBootstrap.Button, {
37
+ }, this.props.item.element !== 'LineBreak' && /*#__PURE__*/_react["default"].createElement(_reactBootstrap.Button, {
38
38
  variant: "default",
39
39
  className: "is-isolated",
40
- onClick: this.props.editModeOn.bind(this.props.parent, this.props.data)
40
+ onClick: this.props.editModeOn.bind(this.props.parent, this.props.item)
41
41
  }, /*#__PURE__*/_react["default"].createElement(_fa.FaEdit, {
42
42
  className: "is-isolated"
43
43
  })), /*#__PURE__*/_react["default"].createElement(_reactBootstrap.Button, {
44
44
  variant: "default",
45
45
  className: "is-isolated",
46
- onClick: this.props.onDestroy.bind(this, this.props.data)
46
+ onClick: this.props.onDestroy.bind(this, this.props.item)
47
47
  }, /*#__PURE__*/_react["default"].createElement(_fa.FaTrash, {
48
48
  className: "is-isolated"
49
49
  })), /*#__PURE__*/_react["default"].createElement(_componentDragHandle["default"], {
50
- data: this.props.data,
50
+ item: this.props.item,
51
51
  index: this.props.index,
52
52
  onDestroy: this.props.onDestroy,
53
53
  setAsChild: this.props.setAsChild