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.
- package/README.md +18 -16
- package/dist/186.index.js +1 -0
- package/dist/app.css +1 -1
- package/dist/app.css.map +1 -1
- package/dist/index.js +1 -1
- package/lib/dynamic-option-list.js +1 -1
- package/lib/fieldset/FieldSet.js +15 -17
- package/lib/form copy.js +622 -0
- package/lib/form-fields.js +201 -208
- package/lib/form.js +765 -534
- package/lib/index.js +3 -3
- package/lib/language-provider/locales/en-us.json +1 -0
- package/lib/multi-column/MultiColumnRow.js +25 -25
- package/lib/multi-column/dustbin.js +16 -16
- package/lib/multi-column/grip.js +6 -6
- package/lib/preview.js +41 -40
- package/lib/sortable-element.js +6 -6
- package/lib/sortable-form-elements.js +2 -0
- package/lib/stores/store.js +22 -22
- package/lib/survey-elements/component-drag-handle.js +6 -6
- package/lib/survey-elements/component-drag-layer.js +3 -3
- package/lib/survey-elements/component-drag-preview.js +1 -1
- package/lib/survey-elements/component-error-message.js +1 -0
- package/lib/survey-elements/component-header.js +5 -5
- package/lib/survey-elements/component-label.js +12 -6
- package/lib/survey-elements/custom-element.js +23 -12
- package/lib/survey-elements/header-bar.js +5 -5
- package/lib/survey-elements/index.js +817 -740
- package/lib/survey-elements/myxss.js +68 -1
- package/lib/survey-elements-edit.js +211 -53
- package/lib/toolbar-draggable-item.js +4 -4
- package/lib/toolbar.js +49 -18
- package/lib/utils/ipUtils.js +53 -0
- package/package.json +2 -3
- package/types/index.d.ts +5 -1
- package/dist/967.index.js +0 -1
- package/lib/survey-elements/date-picker.js +0 -272
- package/lib/utils/custom-date-picker.js +0 -93
package/lib/stores/store.js
CHANGED
@@ -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,
|
16
|
-
context.commit('setData',
|
17
|
-
if (saveData) this.save(
|
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
|
-
|
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 (
|
31
|
-
|
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 (
|
40
|
-
|
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,
|
47
|
+
this.setData(context, items);
|
48
48
|
}
|
49
49
|
},
|
50
50
|
create: function create(context, element) {
|
51
51
|
var _context$state = context.state,
|
52
|
-
|
52
|
+
items = _context$state.items,
|
53
53
|
saveAlways = _context$state.saveAlways;
|
54
|
-
|
55
|
-
this.setData(context,
|
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
|
-
|
59
|
+
items = _context$state2.items,
|
60
60
|
saveAlways = _context$state2.saveAlways;
|
61
|
-
|
62
|
-
this.setData(context,
|
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
|
80
|
-
this.setData(context,
|
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(
|
98
|
+
save: function save(items) {
|
99
99
|
if (_onPost) {
|
100
100
|
_onPost({
|
101
|
-
task_data:
|
101
|
+
task_data: items
|
102
102
|
});
|
103
103
|
} else if (_saveUrl) {
|
104
104
|
(0, _requests.post)(_saveUrl, {
|
105
|
-
task_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.
|
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
|
-
|
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
|
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:
|
40
|
-
parentIndex:
|
41
|
-
id:
|
42
|
-
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:
|
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(
|
22
|
-
var initialOffset =
|
23
|
-
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.
|
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.
|
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
|
-
|
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.
|
26
|
-
required: props.
|
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(
|
12
|
-
var
|
13
|
-
var
|
14
|
-
|
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 =
|
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:
|
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.
|
37
|
+
var bare = this.props.item.bare;
|
37
38
|
var props = {};
|
38
|
-
props.name = this.props.
|
39
|
+
props.name = this.props.item.fieldName;
|
39
40
|
props.defaultValue = this.props.defaultValue;
|
40
|
-
if (this.props.
|
41
|
+
if (this.props.item.forwardRef) {
|
41
42
|
props.ref = this.inputField;
|
42
43
|
}
|
43
|
-
if (this.props.
|
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.
|
49
|
-
var Element = this.props.
|
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.
|
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
|
-
|
59
|
-
|
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
|
62
|
-
|
63
|
-
},
|
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.
|
35
|
+
}, this.props.item.text), /*#__PURE__*/_react["default"].createElement("div", {
|
36
36
|
className: "toolbar-header-buttons"
|
37
|
-
}, this.props.
|
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.
|
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.
|
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
|
-
|
50
|
+
item: this.props.item,
|
51
51
|
index: this.props.index,
|
52
52
|
onDestroy: this.props.onDestroy,
|
53
53
|
setAsChild: this.props.setAsChild
|