react-survey-builder 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/LICENSE +7 -0
  2. package/README.md +236 -0
  3. package/dist/967.index.js +1 -0
  4. package/dist/app.css +1 -0
  5. package/dist/app.css.map +1 -0
  6. package/dist/index.js +2 -0
  7. package/dist/index.js.LICENSE.txt +46 -0
  8. package/lib/ItemTypes.js +10 -0
  9. package/lib/UUID.js +65 -0
  10. package/lib/dynamic-option-list.js +188 -0
  11. package/lib/fieldset/FieldSet.js +118 -0
  12. package/lib/fieldset/index.js +13 -0
  13. package/lib/form.js +604 -0
  14. package/lib/functions/index.js +45 -0
  15. package/lib/index.js +139 -0
  16. package/lib/language-provider/IntlMessages.js +15 -0
  17. package/lib/language-provider/entries/en-us.js +16 -0
  18. package/lib/language-provider/entries/it-it.js +16 -0
  19. package/lib/language-provider/entries/vi-vn.js +16 -0
  20. package/lib/language-provider/index.js +32 -0
  21. package/lib/language-provider/locales/en-us.json +97 -0
  22. package/lib/language-provider/locales/it-it.json +92 -0
  23. package/lib/language-provider/locales/vi-vn.json +82 -0
  24. package/lib/multi-column/MultiColumnRow.js +134 -0
  25. package/lib/multi-column/dustbin.js +152 -0
  26. package/lib/multi-column/grip.js +51 -0
  27. package/lib/multi-column/index.js +24 -0
  28. package/lib/preview.js +388 -0
  29. package/lib/sortable-element.js +177 -0
  30. package/lib/sortable-form-elements.js +67 -0
  31. package/lib/stores/registry.js +42 -0
  32. package/lib/stores/requests.js +31 -0
  33. package/lib/stores/store.js +138 -0
  34. package/lib/survey-dynamic-edit.js +54 -0
  35. package/lib/survey-elements/component-drag-handle.js +90 -0
  36. package/lib/survey-elements/component-drag-layer.js +68 -0
  37. package/lib/survey-elements/component-drag-preview.js +57 -0
  38. package/lib/survey-elements/component-header.js +29 -0
  39. package/lib/survey-elements/component-label.js +26 -0
  40. package/lib/survey-elements/custom-element.js +70 -0
  41. package/lib/survey-elements/date-picker.js +278 -0
  42. package/lib/survey-elements/header-bar.js +54 -0
  43. package/lib/survey-elements/index.js +1196 -0
  44. package/lib/survey-elements/myxss.js +29 -0
  45. package/lib/survey-elements/star-rating.js +335 -0
  46. package/lib/survey-elements-edit.js +613 -0
  47. package/lib/survey-place-holder.js +51 -0
  48. package/lib/survey-validator.js +103 -0
  49. package/lib/toolbar-draggable-item.js +59 -0
  50. package/lib/toolbar-group-item.js +39 -0
  51. package/lib/toolbar.js +680 -0
  52. package/lib/utils/custom-date-picker.js +93 -0
  53. package/package.json +114 -0
  54. package/types/index.d.ts +180 -0
@@ -0,0 +1,1196 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
12
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
14
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
16
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
17
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
18
+ var _isomorphicFetch = _interopRequireDefault(require("isomorphic-fetch"));
19
+ var _fileSaver = require("file-saver");
20
+ var _react = _interopRequireDefault(require("react"));
21
+ var _reactSelect = _interopRequireDefault(require("react-select"));
22
+ var _reactSignatureCanvas = _interopRequireDefault(require("react-signature-canvas"));
23
+ var _reactBootstrapRangeSlider = _interopRequireDefault(require("react-bootstrap-range-slider"));
24
+ var _starRating = _interopRequireDefault(require("./star-rating"));
25
+ var _datePicker = _interopRequireDefault(require("./date-picker"));
26
+ var _componentHeader = _interopRequireDefault(require("./component-header"));
27
+ var _componentLabel = _interopRequireDefault(require("./component-label"));
28
+ var _myxss = _interopRequireDefault(require("./myxss"));
29
+ var _fa = require("react-icons/fa");
30
+ 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; }
31
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
32
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
33
+ 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; } } // eslint-disable-next-line max-classes-per-file
34
+ var SurveyElements = {};
35
+ var Header = /*#__PURE__*/function (_React$Component) {
36
+ (0, _inherits2["default"])(Header, _React$Component);
37
+ var _super = _createSuper(Header);
38
+ function Header() {
39
+ (0, _classCallCheck2["default"])(this, Header);
40
+ return _super.apply(this, arguments);
41
+ }
42
+ (0, _createClass2["default"])(Header, [{
43
+ key: "render",
44
+ value: function render() {
45
+ // const headerClasses = `dynamic-input ${this.props.data.element}-input`;
46
+ var classNames = 'static';
47
+ if (this.props.data.bold) {
48
+ classNames += ' bold';
49
+ }
50
+ if (this.props.data.italic) {
51
+ classNames += ' italic';
52
+ }
53
+ var baseClasses = 'SortableItem rfb-item';
54
+ if (this.props.data.pageBreakBefore) {
55
+ baseClasses += ' alwaysbreak';
56
+ }
57
+ return /*#__PURE__*/_react["default"].createElement("div", {
58
+ style: _objectSpread({}, this.props.style),
59
+ className: baseClasses
60
+ }, /*#__PURE__*/_react["default"].createElement(_componentHeader["default"], this.props), /*#__PURE__*/_react["default"].createElement("h3", {
61
+ className: classNames,
62
+ dangerouslySetInnerHTML: {
63
+ __html: _myxss["default"].process(this.props.data.content)
64
+ }
65
+ }));
66
+ }
67
+ }]);
68
+ return Header;
69
+ }(_react["default"].Component);
70
+ var Paragraph = /*#__PURE__*/function (_React$Component2) {
71
+ (0, _inherits2["default"])(Paragraph, _React$Component2);
72
+ var _super2 = _createSuper(Paragraph);
73
+ function Paragraph() {
74
+ (0, _classCallCheck2["default"])(this, Paragraph);
75
+ return _super2.apply(this, arguments);
76
+ }
77
+ (0, _createClass2["default"])(Paragraph, [{
78
+ key: "render",
79
+ value: function render() {
80
+ var classNames = 'static';
81
+ if (this.props.data.bold) {
82
+ classNames += ' bold';
83
+ }
84
+ if (this.props.data.italic) {
85
+ classNames += ' italic';
86
+ }
87
+ var baseClasses = 'SortableItem rfb-item';
88
+ if (this.props.data.pageBreakBefore) {
89
+ baseClasses += ' alwaysbreak';
90
+ }
91
+ return /*#__PURE__*/_react["default"].createElement("div", {
92
+ style: _objectSpread({}, this.props.style),
93
+ className: baseClasses
94
+ }, /*#__PURE__*/_react["default"].createElement(_componentHeader["default"], this.props), /*#__PURE__*/_react["default"].createElement("p", {
95
+ className: classNames,
96
+ dangerouslySetInnerHTML: {
97
+ __html: _myxss["default"].process(this.props.data.content)
98
+ }
99
+ }));
100
+ }
101
+ }]);
102
+ return Paragraph;
103
+ }(_react["default"].Component);
104
+ var Label = /*#__PURE__*/function (_React$Component3) {
105
+ (0, _inherits2["default"])(Label, _React$Component3);
106
+ var _super3 = _createSuper(Label);
107
+ function Label() {
108
+ (0, _classCallCheck2["default"])(this, Label);
109
+ return _super3.apply(this, arguments);
110
+ }
111
+ (0, _createClass2["default"])(Label, [{
112
+ key: "render",
113
+ value: function render() {
114
+ var classNames = 'static';
115
+ if (this.props.data.bold) {
116
+ classNames += ' bold';
117
+ }
118
+ if (this.props.data.italic) {
119
+ classNames += ' italic';
120
+ }
121
+ var baseClasses = 'SortableItem rfb-item';
122
+ if (this.props.data.pageBreakBefore) {
123
+ baseClasses += ' alwaysbreak';
124
+ }
125
+ return /*#__PURE__*/_react["default"].createElement("div", {
126
+ style: _objectSpread({}, this.props.style),
127
+ className: baseClasses
128
+ }, /*#__PURE__*/_react["default"].createElement(_componentHeader["default"], this.props), /*#__PURE__*/_react["default"].createElement("label", {
129
+ className: "".concat(classNames, " form-label"),
130
+ dangerouslySetInnerHTML: {
131
+ __html: _myxss["default"].process(this.props.data.content)
132
+ }
133
+ }));
134
+ }
135
+ }]);
136
+ return Label;
137
+ }(_react["default"].Component);
138
+ var LineBreak = /*#__PURE__*/function (_React$Component4) {
139
+ (0, _inherits2["default"])(LineBreak, _React$Component4);
140
+ var _super4 = _createSuper(LineBreak);
141
+ function LineBreak() {
142
+ (0, _classCallCheck2["default"])(this, LineBreak);
143
+ return _super4.apply(this, arguments);
144
+ }
145
+ (0, _createClass2["default"])(LineBreak, [{
146
+ key: "render",
147
+ value: function render() {
148
+ var baseClasses = 'SortableItem rfb-item';
149
+ if (this.props.data.pageBreakBefore) {
150
+ baseClasses += ' alwaysbreak';
151
+ }
152
+ return /*#__PURE__*/_react["default"].createElement("div", {
153
+ style: _objectSpread({}, this.props.style),
154
+ className: baseClasses
155
+ }, /*#__PURE__*/_react["default"].createElement(_componentHeader["default"], this.props), /*#__PURE__*/_react["default"].createElement("hr", null));
156
+ }
157
+ }]);
158
+ return LineBreak;
159
+ }(_react["default"].Component);
160
+ var TextInput = /*#__PURE__*/function (_React$Component5) {
161
+ (0, _inherits2["default"])(TextInput, _React$Component5);
162
+ var _super5 = _createSuper(TextInput);
163
+ function TextInput(props) {
164
+ var _this;
165
+ (0, _classCallCheck2["default"])(this, TextInput);
166
+ _this = _super5.call(this, props);
167
+ _this.inputField = /*#__PURE__*/_react["default"].createRef();
168
+ return _this;
169
+ }
170
+ (0, _createClass2["default"])(TextInput, [{
171
+ key: "render",
172
+ value: function render() {
173
+ var props = {};
174
+ props.type = 'text';
175
+ props.className = 'form-control';
176
+ props.name = this.props.data.field_name;
177
+ props.placeholder = this.props.data.placeholder;
178
+ if (this.props.mutable) {
179
+ props.defaultValue = this.props.defaultValue;
180
+ props.ref = this.inputField;
181
+ }
182
+ var baseClasses = 'SortableItem rfb-item';
183
+ if (this.props.data.pageBreakBefore) {
184
+ baseClasses += ' alwaysbreak';
185
+ }
186
+ if (this.props.read_only) {
187
+ props.disabled = 'disabled';
188
+ }
189
+ return /*#__PURE__*/_react["default"].createElement("div", {
190
+ style: _objectSpread({}, this.props.style),
191
+ className: baseClasses
192
+ }, /*#__PURE__*/_react["default"].createElement(_componentHeader["default"], this.props), /*#__PURE__*/_react["default"].createElement("div", {
193
+ className: "form-floating"
194
+ }, /*#__PURE__*/_react["default"].createElement(_componentLabel["default"], this.props), /*#__PURE__*/_react["default"].createElement("input", props)));
195
+ }
196
+ }]);
197
+ return TextInput;
198
+ }(_react["default"].Component);
199
+ var EmailInput = /*#__PURE__*/function (_React$Component6) {
200
+ (0, _inherits2["default"])(EmailInput, _React$Component6);
201
+ var _super6 = _createSuper(EmailInput);
202
+ function EmailInput(props) {
203
+ var _this2;
204
+ (0, _classCallCheck2["default"])(this, EmailInput);
205
+ _this2 = _super6.call(this, props);
206
+ _this2.inputField = /*#__PURE__*/_react["default"].createRef();
207
+ return _this2;
208
+ }
209
+ (0, _createClass2["default"])(EmailInput, [{
210
+ key: "render",
211
+ value: function render() {
212
+ var props = {};
213
+ props.type = 'text';
214
+ props.className = 'form-control';
215
+ props.name = this.props.data.field_name;
216
+ props.placeholder = this.props.data.placeholder;
217
+ if (this.props.mutable) {
218
+ props.defaultValue = this.props.defaultValue;
219
+ props.ref = this.inputField;
220
+ }
221
+ var baseClasses = 'SortableItem rfb-item';
222
+ if (this.props.data.pageBreakBefore) {
223
+ baseClasses += ' alwaysbreak';
224
+ }
225
+ if (this.props.read_only) {
226
+ props.disabled = 'disabled';
227
+ }
228
+ return /*#__PURE__*/_react["default"].createElement("div", {
229
+ style: _objectSpread({}, this.props.style),
230
+ className: baseClasses
231
+ }, /*#__PURE__*/_react["default"].createElement(_componentHeader["default"], this.props), /*#__PURE__*/_react["default"].createElement("div", {
232
+ className: "form-floating"
233
+ }, /*#__PURE__*/_react["default"].createElement(_componentLabel["default"], this.props), /*#__PURE__*/_react["default"].createElement("input", props)));
234
+ }
235
+ }]);
236
+ return EmailInput;
237
+ }(_react["default"].Component);
238
+ var PhoneNumber = /*#__PURE__*/function (_React$Component7) {
239
+ (0, _inherits2["default"])(PhoneNumber, _React$Component7);
240
+ var _super7 = _createSuper(PhoneNumber);
241
+ function PhoneNumber(props) {
242
+ var _this3;
243
+ (0, _classCallCheck2["default"])(this, PhoneNumber);
244
+ _this3 = _super7.call(this, props);
245
+ _this3.inputField = /*#__PURE__*/_react["default"].createRef();
246
+ return _this3;
247
+ }
248
+ (0, _createClass2["default"])(PhoneNumber, [{
249
+ key: "render",
250
+ value: function render() {
251
+ var props = {};
252
+ props.type = 'tel';
253
+ props.className = 'form-control';
254
+ props.name = this.props.data.field_name;
255
+ props.placeholder = this.props.data.placeholder;
256
+ if (this.props.mutable) {
257
+ props.defaultValue = this.props.defaultValue;
258
+ props.ref = this.inputField;
259
+ }
260
+ var baseClasses = 'SortableItem rfb-item';
261
+ if (this.props.data.pageBreakBefore) {
262
+ baseClasses += ' alwaysbreak';
263
+ }
264
+ if (this.props.read_only) {
265
+ props.disabled = 'disabled';
266
+ }
267
+ return /*#__PURE__*/_react["default"].createElement("div", {
268
+ style: _objectSpread({}, this.props.style),
269
+ className: baseClasses
270
+ }, /*#__PURE__*/_react["default"].createElement(_componentHeader["default"], this.props), /*#__PURE__*/_react["default"].createElement("div", {
271
+ className: "form-floating"
272
+ }, /*#__PURE__*/_react["default"].createElement(_componentLabel["default"], this.props), /*#__PURE__*/_react["default"].createElement("input", props)));
273
+ }
274
+ }]);
275
+ return PhoneNumber;
276
+ }(_react["default"].Component);
277
+ var NumberInput = /*#__PURE__*/function (_React$Component8) {
278
+ (0, _inherits2["default"])(NumberInput, _React$Component8);
279
+ var _super8 = _createSuper(NumberInput);
280
+ function NumberInput(props) {
281
+ var _this4;
282
+ (0, _classCallCheck2["default"])(this, NumberInput);
283
+ _this4 = _super8.call(this, props);
284
+ _this4.inputField = /*#__PURE__*/_react["default"].createRef();
285
+ return _this4;
286
+ }
287
+ (0, _createClass2["default"])(NumberInput, [{
288
+ key: "render",
289
+ value: function render() {
290
+ var props = {};
291
+ props.type = 'number';
292
+ props.className = 'form-control';
293
+ props.name = this.props.data.field_name;
294
+ props.placeholder = this.props.data.placeholder;
295
+ if (this.props.mutable) {
296
+ props.defaultValue = this.props.defaultValue;
297
+ props.ref = this.inputField;
298
+ }
299
+ if (this.props.read_only) {
300
+ props.disabled = 'disabled';
301
+ }
302
+ var baseClasses = 'SortableItem rfb-item';
303
+ if (this.props.data.pageBreakBefore) {
304
+ baseClasses += ' alwaysbreak';
305
+ }
306
+ return /*#__PURE__*/_react["default"].createElement("div", {
307
+ style: _objectSpread({}, this.props.style),
308
+ className: baseClasses
309
+ }, /*#__PURE__*/_react["default"].createElement(_componentHeader["default"], this.props), /*#__PURE__*/_react["default"].createElement("div", {
310
+ className: "form-floating"
311
+ }, /*#__PURE__*/_react["default"].createElement(_componentLabel["default"], this.props), /*#__PURE__*/_react["default"].createElement("input", props)));
312
+ }
313
+ }]);
314
+ return NumberInput;
315
+ }(_react["default"].Component);
316
+ var TextArea = /*#__PURE__*/function (_React$Component9) {
317
+ (0, _inherits2["default"])(TextArea, _React$Component9);
318
+ var _super9 = _createSuper(TextArea);
319
+ function TextArea(props) {
320
+ var _this5;
321
+ (0, _classCallCheck2["default"])(this, TextArea);
322
+ _this5 = _super9.call(this, props);
323
+ _this5.inputField = /*#__PURE__*/_react["default"].createRef();
324
+ return _this5;
325
+ }
326
+ (0, _createClass2["default"])(TextArea, [{
327
+ key: "render",
328
+ value: function render() {
329
+ var props = {};
330
+ props.className = 'form-control';
331
+ props.name = this.props.data.field_name;
332
+ props.placeholder = this.props.data.placeholder;
333
+ if (this.props.read_only) {
334
+ props.disabled = 'disabled';
335
+ }
336
+ if (this.props.mutable) {
337
+ props.defaultValue = this.props.defaultValue;
338
+ props.ref = this.inputField;
339
+ }
340
+ var baseClasses = 'SortableItem rfb-item';
341
+ if (this.props.data.pageBreakBefore) {
342
+ baseClasses += ' alwaysbreak';
343
+ }
344
+ return /*#__PURE__*/_react["default"].createElement("div", {
345
+ style: _objectSpread({}, this.props.style),
346
+ className: baseClasses
347
+ }, /*#__PURE__*/_react["default"].createElement(_componentHeader["default"], this.props), /*#__PURE__*/_react["default"].createElement("div", {
348
+ className: "form-floating"
349
+ }, /*#__PURE__*/_react["default"].createElement(_componentLabel["default"], this.props), /*#__PURE__*/_react["default"].createElement("textarea", props)));
350
+ }
351
+ }]);
352
+ return TextArea;
353
+ }(_react["default"].Component);
354
+ var Dropdown = /*#__PURE__*/function (_React$Component10) {
355
+ (0, _inherits2["default"])(Dropdown, _React$Component10);
356
+ var _super10 = _createSuper(Dropdown);
357
+ function Dropdown(props) {
358
+ var _this6;
359
+ (0, _classCallCheck2["default"])(this, Dropdown);
360
+ _this6 = _super10.call(this, props);
361
+ _this6.inputField = /*#__PURE__*/_react["default"].createRef();
362
+ return _this6;
363
+ }
364
+ (0, _createClass2["default"])(Dropdown, [{
365
+ key: "render",
366
+ value: function render() {
367
+ var props = {};
368
+ props.className = 'form-select';
369
+ props.name = this.props.data.field_name;
370
+ if (this.props.mutable) {
371
+ props.defaultValue = this.props.defaultValue;
372
+ props.ref = this.inputField;
373
+ }
374
+ if (this.props.read_only) {
375
+ props.disabled = 'disabled';
376
+ }
377
+ var baseClasses = 'SortableItem rfb-item';
378
+ if (this.props.data.pageBreakBefore) {
379
+ baseClasses += ' alwaysbreak';
380
+ }
381
+ return /*#__PURE__*/_react["default"].createElement("div", {
382
+ style: _objectSpread({}, this.props.style),
383
+ className: baseClasses
384
+ }, /*#__PURE__*/_react["default"].createElement(_componentHeader["default"], this.props), /*#__PURE__*/_react["default"].createElement("div", {
385
+ className: "form-floating"
386
+ }, /*#__PURE__*/_react["default"].createElement(_componentLabel["default"], this.props), /*#__PURE__*/_react["default"].createElement("select", props, this.props.data.options.map(function (option) {
387
+ var this_key = "preview_".concat(option.key);
388
+ return /*#__PURE__*/_react["default"].createElement("option", {
389
+ value: option.value,
390
+ key: this_key
391
+ }, option.text);
392
+ }))));
393
+ }
394
+ }]);
395
+ return Dropdown;
396
+ }(_react["default"].Component);
397
+ var Signature = /*#__PURE__*/function (_React$Component11) {
398
+ (0, _inherits2["default"])(Signature, _React$Component11);
399
+ var _super11 = _createSuper(Signature);
400
+ function Signature(props) {
401
+ var _this7;
402
+ (0, _classCallCheck2["default"])(this, Signature);
403
+ _this7 = _super11.call(this, props);
404
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this7), "clear", function () {
405
+ if (_this7.state.defaultValue) {
406
+ _this7.setState({
407
+ defaultValue: ''
408
+ });
409
+ } else if (_this7.canvas.current) {
410
+ _this7.canvas.current.clear();
411
+ }
412
+ });
413
+ _this7.state = {
414
+ defaultValue: props.defaultValue
415
+ };
416
+ _this7.inputField = /*#__PURE__*/_react["default"].createRef();
417
+ _this7.canvas = /*#__PURE__*/_react["default"].createRef();
418
+ return _this7;
419
+ }
420
+ (0, _createClass2["default"])(Signature, [{
421
+ key: "render",
422
+ value: function render() {
423
+ var defaultValue = this.state.defaultValue;
424
+ var canClear = !!defaultValue;
425
+ var props = {};
426
+ props.type = 'hidden';
427
+ props.name = this.props.data.field_name;
428
+ if (this.props.mutable) {
429
+ props.defaultValue = defaultValue;
430
+ props.ref = this.inputField;
431
+ }
432
+ var pad_props = {};
433
+ // umd requires canvasProps={{ width: 400, height: 150 }}
434
+ if (this.props.mutable) {
435
+ pad_props.defaultValue = defaultValue;
436
+ pad_props.ref = this.canvas;
437
+ canClear = !this.props.read_only;
438
+ }
439
+ var baseClasses = 'SortableItem rfb-item';
440
+ if (this.props.data.pageBreakBefore) {
441
+ baseClasses += ' alwaysbreak';
442
+ }
443
+ var sourceDataURL;
444
+ if (defaultValue && defaultValue.length > 0) {
445
+ sourceDataURL = "data:image/png;base64,".concat(defaultValue);
446
+ }
447
+ return /*#__PURE__*/_react["default"].createElement("div", {
448
+ style: _objectSpread({}, this.props.style),
449
+ className: baseClasses
450
+ }, /*#__PURE__*/_react["default"].createElement(_componentHeader["default"], this.props), /*#__PURE__*/_react["default"].createElement("div", {
451
+ className: "form-floating"
452
+ }, /*#__PURE__*/_react["default"].createElement(_componentLabel["default"], this.props), this.props.read_only === true || !!sourceDataURL ? /*#__PURE__*/_react["default"].createElement("img", {
453
+ src: sourceDataURL
454
+ }) : /*#__PURE__*/_react["default"].createElement(_reactSignatureCanvas["default"], pad_props), canClear && /*#__PURE__*/_react["default"].createElement(_fa.FaTimes, {
455
+ className: "clear-signature",
456
+ onClick: this.clear,
457
+ title: "Clear Signature"
458
+ }), /*#__PURE__*/_react["default"].createElement("input", props)));
459
+ }
460
+ }]);
461
+ return Signature;
462
+ }(_react["default"].Component);
463
+ var Tags = /*#__PURE__*/function (_React$Component12) {
464
+ (0, _inherits2["default"])(Tags, _React$Component12);
465
+ var _super12 = _createSuper(Tags);
466
+ function Tags(props) {
467
+ var _this8;
468
+ (0, _classCallCheck2["default"])(this, Tags);
469
+ _this8 = _super12.call(this, props);
470
+ // state = { value: this.props.defaultValue !== undefined ? this.props.defaultValue.split(',') : [] };
471
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this8), "handleChange", function (e) {
472
+ _this8.setState({
473
+ value: e || []
474
+ });
475
+ });
476
+ _this8.inputField = /*#__PURE__*/_react["default"].createRef();
477
+ var defaultValue = props.defaultValue,
478
+ data = props.data;
479
+ _this8.state = {
480
+ value: _this8.getDefaultValue(defaultValue, data.options)
481
+ };
482
+ return _this8;
483
+ }
484
+ (0, _createClass2["default"])(Tags, [{
485
+ key: "getDefaultValue",
486
+ value: function getDefaultValue(defaultValue, options) {
487
+ if (defaultValue) {
488
+ if (typeof defaultValue === 'string') {
489
+ var vals = defaultValue.split(',').map(function (x) {
490
+ return x.trim();
491
+ });
492
+ return options.filter(function (x) {
493
+ return vals.indexOf(x.value) > -1;
494
+ });
495
+ }
496
+ return options.filter(function (x) {
497
+ return defaultValue.indexOf(x.value) > -1;
498
+ });
499
+ }
500
+ return [];
501
+ }
502
+ }, {
503
+ key: "render",
504
+ value: function render() {
505
+ var options = this.props.data.options.map(function (option) {
506
+ option.label = option.text;
507
+ return option;
508
+ });
509
+ var props = {};
510
+ props.isMulti = true;
511
+ props.name = this.props.data.field_name;
512
+ props.onChange = this.handleChange;
513
+ props.options = options;
514
+ if (!this.props.mutable) {
515
+ props.value = options[0].text;
516
+ } // to show a sample of what tags looks like
517
+ if (this.props.mutable) {
518
+ props.isDisabled = this.props.read_only;
519
+ props.value = this.state.value;
520
+ props.ref = this.inputField;
521
+ }
522
+ var baseClasses = 'SortableItem rfb-item';
523
+ if (this.props.data.pageBreakBefore) {
524
+ baseClasses += ' alwaysbreak';
525
+ }
526
+ return /*#__PURE__*/_react["default"].createElement("div", {
527
+ style: _objectSpread({}, this.props.style),
528
+ className: baseClasses
529
+ }, /*#__PURE__*/_react["default"].createElement(_componentHeader["default"], this.props), /*#__PURE__*/_react["default"].createElement("div", {
530
+ className: "form-floating"
531
+ }, /*#__PURE__*/_react["default"].createElement(_componentLabel["default"], this.props), /*#__PURE__*/_react["default"].createElement(_reactSelect["default"], props)));
532
+ }
533
+ }]);
534
+ return Tags;
535
+ }(_react["default"].Component);
536
+ var Checkboxes = /*#__PURE__*/function (_React$Component13) {
537
+ (0, _inherits2["default"])(Checkboxes, _React$Component13);
538
+ var _super13 = _createSuper(Checkboxes);
539
+ function Checkboxes(props) {
540
+ var _this9;
541
+ (0, _classCallCheck2["default"])(this, Checkboxes);
542
+ _this9 = _super13.call(this, props);
543
+ _this9.options = {};
544
+ return _this9;
545
+ }
546
+ (0, _createClass2["default"])(Checkboxes, [{
547
+ key: "render",
548
+ value: function render() {
549
+ var _this10 = this;
550
+ var self = this;
551
+ var classNames = 'custom-control custom-checkbox';
552
+ if (this.props.data.inline) {
553
+ classNames += ' option-inline';
554
+ }
555
+ var baseClasses = 'SortableItem rfb-item';
556
+ if (this.props.data.pageBreakBefore) {
557
+ baseClasses += ' alwaysbreak';
558
+ }
559
+ return /*#__PURE__*/_react["default"].createElement("div", {
560
+ style: _objectSpread({}, this.props.style),
561
+ className: baseClasses
562
+ }, /*#__PURE__*/_react["default"].createElement(_componentHeader["default"], this.props), /*#__PURE__*/_react["default"].createElement("div", {
563
+ className: "form-group"
564
+ }, /*#__PURE__*/_react["default"].createElement(_componentLabel["default"], this.props), this.props.data.options.map(function (option) {
565
+ var this_key = "preview_".concat(option.key);
566
+ var props = {};
567
+ props.name = "option_".concat(option.key);
568
+ props.type = 'checkbox';
569
+ props.value = option.value;
570
+ if (self.props.mutable) {
571
+ props.defaultChecked = self.props.defaultValue !== undefined && self.props.defaultValue.indexOf(option.key) > -1;
572
+ }
573
+ if (_this10.props.read_only) {
574
+ props.disabled = 'disabled';
575
+ }
576
+ return /*#__PURE__*/_react["default"].createElement("div", {
577
+ className: classNames,
578
+ key: this_key
579
+ }, /*#__PURE__*/_react["default"].createElement("input", (0, _extends2["default"])({
580
+ id: "fid_".concat(this_key),
581
+ className: "custom-control-input",
582
+ ref: function ref(c) {
583
+ if (c && self.props.mutable) {
584
+ self.options["child_ref_".concat(option.key)] = c;
585
+ }
586
+ }
587
+ }, props)), /*#__PURE__*/_react["default"].createElement("label", {
588
+ className: "custom-control-label",
589
+ htmlFor: "fid_".concat(this_key)
590
+ }, option.text));
591
+ })));
592
+ }
593
+ }]);
594
+ return Checkboxes;
595
+ }(_react["default"].Component);
596
+ var Checkbox = /*#__PURE__*/function (_React$Component14) {
597
+ (0, _inherits2["default"])(Checkbox, _React$Component14);
598
+ var _super14 = _createSuper(Checkbox);
599
+ function Checkbox(props) {
600
+ var _this11;
601
+ (0, _classCallCheck2["default"])(this, Checkbox);
602
+ _this11 = _super14.call(this, props);
603
+ _this11.inputField = /*#__PURE__*/_react["default"].createRef();
604
+ return _this11;
605
+ }
606
+ (0, _createClass2["default"])(Checkbox, [{
607
+ key: "render",
608
+ value: function render() {
609
+ var classNames = 'custom-control custom-checkbox';
610
+ // if (this.props.data.inline) { classNames += ' option-inline'; }
611
+
612
+ var baseClasses = 'SortableItem rfb-item';
613
+ if (this.props.data.pageBreakBefore) {
614
+ baseClasses += ' alwaysbreak';
615
+ }
616
+ var props = {};
617
+ // eslint-disable-next-line no-undef
618
+ props.name = this.props.data.field_name;
619
+ props.type = 'checkbox';
620
+ props.defaultChecked = this.props.data.defaultChecked;
621
+ if (this.props.mutable) {
622
+ props.ref = this.inputField;
623
+ }
624
+ if (this.props.read_only) {
625
+ props.disabled = 'disabled';
626
+ }
627
+ return /*#__PURE__*/_react["default"].createElement("div", {
628
+ style: _objectSpread({}, this.props.style),
629
+ className: baseClasses
630
+ }, /*#__PURE__*/_react["default"].createElement(_componentHeader["default"], this.props), /*#__PURE__*/_react["default"].createElement("div", {
631
+ className: "form-group"
632
+ }, /*#__PURE__*/_react["default"].createElement(_componentLabel["default"], (0, _extends2["default"])({
633
+ className: "form-label"
634
+ }, this.props)), /*#__PURE__*/_react["default"].createElement("div", {
635
+ className: classNames
636
+ }, /*#__PURE__*/_react["default"].createElement("input", (0, _extends2["default"])({
637
+ id: this.props.data.field_name,
638
+ className: "custom-control-input"
639
+ }, props)), /*#__PURE__*/_react["default"].createElement("label", {
640
+ className: "custom-control-label",
641
+ htmlFor: this.props.data.field_name,
642
+ dangerouslySetInnerHTML: {
643
+ __html: this.props.data.boxLabel
644
+ }
645
+ }))));
646
+ }
647
+ }]);
648
+ return Checkbox;
649
+ }(_react["default"].Component);
650
+ var RadioButtons = /*#__PURE__*/function (_React$Component15) {
651
+ (0, _inherits2["default"])(RadioButtons, _React$Component15);
652
+ var _super15 = _createSuper(RadioButtons);
653
+ function RadioButtons(props) {
654
+ var _this12;
655
+ (0, _classCallCheck2["default"])(this, RadioButtons);
656
+ _this12 = _super15.call(this, props);
657
+ _this12.options = {};
658
+ return _this12;
659
+ }
660
+ (0, _createClass2["default"])(RadioButtons, [{
661
+ key: "render",
662
+ value: function render() {
663
+ var _this13 = this;
664
+ var self = this;
665
+ var classNames = 'custom-control custom-radio';
666
+ if (this.props.data.inline) {
667
+ classNames += ' option-inline';
668
+ }
669
+ var baseClasses = 'SortableItem rfb-item';
670
+ if (this.props.data.pageBreakBefore) {
671
+ baseClasses += ' alwaysbreak';
672
+ }
673
+ return /*#__PURE__*/_react["default"].createElement("div", {
674
+ style: _objectSpread({}, this.props.style),
675
+ className: baseClasses
676
+ }, /*#__PURE__*/_react["default"].createElement(_componentHeader["default"], this.props), /*#__PURE__*/_react["default"].createElement("div", {
677
+ className: "form-group"
678
+ }, /*#__PURE__*/_react["default"].createElement(_componentLabel["default"], this.props), this.props.data.options.map(function (option) {
679
+ var this_key = "preview_".concat(option.key);
680
+ var props = {};
681
+ props.name = self.props.data.field_name;
682
+ props.type = 'radio';
683
+ props.value = option.value;
684
+ if (self.props.mutable) {
685
+ props.defaultChecked = self.props.defaultValue !== undefined && (self.props.defaultValue.indexOf(option.key) > -1 || self.props.defaultValue.indexOf(option.value) > -1);
686
+ }
687
+ if (_this13.props.read_only) {
688
+ props.disabled = 'disabled';
689
+ }
690
+ return /*#__PURE__*/_react["default"].createElement("div", {
691
+ className: classNames,
692
+ key: this_key
693
+ }, /*#__PURE__*/_react["default"].createElement("input", (0, _extends2["default"])({
694
+ id: "fid_".concat(this_key),
695
+ className: "custom-control-input",
696
+ ref: function ref(c) {
697
+ if (c && self.props.mutable) {
698
+ self.options["child_ref_".concat(option.key)] = c;
699
+ }
700
+ }
701
+ }, props)), /*#__PURE__*/_react["default"].createElement("label", {
702
+ className: "custom-control-label",
703
+ htmlFor: "fid_".concat(this_key)
704
+ }, option.text));
705
+ })));
706
+ }
707
+ }]);
708
+ return RadioButtons;
709
+ }(_react["default"].Component);
710
+ var Image = /*#__PURE__*/function (_React$Component16) {
711
+ (0, _inherits2["default"])(Image, _React$Component16);
712
+ var _super16 = _createSuper(Image);
713
+ function Image() {
714
+ (0, _classCallCheck2["default"])(this, Image);
715
+ return _super16.apply(this, arguments);
716
+ }
717
+ (0, _createClass2["default"])(Image, [{
718
+ key: "render",
719
+ value: function render() {
720
+ var style = this.props.data.center ? {
721
+ textAlign: 'center'
722
+ } : null;
723
+ var baseClasses = 'SortableItem rfb-item';
724
+ if (this.props.data.pageBreakBefore) {
725
+ baseClasses += ' alwaysbreak';
726
+ }
727
+ return /*#__PURE__*/_react["default"].createElement("div", {
728
+ style: _objectSpread(_objectSpread({}, this.props.style), style),
729
+ className: baseClasses
730
+ }, /*#__PURE__*/_react["default"].createElement(_componentHeader["default"], this.props), this.props.data.src && /*#__PURE__*/_react["default"].createElement("img", {
731
+ src: this.props.data.src,
732
+ width: this.props.data.width,
733
+ height: this.props.data.height
734
+ }), !this.props.data.src && /*#__PURE__*/_react["default"].createElement("div", {
735
+ className: "no-image"
736
+ }, "No Image"));
737
+ }
738
+ }]);
739
+ return Image;
740
+ }(_react["default"].Component);
741
+ var Rating = /*#__PURE__*/function (_React$Component17) {
742
+ (0, _inherits2["default"])(Rating, _React$Component17);
743
+ var _super17 = _createSuper(Rating);
744
+ function Rating(props) {
745
+ var _this14;
746
+ (0, _classCallCheck2["default"])(this, Rating);
747
+ _this14 = _super17.call(this, props);
748
+ _this14.inputField = /*#__PURE__*/_react["default"].createRef();
749
+ return _this14;
750
+ }
751
+ (0, _createClass2["default"])(Rating, [{
752
+ key: "render",
753
+ value: function render() {
754
+ var props = {};
755
+ props.name = this.props.data.field_name;
756
+ props.ratingAmount = 5;
757
+ if (this.props.mutable) {
758
+ props.rating = this.props.defaultValue !== undefined ? parseFloat(this.props.defaultValue, 10) : 0;
759
+ props.editing = true;
760
+ props.disabled = this.props.read_only;
761
+ props.ref = this.inputField;
762
+ }
763
+ var baseClasses = 'SortableItem rfb-item';
764
+ if (this.props.data.pageBreakBefore) {
765
+ baseClasses += ' alwaysbreak';
766
+ }
767
+ return /*#__PURE__*/_react["default"].createElement("div", {
768
+ style: _objectSpread({}, this.props.style),
769
+ className: baseClasses
770
+ }, /*#__PURE__*/_react["default"].createElement(_componentHeader["default"], this.props), /*#__PURE__*/_react["default"].createElement("div", {
771
+ className: "form-group"
772
+ }, /*#__PURE__*/_react["default"].createElement(_componentLabel["default"], this.props), /*#__PURE__*/_react["default"].createElement(_starRating["default"], props)));
773
+ }
774
+ }]);
775
+ return Rating;
776
+ }(_react["default"].Component);
777
+ var HyperLink = /*#__PURE__*/function (_React$Component18) {
778
+ (0, _inherits2["default"])(HyperLink, _React$Component18);
779
+ var _super18 = _createSuper(HyperLink);
780
+ function HyperLink() {
781
+ (0, _classCallCheck2["default"])(this, HyperLink);
782
+ return _super18.apply(this, arguments);
783
+ }
784
+ (0, _createClass2["default"])(HyperLink, [{
785
+ key: "render",
786
+ value: function render() {
787
+ var baseClasses = 'SortableItem rfb-item';
788
+ if (this.props.data.pageBreakBefore) {
789
+ baseClasses += ' alwaysbreak';
790
+ }
791
+ return /*#__PURE__*/_react["default"].createElement("div", {
792
+ style: _objectSpread({}, this.props.style),
793
+ className: baseClasses
794
+ }, /*#__PURE__*/_react["default"].createElement(_componentHeader["default"], this.props), /*#__PURE__*/_react["default"].createElement("div", {
795
+ className: "form-group"
796
+ }, /*#__PURE__*/_react["default"].createElement("label", {
797
+ className: 'form-label'
798
+ }, /*#__PURE__*/_react["default"].createElement("a", {
799
+ target: "_blank",
800
+ href: this.props.data.href,
801
+ dangerouslySetInnerHTML: {
802
+ __html: _myxss["default"].process(this.props.data.content)
803
+ }
804
+ }))));
805
+ }
806
+ }]);
807
+ return HyperLink;
808
+ }(_react["default"].Component);
809
+ var Download = /*#__PURE__*/function (_React$Component19) {
810
+ (0, _inherits2["default"])(Download, _React$Component19);
811
+ var _super19 = _createSuper(Download);
812
+ function Download() {
813
+ (0, _classCallCheck2["default"])(this, Download);
814
+ return _super19.apply(this, arguments);
815
+ }
816
+ (0, _createClass2["default"])(Download, [{
817
+ key: "render",
818
+ value: function render() {
819
+ var baseClasses = 'SortableItem rfb-item';
820
+ if (this.props.data.pageBreakBefore) {
821
+ baseClasses += ' alwaysbreak';
822
+ }
823
+ return /*#__PURE__*/_react["default"].createElement("div", {
824
+ style: _objectSpread({}, this.props.style),
825
+ className: baseClasses
826
+ }, /*#__PURE__*/_react["default"].createElement(_componentHeader["default"], this.props), /*#__PURE__*/_react["default"].createElement("div", {
827
+ className: "form-group"
828
+ }, /*#__PURE__*/_react["default"].createElement("a", {
829
+ href: "".concat(this.props.download_path, "?id=").concat(this.props.data.file_path)
830
+ }, this.props.data.content)));
831
+ }
832
+ }]);
833
+ return Download;
834
+ }(_react["default"].Component);
835
+ var Camera = /*#__PURE__*/function (_React$Component20) {
836
+ (0, _inherits2["default"])(Camera, _React$Component20);
837
+ var _super20 = _createSuper(Camera);
838
+ function Camera(props) {
839
+ var _this15;
840
+ (0, _classCallCheck2["default"])(this, Camera);
841
+ _this15 = _super20.call(this, props);
842
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this15), "displayImage", function (e) {
843
+ var self = (0, _assertThisInitialized2["default"])(_this15);
844
+ var target = e.target;
845
+ if (target.files && target.files.length) {
846
+ self.setState({
847
+ img: target.files[0],
848
+ previewImg: URL.createObjectURL(target.files[0])
849
+ });
850
+ }
851
+ });
852
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this15), "clearImage", function () {
853
+ _this15.setState({
854
+ img: null,
855
+ previewImg: null
856
+ });
857
+ });
858
+ _this15.state = {
859
+ img: null,
860
+ previewImg: null
861
+ };
862
+ return _this15;
863
+ }
864
+ (0, _createClass2["default"])(Camera, [{
865
+ key: "getImageSizeProps",
866
+ value: function getImageSizeProps(_ref) {
867
+ var width = _ref.width,
868
+ height = _ref.height;
869
+ var imgProps = {
870
+ width: '100%'
871
+ };
872
+ if (width) {
873
+ imgProps.width = width < window.innerWidth ? width : 0.9 * window.innerWidth;
874
+ }
875
+ if (height) {
876
+ imgProps.height = height;
877
+ }
878
+ return imgProps;
879
+ }
880
+ }, {
881
+ key: "render",
882
+ value: function render() {
883
+ var _this16 = this;
884
+ var imageStyle = {
885
+ objectFit: 'scale-down',
886
+ objectPosition: this.props.data.center ? 'center' : 'left'
887
+ };
888
+ var baseClasses = 'SortableItem rfb-item';
889
+ var name = this.props.data.field_name;
890
+ var fileInputStyle = this.state.img ? {
891
+ display: 'none'
892
+ } : null;
893
+ if (this.props.data.pageBreakBefore) {
894
+ baseClasses += ' alwaysbreak';
895
+ }
896
+ var sourceDataURL;
897
+ if (this.props.read_only === true && this.props.defaultValue && this.props.defaultValue.length > 0) {
898
+ if (this.props.defaultValue.indexOf(name > -1)) {
899
+ sourceDataURL = this.props.defaultValue;
900
+ } else {
901
+ sourceDataURL = "data:image/png;base64,".concat(this.props.defaultValue);
902
+ }
903
+ }
904
+ return /*#__PURE__*/_react["default"].createElement("div", {
905
+ style: _objectSpread({}, this.props.style),
906
+ className: baseClasses
907
+ }, /*#__PURE__*/_react["default"].createElement(_componentHeader["default"], this.props), /*#__PURE__*/_react["default"].createElement("div", {
908
+ className: "form-group"
909
+ }, /*#__PURE__*/_react["default"].createElement(_componentLabel["default"], this.props), this.props.read_only === true && this.props.defaultValue && this.props.defaultValue.length > 0 ? /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("img", (0, _extends2["default"])({
910
+ style: imageStyle,
911
+ src: sourceDataURL
912
+ }, this.getImageSizeProps(this.props.data)))) : /*#__PURE__*/_react["default"].createElement("div", {
913
+ className: "image-upload-container"
914
+ }, /*#__PURE__*/_react["default"].createElement("div", {
915
+ style: fileInputStyle
916
+ }, /*#__PURE__*/_react["default"].createElement("input", {
917
+ name: name,
918
+ type: "file",
919
+ accept: "image/*",
920
+ capture: "camera",
921
+ className: "image-upload",
922
+ onChange: this.displayImage
923
+ }), /*#__PURE__*/_react["default"].createElement("div", {
924
+ className: "image-upload-control"
925
+ }, /*#__PURE__*/_react["default"].createElement("div", {
926
+ className: "btn btn-default"
927
+ }, /*#__PURE__*/_react["default"].createElement("i", {
928
+ className: "fas fa-camera"
929
+ }), " Upload Photo"), /*#__PURE__*/_react["default"].createElement("p", null, "Select an image from your computer or device."))), this.state.img && /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("img", {
930
+ onLoad: function onLoad() {
931
+ return URL.revokeObjectURL(_this16.state.previewImg);
932
+ },
933
+ src: this.state.previewImg,
934
+ height: "100",
935
+ className: "image-upload-preview"
936
+ }), /*#__PURE__*/_react["default"].createElement("br", null), /*#__PURE__*/_react["default"].createElement("div", {
937
+ className: "btn btn-image-clear",
938
+ onClick: this.clearImage
939
+ }, /*#__PURE__*/_react["default"].createElement("i", {
940
+ className: "fas fa-times"
941
+ }), " Clear Photo")))));
942
+ }
943
+ }]);
944
+ return Camera;
945
+ }(_react["default"].Component);
946
+ var FileUpload = /*#__PURE__*/function (_React$Component21) {
947
+ (0, _inherits2["default"])(FileUpload, _React$Component21);
948
+ var _super21 = _createSuper(FileUpload);
949
+ function FileUpload(props) {
950
+ var _this17;
951
+ (0, _classCallCheck2["default"])(this, FileUpload);
952
+ _this17 = _super21.call(this, props);
953
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this17), "displayFileUpload", function (e) {
954
+ var self = (0, _assertThisInitialized2["default"])(_this17);
955
+ var target = e.target;
956
+ var file;
957
+ if (target.files && target.files.length > 0) {
958
+ file = target.files[0];
959
+ self.setState({
960
+ fileUpload: file
961
+ });
962
+ }
963
+ });
964
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this17), "clearFileUpload", function () {
965
+ _this17.setState({
966
+ fileUpload: null
967
+ });
968
+ });
969
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this17), "saveFile", /*#__PURE__*/function () {
970
+ var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(e) {
971
+ var sourceUrl, response, dispositionHeader, resBlob, blob, fileName, _fileName;
972
+ return _regenerator["default"].wrap(function _callee$(_context) {
973
+ while (1) switch (_context.prev = _context.next) {
974
+ case 0:
975
+ e.preventDefault();
976
+ sourceUrl = _this17.props.defaultValue;
977
+ _context.next = 4;
978
+ return (0, _isomorphicFetch["default"])(sourceUrl, {
979
+ method: 'GET',
980
+ headers: {
981
+ Accept: 'application/json',
982
+ 'Content-Type': 'application/json; charset=utf-8'
983
+ },
984
+ responseType: 'blob'
985
+ });
986
+ case 4:
987
+ response = _context.sent;
988
+ dispositionHeader = response.headers.get('Content-Disposition');
989
+ _context.next = 8;
990
+ return response.blob();
991
+ case 8:
992
+ resBlob = _context.sent;
993
+ // eslint-disable-next-line no-undef
994
+ blob = new Blob([resBlob], {
995
+ type: _this17.props.data.fileType || response.headers.get('Content-Type')
996
+ });
997
+ if (dispositionHeader && dispositionHeader.indexOf(';filename=') > -1) {
998
+ fileName = dispositionHeader.split(';filename=')[1];
999
+ (0, _fileSaver.saveAs)(blob, fileName);
1000
+ } else {
1001
+ _fileName = sourceUrl.substring(sourceUrl.lastIndexOf('/') + 1);
1002
+ (0, _fileSaver.saveAs)(response.url, _fileName);
1003
+ }
1004
+ case 11:
1005
+ case "end":
1006
+ return _context.stop();
1007
+ }
1008
+ }, _callee);
1009
+ }));
1010
+ return function (_x) {
1011
+ return _ref2.apply(this, arguments);
1012
+ };
1013
+ }());
1014
+ _this17.state = {
1015
+ fileUpload: null
1016
+ };
1017
+ return _this17;
1018
+ }
1019
+ (0, _createClass2["default"])(FileUpload, [{
1020
+ key: "render",
1021
+ value: function render() {
1022
+ var baseClasses = 'SortableItem rfb-item';
1023
+ var name = this.props.data.field_name;
1024
+ var fileInputStyle = this.state.fileUpload ? {
1025
+ display: 'none'
1026
+ } : null;
1027
+ if (this.props.data.pageBreakBefore) {
1028
+ baseClasses += ' alwaysbreak';
1029
+ }
1030
+ return /*#__PURE__*/_react["default"].createElement("div", {
1031
+ style: _objectSpread({}, this.props.style),
1032
+ className: baseClasses
1033
+ }, /*#__PURE__*/_react["default"].createElement(_componentHeader["default"], this.props), /*#__PURE__*/_react["default"].createElement("div", {
1034
+ className: "form-group"
1035
+ }, /*#__PURE__*/_react["default"].createElement(_componentLabel["default"], this.props), this.props.read_only === true && this.props.defaultValue && this.props.defaultValue.length > 0 ? /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("button", {
1036
+ className: "btn btn-default",
1037
+ onClick: this.saveFile
1038
+ }, /*#__PURE__*/_react["default"].createElement("i", {
1039
+ className: "fas fa-download"
1040
+ }), " Download File")) : /*#__PURE__*/_react["default"].createElement("div", {
1041
+ className: "image-upload-container"
1042
+ }, /*#__PURE__*/_react["default"].createElement("div", {
1043
+ style: fileInputStyle
1044
+ }, /*#__PURE__*/_react["default"].createElement("input", {
1045
+ name: name,
1046
+ type: "file",
1047
+ accept: this.props.data.fileType || '*',
1048
+ className: "image-upload",
1049
+ onChange: this.displayFileUpload
1050
+ }), /*#__PURE__*/_react["default"].createElement("div", {
1051
+ className: "image-upload-control"
1052
+ }, /*#__PURE__*/_react["default"].createElement("div", {
1053
+ className: "btn btn-default"
1054
+ }, /*#__PURE__*/_react["default"].createElement("i", {
1055
+ className: "fas fa-file"
1056
+ }), " Upload File"), /*#__PURE__*/_react["default"].createElement("p", null, "Select a file from your computer or device."))), this.state.fileUpload && /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("div", {
1057
+ className: "file-upload-preview"
1058
+ }, /*#__PURE__*/_react["default"].createElement("div", {
1059
+ style: {
1060
+ display: 'inline-block',
1061
+ marginRight: '5px'
1062
+ }
1063
+ }, "Name: ".concat(this.state.fileUpload.name)), /*#__PURE__*/_react["default"].createElement("div", {
1064
+ style: {
1065
+ display: 'inline-block',
1066
+ marginLeft: '5px'
1067
+ }
1068
+ }, this.state.fileUpload.size.length > 6 ? "Size: ".concat(Math.ceil(this.state.fileUpload.size / (1024 * 1024)), " mb") : "Size: ".concat(Math.ceil(this.state.fileUpload.size / 1024), " kb"))), /*#__PURE__*/_react["default"].createElement("br", null), /*#__PURE__*/_react["default"].createElement("div", {
1069
+ className: "btn btn-file-upload-clear",
1070
+ onClick: this.clearFileUpload
1071
+ }, /*#__PURE__*/_react["default"].createElement("i", {
1072
+ className: "fas fa-times"
1073
+ }), " Clear File")))));
1074
+ }
1075
+ }]);
1076
+ return FileUpload;
1077
+ }(_react["default"].Component);
1078
+ var Range = /*#__PURE__*/function (_React$Component22) {
1079
+ (0, _inherits2["default"])(Range, _React$Component22);
1080
+ var _super22 = _createSuper(Range);
1081
+ function Range(props) {
1082
+ var _this18;
1083
+ (0, _classCallCheck2["default"])(this, Range);
1084
+ _this18 = _super22.call(this, props);
1085
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this18), "changeValue", function (e) {
1086
+ var target = e.target;
1087
+ _this18.setState({
1088
+ value: target.value
1089
+ });
1090
+ });
1091
+ _this18.inputField = /*#__PURE__*/_react["default"].createRef();
1092
+ _this18.state = {
1093
+ value: props.defaultValue !== undefined ? parseInt(props.defaultValue, 10) : parseInt(props.data.default_value, 10)
1094
+ };
1095
+ return _this18;
1096
+ }
1097
+ (0, _createClass2["default"])(Range, [{
1098
+ key: "render",
1099
+ value: function render() {
1100
+ var props = {};
1101
+ var name = this.props.data.field_name;
1102
+ props.type = 'range';
1103
+ props.list = "tickmarks_".concat(name);
1104
+ props.min = this.props.data.min_value;
1105
+ props.max = this.props.data.max_value;
1106
+ props.step = this.props.data.step;
1107
+ props.value = this.state.value;
1108
+ props.onChange = this.changeValue;
1109
+ if (this.props.mutable) {
1110
+ props.ref = this.inputField;
1111
+ }
1112
+ var datalist = [];
1113
+ for (var i = parseInt(props.min, 10); i <= parseInt(props.max, 10); i += parseInt(props.step, 10)) {
1114
+ datalist.push(i);
1115
+ }
1116
+ var oneBig = 100 / (datalist.length - 1);
1117
+ var _datalist = datalist.map(function (d, idx) {
1118
+ return /*#__PURE__*/_react["default"].createElement("option", {
1119
+ key: "".concat(props.list, "_").concat(idx)
1120
+ }, d);
1121
+ });
1122
+ var visible_marks = datalist.map(function (d, idx) {
1123
+ var option_props = {};
1124
+ var w = oneBig;
1125
+ if (idx === 0 || idx === datalist.length - 1) {
1126
+ w = oneBig / 2;
1127
+ }
1128
+ option_props.key = "".concat(props.list, "_label_").concat(idx);
1129
+ option_props.style = {
1130
+ width: "".concat(w, "%")
1131
+ };
1132
+ if (idx === datalist.length - 1) {
1133
+ option_props.style = {
1134
+ width: "".concat(w, "%"),
1135
+ textAlign: 'right'
1136
+ };
1137
+ }
1138
+ return /*#__PURE__*/_react["default"].createElement("label", option_props, d);
1139
+ });
1140
+ if (this.props.read_only) {
1141
+ props.disabled = 'disabled';
1142
+ }
1143
+ var baseClasses = 'SortableItem rfb-item';
1144
+ if (this.props.data.pageBreakBefore) {
1145
+ baseClasses += ' alwaysbreak';
1146
+ }
1147
+ return /*#__PURE__*/_react["default"].createElement("div", {
1148
+ style: _objectSpread({}, this.props.style),
1149
+ className: baseClasses
1150
+ }, /*#__PURE__*/_react["default"].createElement(_componentHeader["default"], this.props), /*#__PURE__*/_react["default"].createElement("div", {
1151
+ className: "form-group"
1152
+ }, /*#__PURE__*/_react["default"].createElement(_componentLabel["default"], this.props), /*#__PURE__*/_react["default"].createElement("div", {
1153
+ className: "range"
1154
+ }, /*#__PURE__*/_react["default"].createElement("div", {
1155
+ className: "clearfix"
1156
+ }, /*#__PURE__*/_react["default"].createElement("span", {
1157
+ className: "float-start"
1158
+ }, this.props.data.min_label), /*#__PURE__*/_react["default"].createElement("span", {
1159
+ className: "float-end"
1160
+ }, this.props.data.max_label)), /*#__PURE__*/_react["default"].createElement(_reactBootstrapRangeSlider["default"], props)), /*#__PURE__*/_react["default"].createElement("div", {
1161
+ className: "visible_marks"
1162
+ }, visible_marks), /*#__PURE__*/_react["default"].createElement("input", {
1163
+ name: name,
1164
+ value: this.state.value,
1165
+ type: "hidden"
1166
+ }), /*#__PURE__*/_react["default"].createElement("datalist", {
1167
+ id: props.list
1168
+ }, _datalist)));
1169
+ }
1170
+ }]);
1171
+ return Range;
1172
+ }(_react["default"].Component);
1173
+ SurveyElements.Header = Header;
1174
+ SurveyElements.Paragraph = Paragraph;
1175
+ SurveyElements.Label = Label;
1176
+ SurveyElements.LineBreak = LineBreak;
1177
+ SurveyElements.TextInput = TextInput;
1178
+ SurveyElements.EmailInput = EmailInput;
1179
+ SurveyElements.PhoneNumber = PhoneNumber;
1180
+ SurveyElements.NumberInput = NumberInput;
1181
+ SurveyElements.TextArea = TextArea;
1182
+ SurveyElements.Dropdown = Dropdown;
1183
+ SurveyElements.Signature = Signature;
1184
+ SurveyElements.Checkboxes = Checkboxes;
1185
+ SurveyElements.Checkbox = Checkbox;
1186
+ SurveyElements.DatePicker = _datePicker["default"];
1187
+ SurveyElements.RadioButtons = RadioButtons;
1188
+ SurveyElements.Image = Image;
1189
+ SurveyElements.Rating = Rating;
1190
+ SurveyElements.Tags = Tags;
1191
+ SurveyElements.HyperLink = HyperLink;
1192
+ SurveyElements.Download = Download;
1193
+ SurveyElements.Camera = Camera;
1194
+ SurveyElements.FileUpload = FileUpload;
1195
+ SurveyElements.Range = Range;
1196
+ var _default = exports["default"] = SurveyElements;