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.
@@ -4642,7 +4642,7 @@ function ImagesGrid(_ref) {
4642
4642
  });
4643
4643
  }
4644
4644
 
4645
- var _excluded = ["inputField", "promptText", "inputType", "required", "placeholder", "options", "minSelections", "maxSelections"];
4645
+ var _excluded = ["inputField", "promptText", "inputType", "required", "removeIfSkipped", "placeholder", "options", "minSelections", "maxSelections"];
4646
4646
  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>"));
4647
4647
 
4648
4648
  // ── Date formatting helpers ──────────────────────────────────────────
@@ -4883,6 +4883,30 @@ var InputFieldsPanelContent = mobxReactLite.observer(function (_ref3) {
4883
4883
  _useState30 = _slicedToArray(_useState29, 2),
4884
4884
  listOptions = _useState30[0],
4885
4885
  setListOptions = _useState30[1];
4886
+ var _useState31 = react.useState(false),
4887
+ _useState32 = _slicedToArray(_useState31, 2),
4888
+ textRemoveIfSkipped = _useState32[0],
4889
+ setTextRemoveIfSkipped = _useState32[1];
4890
+ var _useState33 = react.useState(false),
4891
+ _useState34 = _slicedToArray(_useState33, 2),
4892
+ dateRemoveIfSkipped = _useState34[0],
4893
+ setDateRemoveIfSkipped = _useState34[1];
4894
+ var _useState35 = react.useState(false),
4895
+ _useState36 = _slicedToArray(_useState35, 2),
4896
+ integerRemoveIfSkipped = _useState36[0],
4897
+ setIntegerRemoveIfSkipped = _useState36[1];
4898
+ var _useState37 = react.useState(false),
4899
+ _useState38 = _slicedToArray(_useState37, 2),
4900
+ imageRemoveIfSkipped = _useState38[0],
4901
+ setImageRemoveIfSkipped = _useState38[1];
4902
+ var _useState39 = react.useState(false),
4903
+ _useState40 = _slicedToArray(_useState39, 2),
4904
+ radioRemoveIfSkipped = _useState40[0],
4905
+ setRadioRemoveIfSkipped = _useState40[1];
4906
+ var _useState41 = react.useState(false),
4907
+ _useState42 = _slicedToArray(_useState41, 2),
4908
+ listRemoveIfSkipped = _useState42[0],
4909
+ setListRemoveIfSkipped = _useState42[1];
4886
4910
  var addInputElement = function addInputElement(inputType) {
4887
4911
  var extra = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
4888
4912
  var page = store.activePage;
@@ -4902,7 +4926,8 @@ var InputFieldsPanelContent = mobxReactLite.observer(function (_ref3) {
4902
4926
  inputType: 'image',
4903
4927
  placeholder: t('sidePanel.inputFields.imagePlaceholder', 'Upload image'),
4904
4928
  promptText: extra.promptText || t('sidePanel.inputFields.defaultImagePrompt', 'Please upload an image'),
4905
- required: extra.required || false
4929
+ required: extra.required || false,
4930
+ removeIfSkipped: extra.removeIfSkipped || false
4906
4931
  }
4907
4932
  });
4908
4933
  } else {
@@ -4958,7 +4983,8 @@ var InputFieldsPanelContent = mobxReactLite.observer(function (_ref3) {
4958
4983
  inputType: inputType,
4959
4984
  placeholder: placeholder,
4960
4985
  promptText: extra.promptText || defaultPrompt,
4961
- required: extra.required || false
4986
+ required: extra.required || false,
4987
+ removeIfSkipped: extra.removeIfSkipped || false
4962
4988
  }, inputType === 'date' ? {
4963
4989
  dateFormat: extra.dateFormat || 'MM-DD-YYYY'
4964
4990
  } : {}), ['radio', 'list'].includes(inputType) ? {
@@ -5009,7 +5035,8 @@ var InputFieldsPanelContent = mobxReactLite.observer(function (_ref3) {
5009
5035
  onClick: function onClick() {
5010
5036
  return addInputElement('text', {
5011
5037
  promptText: textPrompt,
5012
- required: textRequired
5038
+ required: textRequired,
5039
+ removeIfSkipped: textRemoveIfSkipped
5013
5040
  });
5014
5041
  }
5015
5042
  }), /*#__PURE__*/jsxRuntime.jsx(material.TextField, {
@@ -5044,6 +5071,23 @@ var InputFieldsPanelContent = mobxReactLite.observer(function (_ref3) {
5044
5071
  sx: {
5045
5072
  ml: 5.5
5046
5073
  }
5074
+ }), !textRequired && /*#__PURE__*/jsxRuntime.jsx(material.FormControlLabel, {
5075
+ control: /*#__PURE__*/jsxRuntime.jsx(material.Checkbox, {
5076
+ size: "small",
5077
+ checked: textRemoveIfSkipped,
5078
+ onChange: function onChange(e) {
5079
+ return setTextRemoveIfSkipped(e.target.checked);
5080
+ }
5081
+ }),
5082
+ label: /*#__PURE__*/jsxRuntime.jsx(material.Typography, {
5083
+ sx: {
5084
+ fontSize: 12
5085
+ },
5086
+ children: t('sidePanel.inputFields.removeIfSkipped', 'Remove if skipped')
5087
+ }),
5088
+ sx: {
5089
+ ml: 5.5
5090
+ }
5047
5091
  }), /*#__PURE__*/jsxRuntime.jsx(InputFieldCard, {
5048
5092
  icon: /*#__PURE__*/jsxRuntime.jsx(CalendarTodayIcon, {
5049
5093
  fontSize: "small"
@@ -5054,7 +5098,8 @@ var InputFieldsPanelContent = mobxReactLite.observer(function (_ref3) {
5054
5098
  return addInputElement('date', {
5055
5099
  dateFormat: dateFormat,
5056
5100
  promptText: datePrompt,
5057
- required: dateRequired
5101
+ required: dateRequired,
5102
+ removeIfSkipped: dateRemoveIfSkipped
5058
5103
  });
5059
5104
  }
5060
5105
  }), /*#__PURE__*/jsxRuntime.jsx(material.TextField, {
@@ -5089,6 +5134,23 @@ var InputFieldsPanelContent = mobxReactLite.observer(function (_ref3) {
5089
5134
  sx: {
5090
5135
  ml: 5.5
5091
5136
  }
5137
+ }), !dateRequired && /*#__PURE__*/jsxRuntime.jsx(material.FormControlLabel, {
5138
+ control: /*#__PURE__*/jsxRuntime.jsx(material.Checkbox, {
5139
+ size: "small",
5140
+ checked: dateRemoveIfSkipped,
5141
+ onChange: function onChange(e) {
5142
+ return setDateRemoveIfSkipped(e.target.checked);
5143
+ }
5144
+ }),
5145
+ label: /*#__PURE__*/jsxRuntime.jsx(material.Typography, {
5146
+ sx: {
5147
+ fontSize: 12
5148
+ },
5149
+ children: t('sidePanel.inputFields.removeIfSkipped', 'Remove if skipped')
5150
+ }),
5151
+ sx: {
5152
+ ml: 5.5
5153
+ }
5092
5154
  }), /*#__PURE__*/jsxRuntime.jsxs(material.FormControl, {
5093
5155
  size: "small",
5094
5156
  sx: {
@@ -5128,7 +5190,8 @@ var InputFieldsPanelContent = mobxReactLite.observer(function (_ref3) {
5128
5190
  onClick: function onClick() {
5129
5191
  return addInputElement('integer', {
5130
5192
  promptText: integerPrompt,
5131
- required: integerRequired
5193
+ required: integerRequired,
5194
+ removeIfSkipped: integerRemoveIfSkipped
5132
5195
  });
5133
5196
  }
5134
5197
  }), /*#__PURE__*/jsxRuntime.jsx(material.TextField, {
@@ -5163,6 +5226,23 @@ var InputFieldsPanelContent = mobxReactLite.observer(function (_ref3) {
5163
5226
  sx: {
5164
5227
  ml: 5.5
5165
5228
  }
5229
+ }), !integerRequired && /*#__PURE__*/jsxRuntime.jsx(material.FormControlLabel, {
5230
+ control: /*#__PURE__*/jsxRuntime.jsx(material.Checkbox, {
5231
+ size: "small",
5232
+ checked: integerRemoveIfSkipped,
5233
+ onChange: function onChange(e) {
5234
+ return setIntegerRemoveIfSkipped(e.target.checked);
5235
+ }
5236
+ }),
5237
+ label: /*#__PURE__*/jsxRuntime.jsx(material.Typography, {
5238
+ sx: {
5239
+ fontSize: 12
5240
+ },
5241
+ children: t('sidePanel.inputFields.removeIfSkipped', 'Remove if skipped')
5242
+ }),
5243
+ sx: {
5244
+ ml: 5.5
5245
+ }
5166
5246
  }), /*#__PURE__*/jsxRuntime.jsx(InputFieldCard, {
5167
5247
  icon: /*#__PURE__*/jsxRuntime.jsx(ImageIcon, {
5168
5248
  fontSize: "small"
@@ -5172,7 +5252,8 @@ var InputFieldsPanelContent = mobxReactLite.observer(function (_ref3) {
5172
5252
  onClick: function onClick() {
5173
5253
  return addInputElement('image', {
5174
5254
  promptText: imagePrompt,
5175
- required: imageRequired
5255
+ required: imageRequired,
5256
+ removeIfSkipped: imageRemoveIfSkipped
5176
5257
  });
5177
5258
  }
5178
5259
  }), /*#__PURE__*/jsxRuntime.jsx(material.TextField, {
@@ -5207,6 +5288,23 @@ var InputFieldsPanelContent = mobxReactLite.observer(function (_ref3) {
5207
5288
  sx: {
5208
5289
  ml: 5.5
5209
5290
  }
5291
+ }), !imageRequired && /*#__PURE__*/jsxRuntime.jsx(material.FormControlLabel, {
5292
+ control: /*#__PURE__*/jsxRuntime.jsx(material.Checkbox, {
5293
+ size: "small",
5294
+ checked: imageRemoveIfSkipped,
5295
+ onChange: function onChange(e) {
5296
+ return setImageRemoveIfSkipped(e.target.checked);
5297
+ }
5298
+ }),
5299
+ label: /*#__PURE__*/jsxRuntime.jsx(material.Typography, {
5300
+ sx: {
5301
+ fontSize: 12
5302
+ },
5303
+ children: t('sidePanel.inputFields.removeIfSkipped', 'Remove if skipped')
5304
+ }),
5305
+ sx: {
5306
+ ml: 5.5
5307
+ }
5210
5308
  }), /*#__PURE__*/jsxRuntime.jsx(InputFieldCard, {
5211
5309
  icon: /*#__PURE__*/jsxRuntime.jsx(RadioButtonCheckedIcon, {
5212
5310
  fontSize: "small"
@@ -5217,7 +5315,8 @@ var InputFieldsPanelContent = mobxReactLite.observer(function (_ref3) {
5217
5315
  return addInputElement('radio', {
5218
5316
  promptText: radioPrompt,
5219
5317
  required: radioRequired,
5220
- options: radioOptions
5318
+ options: radioOptions,
5319
+ removeIfSkipped: radioRemoveIfSkipped
5221
5320
  });
5222
5321
  }
5223
5322
  }), /*#__PURE__*/jsxRuntime.jsx(material.TextField, {
@@ -5252,6 +5351,23 @@ var InputFieldsPanelContent = mobxReactLite.observer(function (_ref3) {
5252
5351
  sx: {
5253
5352
  ml: 5.5
5254
5353
  }
5354
+ }), !radioRequired && /*#__PURE__*/jsxRuntime.jsx(material.FormControlLabel, {
5355
+ control: /*#__PURE__*/jsxRuntime.jsx(material.Checkbox, {
5356
+ size: "small",
5357
+ checked: radioRemoveIfSkipped,
5358
+ onChange: function onChange(e) {
5359
+ return setRadioRemoveIfSkipped(e.target.checked);
5360
+ }
5361
+ }),
5362
+ label: /*#__PURE__*/jsxRuntime.jsx(material.Typography, {
5363
+ sx: {
5364
+ fontSize: 12
5365
+ },
5366
+ children: t('sidePanel.inputFields.removeIfSkipped', 'Remove if skipped')
5367
+ }),
5368
+ sx: {
5369
+ ml: 5.5
5370
+ }
5255
5371
  }), /*#__PURE__*/jsxRuntime.jsx(OptionsEditor, {
5256
5372
  options: radioOptions,
5257
5373
  onChange: setRadioOptions
@@ -5266,7 +5382,8 @@ var InputFieldsPanelContent = mobxReactLite.observer(function (_ref3) {
5266
5382
  promptText: listPrompt,
5267
5383
  minSelections: listMinSelections,
5268
5384
  maxSelections: listMaxSelections,
5269
- options: listOptions
5385
+ options: listOptions,
5386
+ removeIfSkipped: listRemoveIfSkipped
5270
5387
  });
5271
5388
  }
5272
5389
  }), /*#__PURE__*/jsxRuntime.jsx(material.TextField, {
@@ -5339,6 +5456,23 @@ var InputFieldsPanelContent = mobxReactLite.observer(function (_ref3) {
5339
5456
  fontSize: 10
5340
5457
  },
5341
5458
  children: listMinSelections > 0 ? "Required \xB7 min ".concat(listMinSelections).concat(listMaxSelections > 0 ? ", max ".concat(listMaxSelections) : ', no max') : "Optional \xB7 max ".concat(listMaxSelections > 0 ? listMaxSelections : '∞')
5459
+ }), listMinSelections === 0 && /*#__PURE__*/jsxRuntime.jsx(material.FormControlLabel, {
5460
+ control: /*#__PURE__*/jsxRuntime.jsx(material.Checkbox, {
5461
+ size: "small",
5462
+ checked: listRemoveIfSkipped,
5463
+ onChange: function onChange(e) {
5464
+ return setListRemoveIfSkipped(e.target.checked);
5465
+ }
5466
+ }),
5467
+ label: /*#__PURE__*/jsxRuntime.jsx(material.Typography, {
5468
+ sx: {
5469
+ fontSize: 12
5470
+ },
5471
+ children: t('sidePanel.inputFields.removeIfSkipped', 'Remove if skipped')
5472
+ }),
5473
+ sx: {
5474
+ ml: 5.5
5475
+ }
5342
5476
  })]
5343
5477
  }), /*#__PURE__*/jsxRuntime.jsx(material.Divider, {
5344
5478
  sx: {
@@ -5371,30 +5505,34 @@ var InputFieldsPanelContent = mobxReactLite.observer(function (_ref3) {
5371
5505
  var MarkAsVariableForm = mobxReactLite.observer(function (_ref4) {
5372
5506
  var _selectedElement$cust;
5373
5507
  var store = _ref4.store;
5374
- var _useState31 = react.useState(''),
5375
- _useState32 = _slicedToArray(_useState31, 2),
5376
- markLabel = _useState32[0],
5377
- setMarkLabel = _useState32[1];
5378
- var _useState33 = react.useState(false),
5379
- _useState34 = _slicedToArray(_useState33, 2),
5380
- markRequired = _useState34[0],
5381
- setMarkRequired = _useState34[1];
5382
- var _useState35 = react.useState('text'),
5383
- _useState36 = _slicedToArray(_useState35, 2),
5384
- markInputType = _useState36[0],
5385
- setMarkInputType = _useState36[1];
5386
- var _useState37 = react.useState(['Option 1', 'Option 2']),
5387
- _useState38 = _slicedToArray(_useState37, 2),
5388
- markOptions = _useState38[0],
5389
- setMarkOptions = _useState38[1];
5390
- var _useState39 = react.useState(0),
5391
- _useState40 = _slicedToArray(_useState39, 2),
5392
- markMinSelections = _useState40[0],
5393
- setMarkMinSelections = _useState40[1];
5394
- var _useState41 = react.useState(2),
5395
- _useState42 = _slicedToArray(_useState41, 2),
5396
- markMaxSelections = _useState42[0],
5397
- setMarkMaxSelections = _useState42[1];
5508
+ var _useState43 = react.useState(''),
5509
+ _useState44 = _slicedToArray(_useState43, 2),
5510
+ markLabel = _useState44[0],
5511
+ setMarkLabel = _useState44[1];
5512
+ var _useState45 = react.useState(false),
5513
+ _useState46 = _slicedToArray(_useState45, 2),
5514
+ markRequired = _useState46[0],
5515
+ setMarkRequired = _useState46[1];
5516
+ var _useState47 = react.useState('text'),
5517
+ _useState48 = _slicedToArray(_useState47, 2),
5518
+ markInputType = _useState48[0],
5519
+ setMarkInputType = _useState48[1];
5520
+ var _useState49 = react.useState(['Option 1', 'Option 2']),
5521
+ _useState50 = _slicedToArray(_useState49, 2),
5522
+ markOptions = _useState50[0],
5523
+ setMarkOptions = _useState50[1];
5524
+ var _useState51 = react.useState(0),
5525
+ _useState52 = _slicedToArray(_useState51, 2),
5526
+ markMinSelections = _useState52[0],
5527
+ setMarkMinSelections = _useState52[1];
5528
+ var _useState53 = react.useState(2),
5529
+ _useState54 = _slicedToArray(_useState53, 2),
5530
+ markMaxSelections = _useState54[0],
5531
+ setMarkMaxSelections = _useState54[1];
5532
+ var _useState55 = react.useState(false),
5533
+ _useState56 = _slicedToArray(_useState55, 2),
5534
+ markRemoveIfSkipped = _useState56[0],
5535
+ setMarkRemoveIfSkipped = _useState56[1];
5398
5536
  var selectedIds = store.selectedElementsIds || [];
5399
5537
  var selectedElement = selectedIds.length === 1 ? store.getElementById(selectedIds[0]) : null;
5400
5538
  var isImageElement = (selectedElement === null || selectedElement === void 0 ? void 0 : selectedElement.type) === 'image';
@@ -5403,13 +5541,14 @@ var MarkAsVariableForm = mobxReactLite.observer(function (_ref4) {
5403
5541
  var isAlreadyVariable = !!(selectedElement !== null && selectedElement !== void 0 && (_selectedElement$cust = selectedElement.custom) !== null && _selectedElement$cust !== void 0 && _selectedElement$cust.inputField);
5404
5542
  react.useEffect(function () {
5405
5543
  if (selectedElement && isSupportedElement) {
5406
- var _selectedElement$cust2, _selectedElement$cust3, _selectedElement$cust4, _selectedElement$cust5, _selectedElement$cust6, _selectedElement$cust7;
5544
+ var _selectedElement$cust2, _selectedElement$cust3, _selectedElement$cust4, _selectedElement$cust5, _selectedElement$cust6, _selectedElement$cust7, _selectedElement$cust8;
5407
5545
  setMarkLabel(((_selectedElement$cust2 = selectedElement.custom) === null || _selectedElement$cust2 === void 0 ? void 0 : _selectedElement$cust2.promptText) || '');
5408
5546
  setMarkRequired(!!((_selectedElement$cust3 = selectedElement.custom) !== null && _selectedElement$cust3 !== void 0 && _selectedElement$cust3.required));
5409
5547
  setMarkInputType(isImageElement ? 'image' : ((_selectedElement$cust4 = selectedElement.custom) === null || _selectedElement$cust4 === void 0 ? void 0 : _selectedElement$cust4.inputType) || 'text');
5410
5548
  setMarkOptions(((_selectedElement$cust5 = selectedElement.custom) === null || _selectedElement$cust5 === void 0 ? void 0 : _selectedElement$cust5.options) || ['Option 1', 'Option 2']);
5411
5549
  setMarkMinSelections(((_selectedElement$cust6 = selectedElement.custom) === null || _selectedElement$cust6 === void 0 ? void 0 : _selectedElement$cust6.minSelections) || 0);
5412
5550
  setMarkMaxSelections(((_selectedElement$cust7 = selectedElement.custom) === null || _selectedElement$cust7 === void 0 ? void 0 : _selectedElement$cust7.maxSelections) || 2);
5551
+ setMarkRemoveIfSkipped(!!((_selectedElement$cust8 = selectedElement.custom) !== null && _selectedElement$cust8 !== void 0 && _selectedElement$cust8.removeIfSkipped));
5413
5552
  } else {
5414
5553
  setMarkLabel('');
5415
5554
  setMarkRequired(false);
@@ -5417,6 +5556,7 @@ var MarkAsVariableForm = mobxReactLite.observer(function (_ref4) {
5417
5556
  setMarkOptions(['Option 1', 'Option 2']);
5418
5557
  setMarkMinSelections(0);
5419
5558
  setMarkMaxSelections(2);
5559
+ setMarkRemoveIfSkipped(false);
5420
5560
  }
5421
5561
  }, [selectedElement === null || selectedElement === void 0 ? void 0 : selectedElement.id]);
5422
5562
  var handleMark = function handleMark() {
@@ -5427,7 +5567,8 @@ var MarkAsVariableForm = mobxReactLite.observer(function (_ref4) {
5427
5567
  inputField: true,
5428
5568
  promptText: markLabel.trim(),
5429
5569
  inputType: effectiveType,
5430
- required: markRequired
5570
+ required: markRequired,
5571
+ removeIfSkipped: !markRequired && markRemoveIfSkipped
5431
5572
  }, ['radio', 'list'].includes(effectiveType) ? {
5432
5573
  options: markOptions.filter(Boolean)
5433
5574
  } : {}), effectiveType === 'list' ? {
@@ -5444,6 +5585,7 @@ var MarkAsVariableForm = mobxReactLite.observer(function (_ref4) {
5444
5585
  _ref5.promptText;
5445
5586
  _ref5.inputType;
5446
5587
  _ref5.required;
5588
+ _ref5.removeIfSkipped;
5447
5589
  _ref5.placeholder;
5448
5590
  _ref5.options;
5449
5591
  _ref5.minSelections;
@@ -5664,6 +5806,20 @@ var MarkAsVariableForm = mobxReactLite.observer(function (_ref4) {
5664
5806
  },
5665
5807
  children: t('sidePanel.inputFields.required', 'Required')
5666
5808
  })
5809
+ }), !markRequired && /*#__PURE__*/jsxRuntime.jsx(material.FormControlLabel, {
5810
+ control: /*#__PURE__*/jsxRuntime.jsx(material.Checkbox, {
5811
+ size: "small",
5812
+ checked: markRemoveIfSkipped,
5813
+ onChange: function onChange(e) {
5814
+ return setMarkRemoveIfSkipped(e.target.checked);
5815
+ }
5816
+ }),
5817
+ label: /*#__PURE__*/jsxRuntime.jsx(material.Typography, {
5818
+ sx: {
5819
+ fontSize: 12
5820
+ },
5821
+ children: t('sidePanel.inputFields.removeIfSkipped', 'Remove if skipped')
5822
+ })
5667
5823
  }), /*#__PURE__*/jsxRuntime.jsx(material.Button, {
5668
5824
  variant: "contained",
5669
5825
  size: "small",