@goldenpine/react-form-builder2 0.20.3-build.2 → 0.20.3-build.20

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.
@@ -125,6 +125,7 @@ var FormElementsEdit = exports["default"] = /*#__PURE__*/function (_React$Compon
125
125
  }, {
126
126
  key: "render",
127
127
  value: function render() {
128
+ var _this$props$element$c;
128
129
  if (this.state.dirty) {
129
130
  this.props.element.dirty = true;
130
131
  }
@@ -164,12 +165,12 @@ var FormElementsEdit = exports["default"] = /*#__PURE__*/function (_React$Compon
164
165
  return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("div", {
165
166
  className: "clearfix"
166
167
  }, /*#__PURE__*/_react["default"].createElement("h4", {
167
- className: "float-left"
168
+ className: "float-start"
168
169
  }, this.props.element.text), /*#__PURE__*/_react["default"].createElement("i", {
169
- className: "float-right fas fa-times dismiss-edit",
170
+ className: "float-end fas fa-times dismiss-edit",
170
171
  onClick: this.props.manualEditModeOff
171
172
  })), this.props.element.hasOwnProperty('content') && /*#__PURE__*/_react["default"].createElement("div", {
172
- className: "form-group"
173
+ className: "mb-3"
173
174
  }, /*#__PURE__*/_react["default"].createElement("label", {
174
175
  className: "control-label"
175
176
  }, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
@@ -181,7 +182,7 @@ var FormElementsEdit = exports["default"] = /*#__PURE__*/function (_React$Compon
181
182
  onEditorStateChange: this.onEditorStateChange.bind(this, 0, 'content'),
182
183
  stripPastedStyles: true
183
184
  })), this.props.element.hasOwnProperty('file_path') && /*#__PURE__*/_react["default"].createElement("div", {
184
- className: "form-group"
185
+ className: "mb-3"
185
186
  }, /*#__PURE__*/_react["default"].createElement("label", {
186
187
  className: "control-label",
187
188
  htmlFor: "fileSelect"
@@ -200,7 +201,7 @@ var FormElementsEdit = exports["default"] = /*#__PURE__*/function (_React$Compon
200
201
  key: this_key
201
202
  }, file.file_name);
202
203
  }))), this.props.element.hasOwnProperty('href') && /*#__PURE__*/_react["default"].createElement("div", {
203
- className: "form-group"
204
+ className: "mb-3"
204
205
  }, /*#__PURE__*/_react["default"].createElement(_reactTextareaAutosize["default"], {
205
206
  type: "text",
206
207
  className: "form-control",
@@ -208,7 +209,7 @@ var FormElementsEdit = exports["default"] = /*#__PURE__*/function (_React$Compon
208
209
  onBlur: this.updateElement.bind(this),
209
210
  onChange: this.editElementProp.bind(this, 'href', 'value')
210
211
  })), this.props.element.hasOwnProperty('label') && /*#__PURE__*/_react["default"].createElement("div", {
211
- className: "form-group"
212
+ className: "mb-3"
212
213
  }, /*#__PURE__*/_react["default"].createElement("label", null, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
213
214
  id: "display-label"
214
215
  })), /*#__PURE__*/_react["default"].createElement(_reactDraftWysiwyg.Editor, {
@@ -218,105 +219,123 @@ var FormElementsEdit = exports["default"] = /*#__PURE__*/function (_React$Compon
218
219
  onEditorStateChange: this.onEditorStateChange.bind(this, 0, 'label'),
219
220
  stripPastedStyles: true
220
221
  }), /*#__PURE__*/_react["default"].createElement("br", null), /*#__PURE__*/_react["default"].createElement("div", {
221
- className: "custom-control custom-checkbox"
222
+ className: "form-check"
222
223
  }, /*#__PURE__*/_react["default"].createElement("input", {
223
224
  id: "is-required",
224
- className: "custom-control-input",
225
+ className: "form-check-input",
225
226
  type: "checkbox",
226
227
  checked: this_checked,
227
228
  value: true,
228
229
  onChange: this.editElementProp.bind(this, 'required', 'checked')
229
230
  }), /*#__PURE__*/_react["default"].createElement("label", {
230
- className: "custom-control-label",
231
+ className: "form-check-label",
231
232
  htmlFor: "is-required"
232
233
  }, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
233
234
  id: "required"
234
- }))), this.props.element.hasOwnProperty('readOnly') && /*#__PURE__*/_react["default"].createElement("div", {
235
- className: "custom-control custom-checkbox"
235
+ }))), this_checked && this.state.element.element === 'Checkboxes' && /*#__PURE__*/_react["default"].createElement("div", {
236
+ className: "d-flex align-items-center gap-2"
237
+ }, /*#__PURE__*/_react["default"].createElement("label", {
238
+ className: "form-label mb-0",
239
+ htmlFor: "checkbox-required-checks"
240
+ }, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
241
+ id: "minimum-number-of-selections"
242
+ }), ":"), /*#__PURE__*/_react["default"].createElement("input", {
243
+ id: "checkbox-required-checks",
244
+ type: "number",
245
+ min: "1",
246
+ className: "form-control d-inline-block",
247
+ style: {
248
+ width: '8ch'
249
+ },
250
+ value: (_this$props$element$c = this.props.element.checkbox_required_checks) !== null && _this$props$element$c !== void 0 ? _this$props$element$c : '1',
251
+ onBlur: this.updateElement.bind(this),
252
+ onChange: this.editElementProp.bind(this, 'checkbox_required_checks', 'value')
253
+ })), this.props.element.hasOwnProperty('readOnly') && /*#__PURE__*/_react["default"].createElement("div", {
254
+ className: "form-check"
236
255
  }, /*#__PURE__*/_react["default"].createElement("input", {
237
256
  id: "is-read-only",
238
- className: "custom-control-input",
257
+ className: "form-check-input",
239
258
  type: "checkbox",
240
259
  checked: this_read_only,
241
260
  value: true,
242
261
  onChange: this.editElementProp.bind(this, 'readOnly', 'checked')
243
262
  }), /*#__PURE__*/_react["default"].createElement("label", {
244
- className: "custom-control-label",
263
+ className: "form-check-label",
245
264
  htmlFor: "is-read-only"
246
265
  }, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
247
266
  id: "read-only"
248
267
  }))), this.props.element.hasOwnProperty('defaultToday') && /*#__PURE__*/_react["default"].createElement("div", {
249
- className: "custom-control custom-checkbox"
268
+ className: "form-check"
250
269
  }, /*#__PURE__*/_react["default"].createElement("input", {
251
270
  id: "is-default-to-today",
252
- className: "custom-control-input",
271
+ className: "form-check-input",
253
272
  type: "checkbox",
254
273
  checked: this_default_today,
255
274
  value: true,
256
275
  onChange: this.editElementProp.bind(this, 'defaultToday', 'checked')
257
276
  }), /*#__PURE__*/_react["default"].createElement("label", {
258
- className: "custom-control-label",
277
+ className: "form-check-label",
259
278
  htmlFor: "is-default-to-today"
260
279
  }, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
261
280
  id: "default-to-today"
262
281
  }), "?")), this.props.element.hasOwnProperty('showTimeSelect') && /*#__PURE__*/_react["default"].createElement("div", {
263
- className: "custom-control custom-checkbox"
282
+ className: "form-check"
264
283
  }, /*#__PURE__*/_react["default"].createElement("input", {
265
284
  id: "show-time-select",
266
- className: "custom-control-input",
285
+ className: "form-check-input",
267
286
  type: "checkbox",
268
287
  checked: this_show_time_select,
269
288
  value: true,
270
289
  onChange: this.editElementProp.bind(this, 'showTimeSelect', 'checked')
271
290
  }), /*#__PURE__*/_react["default"].createElement("label", {
272
- className: "custom-control-label",
291
+ className: "form-check-label",
273
292
  htmlFor: "show-time-select"
274
293
  }, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
275
294
  id: "show-time-select"
276
295
  }), "?")), this_show_time_select && this.props.element.hasOwnProperty('showTimeSelectOnly') && /*#__PURE__*/_react["default"].createElement("div", {
277
- className: "custom-control custom-checkbox"
296
+ className: "form-check"
278
297
  }, /*#__PURE__*/_react["default"].createElement("input", {
279
298
  id: "show-time-select-only",
280
- className: "custom-control-input",
299
+ className: "form-check-input",
281
300
  type: "checkbox",
282
301
  checked: this_show_time_select_only,
283
302
  value: true,
284
303
  onChange: this.editElementProp.bind(this, 'showTimeSelectOnly', 'checked')
285
304
  }), /*#__PURE__*/_react["default"].createElement("label", {
286
- className: "custom-control-label",
305
+ className: "form-check-label",
287
306
  htmlFor: "show-time-select-only"
288
307
  }, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
289
308
  id: "show-time-select-only"
290
309
  }), "?")), this.props.element.hasOwnProperty('showTimeInput') && /*#__PURE__*/_react["default"].createElement("div", {
291
- className: "custom-control custom-checkbox"
310
+ className: "form-check"
292
311
  }, /*#__PURE__*/_react["default"].createElement("input", {
293
312
  id: "show-time-input",
294
- className: "custom-control-input",
313
+ className: "form-check-input",
295
314
  type: "checkbox",
296
315
  checked: this_show_time_input,
297
316
  value: true,
298
317
  onChange: this.editElementProp.bind(this, 'showTimeInput', 'checked')
299
318
  }), /*#__PURE__*/_react["default"].createElement("label", {
300
- className: "custom-control-label",
319
+ className: "form-check-label",
301
320
  htmlFor: "show-time-input"
302
321
  }, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
303
322
  id: "show-time-input"
304
323
  }), "?")), (this.state.element.element === 'RadioButtons' || this.state.element.element === 'Checkboxes') && canHaveDisplayHorizontal && /*#__PURE__*/_react["default"].createElement("div", {
305
- className: "custom-control custom-checkbox"
324
+ className: "form-check"
306
325
  }, /*#__PURE__*/_react["default"].createElement("input", {
307
326
  id: "display-horizontal",
308
- className: "custom-control-input",
327
+ className: "form-check-input",
309
328
  type: "checkbox",
310
329
  checked: this_checked_inline,
311
330
  value: true,
312
331
  onChange: this.editElementProp.bind(this, 'inline', 'checked')
313
332
  }), /*#__PURE__*/_react["default"].createElement("label", {
314
- className: "custom-control-label",
333
+ className: "form-check-label",
315
334
  htmlFor: "display-horizontal"
316
335
  }, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
317
336
  id: "display-horizontal"
318
337
  })))), this.props.element.hasOwnProperty('src') && /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("div", {
319
- className: "form-group"
338
+ className: "mb-3"
320
339
  }, /*#__PURE__*/_react["default"].createElement("label", {
321
340
  className: "control-label",
322
341
  htmlFor: "srcInput"
@@ -330,18 +349,18 @@ var FormElementsEdit = exports["default"] = /*#__PURE__*/function (_React$Compon
330
349
  onBlur: this.updateElement.bind(this),
331
350
  onChange: this.editElementProp.bind(this, 'src', 'value')
332
351
  }))), canHaveImageSize && /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("div", {
333
- className: "form-group"
352
+ className: "mb-3"
334
353
  }, /*#__PURE__*/_react["default"].createElement("div", {
335
- className: "custom-control custom-checkbox"
354
+ className: "form-check"
336
355
  }, /*#__PURE__*/_react["default"].createElement("input", {
337
356
  id: "do-center",
338
- className: "custom-control-input",
357
+ className: "form-check-input",
339
358
  type: "checkbox",
340
359
  checked: this_checked_center,
341
360
  value: true,
342
361
  onChange: this.editElementProp.bind(this, 'center', 'checked')
343
362
  }), /*#__PURE__*/_react["default"].createElement("label", {
344
- className: "custom-control-label",
363
+ className: "form-check-label",
345
364
  htmlFor: "do-center"
346
365
  }, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
347
366
  id: "center"
@@ -376,7 +395,7 @@ var FormElementsEdit = exports["default"] = /*#__PURE__*/function (_React$Compon
376
395
  onBlur: this.updateElement.bind(this),
377
396
  onChange: this.editElementProp.bind(this, 'height', 'value')
378
397
  })))), this.state.element.element === 'Camera' && /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("div", {
379
- className: "form-group"
398
+ className: "mb-3"
380
399
  }, /*#__PURE__*/_react["default"].createElement("label", {
381
400
  className: "control-label",
382
401
  htmlFor: "LabelAfterCameraIcon"
@@ -390,7 +409,7 @@ var FormElementsEdit = exports["default"] = /*#__PURE__*/function (_React$Compon
390
409
  onBlur: this.updateElement.bind(this),
391
410
  onChange: this.editElementProp.bind(this, 'label_after_camera_icon', 'value')
392
411
  })), /*#__PURE__*/_react["default"].createElement("div", {
393
- className: "form-group"
412
+ className: "mb-3"
394
413
  }, /*#__PURE__*/_react["default"].createElement("label", {
395
414
  className: "control-label",
396
415
  htmlFor: "MessageUnderCameraIcon"
@@ -404,7 +423,7 @@ var FormElementsEdit = exports["default"] = /*#__PURE__*/function (_React$Compon
404
423
  onBlur: this.updateElement.bind(this),
405
424
  onChange: this.editElementProp.bind(this, 'message_under_camera_icon', 'value')
406
425
  })), /*#__PURE__*/_react["default"].createElement("div", {
407
- className: "form-group"
426
+ className: "mb-3"
408
427
  }, /*#__PURE__*/_react["default"].createElement("label", {
409
428
  className: "control-label",
410
429
  htmlFor: "LabelAfterPhotoClearIcon"
@@ -418,7 +437,7 @@ var FormElementsEdit = exports["default"] = /*#__PURE__*/function (_React$Compon
418
437
  onBlur: this.updateElement.bind(this),
419
438
  onChange: this.editElementProp.bind(this, 'label_after_photo_clear_icon', 'value')
420
439
  }))), this.state.element.element === 'FileUpload' && /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("div", {
421
- className: "form-group"
440
+ className: "mb-3"
422
441
  }, /*#__PURE__*/_react["default"].createElement("label", {
423
442
  className: "control-label",
424
443
  htmlFor: "LabelAfterFileIcon"
@@ -432,7 +451,7 @@ var FormElementsEdit = exports["default"] = /*#__PURE__*/function (_React$Compon
432
451
  onBlur: this.updateElement.bind(this),
433
452
  onChange: this.editElementProp.bind(this, 'label_after_file_icon', 'value')
434
453
  })), /*#__PURE__*/_react["default"].createElement("div", {
435
- className: "form-group"
454
+ className: "mb-3"
436
455
  }, /*#__PURE__*/_react["default"].createElement("label", {
437
456
  className: "control-label",
438
457
  htmlFor: "MessageUnderFileIcon"
@@ -446,7 +465,7 @@ var FormElementsEdit = exports["default"] = /*#__PURE__*/function (_React$Compon
446
465
  onBlur: this.updateElement.bind(this),
447
466
  onChange: this.editElementProp.bind(this, 'message_under_file_icon', 'value')
448
467
  })), /*#__PURE__*/_react["default"].createElement("div", {
449
- className: "form-group"
468
+ className: "mb-3"
450
469
  }, /*#__PURE__*/_react["default"].createElement("label", {
451
470
  className: "control-label",
452
471
  htmlFor: "LabelAfterFileClearIcon"
@@ -460,7 +479,7 @@ var FormElementsEdit = exports["default"] = /*#__PURE__*/function (_React$Compon
460
479
  onBlur: this.updateElement.bind(this),
461
480
  onChange: this.editElementProp.bind(this, 'label_after_file_clear_icon', 'value')
462
481
  })), /*#__PURE__*/_react["default"].createElement("div", {
463
- className: "form-group"
482
+ className: "mb-3"
464
483
  }, /*#__PURE__*/_react["default"].createElement("label", {
465
484
  className: "control-label",
466
485
  htmlFor: "fileType"
@@ -498,7 +517,7 @@ var FormElementsEdit = exports["default"] = /*#__PURE__*/function (_React$Compon
498
517
  key: index
499
518
  }, file.typeName);
500
519
  })))), this.state.element.element === 'Signature' && this.props.element.readOnly ? /*#__PURE__*/_react["default"].createElement("div", {
501
- className: "form-group"
520
+ className: "mb-3"
502
521
  }, /*#__PURE__*/_react["default"].createElement("label", {
503
522
  className: "control-label",
504
523
  htmlFor: "variableKey"
@@ -516,47 +535,47 @@ var FormElementsEdit = exports["default"] = /*#__PURE__*/function (_React$Compon
516
535
  }, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
517
536
  id: "variable-key-desc"
518
537
  }), ".")) : /*#__PURE__*/_react["default"].createElement("div", null), canHavePageBreakBefore && /*#__PURE__*/_react["default"].createElement("div", {
519
- className: "form-group"
538
+ className: "mb-3"
520
539
  }, /*#__PURE__*/_react["default"].createElement("label", {
521
540
  className: "control-label"
522
541
  }, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
523
542
  id: "print-options"
524
543
  })), /*#__PURE__*/_react["default"].createElement("div", {
525
- className: "custom-control custom-checkbox"
544
+ className: "form-check"
526
545
  }, /*#__PURE__*/_react["default"].createElement("input", {
527
546
  id: "page-break-before-element",
528
- className: "custom-control-input",
547
+ className: "form-check-input",
529
548
  type: "checkbox",
530
549
  checked: this_checked_page_break,
531
550
  value: true,
532
551
  onChange: this.editElementProp.bind(this, 'pageBreakBefore', 'checked')
533
552
  }), /*#__PURE__*/_react["default"].createElement("label", {
534
- className: "custom-control-label",
553
+ className: "form-check-label",
535
554
  htmlFor: "page-break-before-element"
536
555
  }, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
537
556
  id: "page-break-before-elements"
538
557
  }), "?"))), canHaveAlternateForm && /*#__PURE__*/_react["default"].createElement("div", {
539
- className: "form-group"
558
+ className: "mb-3"
540
559
  }, /*#__PURE__*/_react["default"].createElement("label", {
541
560
  className: "control-label"
542
561
  }, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
543
562
  id: "alternate-signature-page"
544
563
  })), /*#__PURE__*/_react["default"].createElement("div", {
545
- className: "custom-control custom-checkbox"
564
+ className: "form-check"
546
565
  }, /*#__PURE__*/_react["default"].createElement("input", {
547
566
  id: "display-on-alternate",
548
- className: "custom-control-input",
567
+ className: "form-check-input",
549
568
  type: "checkbox",
550
569
  checked: this_checked_alternate_form,
551
570
  value: true,
552
571
  onChange: this.editElementProp.bind(this, 'alternateForm', 'checked')
553
572
  }), /*#__PURE__*/_react["default"].createElement("label", {
554
- className: "custom-control-label",
573
+ className: "form-check-label",
555
574
  htmlFor: "display-on-alternate"
556
575
  }, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
557
576
  id: "display-on-alternate-signature-page"
558
577
  }), "?"))), this.props.element.hasOwnProperty('step') && /*#__PURE__*/_react["default"].createElement("div", {
559
- className: "form-group"
578
+ className: "mb-3"
560
579
  }, /*#__PURE__*/_react["default"].createElement("div", {
561
580
  className: "form-group-range"
562
581
  }, /*#__PURE__*/_react["default"].createElement("label", {
@@ -572,7 +591,7 @@ var FormElementsEdit = exports["default"] = /*#__PURE__*/function (_React$Compon
572
591
  onBlur: this.updateElement.bind(this),
573
592
  onChange: this.editElementProp.bind(this, 'step', 'value')
574
593
  }))), this.props.element.hasOwnProperty('min_value') && /*#__PURE__*/_react["default"].createElement("div", {
575
- className: "form-group"
594
+ className: "mb-3"
576
595
  }, /*#__PURE__*/_react["default"].createElement("div", {
577
596
  className: "form-group-range"
578
597
  }, /*#__PURE__*/_react["default"].createElement("label", {
@@ -594,7 +613,7 @@ var FormElementsEdit = exports["default"] = /*#__PURE__*/function (_React$Compon
594
613
  onBlur: this.updateElement.bind(this),
595
614
  onChange: this.editElementProp.bind(this, 'min_label', 'value')
596
615
  }))), this.props.element.hasOwnProperty('max_value') && /*#__PURE__*/_react["default"].createElement("div", {
597
- className: "form-group"
616
+ className: "mb-3"
598
617
  }, /*#__PURE__*/_react["default"].createElement("div", {
599
618
  className: "form-group-range"
600
619
  }, /*#__PURE__*/_react["default"].createElement("label", {
@@ -616,7 +635,7 @@ var FormElementsEdit = exports["default"] = /*#__PURE__*/function (_React$Compon
616
635
  onBlur: this.updateElement.bind(this),
617
636
  onChange: this.editElementProp.bind(this, 'max_label', 'value')
618
637
  }))), this.props.element.hasOwnProperty('default_value') && /*#__PURE__*/_react["default"].createElement("div", {
619
- className: "form-group"
638
+ className: "mb-3"
620
639
  }, /*#__PURE__*/_react["default"].createElement("div", {
621
640
  className: "form-group-range"
622
641
  }, /*#__PURE__*/_react["default"].createElement("label", {
@@ -632,41 +651,41 @@ var FormElementsEdit = exports["default"] = /*#__PURE__*/function (_React$Compon
632
651
  onBlur: this.updateElement.bind(this),
633
652
  onChange: this.editElementProp.bind(this, 'default_value', 'value')
634
653
  }))), this.props.element.hasOwnProperty('static') && this.props.element["static"] && /*#__PURE__*/_react["default"].createElement("div", {
635
- className: "form-group"
654
+ className: "mb-3"
636
655
  }, /*#__PURE__*/_react["default"].createElement("label", {
637
656
  className: "control-label"
638
657
  }, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
639
658
  id: "text-style"
640
659
  })), /*#__PURE__*/_react["default"].createElement("div", {
641
- className: "custom-control custom-checkbox"
660
+ className: "form-check"
642
661
  }, /*#__PURE__*/_react["default"].createElement("input", {
643
662
  id: "do-bold",
644
- className: "custom-control-input",
663
+ className: "form-check-input",
645
664
  type: "checkbox",
646
665
  checked: this_checked_bold,
647
666
  value: true,
648
667
  onChange: this.editElementProp.bind(this, 'bold', 'checked')
649
668
  }), /*#__PURE__*/_react["default"].createElement("label", {
650
- className: "custom-control-label",
669
+ className: "form-check-label",
651
670
  htmlFor: "do-bold"
652
671
  }, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
653
672
  id: "bold"
654
673
  }))), /*#__PURE__*/_react["default"].createElement("div", {
655
- className: "custom-control custom-checkbox"
674
+ className: "form-check"
656
675
  }, /*#__PURE__*/_react["default"].createElement("input", {
657
676
  id: "do-italic",
658
- className: "custom-control-input",
677
+ className: "form-check-input",
659
678
  type: "checkbox",
660
679
  checked: this_checked_italic,
661
680
  value: true,
662
681
  onChange: this.editElementProp.bind(this, 'italic', 'checked')
663
682
  }), /*#__PURE__*/_react["default"].createElement("label", {
664
- className: "custom-control-label",
683
+ className: "form-check-label",
665
684
  htmlFor: "do-italic"
666
685
  }, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
667
686
  id: "italic"
668
687
  })))), this.props.element.showDescription && /*#__PURE__*/_react["default"].createElement("div", {
669
- className: "form-group"
688
+ className: "mb-3"
670
689
  }, /*#__PURE__*/_react["default"].createElement("label", {
671
690
  className: "control-label",
672
691
  htmlFor: "questionDescription"
@@ -680,7 +699,7 @@ var FormElementsEdit = exports["default"] = /*#__PURE__*/function (_React$Compon
680
699
  onBlur: this.updateElement.bind(this),
681
700
  onChange: this.editElementProp.bind(this, 'description', 'value')
682
701
  })), this.props.showCorrectColumn && this.props.element.canHaveAnswer && !this.props.element.hasOwnProperty('options') && /*#__PURE__*/_react["default"].createElement("div", {
683
- className: "form-group"
702
+ className: "mb-3"
684
703
  }, /*#__PURE__*/_react["default"].createElement("label", {
685
704
  className: "control-label",
686
705
  htmlFor: "correctAnswer"
@@ -694,7 +713,7 @@ var FormElementsEdit = exports["default"] = /*#__PURE__*/function (_React$Compon
694
713
  onBlur: this.updateElement.bind(this),
695
714
  onChange: this.editElementProp.bind(this, 'correct', 'value')
696
715
  })), this.props.element.canPopulateFromApi && this.props.element.hasOwnProperty('options') && /*#__PURE__*/_react["default"].createElement("div", {
697
- className: "form-group"
716
+ className: "mb-3"
698
717
  }, /*#__PURE__*/_react["default"].createElement("label", {
699
718
  className: "control-label",
700
719
  htmlFor: "optionsApiUrl"
@@ -85,13 +85,13 @@ var FormValidator = exports["default"] = /*#__PURE__*/function (_React$Component
85
85
  }, /*#__PURE__*/_react["default"].createElement("div", {
86
86
  className: "clearfix"
87
87
  }, /*#__PURE__*/_react["default"].createElement("i", {
88
- className: "fas fa-exclamation-triangle float-left"
88
+ className: "fas fa-exclamation-triangle float-start"
89
89
  }), /*#__PURE__*/_react["default"].createElement("ul", {
90
- className: "float-left"
90
+ className: "float-start"
91
91
  }, errors)), /*#__PURE__*/_react["default"].createElement("div", {
92
92
  className: "clearfix"
93
93
  }, /*#__PURE__*/_react["default"].createElement("a", {
94
- className: "float-right btn btn-default btn-sm btn-danger",
94
+ className: "float-end btn btn-secondary btn-sm btn-danger",
95
95
  onClick: this.dismissModal.bind(this)
96
96
  }, /*#__PURE__*/_react["default"].createElement(_IntlMessages["default"], {
97
97
  id: "dismiss"
package/lib/form.js CHANGED
@@ -60,7 +60,7 @@ var ReactForm = /*#__PURE__*/function (_React$Component) {
60
60
  backButton = _this$props$backButto === void 0 ? false : _this$props$backButto;
61
61
  return backButton || /*#__PURE__*/_react["default"].createElement("a", {
62
62
  href: _this.props.back_action,
63
- className: "btn btn-default btn-cancel btn-big"
63
+ className: "btn btn-secondary btn-cancel btn-big"
64
64
  }, backName);
65
65
  });
66
66
  _this.answerData = _this._convert(props.answer_data);
@@ -31,6 +31,7 @@
31
31
  "description": "Description",
32
32
  "correct-answer" : "Correct Answer",
33
33
  "populate-options-from-api" : "Populate Options from API",
34
+ "minimum-number-of-selections" : "The minimum number of options a customer must select",
34
35
  "populate" : "Populate",
35
36
  "pdf" : "PDF",
36
37
  "word" : "Word",
@@ -31,6 +31,7 @@
31
31
  "description": "توضیحات",
32
32
  "correct-answer": "پاسخ صحیح",
33
33
  "populate-options-from-api": "پر کردن گزینه‌ها از API",
34
+ "minimum-number-of-selections" : "حداقل تعداد گزینه‌هایی که مشتری باید انتخاب کند",
34
35
  "populate": "پر کردن",
35
36
  "pdf": "PDF",
36
37
  "word": "Word",
@@ -31,6 +31,7 @@
31
31
  "description": "Descrizione",
32
32
  "correct-answer" : "Risposta corretta",
33
33
  "populate-options-from-api" : "Popola opzione da API",
34
+ "minimum-number-of-selections" : "Il numero minimo di opzioni che un cliente deve selezionare",
34
35
  "populate" : "Popola",
35
36
  "pdf" : "PDF",
36
37
  "word" : "Word",
@@ -29,6 +29,7 @@
29
29
  "description": "Mô tả",
30
30
  "correct-answer": "Lựa chọn đúng",
31
31
  "populate-options-from-api": "Lấy dữ liệu từ API",
32
+ "minimum-number-of-selections" : "Số lượng lựa chọn tối thiểu mà khách hàng phải chọn",
32
33
  "populate": "Thực hiện",
33
34
  "display-label-after-camera-icon" : "Hiển thị nhãn sau biểu tượng máy ảnh",
34
35
  "place-holder-display-label-after-camera-icon" : "Tải ảnh lên",
@@ -61,7 +61,9 @@ function isContainer(item) {
61
61
  return true;
62
62
  }
63
63
  if (data.field_name) {
64
- return data.field_name.indexOf('_col_row') > -1;
64
+ // Check if the field name indicates a container
65
+ // Fix a runtime error when dropping a fieldset inside a multi-column row - which dropping seems not supported
66
+ return data.field_name.indexOf('_col_row') > -1 || data.field_name.indexOf('fieldset') > -1;
65
67
  }
66
68
  }
67
69
  }
package/lib/preview.js CHANGED
@@ -381,7 +381,7 @@ Preview.defaultProps = {
381
381
  files: [],
382
382
  editMode: false,
383
383
  editElement: null,
384
- className: 'col-md-9 react-form-builder-preview float-left',
384
+ className: 'col-md-9 react-form-builder-preview float-start',
385
385
  renderEditForm: function renderEditForm(props) {
386
386
  return /*#__PURE__*/_react["default"].createElement(_formDynamicEdit["default"], props);
387
387
  }
@@ -14,7 +14,7 @@ var _react = _interopRequireWildcard(require("react"));
14
14
  var _propTypes = _interopRequireDefault(require("prop-types"));
15
15
  var _reactDnd = require("react-dnd");
16
16
  var _ItemTypes = _interopRequireDefault(require("./ItemTypes"));
17
- var _excluded = ["index", "id", "moveCard", "seq"];
17
+ var _excluded = ["index", "id", "moveCard", "seq", "component"];
18
18
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
19
19
  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; }
20
20
  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; }
@@ -153,20 +153,19 @@ var useDragAndDrop = function useDragAndDrop(props) {
153
153
 
154
154
  // Modern approach using a functional component wrapper instead of HOC
155
155
  var DraggableCard = function DraggableCard(props) {
156
+ // ✅ Move the default value directly into destructuring
156
157
  var index = props.index,
157
158
  id = props.id,
158
159
  moveCard = props.moveCard,
159
160
  _props$seq = props.seq,
160
161
  seq = _props$seq === void 0 ? -1 : _props$seq,
162
+ ComposedComponent = props.component,
161
163
  restProps = (0, _objectWithoutProperties2["default"])(props, _excluded);
162
164
  var _useDragAndDrop = useDragAndDrop(props),
163
165
  ref = _useDragAndDrop.ref,
164
166
  previewRef = _useDragAndDrop.previewRef,
165
167
  isDragging = _useDragAndDrop.isDragging;
166
168
  var opacity = isDragging ? 0 : 1;
167
-
168
- // Use the ComposedComponent passed in props
169
- var ComposedComponent = props.component;
170
169
  return /*#__PURE__*/_react["default"].createElement("div", {
171
170
  ref: previewRef
172
171
  }, /*#__PURE__*/_react["default"].createElement("div", {
@@ -189,9 +188,11 @@ DraggableCard.propTypes = {
189
188
  moveCard: _propTypes["default"].func.isRequired,
190
189
  seq: _propTypes["default"].number
191
190
  };
192
- DraggableCard.defaultProps = {
193
- seq: -1
194
- };
191
+
192
+ // ❌ REMOVE THIS BLOCK ENTIRELY
193
+ // DraggableCard.defaultProps = {
194
+ // seq: -1,
195
+ // };
195
196
 
196
197
  // This replaces the HOC pattern with a component that takes the component as a prop
197
198
  function createDraggableCard(ComposedComponent) {
package/lib/toolbar.js CHANGED
@@ -588,7 +588,7 @@ var Toolbar = /*#__PURE__*/function (_React$Component) {
588
588
  grouped = _buildGroupItems.grouped,
589
589
  groupKeys = _buildGroupItems.groupKeys;
590
590
  return /*#__PURE__*/_react["default"].createElement("div", {
591
- className: "col-md-3 react-form-builder-toolbar float-right",
591
+ className: "col-md-3 react-form-builder-toolbar float-end",
592
592
  style: {
593
593
  position: this.state.isPinned ? 'fixed' : '',
594
594
  // set up the vertical boundary by top/bottom,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@goldenpine/react-form-builder2",
3
- "version": "0.20.3-build.2",
3
+ "version": "0.20.3-build.20",
4
4
  "description": "A complete form builder for react.",
5
5
  "main": "lib/index.js",
6
6
  "types": "types/index.d.ts",
@@ -29,7 +29,7 @@
29
29
  "engines": {
30
30
  "node": ">=18.0.0"
31
31
  },
32
- "author": "Kiho Chang",
32
+ "author": "Golden Pine",
33
33
  "dependencies": {
34
34
  "beedle": "^0.8.1",
35
35
  "classnames": "^2.2.6",
@@ -43,7 +43,7 @@
43
43
  "immutability-helper": "^3.1.1",
44
44
  "isomorphic-fetch": "^3.0.0",
45
45
  "prop-types": "^15.7.2",
46
- "react-bootstrap-slider": "^3.0.0",
46
+ "@goldenpine/react-bootstrap-slider": "^3.0.1",
47
47
  "react-datepicker": "^8.3.0",
48
48
  "react-dnd": "^16.0.1",
49
49
  "react-dnd-html5-backend": "^16.0.1",