react-survey-builder 1.0.1

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 (54) hide show
  1. package/LICENSE +7 -0
  2. package/README.md +236 -0
  3. package/dist/967.index.js +1 -0
  4. package/dist/app.css +1 -0
  5. package/dist/app.css.map +1 -0
  6. package/dist/index.js +2 -0
  7. package/dist/index.js.LICENSE.txt +46 -0
  8. package/lib/ItemTypes.js +10 -0
  9. package/lib/UUID.js +65 -0
  10. package/lib/dynamic-option-list.js +188 -0
  11. package/lib/fieldset/FieldSet.js +118 -0
  12. package/lib/fieldset/index.js +13 -0
  13. package/lib/form.js +604 -0
  14. package/lib/functions/index.js +45 -0
  15. package/lib/index.js +139 -0
  16. package/lib/language-provider/IntlMessages.js +15 -0
  17. package/lib/language-provider/entries/en-us.js +16 -0
  18. package/lib/language-provider/entries/it-it.js +16 -0
  19. package/lib/language-provider/entries/vi-vn.js +16 -0
  20. package/lib/language-provider/index.js +32 -0
  21. package/lib/language-provider/locales/en-us.json +97 -0
  22. package/lib/language-provider/locales/it-it.json +92 -0
  23. package/lib/language-provider/locales/vi-vn.json +82 -0
  24. package/lib/multi-column/MultiColumnRow.js +134 -0
  25. package/lib/multi-column/dustbin.js +152 -0
  26. package/lib/multi-column/grip.js +51 -0
  27. package/lib/multi-column/index.js +24 -0
  28. package/lib/preview.js +388 -0
  29. package/lib/sortable-element.js +177 -0
  30. package/lib/sortable-form-elements.js +67 -0
  31. package/lib/stores/registry.js +42 -0
  32. package/lib/stores/requests.js +31 -0
  33. package/lib/stores/store.js +138 -0
  34. package/lib/survey-dynamic-edit.js +54 -0
  35. package/lib/survey-elements/component-drag-handle.js +90 -0
  36. package/lib/survey-elements/component-drag-layer.js +68 -0
  37. package/lib/survey-elements/component-drag-preview.js +57 -0
  38. package/lib/survey-elements/component-header.js +29 -0
  39. package/lib/survey-elements/component-label.js +26 -0
  40. package/lib/survey-elements/custom-element.js +70 -0
  41. package/lib/survey-elements/date-picker.js +278 -0
  42. package/lib/survey-elements/header-bar.js +54 -0
  43. package/lib/survey-elements/index.js +1196 -0
  44. package/lib/survey-elements/myxss.js +29 -0
  45. package/lib/survey-elements/star-rating.js +335 -0
  46. package/lib/survey-elements-edit.js +613 -0
  47. package/lib/survey-place-holder.js +51 -0
  48. package/lib/survey-validator.js +103 -0
  49. package/lib/toolbar-draggable-item.js +59 -0
  50. package/lib/toolbar-group-item.js +39 -0
  51. package/lib/toolbar.js +680 -0
  52. package/lib/utils/custom-date-picker.js +93 -0
  53. package/package.json +114 -0
  54. package/types/index.d.ts +180 -0
@@ -0,0 +1,613 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
11
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
12
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
13
+ var _react = _interopRequireDefault(require("react"));
14
+ var _reactTextareaAutosize = _interopRequireDefault(require("react-textarea-autosize"));
15
+ var _draftJs = require("draft-js");
16
+ var _draftjsToHtml = _interopRequireDefault(require("draftjs-to-html"));
17
+ var _reactDraftWysiwyg = require("react-draft-wysiwyg");
18
+ var _dynamicOptionList = _interopRequireDefault(require("./dynamic-option-list"));
19
+ var _requests = require("./stores/requests");
20
+ var _UUID = _interopRequireDefault(require("./UUID"));
21
+ var _IntlMessages = _interopRequireDefault(require("./language-provider/IntlMessages"));
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); }; }
23
+ 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; } }
24
+ var toolbar = {
25
+ options: ['inline', 'list', 'textAlign', 'fontSize', 'link', 'history'],
26
+ inline: {
27
+ inDropdown: false,
28
+ className: undefined,
29
+ options: ['bold', 'italic', 'underline', 'superscript', 'subscript']
30
+ }
31
+ };
32
+ var SurveyElementsEdit = exports["default"] = /*#__PURE__*/function (_React$Component) {
33
+ (0, _inherits2["default"])(SurveyElementsEdit, _React$Component);
34
+ var _super = _createSuper(SurveyElementsEdit);
35
+ function SurveyElementsEdit(props) {
36
+ var _this;
37
+ (0, _classCallCheck2["default"])(this, SurveyElementsEdit);
38
+ _this = _super.call(this, props);
39
+ _this.state = {
40
+ element: _this.props.element,
41
+ data: _this.props.data,
42
+ dirty: false
43
+ };
44
+ return _this;
45
+ }
46
+ (0, _createClass2["default"])(SurveyElementsEdit, [{
47
+ key: "toggleRequired",
48
+ value: function toggleRequired() {
49
+ // const this_element = this.state.element;
50
+ }
51
+ }, {
52
+ key: "editElementProp",
53
+ value: function editElementProp(elemProperty, targProperty, e) {
54
+ var _this2 = this;
55
+ // elemProperty could be content or label
56
+ // targProperty could be value or checked
57
+ var this_element = this.state.element;
58
+ this_element[elemProperty] = e.target[targProperty];
59
+ this.setState({
60
+ element: this_element,
61
+ dirty: true
62
+ }, function () {
63
+ if (targProperty === 'checked') {
64
+ _this2.updateElement();
65
+ }
66
+ });
67
+ }
68
+ }, {
69
+ key: "onEditorStateChange",
70
+ value: function onEditorStateChange(index, property, editorContent) {
71
+ // const html = draftToHtml(convertToRaw(editorContent.getCurrentContent())).replace(/<p>/g, '<div>').replace(/<\/p>/g, '</div>');
72
+ var html = (0, _draftjsToHtml["default"])((0, _draftJs.convertToRaw)(editorContent.getCurrentContent())).replace(/<p>/g, '').replace(/<\/p>/g, '').replace(/&nbsp;/g, ' ').replace(/(?:\r\n|\r|\n)/g, ' ');
73
+ var this_element = this.state.element;
74
+ this_element[property] = html;
75
+ this.setState({
76
+ element: this_element,
77
+ dirty: true
78
+ });
79
+ }
80
+ }, {
81
+ key: "updateElement",
82
+ value: function updateElement() {
83
+ var this_element = this.state.element;
84
+ // to prevent ajax calls with no change
85
+ if (this.state.dirty) {
86
+ this.props.updateElement.call(this.props.preview, this_element);
87
+ this.setState({
88
+ dirty: false
89
+ });
90
+ }
91
+ }
92
+ }, {
93
+ key: "convertFromHTML",
94
+ value: function convertFromHTML(content) {
95
+ var newContent = (0, _draftJs.convertFromHTML)(content);
96
+ if (!newContent.contentBlocks || !newContent.contentBlocks.length) {
97
+ // to prevent crash when no contents in editor
98
+ return _draftJs.EditorState.createEmpty();
99
+ }
100
+ var contentState = _draftJs.ContentState.createFromBlockArray(newContent);
101
+ return _draftJs.EditorState.createWithContent(contentState);
102
+ }
103
+ }, {
104
+ key: "addOptions",
105
+ value: function addOptions() {
106
+ var _this3 = this;
107
+ var optionsApiUrl = document.getElementById('optionsApiUrl').value;
108
+ if (optionsApiUrl) {
109
+ (0, _requests.get)(optionsApiUrl).then(function (data) {
110
+ _this3.props.element.options = [];
111
+ var options = _this3.props.element.options;
112
+ data.forEach(function (x) {
113
+ // eslint-disable-next-line no-param-reassign
114
+ x.key = _UUID["default"].uuid();
115
+ options.push(x);
116
+ });
117
+ var this_element = _this3.state.element;
118
+ _this3.setState({
119
+ element: this_element,
120
+ dirty: true
121
+ });
122
+ });
123
+ }
124
+ }
125
+ }, {
126
+ key: "render",
127
+ value: function render() {
128
+ if (this.state.dirty) {
129
+ this.props.element.dirty = true;
130
+ }
131
+ var this_checked = this.props.element.hasOwnProperty('required') ? this.props.element.required : false;
132
+ var this_default_checked = this.props.element.hasOwnProperty('defaultChecked') ? this.props.element.defaultChecked : false;
133
+ var this_read_only = this.props.element.hasOwnProperty('readOnly') ? this.props.element.readOnly : false;
134
+ var this_default_today = this.props.element.hasOwnProperty('defaultToday') ? this.props.element.defaultToday : false;
135
+ var this_show_time_select = this.props.element.hasOwnProperty('showTimeSelect') ? this.props.element.showTimeSelect : false;
136
+ var this_show_time_select_only = this.props.element.hasOwnProperty('showTimeSelectOnly') ? this.props.element.showTimeSelectOnly : false;
137
+ var this_show_time_input = this.props.element.hasOwnProperty('showTimeInput') ? this.props.element.showTimeInput : false;
138
+ var this_checked_inline = this.props.element.hasOwnProperty('inline') ? this.props.element.inline : false;
139
+ var this_checked_bold = this.props.element.hasOwnProperty('bold') ? this.props.element.bold : false;
140
+ var this_checked_italic = this.props.element.hasOwnProperty('italic') ? this.props.element.italic : false;
141
+ var this_checked_center = this.props.element.hasOwnProperty('center') ? this.props.element.center : false;
142
+ var this_checked_page_break = this.props.element.hasOwnProperty('pageBreakBefore') ? this.props.element.pageBreakBefore : false;
143
+ var this_checked_alternate_form = this.props.element.hasOwnProperty('alternateForm') ? this.props.element.alternateForm : false;
144
+ var _this$props$element = this.props.element,
145
+ canHavePageBreakBefore = _this$props$element.canHavePageBreakBefore,
146
+ canHaveAlternateForm = _this$props$element.canHaveAlternateForm,
147
+ canHaveDisplayHorizontal = _this$props$element.canHaveDisplayHorizontal,
148
+ canHaveOptionCorrect = _this$props$element.canHaveOptionCorrect,
149
+ canHaveOptionValue = _this$props$element.canHaveOptionValue;
150
+ var canHaveImageSize = this.state.element.element === 'Image' || this.state.element.element === 'Camera';
151
+ var this_files = this.props.files.length ? this.props.files : [];
152
+ if (this_files.length < 1 || this_files.length > 0 && this_files[0].id !== '') {
153
+ this_files.unshift({
154
+ id: '',
155
+ file_name: ''
156
+ });
157
+ }
158
+ var editorState;
159
+ var secondaryEditorState;
160
+ if (this.props.element.hasOwnProperty('content')) {
161
+ editorState = this.convertFromHTML(this.props.element.content);
162
+ }
163
+ if (this.props.element.hasOwnProperty('label')) {
164
+ editorState = this.convertFromHTML(this.props.element.label);
165
+ }
166
+ if (this.props.element.hasOwnProperty('boxLabel')) {
167
+ secondaryEditorState = this.convertFromHTML(this.props.element.boxLabel);
168
+ }
169
+ return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("div", {
170
+ className: "clearfix"
171
+ }, /*#__PURE__*/_react["default"].createElement("h4", {
172
+ className: "float-start"
173
+ }, this.props.element.text), /*#__PURE__*/_react["default"].createElement("i", {
174
+ className: "float-end fas fa-times dismiss-edit",
175
+ onClick: this.props.manualEditModeOff
176
+ })), this.props.element.hasOwnProperty('content') && /*#__PURE__*/_react["default"].createElement("div", {
177
+ className: "form-group"
178
+ }, /*#__PURE__*/_react["default"].createElement("label", {
179
+ className: "control-label"
180
+ }, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
181
+ id: "text-to-display"
182
+ }), ":"), /*#__PURE__*/_react["default"].createElement(_reactDraftWysiwyg.Editor, {
183
+ toolbar: toolbar,
184
+ defaultEditorState: editorState,
185
+ onBlur: this.updateElement.bind(this),
186
+ onEditorStateChange: this.onEditorStateChange.bind(this, 0, 'content'),
187
+ stripPastedStyles: true
188
+ })), this.props.element.hasOwnProperty('file_path') && /*#__PURE__*/_react["default"].createElement("div", {
189
+ className: "form-group"
190
+ }, /*#__PURE__*/_react["default"].createElement("label", {
191
+ className: "control-label",
192
+ htmlFor: "fileSelect"
193
+ }, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
194
+ id: "choose-file"
195
+ }), ":"), /*#__PURE__*/_react["default"].createElement("select", {
196
+ id: "fileSelect",
197
+ className: "form-control",
198
+ defaultValue: this.props.element.file_path,
199
+ onBlur: this.updateElement.bind(this),
200
+ onChange: this.editElementProp.bind(this, 'file_path', 'value')
201
+ }, this_files.map(function (file) {
202
+ var this_key = "file_".concat(file.id);
203
+ return /*#__PURE__*/_react["default"].createElement("option", {
204
+ value: file.id,
205
+ key: this_key
206
+ }, file.file_name);
207
+ }))), this.props.element.hasOwnProperty('href') && /*#__PURE__*/_react["default"].createElement("div", {
208
+ className: "form-group"
209
+ }, /*#__PURE__*/_react["default"].createElement(_reactTextareaAutosize["default"], {
210
+ type: "text",
211
+ className: "form-control",
212
+ defaultValue: this.props.element.href,
213
+ onBlur: this.updateElement.bind(this),
214
+ onChange: this.editElementProp.bind(this, 'href', 'value')
215
+ })), this.props.element.hasOwnProperty('label') && /*#__PURE__*/_react["default"].createElement("div", {
216
+ className: "form-group"
217
+ }, /*#__PURE__*/_react["default"].createElement("label", null, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
218
+ id: "display-label"
219
+ })), /*#__PURE__*/_react["default"].createElement(_reactDraftWysiwyg.Editor, {
220
+ toolbar: toolbar,
221
+ defaultEditorState: editorState,
222
+ onBlur: this.updateElement.bind(this),
223
+ onEditorStateChange: this.onEditorStateChange.bind(this, 0, 'label'),
224
+ stripPastedStyles: true
225
+ }), /*#__PURE__*/_react["default"].createElement("br", null), /*#__PURE__*/_react["default"].createElement("div", {
226
+ className: "custom-control custom-checkbox"
227
+ }, /*#__PURE__*/_react["default"].createElement("input", {
228
+ id: "is-required",
229
+ className: "custom-control-input",
230
+ type: "checkbox",
231
+ checked: this_checked,
232
+ value: true,
233
+ onChange: this.editElementProp.bind(this, 'required', 'checked')
234
+ }), /*#__PURE__*/_react["default"].createElement("label", {
235
+ className: "custom-control-label",
236
+ htmlFor: "is-required"
237
+ }, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
238
+ id: "required"
239
+ }))), this.props.element.hasOwnProperty('readOnly') && /*#__PURE__*/_react["default"].createElement("div", {
240
+ className: "custom-control custom-checkbox"
241
+ }, /*#__PURE__*/_react["default"].createElement("input", {
242
+ id: "is-read-only",
243
+ className: "custom-control-input",
244
+ type: "checkbox",
245
+ checked: this_read_only,
246
+ value: true,
247
+ onChange: this.editElementProp.bind(this, 'readOnly', 'checked')
248
+ }), /*#__PURE__*/_react["default"].createElement("label", {
249
+ className: "custom-control-label",
250
+ htmlFor: "is-read-only"
251
+ }, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
252
+ id: "read-only"
253
+ }))), this.props.element.hasOwnProperty('defaultToday') && /*#__PURE__*/_react["default"].createElement("div", {
254
+ className: "custom-control custom-checkbox"
255
+ }, /*#__PURE__*/_react["default"].createElement("input", {
256
+ id: "is-default-to-today",
257
+ className: "custom-control-input",
258
+ type: "checkbox",
259
+ checked: this_default_today,
260
+ value: true,
261
+ onChange: this.editElementProp.bind(this, 'defaultToday', 'checked')
262
+ }), /*#__PURE__*/_react["default"].createElement("label", {
263
+ className: "custom-control-label",
264
+ htmlFor: "is-default-to-today"
265
+ }, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
266
+ id: "default-to-today"
267
+ }), "?")), ['Checkboxes', 'Checkbox'].indexOf(this.state.element.element) !== -1 && /*#__PURE__*/_react["default"].createElement("div", {
268
+ className: "custom-control custom-checkbox"
269
+ }, /*#__PURE__*/_react["default"].createElement("input", {
270
+ id: "display-horizontal",
271
+ className: "custom-control-input",
272
+ type: "checkbox",
273
+ checked: this_default_checked,
274
+ value: true,
275
+ onChange: this.editElementProp.bind(this, 'defaultChecked', 'checked')
276
+ }), /*#__PURE__*/_react["default"].createElement("label", {
277
+ className: "custom-control-label",
278
+ htmlFor: "display-horizontal"
279
+ }, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
280
+ id: "default-checked"
281
+ }))), (this.state.element.element === 'RadioButtons' || this.state.element.element === 'Checkboxes') && canHaveDisplayHorizontal && /*#__PURE__*/_react["default"].createElement("div", {
282
+ className: "custom-control custom-checkbox"
283
+ }, /*#__PURE__*/_react["default"].createElement("input", {
284
+ id: "display-horizontal",
285
+ className: "custom-control-input",
286
+ type: "checkbox",
287
+ checked: this_checked_inline,
288
+ value: true,
289
+ onChange: this.editElementProp.bind(this, 'inline', 'checked')
290
+ }), /*#__PURE__*/_react["default"].createElement("label", {
291
+ className: "custom-control-label",
292
+ htmlFor: "display-horizontal"
293
+ }, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
294
+ id: "display-horizontal"
295
+ })))), this.state.element.element === 'Checkbox' && /*#__PURE__*/_react["default"].createElement("div", {
296
+ className: "form-group"
297
+ }, /*#__PURE__*/_react["default"].createElement("label", {
298
+ className: "control-label"
299
+ }, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
300
+ id: "checkbox-label-text"
301
+ }), ":"), /*#__PURE__*/_react["default"].createElement(_reactDraftWysiwyg.Editor, {
302
+ toolbar: toolbar,
303
+ defaultEditorState: secondaryEditorState,
304
+ onBlur: this.updateElement.bind(this),
305
+ onEditorStateChange: this.onEditorStateChange.bind(this, 0, 'boxLabel'),
306
+ stripPastedStyles: true
307
+ })), this.props.element.hasOwnProperty('src') && /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("div", {
308
+ className: "form-group"
309
+ }, /*#__PURE__*/_react["default"].createElement("label", {
310
+ className: "control-label",
311
+ htmlFor: "srcInput"
312
+ }, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
313
+ id: "link-to"
314
+ }), ":"), /*#__PURE__*/_react["default"].createElement("input", {
315
+ id: "srcInput",
316
+ type: "text",
317
+ className: "form-control",
318
+ defaultValue: this.props.element.src,
319
+ onBlur: this.updateElement.bind(this),
320
+ onChange: this.editElementProp.bind(this, 'src', 'value')
321
+ }))), canHaveImageSize && /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("div", {
322
+ className: "form-group"
323
+ }, /*#__PURE__*/_react["default"].createElement("div", {
324
+ className: "custom-control custom-checkbox"
325
+ }, /*#__PURE__*/_react["default"].createElement("input", {
326
+ id: "do-center",
327
+ className: "custom-control-input",
328
+ type: "checkbox",
329
+ checked: this_checked_center,
330
+ value: true,
331
+ onChange: this.editElementProp.bind(this, 'center', 'checked')
332
+ }), /*#__PURE__*/_react["default"].createElement("label", {
333
+ className: "custom-control-label",
334
+ htmlFor: "do-center"
335
+ }, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
336
+ id: "center"
337
+ }), "?"))), /*#__PURE__*/_react["default"].createElement("div", {
338
+ className: "row"
339
+ }, /*#__PURE__*/_react["default"].createElement("div", {
340
+ className: "col-sm-3"
341
+ }, /*#__PURE__*/_react["default"].createElement("label", {
342
+ className: "control-label",
343
+ htmlFor: "elementWidth"
344
+ }, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
345
+ id: "width"
346
+ }), ":"), /*#__PURE__*/_react["default"].createElement("input", {
347
+ id: "elementWidth",
348
+ type: "text",
349
+ className: "form-control",
350
+ defaultValue: this.props.element.width,
351
+ onBlur: this.updateElement.bind(this),
352
+ onChange: this.editElementProp.bind(this, 'width', 'value')
353
+ })), /*#__PURE__*/_react["default"].createElement("div", {
354
+ className: "col-sm-3"
355
+ }, /*#__PURE__*/_react["default"].createElement("label", {
356
+ className: "control-label",
357
+ htmlFor: "elementHeight"
358
+ }, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
359
+ id: "height"
360
+ }), ":"), /*#__PURE__*/_react["default"].createElement("input", {
361
+ id: "elementHeight",
362
+ type: "text",
363
+ className: "form-control",
364
+ defaultValue: this.props.element.height,
365
+ onBlur: this.updateElement.bind(this),
366
+ onChange: this.editElementProp.bind(this, 'height', 'value')
367
+ })))), this.state.element.element === 'FileUpload' && /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("div", {
368
+ className: "form-group"
369
+ }, /*#__PURE__*/_react["default"].createElement("label", {
370
+ className: "control-label",
371
+ htmlFor: "fileType"
372
+ }, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
373
+ id: "choose-file-type"
374
+ }), ":"), /*#__PURE__*/_react["default"].createElement("select", {
375
+ id: "fileType",
376
+ className: "form-control",
377
+ onBlur: this.updateElement.bind(this),
378
+ onChange: this.editElementProp.bind(this, 'fileType', 'value')
379
+ }, [{
380
+ type: 'image, application/pdf, application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document, application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-powerpoint, application/vnd.openxmlformats-officedocument.presentationml.presentation, video/mp4,video/x-m4v,video/*',
381
+ typeName: 'All File Type'
382
+ }, {
383
+ type: 'image',
384
+ typeName: 'Image'
385
+ }, {
386
+ type: 'application/pdf',
387
+ typeName: 'PDF'
388
+ }, {
389
+ type: 'application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document',
390
+ typeName: 'Word'
391
+ }, {
392
+ type: 'application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
393
+ typeName: 'Excel'
394
+ }, {
395
+ type: 'application/vnd.ms-powerpoint, application/vnd.openxmlformats-officedocument.presentationml.presentation',
396
+ typeName: 'Powerpoint'
397
+ }, {
398
+ type: 'video/mp4,video/x-m4v,video/*',
399
+ typeName: 'Videos'
400
+ }].map(function (file, index) {
401
+ return /*#__PURE__*/_react["default"].createElement("option", {
402
+ value: file.type,
403
+ key: index
404
+ }, file.typeName);
405
+ })))), this.props.element.hasOwnProperty('step') && /*#__PURE__*/_react["default"].createElement("div", {
406
+ className: "form-group"
407
+ }, /*#__PURE__*/_react["default"].createElement("div", {
408
+ className: "form-group-range"
409
+ }, /*#__PURE__*/_react["default"].createElement("label", {
410
+ className: "control-label",
411
+ htmlFor: "rangeStep"
412
+ }, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
413
+ id: "step"
414
+ })), /*#__PURE__*/_react["default"].createElement("input", {
415
+ id: "rangeStep",
416
+ type: "number",
417
+ className: "form-control",
418
+ defaultValue: this.props.element.step,
419
+ onBlur: this.updateElement.bind(this),
420
+ onChange: this.editElementProp.bind(this, 'step', 'value')
421
+ }))), this.props.element.hasOwnProperty('min_value') && /*#__PURE__*/_react["default"].createElement("div", {
422
+ className: "form-group"
423
+ }, /*#__PURE__*/_react["default"].createElement("div", {
424
+ className: "form-group-range"
425
+ }, /*#__PURE__*/_react["default"].createElement("label", {
426
+ className: "control-label",
427
+ htmlFor: "rangeMin"
428
+ }, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
429
+ id: "min"
430
+ })), /*#__PURE__*/_react["default"].createElement("input", {
431
+ id: "rangeMin",
432
+ type: "number",
433
+ className: "form-control",
434
+ defaultValue: this.props.element.min_value,
435
+ onBlur: this.updateElement.bind(this),
436
+ onChange: this.editElementProp.bind(this, 'min_value', 'value')
437
+ }), /*#__PURE__*/_react["default"].createElement("input", {
438
+ type: "text",
439
+ className: "form-control",
440
+ defaultValue: this.props.element.min_label,
441
+ onBlur: this.updateElement.bind(this),
442
+ onChange: this.editElementProp.bind(this, 'min_label', 'value')
443
+ }))), this.props.element.hasOwnProperty('max_value') && /*#__PURE__*/_react["default"].createElement("div", {
444
+ className: "form-group"
445
+ }, /*#__PURE__*/_react["default"].createElement("div", {
446
+ className: "form-group-range"
447
+ }, /*#__PURE__*/_react["default"].createElement("label", {
448
+ className: "control-label",
449
+ htmlFor: "rangeMax"
450
+ }, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
451
+ id: "max"
452
+ })), /*#__PURE__*/_react["default"].createElement("input", {
453
+ id: "rangeMax",
454
+ type: "number",
455
+ className: "form-control",
456
+ defaultValue: this.props.element.max_value,
457
+ onBlur: this.updateElement.bind(this),
458
+ onChange: this.editElementProp.bind(this, 'max_value', 'value')
459
+ }), /*#__PURE__*/_react["default"].createElement("input", {
460
+ type: "text",
461
+ className: "form-control",
462
+ defaultValue: this.props.element.max_label,
463
+ onBlur: this.updateElement.bind(this),
464
+ onChange: this.editElementProp.bind(this, 'max_label', 'value')
465
+ }))), this.props.element.hasOwnProperty('default_value') && /*#__PURE__*/_react["default"].createElement("div", {
466
+ className: "form-group"
467
+ }, /*#__PURE__*/_react["default"].createElement("div", {
468
+ className: "form-group-range"
469
+ }, /*#__PURE__*/_react["default"].createElement("label", {
470
+ className: "control-label",
471
+ htmlFor: "defaultSelected"
472
+ }, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
473
+ id: "default-selected"
474
+ })), /*#__PURE__*/_react["default"].createElement("input", {
475
+ id: "defaultSelected",
476
+ type: "number",
477
+ className: "form-control",
478
+ defaultValue: this.props.element.default_value,
479
+ onBlur: this.updateElement.bind(this),
480
+ onChange: this.editElementProp.bind(this, 'default_value', 'value')
481
+ }))), this.props.element.hasOwnProperty('static') && this.props.element["static"] && /*#__PURE__*/_react["default"].createElement("div", {
482
+ className: "form-group"
483
+ }, /*#__PURE__*/_react["default"].createElement("label", {
484
+ className: "control-label"
485
+ }, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
486
+ id: "text-style"
487
+ })), /*#__PURE__*/_react["default"].createElement("div", {
488
+ className: "custom-control custom-checkbox"
489
+ }, /*#__PURE__*/_react["default"].createElement("input", {
490
+ id: "do-bold",
491
+ className: "custom-control-input",
492
+ type: "checkbox",
493
+ checked: this_checked_bold,
494
+ value: true,
495
+ onChange: this.editElementProp.bind(this, 'bold', 'checked')
496
+ }), /*#__PURE__*/_react["default"].createElement("label", {
497
+ className: "custom-control-label",
498
+ htmlFor: "do-bold"
499
+ }, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
500
+ id: "bold"
501
+ }))), /*#__PURE__*/_react["default"].createElement("div", {
502
+ className: "custom-control custom-checkbox"
503
+ }, /*#__PURE__*/_react["default"].createElement("input", {
504
+ id: "do-italic",
505
+ className: "custom-control-input",
506
+ type: "checkbox",
507
+ checked: this_checked_italic,
508
+ value: true,
509
+ onChange: this.editElementProp.bind(this, 'italic', 'checked')
510
+ }), /*#__PURE__*/_react["default"].createElement("label", {
511
+ className: "custom-control-label",
512
+ htmlFor: "do-italic"
513
+ }, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
514
+ id: "italic"
515
+ })))), this.props.element.showPlaceholder && /*#__PURE__*/_react["default"].createElement("div", {
516
+ className: "form-group"
517
+ }, /*#__PURE__*/_react["default"].createElement("label", {
518
+ className: "control-label",
519
+ htmlFor: "placeholder"
520
+ }, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
521
+ id: "place-holder-text-label"
522
+ })), /*#__PURE__*/_react["default"].createElement("input", {
523
+ type: "text",
524
+ className: "form-control",
525
+ id: "placeholder",
526
+ defaultValue: this.props.element.placeholder,
527
+ onBlur: this.updateElement.bind(this),
528
+ onChange: this.editElementProp.bind(this, 'placeholder', 'value')
529
+ })), this.props.element.show_custom_name && /*#__PURE__*/_react["default"].createElement("div", {
530
+ className: "form-group"
531
+ }, /*#__PURE__*/_react["default"].createElement("label", {
532
+ className: "control-label",
533
+ htmlFor: "custom_name"
534
+ }, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
535
+ id: "custom-name-label"
536
+ })), /*#__PURE__*/_react["default"].createElement("input", {
537
+ type: "text",
538
+ className: "form-control",
539
+ id: "custom_name",
540
+ defaultValue: this.props.element.custom_name,
541
+ onBlur: this.updateElement.bind(this),
542
+ onChange: this.editElementProp.bind(this, 'custom_name', 'value')
543
+ })), this.props.element.showDescription && /*#__PURE__*/_react["default"].createElement("div", {
544
+ className: "form-group"
545
+ }, /*#__PURE__*/_react["default"].createElement("label", {
546
+ className: "control-label",
547
+ htmlFor: "questionDescription"
548
+ }, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
549
+ id: "description"
550
+ })), /*#__PURE__*/_react["default"].createElement(_reactTextareaAutosize["default"], {
551
+ type: "text",
552
+ className: "form-control",
553
+ id: "questionDescription",
554
+ defaultValue: this.props.element.description,
555
+ onBlur: this.updateElement.bind(this),
556
+ onChange: this.editElementProp.bind(this, 'description', 'value')
557
+ })), this.props.showCorrectColumn && this.props.element.canHaveAnswer && !this.props.element.hasOwnProperty('options') && /*#__PURE__*/_react["default"].createElement("div", {
558
+ className: "form-group"
559
+ }, /*#__PURE__*/_react["default"].createElement("label", {
560
+ className: "control-label",
561
+ htmlFor: "correctAnswer"
562
+ }, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
563
+ id: "correct-answer"
564
+ })), /*#__PURE__*/_react["default"].createElement("input", {
565
+ id: "correctAnswer",
566
+ type: "text",
567
+ className: "form-control",
568
+ defaultValue: this.props.element.correct,
569
+ onBlur: this.updateElement.bind(this),
570
+ onChange: this.editElementProp.bind(this, 'correct', 'value')
571
+ })), this.props.element.canPopulateFromApi && this.props.element.hasOwnProperty('options') && /*#__PURE__*/_react["default"].createElement("div", {
572
+ className: "form-group"
573
+ }, /*#__PURE__*/_react["default"].createElement("label", {
574
+ className: "control-label",
575
+ htmlFor: "optionsApiUrl"
576
+ }, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
577
+ id: "populate-options-from-api"
578
+ })), /*#__PURE__*/_react["default"].createElement("div", {
579
+ className: "row"
580
+ }, /*#__PURE__*/_react["default"].createElement("div", {
581
+ className: "col-sm-6"
582
+ }, /*#__PURE__*/_react["default"].createElement("input", {
583
+ className: "form-control",
584
+ style: {
585
+ width: '100%'
586
+ },
587
+ type: "text",
588
+ id: "optionsApiUrl",
589
+ placeholder: "http://localhost:8080/api/optionsdata"
590
+ })), /*#__PURE__*/_react["default"].createElement("div", {
591
+ className: "col-sm-6"
592
+ }, /*#__PURE__*/_react["default"].createElement("button", {
593
+ onClick: this.addOptions.bind(this),
594
+ className: "btn btn-success"
595
+ }, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
596
+ id: "populate"
597
+ }))))), this.props.element.hasOwnProperty('options') && /*#__PURE__*/_react["default"].createElement(_dynamicOptionList["default"], {
598
+ showCorrectColumn: this.props.showCorrectColumn,
599
+ canHaveOptionCorrect: canHaveOptionCorrect,
600
+ canHaveOptionValue: canHaveOptionValue,
601
+ data: this.props.preview.state.data,
602
+ updateElement: this.props.updateElement,
603
+ preview: this.props.preview,
604
+ element: this.props.element,
605
+ key: this.props.element.options.length
606
+ }));
607
+ }
608
+ }]);
609
+ return SurveyElementsEdit;
610
+ }(_react["default"].Component);
611
+ SurveyElementsEdit.defaultProps = {
612
+ className: 'edit-element-fields'
613
+ };