react-survey-builder 1.0.16 → 1.0.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/README.md +18 -16
  2. package/dist/186.index.js +1 -0
  3. package/dist/app.css +1 -1
  4. package/dist/app.css.map +1 -1
  5. package/dist/index.js +1 -1
  6. package/lib/dynamic-option-list.js +1 -1
  7. package/lib/fieldset/FieldSet.js +15 -17
  8. package/lib/form copy.js +622 -0
  9. package/lib/form-fields.js +201 -208
  10. package/lib/form.js +765 -534
  11. package/lib/index.js +3 -3
  12. package/lib/language-provider/locales/en-us.json +1 -0
  13. package/lib/multi-column/MultiColumnRow.js +25 -25
  14. package/lib/multi-column/dustbin.js +16 -16
  15. package/lib/multi-column/grip.js +6 -6
  16. package/lib/preview.js +41 -40
  17. package/lib/sortable-element.js +6 -6
  18. package/lib/sortable-form-elements.js +2 -0
  19. package/lib/stores/store.js +22 -22
  20. package/lib/survey-elements/component-drag-handle.js +6 -6
  21. package/lib/survey-elements/component-drag-layer.js +3 -3
  22. package/lib/survey-elements/component-drag-preview.js +1 -1
  23. package/lib/survey-elements/component-error-message.js +1 -0
  24. package/lib/survey-elements/component-header.js +5 -5
  25. package/lib/survey-elements/component-label.js +12 -6
  26. package/lib/survey-elements/custom-element.js +23 -12
  27. package/lib/survey-elements/header-bar.js +5 -5
  28. package/lib/survey-elements/index.js +817 -740
  29. package/lib/survey-elements/myxss.js +68 -1
  30. package/lib/survey-elements-edit.js +211 -53
  31. package/lib/toolbar-draggable-item.js +4 -4
  32. package/lib/toolbar.js +49 -18
  33. package/lib/utils/ipUtils.js +53 -0
  34. package/package.json +2 -3
  35. package/types/index.d.ts +5 -1
  36. package/dist/967.index.js +0 -1
  37. package/lib/survey-elements/date-picker.js +0 -272
  38. package/lib/utils/custom-date-picker.js +0 -93
@@ -23,7 +23,7 @@ var cardSource = {
23
23
  return {
24
24
  id: _UUID["default"].uuid(),
25
25
  index: -1,
26
- data: props.data,
26
+ item: props.item,
27
27
  onCreate: props.onCreate
28
28
  };
29
29
  }
@@ -40,13 +40,13 @@ var ToolbarItem = /*#__PURE__*/function (_React$Component) {
40
40
  value: function render() {
41
41
  var _this$props = this.props,
42
42
  connectDragSource = _this$props.connectDragSource,
43
- data = _this$props.data,
43
+ item = _this$props.item,
44
44
  onClick = _this$props.onClick;
45
- var IconComponent = data.icon;
45
+ var IconComponent = item.icon;
46
46
  if (!connectDragSource) return null;
47
47
  return connectDragSource( /*#__PURE__*/_react["default"].createElement("li", {
48
48
  onClick: onClick
49
- }, /*#__PURE__*/_react["default"].createElement(IconComponent, null), data.name));
49
+ }, /*#__PURE__*/_react["default"].createElement(IconComponent, null), item.name));
50
50
  }
51
51
  }]);
52
52
  return ToolbarItem;
package/lib/toolbar.js CHANGED
@@ -20,6 +20,7 @@ var _UUID = _interopRequireDefault(require("./UUID"));
20
20
  var _store = _interopRequireDefault(require("./stores/store"));
21
21
  var _functions = require("./functions");
22
22
  var _fa = require("react-icons/fa");
23
+ var _pi = require("react-icons/pi");
23
24
  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); }; }
24
25
  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; } }
25
26
  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; }
@@ -84,7 +85,7 @@ var Toolbar = /*#__PURE__*/function (_React$Component) {
84
85
  _this = _super.call(this, props);
85
86
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "renderItem", function (item) {
86
87
  return /*#__PURE__*/_react["default"].createElement(_toolbarDraggableItem["default"], {
87
- data: item,
88
+ item: item,
88
89
  key: item.key,
89
90
  onClick: _this._onClick.bind((0, _assertThisInitialized2["default"])(_this), item),
90
91
  onCreate: _this.create
@@ -141,6 +142,16 @@ var Toolbar = /*#__PURE__*/function (_React$Component) {
141
142
  content: intl.formatMessage({
142
143
  id: 'place-holder-text'
143
144
  })
145
+ }, {
146
+ key: 'ContentBody',
147
+ name: intl.formatMessage({
148
+ id: 'content-body'
149
+ }),
150
+ "static": true,
151
+ icon: _pi.PiFileHtml,
152
+ content: intl.formatMessage({
153
+ id: 'place-holder-text'
154
+ })
144
155
  }, {
145
156
  key: 'LineBreak',
146
157
  name: intl.formatMessage({
@@ -165,7 +176,8 @@ var Toolbar = /*#__PURE__*/function (_React$Component) {
165
176
  options: [],
166
177
  placeholder: 'Select One',
167
178
  hideRequiredAlert: true,
168
- showLabelLocationPicker: true
179
+ showLabelLocationPicker: true,
180
+ answerType: 'ARRAY'
169
181
  }, {
170
182
  key: 'Tags',
171
183
  canHaveAnswer: true,
@@ -183,7 +195,8 @@ var Toolbar = /*#__PURE__*/function (_React$Component) {
183
195
  options: [],
184
196
  placeholder: 'Select...',
185
197
  hideRequiredAlert: true,
186
- showLabelLocationPicker: true
198
+ showLabelLocationPicker: true,
199
+ answerType: 'ARRAY'
187
200
  }, {
188
201
  key: 'Checkboxes',
189
202
  canHaveAnswer: true,
@@ -199,7 +212,8 @@ var Toolbar = /*#__PURE__*/function (_React$Component) {
199
212
  showDescription: true,
200
213
  showHelp: true,
201
214
  options: [],
202
- hideRequiredAlert: true
215
+ hideRequiredAlert: true,
216
+ answerType: 'ARRAY'
203
217
  }, {
204
218
  key: 'Checkbox',
205
219
  canHaveAnswer: true,
@@ -215,7 +229,10 @@ var Toolbar = /*#__PURE__*/function (_React$Component) {
215
229
  showDescription: true,
216
230
  showHelp: true,
217
231
  boxLabel: 'Agree To Rules & Regs',
218
- hideRequiredAlert: true
232
+ hideRequiredAlert: true,
233
+ answerType: 'BOOLEAN',
234
+ canHideLabel: true,
235
+ showLabel: false
219
236
  }, {
220
237
  key: 'RadioButtons',
221
238
  canHaveAnswer: true,
@@ -231,7 +248,8 @@ var Toolbar = /*#__PURE__*/function (_React$Component) {
231
248
  showDescription: true,
232
249
  showHelp: true,
233
250
  options: [],
234
- hideRequiredAlert: true
251
+ hideRequiredAlert: true,
252
+ answerType: 'STRING'
235
253
  }, {
236
254
  key: 'TextInput',
237
255
  canHaveAnswer: true,
@@ -250,7 +268,8 @@ var Toolbar = /*#__PURE__*/function (_React$Component) {
250
268
  id: 'place-holder-label'
251
269
  }),
252
270
  hideRequiredAlert: true,
253
- showLabelLocationPicker: true
271
+ showLabelLocationPicker: true,
272
+ answerType: 'STRING'
254
273
  }, {
255
274
  key: 'EmailInput',
256
275
  canHaveAnswer: true,
@@ -269,7 +288,8 @@ var Toolbar = /*#__PURE__*/function (_React$Component) {
269
288
  id: 'place-holder-email'
270
289
  }),
271
290
  hideRequiredAlert: true,
272
- showLabelLocationPicker: true
291
+ showLabelLocationPicker: true,
292
+ answerType: 'STRING'
273
293
  }, {
274
294
  key: 'PhoneNumber',
275
295
  canHaveAnswer: true,
@@ -285,7 +305,8 @@ var Toolbar = /*#__PURE__*/function (_React$Component) {
285
305
  showDescription: true,
286
306
  showHelp: true,
287
307
  hideRequiredAlert: true,
288
- showLabelLocationPicker: true
308
+ showLabelLocationPicker: true,
309
+ answerType: 'STRING'
289
310
  }, {
290
311
  key: 'DatePicker',
291
312
  canDefaultToday: true,
@@ -307,7 +328,8 @@ var Toolbar = /*#__PURE__*/function (_React$Component) {
307
328
  showDescription: true,
308
329
  showHelp: true,
309
330
  hideRequiredAlert: true,
310
- showLabelLocationPicker: true
331
+ showLabelLocationPicker: true,
332
+ answerType: 'STRING'
311
333
  }, {
312
334
  key: 'TextArea',
313
335
  canHaveAnswer: true,
@@ -323,7 +345,8 @@ var Toolbar = /*#__PURE__*/function (_React$Component) {
323
345
  showDescription: true,
324
346
  showHelp: true,
325
347
  hideRequiredAlert: true,
326
- showLabelLocationPicker: true
348
+ showLabelLocationPicker: true,
349
+ answerType: 'STRING'
327
350
  }, {
328
351
  key: 'NumberInput',
329
352
  canHaveAnswer: true,
@@ -342,7 +365,8 @@ var Toolbar = /*#__PURE__*/function (_React$Component) {
342
365
  minValue: 0,
343
366
  maxValue: 5,
344
367
  hideRequiredAlert: true,
345
- showLabelLocationPicker: true
368
+ showLabelLocationPicker: true,
369
+ answerType: 'NUMBER'
346
370
  }, {
347
371
  key: 'Rating',
348
372
  canHaveAnswer: true,
@@ -356,7 +380,8 @@ var Toolbar = /*#__PURE__*/function (_React$Component) {
356
380
  fieldName: 'rating_',
357
381
  showCustomName: true,
358
382
  showDescription: true,
359
- showHelp: true
383
+ showHelp: true,
384
+ answerType: 'NUMBER'
360
385
  }, {
361
386
  key: 'Range',
362
387
  name: intl.formatMessage({
@@ -380,7 +405,8 @@ var Toolbar = /*#__PURE__*/function (_React$Component) {
380
405
  showCustomName: true,
381
406
  showDescription: true,
382
407
  showHelp: true,
383
- hideRequiredAlert: true
408
+ hideRequiredAlert: true,
409
+ answerType: 'NUMBER'
384
410
  }, {
385
411
  key: 'Signature',
386
412
  canReadOnly: true,
@@ -395,7 +421,8 @@ var Toolbar = /*#__PURE__*/function (_React$Component) {
395
421
  showCustomName: true,
396
422
  showDescription: true,
397
423
  showHelp: true,
398
- hideRequiredAlert: true
424
+ hideRequiredAlert: true,
425
+ answerType: 'IMAGE'
399
426
  }, {
400
427
  key: 'Camera',
401
428
  name: intl.formatMessage({
@@ -405,7 +432,8 @@ var Toolbar = /*#__PURE__*/function (_React$Component) {
405
432
  label: intl.formatMessage({
406
433
  id: 'place-holder-label'
407
434
  }),
408
- fieldName: 'camera_'
435
+ fieldName: 'camera_',
436
+ answerType: 'IMAGE'
409
437
  }, {
410
438
  key: 'FileUpload',
411
439
  name: intl.formatMessage({
@@ -415,7 +443,8 @@ var Toolbar = /*#__PURE__*/function (_React$Component) {
415
443
  label: intl.formatMessage({
416
444
  id: 'place-holder-label'
417
445
  }),
418
- fieldName: 'file_upload_'
446
+ fieldName: 'file_upload_',
447
+ answerType: 'FILE'
419
448
  }, {
420
449
  key: 'FieldSet',
421
450
  canHaveAnswer: false,
@@ -561,7 +590,7 @@ var Toolbar = /*#__PURE__*/function (_React$Component) {
561
590
  elementOptions.component = item.component || null;
562
591
  elementOptions.customOptions = item.customOptions || [];
563
592
  }
564
- if (item["static"]) {
593
+ if (item["static"] && ['Header', 'Paragraph', 'Label'].indexOf(element) !== -1) {
565
594
  elementOptions.bold = false;
566
595
  elementOptions.italic = false;
567
596
  }
@@ -572,6 +601,8 @@ var Toolbar = /*#__PURE__*/function (_React$Component) {
572
601
  elementOptions.showHelp = item.showHelp;
573
602
  elementOptions.help = item.help;
574
603
  elementOptions.hideRequiredAlert = item.hideRequiredAlert;
604
+ elementOptions.canHideLabel = item.canHideLabel;
605
+ elementOptions.hideLabel = item.hideLabel;
575
606
  if (item.canHaveAnswer) {
576
607
  elementOptions.canHaveAnswer = item.canHaveAnswer;
577
608
  }
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.getUserAgent = exports.getReferrerUrl = exports.getIPAddress = void 0;
8
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
+ var _isomorphicFetch = _interopRequireDefault(require("isomorphic-fetch"));
11
+ var getIPAddress = exports.getIPAddress = /*#__PURE__*/function () {
12
+ var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
13
+ var response, resData;
14
+ return _regenerator["default"].wrap(function _callee$(_context) {
15
+ while (1) switch (_context.prev = _context.next) {
16
+ case 0:
17
+ _context.next = 2;
18
+ return (0, _isomorphicFetch["default"])("https://api.ipify.org/?format=json");
19
+ case 2:
20
+ response = _context.sent;
21
+ if (!(response.status >= 400)) {
22
+ _context.next = 5;
23
+ break;
24
+ }
25
+ throw new Error("Bad response from server");
26
+ case 5:
27
+ _context.next = 7;
28
+ return response.json();
29
+ case 7:
30
+ resData = _context.sent;
31
+ if (!(resData && resData.ip)) {
32
+ _context.next = 10;
33
+ break;
34
+ }
35
+ return _context.abrupt("return", resData.ip);
36
+ case 10:
37
+ return _context.abrupt("return", null);
38
+ case 11:
39
+ case "end":
40
+ return _context.stop();
41
+ }
42
+ }, _callee);
43
+ }));
44
+ return function getIPAddress() {
45
+ return _ref.apply(this, arguments);
46
+ };
47
+ }();
48
+ var getUserAgent = exports.getUserAgent = function getUserAgent() {
49
+ return window.navigator.userAgent;
50
+ };
51
+ var getReferrerUrl = exports.getReferrerUrl = function getReferrerUrl() {
52
+ return document.referrer ? document.referrer : window.frames.top.document.referrer ? window.frames.top.document.referrer : null;
53
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-survey-builder",
3
- "version": "1.0.16",
3
+ "version": "1.0.18",
4
4
  "description": "A complete survey builder for react.",
5
5
  "main": "lib/index.js",
6
6
  "types": "types/index.d.ts",
@@ -54,7 +54,7 @@
54
54
  "react-icons": "^5.0.1",
55
55
  "react-imask": "^7.0.1",
56
56
  "react-intl": "^5.24.3",
57
- "react-select": "^5.8.0",
57
+ "react-phone-number-input": "^3.3.9",
58
58
  "react-signature-canvas": "^1.0.3",
59
59
  "react-textarea-autosize": "^8.5.3",
60
60
  "xss": "^1.0.8"
@@ -62,7 +62,6 @@
62
62
  "peerDependencies": {
63
63
  "react": ">=18.2.0",
64
64
  "react-dom": ">=18.2.0"
65
-
66
65
  },
67
66
  "devDependencies": {
68
67
  "@babel/cli": "^7.12.10",
package/types/index.d.ts CHANGED
@@ -7,6 +7,7 @@ type BaseElement = {
7
7
  | "Header Text"
8
8
  | "Label"
9
9
  | "Paragraph"
10
+ | "Static Content"
10
11
  | "Line Break"
11
12
  | "Dropdown"
12
13
  | "Tags"
@@ -30,6 +31,8 @@ type BaseElement = {
30
31
  showDescription?: boolean;
31
32
  showLabelLocationPicker?: boolean;
32
33
  showHelp?: boolean;
34
+ hideLabel?: boolean;
35
+ canHideLabel: boolean;
33
36
  hideRequiredAlert?: boolean;
34
37
  required: boolean;
35
38
  canHaveAlternateForm: boolean;
@@ -156,7 +159,7 @@ export interface SurveyGeneratorProps {
156
159
  onBlur?: (info: SurveyGeneratorOnSubmitParams[]) => void;
157
160
  onSubmit?: (info: SurveyGeneratorOnSubmitParams[]) => void;
158
161
  onChange?: (info: SurveyGeneratorOnSubmitParams[]) => void;
159
- data: any[];
162
+ items: any[];
160
163
  backAction?: string;
161
164
  backName?: string;
162
165
  task_id?: number;
@@ -174,6 +177,7 @@ export interface SurveyGeneratorProps {
174
177
  buttonClassName?: string;
175
178
  formId?: string;
176
179
  methods?: Record<any, any>;
180
+ print?: boolean;
177
181
  }
178
182
 
179
183
  export class ReactSurveyGenerator extends React.Component<SurveyGeneratorProps> {}
package/dist/967.index.js DELETED
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunkReactSurveyBuilder=self.webpackChunkReactSurveyBuilder||[]).push([[967],{7967:(e,t,n)=>{n.r(t),n.d(t,{default:()=>M});var l=n(5671),r=n(3144),a=n(136),i=n(2963),o=n(1120),s=n(359),p=n.n(s),c=n(7462),m=n(3366),d=n(3469),h=function(e,t){"function"!=typeof e?e.current=t:e(t)};var u={"min-height":"0","max-height":"none",height:"0",visibility:"hidden",overflow:"hidden",position:"absolute","z-index":"-1000",top:"0",right:"0"},E=function(e){Object.keys(u).forEach((function(t){e.style.setProperty(t,u[t],"important")}))},f=null,b=function(e,t){var n=e.scrollHeight;return"border-box"===t.sizingStyle.boxSizing?n+t.borderSize:n-t.paddingSize},v=function(){},y=["borderBottomWidth","borderLeftWidth","borderRightWidth","borderTopWidth","boxSizing","fontFamily","fontSize","fontStyle","fontWeight","letterSpacing","lineHeight","paddingBottom","paddingLeft","paddingRight","paddingTop","tabSize","textIndent","textRendering","textTransform","width","wordBreak"],Z=!!document.documentElement.currentStyle;function g(e,t,n){var l,r,a=(l=n,r=s.useRef(l),(0,d.Z)((function(){r.current=l})),r);s.useLayoutEffect((function(){var n=function(e){return a.current(e)};if(e)return e.addEventListener(t,n),function(){return e.removeEventListener(t,n)}}),[])}var C=["cacheMeasurements","maxRows","minRows","onChange","onHeightChange"],k=function(e,t){var n,l=e.cacheMeasurements,r=e.maxRows,a=e.minRows,i=e.onChange,o=void 0===i?v:i,p=e.onHeightChange,d=void 0===p?v:p,u=(0,m.Z)(e,C),k=void 0!==u.value,x=s.useRef(null),w=function(e,t){var n=(0,s.useRef)();return(0,s.useCallback)((function(l){e.current=l,n.current&&h(n.current,null),n.current=t,t&&h(t,l)}),[t])}(x,t),P=s.useRef(0),O=s.useRef(),S=function(){var e=x.current,t=l&&O.current?O.current:function(e){var t=window.getComputedStyle(e);if(null===t)return null;var n,l=(n=t,y.reduce((function(e,t){return e[t]=n[t],e}),{})),r=l.boxSizing;return""===r?null:(Z&&"border-box"===r&&(l.width=parseFloat(l.width)+parseFloat(l.borderRightWidth)+parseFloat(l.borderLeftWidth)+parseFloat(l.paddingRight)+parseFloat(l.paddingLeft)+"px"),{sizingStyle:l,paddingSize:parseFloat(l.paddingBottom)+parseFloat(l.paddingTop),borderSize:parseFloat(l.borderBottomWidth)+parseFloat(l.borderTopWidth)})}(e);if(t){O.current=t;var n=function(e,t,n,l){void 0===n&&(n=1),void 0===l&&(l=1/0),f||((f=document.createElement("textarea")).setAttribute("tabindex","-1"),f.setAttribute("aria-hidden","true"),E(f)),null===f.parentNode&&document.body.appendChild(f);var r=e.paddingSize,a=e.borderSize,i=e.sizingStyle,o=i.boxSizing;Object.keys(i).forEach((function(e){var t=e;f.style[t]=i[t]})),E(f),f.value=t;var s=b(f,e);f.value=t,s=b(f,e),f.value="x";var p=f.scrollHeight-r,c=p*n;"border-box"===o&&(c=c+r+a),s=Math.max(c,s);var m=p*l;return"border-box"===o&&(m=m+r+a),[s=Math.min(m,s),p]}(t,e.value||e.placeholder||"x",a,r),i=n[0],o=n[1];P.current!==i&&(P.current=i,e.style.setProperty("height",i+"px","important"),d(i,{rowHeight:o}))}};return s.useLayoutEffect(S),g(window,"resize",S),n=S,g(document.fonts,"loadingdone",n),s.createElement("textarea",(0,c.Z)({},u,{onChange:function(e){k||S(),o(e)},ref:w}))},x=s.forwardRef(k),w=n(9041),P=n(9265),O=n.n(P),S=n(5108),L=n(9333),B=n.n(L),F=n(4152),V=n(5565),N=n(4051),H=n(1555),R=n(7833),T=n(5005);var G=function(e){(0,a.Z)(c,e);var t,n,s=(t=c,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,l=(0,o.Z)(t);if(n){var r=(0,o.Z)(this).constructor;e=Reflect.construct(l,arguments,r)}else e=l.apply(this,arguments);return(0,i.Z)(this,e)});function c(e){var t;return(0,l.Z)(this,c),(t=s.call(this,e)).state={element:t.props.element,data:t.props.data,dirty:!1},t}return(0,r.Z)(c,[{key:"_setValue",value:function(e){return e.replace(/[^A-Z0-9]+/gi,"_").toLowerCase()}},{key:"editOption",value:function(e,t){var n=this.state.element,l=n.options[e].value!==this._setValue(n.options[e].text)?n.options[e].value:this._setValue(t.target.value);n.options[e].text=t.target.value,n.options[e].value=l,this.setState({element:n,dirty:!0})}},{key:"editValue",value:function(e,t){var n=this.state.element,l=""===t.target.value?this._setValue(n.options[e].text):t.target.value;n.options[e].value=l,this.setState({element:n,dirty:!0})}},{key:"editOptionCorrect",value:function(e,t){var n=this.state.element;n.options[e].hasOwnProperty("correct")?delete n.options[e].correct:n.options[e].correct=!0,this.setState({element:n}),this.props.updateElement.call(this.props.preview,n)}},{key:"updateOption",value:function(){var e=this.state.element;this.state.dirty&&(this.props.updateElement.call(this.props.preview,e),this.setState({dirty:!1}))}},{key:"addOption",value:function(e){var t=this.state.element;t.options.splice(e+1,0,{value:"",text:"",key:B().uuid()}),this.props.updateElement.call(this.props.preview,t)}},{key:"removeOption",value:function(e){var t=this.state.element;t.options.splice(e,1),this.props.updateElement.call(this.props.preview,t)}},{key:"render",value:function(){var e=this;return this.state.dirty&&(this.state.element.dirty=!0),p().createElement("div",{className:"dynamic-option-list"},p().createElement("ul",null,p().createElement("li",null,p().createElement(N.Z,null,p().createElement(H.Z,{sm:6},p().createElement("b",null,p().createElement(F.Z,{id:"options"}))),this.props.canHaveOptionValue&&p().createElement(H.Z,{sm:2},p().createElement("b",null,p().createElement(F.Z,{id:"value"}))),this.props.canHaveOptionValue&&this.props.canHaveOptionCorrect&&p().createElement(H.Z,{sm:4},p().createElement("b",null,p().createElement(F.Z,{id:"correct"}))))),this.props.element.options.map((function(t,n){var l="edit_".concat(t.key),r=t.value!==e._setValue(t.text)?t.value:"";return p().createElement("li",{className:"clearfix",key:l},p().createElement(N.Z,null,p().createElement(H.Z,{sm:6},p().createElement(R.Z.Control,{tabIndex:n+1,style:{width:"100%"},type:"text",name:"text_".concat(n),placeholder:"Option text",value:t.text,onBlur:e.updateOption.bind(e),onChange:e.editOption.bind(e,n)})),e.props.canHaveOptionValue&&p().createElement(H.Z,{sm:2},p().createElement(R.Z.Control,{type:"text",name:"value_".concat(n),value:r,onChange:e.editValue.bind(e,n)})),e.props.canHaveOptionValue&&e.props.canHaveOptionCorrect&&p().createElement(H.Z,{sm:1},p().createElement(R.Z.Check,{type:"checkbox",value:"1",onChange:e.editOptionCorrect.bind(e,n),checked:t.hasOwnProperty("correct")})),p().createElement(H.Z,{sm:3},p().createElement("div",{className:"dynamic-options-actions-buttons"},p().createElement(T.Z,{variant:"success",onClick:e.addOption.bind(e,n)},p().createElement(V.EIY,null)),n>0&&p().createElement(T.Z,{variant:"danger",onClick:e.removeOption.bind(e,n)},p().createElement(V.wbB,null))))))}))))}}]),c}(p().Component),z=n(2083);var A={options:["inline","list","textAlign","fontSize","link","history"],inline:{inDropdown:!1,className:void 0,options:["bold","italic","underline","superscript","subscript"]}},M=function(e){(0,a.Z)(c,e);var t,n,s=(t=c,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,l=(0,o.Z)(t);if(n){var r=(0,o.Z)(this).constructor;e=Reflect.construct(l,arguments,r)}else e=l.apply(this,arguments);return(0,i.Z)(this,e)});function c(e){var t;return(0,l.Z)(this,c),(t=s.call(this,e)).state={element:t.props.element,data:t.props.data,dirty:!1},t}return(0,r.Z)(c,[{key:"toggleRequired",value:function(){}},{key:"editElementProp",value:function(e,t,n){var l=this,r=this.state.element;r[e]=n.target[t],this.setState({element:r,dirty:!0},(function(){"checked"===t&&l.updateElement()}))}},{key:"onEditorStateChange",value:function(e,t,n){var l=O()((0,w.convertToRaw)(n.getCurrentContent())).replace(/<p>/g,"").replace(/<\/p>/g,"").replace(/&nbsp;/g," ").replace(/(?:\r\n|\r|\n)/g,""),r=this.state.element;r[t]=l,this.setState({element:r,dirty:!0})}},{key:"updateElement",value:function(){var e=this.state.element;this.state.dirty&&(this.props.updateElement.call(this.props.preview,e),this.setState({dirty:!1}))}},{key:"convertFromHTML",value:function(e){var t=(0,w.convertFromHTML)(e);if(!t.contentBlocks||!t.contentBlocks.length)return w.EditorState.createEmpty();var n=w.ContentState.createFromBlockArray(t);return w.EditorState.createWithContent(n)}},{key:"addOptions",value:function(){var e=this,t=document.getElementById("optionsApiUrl").value;t&&(0,z.U)(t).then((function(t){e.props.element.options=[];var n=e.props.element.options;t.forEach((function(e){e.key=B().uuid(),n.push(e)}));var l=e.state.element;e.setState({element:l,dirty:!0})}))}},{key:"render",value:function(){this.state.dirty&&(this.props.element.dirty=!0);var e,t,n=!!this.props.element.hasOwnProperty("required")&&this.props.element.required,l=!!this.props.element.hasOwnProperty("defaultChecked")&&this.props.element.defaultChecked,r=!!this.props.element.hasOwnProperty("readOnly")&&this.props.element.readOnly,a=!!this.props.element.hasOwnProperty("defaultToday")&&this.props.element.defaultToday,i=(!!this.props.element.hasOwnProperty("showTimeSelect")&&this.props.element.showTimeSelect,!!this.props.element.hasOwnProperty("showTimeSelectOnly")&&this.props.element.showTimeSelectOnly,!!this.props.element.hasOwnProperty("showTimeInput")&&this.props.element.showTimeInput,!!this.props.element.hasOwnProperty("inline")&&this.props.element.inline),o=!!this.props.element.hasOwnProperty("bold")&&this.props.element.bold,s=!!this.props.element.hasOwnProperty("italic")&&this.props.element.italic,c=!!this.props.element.hasOwnProperty("center")&&this.props.element.center,m=!!this.props.element.hasOwnProperty("pageBreakBefore")&&this.props.element.pageBreakBefore,d=!!this.props.element.hasOwnProperty("alternateForm")&&this.props.element.alternateForm,h=this.props.element,u=h.canHavePageBreakBefore,E=h.canHaveAlternateForm,f=h.canHaveDisplayHorizontal,b=h.canHaveOptionCorrect,v=h.canHaveOptionValue,y="Image"===this.state.element.element||"Camera"===this.state.element.element,Z=this.props.files.length?this.props.files:[];return(Z.length<1||Z.length>0&&""!==Z[0].id)&&Z.unshift({id:"",file_name:""}),this.props.element.hasOwnProperty("content")&&(e=this.convertFromHTML(this.props.element.content)),this.props.element.hasOwnProperty("label")&&(e=this.convertFromHTML(this.props.element.label)),this.props.element.hasOwnProperty("boxLabel")&&(t=this.convertFromHTML(this.props.element.boxLabel)),p().createElement("div",null,p().createElement("div",{className:"clearfix"},p().createElement("h4",{className:"float-start"},this.props.element.text),p().createElement(V.aHS,{className:"float-end dismiss-edit",onClick:this.props.manualEditModeOff})),this.props.element.hasOwnProperty("content")&&p().createElement(R.Z.Group,null,p().createElement(R.Z.Label,null,p().createElement(F.Z,{id:"text-to-display"}),":"),p().createElement(S.Editor,{toolbar:A,defaultEditorState:e,onBlur:this.updateElement.bind(this),onEditorStateChange:this.onEditorStateChange.bind(this,0,"content"),stripPastedStyles:!0})),this.props.element.hasOwnProperty("filePath")&&p().createElement(R.Z.Group,null,p().createElement(R.Z.Label,{htmlFor:"fileSelect"},p().createElement(F.Z,{id:"choose-file"}),":"),p().createElement(R.Z.Select,{id:"fileSelect",defaultValue:this.props.element.filePath,onBlur:this.updateElement.bind(this),onChange:this.editElementProp.bind(this,"filePath","value")},Z.map((function(e){var t="file_".concat(e.id);return p().createElement("option",{value:e.id,key:t},e.file_name)})))),this.props.element.hasOwnProperty("href")&&p().createElement(R.Z.Group,null,p().createElement(x,{type:"text",className:"form-control",defaultValue:this.props.element.href,onBlur:this.updateElement.bind(this),onChange:this.editElementProp.bind(this,"href","value")})),this.props.element.hasOwnProperty("label")&&p().createElement(R.Z.Group,null,p().createElement(R.Z.Label,null,p().createElement(F.Z,{id:"display-label"})),p().createElement(S.Editor,{toolbar:A,defaultEditorState:e,onBlur:this.updateElement.bind(this),onEditorStateChange:this.onEditorStateChange.bind(this,0,"label"),stripPastedStyles:!0}),p().createElement("br",null),p().createElement(R.Z.Check,{id:"is-required",label:p().createElement(F.Z,{id:"required"}),type:"checkbox",checked:n,value:!0,onChange:this.editElementProp.bind(this,"required","checked")}),this.props.element.hasOwnProperty("readOnly")&&p().createElement(R.Z.Check,{id:"is-read-only",label:p().createElement(F.Z,{id:"read-only"}),type:"checkbox",checked:r,value:!0,onChange:this.editElementProp.bind(this,"readOnly","checked")}),this.props.element.hasOwnProperty("defaultToday")&&p().createElement(R.Z.Check,{id:"is-default-to-today",label:p().createElement(F.Z,{id:"default-to-today"}),type:"checkbox",checked:a,value:!0,onChange:this.editElementProp.bind(this,"defaultToday","checked")}),-1!==["Checkboxes","Checkbox"].indexOf(this.state.element.element)&&p().createElement(R.Z.Check,{id:"default-checked",label:p().createElement(F.Z,{id:"default-checked"}),type:"checkbox",checked:l,value:!0,onChange:this.editElementProp.bind(this,"defaultChecked","checked")}),("RadioButtons"===this.state.element.element||"Checkboxes"===this.state.element.element)&&f&&p().createElement(R.Z.Check,{id:"display-horizontal",label:p().createElement(F.Z,{id:"display-horizontal"}),type:"checkbox",checked:i,value:!0,onChange:this.editElementProp.bind(this,"inline","checked")})),"Checkbox"===this.state.element.element&&p().createElement(R.Z.Group,null,p().createElement(R.Z.Label,null,p().createElement(F.Z,{id:"checkbox-label-text"}),":"),p().createElement(S.Editor,{toolbar:A,defaultEditorState:t,onBlur:this.updateElement.bind(this),onEditorStateChange:this.onEditorStateChange.bind(this,0,"boxLabel"),stripPastedStyles:!0})),this.props.element.hasOwnProperty("src")&&p().createElement("div",null,p().createElement(R.Z.Group,null,p().createElement(R.Z.Label,{htmlFor:"srcInput"},p().createElement(F.Z,{id:"link-to"}),":"),p().createElement(R.Z.Control,{id:"srcInput",type:"text",defaultValue:this.props.element.src,onBlur:this.updateElement.bind(this),onChange:this.editElementProp.bind(this,"src","value")}))),y&&p().createElement("div",null,p().createElement(R.Z.Group,null,p().createElement(R.Z.Check,{id:"do-center",label:p().createElement(F.Z,{id:"center"}),type:"checkbox",checked:c,value:!0,onChange:this.editElementProp.bind(this,"center","checked")})),p().createElement(N.Z,null,p().createElement(H.Z,{sm:3},p().createElement(R.Z.Label,{htmlFor:"elementWidth"},p().createElement(F.Z,{id:"width"}),":"),p().createElement(R.Z.Control,{id:"elementWidth",type:"text",defaultValue:this.props.element.width,onBlur:this.updateElement.bind(this),onChange:this.editElementProp.bind(this,"width","value")})),p().createElement(H.Z,{sm:3},p().createElement(R.Z.Label,{htmlFor:"elementHeight"},p().createElement(F.Z,{id:"height"}),":"),p().createElement(R.Z.Control,{id:"elementHeight",type:"text",defaultValue:this.props.element.height,onBlur:this.updateElement.bind(this),onChange:this.editElementProp.bind(this,"height","value")})))),"FileUpload"===this.state.element.element&&p().createElement("div",null,p().createElement(R.Z.Group,null,p().createElement(R.Z.Label,{className:"control-label",htmlFor:"fileType"},p().createElement(F.Z,{id:"choose-file-type"}),":"),p().createElement(R.Z.Select,{id:"fileType",onBlur:this.updateElement.bind(this),onChange:this.editElementProp.bind(this,"fileType","value")},[{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/*",typeName:"All File Type"},{type:"image",typeName:"Image"},{type:"application/pdf",typeName:"PDF"},{type:"application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document",typeName:"Word"},{type:"application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",typeName:"Excel"},{type:"application/vnd.ms-powerpoint, application/vnd.openxmlformats-officedocument.presentationml.presentation",typeName:"Powerpoint"},{type:"video/mp4,video/x-m4v,video/*",typeName:"Videos"}].map((function(e,t){return p().createElement("option",{value:e.type,key:t},e.typeName)}))))),u&&p().createElement(R.Z.Group,null,p().createElement(R.Z.Label,null,p().createElement(F.Z,{id:"print-options"})),p().createElement(R.Z.Check,{id:"page-break-before-element",label:p().createElement(F.Z,{id:"page-break-before-element"}),type:"checkbox",checked:m,value:!0,onChange:this.editElementProp.bind(this,"pageBreakBefore","checked")})),E&&p().createElement(R.Z.Group,null,p().createElement(R.Z.Label,null,p().createElement(F.Z,{id:"alternate-signature-page"})),p().createElement(R.Z.Check,{id:"display-on-alternate",label:p().createElement(F.Z,{id:"display-on-alternate-signature-page"}),type:"checkbox",checked:d,value:!0,onChange:this.editElementProp.bind(this,"alternateForm","checked")})),this.props.element.hasOwnProperty("step")&&p().createElement(R.Z.Group,null,p().createElement("div",{className:"form-group-range"},p().createElement(R.Z.Label,{htmlFor:"rangeStep"},p().createElement(F.Z,{id:"step"})),p().createElement(R.Z.Control,{id:"rangeStep",type:"number",defaultValue:this.props.element.step,onBlur:this.updateElement.bind(this),onChange:this.editElementProp.bind(this,"step","value")}))),this.props.element.hasOwnProperty("minValue")&&p().createElement(R.Z.Group,null,p().createElement("div",{className:"form-group-range"},p().createElement(R.Z.Label,{htmlFor:"rangeMin"},p().createElement(F.Z,{id:"min"})),p().createElement(R.Z.Control,{id:"rangeMin",type:"number",defaultValue:this.props.element.minValue,onBlur:this.updateElement.bind(this),onChange:this.editElementProp.bind(this,"minValue","value")}))),this.props.element.hasOwnProperty("minLabel")&&p().createElement(R.Z.Group,null,p().createElement("div",{className:"form-group-range"},p().createElement(R.Z.Label,{htmlFor:"rangeMin"},p().createElement(F.Z,{id:"min-label"})),p().createElement(R.Z.Control,{type:"text",defaultValue:this.props.element.minLabel,onBlur:this.updateElement.bind(this),onChange:this.editElementProp.bind(this,"minLabel","value")}))),this.props.element.hasOwnProperty("maxValue")&&p().createElement(R.Z.Group,null,p().createElement("div",{className:"form-group-range"},p().createElement(R.Z.Label,{htmlFor:"rangeMax"},p().createElement(F.Z,{id:"max"})),p().createElement(R.Z.Control,{id:"rangeMax",type:"number",defaultValue:this.props.element.maxValue,onBlur:this.updateElement.bind(this),onChange:this.editElementProp.bind(this,"maxValue","value")}))),this.props.element.hasOwnProperty("maxLabel")&&p().createElement(R.Z.Group,null,p().createElement("div",{className:"form-group-range"},p().createElement(R.Z.Label,{htmlFor:"rangeMax"},p().createElement(F.Z,{id:"max-label"})),p().createElement(R.Z.Control,{type:"text",defaultValue:this.props.element.maxLabel,onBlur:this.updateElement.bind(this),onChange:this.editElementProp.bind(this,"maxLabel","value")}))),this.props.element.hasOwnProperty("defaultValue")&&p().createElement(R.Z.Group,null,p().createElement("div",{className:"form-group-range"},p().createElement(R.Z.Label,{htmlFor:"defaultSelected"},p().createElement(F.Z,{id:"default-selected"})),p().createElement(R.Z.Control,{id:"defaultSelected",type:"number",defaultValue:this.props.element.defaultValue,onBlur:this.updateElement.bind(this),onChange:this.editElementProp.bind(this,"defaultValue","value")}))),this.props.element.hasOwnProperty("static")&&this.props.element.static&&p().createElement(R.Z.Group,null,p().createElement(R.Z.Label,null,p().createElement(F.Z,{id:"text-style"})),p().createElement(R.Z.Check,{id:"do-bold",label:p().createElement(F.Z,{id:"bold"}),type:"checkbox",checked:o,value:!0,onChange:this.editElementProp.bind(this,"bold","checked")}),p().createElement(R.Z.Check,{id:"do-italic",label:p().createElement(F.Z,{id:"italic"}),type:"checkbox",checked:s,value:!0,onChange:this.editElementProp.bind(this,"italic","checked")})),this.props.element.showPlaceholder&&p().createElement(R.Z.Group,null,p().createElement(R.Z.Label,{htmlFor:"placeholder"},p().createElement(F.Z,{id:"place-holder-text-label"})),p().createElement(R.Z.Control,{type:"text",id:"placeholder",defaultValue:this.props.element.placeholder,onBlur:this.updateElement.bind(this),onChange:this.editElementProp.bind(this,"placeholder","value")})),this.props.element.showCustomName&&p().createElement(R.Z.Group,null,p().createElement(R.Z.Label,{htmlFor:"customName"},p().createElement(F.Z,{id:"custom-name-label"})),p().createElement(R.Z.Control,{type:"text",id:"customName",defaultValue:this.props.element.customName,onBlur:this.updateElement.bind(this),onChange:this.editElementProp.bind(this,"customName","value")})),this.props.element.showLabelLocationPicker&&p().createElement(R.Z.Group,null,p().createElement(R.Z.Label,{htmlFor:"labelLocation"},p().createElement(F.Z,{id:"choose-label-location"}),":"),p().createElement(R.Z.Select,{id:"labelLocation",defaultValue:this.props.element.labelLocation,onBlur:this.updateElement.bind(this),onChange:this.editElementProp.bind(this,"labelLocation","value")},p().createElement("option",{value:"ABOVE"},"Above Form Field"),p().createElement("option",{value:"FLOATING"},"Floating Inside Form Field"))),this.props.element.showHelp&&p().createElement(R.Z.Group,null,p().createElement(R.Z.Label,{htmlFor:"help"},p().createElement(F.Z,{id:"help-label"})),p().createElement(x,{type:"text",className:"form-control",id:"help",defaultValue:this.props.element.help,onBlur:this.updateElement.bind(this),onChange:this.editElementProp.bind(this,"help","value")})),this.props.element.showDescription&&p().createElement(R.Z.Group,null,p().createElement(R.Z.Label,{htmlFor:"questionDescription"},p().createElement(F.Z,{id:"description"})),p().createElement(x,{type:"text",className:"form-control",id:"questionDescription",defaultValue:this.props.element.description,onBlur:this.updateElement.bind(this),onChange:this.editElementProp.bind(this,"description","value")})),this.props.showCorrectColumn&&this.props.element.canHaveAnswer&&!this.props.element.hasOwnProperty("options")&&p().createElement(R.Z.Group,null,p().createElement(R.Z.Label,{htmlFor:"correctAnswer"},p().createElement(F.Z,{id:"correct-answer"})),p().createElement(R.Z.Control,{id:"correctAnswer",type:"text",defaultValue:this.props.element.correct,onBlur:this.updateElement.bind(this),onChange:this.editElementProp.bind(this,"correct","value")})),this.props.element.canPopulateFromApi&&this.props.element.hasOwnProperty("options")&&p().createElement(R.Z.Group,null,p().createElement(R.Z.Label,{htmlFor:"optionsApiUrl"},p().createElement(F.Z,{id:"populate-options-from-api"})),p().createElement(N.Z,null,p().createElement(H.Z,{sm:6},p().createElement(R.Z.Control,{style:{width:"100%"},type:"text",id:"optionsApiUrl",placeholder:"http://localhost:8080/api/optionsdata"})),p().createElement(H.Z,{sm:6},p().createElement(T.Z,{variant:"success",onClick:this.addOptions.bind(this)},p().createElement(F.Z,{id:"populate"}))))),this.props.element.hasOwnProperty("options")&&p().createElement(G,{showCorrectColumn:this.props.showCorrectColumn,canHaveOptionCorrect:b,canHaveOptionValue:v,data:this.props.preview.state.data,updateElement:this.props.updateElement,preview:this.props.preview,element:this.props.element,key:this.props.element.options.length}))}}]),c}(p().Component);M.defaultProps={className:"edit-element-fields"}}}]);