labellife-design-tool 2.2.9 → 2.3.0

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.
@@ -4640,7 +4640,7 @@ function ImagesGrid(_ref) {
4640
4640
  });
4641
4641
  }
4642
4642
 
4643
- var _excluded = ["inputField", "promptText", "inputType", "required", "placeholder", "options", "minSelections", "maxSelections"];
4643
+ var _excluded = ["inputField", "promptText", "inputType", "required", "removeIfSkipped", "placeholder", "options", "minSelections", "maxSelections"];
4644
4644
  var IMAGE_PLACEHOLDER_SRC = "data:image/svg+xml;charset=utf-8,".concat(encodeURIComponent("<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"400\" height=\"400\" viewBox=\"0 0 400 400\">\n <rect width=\"400\" height=\"400\" fill=\"#f0f2f5\" rx=\"12\"/>\n <rect x=\"110\" y=\"90\" width=\"180\" height=\"145\" rx=\"10\" fill=\"#dde1e7\"/>\n <circle cx=\"158\" cy=\"135\" r=\"22\" fill=\"#f0f2f5\"/>\n <polygon points=\"110,235 168,163 210,205 250,163 290,235\" fill=\"#c8cdd6\"/>\n <rect x=\"140\" y=\"268\" width=\"120\" height=\"14\" rx=\"7\" fill=\"#c8cdd6\"/>\n <rect x=\"160\" y=\"292\" width=\"80\" height=\"10\" rx=\"5\" fill=\"#dde1e7\"/>\n </svg>"));
4645
4645
 
4646
4646
  // ── Date formatting helpers ──────────────────────────────────────────
@@ -4881,6 +4881,30 @@ var InputFieldsPanelContent = observer(function (_ref3) {
4881
4881
  _useState30 = _slicedToArray(_useState29, 2),
4882
4882
  listOptions = _useState30[0],
4883
4883
  setListOptions = _useState30[1];
4884
+ var _useState31 = useState(false),
4885
+ _useState32 = _slicedToArray(_useState31, 2),
4886
+ textRemoveIfSkipped = _useState32[0],
4887
+ setTextRemoveIfSkipped = _useState32[1];
4888
+ var _useState33 = useState(false),
4889
+ _useState34 = _slicedToArray(_useState33, 2),
4890
+ dateRemoveIfSkipped = _useState34[0],
4891
+ setDateRemoveIfSkipped = _useState34[1];
4892
+ var _useState35 = useState(false),
4893
+ _useState36 = _slicedToArray(_useState35, 2),
4894
+ integerRemoveIfSkipped = _useState36[0],
4895
+ setIntegerRemoveIfSkipped = _useState36[1];
4896
+ var _useState37 = useState(false),
4897
+ _useState38 = _slicedToArray(_useState37, 2),
4898
+ imageRemoveIfSkipped = _useState38[0],
4899
+ setImageRemoveIfSkipped = _useState38[1];
4900
+ var _useState39 = useState(false),
4901
+ _useState40 = _slicedToArray(_useState39, 2),
4902
+ radioRemoveIfSkipped = _useState40[0],
4903
+ setRadioRemoveIfSkipped = _useState40[1];
4904
+ var _useState41 = useState(false),
4905
+ _useState42 = _slicedToArray(_useState41, 2),
4906
+ listRemoveIfSkipped = _useState42[0],
4907
+ setListRemoveIfSkipped = _useState42[1];
4884
4908
  var addInputElement = function addInputElement(inputType) {
4885
4909
  var extra = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
4886
4910
  var page = store.activePage;
@@ -4900,7 +4924,8 @@ var InputFieldsPanelContent = observer(function (_ref3) {
4900
4924
  inputType: 'image',
4901
4925
  placeholder: t('sidePanel.inputFields.imagePlaceholder', 'Upload image'),
4902
4926
  promptText: extra.promptText || t('sidePanel.inputFields.defaultImagePrompt', 'Please upload an image'),
4903
- required: extra.required || false
4927
+ required: extra.required || false,
4928
+ removeIfSkipped: extra.removeIfSkipped || false
4904
4929
  }
4905
4930
  });
4906
4931
  } else {
@@ -4956,7 +4981,8 @@ var InputFieldsPanelContent = observer(function (_ref3) {
4956
4981
  inputType: inputType,
4957
4982
  placeholder: placeholder,
4958
4983
  promptText: extra.promptText || defaultPrompt,
4959
- required: extra.required || false
4984
+ required: extra.required || false,
4985
+ removeIfSkipped: extra.removeIfSkipped || false
4960
4986
  }, inputType === 'date' ? {
4961
4987
  dateFormat: extra.dateFormat || 'MM-DD-YYYY'
4962
4988
  } : {}), ['radio', 'list'].includes(inputType) ? {
@@ -5007,7 +5033,8 @@ var InputFieldsPanelContent = observer(function (_ref3) {
5007
5033
  onClick: function onClick() {
5008
5034
  return addInputElement('text', {
5009
5035
  promptText: textPrompt,
5010
- required: textRequired
5036
+ required: textRequired,
5037
+ removeIfSkipped: textRemoveIfSkipped
5011
5038
  });
5012
5039
  }
5013
5040
  }), /*#__PURE__*/jsx(TextField, {
@@ -5042,6 +5069,23 @@ var InputFieldsPanelContent = observer(function (_ref3) {
5042
5069
  sx: {
5043
5070
  ml: 5.5
5044
5071
  }
5072
+ }), !textRequired && /*#__PURE__*/jsx(FormControlLabel, {
5073
+ control: /*#__PURE__*/jsx(Checkbox, {
5074
+ size: "small",
5075
+ checked: textRemoveIfSkipped,
5076
+ onChange: function onChange(e) {
5077
+ return setTextRemoveIfSkipped(e.target.checked);
5078
+ }
5079
+ }),
5080
+ label: /*#__PURE__*/jsx(Typography, {
5081
+ sx: {
5082
+ fontSize: 12
5083
+ },
5084
+ children: t('sidePanel.inputFields.removeIfSkipped', 'Remove if skipped')
5085
+ }),
5086
+ sx: {
5087
+ ml: 5.5
5088
+ }
5045
5089
  }), /*#__PURE__*/jsx(InputFieldCard, {
5046
5090
  icon: /*#__PURE__*/jsx(CalendarTodayIcon, {
5047
5091
  fontSize: "small"
@@ -5052,7 +5096,8 @@ var InputFieldsPanelContent = observer(function (_ref3) {
5052
5096
  return addInputElement('date', {
5053
5097
  dateFormat: dateFormat,
5054
5098
  promptText: datePrompt,
5055
- required: dateRequired
5099
+ required: dateRequired,
5100
+ removeIfSkipped: dateRemoveIfSkipped
5056
5101
  });
5057
5102
  }
5058
5103
  }), /*#__PURE__*/jsx(TextField, {
@@ -5087,6 +5132,23 @@ var InputFieldsPanelContent = observer(function (_ref3) {
5087
5132
  sx: {
5088
5133
  ml: 5.5
5089
5134
  }
5135
+ }), !dateRequired && /*#__PURE__*/jsx(FormControlLabel, {
5136
+ control: /*#__PURE__*/jsx(Checkbox, {
5137
+ size: "small",
5138
+ checked: dateRemoveIfSkipped,
5139
+ onChange: function onChange(e) {
5140
+ return setDateRemoveIfSkipped(e.target.checked);
5141
+ }
5142
+ }),
5143
+ label: /*#__PURE__*/jsx(Typography, {
5144
+ sx: {
5145
+ fontSize: 12
5146
+ },
5147
+ children: t('sidePanel.inputFields.removeIfSkipped', 'Remove if skipped')
5148
+ }),
5149
+ sx: {
5150
+ ml: 5.5
5151
+ }
5090
5152
  }), /*#__PURE__*/jsxs(FormControl, {
5091
5153
  size: "small",
5092
5154
  sx: {
@@ -5126,7 +5188,8 @@ var InputFieldsPanelContent = observer(function (_ref3) {
5126
5188
  onClick: function onClick() {
5127
5189
  return addInputElement('integer', {
5128
5190
  promptText: integerPrompt,
5129
- required: integerRequired
5191
+ required: integerRequired,
5192
+ removeIfSkipped: integerRemoveIfSkipped
5130
5193
  });
5131
5194
  }
5132
5195
  }), /*#__PURE__*/jsx(TextField, {
@@ -5161,6 +5224,23 @@ var InputFieldsPanelContent = observer(function (_ref3) {
5161
5224
  sx: {
5162
5225
  ml: 5.5
5163
5226
  }
5227
+ }), !integerRequired && /*#__PURE__*/jsx(FormControlLabel, {
5228
+ control: /*#__PURE__*/jsx(Checkbox, {
5229
+ size: "small",
5230
+ checked: integerRemoveIfSkipped,
5231
+ onChange: function onChange(e) {
5232
+ return setIntegerRemoveIfSkipped(e.target.checked);
5233
+ }
5234
+ }),
5235
+ label: /*#__PURE__*/jsx(Typography, {
5236
+ sx: {
5237
+ fontSize: 12
5238
+ },
5239
+ children: t('sidePanel.inputFields.removeIfSkipped', 'Remove if skipped')
5240
+ }),
5241
+ sx: {
5242
+ ml: 5.5
5243
+ }
5164
5244
  }), /*#__PURE__*/jsx(InputFieldCard, {
5165
5245
  icon: /*#__PURE__*/jsx(ImageIcon, {
5166
5246
  fontSize: "small"
@@ -5170,7 +5250,8 @@ var InputFieldsPanelContent = observer(function (_ref3) {
5170
5250
  onClick: function onClick() {
5171
5251
  return addInputElement('image', {
5172
5252
  promptText: imagePrompt,
5173
- required: imageRequired
5253
+ required: imageRequired,
5254
+ removeIfSkipped: imageRemoveIfSkipped
5174
5255
  });
5175
5256
  }
5176
5257
  }), /*#__PURE__*/jsx(TextField, {
@@ -5205,6 +5286,23 @@ var InputFieldsPanelContent = observer(function (_ref3) {
5205
5286
  sx: {
5206
5287
  ml: 5.5
5207
5288
  }
5289
+ }), !imageRequired && /*#__PURE__*/jsx(FormControlLabel, {
5290
+ control: /*#__PURE__*/jsx(Checkbox, {
5291
+ size: "small",
5292
+ checked: imageRemoveIfSkipped,
5293
+ onChange: function onChange(e) {
5294
+ return setImageRemoveIfSkipped(e.target.checked);
5295
+ }
5296
+ }),
5297
+ label: /*#__PURE__*/jsx(Typography, {
5298
+ sx: {
5299
+ fontSize: 12
5300
+ },
5301
+ children: t('sidePanel.inputFields.removeIfSkipped', 'Remove if skipped')
5302
+ }),
5303
+ sx: {
5304
+ ml: 5.5
5305
+ }
5208
5306
  }), /*#__PURE__*/jsx(InputFieldCard, {
5209
5307
  icon: /*#__PURE__*/jsx(RadioButtonCheckedIcon, {
5210
5308
  fontSize: "small"
@@ -5215,7 +5313,8 @@ var InputFieldsPanelContent = observer(function (_ref3) {
5215
5313
  return addInputElement('radio', {
5216
5314
  promptText: radioPrompt,
5217
5315
  required: radioRequired,
5218
- options: radioOptions
5316
+ options: radioOptions,
5317
+ removeIfSkipped: radioRemoveIfSkipped
5219
5318
  });
5220
5319
  }
5221
5320
  }), /*#__PURE__*/jsx(TextField, {
@@ -5250,6 +5349,23 @@ var InputFieldsPanelContent = observer(function (_ref3) {
5250
5349
  sx: {
5251
5350
  ml: 5.5
5252
5351
  }
5352
+ }), !radioRequired && /*#__PURE__*/jsx(FormControlLabel, {
5353
+ control: /*#__PURE__*/jsx(Checkbox, {
5354
+ size: "small",
5355
+ checked: radioRemoveIfSkipped,
5356
+ onChange: function onChange(e) {
5357
+ return setRadioRemoveIfSkipped(e.target.checked);
5358
+ }
5359
+ }),
5360
+ label: /*#__PURE__*/jsx(Typography, {
5361
+ sx: {
5362
+ fontSize: 12
5363
+ },
5364
+ children: t('sidePanel.inputFields.removeIfSkipped', 'Remove if skipped')
5365
+ }),
5366
+ sx: {
5367
+ ml: 5.5
5368
+ }
5253
5369
  }), /*#__PURE__*/jsx(OptionsEditor, {
5254
5370
  options: radioOptions,
5255
5371
  onChange: setRadioOptions
@@ -5264,7 +5380,8 @@ var InputFieldsPanelContent = observer(function (_ref3) {
5264
5380
  promptText: listPrompt,
5265
5381
  minSelections: listMinSelections,
5266
5382
  maxSelections: listMaxSelections,
5267
- options: listOptions
5383
+ options: listOptions,
5384
+ removeIfSkipped: listRemoveIfSkipped
5268
5385
  });
5269
5386
  }
5270
5387
  }), /*#__PURE__*/jsx(TextField, {
@@ -5337,6 +5454,23 @@ var InputFieldsPanelContent = observer(function (_ref3) {
5337
5454
  fontSize: 10
5338
5455
  },
5339
5456
  children: listMinSelections > 0 ? "Required \xB7 min ".concat(listMinSelections).concat(listMaxSelections > 0 ? ", max ".concat(listMaxSelections) : ', no max') : "Optional \xB7 max ".concat(listMaxSelections > 0 ? listMaxSelections : '∞')
5457
+ }), listMinSelections === 0 && /*#__PURE__*/jsx(FormControlLabel, {
5458
+ control: /*#__PURE__*/jsx(Checkbox, {
5459
+ size: "small",
5460
+ checked: listRemoveIfSkipped,
5461
+ onChange: function onChange(e) {
5462
+ return setListRemoveIfSkipped(e.target.checked);
5463
+ }
5464
+ }),
5465
+ label: /*#__PURE__*/jsx(Typography, {
5466
+ sx: {
5467
+ fontSize: 12
5468
+ },
5469
+ children: t('sidePanel.inputFields.removeIfSkipped', 'Remove if skipped')
5470
+ }),
5471
+ sx: {
5472
+ ml: 5.5
5473
+ }
5340
5474
  })]
5341
5475
  }), /*#__PURE__*/jsx(Divider, {
5342
5476
  sx: {
@@ -5369,30 +5503,34 @@ var InputFieldsPanelContent = observer(function (_ref3) {
5369
5503
  var MarkAsVariableForm = observer(function (_ref4) {
5370
5504
  var _selectedElement$cust;
5371
5505
  var store = _ref4.store;
5372
- var _useState31 = useState(''),
5373
- _useState32 = _slicedToArray(_useState31, 2),
5374
- markLabel = _useState32[0],
5375
- setMarkLabel = _useState32[1];
5376
- var _useState33 = useState(false),
5377
- _useState34 = _slicedToArray(_useState33, 2),
5378
- markRequired = _useState34[0],
5379
- setMarkRequired = _useState34[1];
5380
- var _useState35 = useState('text'),
5381
- _useState36 = _slicedToArray(_useState35, 2),
5382
- markInputType = _useState36[0],
5383
- setMarkInputType = _useState36[1];
5384
- var _useState37 = useState(['Option 1', 'Option 2']),
5385
- _useState38 = _slicedToArray(_useState37, 2),
5386
- markOptions = _useState38[0],
5387
- setMarkOptions = _useState38[1];
5388
- var _useState39 = useState(0),
5389
- _useState40 = _slicedToArray(_useState39, 2),
5390
- markMinSelections = _useState40[0],
5391
- setMarkMinSelections = _useState40[1];
5392
- var _useState41 = useState(2),
5393
- _useState42 = _slicedToArray(_useState41, 2),
5394
- markMaxSelections = _useState42[0],
5395
- setMarkMaxSelections = _useState42[1];
5506
+ var _useState43 = useState(''),
5507
+ _useState44 = _slicedToArray(_useState43, 2),
5508
+ markLabel = _useState44[0],
5509
+ setMarkLabel = _useState44[1];
5510
+ var _useState45 = useState(false),
5511
+ _useState46 = _slicedToArray(_useState45, 2),
5512
+ markRequired = _useState46[0],
5513
+ setMarkRequired = _useState46[1];
5514
+ var _useState47 = useState('text'),
5515
+ _useState48 = _slicedToArray(_useState47, 2),
5516
+ markInputType = _useState48[0],
5517
+ setMarkInputType = _useState48[1];
5518
+ var _useState49 = useState(['Option 1', 'Option 2']),
5519
+ _useState50 = _slicedToArray(_useState49, 2),
5520
+ markOptions = _useState50[0],
5521
+ setMarkOptions = _useState50[1];
5522
+ var _useState51 = useState(0),
5523
+ _useState52 = _slicedToArray(_useState51, 2),
5524
+ markMinSelections = _useState52[0],
5525
+ setMarkMinSelections = _useState52[1];
5526
+ var _useState53 = useState(2),
5527
+ _useState54 = _slicedToArray(_useState53, 2),
5528
+ markMaxSelections = _useState54[0],
5529
+ setMarkMaxSelections = _useState54[1];
5530
+ var _useState55 = useState(false),
5531
+ _useState56 = _slicedToArray(_useState55, 2),
5532
+ markRemoveIfSkipped = _useState56[0],
5533
+ setMarkRemoveIfSkipped = _useState56[1];
5396
5534
  var selectedIds = store.selectedElementsIds || [];
5397
5535
  var selectedElement = selectedIds.length === 1 ? store.getElementById(selectedIds[0]) : null;
5398
5536
  var isImageElement = (selectedElement === null || selectedElement === void 0 ? void 0 : selectedElement.type) === 'image';
@@ -5401,13 +5539,14 @@ var MarkAsVariableForm = observer(function (_ref4) {
5401
5539
  var isAlreadyVariable = !!(selectedElement !== null && selectedElement !== void 0 && (_selectedElement$cust = selectedElement.custom) !== null && _selectedElement$cust !== void 0 && _selectedElement$cust.inputField);
5402
5540
  useEffect(function () {
5403
5541
  if (selectedElement && isSupportedElement) {
5404
- var _selectedElement$cust2, _selectedElement$cust3, _selectedElement$cust4, _selectedElement$cust5, _selectedElement$cust6, _selectedElement$cust7;
5542
+ var _selectedElement$cust2, _selectedElement$cust3, _selectedElement$cust4, _selectedElement$cust5, _selectedElement$cust6, _selectedElement$cust7, _selectedElement$cust8;
5405
5543
  setMarkLabel(((_selectedElement$cust2 = selectedElement.custom) === null || _selectedElement$cust2 === void 0 ? void 0 : _selectedElement$cust2.promptText) || '');
5406
5544
  setMarkRequired(!!((_selectedElement$cust3 = selectedElement.custom) !== null && _selectedElement$cust3 !== void 0 && _selectedElement$cust3.required));
5407
5545
  setMarkInputType(isImageElement ? 'image' : ((_selectedElement$cust4 = selectedElement.custom) === null || _selectedElement$cust4 === void 0 ? void 0 : _selectedElement$cust4.inputType) || 'text');
5408
5546
  setMarkOptions(((_selectedElement$cust5 = selectedElement.custom) === null || _selectedElement$cust5 === void 0 ? void 0 : _selectedElement$cust5.options) || ['Option 1', 'Option 2']);
5409
5547
  setMarkMinSelections(((_selectedElement$cust6 = selectedElement.custom) === null || _selectedElement$cust6 === void 0 ? void 0 : _selectedElement$cust6.minSelections) || 0);
5410
5548
  setMarkMaxSelections(((_selectedElement$cust7 = selectedElement.custom) === null || _selectedElement$cust7 === void 0 ? void 0 : _selectedElement$cust7.maxSelections) || 2);
5549
+ setMarkRemoveIfSkipped(!!((_selectedElement$cust8 = selectedElement.custom) !== null && _selectedElement$cust8 !== void 0 && _selectedElement$cust8.removeIfSkipped));
5411
5550
  } else {
5412
5551
  setMarkLabel('');
5413
5552
  setMarkRequired(false);
@@ -5415,6 +5554,7 @@ var MarkAsVariableForm = observer(function (_ref4) {
5415
5554
  setMarkOptions(['Option 1', 'Option 2']);
5416
5555
  setMarkMinSelections(0);
5417
5556
  setMarkMaxSelections(2);
5557
+ setMarkRemoveIfSkipped(false);
5418
5558
  }
5419
5559
  }, [selectedElement === null || selectedElement === void 0 ? void 0 : selectedElement.id]);
5420
5560
  var handleMark = function handleMark() {
@@ -5425,7 +5565,8 @@ var MarkAsVariableForm = observer(function (_ref4) {
5425
5565
  inputField: true,
5426
5566
  promptText: markLabel.trim(),
5427
5567
  inputType: effectiveType,
5428
- required: markRequired
5568
+ required: markRequired,
5569
+ removeIfSkipped: !markRequired && markRemoveIfSkipped
5429
5570
  }, ['radio', 'list'].includes(effectiveType) ? {
5430
5571
  options: markOptions.filter(Boolean)
5431
5572
  } : {}), effectiveType === 'list' ? {
@@ -5442,6 +5583,7 @@ var MarkAsVariableForm = observer(function (_ref4) {
5442
5583
  _ref5.promptText;
5443
5584
  _ref5.inputType;
5444
5585
  _ref5.required;
5586
+ _ref5.removeIfSkipped;
5445
5587
  _ref5.placeholder;
5446
5588
  _ref5.options;
5447
5589
  _ref5.minSelections;
@@ -5662,6 +5804,20 @@ var MarkAsVariableForm = observer(function (_ref4) {
5662
5804
  },
5663
5805
  children: t('sidePanel.inputFields.required', 'Required')
5664
5806
  })
5807
+ }), !markRequired && /*#__PURE__*/jsx(FormControlLabel, {
5808
+ control: /*#__PURE__*/jsx(Checkbox, {
5809
+ size: "small",
5810
+ checked: markRemoveIfSkipped,
5811
+ onChange: function onChange(e) {
5812
+ return setMarkRemoveIfSkipped(e.target.checked);
5813
+ }
5814
+ }),
5815
+ label: /*#__PURE__*/jsx(Typography, {
5816
+ sx: {
5817
+ fontSize: 12
5818
+ },
5819
+ children: t('sidePanel.inputFields.removeIfSkipped', 'Remove if skipped')
5820
+ })
5665
5821
  }), /*#__PURE__*/jsx(Button, {
5666
5822
  variant: "contained",
5667
5823
  size: "small",