@goldenpine/react-form-builder2 0.18.4-patch.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 +250 -0
  3. package/dist/1.app.js +1 -0
  4. package/dist/app.css +38 -0
  5. package/dist/app.css.map +1 -0
  6. package/dist/app.js +71 -0
  7. package/lib/ItemTypes.js +11 -0
  8. package/lib/UUID.js +67 -0
  9. package/lib/dynamic-option-list.js +189 -0
  10. package/lib/fieldset/FieldSet.js +121 -0
  11. package/lib/fieldset/index.js +13 -0
  12. package/lib/form-dynamic-edit.js +57 -0
  13. package/lib/form-elements/component-drag-handle.js +91 -0
  14. package/lib/form-elements/component-drag-layer.js +69 -0
  15. package/lib/form-elements/component-drag-preview.js +61 -0
  16. package/lib/form-elements/component-header.js +30 -0
  17. package/lib/form-elements/component-label.js +30 -0
  18. package/lib/form-elements/custom-element.js +74 -0
  19. package/lib/form-elements/date-picker.js +185 -0
  20. package/lib/form-elements/header-bar.js +55 -0
  21. package/lib/form-elements/index.js +1144 -0
  22. package/lib/form-elements/myxss.js +30 -0
  23. package/lib/form-elements/star-rating.js +338 -0
  24. package/lib/form-elements-edit.js +740 -0
  25. package/lib/form-place-holder.js +52 -0
  26. package/lib/form-validator.js +104 -0
  27. package/lib/form.js +592 -0
  28. package/lib/functions/index.js +47 -0
  29. package/lib/index.js +142 -0
  30. package/lib/language-provider/IntlMessages.js +16 -0
  31. package/lib/language-provider/entries/en-us.js +17 -0
  32. package/lib/language-provider/entries/fa-ir.js +17 -0
  33. package/lib/language-provider/entries/it-it.js +17 -0
  34. package/lib/language-provider/entries/vi-vn.js +17 -0
  35. package/lib/language-provider/index.js +41 -0
  36. package/lib/language-provider/locales/en-us.json +117 -0
  37. package/lib/language-provider/locales/fa-ir.json +109 -0
  38. package/lib/language-provider/locales/it-it.json +109 -0
  39. package/lib/language-provider/locales/vi-vn.json +96 -0
  40. package/lib/multi-column/MultiColumnRow.js +137 -0
  41. package/lib/multi-column/dustbin.js +156 -0
  42. package/lib/multi-column/grip.js +52 -0
  43. package/lib/multi-column/index.js +24 -0
  44. package/lib/preview.js +392 -0
  45. package/lib/sortable-element.js +177 -0
  46. package/lib/sortable-form-elements.js +66 -0
  47. package/lib/stores/registry.js +42 -0
  48. package/lib/stores/requests.js +31 -0
  49. package/lib/stores/store.js +139 -0
  50. package/lib/toolbar-draggable-item.js +60 -0
  51. package/lib/toolbar-group-item.js +40 -0
  52. package/lib/toolbar.js +726 -0
  53. package/package.json +118 -0
  54. package/types/index.d.ts +184 -0
package/lib/form.js ADDED
@@ -0,0 +1,592 @@
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 _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
10
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
11
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
12
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
13
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
14
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
15
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
16
+ var _react = _interopRequireDefault(require("react"));
17
+ var _reactDom = _interopRequireDefault(require("react-dom"));
18
+ var _fbemitter = require("fbemitter");
19
+ var _reactIntl = require("react-intl");
20
+ var _formValidator = _interopRequireDefault(require("./form-validator"));
21
+ var _formElements = _interopRequireDefault(require("./form-elements"));
22
+ var _multiColumn = require("./multi-column");
23
+ var _fieldset = require("./fieldset");
24
+ var _customElement = _interopRequireDefault(require("./form-elements/custom-element"));
25
+ var _registry = _interopRequireDefault(require("./stores/registry"));
26
+ 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); }; }
27
+ 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; } } /**
28
+ * <Form />
29
+ */
30
+ var Image = _formElements["default"].Image,
31
+ Checkboxes = _formElements["default"].Checkboxes,
32
+ Signature = _formElements["default"].Signature,
33
+ Download = _formElements["default"].Download,
34
+ Camera = _formElements["default"].Camera,
35
+ FileUpload = _formElements["default"].FileUpload;
36
+ var ReactForm = /*#__PURE__*/function (_React$Component) {
37
+ (0, _inherits2["default"])(ReactForm, _React$Component);
38
+ var _super = _createSuper(ReactForm);
39
+ function ReactForm(props) {
40
+ var _this;
41
+ (0, _classCallCheck2["default"])(this, ReactForm);
42
+ _this = _super.call(this, props);
43
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "form", void 0);
44
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "inputs", {});
45
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "answerData", void 0);
46
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_getOptionKeyValue", function (option) {
47
+ return _this.props.option_key_value === 'value' ? option.value : option.key;
48
+ });
49
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleRenderSubmit", function () {
50
+ var name = _this.props.action_name || _this.props.actionName;
51
+ var actionName = name || 'Submit';
52
+ var _this$props$submitBut = _this.props.submitButton,
53
+ submitButton = _this$props$submitBut === void 0 ? false : _this$props$submitBut;
54
+ return submitButton || /*#__PURE__*/_react["default"].createElement("input", {
55
+ type: "submit",
56
+ className: "btn btn-big",
57
+ value: actionName
58
+ });
59
+ });
60
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleRenderBack", function () {
61
+ var name = _this.props.back_name || _this.props.backName;
62
+ var backName = name || 'Cancel';
63
+ var _this$props$backButto = _this.props.backButton,
64
+ backButton = _this$props$backButto === void 0 ? false : _this$props$backButto;
65
+ return backButton || /*#__PURE__*/_react["default"].createElement("a", {
66
+ href: _this.props.back_action,
67
+ className: "btn btn-default btn-cancel btn-big"
68
+ }, backName);
69
+ });
70
+ _this.answerData = _this._convert(props.answer_data);
71
+ _this.emitter = new _fbemitter.EventEmitter();
72
+ _this.getDataById = _this.getDataById.bind((0, _assertThisInitialized2["default"])(_this));
73
+
74
+ // Bind handleBlur and handleChange methods
75
+ _this.handleBlur = _this.handleBlur.bind((0, _assertThisInitialized2["default"])(_this));
76
+ _this.handleChange = _this.handleChange.bind((0, _assertThisInitialized2["default"])(_this));
77
+ _this.handleSubmit = _this.handleSubmit.bind((0, _assertThisInitialized2["default"])(_this));
78
+ return _this;
79
+ }
80
+ (0, _createClass2["default"])(ReactForm, [{
81
+ key: "_convert",
82
+ value: function _convert(answers) {
83
+ if (Array.isArray(answers)) {
84
+ var result = {};
85
+ answers.forEach(function (x) {
86
+ if (x.name.indexOf('tags_') > -1) {
87
+ result[x.name] = x.value.map(function (y) {
88
+ return y.value;
89
+ });
90
+ } else {
91
+ result[x.name] = x.value;
92
+ }
93
+ });
94
+ return result;
95
+ }
96
+ return answers || {};
97
+ }
98
+ }, {
99
+ key: "_getDefaultValue",
100
+ value: function _getDefaultValue(item) {
101
+ return this.answerData[item.field_name];
102
+ }
103
+ }, {
104
+ key: "_optionsDefaultValue",
105
+ value: function _optionsDefaultValue(item) {
106
+ var _this2 = this;
107
+ var defaultValue = this._getDefaultValue(item);
108
+ if (defaultValue) {
109
+ return defaultValue;
110
+ }
111
+ var defaultChecked = [];
112
+ item.options.forEach(function (option) {
113
+ if (_this2.answerData["option_".concat(option.key)]) {
114
+ defaultChecked.push(option.key);
115
+ }
116
+ });
117
+ return defaultChecked;
118
+ }
119
+ }, {
120
+ key: "_getItemValue",
121
+ value: function _getItemValue(item, ref, trimValue) {
122
+ var $item = {
123
+ element: item.element,
124
+ value: ''
125
+ };
126
+ if (item.element === 'Rating') {
127
+ $item.value = ref.inputField.current.state.rating;
128
+ } else if (item.element === 'Tags') {
129
+ $item.value = ref.inputField.current.state.value;
130
+ } else if (item.element === 'DatePicker') {
131
+ $item.value = ref.state.value;
132
+ } else if (item.element === 'Camera') {
133
+ $item.value = ref.state.img;
134
+ } else if (item.element === 'FileUpload') {
135
+ $item.value = ref.state.fileUpload;
136
+ } else if (ref && ref.inputField && ref.inputField.current) {
137
+ $item = _reactDom["default"].findDOMNode(ref.inputField.current);
138
+ if (trimValue && $item && typeof $item.value === 'string') {
139
+ $item.value = $item.value.trim();
140
+ }
141
+ }
142
+ return $item;
143
+ }
144
+ }, {
145
+ key: "_isIncorrect",
146
+ value: function _isIncorrect(item) {
147
+ var incorrect = false;
148
+ if (item.canHaveAnswer) {
149
+ var ref = this.inputs[item.field_name];
150
+ if (item.element === 'Checkboxes' || item.element === 'RadioButtons') {
151
+ item.options.forEach(function (option) {
152
+ var $option = _reactDom["default"].findDOMNode(ref.options["child_ref_".concat(option.key)]);
153
+ if (option.hasOwnProperty('correct') && !$option.checked || !option.hasOwnProperty('correct') && $option.checked) {
154
+ incorrect = true;
155
+ }
156
+ });
157
+ } else {
158
+ var $item = this._getItemValue(item, ref);
159
+ if (item.element === 'Rating') {
160
+ if ($item.value.toString() !== item.correct) {
161
+ incorrect = true;
162
+ }
163
+ } else if ($item.value.toLowerCase() !== item.correct.trim().toLowerCase()) {
164
+ incorrect = true;
165
+ }
166
+ }
167
+ }
168
+ return incorrect;
169
+ }
170
+ }, {
171
+ key: "_isInvalid",
172
+ value: function _isInvalid(item) {
173
+ var invalid = false;
174
+ if (item.required === true) {
175
+ var ref = this.inputs[item.field_name];
176
+ if (item.element === 'Checkboxes' || item.element === 'RadioButtons') {
177
+ var checked_options = 0;
178
+ item.options.forEach(function (option) {
179
+ var $option = _reactDom["default"].findDOMNode(ref.options["child_ref_".concat(option.key)]);
180
+ if ($option.checked) {
181
+ checked_options += 1;
182
+ }
183
+ });
184
+ if (checked_options < 1) {
185
+ // errors.push(item.label + ' is required!');
186
+ invalid = true;
187
+ }
188
+ } else {
189
+ var $item = this._getItemValue(item, ref);
190
+ if (item.element === 'Rating') {
191
+ if ($item.value === 0) {
192
+ invalid = true;
193
+ }
194
+ } else if ($item.value === undefined || $item.value.length < 1) {
195
+ invalid = true;
196
+ }
197
+ }
198
+ }
199
+ return invalid;
200
+ }
201
+ }, {
202
+ key: "_collect",
203
+ value: function _collect(item, trimValue) {
204
+ var _this3 = this;
205
+ var itemData = {
206
+ id: item.id,
207
+ name: item.field_name,
208
+ custom_name: item.custom_name || item.field_name
209
+ };
210
+ if (!itemData.name) return null;
211
+ var ref = this.inputs[item.field_name];
212
+ if (item.element === 'Checkboxes' || item.element === 'RadioButtons') {
213
+ var checked_options = [];
214
+ item.options.forEach(function (option) {
215
+ var $option = _reactDom["default"].findDOMNode(ref.options["child_ref_".concat(option.key)]);
216
+ if ($option.checked) {
217
+ checked_options.push(_this3._getOptionKeyValue(option));
218
+ }
219
+ });
220
+ itemData.value = checked_options;
221
+ } else {
222
+ if (!ref) return null;
223
+ itemData.value = this._getItemValue(item, ref, trimValue).value;
224
+ }
225
+ return itemData;
226
+ }
227
+ }, {
228
+ key: "_collectFormData",
229
+ value: function _collectFormData(data, trimValue) {
230
+ var _this4 = this;
231
+ var formData = [];
232
+ data.forEach(function (item) {
233
+ var item_data = _this4._collect(item, trimValue);
234
+ if (item_data) {
235
+ formData.push(item_data);
236
+ }
237
+ });
238
+ return formData;
239
+ }
240
+ }, {
241
+ key: "_getSignatureImg",
242
+ value: function _getSignatureImg(item) {
243
+ var ref = this.inputs[item.field_name];
244
+ var $canvas_sig = ref.canvas.current;
245
+ if ($canvas_sig) {
246
+ var base64 = $canvas_sig.toDataURL().replace('data:image/png;base64,', '');
247
+ var isEmpty = $canvas_sig.isEmpty();
248
+ var $input_sig = _reactDom["default"].findDOMNode(ref.inputField.current);
249
+ if (isEmpty) {
250
+ $input_sig.value = '';
251
+ } else {
252
+ $input_sig.value = base64;
253
+ }
254
+ }
255
+ }
256
+ }, {
257
+ key: "handleSubmit",
258
+ value: function handleSubmit(e) {
259
+ e.preventDefault();
260
+ var errors = [];
261
+ if (!this.props.skip_validations) {
262
+ errors = this.validateForm();
263
+ // Publish errors, if any.
264
+ this.emitter.emit('formValidation', errors);
265
+ }
266
+
267
+ // Only submit if there are no errors.
268
+ if (errors.length < 1) {
269
+ var onSubmit = this.props.onSubmit;
270
+ if (onSubmit) {
271
+ var data = this._collectFormData(this.props.data, true);
272
+ onSubmit(data);
273
+ } else {
274
+ var $form = _reactDom["default"].findDOMNode(this.form);
275
+ $form.submit();
276
+ }
277
+ }
278
+ }
279
+ }, {
280
+ key: "handleBlur",
281
+ value: function handleBlur(event) {
282
+ // Call submit function on blur
283
+ if (this.props.onBlur) {
284
+ var onBlur = this.props.onBlur;
285
+ var data = this._collectFormData(this.props.data, true);
286
+ onBlur(data);
287
+ }
288
+ }
289
+ }, {
290
+ key: "handleChange",
291
+ value: function handleChange(event) {
292
+ // Call submit function on change
293
+ if (this.props.onChange) {
294
+ var onChange = this.props.onChange;
295
+ var data = this._collectFormData(this.props.data, false);
296
+ onChange(data);
297
+ }
298
+ }
299
+ }, {
300
+ key: "validateForm",
301
+ value: function validateForm() {
302
+ var _this5 = this;
303
+ var errors = [];
304
+ var data_items = this.props.data;
305
+ var intl = this.props.intl;
306
+ if (this.props.display_short) {
307
+ data_items = this.props.data.filter(function (i) {
308
+ return i.alternateForm === true;
309
+ });
310
+ }
311
+ data_items.forEach(function (item) {
312
+ if (item.element === 'Signature') {
313
+ _this5._getSignatureImg(item);
314
+ }
315
+ if (_this5._isInvalid(item)) {
316
+ errors.push("".concat(item.label, " ").concat(intl.formatMessage({
317
+ id: 'message.is-required'
318
+ }), "!"));
319
+ }
320
+ if (item.element === 'EmailInput') {
321
+ var ref = _this5.inputs[item.field_name];
322
+ var emailValue = _this5._getItemValue(item, ref).value;
323
+ if (emailValue) {
324
+ var validateEmail = function validateEmail(email) {
325
+ return email.match(
326
+ // eslint-disable-next-line no-useless-escape
327
+ /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/);
328
+ };
329
+ var checkEmail = validateEmail(emailValue);
330
+ if (!checkEmail) {
331
+ errors.push("".concat(item.label, " ").concat(intl.formatMessage({
332
+ id: 'message.invalid-email'
333
+ })));
334
+ }
335
+ }
336
+ }
337
+ if (item.element === 'PhoneNumber') {
338
+ var _ref = _this5.inputs[item.field_name];
339
+ var phoneValue = _this5._getItemValue(item, _ref).value;
340
+ if (phoneValue) {
341
+ var validatePhone = function validatePhone(phone) {
342
+ return phone.match(
343
+ // eslint-disable-next-line no-useless-escape
344
+ /^[+]?(1\-|1\s|1|\d{3}\-|\d{3}\s|)?((\(\d{3}\))|\d{3})(\-|\s)?(\d{3})(\-|\s)?(\d{4})$/g);
345
+ };
346
+ var checkPhone = validatePhone(phoneValue);
347
+ if (!checkPhone) {
348
+ errors.push("".concat(item.label, " ").concat(intl.formatMessage({
349
+ id: 'message.invalid-phone-number'
350
+ })));
351
+ }
352
+ }
353
+ }
354
+ if (_this5.props.validateForCorrectness && _this5._isIncorrect(item)) {
355
+ errors.push("".concat(item.label, " ").concat(intl.formatMessage({
356
+ id: 'message.was-answered-incorrectly'
357
+ }), "!"));
358
+ }
359
+ });
360
+ return errors;
361
+ }
362
+ }, {
363
+ key: "getDataById",
364
+ value: function getDataById(id) {
365
+ var data = this.props.data;
366
+ return data.find(function (x) {
367
+ return x.id === id;
368
+ });
369
+ }
370
+ }, {
371
+ key: "getInputElement",
372
+ value: function getInputElement(item) {
373
+ var _this6 = this;
374
+ if (item.custom) {
375
+ return this.getCustomElement(item);
376
+ }
377
+ var Input = _formElements["default"][item.element];
378
+ return /*#__PURE__*/_react["default"].createElement(Input, {
379
+ handleChange: this.handleChange,
380
+ ref: function ref(c) {
381
+ return _this6.inputs[item.field_name] = c;
382
+ },
383
+ mutable: true,
384
+ key: "form_".concat(item.id),
385
+ data: item,
386
+ read_only: this.props.read_only,
387
+ defaultValue: this._getDefaultValue(item)
388
+ });
389
+ }
390
+ }, {
391
+ key: "getContainerElement",
392
+ value: function getContainerElement(item, Element) {
393
+ var _this7 = this;
394
+ var controls = item.childItems.map(function (x) {
395
+ return x ? _this7.getInputElement(_this7.getDataById(x)) : /*#__PURE__*/_react["default"].createElement("div", null, "\xA0");
396
+ });
397
+ return /*#__PURE__*/_react["default"].createElement(Element, {
398
+ mutable: true,
399
+ key: "form_".concat(item.id),
400
+ data: item,
401
+ controls: controls
402
+ });
403
+ }
404
+ }, {
405
+ key: "getSimpleElement",
406
+ value: function getSimpleElement(item) {
407
+ var Element = _formElements["default"][item.element];
408
+ return /*#__PURE__*/_react["default"].createElement(Element, {
409
+ mutable: true,
410
+ key: "form_".concat(item.id),
411
+ data: item
412
+ });
413
+ }
414
+ }, {
415
+ key: "getCustomElement",
416
+ value: function getCustomElement(item) {
417
+ var _this8 = this;
418
+ var intl = this.props.intl;
419
+ if (!item.component || typeof item.component !== 'function') {
420
+ item.component = _registry["default"].get(item.key);
421
+ if (!item.component) {
422
+ console.error("".concat(item.element, " ").concat(intl.formatMessage({
423
+ id: 'message.was-not-registered'
424
+ })));
425
+ }
426
+ }
427
+ var inputProps = item.forwardRef && {
428
+ handleChange: this.handleChange,
429
+ defaultValue: this._getDefaultValue(item),
430
+ ref: function ref(c) {
431
+ return _this8.inputs[item.field_name] = c;
432
+ }
433
+ };
434
+ return /*#__PURE__*/_react["default"].createElement(_customElement["default"], (0, _extends2["default"])({
435
+ mutable: true,
436
+ read_only: this.props.read_only,
437
+ key: "form_".concat(item.id),
438
+ data: item
439
+ }, inputProps));
440
+ }
441
+ }, {
442
+ key: "render",
443
+ value: function render() {
444
+ var _this9 = this;
445
+ var data_items = this.props.data;
446
+ if (this.props.display_short) {
447
+ data_items = this.props.data.filter(function (i) {
448
+ return i.alternateForm === true;
449
+ });
450
+ }
451
+ data_items.forEach(function (item) {
452
+ if (item && item.readOnly && item.variableKey && _this9.props.variables[item.variableKey]) {
453
+ _this9.answerData[item.field_name] = _this9.props.variables[item.variableKey];
454
+ }
455
+ });
456
+ var items = data_items.filter(function (x) {
457
+ return !x.parentId;
458
+ }).map(function (item) {
459
+ if (!item) return null;
460
+ switch (item.element) {
461
+ case 'TextInput':
462
+ case 'EmailInput':
463
+ case 'PhoneNumber':
464
+ case 'NumberInput':
465
+ case 'TextArea':
466
+ case 'Dropdown':
467
+ case 'DatePicker':
468
+ case 'RadioButtons':
469
+ case 'Rating':
470
+ case 'Tags':
471
+ case 'Range':
472
+ return _this9.getInputElement(item);
473
+ case 'CustomElement':
474
+ return _this9.getCustomElement(item);
475
+ case 'MultiColumnRow':
476
+ return _this9.getContainerElement(item, _multiColumn.MultiColumnRow);
477
+ case 'ThreeColumnRow':
478
+ return _this9.getContainerElement(item, _multiColumn.ThreeColumnRow);
479
+ case 'TwoColumnRow':
480
+ return _this9.getContainerElement(item, _multiColumn.TwoColumnRow);
481
+ case 'FieldSet':
482
+ return _this9.getContainerElement(item, _fieldset.FieldSet);
483
+ case 'Signature':
484
+ return /*#__PURE__*/_react["default"].createElement(Signature, {
485
+ ref: function ref(c) {
486
+ return _this9.inputs[item.field_name] = c;
487
+ },
488
+ read_only: _this9.props.read_only || item.readOnly,
489
+ mutable: true,
490
+ key: "form_".concat(item.id),
491
+ data: item,
492
+ defaultValue: _this9._getDefaultValue(item)
493
+ });
494
+ case 'Checkboxes':
495
+ return /*#__PURE__*/_react["default"].createElement(Checkboxes, {
496
+ ref: function ref(c) {
497
+ return _this9.inputs[item.field_name] = c;
498
+ },
499
+ read_only: _this9.props.read_only,
500
+ handleChange: _this9.handleChange,
501
+ mutable: true,
502
+ key: "form_".concat(item.id),
503
+ data: item,
504
+ defaultValue: _this9._optionsDefaultValue(item)
505
+ });
506
+ case 'Image':
507
+ return /*#__PURE__*/_react["default"].createElement(Image, {
508
+ ref: function ref(c) {
509
+ return _this9.inputs[item.field_name] = c;
510
+ },
511
+ handleChange: _this9.handleChange,
512
+ mutable: true,
513
+ key: "form_".concat(item.id),
514
+ data: item,
515
+ defaultValue: _this9._getDefaultValue(item)
516
+ });
517
+ case 'Download':
518
+ return /*#__PURE__*/_react["default"].createElement(Download, {
519
+ download_path: _this9.props.download_path,
520
+ mutable: true,
521
+ key: "form_".concat(item.id),
522
+ data: item
523
+ });
524
+ case 'Camera':
525
+ return /*#__PURE__*/_react["default"].createElement(Camera, {
526
+ ref: function ref(c) {
527
+ return _this9.inputs[item.field_name] = c;
528
+ },
529
+ read_only: _this9.props.read_only || item.readOnly,
530
+ mutable: true,
531
+ key: "form_".concat(item.id),
532
+ data: item,
533
+ defaultValue: _this9._getDefaultValue(item)
534
+ });
535
+ case 'FileUpload':
536
+ return /*#__PURE__*/_react["default"].createElement(FileUpload, {
537
+ ref: function ref(c) {
538
+ return _this9.inputs[item.field_name] = c;
539
+ },
540
+ read_only: _this9.props.read_only || item.readOnly,
541
+ mutable: true,
542
+ key: "form_".concat(item.id),
543
+ data: item,
544
+ defaultValue: _this9._getDefaultValue(item)
545
+ });
546
+ default:
547
+ return _this9.getSimpleElement(item);
548
+ }
549
+ });
550
+ var formTokenStyle = {
551
+ display: 'none'
552
+ };
553
+ return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_formValidator["default"], {
554
+ emitter: this.emitter
555
+ }), /*#__PURE__*/_react["default"].createElement("div", {
556
+ className: "react-form-builder-form"
557
+ }, /*#__PURE__*/_react["default"].createElement("form", {
558
+ encType: "multipart/form-data",
559
+ ref: function ref(c) {
560
+ return _this9.form = c;
561
+ },
562
+ action: this.props.form_action,
563
+ onBlur: this.handleBlur,
564
+ onChange: this.handleChange,
565
+ onSubmit: this.handleSubmit,
566
+ method: this.props.form_method
567
+ }, this.props.authenticity_token && /*#__PURE__*/_react["default"].createElement("div", {
568
+ style: formTokenStyle
569
+ }, /*#__PURE__*/_react["default"].createElement("input", {
570
+ name: "utf8",
571
+ type: "hidden",
572
+ value: "\u2713"
573
+ }), /*#__PURE__*/_react["default"].createElement("input", {
574
+ name: "authenticity_token",
575
+ type: "hidden",
576
+ value: this.props.authenticity_token
577
+ }), /*#__PURE__*/_react["default"].createElement("input", {
578
+ name: "task_id",
579
+ type: "hidden",
580
+ value: this.props.task_id
581
+ })), items, /*#__PURE__*/_react["default"].createElement("div", {
582
+ className: "btn-toolbar"
583
+ }, !this.props.hide_actions && this.handleRenderSubmit(), !this.props.hide_actions && this.props.back_action && this.handleRenderBack()))));
584
+ }
585
+ }]);
586
+ return ReactForm;
587
+ }(_react["default"].Component);
588
+ var _default = (0, _reactIntl.injectIntl)(ReactForm);
589
+ exports["default"] = _default;
590
+ ReactForm.defaultProps = {
591
+ validateForCorrectness: false
592
+ };
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.DraftJs = void 0;
9
+ Object.defineProperty(exports, "Editor", {
10
+ enumerable: true,
11
+ get: function get() {
12
+ return _reactDraftWysiwyg.Editor;
13
+ }
14
+ });
15
+ exports.generateUUID = exports.draftToHtml = exports.TextAreaAutosize = void 0;
16
+ exports.groupBy = groupBy;
17
+ var _react = _interopRequireDefault(require("react"));
18
+ var PkgTextAreaAutosize = _interopRequireWildcard(require("react-textarea-autosize"));
19
+ var DraftJs = _interopRequireWildcard(require("draft-js"));
20
+ exports.DraftJs = DraftJs;
21
+ var draftToHtml = _interopRequireWildcard(require("draftjs-to-html"));
22
+ exports.draftToHtml = draftToHtml;
23
+ var _reactDraftWysiwyg = require("react-draft-wysiwyg");
24
+ var _UUID = _interopRequireDefault(require("../UUID"));
25
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
26
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
27
+ var generateUUID = function generateUUID() {
28
+ return _UUID["default"].uuid();
29
+ };
30
+ exports.generateUUID = generateUUID;
31
+ var TextAreaAutosize = function TextAreaAutosize(props) {
32
+ return /*#__PURE__*/_react["default"].createElement(PkgTextAreaAutosize, props);
33
+ };
34
+ exports.TextAreaAutosize = TextAreaAutosize;
35
+ function groupBy(list, keyGetter) {
36
+ var map = new Map();
37
+ list.forEach(function (item) {
38
+ var key = keyGetter(item);
39
+ var collection = map.get(key);
40
+ if (!collection) {
41
+ map.set(key, [item]);
42
+ } else {
43
+ collection.push(item);
44
+ }
45
+ });
46
+ return map;
47
+ }