react-survey-builder 1.0.8 → 1.0.10
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 +12 -5
- package/dist/967.index.js +1 -1
- package/dist/app.css +1 -1
- package/dist/app.css.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.LICENSE.txt +23 -0
- package/lib/form-fields.js +853 -0
- package/lib/form.js +38 -19
- package/lib/index.js +32 -3
- package/lib/language-provider/index.js +1 -15
- package/lib/language-provider/locales/en-us.json +3 -1
- package/lib/preview.js +1 -3
- package/lib/survey-elements/component-error-message.js +64 -0
- package/lib/survey-elements/index.js +777 -235
- package/lib/survey-elements-edit.js +44 -31
- package/lib/toolbar.js +152 -139
- package/package.json +12 -4
- package/types/index.d.ts +8 -0
- package/lib/language-provider/entries/it-it.js +0 -16
- package/lib/language-provider/entries/vi-vn.js +0 -16
- package/lib/language-provider/locales/it-it.json +0 -92
- package/lib/language-provider/locales/vi-vn.json +0 -82
@@ -72,10 +72,10 @@ var SurveyElementsEdit = exports["default"] = /*#__PURE__*/function (_React$Comp
|
|
72
72
|
value: function onEditorStateChange(index, property, editorContent) {
|
73
73
|
// const html = draftToHtml(convertToRaw(editorContent.getCurrentContent())).replace(/<p>/g, '<div>').replace(/<\/p>/g, '</div>');
|
74
74
|
var html = (0, _draftjsToHtml["default"])((0, _draftJs.convertToRaw)(editorContent.getCurrentContent())).replace(/<p>/g, '').replace(/<\/p>/g, '').replace(/ /g, ' ').replace(/(?:\r\n|\r|\n)/g, '');
|
75
|
-
var
|
76
|
-
|
75
|
+
var thisElement = this.state.element;
|
76
|
+
thisElement[property] = html;
|
77
77
|
this.setState({
|
78
|
-
element:
|
78
|
+
element: thisElement,
|
79
79
|
dirty: true
|
80
80
|
});
|
81
81
|
}
|
@@ -130,19 +130,19 @@ var SurveyElementsEdit = exports["default"] = /*#__PURE__*/function (_React$Comp
|
|
130
130
|
if (this.state.dirty) {
|
131
131
|
this.props.element.dirty = true;
|
132
132
|
}
|
133
|
-
var
|
134
|
-
var
|
135
|
-
var
|
136
|
-
var
|
137
|
-
var
|
138
|
-
var
|
139
|
-
var
|
140
|
-
var
|
133
|
+
var thisChecked = this.props.element.hasOwnProperty('required') ? this.props.element.required : false;
|
134
|
+
var thisDefaultChecked = this.props.element.hasOwnProperty('defaultChecked') ? this.props.element.defaultChecked : false;
|
135
|
+
var thisReadOnly = this.props.element.hasOwnProperty('readOnly') ? this.props.element.readOnly : false;
|
136
|
+
var thisDefaultToday = this.props.element.hasOwnProperty('defaultToday') ? this.props.element.defaultToday : false;
|
137
|
+
var thisShowTimeSelect = this.props.element.hasOwnProperty('showTimeSelect') ? this.props.element.showTimeSelect : false;
|
138
|
+
var thisShowTimeSelectOnly = this.props.element.hasOwnProperty('showTimeSelectOnly') ? this.props.element.showTimeSelectOnly : false;
|
139
|
+
var thisShowTimeInput = this.props.element.hasOwnProperty('showTimeInput') ? this.props.element.showTimeInput : false;
|
140
|
+
var thisCheckedInline = this.props.element.hasOwnProperty('inline') ? this.props.element.inline : false;
|
141
141
|
var this_checked_bold = this.props.element.hasOwnProperty('bold') ? this.props.element.bold : false;
|
142
|
-
var
|
143
|
-
var
|
144
|
-
var
|
145
|
-
var
|
142
|
+
var thisCheckedItalic = this.props.element.hasOwnProperty('italic') ? this.props.element.italic : false;
|
143
|
+
var thisCheckedCenter = this.props.element.hasOwnProperty('center') ? this.props.element.center : false;
|
144
|
+
var thisCheckedPageBreak = this.props.element.hasOwnProperty('pageBreakBefore') ? this.props.element.pageBreakBefore : false;
|
145
|
+
var thisCheckedAlternateForm = this.props.element.hasOwnProperty('alternateForm') ? this.props.element.alternateForm : false;
|
146
146
|
var _this$props$element = this.props.element,
|
147
147
|
canHavePageBreakBefore = _this$props$element.canHavePageBreakBefore,
|
148
148
|
canHaveAlternateForm = _this$props$element.canHaveAlternateForm,
|
@@ -150,9 +150,9 @@ var SurveyElementsEdit = exports["default"] = /*#__PURE__*/function (_React$Comp
|
|
150
150
|
canHaveOptionCorrect = _this$props$element.canHaveOptionCorrect,
|
151
151
|
canHaveOptionValue = _this$props$element.canHaveOptionValue;
|
152
152
|
var canHaveImageSize = this.state.element.element === 'Image' || this.state.element.element === 'Camera';
|
153
|
-
var
|
154
|
-
if (
|
155
|
-
|
153
|
+
var thisFiles = this.props.files.length ? this.props.files : [];
|
154
|
+
if (thisFiles.length < 1 || thisFiles.length > 0 && thisFiles[0].id !== '') {
|
155
|
+
thisFiles.unshift({
|
156
156
|
id: '',
|
157
157
|
file_name: ''
|
158
158
|
});
|
@@ -192,11 +192,11 @@ var SurveyElementsEdit = exports["default"] = /*#__PURE__*/function (_React$Comp
|
|
192
192
|
defaultValue: this.props.element.filePath,
|
193
193
|
onBlur: this.updateElement.bind(this),
|
194
194
|
onChange: this.editElementProp.bind(this, 'filePath', 'value')
|
195
|
-
},
|
196
|
-
var
|
195
|
+
}, thisFiles.map(function (file) {
|
196
|
+
var thisKey = "file_".concat(file.id);
|
197
197
|
return /*#__PURE__*/_react["default"].createElement("option", {
|
198
198
|
value: file.id,
|
199
|
-
key:
|
199
|
+
key: thisKey
|
200
200
|
}, file.file_name);
|
201
201
|
}))), this.props.element.hasOwnProperty('href') && /*#__PURE__*/_react["default"].createElement(_reactBootstrap.Form.Group, null, /*#__PURE__*/_react["default"].createElement(_reactTextareaAutosize["default"], {
|
202
202
|
type: "text",
|
@@ -218,7 +218,7 @@ var SurveyElementsEdit = exports["default"] = /*#__PURE__*/function (_React$Comp
|
|
218
218
|
id: "required"
|
219
219
|
}),
|
220
220
|
type: "checkbox",
|
221
|
-
checked:
|
221
|
+
checked: thisChecked,
|
222
222
|
value: true,
|
223
223
|
onChange: this.editElementProp.bind(this, 'required', 'checked')
|
224
224
|
}), this.props.element.hasOwnProperty('readOnly') && /*#__PURE__*/_react["default"].createElement(_reactBootstrap.Form.Check, {
|
@@ -227,7 +227,7 @@ var SurveyElementsEdit = exports["default"] = /*#__PURE__*/function (_React$Comp
|
|
227
227
|
id: "read-only"
|
228
228
|
}),
|
229
229
|
type: "checkbox",
|
230
|
-
checked:
|
230
|
+
checked: thisReadOnly,
|
231
231
|
value: true,
|
232
232
|
onChange: this.editElementProp.bind(this, 'readOnly', 'checked')
|
233
233
|
}), this.props.element.hasOwnProperty('defaultToday') && /*#__PURE__*/_react["default"].createElement(_reactBootstrap.Form.Check, {
|
@@ -236,7 +236,7 @@ var SurveyElementsEdit = exports["default"] = /*#__PURE__*/function (_React$Comp
|
|
236
236
|
id: "default-to-today"
|
237
237
|
}),
|
238
238
|
type: "checkbox",
|
239
|
-
checked:
|
239
|
+
checked: thisDefaultToday,
|
240
240
|
value: true,
|
241
241
|
onChange: this.editElementProp.bind(this, 'defaultToday', 'checked')
|
242
242
|
}), ['Checkboxes', 'Checkbox'].indexOf(this.state.element.element) !== -1 && /*#__PURE__*/_react["default"].createElement(_reactBootstrap.Form.Check, {
|
@@ -245,7 +245,7 @@ var SurveyElementsEdit = exports["default"] = /*#__PURE__*/function (_React$Comp
|
|
245
245
|
id: "default-checked"
|
246
246
|
}),
|
247
247
|
type: "checkbox",
|
248
|
-
checked:
|
248
|
+
checked: thisDefaultChecked,
|
249
249
|
value: true,
|
250
250
|
onChange: this.editElementProp.bind(this, 'defaultChecked', 'checked')
|
251
251
|
}), (this.state.element.element === 'RadioButtons' || this.state.element.element === 'Checkboxes') && canHaveDisplayHorizontal && /*#__PURE__*/_react["default"].createElement(_reactBootstrap.Form.Check, {
|
@@ -254,7 +254,7 @@ var SurveyElementsEdit = exports["default"] = /*#__PURE__*/function (_React$Comp
|
|
254
254
|
id: "display-horizontal"
|
255
255
|
}),
|
256
256
|
type: "checkbox",
|
257
|
-
checked:
|
257
|
+
checked: thisCheckedInline,
|
258
258
|
value: true,
|
259
259
|
onChange: this.editElementProp.bind(this, 'inline', 'checked')
|
260
260
|
})), this.state.element.element === 'Checkbox' && /*#__PURE__*/_react["default"].createElement(_reactBootstrap.Form.Group, null, /*#__PURE__*/_react["default"].createElement(_reactBootstrap.Form.Label, null, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
|
@@ -281,7 +281,7 @@ var SurveyElementsEdit = exports["default"] = /*#__PURE__*/function (_React$Comp
|
|
281
281
|
id: "center"
|
282
282
|
}),
|
283
283
|
type: "checkbox",
|
284
|
-
checked:
|
284
|
+
checked: thisCheckedCenter,
|
285
285
|
value: true,
|
286
286
|
onChange: this.editElementProp.bind(this, 'center', 'checked')
|
287
287
|
})), /*#__PURE__*/_react["default"].createElement(_reactBootstrap.Row, null, /*#__PURE__*/_react["default"].createElement(_reactBootstrap.Col, {
|
@@ -351,7 +351,7 @@ var SurveyElementsEdit = exports["default"] = /*#__PURE__*/function (_React$Comp
|
|
351
351
|
id: "page-break-before-element"
|
352
352
|
}),
|
353
353
|
type: "checkbox",
|
354
|
-
checked:
|
354
|
+
checked: thisCheckedPageBreak,
|
355
355
|
value: true,
|
356
356
|
onChange: this.editElementProp.bind(this, 'pageBreakBefore', 'checked')
|
357
357
|
})), canHaveAlternateForm && /*#__PURE__*/_react["default"].createElement(_reactBootstrap.Form.Group, null, /*#__PURE__*/_react["default"].createElement(_reactBootstrap.Form.Label, null, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
|
@@ -362,7 +362,7 @@ var SurveyElementsEdit = exports["default"] = /*#__PURE__*/function (_React$Comp
|
|
362
362
|
id: "display-on-alternate-signature-page"
|
363
363
|
}),
|
364
364
|
type: "checkbox",
|
365
|
-
checked:
|
365
|
+
checked: thisCheckedAlternateForm,
|
366
366
|
value: true,
|
367
367
|
onChange: this.editElementProp.bind(this, 'alternateForm', 'checked')
|
368
368
|
})), this.props.element.hasOwnProperty('step') && /*#__PURE__*/_react["default"].createElement(_reactBootstrap.Form.Group, null, /*#__PURE__*/_react["default"].createElement("div", {
|
@@ -452,7 +452,7 @@ var SurveyElementsEdit = exports["default"] = /*#__PURE__*/function (_React$Comp
|
|
452
452
|
id: "italic"
|
453
453
|
}),
|
454
454
|
type: "checkbox",
|
455
|
-
checked:
|
455
|
+
checked: thisCheckedItalic,
|
456
456
|
value: true,
|
457
457
|
onChange: this.editElementProp.bind(this, 'italic', 'checked')
|
458
458
|
})), this.props.element.showPlaceholder && /*#__PURE__*/_react["default"].createElement(_reactBootstrap.Form.Group, null, /*#__PURE__*/_react["default"].createElement(_reactBootstrap.Form.Label, {
|
@@ -475,7 +475,20 @@ var SurveyElementsEdit = exports["default"] = /*#__PURE__*/function (_React$Comp
|
|
475
475
|
defaultValue: this.props.element.customName,
|
476
476
|
onBlur: this.updateElement.bind(this),
|
477
477
|
onChange: this.editElementProp.bind(this, 'customName', 'value')
|
478
|
-
})), this.props.element.
|
478
|
+
})), this.props.element.showLabelLocationPicker && /*#__PURE__*/_react["default"].createElement(_reactBootstrap.Form.Group, null, /*#__PURE__*/_react["default"].createElement(_reactBootstrap.Form.Label, {
|
479
|
+
htmlFor: "labelLocation"
|
480
|
+
}, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
|
481
|
+
id: "choose-label-location"
|
482
|
+
}), ":"), /*#__PURE__*/_react["default"].createElement(_reactBootstrap.Form.Select, {
|
483
|
+
id: "labelLocation",
|
484
|
+
defaultValue: this.props.element.labelLocation,
|
485
|
+
onBlur: this.updateElement.bind(this),
|
486
|
+
onChange: this.editElementProp.bind(this, 'labelLocation', 'value')
|
487
|
+
}, /*#__PURE__*/_react["default"].createElement("option", {
|
488
|
+
value: "ABOVE"
|
489
|
+
}, "Above Form Field"), /*#__PURE__*/_react["default"].createElement("option", {
|
490
|
+
value: "FLOATING"
|
491
|
+
}, "Floating Inside Form Field"))), this.props.element.showHelp && /*#__PURE__*/_react["default"].createElement(_reactBootstrap.Form.Group, null, /*#__PURE__*/_react["default"].createElement(_reactBootstrap.Form.Label, {
|
479
492
|
htmlFor: "help"
|
480
493
|
}, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
|
481
494
|
id: "help-label"
|
package/lib/toolbar.js
CHANGED
@@ -20,7 +20,6 @@ var _UUID = _interopRequireDefault(require("./UUID"));
|
|
20
20
|
var _store = _interopRequireDefault(require("./stores/store"));
|
21
21
|
var _functions = require("./functions");
|
22
22
|
var _fa = require("react-icons/fa");
|
23
|
-
var _reactBootstrap = require("react-bootstrap");
|
24
23
|
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); }; }
|
25
24
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
26
25
|
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; }
|
@@ -165,7 +164,8 @@ var Toolbar = /*#__PURE__*/function (_React$Component) {
|
|
165
164
|
showHelp: true,
|
166
165
|
options: [],
|
167
166
|
placeholder: 'Select One',
|
168
|
-
hideRequiredAlert: true
|
167
|
+
hideRequiredAlert: true,
|
168
|
+
showLabelLocationPicker: true
|
169
169
|
}, {
|
170
170
|
key: 'Tags',
|
171
171
|
canHaveAnswer: true,
|
@@ -181,7 +181,9 @@ var Toolbar = /*#__PURE__*/function (_React$Component) {
|
|
181
181
|
showDescription: true,
|
182
182
|
showHelp: true,
|
183
183
|
options: [],
|
184
|
-
|
184
|
+
placeholder: 'Select...',
|
185
|
+
hideRequiredAlert: true,
|
186
|
+
showLabelLocationPicker: true
|
185
187
|
}, {
|
186
188
|
key: 'Checkboxes',
|
187
189
|
canHaveAnswer: true,
|
@@ -247,7 +249,8 @@ var Toolbar = /*#__PURE__*/function (_React$Component) {
|
|
247
249
|
placeholder: intl.formatMessage({
|
248
250
|
id: 'place-holder-label'
|
249
251
|
}),
|
250
|
-
hideRequiredAlert: true
|
252
|
+
hideRequiredAlert: true,
|
253
|
+
showLabelLocationPicker: true
|
251
254
|
}, {
|
252
255
|
key: 'EmailInput',
|
253
256
|
canHaveAnswer: true,
|
@@ -265,40 +268,46 @@ var Toolbar = /*#__PURE__*/function (_React$Component) {
|
|
265
268
|
placeholder: intl.formatMessage({
|
266
269
|
id: 'place-holder-email'
|
267
270
|
}),
|
268
|
-
hideRequiredAlert: true
|
271
|
+
hideRequiredAlert: true,
|
272
|
+
showLabelLocationPicker: true
|
269
273
|
}, {
|
270
|
-
key: '
|
274
|
+
key: 'PhoneNumber',
|
271
275
|
canHaveAnswer: true,
|
272
276
|
name: intl.formatMessage({
|
273
|
-
id: '
|
277
|
+
id: 'phone-input'
|
274
278
|
}),
|
275
279
|
label: intl.formatMessage({
|
276
|
-
id: 'place-holder-
|
280
|
+
id: 'place-holder-phone-number'
|
277
281
|
}),
|
278
|
-
icon: _fa.
|
279
|
-
fieldName: '
|
282
|
+
icon: _fa.FaPhone,
|
283
|
+
fieldName: 'phone_input_',
|
280
284
|
showCustomName: true,
|
281
285
|
showDescription: true,
|
282
286
|
showHelp: true,
|
283
|
-
|
284
|
-
|
285
|
-
maxValue: 5,
|
286
|
-
hideRequiredAlert: true
|
287
|
+
hideRequiredAlert: true,
|
288
|
+
showLabelLocationPicker: true
|
287
289
|
}, {
|
288
|
-
key: '
|
289
|
-
|
290
|
+
key: 'DatePicker',
|
291
|
+
canDefaultToday: true,
|
292
|
+
canReadOnly: true,
|
293
|
+
dateFormat: 'MM/DD/YYYY',
|
294
|
+
timeFormat: 'hh:mm aa',
|
295
|
+
showTimeSelect: false,
|
296
|
+
showTimeSelectOnly: false,
|
297
|
+
showTimeInput: false,
|
290
298
|
name: intl.formatMessage({
|
291
|
-
id: '
|
299
|
+
id: 'date'
|
292
300
|
}),
|
301
|
+
icon: _fa.FaRegCalendarAlt,
|
293
302
|
label: intl.formatMessage({
|
294
|
-
id: 'place-holder-
|
303
|
+
id: 'place-holder-label'
|
295
304
|
}),
|
296
|
-
|
297
|
-
fieldName: 'phone_input_',
|
305
|
+
fieldName: 'date_picker_',
|
298
306
|
showCustomName: true,
|
299
307
|
showDescription: true,
|
300
308
|
showHelp: true,
|
301
|
-
hideRequiredAlert: true
|
309
|
+
hideRequiredAlert: true,
|
310
|
+
showLabelLocationPicker: true
|
302
311
|
}, {
|
303
312
|
key: 'TextArea',
|
304
313
|
canHaveAnswer: true,
|
@@ -313,81 +322,27 @@ var Toolbar = /*#__PURE__*/function (_React$Component) {
|
|
313
322
|
showCustomName: true,
|
314
323
|
showDescription: true,
|
315
324
|
showHelp: true,
|
316
|
-
hideRequiredAlert: true
|
325
|
+
hideRequiredAlert: true,
|
326
|
+
showLabelLocationPicker: true
|
317
327
|
}, {
|
318
|
-
key: '
|
319
|
-
canHaveAnswer:
|
328
|
+
key: 'NumberInput',
|
329
|
+
canHaveAnswer: true,
|
320
330
|
name: intl.formatMessage({
|
321
|
-
id: '
|
331
|
+
id: 'number-input'
|
322
332
|
}),
|
323
333
|
label: intl.formatMessage({
|
324
|
-
id: '
|
325
|
-
}),
|
326
|
-
icon: _fa.FaBars,
|
327
|
-
fieldName: 'fieldset-element'
|
328
|
-
}, {
|
329
|
-
key: 'TwoColumnRow',
|
330
|
-
canHaveAnswer: false,
|
331
|
-
name: intl.formatMessage({
|
332
|
-
id: 'two-columns-row'
|
333
|
-
}),
|
334
|
-
label: '',
|
335
|
-
icon: _fa.FaColumns,
|
336
|
-
fieldName: 'two_col_row_'
|
337
|
-
}, {
|
338
|
-
key: 'ThreeColumnRow',
|
339
|
-
canHaveAnswer: false,
|
340
|
-
name: intl.formatMessage({
|
341
|
-
id: 'three-columns-row'
|
342
|
-
}),
|
343
|
-
label: '',
|
344
|
-
icon: _fa.FaColumns,
|
345
|
-
fieldName: 'three_col_row_'
|
346
|
-
}, {
|
347
|
-
key: 'FourColumnRow',
|
348
|
-
element: 'MultiColumnRow',
|
349
|
-
canHaveAnswer: false,
|
350
|
-
name: intl.formatMessage({
|
351
|
-
id: 'four-columns-row'
|
352
|
-
}),
|
353
|
-
label: '',
|
354
|
-
icon: _fa.FaColumns,
|
355
|
-
fieldName: 'four_col_row_',
|
356
|
-
colCount: 4,
|
357
|
-
className: 'col-md-3'
|
358
|
-
}, {
|
359
|
-
key: 'FiveColumnRow',
|
360
|
-
element: 'MultiColumnRow',
|
361
|
-
canHaveAnswer: false,
|
362
|
-
name: intl.formatMessage({
|
363
|
-
id: 'five-columns-row'
|
364
|
-
}),
|
365
|
-
label: '',
|
366
|
-
icon: _fa.FaColumns,
|
367
|
-
fieldName: 'five_col_row_',
|
368
|
-
colCount: 5,
|
369
|
-
className: 'col'
|
370
|
-
}, {
|
371
|
-
key: 'SixColumnRow',
|
372
|
-
element: 'MultiColumnRow',
|
373
|
-
canHaveAnswer: false,
|
374
|
-
name: intl.formatMessage({
|
375
|
-
id: 'six-columns-row'
|
376
|
-
}),
|
377
|
-
label: '',
|
378
|
-
icon: _fa.FaColumns,
|
379
|
-
fieldName: 'six_col_row_',
|
380
|
-
colCount: 6,
|
381
|
-
className: 'col-md-2'
|
382
|
-
}, {
|
383
|
-
key: 'Image',
|
384
|
-
name: intl.formatMessage({
|
385
|
-
id: 'image'
|
334
|
+
id: 'place-holder-label'
|
386
335
|
}),
|
387
|
-
|
388
|
-
|
389
|
-
|
390
|
-
|
336
|
+
icon: _fa.FaPlus,
|
337
|
+
fieldName: 'number_input_',
|
338
|
+
showCustomName: true,
|
339
|
+
showDescription: true,
|
340
|
+
showHelp: true,
|
341
|
+
step: 1,
|
342
|
+
minValue: 0,
|
343
|
+
maxValue: 5,
|
344
|
+
hideRequiredAlert: true,
|
345
|
+
showLabelLocationPicker: true
|
391
346
|
}, {
|
392
347
|
key: 'Rating',
|
393
348
|
canHaveAnswer: true,
|
@@ -403,22 +358,25 @@ var Toolbar = /*#__PURE__*/function (_React$Component) {
|
|
403
358
|
showDescription: true,
|
404
359
|
showHelp: true
|
405
360
|
}, {
|
406
|
-
key: '
|
407
|
-
canDefaultToday: true,
|
408
|
-
canReadOnly: true,
|
409
|
-
dateFormat: 'MM/dd/yyyy',
|
410
|
-
timeFormat: 'hh:mm aa',
|
411
|
-
showTimeSelect: false,
|
412
|
-
showTimeSelectOnly: false,
|
413
|
-
showTimeInput: false,
|
361
|
+
key: 'Range',
|
414
362
|
name: intl.formatMessage({
|
415
|
-
id: '
|
363
|
+
id: 'range'
|
416
364
|
}),
|
417
|
-
icon: _fa.
|
365
|
+
icon: _fa.FaSlidersH,
|
418
366
|
label: intl.formatMessage({
|
419
367
|
id: 'place-holder-label'
|
420
368
|
}),
|
421
|
-
fieldName: '
|
369
|
+
fieldName: 'range_',
|
370
|
+
step: 1,
|
371
|
+
defaultValue: 3,
|
372
|
+
minValue: 1,
|
373
|
+
maxValue: 5,
|
374
|
+
minLabel: intl.formatMessage({
|
375
|
+
id: 'easy'
|
376
|
+
}),
|
377
|
+
maxLabel: intl.formatMessage({
|
378
|
+
id: 'difficult'
|
379
|
+
}),
|
422
380
|
showCustomName: true,
|
423
381
|
showDescription: true,
|
424
382
|
showHelp: true,
|
@@ -433,7 +391,51 @@ var Toolbar = /*#__PURE__*/function (_React$Component) {
|
|
433
391
|
label: intl.formatMessage({
|
434
392
|
id: 'signature'
|
435
393
|
}),
|
436
|
-
fieldName: 'signature_'
|
394
|
+
fieldName: 'signature_',
|
395
|
+
showCustomName: true,
|
396
|
+
showDescription: true,
|
397
|
+
showHelp: true,
|
398
|
+
hideRequiredAlert: true
|
399
|
+
}, {
|
400
|
+
key: 'Camera',
|
401
|
+
name: intl.formatMessage({
|
402
|
+
id: 'camera'
|
403
|
+
}),
|
404
|
+
icon: _fa.FaCamera,
|
405
|
+
label: intl.formatMessage({
|
406
|
+
id: 'place-holder-label'
|
407
|
+
}),
|
408
|
+
fieldName: 'camera_'
|
409
|
+
}, {
|
410
|
+
key: 'FileUpload',
|
411
|
+
name: intl.formatMessage({
|
412
|
+
id: 'file-upload'
|
413
|
+
}),
|
414
|
+
icon: _fa.FaFile,
|
415
|
+
label: intl.formatMessage({
|
416
|
+
id: 'place-holder-label'
|
417
|
+
}),
|
418
|
+
fieldName: 'file_upload_'
|
419
|
+
}, {
|
420
|
+
key: 'FieldSet',
|
421
|
+
canHaveAnswer: false,
|
422
|
+
name: intl.formatMessage({
|
423
|
+
id: 'fieldset'
|
424
|
+
}),
|
425
|
+
label: intl.formatMessage({
|
426
|
+
id: 'fieldset'
|
427
|
+
}),
|
428
|
+
icon: _fa.FaBars,
|
429
|
+
fieldName: 'fieldset-element'
|
430
|
+
}, {
|
431
|
+
key: 'Image',
|
432
|
+
name: intl.formatMessage({
|
433
|
+
id: 'image'
|
434
|
+
}),
|
435
|
+
label: '',
|
436
|
+
icon: _fa.FaRegImage,
|
437
|
+
fieldName: 'image_',
|
438
|
+
src: ''
|
437
439
|
}, {
|
438
440
|
key: 'HyperLink',
|
439
441
|
name: intl.formatMessage({
|
@@ -459,49 +461,59 @@ var Toolbar = /*#__PURE__*/function (_React$Component) {
|
|
459
461
|
filePath: '',
|
460
462
|
_href: ''
|
461
463
|
}, {
|
462
|
-
key: '
|
464
|
+
key: 'TwoColumnRow',
|
465
|
+
canHaveAnswer: false,
|
463
466
|
name: intl.formatMessage({
|
464
|
-
id: '
|
465
|
-
}),
|
466
|
-
icon: _fa.FaSlidersH,
|
467
|
-
label: intl.formatMessage({
|
468
|
-
id: 'place-holder-label'
|
469
|
-
}),
|
470
|
-
fieldName: 'range_',
|
471
|
-
step: 1,
|
472
|
-
defaultValue: 3,
|
473
|
-
minValue: 1,
|
474
|
-
maxValue: 5,
|
475
|
-
minLabel: intl.formatMessage({
|
476
|
-
id: 'easy'
|
477
|
-
}),
|
478
|
-
maxLabel: intl.formatMessage({
|
479
|
-
id: 'difficult'
|
467
|
+
id: 'two-columns-row'
|
480
468
|
}),
|
481
|
-
|
482
|
-
|
483
|
-
|
484
|
-
hideRequiredAlert: true
|
469
|
+
label: '',
|
470
|
+
icon: _fa.FaColumns,
|
471
|
+
fieldName: 'two_col_row_'
|
485
472
|
}, {
|
486
|
-
key: '
|
473
|
+
key: 'ThreeColumnRow',
|
474
|
+
canHaveAnswer: false,
|
487
475
|
name: intl.formatMessage({
|
488
|
-
id: '
|
476
|
+
id: 'three-columns-row'
|
489
477
|
}),
|
490
|
-
|
491
|
-
|
492
|
-
|
478
|
+
label: '',
|
479
|
+
icon: _fa.FaColumns,
|
480
|
+
fieldName: 'three_col_row_'
|
481
|
+
}, {
|
482
|
+
key: 'FourColumnRow',
|
483
|
+
element: 'MultiColumnRow',
|
484
|
+
canHaveAnswer: false,
|
485
|
+
name: intl.formatMessage({
|
486
|
+
id: 'four-columns-row'
|
493
487
|
}),
|
494
|
-
|
488
|
+
label: '',
|
489
|
+
icon: _fa.FaColumns,
|
490
|
+
fieldName: 'four_col_row_',
|
491
|
+
colCount: 4,
|
492
|
+
className: 'col-md-3'
|
495
493
|
}, {
|
496
|
-
key: '
|
494
|
+
key: 'FiveColumnRow',
|
495
|
+
element: 'MultiColumnRow',
|
496
|
+
canHaveAnswer: false,
|
497
497
|
name: intl.formatMessage({
|
498
|
-
id: '
|
498
|
+
id: 'five-columns-row'
|
499
499
|
}),
|
500
|
-
|
501
|
-
|
502
|
-
|
500
|
+
label: '',
|
501
|
+
icon: _fa.FaColumns,
|
502
|
+
fieldName: 'five_col_row_',
|
503
|
+
colCount: 5,
|
504
|
+
className: 'col'
|
505
|
+
}, {
|
506
|
+
key: 'SixColumnRow',
|
507
|
+
element: 'MultiColumnRow',
|
508
|
+
canHaveAnswer: false,
|
509
|
+
name: intl.formatMessage({
|
510
|
+
id: 'six-columns-row'
|
503
511
|
}),
|
504
|
-
|
512
|
+
label: '',
|
513
|
+
icon: _fa.FaColumns,
|
514
|
+
fieldName: 'six_col_row_',
|
515
|
+
colCount: 6,
|
516
|
+
className: 'col-md-2'
|
505
517
|
}];
|
506
518
|
}
|
507
519
|
}, {
|
@@ -536,7 +548,7 @@ var Toolbar = /*#__PURE__*/function (_React$Component) {
|
|
536
548
|
}
|
537
549
|
|
538
550
|
// add placeholder to form input
|
539
|
-
if (['NumberInput', 'EmailInput', 'TextInput', 'PhoneNumber', 'TextArea', 'DatePicker', 'Dropdown'].indexOf(element) !== -1) {
|
551
|
+
if (['NumberInput', 'EmailInput', 'TextInput', 'PhoneNumber', 'TextArea', 'DatePicker', 'Dropdown', 'Tags'].indexOf(element) !== -1) {
|
540
552
|
elementOptions.showPlaceholder = true;
|
541
553
|
}
|
542
554
|
elementOptions.placeholder = item.placeholder;
|
@@ -555,6 +567,8 @@ var Toolbar = /*#__PURE__*/function (_React$Component) {
|
|
555
567
|
}
|
556
568
|
elementOptions.showCustomName = item.showCustomName;
|
557
569
|
elementOptions.customName = item.customName;
|
570
|
+
elementOptions.showLabelLocationPicker = item.showLabelLocationPicker;
|
571
|
+
elementOptions.labelLocation = item.labelLocation;
|
558
572
|
elementOptions.showHelp = item.showHelp;
|
559
573
|
elementOptions.help = item.help;
|
560
574
|
elementOptions.hideRequiredAlert = item.hideRequiredAlert;
|
@@ -657,8 +671,7 @@ var Toolbar = /*#__PURE__*/function (_React$Component) {
|
|
657
671
|
items = _buildGroupItems.items,
|
658
672
|
grouped = _buildGroupItems.grouped,
|
659
673
|
groupKeys = _buildGroupItems.groupKeys;
|
660
|
-
return /*#__PURE__*/_react["default"].createElement(
|
661
|
-
md: 3,
|
674
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
662
675
|
className: "react-survey-builder-toolbar"
|
663
676
|
}, /*#__PURE__*/_react["default"].createElement("h4", null, this.props.intl.formatMessage({
|
664
677
|
id: 'toolbox'
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "react-survey-builder",
|
3
|
-
"version": "1.0.
|
3
|
+
"version": "1.0.10",
|
4
4
|
"description": "A complete survey builder for react.",
|
5
5
|
"main": "lib/index.js",
|
6
6
|
"types": "types/index.d.ts",
|
@@ -28,8 +28,10 @@
|
|
28
28
|
},
|
29
29
|
"author": "Garrett Lang",
|
30
30
|
"dependencies": {
|
31
|
+
"@hookform/error-message": ">=2.0.1",
|
31
32
|
"beedle": "^0.8.1",
|
32
33
|
"classnames": "^2.2.6",
|
34
|
+
"create-react-class": "^15.7.0",
|
33
35
|
"date-fns": "^2.16.1",
|
34
36
|
"draft-js": "^0.11.7",
|
35
37
|
"draftjs-to-html": "^0.9.1",
|
@@ -39,14 +41,18 @@
|
|
39
41
|
"immutability-helper": "^3.1.1",
|
40
42
|
"isomorphic-fetch": "^3.0.0",
|
41
43
|
"lodash": "^4.17.21",
|
44
|
+
"moment": "^2.30.1",
|
45
|
+
"moment-timezone": "^0.5.44",
|
42
46
|
"prop-types": "^15.7.2",
|
43
|
-
"react-bootstrap": "
|
47
|
+
"react-bootstrap": ">=2.9.2",
|
44
48
|
"react-bootstrap-range-slider": "^3.0.8",
|
49
|
+
"react-bootstrap-typeahead": "^6.3.2",
|
45
50
|
"react-dnd": "^11.1.3",
|
46
51
|
"react-dnd-html5-backend": "^11.1.3",
|
47
52
|
"react-draft-wysiwyg": "^1.15.0",
|
48
|
-
"react-
|
49
|
-
"react-
|
53
|
+
"react-hook-form": ">=7.45.4",
|
54
|
+
"react-icons": ">=5.0.1",
|
55
|
+
"react-imask": ">=7.0.1",
|
50
56
|
"react-intl": "^5.24.3",
|
51
57
|
"react-select": "^5.8.0",
|
52
58
|
"react-signature-canvas": "^1.0.3",
|
@@ -54,9 +60,11 @@
|
|
54
60
|
"xss": "^1.0.8"
|
55
61
|
},
|
56
62
|
"peerDependencies": {
|
63
|
+
"@hookform/error-message": ">=2.0.1",
|
57
64
|
"react": ">=18.2.0",
|
58
65
|
"react-bootstrap": ">=2.9.2",
|
59
66
|
"react-dom": ">=18.2.0",
|
67
|
+
"react-hook-form": ">=7.45.4",
|
60
68
|
"react-icons": ">=5.0.1",
|
61
69
|
"react-imask": ">=7.0.1"
|
62
70
|
},
|
package/types/index.d.ts
CHANGED
@@ -28,6 +28,9 @@ type BaseElement = {
|
|
28
28
|
| "Range"
|
29
29
|
| "Camera";
|
30
30
|
showDescription?: boolean;
|
31
|
+
showLabelLocationPicker?: boolean;
|
32
|
+
showHelp?: boolean;
|
33
|
+
hideRequiredAlert?: boolean;
|
31
34
|
required: boolean;
|
32
35
|
canHaveAlternateForm: boolean;
|
33
36
|
canHaveDisplayHorizontal: boolean;
|
@@ -120,6 +123,7 @@ export type ToolbarItem = {
|
|
120
123
|
};
|
121
124
|
|
122
125
|
export interface SurveyBuilderProps {
|
126
|
+
formName?: string;
|
123
127
|
toolbarItems?: ToolbarItem[];
|
124
128
|
files?: any[];
|
125
129
|
url?: string;
|
@@ -164,6 +168,10 @@ export interface SurveyGeneratorProps {
|
|
164
168
|
// eslint-disable-next-line no-undef
|
165
169
|
variables?: Record<any, any>;
|
166
170
|
submitButton?: JSX.Element;
|
171
|
+
backButton?: JSX.Element;
|
172
|
+
buttons?: JSX.Element;
|
173
|
+
buttonClassName?: string;
|
174
|
+
formId?: string;
|
167
175
|
}
|
168
176
|
|
169
177
|
export class ReactSurveyGenerator extends React.Component<SurveyGeneratorProps> {}
|