react-survey-builder 1.0.71 → 1.0.73

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.
@@ -1,32 +1,37 @@
1
1
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
- var _excluded = ["onChange", "onBlur", "value", "name"];
3
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
4
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
5
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
2
+ var _excluded = ["containerProps", "onChange", "onBlur", "value", "name"];
3
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
4
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
5
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
6
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
7
+ 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; }
8
+ 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) { _defineProperty(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; }
9
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
10
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
7
11
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
8
- function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
9
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
10
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
11
- function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
12
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
13
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
14
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
12
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
13
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
14
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
15
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
16
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
17
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
15
18
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
16
19
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
17
20
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }
18
21
  import React from 'react';
19
22
  import TextAreaAutosize from 'react-textarea-autosize';
20
- import { ContentState, EditorState, convertFromHTML as _convertFromHTML, convertToRaw } from 'draft-js';
23
+ import { ContentState, EditorState, convertFromHTML as draftJsConvertFromHTML, convertToRaw } from 'draft-js';
21
24
  import draftToHtml from 'draftjs-to-html';
22
25
  import DynamicOptionList from './dynamic-option-list';
23
26
  import { get } from './stores/requests';
24
27
  import { FaTimes } from 'react-icons/fa';
25
- import { Button, Col, Form, Row } from 'react-bootstrap/esm';
28
+ import { Button, Col, Form, Row } from 'react-bootstrap';
26
29
  import Editor from 'react-simple-wysiwyg';
27
30
  import ID from './UUID';
31
+ import { isListNotEmpty, isObjectNotEmpty } from './utils/objectUtils';
28
32
  var CustomWysiwygInput = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
29
- var onChange = _ref.onChange,
33
+ var containerProps = _ref.containerProps,
34
+ onChange = _ref.onChange,
30
35
  onBlur = _ref.onBlur,
31
36
  value = _ref.value,
32
37
  name = _ref.name,
@@ -36,569 +41,659 @@ var CustomWysiwygInput = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
36
41
  value: value,
37
42
  name: name,
38
43
  onChange: onChange,
39
- containerProps: {
40
- style: {
41
- height: '500px',
42
- width: '100%',
43
- resize: 'both'
44
- }
45
- }
44
+ containerProps: containerProps
46
45
  }));
47
46
  });
48
- var SurveyElementsEdit = /*#__PURE__*/function (_React$Component) {
49
- function SurveyElementsEdit(props) {
50
- var _this;
51
- _classCallCheck(this, SurveyElementsEdit);
52
- _this = _callSuper(this, SurveyElementsEdit, [props]);
53
- _this.state = {
54
- element: _this.props.element,
55
- item: _this.props.item,
56
- dirty: false
57
- };
58
- return _this;
59
- }
60
- _inherits(SurveyElementsEdit, _React$Component);
61
- return _createClass(SurveyElementsEdit, [{
62
- key: "toggleRequired",
63
- value: function toggleRequired() {
64
- // const this_element = this.state.element;
47
+ var SurveyElementsEdit = function SurveyElementsEdit(_ref2) {
48
+ var _element$options;
49
+ var element = _ref2.element,
50
+ setElement = _ref2.setElement,
51
+ _ref2$files = _ref2.files,
52
+ files = _ref2$files === void 0 ? [] : _ref2$files,
53
+ _ref2$showCorrectColu = _ref2.showCorrectColumn,
54
+ showCorrectColumn = _ref2$showCorrectColu === void 0 ? false : _ref2$showCorrectColu,
55
+ _ref2$showDescription = _ref2.showDescription,
56
+ showDescription = _ref2$showDescription === void 0 ? false : _ref2$showDescription,
57
+ manualEditModeOff = _ref2.manualEditModeOff,
58
+ updateElement = _ref2.updateElement;
59
+ var _React$useState = React.useState(false),
60
+ _React$useState2 = _slicedToArray(_React$useState, 2),
61
+ dirty = _React$useState2[0],
62
+ setDirty = _React$useState2[1];
63
+ var toggleRequired = function toggleRequired() {
64
+ // const thisElement = isObjectNotEmpty(element) ? { ...element } : {};
65
+ };
66
+ var editElementProp = function editElementProp(elementProperty, targetProperty, e) {
67
+ // elemProperty could be content or label
68
+ // targProperty could be value or checked
69
+ var thisElement = isObjectNotEmpty(element) ? _objectSpread({}, element) : {};
70
+ thisElement[elementProperty] = e.target[targetProperty];
71
+ setElement(thisElement);
72
+ setDirty(true);
73
+ if (targetProperty === 'checked') {
74
+ onUpdateElement();
65
75
  }
66
- }, {
67
- key: "editElementProp",
68
- value: function editElementProp(elemProperty, targProperty, e) {
69
- var _this2 = this;
70
- // elemProperty could be content or label
71
- // targProperty could be value or checked
72
- var thisElement = this.state.element;
73
- thisElement[elemProperty] = e.target[targProperty];
74
- this.setState({
75
- element: thisElement,
76
- dirty: true
77
- }, function () {
78
- if (targProperty === 'checked') {
79
- _this2.updateElement();
80
- }
76
+ };
77
+ var onEditorStateChange = function onEditorStateChange(index, property, editorContent) {
78
+ var html = draftToHtml(convertToRaw(editorContent.getCurrentContent())).replace(/&nbsp;/g, ' ').replace(/(?:\r\n|\r|\n)/g, '');
79
+ var thisElement = isObjectNotEmpty(element) ? _objectSpread({}, element) : {};
80
+ thisElement[property] = html;
81
+ setElement(thisElement);
82
+ setDirty(true);
83
+ };
84
+ var onUpdateElement = function onUpdateElement() {
85
+ var thisElement = isObjectNotEmpty(element) ? _objectSpread({}, element) : {};
86
+ // to prevent ajax calls with no change
87
+ if (dirty) {
88
+ updateElement(thisElement);
89
+ setDirty(false);
90
+ }
91
+ };
92
+ var convertFromHTML = function convertFromHTML(content) {
93
+ var newContent = draftJsConvertFromHTML(content);
94
+ if (!newContent.contentBlocks || !newContent.contentBlocks.length) {
95
+ // to prevent crash when no contents in editor
96
+ return EditorState.createEmpty();
97
+ }
98
+ var contentState = ContentState.createFromBlockArray(newContent);
99
+ return EditorState.createWithContent(contentState);
100
+ };
101
+ var addOptions = function addOptions() {
102
+ var optionsApiUrl = document.getElementById('optionsApiUrl').value;
103
+ if (optionsApiUrl) {
104
+ get(optionsApiUrl).then(function (data) {
105
+ var options = [];
106
+ data.forEach(function (dataOption) {
107
+ // eslint-disable-next-line no-param-reassign
108
+ dataOption.key = ID.uuid();
109
+ options.push(dataOption);
110
+ });
111
+ var thisElement = isObjectNotEmpty(element) ? _objectSpread({}, element) : {};
112
+ thisElement.options = options;
113
+ setElement(thisElement);
114
+ setDirty(true);
81
115
  });
82
116
  }
83
- }, {
84
- key: "onEditorStateChange",
85
- value: function onEditorStateChange(index, property, editorContent) {
86
- // const html = draftToHtml(convertToRaw(editorContent.getCurrentContent())).replace(/<p>/g, '<div>').replace(/<\/p>/g, '</div>');
87
- // const html = draftToHtml(convertToRaw(editorContent.getCurrentContent())).replace(/<p>/g, '').replace(/<\/p>/g, '').replace(/&nbsp;/g, ' ').replace(/(?:\r\n|\r|\n)/g, '');
88
- var html = draftToHtml(convertToRaw(editorContent.getCurrentContent())).replace(/&nbsp;/g, ' ').replace(/(?:\r\n|\r|\n)/g, '');
89
- var thisElement = this.state.element;
90
- thisElement[property] = html;
91
- this.setState({
92
- element: thisElement,
117
+ };
118
+ React.useEffect(function () {
119
+ if (dirty) {
120
+ var thisElement = isObjectNotEmpty(element) ? _objectSpread(_objectSpread({}, element), {}, {
93
121
  dirty: true
94
- });
122
+ }) : {
123
+ dirty: true
124
+ };
125
+ updateElement(thisElement);
95
126
  }
96
- }, {
97
- key: "updateElement",
98
- value: function updateElement() {
99
- var thisElement = this.state.element;
100
- // to prevent ajax calls with no change
101
- if (this.state.dirty) {
102
- this.props.updateElement.call(this.props.preview, thisElement);
103
- this.setState({
104
- dirty: false
105
- });
127
+ }, [dirty, element]);
128
+ var thisRequiredChecked = element.hasOwnProperty('required') ? element.required : false;
129
+ var thisDefaultChecked = element.hasOwnProperty('defaultChecked') ? element.defaultChecked : false;
130
+ var thisReadOnly = element.hasOwnProperty('readOnly') ? element.readOnly : false;
131
+ var thisDefaultToday = element.hasOwnProperty('defaultToday') ? element.defaultToday : false;
132
+ var thisCheckedInline = element.hasOwnProperty('inline') ? element.inline : false;
133
+ var thisCheckedBold = element.hasOwnProperty('bold') ? element.bold : false;
134
+ var thisCheckedItalic = element.hasOwnProperty('italic') ? element.italic : false;
135
+ var thisCheckedCenter = element.hasOwnProperty('center') ? element.center : false;
136
+ var thisCheckedPageBreak = element.hasOwnProperty('pageBreakBefore') ? element.pageBreakBefore : false;
137
+ var thisCheckedAlternateForm = element.hasOwnProperty('alternateForm') ? element.alternateForm : false;
138
+ var thisCheckedHideLabel = element.hasOwnProperty('hideLabel') ? element.hideLabel : false;
139
+ var thisCheckedConditional = element.hasOwnProperty('conditional') ? element.conditional : false;
140
+ var canHaveAnswer = ['NumberInput', 'EmailInput', 'TextInput', 'PhoneNumber', 'TextArea', 'DatePicker', 'Dropdown', 'Tags', 'Checkboxes', 'Checkbox', 'RadioButtons', 'Rating', 'Range'].indexOf(element.element) !== -1;
141
+ var canHaveOptionValue = ['Dropdown', 'Tags', 'Checkboxes', 'RadioButtons'].indexOf(element.element) !== -1;
142
+ var canHaveOptionCorrect = canHaveAnswer && canHaveOptionValue;
143
+ var thisFiles = isListNotEmpty(files) ? _toConsumableArray(files) : [];
144
+ if (thisFiles.length < 1 || thisFiles.length > 0 && thisFiles[0].id !== '') {
145
+ thisFiles.unshift({
146
+ id: '',
147
+ file_name: ''
148
+ });
149
+ }
150
+ return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", {
151
+ className: "clearfix"
152
+ }, /*#__PURE__*/React.createElement("h4", {
153
+ className: "float-start"
154
+ }, element.text), /*#__PURE__*/React.createElement(FaTimes, {
155
+ className: "float-end dismiss-edit",
156
+ onClick: manualEditModeOff
157
+ })), element.hasOwnProperty('content') && (element.element === 'Header' || element.element === 'Label' || element.element === 'Paragraph' || element.element === 'ContentBody') && /*#__PURE__*/React.createElement(Form.Group, {
158
+ className: "form-group mb-5"
159
+ }, /*#__PURE__*/React.createElement(Form.Label, {
160
+ className: "fw-bold"
161
+ }, "Text to display:"), /*#__PURE__*/React.createElement(Form.Control, {
162
+ type: "text",
163
+ id: "content",
164
+ name: "content",
165
+ as: CustomWysiwygInput,
166
+ value: element.content,
167
+ defaultValue: element.content,
168
+ onBlur: onUpdateElement,
169
+ onChange: function onChange(e) {
170
+ editElementProp('content', 'value', e);
171
+ },
172
+ containerProps: {
173
+ style: {
174
+ height: '200px',
175
+ width: '100%',
176
+ resize: 'vertical'
106
177
  }
107
178
  }
108
- }, {
109
- key: "convertFromHTML",
110
- value: function convertFromHTML(content) {
111
- var newContent = _convertFromHTML(content);
112
- if (!newContent.contentBlocks || !newContent.contentBlocks.length) {
113
- // to prevent crash when no contents in editor
114
- return EditorState.createEmpty();
179
+ })), element.hasOwnProperty('filePath') && /*#__PURE__*/React.createElement(Form.Group, {
180
+ className: "form-group mb-5"
181
+ }, /*#__PURE__*/React.createElement(Form.Label, {
182
+ className: "fw-bold",
183
+ htmlFor: "fileSelect"
184
+ }, "Choose file:"), /*#__PURE__*/React.createElement(Form.Select, {
185
+ id: "fileSelect",
186
+ defaultValue: element.filePath,
187
+ onBlur: onUpdateElement,
188
+ onChange: function onChange(e) {
189
+ editElementProp('filePath', 'value', e);
190
+ }
191
+ }, thisFiles.map(function (file) {
192
+ var thisKey = "file_".concat(file.id);
193
+ return /*#__PURE__*/React.createElement("option", {
194
+ value: file.id,
195
+ key: thisKey
196
+ }, file.file_name);
197
+ }))), element.hasOwnProperty('href') && /*#__PURE__*/React.createElement(Form.Group, {
198
+ className: "form-group mb-5"
199
+ }, /*#__PURE__*/React.createElement(Form.Label, {
200
+ className: "fw-bold",
201
+ htmlFor: "href"
202
+ }, "Link to:"), /*#__PURE__*/React.createElement(Form.Control, {
203
+ id: "href",
204
+ type: "text",
205
+ defaultValue: element.href,
206
+ onBlur: onUpdateElement,
207
+ onChange: function onChange(e) {
208
+ editElementProp('href', 'value', e);
209
+ }
210
+ })), element.hasOwnProperty('label') && /*#__PURE__*/React.createElement(Form.Group, {
211
+ className: "form-group mb-5"
212
+ }, /*#__PURE__*/React.createElement(Form.Label, {
213
+ className: "fw-bold"
214
+ }, "Display Label:"), /*#__PURE__*/React.createElement(Form.Control, {
215
+ type: "text",
216
+ id: "label",
217
+ name: "label",
218
+ as: CustomWysiwygInput,
219
+ value: element.label,
220
+ defaultValue: element.label,
221
+ onBlur: onUpdateElement,
222
+ onChange: function onChange(e) {
223
+ editElementProp('label', 'value', e);
224
+ },
225
+ containerProps: {
226
+ style: {
227
+ height: '200px',
228
+ width: '100%',
229
+ resize: 'vertical'
115
230
  }
116
- var contentState = ContentState.createFromBlockArray(newContent);
117
- return EditorState.createWithContent(contentState);
118
231
  }
119
- }, {
120
- key: "addOptions",
121
- value: function addOptions() {
122
- var _this3 = this;
123
- var optionsApiUrl = document.getElementById('optionsApiUrl').value;
124
- if (optionsApiUrl) {
125
- get(optionsApiUrl).then(function (data) {
126
- _this3.props.element.options = [];
127
- var options = _this3.props.element.options;
128
- data.forEach(function (x) {
129
- // eslint-disable-next-line no-param-reassign
130
- x.key = ID.uuid();
131
- options.push(x);
132
- });
133
- var this_element = _this3.state.element;
134
- _this3.setState({
135
- element: this_element,
136
- dirty: true
137
- });
138
- });
232
+ })), (element.hasOwnProperty('required') || element.hasOwnProperty('readOnly') || element.hasOwnProperty('defaultToday') || ['Checkboxes', 'Checkbox'].indexOf(element.element) !== -1 || (element.element === 'RadioButtons' || element.element === 'Checkboxes') && element.hasOwnProperty('inline')) && /*#__PURE__*/React.createElement(Form.Group, {
233
+ className: "form-group mb-5"
234
+ }, /*#__PURE__*/React.createElement(Form.Label, {
235
+ className: "fw-bold"
236
+ }, "Field Properties:"), element.hasOwnProperty('required') && /*#__PURE__*/React.createElement(Form.Check, {
237
+ id: "is-required",
238
+ label: "Required",
239
+ type: "checkbox",
240
+ checked: thisRequiredChecked,
241
+ value: true,
242
+ onChange: function onChange(e) {
243
+ editElementProp('required', 'checked', e);
244
+ }
245
+ }), element.hasOwnProperty('readOnly') && /*#__PURE__*/React.createElement(Form.Check, {
246
+ id: "is-read-only",
247
+ label: "Read Only",
248
+ type: "checkbox",
249
+ checked: thisReadOnly,
250
+ value: true,
251
+ onChange: function onChange(e) {
252
+ editElementProp('readOnly', 'checked', e);
253
+ }
254
+ }), element.hasOwnProperty('defaultToday') && /*#__PURE__*/React.createElement(Form.Check, {
255
+ id: "is-default-to-today",
256
+ label: "Default to Today",
257
+ type: "checkbox",
258
+ checked: thisDefaultToday,
259
+ value: true,
260
+ onChange: function onChange(e) {
261
+ editElementProp('defaultToday', 'checked', e);
262
+ }
263
+ }), ['Checkboxes', 'Checkbox'].indexOf(element.element) !== -1 && /*#__PURE__*/React.createElement(Form.Check, {
264
+ id: "default-checked",
265
+ label: "Default Checked",
266
+ type: "checkbox",
267
+ checked: thisDefaultChecked,
268
+ value: true,
269
+ onChange: function onChange(e) {
270
+ editElementProp('defaultChecked', 'checked', e);
271
+ }
272
+ }), (element.element === 'RadioButtons' || element.element === 'Checkboxes') && element.hasOwnProperty('inline') && /*#__PURE__*/React.createElement(Form.Check, {
273
+ id: "display-horizontal",
274
+ label: "Display Horizontal",
275
+ type: "checkbox",
276
+ checked: thisCheckedInline,
277
+ value: true,
278
+ onChange: function onChange(e) {
279
+ editElementProp('inline', 'checked', e);
280
+ }
281
+ })), element.element === 'Checkbox' && /*#__PURE__*/React.createElement(Form.Group, {
282
+ className: "form-group mb-5"
283
+ }, /*#__PURE__*/React.createElement(Form.Label, {
284
+ className: "fw-bold"
285
+ }, "Checkbox Label Text:"), /*#__PURE__*/React.createElement(Form.Control, {
286
+ type: "text",
287
+ id: "boxLabel",
288
+ name: "boxLabel",
289
+ as: CustomWysiwygInput,
290
+ value: element.boxLabel,
291
+ defaultValue: element.boxLabel,
292
+ onBlur: onUpdateElement,
293
+ onChange: function onChange(e) {
294
+ editElementProp('boxLabel', 'value', e);
295
+ },
296
+ containerProps: {
297
+ style: {
298
+ height: '200px',
299
+ width: '100%',
300
+ resize: 'vertical'
139
301
  }
140
302
  }
303
+ })), element.hasOwnProperty('src') && /*#__PURE__*/React.createElement(Form.Group, {
304
+ className: "form-group mb-5"
305
+ }, /*#__PURE__*/React.createElement(Form.Label, {
306
+ className: "fw-bold",
307
+ htmlFor: "srcInput"
308
+ }, "Link to:"), /*#__PURE__*/React.createElement(Form.Control, {
309
+ id: "srcInput",
310
+ type: "text",
311
+ defaultValue: element.src,
312
+ onBlur: onUpdateElement,
313
+ onChange: function onChange(e) {
314
+ editElementProp('src', 'value', e);
315
+ }
316
+ })), (element.element === 'Image' || element.element === 'Camera') && /*#__PURE__*/React.createElement(Form.Group, {
317
+ className: "form-group mb-5"
318
+ }, /*#__PURE__*/React.createElement(Row, null, /*#__PURE__*/React.createElement(Col, {
319
+ sm: 3
320
+ }, /*#__PURE__*/React.createElement(Form.Label, {
321
+ className: "fw-bold",
322
+ htmlFor: "do-center"
323
+ }, "Alignment:"), /*#__PURE__*/React.createElement(Form.Check, {
324
+ id: "do-center",
325
+ label: "Center",
326
+ type: "checkbox",
327
+ checked: thisCheckedCenter,
328
+ value: true,
329
+ onChange: function onChange(e) {
330
+ editElementProp('center', 'checked', e);
331
+ }
332
+ })), /*#__PURE__*/React.createElement(Col, {
333
+ sm: 3
334
+ }, /*#__PURE__*/React.createElement(Form.Label, {
335
+ className: "fw-bold",
336
+ htmlFor: "elementWidth"
337
+ }, "Width:"), /*#__PURE__*/React.createElement(Form.Control, {
338
+ id: "elementWidth",
339
+ type: "number",
340
+ defaultValue: element.width,
341
+ onBlur: onUpdateElement,
342
+ onChange: function onChange(e) {
343
+ editElementProp('width', 'value', e);
344
+ }
345
+ })), /*#__PURE__*/React.createElement(Col, {
346
+ sm: 3
347
+ }, /*#__PURE__*/React.createElement(Form.Label, {
348
+ className: "fw-bold",
349
+ htmlFor: "elementHeight"
350
+ }, "Height:"), /*#__PURE__*/React.createElement(Form.Control, {
351
+ id: "elementHeight",
352
+ type: "number",
353
+ defaultValue: element.height,
354
+ onBlur: onUpdateElement,
355
+ onChange: function onChange(e) {
356
+ editElementProp('height', 'value', e);
357
+ }
358
+ })))), element.element === 'FileUpload' && /*#__PURE__*/React.createElement(Form.Group, {
359
+ className: "form-group mb-5"
360
+ }, /*#__PURE__*/React.createElement(Form.Label, {
361
+ className: "fw-bold",
362
+ htmlFor: "fileType"
363
+ }, "Choose file type:"), /*#__PURE__*/React.createElement(Form.Select, {
364
+ id: "fileType",
365
+ onBlur: onUpdateElement,
366
+ onChange: function onChange(e) {
367
+ editElementProp('fileType', 'value', e);
368
+ }
369
+ }, [{
370
+ 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/*',
371
+ typeName: 'All File Type'
141
372
  }, {
142
- key: "render",
143
- value: function render() {
144
- if (this.state.dirty) {
145
- this.props.element.dirty = true;
146
- }
147
- var thisRequiredChecked = this.props.element.hasOwnProperty('required') ? this.props.element.required : false;
148
- var thisDefaultChecked = this.props.element.hasOwnProperty('defaultChecked') ? this.props.element.defaultChecked : false;
149
- var thisReadOnly = this.props.element.hasOwnProperty('readOnly') ? this.props.element.readOnly : false;
150
- var thisDefaultToday = this.props.element.hasOwnProperty('defaultToday') ? this.props.element.defaultToday : false;
151
- var thisCheckedInline = this.props.element.hasOwnProperty('inline') ? this.props.element.inline : false;
152
- var thisCheckedBold = this.props.element.hasOwnProperty('bold') ? this.props.element.bold : false;
153
- var thisCheckedItalic = this.props.element.hasOwnProperty('italic') ? this.props.element.italic : false;
154
- var thisCheckedCenter = this.props.element.hasOwnProperty('center') ? this.props.element.center : false;
155
- var thisCheckedPageBreak = this.props.element.hasOwnProperty('pageBreakBefore') ? this.props.element.pageBreakBefore : false;
156
- var thisCheckedAlternateForm = this.props.element.hasOwnProperty('alternateForm') ? this.props.element.alternateForm : false;
157
- var thisCheckedHideLabel = this.props.element.hasOwnProperty('hideLabel') ? this.props.element.hideLabel : false;
158
- var canHaveAnswer = ['NumberInput', 'EmailInput', 'TextInput', 'PhoneNumber', 'TextArea', 'DatePicker', 'Dropdown', 'Tags', 'Checkboxes', 'Checkbox', 'RadioButtons', 'Rating', 'Range'].indexOf(this.state.element.element) !== -1;
159
- var canHaveOptionValue = ['Dropdown', 'Tags', 'Checkboxes', 'RadioButtons'].indexOf(this.state.element.element) !== -1;
160
- var canHaveOptionCorrect = canHaveAnswer && canHaveOptionValue;
161
- var thisFiles = this.props.files.length ? this.props.files : [];
162
- if (thisFiles.length < 1 || thisFiles.length > 0 && thisFiles[0].id !== '') {
163
- thisFiles.unshift({
164
- id: '',
165
- file_name: ''
166
- });
167
- }
168
- return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", {
169
- className: "clearfix"
170
- }, /*#__PURE__*/React.createElement("h4", {
171
- className: "float-start"
172
- }, this.props.element.text), /*#__PURE__*/React.createElement(FaTimes, {
173
- className: "float-end dismiss-edit",
174
- onClick: this.props.manualEditModeOff
175
- })), this.props.element.hasOwnProperty('content') && (this.state.element.element === 'Header' || this.state.element.element === 'Label' || this.state.element.element === 'Paragraph' || this.state.element.element === 'ContentBody') && /*#__PURE__*/React.createElement(Form.Group, {
176
- className: "form-group mb-5"
177
- }, /*#__PURE__*/React.createElement(Form.Label, {
178
- className: "fw-bold"
179
- }, "Text to display:"), /*#__PURE__*/React.createElement(Form.Control, {
180
- type: "text",
181
- id: "content",
182
- name: "content",
183
- as: CustomWysiwygInput,
184
- value: this.props.element.content,
185
- defaultValue: this.props.element.content,
186
- onBlur: this.updateElement.bind(this),
187
- onChange: this.editElementProp.bind(this, 'content', 'value')
188
- })), this.props.element.hasOwnProperty('filePath') && /*#__PURE__*/React.createElement(Form.Group, {
189
- className: "form-group mb-5"
190
- }, /*#__PURE__*/React.createElement(Form.Label, {
191
- className: "fw-bold",
192
- htmlFor: "fileSelect"
193
- }, "Choose file:"), /*#__PURE__*/React.createElement(Form.Select, {
194
- id: "fileSelect",
195
- defaultValue: this.props.element.filePath,
196
- onBlur: this.updateElement.bind(this),
197
- onChange: this.editElementProp.bind(this, 'filePath', 'value')
198
- }, thisFiles.map(function (file) {
199
- var thisKey = "file_".concat(file.id);
200
- return /*#__PURE__*/React.createElement("option", {
201
- value: file.id,
202
- key: thisKey
203
- }, file.file_name);
204
- }))), this.props.element.hasOwnProperty('href') && /*#__PURE__*/React.createElement(Form.Group, {
205
- className: "form-group mb-5"
206
- }, /*#__PURE__*/React.createElement(Form.Label, {
207
- className: "fw-bold",
208
- htmlFor: "href"
209
- }, "Link to:"), /*#__PURE__*/React.createElement(Form.Control, {
210
- id: "href",
211
- type: "text",
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.createElement(Form.Group, {
216
- className: "form-group mb-5"
217
- }, /*#__PURE__*/React.createElement(Form.Label, {
218
- className: "fw-bold"
219
- }, "Display Label:"), /*#__PURE__*/React.createElement(Form.Control, {
220
- type: "text",
221
- id: "label",
222
- name: "label",
223
- as: CustomWysiwygInput,
224
- value: this.props.element.label,
225
- defaultValue: this.props.element.label,
226
- onBlur: this.updateElement.bind(this),
227
- onChange: this.editElementProp.bind(this, 'label', 'value')
228
- })), (this.props.element.hasOwnProperty('required') || this.props.element.hasOwnProperty('readOnly') || this.props.element.hasOwnProperty('defaultToday') || ['Checkboxes', 'Checkbox'].indexOf(this.state.element.element) !== -1 || (this.state.element.element === 'RadioButtons' || this.state.element.element === 'Checkboxes') && this.props.element.hasOwnProperty('inline')) && /*#__PURE__*/React.createElement(Form.Group, {
229
- className: "form-group mb-5"
230
- }, /*#__PURE__*/React.createElement(Form.Label, {
231
- className: "fw-bold"
232
- }, "Field Properties:"), this.props.element.hasOwnProperty('required') && /*#__PURE__*/React.createElement(Form.Check, {
233
- id: "is-required",
234
- label: "Required",
235
- type: "checkbox",
236
- checked: thisRequiredChecked,
237
- value: true,
238
- onChange: this.editElementProp.bind(this, 'required', 'checked')
239
- }), this.props.element.hasOwnProperty('readOnly') && /*#__PURE__*/React.createElement(Form.Check, {
240
- id: "is-read-only",
241
- label: "Read Only",
242
- type: "checkbox",
243
- checked: thisReadOnly,
244
- value: true,
245
- onChange: this.editElementProp.bind(this, 'readOnly', 'checked')
246
- }), this.props.element.hasOwnProperty('defaultToday') && /*#__PURE__*/React.createElement(Form.Check, {
247
- id: "is-default-to-today",
248
- label: "Default to Today",
249
- type: "checkbox",
250
- checked: thisDefaultToday,
251
- value: true,
252
- onChange: this.editElementProp.bind(this, 'defaultToday', 'checked')
253
- }), ['Checkboxes', 'Checkbox'].indexOf(this.state.element.element) !== -1 && /*#__PURE__*/React.createElement(Form.Check, {
254
- id: "default-checked",
255
- label: "Default Checked",
256
- type: "checkbox",
257
- checked: thisDefaultChecked,
258
- value: true,
259
- onChange: this.editElementProp.bind(this, 'defaultChecked', 'checked')
260
- }), (this.state.element.element === 'RadioButtons' || this.state.element.element === 'Checkboxes') && this.props.element.hasOwnProperty('inline') && /*#__PURE__*/React.createElement(Form.Check, {
261
- id: "display-horizontal",
262
- label: "Display Horizontal",
263
- type: "checkbox",
264
- checked: thisCheckedInline,
265
- value: true,
266
- onChange: this.editElementProp.bind(this, 'inline', 'checked')
267
- })), this.state.element.element === 'Checkbox' && /*#__PURE__*/React.createElement(Form.Group, {
268
- className: "form-group mb-5"
269
- }, /*#__PURE__*/React.createElement(Form.Label, {
270
- className: "fw-bold"
271
- }, "Checkbox Label Text:"), /*#__PURE__*/React.createElement(Form.Control, {
272
- type: "text",
273
- id: "boxLabel",
274
- name: "boxLabel",
275
- as: CustomWysiwygInput,
276
- value: this.props.element.boxLabel,
277
- defaultValue: this.props.element.boxLabel,
278
- onBlur: this.updateElement.bind(this),
279
- onChange: this.editElementProp.bind(this, 'boxLabel', 'value'),
280
- containerProps: {
281
- style: {
282
- height: '500px',
283
- width: '100%',
284
- resize: 'both'
285
- }
286
- }
287
- })), this.props.element.hasOwnProperty('src') && /*#__PURE__*/React.createElement(Form.Group, {
288
- className: "form-group mb-5"
289
- }, /*#__PURE__*/React.createElement(Form.Label, {
290
- className: "fw-bold",
291
- htmlFor: "srcInput"
292
- }, "Link to:"), /*#__PURE__*/React.createElement(Form.Control, {
293
- id: "srcInput",
294
- type: "text",
295
- defaultValue: this.props.element.src,
296
- onBlur: this.updateElement.bind(this),
297
- onChange: this.editElementProp.bind(this, 'src', 'value')
298
- })), (this.state.element.element === 'Image' || this.state.element.element === 'Camera') && /*#__PURE__*/React.createElement(Form.Group, {
299
- className: "form-group mb-5"
300
- }, /*#__PURE__*/React.createElement(Row, null, /*#__PURE__*/React.createElement(Col, {
301
- sm: 3
302
- }, /*#__PURE__*/React.createElement(Form.Label, {
303
- className: "fw-bold",
304
- htmlFor: "do-center"
305
- }, "Alignment:"), /*#__PURE__*/React.createElement(Form.Check, {
306
- id: "do-center",
307
- label: "Center",
308
- type: "checkbox",
309
- checked: thisCheckedCenter,
310
- value: true,
311
- onChange: this.editElementProp.bind(this, 'center', 'checked')
312
- })), /*#__PURE__*/React.createElement(Col, {
313
- sm: 3
314
- }, /*#__PURE__*/React.createElement(Form.Label, {
315
- className: "fw-bold",
316
- htmlFor: "elementWidth"
317
- }, "Width:"), /*#__PURE__*/React.createElement(Form.Control, {
318
- id: "elementWidth",
319
- type: "number",
320
- defaultValue: this.props.element.width,
321
- onBlur: this.updateElement.bind(this),
322
- onChange: this.editElementProp.bind(this, 'width', 'value')
323
- })), /*#__PURE__*/React.createElement(Col, {
324
- sm: 3
325
- }, /*#__PURE__*/React.createElement(Form.Label, {
326
- className: "fw-bold",
327
- htmlFor: "elementHeight"
328
- }, "Height:"), /*#__PURE__*/React.createElement(Form.Control, {
329
- id: "elementHeight",
330
- type: "number",
331
- defaultValue: this.props.element.height,
332
- onBlur: this.updateElement.bind(this),
333
- onChange: this.editElementProp.bind(this, 'height', 'value')
334
- })))), this.state.element.element === 'FileUpload' && /*#__PURE__*/React.createElement(Form.Group, {
335
- className: "form-group mb-5"
336
- }, /*#__PURE__*/React.createElement(Form.Label, {
337
- className: "fw-bold",
338
- htmlFor: "fileType"
339
- }, "Choose file type:"), /*#__PURE__*/React.createElement(Form.Select, {
340
- id: "fileType",
341
- onBlur: this.updateElement.bind(this),
342
- onChange: this.editElementProp.bind(this, 'fileType', 'value')
343
- }, [{
344
- 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/*',
345
- typeName: 'All File Type'
346
- }, {
347
- type: 'image',
348
- typeName: 'Image'
349
- }, {
350
- type: 'application/pdf',
351
- typeName: 'PDF'
352
- }, {
353
- type: 'application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document',
354
- typeName: 'Word'
355
- }, {
356
- type: 'application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
357
- typeName: 'Excel'
358
- }, {
359
- type: 'application/vnd.ms-powerpoint, application/vnd.openxmlformats-officedocument.presentationml.presentation',
360
- typeName: 'Powerpoint'
361
- }, {
362
- type: 'video/mp4,video/x-m4v,video/*',
363
- typeName: 'Videos'
364
- }].map(function (file, index) {
365
- return /*#__PURE__*/React.createElement("option", {
366
- value: file.type,
367
- key: index
368
- }, file.typeName);
369
- }))), this.props.element.hasOwnProperty('pageBreakBefore') && /*#__PURE__*/React.createElement(Form.Group, {
370
- className: "form-group mb-5"
371
- }, /*#__PURE__*/React.createElement(Form.Label, {
372
- className: "fw-bold"
373
- }, "Print options:"), /*#__PURE__*/React.createElement(Form.Check, {
374
- id: "page-break-before-element",
375
- label: "Page Break Before Element",
376
- type: "checkbox",
377
- checked: thisCheckedPageBreak,
378
- value: true,
379
- onChange: this.editElementProp.bind(this, 'pageBreakBefore', 'checked')
380
- })), this.props.element.hasOwnProperty('alternateForm') && /*#__PURE__*/React.createElement(Form.Group, {
381
- className: "form-group mb-5"
382
- }, /*#__PURE__*/React.createElement(Form.Label, {
383
- className: "fw-bold"
384
- }, "Alternate/Signature Page:"), /*#__PURE__*/React.createElement(Form.Check, {
385
- id: "display-on-alternate",
386
- label: "Display on alternate/signature Page",
387
- type: "checkbox",
388
- checked: thisCheckedAlternateForm,
389
- value: true,
390
- onChange: this.editElementProp.bind(this, 'alternateForm', 'checked')
391
- })), this.props.element.hasOwnProperty('step') && /*#__PURE__*/React.createElement(Form.Group, {
392
- className: "form-group mb-5"
393
- }, /*#__PURE__*/React.createElement("div", {
394
- className: "form-group-range"
395
- }, /*#__PURE__*/React.createElement(Form.Label, {
396
- className: "fw-bold",
397
- htmlFor: "rangeStep"
398
- }, "Step:"), /*#__PURE__*/React.createElement(Form.Control, {
399
- id: "rangeStep",
400
- type: "number",
401
- defaultValue: this.props.element.step,
402
- onBlur: this.updateElement.bind(this),
403
- onChange: this.editElementProp.bind(this, 'step', 'value')
404
- }))), this.props.element.hasOwnProperty('minValue') && /*#__PURE__*/React.createElement(Form.Group, {
405
- className: "form-group mb-5"
406
- }, /*#__PURE__*/React.createElement("div", {
407
- className: "form-group-range"
408
- }, /*#__PURE__*/React.createElement(Form.Label, {
409
- className: "fw-bold",
410
- htmlFor: "rangeMin"
411
- }, "Min:"), /*#__PURE__*/React.createElement(Form.Control, {
412
- id: "rangeMin",
413
- type: "number",
414
- defaultValue: this.props.element.minValue,
415
- onBlur: this.updateElement.bind(this),
416
- onChange: this.editElementProp.bind(this, 'minValue', 'value')
417
- }))), this.props.element.hasOwnProperty('minLabel') && /*#__PURE__*/React.createElement(Form.Group, {
418
- className: "form-group mb-5"
419
- }, /*#__PURE__*/React.createElement("div", {
420
- className: "form-group-range"
421
- }, /*#__PURE__*/React.createElement(Form.Label, {
422
- className: "fw-bold",
423
- htmlFor: "rangeMin"
424
- }, "Minimum Value Label:"), /*#__PURE__*/React.createElement(Form.Control, {
425
- type: "text",
426
- defaultValue: this.props.element.minLabel,
427
- onBlur: this.updateElement.bind(this),
428
- onChange: this.editElementProp.bind(this, 'minLabel', 'value')
429
- }))), this.props.element.hasOwnProperty('maxValue') && /*#__PURE__*/React.createElement(Form.Group, {
430
- className: "form-group mb-5"
431
- }, /*#__PURE__*/React.createElement("div", {
432
- className: "form-group-range"
433
- }, /*#__PURE__*/React.createElement(Form.Label, {
434
- className: "fw-bold",
435
- htmlFor: "rangeMax"
436
- }, "Max:"), /*#__PURE__*/React.createElement(Form.Control, {
437
- id: "rangeMax",
438
- type: "number",
439
- defaultValue: this.props.element.maxValue,
440
- onBlur: this.updateElement.bind(this),
441
- onChange: this.editElementProp.bind(this, 'maxValue', 'value')
442
- }))), this.props.element.hasOwnProperty('maxLabel') && /*#__PURE__*/React.createElement(Form.Group, {
443
- className: "form-group mb-5"
444
- }, /*#__PURE__*/React.createElement("div", {
445
- className: "form-group-range"
446
- }, /*#__PURE__*/React.createElement(Form.Label, {
447
- className: "fw-bold",
448
- htmlFor: "rangeMax"
449
- }, "Maximum Value Label:"), /*#__PURE__*/React.createElement(Form.Control, {
450
- type: "text",
451
- defaultValue: this.props.element.maxLabel,
452
- onBlur: this.updateElement.bind(this),
453
- onChange: this.editElementProp.bind(this, 'maxLabel', 'value')
454
- }))), this.props.element.hasOwnProperty('defaultValue') && /*#__PURE__*/React.createElement(Form.Group, {
455
- className: "form-group mb-5"
456
- }, /*#__PURE__*/React.createElement("div", {
457
- className: "form-group-range"
458
- }, /*#__PURE__*/React.createElement(Form.Label, {
459
- className: "fw-bold",
460
- htmlFor: "defaultSelected"
461
- }, "Default Selected:"), /*#__PURE__*/React.createElement(Form.Control, {
462
- id: "defaultSelected",
463
- type: "number",
464
- defaultValue: this.props.element.defaultValue,
465
- onBlur: this.updateElement.bind(this),
466
- onChange: this.editElementProp.bind(this, 'defaultValue', 'value')
467
- }))), this.props.element.hasOwnProperty('static') && this.props.element["static"] && this.props.element.hasOwnProperty('bold') && this.props.element.hasOwnProperty('italic') && /*#__PURE__*/React.createElement(Form.Group, {
468
- className: "form-group mb-5"
469
- }, /*#__PURE__*/React.createElement(Form.Label, {
470
- className: "fw-bold"
471
- }, "Text Style:"), /*#__PURE__*/React.createElement(Form.Check, {
472
- id: "do-bold",
473
- inline: true,
474
- label: "Bold",
475
- type: "checkbox",
476
- checked: thisCheckedBold,
477
- value: true,
478
- onChange: this.editElementProp.bind(this, 'bold', 'checked')
479
- }), /*#__PURE__*/React.createElement(Form.Check, {
480
- id: "do-italic",
481
- inline: true,
482
- label: "Italic",
483
- type: "checkbox",
484
- checked: thisCheckedItalic,
485
- value: true,
486
- onChange: this.editElementProp.bind(this, 'italic', 'checked')
487
- })), this.props.element.hasOwnProperty('placeholder') && /*#__PURE__*/React.createElement(Form.Group, {
488
- className: "form-group mb-5"
489
- }, /*#__PURE__*/React.createElement(Form.Label, {
490
- className: "fw-bold",
491
- htmlFor: "placeholder"
492
- }, "Placeholder:"), /*#__PURE__*/React.createElement(Form.Control, {
493
- type: "text",
494
- id: "placeholder",
495
- defaultValue: this.props.element.placeholder,
496
- onBlur: this.updateElement.bind(this),
497
- onChange: this.editElementProp.bind(this, 'placeholder', 'value')
498
- })), this.props.element.hasOwnProperty('customName') && /*#__PURE__*/React.createElement(Form.Group, {
499
- className: "form-group mb-5"
500
- }, /*#__PURE__*/React.createElement(Form.Label, {
501
- className: "fw-bold",
502
- htmlFor: "customName"
503
- }, "A Name To Give This Input That Will Show Up In Data Retrieval:"), /*#__PURE__*/React.createElement(Form.Control, {
504
- type: "text",
505
- id: "customName",
506
- defaultValue: this.props.element.customName,
507
- onBlur: this.updateElement.bind(this),
508
- onChange: this.editElementProp.bind(this, 'customName', 'value')
509
- })), this.props.element.hasOwnProperty('labelLocation') && /*#__PURE__*/React.createElement(Form.Group, {
510
- className: "form-group mb-5"
511
- }, /*#__PURE__*/React.createElement(Form.Label, {
512
- className: "fw-bold",
513
- htmlFor: "labelLocation"
514
- }, "Choose Label Location:"), /*#__PURE__*/React.createElement(Form.Select, {
515
- id: "labelLocation",
516
- defaultValue: this.props.element.labelLocation,
517
- onBlur: this.updateElement.bind(this),
518
- onChange: this.editElementProp.bind(this, 'labelLocation', 'value')
519
- }, /*#__PURE__*/React.createElement("option", {
520
- value: "ABOVE"
521
- }, "Above Form Field"), /*#__PURE__*/React.createElement("option", {
522
- value: "FLOATING"
523
- }, "Floating Inside Form Field"))), this.props.element.hasOwnProperty('hideLabel') && /*#__PURE__*/React.createElement(Form.Group, {
524
- className: "form-group mb-5"
525
- }, /*#__PURE__*/React.createElement(Form.Label, {
526
- className: "fw-bold"
527
- }, "Hide Label:"), /*#__PURE__*/React.createElement(Form.Check, {
528
- id: "hide-label",
529
- label: "Hide Label",
530
- type: "checkbox",
531
- checked: thisCheckedHideLabel,
532
- value: true,
533
- onChange: this.editElementProp.bind(this, 'hideLabel', 'checked')
534
- })), this.props.element.hasOwnProperty('help') && /*#__PURE__*/React.createElement(Form.Group, {
535
- className: "form-group mb-5"
536
- }, /*#__PURE__*/React.createElement(Form.Label, {
537
- className: "fw-bold",
538
- htmlFor: "help"
539
- }, "Help instructions/details that will show up beneath the input field:"), /*#__PURE__*/React.createElement(TextAreaAutosize, {
540
- type: "text",
541
- className: "form-control",
542
- id: "help",
543
- defaultValue: this.props.element.help,
544
- onBlur: this.updateElement.bind(this),
545
- onChange: this.editElementProp.bind(this, 'help', 'value')
546
- })), (this.props.showDescription && !this.props.element["static"] || this.props.element.hasOwnProperty('description')) && /*#__PURE__*/React.createElement(Form.Group, {
547
- className: "form-group mb-5"
548
- }, /*#__PURE__*/React.createElement(Form.Label, {
549
- className: "fw-bold",
550
- htmlFor: "description"
551
- }, "Description:"), /*#__PURE__*/React.createElement(TextAreaAutosize, {
552
- type: "text",
553
- className: "form-control",
554
- id: "description",
555
- defaultValue: this.props.element.description,
556
- onBlur: this.updateElement.bind(this),
557
- onChange: this.editElementProp.bind(this, 'description', 'value')
558
- })), this.props.showCorrectColumn && canHaveAnswer && !this.props.element.hasOwnProperty('options') && /*#__PURE__*/React.createElement(Form.Group, {
559
- className: "form-group mb-5"
560
- }, /*#__PURE__*/React.createElement(Form.Label, {
561
- className: "fw-bold",
562
- htmlFor: "correct"
563
- }, "Correct Answer:"), /*#__PURE__*/React.createElement(Form.Control, {
564
- id: "correct",
565
- type: "text",
566
- defaultValue: this.props.element.correct,
567
- onBlur: this.updateElement.bind(this),
568
- onChange: this.editElementProp.bind(this, 'correct', 'value')
569
- })), this.props.element.canPopulateFromApi && this.props.element.hasOwnProperty('options') && /*#__PURE__*/React.createElement(Form.Group, {
570
- className: "form-group mb-5"
571
- }, /*#__PURE__*/React.createElement(Form.Label, {
572
- className: "fw-bold",
573
- htmlFor: "optionsApiUrl"
574
- }, "Populate Options from API:"), /*#__PURE__*/React.createElement(Row, null, /*#__PURE__*/React.createElement(Col, {
575
- sm: 6
576
- }, /*#__PURE__*/React.createElement(Form.Control, {
577
- style: {
578
- width: '100%'
579
- },
580
- type: "text",
581
- id: "optionsApiUrl",
582
- placeholder: "http://localhost:8080/api/optionsdata"
583
- })), /*#__PURE__*/React.createElement(Col, {
584
- sm: 6
585
- }, /*#__PURE__*/React.createElement(Button, {
586
- variant: "success",
587
- onClick: this.addOptions.bind(this)
588
- }, "Populate")))), this.props.element.hasOwnProperty('options') && /*#__PURE__*/React.createElement(DynamicOptionList, {
589
- showCorrectColumn: this.props.showCorrectColumn,
590
- canHaveOptionCorrect: canHaveOptionCorrect,
591
- canHaveOptionValue: canHaveOptionValue,
592
- item: this.props.preview.state.item,
593
- updateElement: this.props.updateElement,
594
- preview: this.props.preview,
595
- element: this.props.element,
596
- key: this.props.element.options.length
597
- }));
598
- }
599
- }]);
600
- }(React.Component);
601
- export { SurveyElementsEdit as default };
373
+ type: 'image',
374
+ typeName: 'Image'
375
+ }, {
376
+ type: 'application/pdf',
377
+ typeName: 'PDF'
378
+ }, {
379
+ type: 'application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document',
380
+ typeName: 'Word'
381
+ }, {
382
+ type: 'application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
383
+ typeName: 'Excel'
384
+ }, {
385
+ type: 'application/vnd.ms-powerpoint, application/vnd.openxmlformats-officedocument.presentationml.presentation',
386
+ typeName: 'Powerpoint'
387
+ }, {
388
+ type: 'video/mp4,video/x-m4v,video/*',
389
+ typeName: 'Videos'
390
+ }].map(function (file, index) {
391
+ return /*#__PURE__*/React.createElement("option", {
392
+ value: file.type,
393
+ key: index
394
+ }, file.typeName);
395
+ }))), element.hasOwnProperty('pageBreakBefore') && /*#__PURE__*/React.createElement(Form.Group, {
396
+ className: "form-group mb-5"
397
+ }, /*#__PURE__*/React.createElement(Form.Label, {
398
+ className: "fw-bold"
399
+ }, "Print options:"), /*#__PURE__*/React.createElement(Form.Check, {
400
+ id: "page-break-before-element",
401
+ label: "Page Break Before Element",
402
+ type: "checkbox",
403
+ checked: thisCheckedPageBreak,
404
+ value: true,
405
+ onChange: function onChange(e) {
406
+ editElementProp('pageBreakBefore', 'checked', e);
407
+ }
408
+ })), element.hasOwnProperty('alternateForm') && /*#__PURE__*/React.createElement(Form.Group, {
409
+ className: "form-group mb-5"
410
+ }, /*#__PURE__*/React.createElement(Form.Label, {
411
+ className: "fw-bold"
412
+ }, "Alternate/Signature Page:"), /*#__PURE__*/React.createElement(Form.Check, {
413
+ id: "display-on-alternate",
414
+ label: "Display on alternate/signature Page",
415
+ type: "checkbox",
416
+ checked: thisCheckedAlternateForm,
417
+ value: true,
418
+ onChange: function onChange(e) {
419
+ editElementProp('alternateForm', 'checked', e);
420
+ }
421
+ })), element.hasOwnProperty('step') && /*#__PURE__*/React.createElement(Form.Group, {
422
+ className: "form-group mb-5"
423
+ }, /*#__PURE__*/React.createElement("div", {
424
+ className: "form-group-range"
425
+ }, /*#__PURE__*/React.createElement(Form.Label, {
426
+ className: "fw-bold",
427
+ htmlFor: "rangeStep"
428
+ }, "Step:"), /*#__PURE__*/React.createElement(Form.Control, {
429
+ id: "rangeStep",
430
+ type: "number",
431
+ defaultValue: element.step,
432
+ onBlur: onUpdateElement,
433
+ onChange: function onChange(e) {
434
+ editElementProp('step', 'value', e);
435
+ }
436
+ }))), element.hasOwnProperty('minValue') && /*#__PURE__*/React.createElement(Form.Group, {
437
+ className: "form-group mb-5"
438
+ }, /*#__PURE__*/React.createElement("div", {
439
+ className: "form-group-range"
440
+ }, /*#__PURE__*/React.createElement(Form.Label, {
441
+ className: "fw-bold",
442
+ htmlFor: "rangeMin"
443
+ }, "Min:"), /*#__PURE__*/React.createElement(Form.Control, {
444
+ id: "rangeMin",
445
+ type: "number",
446
+ defaultValue: element.minValue,
447
+ onBlur: onUpdateElement,
448
+ onChange: function onChange(e) {
449
+ editElementProp('minValue', 'value', e);
450
+ }
451
+ }))), element.hasOwnProperty('minLabel') && /*#__PURE__*/React.createElement(Form.Group, {
452
+ className: "form-group mb-5"
453
+ }, /*#__PURE__*/React.createElement("div", {
454
+ className: "form-group-range"
455
+ }, /*#__PURE__*/React.createElement(Form.Label, {
456
+ className: "fw-bold",
457
+ htmlFor: "rangeMin"
458
+ }, "Minimum Value Label:"), /*#__PURE__*/React.createElement(Form.Control, {
459
+ type: "text",
460
+ defaultValue: element.minLabel,
461
+ onBlur: onUpdateElement,
462
+ onChange: function onChange(e) {
463
+ editElementProp('minLabel', 'value', e);
464
+ }
465
+ }))), element.hasOwnProperty('maxValue') && /*#__PURE__*/React.createElement(Form.Group, {
466
+ className: "form-group mb-5"
467
+ }, /*#__PURE__*/React.createElement("div", {
468
+ className: "form-group-range"
469
+ }, /*#__PURE__*/React.createElement(Form.Label, {
470
+ className: "fw-bold",
471
+ htmlFor: "rangeMax"
472
+ }, "Max:"), /*#__PURE__*/React.createElement(Form.Control, {
473
+ id: "rangeMax",
474
+ type: "number",
475
+ defaultValue: element.maxValue,
476
+ onBlur: onUpdateElement,
477
+ onChange: function onChange(e) {
478
+ editElementProp('maxValue', 'value', e);
479
+ }
480
+ }))), element.hasOwnProperty('maxLabel') && /*#__PURE__*/React.createElement(Form.Group, {
481
+ className: "form-group mb-5"
482
+ }, /*#__PURE__*/React.createElement("div", {
483
+ className: "form-group-range"
484
+ }, /*#__PURE__*/React.createElement(Form.Label, {
485
+ className: "fw-bold",
486
+ htmlFor: "rangeMax"
487
+ }, "Maximum Value Label:"), /*#__PURE__*/React.createElement(Form.Control, {
488
+ type: "text",
489
+ defaultValue: element.maxLabel,
490
+ onBlur: onUpdateElement,
491
+ onChange: function onChange(e) {
492
+ editElementProp('maxLabel', 'value', e);
493
+ }
494
+ }))), element.hasOwnProperty('defaultValue') && /*#__PURE__*/React.createElement(Form.Group, {
495
+ className: "form-group mb-5"
496
+ }, /*#__PURE__*/React.createElement("div", {
497
+ className: "form-group-range"
498
+ }, /*#__PURE__*/React.createElement(Form.Label, {
499
+ className: "fw-bold",
500
+ htmlFor: "defaultSelected"
501
+ }, "Default Selected:"), /*#__PURE__*/React.createElement(Form.Control, {
502
+ id: "defaultSelected",
503
+ type: "number",
504
+ defaultValue: element.defaultValue,
505
+ onBlur: onUpdateElement,
506
+ onChange: function onChange(e) {
507
+ editElementProp('defaultValue', 'value', e);
508
+ }
509
+ }))), element.hasOwnProperty('static') && element["static"] && element.hasOwnProperty('bold') && element.hasOwnProperty('italic') && /*#__PURE__*/React.createElement(Form.Group, {
510
+ className: "form-group mb-5"
511
+ }, /*#__PURE__*/React.createElement(Form.Label, {
512
+ className: "fw-bold"
513
+ }, "Text Style:"), /*#__PURE__*/React.createElement(Form.Check, {
514
+ id: "do-bold",
515
+ inline: true,
516
+ label: "Bold",
517
+ type: "checkbox",
518
+ checked: thisCheckedBold,
519
+ value: true,
520
+ onChange: function onChange(e) {
521
+ editElementProp('bold', 'checked', e);
522
+ }
523
+ }), /*#__PURE__*/React.createElement(Form.Check, {
524
+ id: "do-italic",
525
+ inline: true,
526
+ label: "Italic",
527
+ type: "checkbox",
528
+ checked: thisCheckedItalic,
529
+ value: true,
530
+ onChange: function onChange(e) {
531
+ editElementProp('italic', 'checked', e);
532
+ }
533
+ })), element.hasOwnProperty('placeholder') && /*#__PURE__*/React.createElement(Form.Group, {
534
+ className: "form-group mb-5"
535
+ }, /*#__PURE__*/React.createElement(Form.Label, {
536
+ className: "fw-bold",
537
+ htmlFor: "placeholder"
538
+ }, "Placeholder:"), /*#__PURE__*/React.createElement(Form.Control, {
539
+ type: "text",
540
+ id: "placeholder",
541
+ defaultValue: element.placeholder,
542
+ onBlur: onUpdateElement,
543
+ onChange: function onChange(e) {
544
+ editElementProp('placeholder', 'value', e);
545
+ }
546
+ })), element.hasOwnProperty('customName') && /*#__PURE__*/React.createElement(Form.Group, {
547
+ className: "form-group mb-5"
548
+ }, /*#__PURE__*/React.createElement(Form.Label, {
549
+ className: "fw-bold",
550
+ htmlFor: "customName"
551
+ }, "A Name To Give This Input That Will Show Up In Data Retrieval:"), /*#__PURE__*/React.createElement(Form.Control, {
552
+ type: "text",
553
+ id: "customName",
554
+ defaultValue: element.customName,
555
+ onBlur: onUpdateElement,
556
+ onChange: function onChange(e) {
557
+ editElementProp('customName', 'value', e);
558
+ }
559
+ })), element.hasOwnProperty('labelLocation') && /*#__PURE__*/React.createElement(Form.Group, {
560
+ className: "form-group mb-5"
561
+ }, /*#__PURE__*/React.createElement(Form.Label, {
562
+ className: "fw-bold",
563
+ htmlFor: "labelLocation"
564
+ }, "Choose Label Location:"), /*#__PURE__*/React.createElement(Form.Select, {
565
+ id: "labelLocation",
566
+ defaultValue: element.labelLocation,
567
+ onBlur: onUpdateElement,
568
+ onChange: function onChange(e) {
569
+ editElementProp('labelLocation', 'value', e);
570
+ }
571
+ }, /*#__PURE__*/React.createElement("option", {
572
+ value: "ABOVE"
573
+ }, "Above Form Field"), /*#__PURE__*/React.createElement("option", {
574
+ value: "FLOATING"
575
+ }, "Floating Inside Form Field"))), element.hasOwnProperty('hideLabel') && /*#__PURE__*/React.createElement(Form.Group, {
576
+ className: "form-group mb-5"
577
+ }, /*#__PURE__*/React.createElement(Form.Label, {
578
+ className: "fw-bold"
579
+ }, "Hide Label:"), /*#__PURE__*/React.createElement(Form.Check, {
580
+ id: "hide-label",
581
+ label: "Hide Label",
582
+ type: "checkbox",
583
+ checked: thisCheckedHideLabel,
584
+ value: true,
585
+ onChange: function onChange(e) {
586
+ editElementProp('hideLabel', 'checked', e);
587
+ }
588
+ })), element.hasOwnProperty('conditional') && /*#__PURE__*/React.createElement(Form.Group, {
589
+ className: "form-group mb-5"
590
+ }, /*#__PURE__*/React.createElement(Form.Label, {
591
+ className: "fw-bold"
592
+ }, "Step is Conditional and Display is Dependent on Answers to another Survey Block:"), /*#__PURE__*/React.createElement(Form.Check, {
593
+ id: "conditional",
594
+ label: "Conditional",
595
+ type: "checkbox",
596
+ checked: thisCheckedConditional,
597
+ value: true,
598
+ onChange: function onChange(e) {
599
+ editElementProp('conditional', 'checked', e);
600
+ }
601
+ })), element.hasOwnProperty('conditionalFieldName') && /*#__PURE__*/React.createElement(Form.Group, {
602
+ className: "form-group mb-5"
603
+ }, /*#__PURE__*/React.createElement(Form.Label, {
604
+ className: "fw-bold",
605
+ htmlFor: "conditionalFieldName"
606
+ }, "Field Name for the Dependent Survey Block:"), /*#__PURE__*/React.createElement(Form.Control, {
607
+ type: "text",
608
+ id: "conditionalFieldName",
609
+ defaultValue: element.conditionalFieldName,
610
+ onBlur: onUpdateElement,
611
+ onChange: function onChange(e) {
612
+ editElementProp('conditionalFieldName', 'value', e);
613
+ }
614
+ })), element.hasOwnProperty('conditionalFieldValue') && /*#__PURE__*/React.createElement(Form.Group, {
615
+ className: "form-group mb-5"
616
+ }, /*#__PURE__*/React.createElement(Form.Label, {
617
+ className: "fw-bold",
618
+ htmlFor: "conditionalFieldValue"
619
+ }, "Value(s) for Survey Block to Display the Conditional Step:"), /*#__PURE__*/React.createElement(Form.Control, {
620
+ type: "text",
621
+ id: "conditionalFieldValue",
622
+ defaultValue: element.conditionalFieldValue,
623
+ onBlur: onUpdateElement,
624
+ onChange: function onChange(e) {
625
+ editElementProp('conditionalFieldValue', 'value', e);
626
+ }
627
+ })), element.hasOwnProperty('help') && /*#__PURE__*/React.createElement(Form.Group, {
628
+ className: "form-group mb-5"
629
+ }, /*#__PURE__*/React.createElement(Form.Label, {
630
+ className: "fw-bold",
631
+ htmlFor: "help"
632
+ }, "Help instructions/details that will show up beneath the input field:"), /*#__PURE__*/React.createElement(TextAreaAutosize, {
633
+ type: "text",
634
+ className: "form-control",
635
+ id: "help",
636
+ defaultValue: element.help,
637
+ onBlur: onUpdateElement,
638
+ onChange: function onChange(e) {
639
+ editElementProp('help', 'value', e);
640
+ }
641
+ })), (showDescription && !element["static"] || element.hasOwnProperty('description')) && /*#__PURE__*/React.createElement(Form.Group, {
642
+ className: "form-group mb-5"
643
+ }, /*#__PURE__*/React.createElement(Form.Label, {
644
+ className: "fw-bold",
645
+ htmlFor: "description"
646
+ }, "Description:"), /*#__PURE__*/React.createElement(TextAreaAutosize, {
647
+ type: "text",
648
+ className: "form-control",
649
+ id: "description",
650
+ defaultValue: element.description,
651
+ onBlur: onUpdateElement,
652
+ onChange: function onChange(e) {
653
+ editElementProp('description', 'value', e);
654
+ }
655
+ })), showCorrectColumn && canHaveAnswer && !element.hasOwnProperty('options') && /*#__PURE__*/React.createElement(Form.Group, {
656
+ className: "form-group mb-5"
657
+ }, /*#__PURE__*/React.createElement(Form.Label, {
658
+ className: "fw-bold",
659
+ htmlFor: "correct"
660
+ }, "Correct Answer:"), /*#__PURE__*/React.createElement(Form.Control, {
661
+ id: "correct",
662
+ type: "text",
663
+ defaultValue: element.correct,
664
+ onBlur: onUpdateElement,
665
+ onChange: function onChange(e) {
666
+ editElementProp('correct', 'value', e);
667
+ }
668
+ })), element.canPopulateFromApi && element.hasOwnProperty('options') && /*#__PURE__*/React.createElement(Form.Group, {
669
+ className: "form-group mb-5"
670
+ }, /*#__PURE__*/React.createElement(Form.Label, {
671
+ className: "fw-bold",
672
+ htmlFor: "optionsApiUrl"
673
+ }, "Populate Options from API:"), /*#__PURE__*/React.createElement(Row, null, /*#__PURE__*/React.createElement(Col, {
674
+ sm: 6
675
+ }, /*#__PURE__*/React.createElement(Form.Control, {
676
+ style: {
677
+ width: '100%'
678
+ },
679
+ type: "text",
680
+ id: "optionsApiUrl",
681
+ placeholder: "http://localhost:8080/api/optionsdata"
682
+ })), /*#__PURE__*/React.createElement(Col, {
683
+ sm: 6
684
+ }, /*#__PURE__*/React.createElement(Button, {
685
+ variant: "success",
686
+ onClick: addOptions
687
+ }, "Populate")))), element.hasOwnProperty('options') && /*#__PURE__*/React.createElement(DynamicOptionList, {
688
+ showCorrectColumn: showCorrectColumn,
689
+ canHaveOptionCorrect: canHaveOptionCorrect,
690
+ canHaveOptionValue: canHaveOptionValue,
691
+ updateElement: updateElement,
692
+ element: element,
693
+ key: element === null || element === void 0 || (_element$options = element.options) === null || _element$options === void 0 ? void 0 : _element$options.length
694
+ }));
695
+ };
602
696
  SurveyElementsEdit.defaultProps = {
603
697
  className: 'edit-element-fields'
604
- };
698
+ };
699
+ export default SurveyElementsEdit;