@bigbinary/neeto-molecules 4.0.30 → 4.0.31
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.
- package/dist/OptionFields.js +408 -95
- package/dist/OptionFields.js.map +1 -1
- package/dist/cjs/OptionFields.js +406 -93
- package/dist/cjs/OptionFields.js.map +1 -1
- package/package.json +1 -1
- package/types/OptionFields.d.ts +11 -1
package/dist/cjs/OptionFields.js
CHANGED
|
@@ -18,9 +18,10 @@ var i18next = require('i18next');
|
|
|
18
18
|
var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
|
19
19
|
var injectCss = require('./inject-css-B6qYtOJe.js');
|
|
20
20
|
var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
|
|
21
|
-
var Delete = require('@bigbinary/neeto-icons/Delete');
|
|
22
21
|
var Edit = require('@bigbinary/neeto-icons/Edit');
|
|
23
22
|
var Drag = require('@bigbinary/neeto-icons/Drag');
|
|
23
|
+
var Copy = require('@bigbinary/neeto-icons/Copy');
|
|
24
|
+
var Delete = require('@bigbinary/neeto-icons/Delete');
|
|
24
25
|
var Input = require('@bigbinary/neetoui/formik/Input');
|
|
25
26
|
var Textarea$1 = require('@bigbinary/neetoui/formik/Textarea');
|
|
26
27
|
var ImageUploader = require('@bigbinary/neeto-image-uploader-frontend/ImageUploader');
|
|
@@ -104,6 +105,20 @@ var IMAGE_UPLOAD_CONFIG = {
|
|
|
104
105
|
"image/svg": [".svg"]
|
|
105
106
|
}
|
|
106
107
|
};
|
|
108
|
+
var INPUT_TYPES = {
|
|
109
|
+
TEXT: "text",
|
|
110
|
+
NUMBER: "number"
|
|
111
|
+
};
|
|
112
|
+
var OPTION_ACTIONS = {
|
|
113
|
+
UPDATE_IMAGE: "update_image",
|
|
114
|
+
UPDATE_VALUES: "update_values",
|
|
115
|
+
UPDATE_LABEL: "update_label",
|
|
116
|
+
DELETE: "delete",
|
|
117
|
+
REORDER: "reorder",
|
|
118
|
+
ADD: "add",
|
|
119
|
+
BULK_ADD: "bulk_add",
|
|
120
|
+
CLONE: "clone"
|
|
121
|
+
};
|
|
107
122
|
|
|
108
123
|
var FormError = function FormError(_ref) {
|
|
109
124
|
var error = _ref.error;
|
|
@@ -149,12 +164,53 @@ var resolveFormikValue = function resolveFormikValue(path, values) {
|
|
|
149
164
|
return acc && acc[key] !== undefined ? acc[key] : undefined;
|
|
150
165
|
}, values);
|
|
151
166
|
};
|
|
167
|
+
var handleNumberKeyDown = function handleNumberKeyDown(event, onKeyDown) {
|
|
168
|
+
var allowedKeys = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", ".", "-"];
|
|
169
|
+
var controlKeys = ["Backspace", "Delete", "ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight", "Tab", "Enter"];
|
|
170
|
+
if ((event.ctrlKey || event.metaKey) && ["a", "c", "v", "x", "z"].includes(event.key.toLowerCase())) {
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
if (![].concat(allowedKeys, controlKeys).includes(event.key)) {
|
|
174
|
+
event.preventDefault();
|
|
175
|
+
}
|
|
176
|
+
onKeyDown === null || onKeyDown === void 0 || onKeyDown(event);
|
|
177
|
+
};
|
|
178
|
+
var handleInputBlur = function handleInputBlur(event, _ref) {
|
|
179
|
+
var id = _ref.id,
|
|
180
|
+
inputIndex = _ref.inputIndex,
|
|
181
|
+
onChange = _ref.onChange,
|
|
182
|
+
onBlur = _ref.onBlur,
|
|
183
|
+
field = _ref.field,
|
|
184
|
+
config = _ref.config;
|
|
185
|
+
var value = event.target.value;
|
|
186
|
+
var finalValue = !value && config !== null && config !== void 0 && config.defaultValue ? config.defaultValue : value;
|
|
187
|
+
onChange({
|
|
188
|
+
id: id,
|
|
189
|
+
value: finalValue,
|
|
190
|
+
inputIndex: inputIndex,
|
|
191
|
+
isOnBlur: true
|
|
192
|
+
});
|
|
193
|
+
onBlur === null || onBlur === void 0 || onBlur(id, finalValue, inputIndex);
|
|
194
|
+
field.onBlur(event);
|
|
195
|
+
};
|
|
196
|
+
var getMultiInputError = function getMultiInputError(isMultiInput, meta) {
|
|
197
|
+
if (!isMultiInput || !meta.error) return null;
|
|
198
|
+
if (Array.isArray(meta.error)) {
|
|
199
|
+
var hasValuesError = meta.error.some(function (optionError) {
|
|
200
|
+
return Array.isArray(optionError.values) && optionError.values.some(ramda.identity);
|
|
201
|
+
});
|
|
202
|
+
if (hasValuesError) {
|
|
203
|
+
return i18next.t("neetoMolecules.optionFields.allFieldsRequired");
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
return null;
|
|
207
|
+
};
|
|
152
208
|
|
|
153
|
-
function ownKeys$
|
|
154
|
-
function _objectSpread$
|
|
209
|
+
function ownKeys$5(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; }
|
|
210
|
+
function _objectSpread$5(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$5(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$5(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
155
211
|
var attachPosition = function attachPosition(options) {
|
|
156
212
|
return options.map(function (option, index) {
|
|
157
|
-
return _objectSpread$
|
|
213
|
+
return _objectSpread$5(_objectSpread$5({}, option), {}, {
|
|
158
214
|
position: index
|
|
159
215
|
});
|
|
160
216
|
});
|
|
@@ -169,7 +225,11 @@ var useOptionFields = function useOptionFields(_ref) {
|
|
|
169
225
|
destroyFlagName = _ref.destroyFlagName,
|
|
170
226
|
isNewItemsPrefilled = _ref.isNewItemsPrefilled,
|
|
171
227
|
isAddOptionEnabled = _ref.isAddOptionEnabled,
|
|
172
|
-
isPictureChoice = _ref.isPictureChoice
|
|
228
|
+
isPictureChoice = _ref.isPictureChoice,
|
|
229
|
+
isMultiInput = _ref.isMultiInput,
|
|
230
|
+
inputConfig = _ref.inputConfig;
|
|
231
|
+
var _useTranslation = reactI18next.useTranslation(),
|
|
232
|
+
t = _useTranslation.t;
|
|
173
233
|
var _useState = React.useState(false),
|
|
174
234
|
_useState2 = _slicedToArray(_useState, 2),
|
|
175
235
|
shouldFocus = _useState2[0],
|
|
@@ -184,9 +244,15 @@ var useOptionFields = function useOptionFields(_ref) {
|
|
|
184
244
|
_useField2[1];
|
|
185
245
|
var helpers = _useField2[2];
|
|
186
246
|
var setValue = helpers.setValue;
|
|
187
|
-
var handleChange = function handleChange(
|
|
188
|
-
var
|
|
189
|
-
|
|
247
|
+
var handleChange = function handleChange(_ref2) {
|
|
248
|
+
var id = _ref2.id,
|
|
249
|
+
value = _ref2.value,
|
|
250
|
+
_ref2$inputIndex = _ref2.inputIndex,
|
|
251
|
+
inputIndex = _ref2$inputIndex === void 0 ? 0 : _ref2$inputIndex,
|
|
252
|
+
_ref2$isOnBlur = _ref2.isOnBlur,
|
|
253
|
+
isOnBlur = _ref2$isOnBlur === void 0 ? false : _ref2$isOnBlur,
|
|
254
|
+
_ref2$fieldType = _ref2.fieldType,
|
|
255
|
+
fieldType = _ref2$fieldType === void 0 ? "label" : _ref2$fieldType;
|
|
190
256
|
var index = neetoCist.findIndexById(id, options);
|
|
191
257
|
var currentOption = options[index];
|
|
192
258
|
|
|
@@ -194,7 +260,18 @@ var useOptionFields = function useOptionFields(_ref) {
|
|
|
194
260
|
if (isPictureChoice && fieldType === "image") {
|
|
195
261
|
var _nextOptions = ramda.assocPath([index, "image"], value, options);
|
|
196
262
|
setValue(_nextOptions);
|
|
197
|
-
onChange === null || onChange === void 0 || onChange(_nextOptions);
|
|
263
|
+
onChange === null || onChange === void 0 || onChange(_nextOptions, OPTION_ACTIONS.UPDATE_IMAGE);
|
|
264
|
+
return;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
// Handle multi-input changes
|
|
268
|
+
if (isMultiInput && typeof inputIndex === "number") {
|
|
269
|
+
var currentValues = currentOption.values || [];
|
|
270
|
+
var newValues = ramda.clone(currentValues);
|
|
271
|
+
newValues[inputIndex] = value;
|
|
272
|
+
var _nextOptions2 = ramda.assocPath([index, "values"], newValues, options);
|
|
273
|
+
setValue(_nextOptions2);
|
|
274
|
+
onChange === null || onChange === void 0 || onChange(_nextOptions2, OPTION_ACTIONS.UPDATE_VALUES);
|
|
198
275
|
return;
|
|
199
276
|
}
|
|
200
277
|
|
|
@@ -214,7 +291,7 @@ var useOptionFields = function useOptionFields(_ref) {
|
|
|
214
291
|
// Update options with the determined value (always updating label field)
|
|
215
292
|
var nextOptions = ramda.assocPath([index, "label"], valueToUpdate, options);
|
|
216
293
|
setValue(nextOptions);
|
|
217
|
-
onChange === null || onChange === void 0 || onChange(nextOptions);
|
|
294
|
+
onChange === null || onChange === void 0 || onChange(nextOptions, OPTION_ACTIONS.UPDATE_LABEL);
|
|
218
295
|
};
|
|
219
296
|
var handleDelete = function handleDelete(id, arrayHelpers) {
|
|
220
297
|
var nextOptions;
|
|
@@ -226,11 +303,11 @@ var useOptionFields = function useOptionFields(_ref) {
|
|
|
226
303
|
arrayHelpers.remove(indexToDelete);
|
|
227
304
|
nextOptions = attachPosition(ramda.remove(indexToDelete, 1, options));
|
|
228
305
|
}
|
|
229
|
-
onChange === null || onChange === void 0 || onChange(nextOptions);
|
|
306
|
+
onChange === null || onChange === void 0 || onChange(nextOptions, OPTION_ACTIONS.DELETE);
|
|
230
307
|
};
|
|
231
|
-
var handleDragEnd = function handleDragEnd(
|
|
232
|
-
var source =
|
|
233
|
-
destination =
|
|
308
|
+
var handleDragEnd = function handleDragEnd(_ref3) {
|
|
309
|
+
var source = _ref3.source,
|
|
310
|
+
destination = _ref3.destination;
|
|
234
311
|
// When dragged outside of draggable
|
|
235
312
|
if (destination === null) return;
|
|
236
313
|
var deletedOptions = options.filter(ramda.prop(destroyFlagName));
|
|
@@ -238,22 +315,26 @@ var useOptionFields = function useOptionFields(_ref) {
|
|
|
238
315
|
var nextOptions = ramda.move(source.index, destination.index, filteredOptions);
|
|
239
316
|
var finalOptions = attachPosition(nextOptions);
|
|
240
317
|
setValue([].concat(_toConsumableArray(deletedOptions), _toConsumableArray(finalOptions)));
|
|
241
|
-
onChange === null || onChange === void 0 || onChange([].concat(_toConsumableArray(deletedOptions), _toConsumableArray(finalOptions)));
|
|
318
|
+
onChange === null || onChange === void 0 || onChange([].concat(_toConsumableArray(deletedOptions), _toConsumableArray(finalOptions)), OPTION_ACTIONS.REORDER);
|
|
242
319
|
};
|
|
243
320
|
var handleAddOption = function handleAddOption() {
|
|
244
321
|
var id = randomId();
|
|
245
|
-
var newOption = _objectSpread$
|
|
322
|
+
var newOption = _objectSpread$5(_objectSpread$5({
|
|
246
323
|
id: "draft-".concat(id),
|
|
247
324
|
altId: "alt-".concat(id),
|
|
248
325
|
label: isNewItemsPrefilled ? _generateLabel(itemLabel, options) : "",
|
|
249
326
|
position: options.length
|
|
250
327
|
}, isPictureChoice && {
|
|
251
328
|
image: null
|
|
329
|
+
}), isMultiInput && {
|
|
330
|
+
values: inputConfig.map(function (config) {
|
|
331
|
+
return config.defaultValue || "";
|
|
332
|
+
})
|
|
252
333
|
});
|
|
253
334
|
setShouldFocus(true);
|
|
254
335
|
var nextOptions = ramda.append(newOption, options);
|
|
255
336
|
setValue(nextOptions);
|
|
256
|
-
onChange === null || onChange === void 0 || onChange(nextOptions);
|
|
337
|
+
onChange === null || onChange === void 0 || onChange(nextOptions, OPTION_ACTIONS.ADD);
|
|
257
338
|
};
|
|
258
339
|
var handleBulkAddOption = function handleBulkAddOption(optionsString) {
|
|
259
340
|
setShouldFocus(true);
|
|
@@ -268,7 +349,27 @@ var useOptionFields = function useOptionFields(_ref) {
|
|
|
268
349
|
});
|
|
269
350
|
var nextOptions = [].concat(_toConsumableArray(options), _toConsumableArray(newOptions));
|
|
270
351
|
setValue(nextOptions);
|
|
271
|
-
onChange === null || onChange === void 0 || onChange(nextOptions);
|
|
352
|
+
onChange === null || onChange === void 0 || onChange(nextOptions, OPTION_ACTIONS.BULK_ADD);
|
|
353
|
+
};
|
|
354
|
+
var handleClone = function handleClone(id) {
|
|
355
|
+
var index = neetoCist.findIndexById(id, options);
|
|
356
|
+
var optionToClone = options[index];
|
|
357
|
+
if (!optionToClone) return;
|
|
358
|
+
var newId = randomId();
|
|
359
|
+
var clonedOption = _objectSpread$5(_objectSpread$5({}, optionToClone), {}, {
|
|
360
|
+
id: "draft-".concat(newId),
|
|
361
|
+
altId: "alt-".concat(newId),
|
|
362
|
+
label: isMultiInput ? optionToClone.label : t("neetoMolecules.optionFields.clonedOption", {
|
|
363
|
+
originalLabel: optionToClone.label
|
|
364
|
+
})
|
|
365
|
+
}, isMultiInput && optionToClone.values && {
|
|
366
|
+
values: ramda.clone(optionToClone.values)
|
|
367
|
+
});
|
|
368
|
+
setShouldFocus(true);
|
|
369
|
+
var nextOptions = ramda.insert(index + 1, clonedOption, options);
|
|
370
|
+
var optionsWithUpdatedPositions = attachPosition(nextOptions);
|
|
371
|
+
setValue(optionsWithUpdatedPositions);
|
|
372
|
+
onChange === null || onChange === void 0 || onChange(optionsWithUpdatedPositions, OPTION_ACTIONS.CLONE);
|
|
272
373
|
};
|
|
273
374
|
var handleKeyDown = function handleKeyDown(event) {
|
|
274
375
|
if (event.key !== "Enter") return;
|
|
@@ -291,17 +392,18 @@ var useOptionFields = function useOptionFields(_ref) {
|
|
|
291
392
|
handleChange: handleChange,
|
|
292
393
|
handleKeyDown: handleKeyDown,
|
|
293
394
|
handleDelete: handleDelete,
|
|
294
|
-
handleDragEnd: handleDragEnd
|
|
395
|
+
handleDragEnd: handleDragEnd,
|
|
396
|
+
handleClone: handleClone
|
|
295
397
|
};
|
|
296
398
|
};
|
|
297
399
|
|
|
298
400
|
var css = ".neeto-molecules-option-fields__image-uploader img{max-height:100px}";
|
|
299
401
|
injectCss.n(css,{});
|
|
300
402
|
|
|
301
|
-
function ownKeys$
|
|
302
|
-
function _objectSpread$
|
|
403
|
+
function ownKeys$4(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; }
|
|
404
|
+
function _objectSpread$4(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$4(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$4(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
303
405
|
var DragHandle = function DragHandle(props) {
|
|
304
|
-
return /*#__PURE__*/jsxRuntime.jsx("div", _objectSpread$
|
|
406
|
+
return /*#__PURE__*/jsxRuntime.jsx("div", _objectSpread$4(_objectSpread$4({
|
|
305
407
|
className: "neeto-ui-text-gray-500 flex h-8 flex-shrink-0 cursor-grab items-center",
|
|
306
408
|
"data-cy": "drag-handle",
|
|
307
409
|
"data-testid": "drag-handle"
|
|
@@ -313,29 +415,84 @@ var DragHandle = function DragHandle(props) {
|
|
|
313
415
|
}));
|
|
314
416
|
};
|
|
315
417
|
|
|
316
|
-
|
|
317
|
-
|
|
418
|
+
var OptionActions = reactUtils.withT(function (_ref) {
|
|
419
|
+
var t = _ref.t,
|
|
420
|
+
disabled = _ref.disabled,
|
|
421
|
+
_ref$hideCloneOption = _ref.hideCloneOption,
|
|
422
|
+
hideCloneOption = _ref$hideCloneOption === void 0 ? false : _ref$hideCloneOption,
|
|
423
|
+
_ref$hideDeleteOption = _ref.hideDeleteOption,
|
|
424
|
+
hideDeleteOption = _ref$hideDeleteOption === void 0 ? false : _ref$hideDeleteOption,
|
|
425
|
+
optionIndex = _ref.optionIndex,
|
|
426
|
+
id = _ref.id,
|
|
427
|
+
arrayHelpers = _ref.arrayHelpers,
|
|
428
|
+
onClone = _ref.onClone,
|
|
429
|
+
onDelete = _ref.onDelete,
|
|
430
|
+
_ref$className = _ref.className,
|
|
431
|
+
className = _ref$className === void 0 ? "" : _ref$className;
|
|
432
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
433
|
+
className: "flex items-center gap-1 ".concat(className),
|
|
434
|
+
children: [!hideCloneOption && /*#__PURE__*/jsxRuntime.jsx(Button, {
|
|
435
|
+
disabled: disabled,
|
|
436
|
+
className: "p-0.5",
|
|
437
|
+
"data-cy": "clone-option-button-".concat(optionIndex),
|
|
438
|
+
"data-testid": "clone-option-button-".concat(optionIndex),
|
|
439
|
+
icon: Copy,
|
|
440
|
+
size: "small",
|
|
441
|
+
style: "text",
|
|
442
|
+
tooltipProps: {
|
|
443
|
+
content: t("neetoMolecules.common.actions.clone"),
|
|
444
|
+
position: "top",
|
|
445
|
+
touch: ["hold", 500]
|
|
446
|
+
},
|
|
447
|
+
onClick: function onClick() {
|
|
448
|
+
return onClone(id);
|
|
449
|
+
}
|
|
450
|
+
}), !hideDeleteOption && /*#__PURE__*/jsxRuntime.jsx(Button, {
|
|
451
|
+
disabled: disabled,
|
|
452
|
+
className: "p-0.5",
|
|
453
|
+
"data-cy": "delete-option-button-".concat(optionIndex),
|
|
454
|
+
"data-testid": "delete-option-button-".concat(optionIndex),
|
|
455
|
+
icon: Delete,
|
|
456
|
+
size: "small",
|
|
457
|
+
style: "text",
|
|
458
|
+
tooltipProps: {
|
|
459
|
+
content: t("neetoMolecules.common.actions.delete"),
|
|
460
|
+
position: "top",
|
|
461
|
+
touch: ["hold", 500]
|
|
462
|
+
},
|
|
463
|
+
onClick: function onClick() {
|
|
464
|
+
return onDelete(id, arrayHelpers);
|
|
465
|
+
}
|
|
466
|
+
})]
|
|
467
|
+
});
|
|
468
|
+
});
|
|
469
|
+
|
|
470
|
+
function ownKeys$3(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; }
|
|
471
|
+
function _objectSpread$3(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$3(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$3(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
318
472
|
var BlockOption = reactUtils.withT(function (_ref) {
|
|
319
473
|
var t = _ref.t,
|
|
320
474
|
innerRef = _ref.innerRef,
|
|
321
475
|
_ref$hideDeleteOption = _ref.hideDeleteOption,
|
|
322
476
|
hideDeleteOption = _ref$hideDeleteOption === void 0 ? false : _ref$hideDeleteOption,
|
|
477
|
+
_ref$hideCloneOption = _ref.hideCloneOption,
|
|
478
|
+
hideCloneOption = _ref$hideCloneOption === void 0 ? false : _ref$hideCloneOption,
|
|
323
479
|
draggableProps = _ref.draggableProps,
|
|
324
480
|
dragHandleProps = _ref.dragHandleProps,
|
|
325
481
|
label = _ref.label,
|
|
326
482
|
onEdit = _ref.onEdit,
|
|
483
|
+
onClone = _ref.onClone,
|
|
327
484
|
handleDeleteClick = _ref.handleDeleteClick,
|
|
328
485
|
id = _ref.id,
|
|
329
486
|
isDraggable = _ref.isDraggable,
|
|
330
487
|
optionIndex = _ref.optionIndex,
|
|
331
488
|
arrayHelpers = _ref.arrayHelpers;
|
|
332
|
-
return /*#__PURE__*/jsxRuntime.jsx("div", _objectSpread$
|
|
489
|
+
return /*#__PURE__*/jsxRuntime.jsx("div", _objectSpread$3(_objectSpread$3(_objectSpread$3({
|
|
333
490
|
ref: innerRef
|
|
334
491
|
}, draggableProps), dragHandleProps), {}, {
|
|
335
492
|
children: /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
336
493
|
className: "neeto-ui-border-gray-400 hover:neeto-ui-bg-gray-200 neeto-ui-rounded-sm shadow-xs group relative mb-2 flex h-10 cursor-pointer items-center gap-2 border p-3 transition-colors duration-300 ease-in-out",
|
|
337
494
|
"data-cy": "address-field-block",
|
|
338
|
-
children: [isDraggable && /*#__PURE__*/jsxRuntime.jsx(DragHandle, _objectSpread$
|
|
495
|
+
children: [isDraggable && /*#__PURE__*/jsxRuntime.jsx(DragHandle, _objectSpread$3(_objectSpread$3({}, dragHandleProps), {}, {
|
|
339
496
|
"data-testid": "drag-handle-".concat(optionIndex)
|
|
340
497
|
})), /*#__PURE__*/jsxRuntime.jsx(Typography, {
|
|
341
498
|
className: "flex-grow truncate leading-4",
|
|
@@ -360,21 +517,15 @@ var BlockOption = reactUtils.withT(function (_ref) {
|
|
|
360
517
|
onClick: function onClick() {
|
|
361
518
|
return onEdit(id);
|
|
362
519
|
}
|
|
363
|
-
}),
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
position: "top",
|
|
373
|
-
touch: ["hold", 500]
|
|
374
|
-
},
|
|
375
|
-
onClick: function onClick() {
|
|
376
|
-
return handleDeleteClick(id, arrayHelpers);
|
|
377
|
-
}
|
|
520
|
+
}), /*#__PURE__*/jsxRuntime.jsx(OptionActions, {
|
|
521
|
+
arrayHelpers: arrayHelpers,
|
|
522
|
+
hideCloneOption: hideCloneOption,
|
|
523
|
+
hideDeleteOption: hideDeleteOption,
|
|
524
|
+
id: id,
|
|
525
|
+
onClone: onClone,
|
|
526
|
+
optionIndex: optionIndex,
|
|
527
|
+
className: "flex items-center gap-2",
|
|
528
|
+
onDelete: handleDeleteClick
|
|
378
529
|
})]
|
|
379
530
|
})]
|
|
380
531
|
})
|
|
@@ -393,11 +544,12 @@ var ImageOption = function ImageOption(_ref) {
|
|
|
393
544
|
_onChange = _ref.onChange,
|
|
394
545
|
_onBlur = _ref.onBlur,
|
|
395
546
|
onDelete = _ref.onDelete,
|
|
547
|
+
onClone = _ref.onClone,
|
|
396
548
|
arrayHelpers = _ref.arrayHelpers,
|
|
397
549
|
_ref$hideDeleteOption = _ref.hideDeleteOption,
|
|
398
|
-
hideDeleteOption = _ref$hideDeleteOption === void 0 ? false : _ref$hideDeleteOption
|
|
399
|
-
|
|
400
|
-
|
|
550
|
+
hideDeleteOption = _ref$hideDeleteOption === void 0 ? false : _ref$hideDeleteOption,
|
|
551
|
+
_ref$hideCloneOption = _ref.hideCloneOption,
|
|
552
|
+
hideCloneOption = _ref$hideCloneOption === void 0 ? false : _ref$hideCloneOption;
|
|
401
553
|
var imageFieldName = name.replace(".label", ".image");
|
|
402
554
|
var _useField = formik.useField(imageFieldName),
|
|
403
555
|
_useField2 = _slicedToArray(_useField, 3);
|
|
@@ -407,7 +559,12 @@ var ImageOption = function ImageOption(_ref) {
|
|
|
407
559
|
var handleImageChange = function handleImageChange(changedImage) {
|
|
408
560
|
var imageValue = ramda.isEmpty(changedImage === null || changedImage === void 0 ? void 0 : changedImage.url) ? null : changedImage;
|
|
409
561
|
setValue(imageValue, false);
|
|
410
|
-
_onChange(
|
|
562
|
+
_onChange({
|
|
563
|
+
id: id,
|
|
564
|
+
value: imageValue,
|
|
565
|
+
isOnBlur: false,
|
|
566
|
+
fieldType: "image"
|
|
567
|
+
});
|
|
411
568
|
};
|
|
412
569
|
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
413
570
|
className: classnames("flex w-full items-center justify-center", {
|
|
@@ -438,56 +595,59 @@ var ImageOption = function ImageOption(_ref) {
|
|
|
438
595
|
"data-testid": "input-option-".concat(optionIndex),
|
|
439
596
|
onChange: function onChange(_ref2) {
|
|
440
597
|
var target = _ref2.target;
|
|
441
|
-
return _onChange(
|
|
598
|
+
return _onChange({
|
|
599
|
+
id: id,
|
|
600
|
+
value: target.value
|
|
601
|
+
});
|
|
442
602
|
},
|
|
443
603
|
onFocus: function onFocus(_ref3) {
|
|
444
604
|
var target = _ref3.target;
|
|
445
605
|
return target.select();
|
|
446
606
|
}
|
|
447
607
|
}, "onBlur", function onBlur(event) {
|
|
448
|
-
_onChange(
|
|
608
|
+
_onChange({
|
|
609
|
+
id: id,
|
|
610
|
+
value: event.target.value,
|
|
611
|
+
isOnBlur: true
|
|
612
|
+
});
|
|
449
613
|
_onBlur === null || _onBlur === void 0 || _onBlur(id, event.target.value);
|
|
450
614
|
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
451
615
|
args[_key - 1] = arguments[_key];
|
|
452
616
|
}
|
|
453
617
|
field.onBlur.apply(field, [event].concat(args));
|
|
454
618
|
}))
|
|
455
|
-
}),
|
|
456
|
-
className: "absolute right-
|
|
457
|
-
children: /*#__PURE__*/jsxRuntime.jsx(
|
|
619
|
+
}), /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
620
|
+
className: "absolute right-3 top-1/2 flex -translate-y-1/2 items-center gap-1 opacity-0 transition-opacity duration-200 group-hover:opacity-100",
|
|
621
|
+
children: /*#__PURE__*/jsxRuntime.jsx(OptionActions, {
|
|
622
|
+
arrayHelpers: arrayHelpers,
|
|
458
623
|
disabled: disabled,
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
tooltipProps: {
|
|
466
|
-
content: t("neetoMolecules.common.actions.delete"),
|
|
467
|
-
position: "top",
|
|
468
|
-
touch: ["hold", 500]
|
|
469
|
-
},
|
|
470
|
-
onClick: function onClick() {
|
|
471
|
-
return onDelete(id, arrayHelpers);
|
|
472
|
-
}
|
|
624
|
+
hideCloneOption: hideCloneOption,
|
|
625
|
+
hideDeleteOption: hideDeleteOption,
|
|
626
|
+
id: id,
|
|
627
|
+
onClone: onClone,
|
|
628
|
+
onDelete: onDelete,
|
|
629
|
+
optionIndex: optionIndex
|
|
473
630
|
})
|
|
474
631
|
})]
|
|
475
632
|
})
|
|
476
633
|
});
|
|
477
634
|
};
|
|
478
635
|
|
|
479
|
-
function ownKeys$
|
|
480
|
-
function _objectSpread$
|
|
636
|
+
function ownKeys$2(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; }
|
|
637
|
+
function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
481
638
|
var InputOption = function InputOption(_ref) {
|
|
482
639
|
var shouldFocus = _ref.shouldFocus,
|
|
483
640
|
_ref$hideDeleteOption = _ref.hideDeleteOption,
|
|
484
641
|
hideDeleteOption = _ref$hideDeleteOption === void 0 ? false : _ref$hideDeleteOption,
|
|
642
|
+
_ref$hideCloneOption = _ref.hideCloneOption,
|
|
643
|
+
hideCloneOption = _ref$hideCloneOption === void 0 ? false : _ref$hideCloneOption,
|
|
485
644
|
innerRef = _ref.innerRef,
|
|
486
645
|
draggableProps = _ref.draggableProps,
|
|
487
646
|
dragHandleProps = _ref.dragHandleProps,
|
|
488
647
|
isPictureChoice = _ref.isPictureChoice,
|
|
489
648
|
onKeyDown = _ref.onKeyDown,
|
|
490
649
|
onDelete = _ref.onDelete,
|
|
650
|
+
onClone = _ref.onClone,
|
|
491
651
|
_onChange = _ref.onChange,
|
|
492
652
|
optionIndex = _ref.optionIndex,
|
|
493
653
|
disabled = _ref.disabled,
|
|
@@ -498,29 +658,29 @@ var InputOption = function InputOption(_ref) {
|
|
|
498
658
|
placeholder = _ref.placeholder,
|
|
499
659
|
_onBlur = _ref.onBlur,
|
|
500
660
|
arrayHelpers = _ref.arrayHelpers;
|
|
501
|
-
var _useTranslation = reactI18next.useTranslation(),
|
|
502
|
-
t = _useTranslation.t;
|
|
503
661
|
var Component = isTextArea ? Textarea$1 : Input;
|
|
504
662
|
var _useField = formik.useField(name),
|
|
505
663
|
_useField2 = _slicedToArray(_useField, 1),
|
|
506
664
|
field = _useField2[0];
|
|
507
|
-
return /*#__PURE__*/jsxRuntime.jsx("div", _objectSpread$
|
|
665
|
+
return /*#__PURE__*/jsxRuntime.jsx("div", _objectSpread$2(_objectSpread$2({
|
|
508
666
|
ref: innerRef
|
|
509
|
-
}, _objectSpread$
|
|
667
|
+
}, _objectSpread$2(_objectSpread$2({}, draggableProps), dragHandleProps)), {}, {
|
|
510
668
|
"data-cy": "form-block-options",
|
|
511
669
|
children: /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
512
670
|
className: "nf-input-options group relative mb-2 flex items-start gap-1",
|
|
513
|
-
children: [isDraggable && /*#__PURE__*/jsxRuntime.jsx(DragHandle, _objectSpread$
|
|
671
|
+
children: [isDraggable && /*#__PURE__*/jsxRuntime.jsx(DragHandle, _objectSpread$2(_objectSpread$2({}, dragHandleProps), {}, {
|
|
514
672
|
"data-testid": "drag-handle-".concat(optionIndex)
|
|
515
673
|
})), isPictureChoice ? /*#__PURE__*/jsxRuntime.jsx(ImageOption, {
|
|
516
674
|
arrayHelpers: arrayHelpers,
|
|
517
675
|
disabled: disabled,
|
|
518
676
|
field: field,
|
|
677
|
+
hideCloneOption: hideCloneOption,
|
|
519
678
|
hideDeleteOption: hideDeleteOption,
|
|
520
679
|
id: id,
|
|
521
680
|
name: name,
|
|
522
681
|
onBlur: _onBlur,
|
|
523
682
|
onChange: _onChange,
|
|
683
|
+
onClone: onClone,
|
|
524
684
|
onDelete: onDelete,
|
|
525
685
|
onKeyDown: onKeyDown,
|
|
526
686
|
optionIndex: optionIndex,
|
|
@@ -534,33 +694,33 @@ var InputOption = function InputOption(_ref) {
|
|
|
534
694
|
autoFocus: shouldFocus,
|
|
535
695
|
"data-cy": "option-input-".concat(optionIndex),
|
|
536
696
|
"data-testid": "".concat(isTextArea ? "textarea-option" : "input-option", "-").concat(optionIndex),
|
|
537
|
-
suffix:
|
|
697
|
+
suffix: /*#__PURE__*/jsxRuntime.jsx(OptionActions, {
|
|
698
|
+
arrayHelpers: arrayHelpers,
|
|
538
699
|
disabled: disabled,
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
tooltipProps: {
|
|
546
|
-
content: t("neetoMolecules.common.actions.delete"),
|
|
547
|
-
position: "top",
|
|
548
|
-
touch: ["hold", 500]
|
|
549
|
-
},
|
|
550
|
-
onClick: function onClick() {
|
|
551
|
-
return onDelete(id, arrayHelpers);
|
|
552
|
-
}
|
|
700
|
+
hideCloneOption: hideCloneOption,
|
|
701
|
+
hideDeleteOption: hideDeleteOption,
|
|
702
|
+
id: id,
|
|
703
|
+
onClone: onClone,
|
|
704
|
+
onDelete: onDelete,
|
|
705
|
+
optionIndex: optionIndex
|
|
553
706
|
}),
|
|
554
707
|
onChange: function onChange(_ref2) {
|
|
555
708
|
var target = _ref2.target;
|
|
556
|
-
return _onChange(
|
|
709
|
+
return _onChange({
|
|
710
|
+
id: id,
|
|
711
|
+
value: target.value
|
|
712
|
+
});
|
|
557
713
|
},
|
|
558
714
|
onFocus: function onFocus(_ref3) {
|
|
559
715
|
var target = _ref3.target;
|
|
560
716
|
return target.select();
|
|
561
717
|
},
|
|
562
718
|
onBlur: function onBlur(event) {
|
|
563
|
-
_onChange(
|
|
719
|
+
_onChange({
|
|
720
|
+
id: id,
|
|
721
|
+
value: event.target.value,
|
|
722
|
+
isOnBlur: true
|
|
723
|
+
});
|
|
564
724
|
_onBlur === null || _onBlur === void 0 || _onBlur(id, event.target.value);
|
|
565
725
|
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
566
726
|
args[_key - 1] = arguments[_key];
|
|
@@ -572,19 +732,127 @@ var InputOption = function InputOption(_ref) {
|
|
|
572
732
|
}));
|
|
573
733
|
};
|
|
574
734
|
|
|
735
|
+
function ownKeys$1(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; }
|
|
736
|
+
function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
737
|
+
var MultiInputOption = reactUtils.withT(function (_ref) {
|
|
738
|
+
var shouldFocus = _ref.shouldFocus,
|
|
739
|
+
_ref$hideDeleteOption = _ref.hideDeleteOption,
|
|
740
|
+
hideDeleteOption = _ref$hideDeleteOption === void 0 ? false : _ref$hideDeleteOption,
|
|
741
|
+
_ref$hideCloneOption = _ref.hideCloneOption,
|
|
742
|
+
hideCloneOption = _ref$hideCloneOption === void 0 ? false : _ref$hideCloneOption,
|
|
743
|
+
innerRef = _ref.innerRef,
|
|
744
|
+
draggableProps = _ref.draggableProps,
|
|
745
|
+
dragHandleProps = _ref.dragHandleProps,
|
|
746
|
+
_onKeyDown = _ref.onKeyDown,
|
|
747
|
+
onDelete = _ref.onDelete,
|
|
748
|
+
onClone = _ref.onClone,
|
|
749
|
+
_onChange = _ref.onChange,
|
|
750
|
+
optionIndex = _ref.optionIndex,
|
|
751
|
+
disabled = _ref.disabled,
|
|
752
|
+
id = _ref.id,
|
|
753
|
+
isDraggable = _ref.isDraggable,
|
|
754
|
+
name = _ref.name,
|
|
755
|
+
placeholder = _ref.placeholder,
|
|
756
|
+
_onBlur = _ref.onBlur,
|
|
757
|
+
arrayHelpers = _ref.arrayHelpers,
|
|
758
|
+
_ref$inputConfig = _ref.inputConfig,
|
|
759
|
+
inputConfig = _ref$inputConfig === void 0 ? [] : _ref$inputConfig;
|
|
760
|
+
return /*#__PURE__*/jsxRuntime.jsx("div", _objectSpread$1(_objectSpread$1({
|
|
761
|
+
ref: innerRef
|
|
762
|
+
}, _objectSpread$1(_objectSpread$1({}, draggableProps), dragHandleProps)), {}, {
|
|
763
|
+
"data-cy": "form-block-multi-options",
|
|
764
|
+
"data-testid": "form-block-multi-options",
|
|
765
|
+
children: /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
766
|
+
className: "nf-multi-input-options group relative mb-2 flex items-center gap-1",
|
|
767
|
+
children: [isDraggable && /*#__PURE__*/jsxRuntime.jsx(DragHandle, _objectSpread$1(_objectSpread$1({}, dragHandleProps), {}, {
|
|
768
|
+
"data-testid": "drag-handle-".concat(optionIndex)
|
|
769
|
+
})), /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
770
|
+
className: "flex flex-1 flex-col gap-2",
|
|
771
|
+
children: /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
772
|
+
className: "flex gap-2",
|
|
773
|
+
children: inputConfig.map(function (config, inputIndex) {
|
|
774
|
+
var _field$value;
|
|
775
|
+
var inputName = "".concat(name.replace(".label", ""), ".values.").concat(inputIndex);
|
|
776
|
+
var inputType = config.type || INPUT_TYPES.TEXT;
|
|
777
|
+
var isNumberType = inputType === INPUT_TYPES.NUMBER;
|
|
778
|
+
var _useField = formik.useField(inputName),
|
|
779
|
+
_useField2 = _slicedToArray(_useField, 1),
|
|
780
|
+
field = _useField2[0];
|
|
781
|
+
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
782
|
+
className: "flex-1",
|
|
783
|
+
children: /*#__PURE__*/jsxRuntime.jsx(Input, _objectSpread$1(_objectSpread$1({
|
|
784
|
+
disabled: disabled,
|
|
785
|
+
autoFocus: shouldFocus && inputIndex === 0,
|
|
786
|
+
"data-cy": "multi-option-input-".concat(optionIndex, "-").concat(inputIndex),
|
|
787
|
+
"data-testid": "multi-option-input-".concat(optionIndex, "-").concat(inputIndex)
|
|
788
|
+
}, isNumberType && {
|
|
789
|
+
min: config.min,
|
|
790
|
+
max: config.max
|
|
791
|
+
}), {}, {
|
|
792
|
+
name: inputName,
|
|
793
|
+
type: inputType,
|
|
794
|
+
value: (_field$value = field.value) !== null && _field$value !== void 0 ? _field$value : config.defaultValue,
|
|
795
|
+
placeholder: config.placeholder || "".concat(placeholder, " ").concat(inputIndex + 1),
|
|
796
|
+
onFocus: function onFocus(_ref2) {
|
|
797
|
+
var target = _ref2.target;
|
|
798
|
+
return target.select();
|
|
799
|
+
},
|
|
800
|
+
onBlur: function onBlur(event) {
|
|
801
|
+
return handleInputBlur(event, {
|
|
802
|
+
id: id,
|
|
803
|
+
inputIndex: inputIndex,
|
|
804
|
+
onChange: _onChange,
|
|
805
|
+
onBlur: _onBlur,
|
|
806
|
+
field: field,
|
|
807
|
+
config: config
|
|
808
|
+
});
|
|
809
|
+
},
|
|
810
|
+
onChange: function onChange(_ref3) {
|
|
811
|
+
var target = _ref3.target;
|
|
812
|
+
return _onChange({
|
|
813
|
+
id: id,
|
|
814
|
+
value: target.value,
|
|
815
|
+
inputIndex: inputIndex
|
|
816
|
+
});
|
|
817
|
+
},
|
|
818
|
+
onKeyDown: function onKeyDown(event) {
|
|
819
|
+
return isNumberType ? handleNumberKeyDown(event, _onKeyDown) : _onKeyDown === null || _onKeyDown === void 0 ? void 0 : _onKeyDown(event);
|
|
820
|
+
}
|
|
821
|
+
}))
|
|
822
|
+
}, inputIndex);
|
|
823
|
+
})
|
|
824
|
+
})
|
|
825
|
+
}), /*#__PURE__*/jsxRuntime.jsx(OptionActions, {
|
|
826
|
+
arrayHelpers: arrayHelpers,
|
|
827
|
+
disabled: disabled,
|
|
828
|
+
hideCloneOption: hideCloneOption,
|
|
829
|
+
hideDeleteOption: hideDeleteOption,
|
|
830
|
+
id: id,
|
|
831
|
+
onClone: onClone,
|
|
832
|
+
onDelete: onDelete,
|
|
833
|
+
optionIndex: optionIndex
|
|
834
|
+
})]
|
|
835
|
+
})
|
|
836
|
+
}));
|
|
837
|
+
});
|
|
838
|
+
|
|
575
839
|
var OptionField = function OptionField(_ref) {
|
|
576
840
|
var option = _ref.option,
|
|
577
841
|
editable = _ref.editable,
|
|
578
842
|
dragHandleProps = _ref.dragHandleProps,
|
|
579
843
|
draggableProps = _ref.draggableProps,
|
|
580
844
|
handleDeleteClick = _ref.handleDeleteClick,
|
|
845
|
+
handleCloneClick = _ref.handleCloneClick,
|
|
581
846
|
hideDeleteOption = _ref.hideDeleteOption,
|
|
847
|
+
hideCloneOption = _ref.hideCloneOption,
|
|
582
848
|
innerRef = _ref.innerRef,
|
|
583
849
|
onEdit = _ref.onEdit,
|
|
584
850
|
draggable = _ref.draggable,
|
|
585
851
|
disabled = _ref.disabled,
|
|
586
852
|
isPictureChoice = _ref.isPictureChoice,
|
|
587
853
|
isTextArea = _ref.isTextArea,
|
|
854
|
+
isMultiInput = _ref.isMultiInput,
|
|
855
|
+
inputConfig = _ref.inputConfig,
|
|
588
856
|
shouldFocus = _ref.shouldFocus,
|
|
589
857
|
isEditable = _ref.isEditable,
|
|
590
858
|
itemLabel = _ref.itemLabel,
|
|
@@ -600,19 +868,46 @@ var OptionField = function OptionField(_ref) {
|
|
|
600
868
|
dragHandleProps: dragHandleProps,
|
|
601
869
|
draggableProps: draggableProps,
|
|
602
870
|
handleDeleteClick: handleDeleteClick,
|
|
871
|
+
hideCloneOption: hideCloneOption,
|
|
603
872
|
hideDeleteOption: hideDeleteOption,
|
|
604
873
|
innerRef: innerRef,
|
|
605
874
|
onEdit: onEdit,
|
|
606
875
|
optionIndex: optionIndex,
|
|
607
876
|
id: option.id,
|
|
608
877
|
isDraggable: draggable && !disabled,
|
|
609
|
-
label: option.label
|
|
878
|
+
label: option.label,
|
|
879
|
+
onClone: handleCloneClick
|
|
880
|
+
});
|
|
881
|
+
}
|
|
882
|
+
if (isMultiInput) {
|
|
883
|
+
return /*#__PURE__*/jsxRuntime.jsx(MultiInputOption, {
|
|
884
|
+
arrayHelpers: arrayHelpers,
|
|
885
|
+
dragHandleProps: dragHandleProps,
|
|
886
|
+
draggableProps: draggableProps,
|
|
887
|
+
hideCloneOption: hideCloneOption,
|
|
888
|
+
hideDeleteOption: hideDeleteOption,
|
|
889
|
+
innerRef: innerRef,
|
|
890
|
+
inputConfig: inputConfig,
|
|
891
|
+
name: name,
|
|
892
|
+
onBlur: onBlur,
|
|
893
|
+
option: option,
|
|
894
|
+
optionIndex: optionIndex,
|
|
895
|
+
shouldFocus: shouldFocus,
|
|
896
|
+
disabled: !isEditable || disabled,
|
|
897
|
+
id: option.id,
|
|
898
|
+
isDraggable: draggable && !disabled,
|
|
899
|
+
placeholder: generatePlaceholder(itemLabel, optionIndex),
|
|
900
|
+
onChange: handleChange,
|
|
901
|
+
onClone: handleCloneClick,
|
|
902
|
+
onDelete: handleDeleteClick,
|
|
903
|
+
onKeyDown: handleKeyDown
|
|
610
904
|
});
|
|
611
905
|
}
|
|
612
906
|
return /*#__PURE__*/jsxRuntime.jsx(InputOption, {
|
|
613
907
|
arrayHelpers: arrayHelpers,
|
|
614
908
|
dragHandleProps: dragHandleProps,
|
|
615
909
|
draggableProps: draggableProps,
|
|
910
|
+
hideCloneOption: hideCloneOption,
|
|
616
911
|
hideDeleteOption: hideDeleteOption,
|
|
617
912
|
innerRef: innerRef,
|
|
618
913
|
isPictureChoice: isPictureChoice,
|
|
@@ -626,6 +921,7 @@ var OptionField = function OptionField(_ref) {
|
|
|
626
921
|
isDraggable: draggable && !disabled,
|
|
627
922
|
placeholder: generatePlaceholder(itemLabel, optionIndex),
|
|
628
923
|
onChange: handleChange,
|
|
924
|
+
onClone: handleCloneClick,
|
|
629
925
|
onDelete: handleDeleteClick,
|
|
630
926
|
onKeyDown: handleKeyDown
|
|
631
927
|
});
|
|
@@ -638,6 +934,7 @@ var OptionFields = function OptionFields(_ref) {
|
|
|
638
934
|
var name = _ref.name,
|
|
639
935
|
error = _ref.error,
|
|
640
936
|
onDelete = _ref.onDelete,
|
|
937
|
+
onClone = _ref.onClone,
|
|
641
938
|
onChange = _ref.onChange,
|
|
642
939
|
onBlur = _ref.onBlur,
|
|
643
940
|
_ref$onEdit = _ref.onEdit,
|
|
@@ -656,10 +953,16 @@ var OptionFields = function OptionFields(_ref) {
|
|
|
656
953
|
isAddOptionEnabled = _ref$isAddOptionEnabl === void 0 ? true : _ref$isAddOptionEnabl,
|
|
657
954
|
_ref$isDeleteOptionEn = _ref.isDeleteOptionEnabled,
|
|
658
955
|
isDeleteOptionEnabled = _ref$isDeleteOptionEn === void 0 ? true : _ref$isDeleteOptionEn,
|
|
956
|
+
_ref$isCloneOptionEna = _ref.isCloneOptionEnabled,
|
|
957
|
+
isCloneOptionEnabled = _ref$isCloneOptionEna === void 0 ? true : _ref$isCloneOptionEna,
|
|
659
958
|
_ref$isPictureChoice = _ref.isPictureChoice,
|
|
660
959
|
isPictureChoice = _ref$isPictureChoice === void 0 ? false : _ref$isPictureChoice,
|
|
661
960
|
_ref$isTextArea = _ref.isTextArea,
|
|
662
961
|
isTextArea = _ref$isTextArea === void 0 ? false : _ref$isTextArea,
|
|
962
|
+
_ref$isMultiInput = _ref.isMultiInput,
|
|
963
|
+
isMultiInput = _ref$isMultiInput === void 0 ? false : _ref$isMultiInput,
|
|
964
|
+
_ref$inputConfig = _ref.inputConfig,
|
|
965
|
+
inputConfig = _ref$inputConfig === void 0 ? [] : _ref$inputConfig,
|
|
663
966
|
_ref$shouldDestroy = _ref.shouldDestroy,
|
|
664
967
|
shouldDestroy = _ref$shouldDestroy === void 0 ? false : _ref$shouldDestroy,
|
|
665
968
|
_ref$destroyFlagName = _ref.destroyFlagName,
|
|
@@ -686,6 +989,7 @@ var OptionFields = function OptionFields(_ref) {
|
|
|
686
989
|
field = _useField2[0],
|
|
687
990
|
meta = _useField2[1];
|
|
688
991
|
var fieldError = meta.touched ? meta.error : null;
|
|
992
|
+
var multiInputError = getMultiInputError(isMultiInput, meta);
|
|
689
993
|
var options = (_field$value = field.value) !== null && _field$value !== void 0 ? _field$value : [];
|
|
690
994
|
var _useOptionFields = useOptionFields({
|
|
691
995
|
options: options,
|
|
@@ -697,7 +1001,9 @@ var OptionFields = function OptionFields(_ref) {
|
|
|
697
1001
|
name: name,
|
|
698
1002
|
isNewItemsPrefilled: isNewItemsPrefilled,
|
|
699
1003
|
isAddOptionEnabled: isAddOptionEnabled,
|
|
700
|
-
isPictureChoice: isPictureChoice
|
|
1004
|
+
isPictureChoice: isPictureChoice,
|
|
1005
|
+
isMultiInput: isMultiInput,
|
|
1006
|
+
inputConfig: inputConfig
|
|
701
1007
|
}),
|
|
702
1008
|
shouldFocus = _useOptionFields.shouldFocus,
|
|
703
1009
|
handleAddOption = _useOptionFields.handleAddOption,
|
|
@@ -705,7 +1011,8 @@ var OptionFields = function OptionFields(_ref) {
|
|
|
705
1011
|
handleChange = _useOptionFields.handleChange,
|
|
706
1012
|
handleKeyDown = _useOptionFields.handleKeyDown,
|
|
707
1013
|
handleDelete = _useOptionFields.handleDelete,
|
|
708
|
-
handleDragEnd = _useOptionFields.handleDragEnd
|
|
1014
|
+
handleDragEnd = _useOptionFields.handleDragEnd,
|
|
1015
|
+
handleClone = _useOptionFields.handleClone;
|
|
709
1016
|
|
|
710
1017
|
// Temporarily disables the modifications to options when changed are getting saved to server
|
|
711
1018
|
// This condition only needed for server id generated types
|
|
@@ -717,15 +1024,20 @@ var OptionFields = function OptionFields(_ref) {
|
|
|
717
1024
|
return !deleted;
|
|
718
1025
|
});
|
|
719
1026
|
var hideDeleteOption = filteredOptions.length <= minOptions || disabled || !isDeleteOptionEnabled;
|
|
1027
|
+
var hideCloneOption = disabled || !isCloneOptionEnabled;
|
|
720
1028
|
var optionFieldProps = {
|
|
721
1029
|
disabled: disabled,
|
|
722
1030
|
draggable: draggable,
|
|
723
1031
|
editable: editable,
|
|
724
1032
|
handleChange: handleChange,
|
|
725
1033
|
handleDeleteClick: onDelete !== null && onDelete !== void 0 ? onDelete : handleDelete,
|
|
1034
|
+
handleCloneClick: onClone !== null && onClone !== void 0 ? onClone : handleClone,
|
|
726
1035
|
handleKeyDown: handleKeyDown,
|
|
727
1036
|
hideDeleteOption: hideDeleteOption,
|
|
1037
|
+
hideCloneOption: hideCloneOption,
|
|
1038
|
+
inputConfig: inputConfig,
|
|
728
1039
|
isEditable: isEditable,
|
|
1040
|
+
isMultiInput: isMultiInput,
|
|
729
1041
|
isPictureChoice: isPictureChoice,
|
|
730
1042
|
isTextArea: isTextArea,
|
|
731
1043
|
itemLabel: itemLabel,
|
|
@@ -765,6 +1077,7 @@ var OptionFields = function OptionFields(_ref) {
|
|
|
765
1077
|
isDropDisabled: !draggable || disabled,
|
|
766
1078
|
renderClone: renderDragClone,
|
|
767
1079
|
children: function children(_ref3) {
|
|
1080
|
+
var _ref5;
|
|
768
1081
|
var innerRef = _ref3.innerRef,
|
|
769
1082
|
droppableProps = _ref3.droppableProps,
|
|
770
1083
|
placeholder = _ref3.placeholder;
|
|
@@ -802,7 +1115,7 @@ var OptionFields = function OptionFields(_ref) {
|
|
|
802
1115
|
});
|
|
803
1116
|
}
|
|
804
1117
|
}), placeholder, /*#__PURE__*/jsxRuntime.jsx(FormError, {
|
|
805
|
-
error: error !== null && error !== void 0 ? error : fieldError
|
|
1118
|
+
error: (_ref5 = error !== null && error !== void 0 ? error : multiInputError) !== null && _ref5 !== void 0 ? _ref5 : fieldError
|
|
806
1119
|
})]
|
|
807
1120
|
}));
|
|
808
1121
|
}
|
|
@@ -818,7 +1131,7 @@ var OptionFields = function OptionFields(_ref) {
|
|
|
818
1131
|
size: "small",
|
|
819
1132
|
style: "link",
|
|
820
1133
|
onClick: handleAddOption
|
|
821
|
-
}, buttonProps)), bulkActionProps.enabled && !isPictureChoice && /*#__PURE__*/jsxRuntime.jsx(Button, {
|
|
1134
|
+
}, buttonProps)), bulkActionProps.enabled && !isPictureChoice && !isMultiInput && /*#__PURE__*/jsxRuntime.jsx(Button, {
|
|
822
1135
|
"data-cy": "add-bulk-option-link",
|
|
823
1136
|
"data-testid": "add-bulk-option-link",
|
|
824
1137
|
disabled: !isEditable,
|