@bigbinary/neeto-molecules 3.10.6 → 3.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Breadcrumbs.js +1 -1
- package/dist/BrowserSupport.js +1 -1
- package/dist/Builder.js +1 -1
- package/dist/ButtonGroup.js +1 -1
- package/dist/CalendarView.js +1 -1
- package/dist/{Chevron-DYhRHGmL.js → Chevron-C_bPU_nD.js} +2 -2
- package/dist/{Chevron-DYhRHGmL.js.map → Chevron-C_bPU_nD.js.map} +1 -1
- package/dist/Columns.js +1 -1
- package/dist/ConfigurePageSidebar.js +1 -1
- package/dist/Container.js +1 -1
- package/dist/CustomDomainDashboard.js +1 -1
- package/dist/DocumentEditor.js +1 -1
- package/dist/DynamicVariables.js +1 -1
- package/dist/FileUpload.js +1 -1
- package/dist/FloatingActionMenu.js +1 -1
- package/dist/Header.js +1 -1
- package/dist/MadeWith.js +1 -1
- package/dist/MenuBar.js +1 -1
- package/dist/Metadata.js +1 -1
- package/dist/MoreDropdown.js +1 -1
- package/dist/NavigationHeader.js +1 -1
- package/dist/Onboarding.js +1 -1
- package/dist/OptionFields.js +380 -222
- package/dist/OptionFields.js.map +1 -1
- package/dist/PageLoader.js +1 -1
- package/dist/ProductEmbed.js +1 -1
- package/dist/PublishBlock.js +1 -1
- package/dist/Rename.js +1 -1
- package/dist/SessionEnvironment.js +1 -1
- package/dist/ShareViaEmail.js +1 -1
- package/dist/Sidebar.js +1 -1
- package/dist/SubHeader.js +2 -2
- package/dist/SuffixedInput.js +1 -1
- package/dist/TableWrapper.js +1 -1
- package/dist/Taxonomy.js +1 -1
- package/dist/cjs/Breadcrumbs.js +1 -1
- package/dist/cjs/BrowserSupport.js +1 -1
- package/dist/cjs/Builder.js +1 -1
- package/dist/cjs/ButtonGroup.js +1 -1
- package/dist/cjs/CalendarView.js +1 -1
- package/dist/cjs/{Chevron-BHx_p44t.js → Chevron-DCuqBPU0.js} +2 -2
- package/dist/cjs/{Chevron-BHx_p44t.js.map → Chevron-DCuqBPU0.js.map} +1 -1
- package/dist/cjs/Columns.js +1 -1
- package/dist/cjs/ConfigurePageSidebar.js +1 -1
- package/dist/cjs/Container.js +1 -1
- package/dist/cjs/CustomDomainDashboard.js +1 -1
- package/dist/cjs/DocumentEditor.js +1 -1
- package/dist/cjs/DynamicVariables.js +1 -1
- package/dist/cjs/FileUpload.js +1 -1
- package/dist/cjs/FloatingActionMenu.js +1 -1
- package/dist/cjs/Header.js +1 -1
- package/dist/cjs/MadeWith.js +1 -1
- package/dist/cjs/MenuBar.js +1 -1
- package/dist/cjs/Metadata.js +1 -1
- package/dist/cjs/MoreDropdown.js +1 -1
- package/dist/cjs/NavigationHeader.js +1 -1
- package/dist/cjs/Onboarding.js +1 -1
- package/dist/cjs/OptionFields.js +377 -219
- package/dist/cjs/OptionFields.js.map +1 -1
- package/dist/cjs/PageLoader.js +1 -1
- package/dist/cjs/ProductEmbed.js +1 -1
- package/dist/cjs/PublishBlock.js +1 -1
- package/dist/cjs/Rename.js +1 -1
- package/dist/cjs/SessionEnvironment.js +1 -1
- package/dist/cjs/ShareViaEmail.js +1 -1
- package/dist/cjs/Sidebar.js +1 -1
- package/dist/cjs/SubHeader.js +2 -2
- package/dist/cjs/SuffixedInput.js +1 -1
- package/dist/cjs/TableWrapper.js +1 -1
- package/dist/cjs/Taxonomy.js +1 -1
- package/dist/cjs/{useColumns-E3db4ucs.js → useColumns-BP8c4PV-.js} +2 -2
- package/dist/cjs/{useColumns-E3db4ucs.js.map → useColumns-BP8c4PV-.js.map} +1 -1
- package/dist/styles/page-loader.css +1 -1
- package/dist/styles/page-loader.js +1 -1
- package/dist/{useColumns-B8JL1GjK.js → useColumns-Db5uic1-.js} +2 -2
- package/dist/{useColumns-B8JL1GjK.js.map → useColumns-Db5uic1-.js.map} +1 -1
- package/package.json +1 -1
- package/types/OptionFields.d.ts +12 -6
package/dist/cjs/OptionFields.js
CHANGED
|
@@ -4,105 +4,25 @@ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
|
4
4
|
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
5
5
|
var React = require('react');
|
|
6
6
|
var dnd = require('@hello-pangea/dnd');
|
|
7
|
+
var formik = require('formik');
|
|
7
8
|
var neetoCist = require('@bigbinary/neeto-cist');
|
|
8
9
|
var Plus = require('@bigbinary/neeto-icons/Plus');
|
|
9
10
|
var Button = require('@bigbinary/neetoui/Button');
|
|
10
|
-
var Typography = require('@bigbinary/neetoui/Typography');
|
|
11
11
|
var ramda = require('ramda');
|
|
12
12
|
var reactI18next = require('react-i18next');
|
|
13
|
+
var Modal = require('@bigbinary/neetoui/Modal');
|
|
14
|
+
var Textarea = require('@bigbinary/neetoui/Textarea');
|
|
15
|
+
var Typography = require('@bigbinary/neetoui/Typography');
|
|
16
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
17
|
+
var i18next = require('i18next');
|
|
18
|
+
var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
|
13
19
|
var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
|
|
14
20
|
var Delete = require('@bigbinary/neeto-icons/Delete');
|
|
15
21
|
var Edit = require('@bigbinary/neeto-icons/Edit');
|
|
16
22
|
var Drag = require('@bigbinary/neeto-icons/Drag');
|
|
17
|
-
var jsxRuntime = require('react/jsx-runtime');
|
|
18
|
-
var Modal = require('@bigbinary/neetoui/Modal');
|
|
19
|
-
var Textarea = require('@bigbinary/neetoui/Textarea');
|
|
20
|
-
var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
|
21
|
-
var i18next = require('i18next');
|
|
22
23
|
var ImageUpload = require('@bigbinary/neeto-icons/ImageUpload');
|
|
23
|
-
var Input = require('@bigbinary/neetoui/Input');
|
|
24
|
-
|
|
25
|
-
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; }
|
|
26
|
-
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), !0).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; }
|
|
27
|
-
var DragHandle = function DragHandle(props) {
|
|
28
|
-
return /*#__PURE__*/jsxRuntime.jsx("div", _objectSpread$4(_objectSpread$4({
|
|
29
|
-
className: "neeto-ui-text-gray-500 flex h-8 flex-shrink-0 cursor-grab items-center",
|
|
30
|
-
"data-cy": "drag-handle",
|
|
31
|
-
"data-testid": "drag-handle"
|
|
32
|
-
}, props), {}, {
|
|
33
|
-
children: /*#__PURE__*/jsxRuntime.jsx(Drag, {
|
|
34
|
-
size: 16,
|
|
35
|
-
strokeWidth: 2
|
|
36
|
-
})
|
|
37
|
-
}));
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
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; }
|
|
41
|
-
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), !0).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; }
|
|
42
|
-
var BlockOption = reactUtils.withT(function (_ref) {
|
|
43
|
-
var t = _ref.t,
|
|
44
|
-
innerRef = _ref.innerRef,
|
|
45
|
-
_ref$hideDeleteOption = _ref.hideDeleteOption,
|
|
46
|
-
hideDeleteOption = _ref$hideDeleteOption === void 0 ? false : _ref$hideDeleteOption,
|
|
47
|
-
draggableProps = _ref.draggableProps,
|
|
48
|
-
dragHandleProps = _ref.dragHandleProps,
|
|
49
|
-
label = _ref.label,
|
|
50
|
-
index = _ref.index,
|
|
51
|
-
onEdit = _ref.onEdit,
|
|
52
|
-
handleDeleteClick = _ref.handleDeleteClick,
|
|
53
|
-
id = _ref.id;
|
|
54
|
-
return /*#__PURE__*/jsxRuntime.jsx("div", _objectSpread$3(_objectSpread$3(_objectSpread$3({
|
|
55
|
-
ref: innerRef
|
|
56
|
-
}, draggableProps), dragHandleProps), {}, {
|
|
57
|
-
children: /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
58
|
-
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",
|
|
59
|
-
"data-cy": "address-field-block",
|
|
60
|
-
children: [/*#__PURE__*/jsxRuntime.jsx(DragHandle, _objectSpread$3({}, dragHandleProps)), /*#__PURE__*/jsxRuntime.jsx(Typography, {
|
|
61
|
-
className: "flex-grow leading-4",
|
|
62
|
-
"data-cy": "address-text-field",
|
|
63
|
-
"data-testid": "address-text-field",
|
|
64
|
-
style: "body2",
|
|
65
|
-
children: label
|
|
66
|
-
}), /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
67
|
-
className: "flex items-center justify-end gap-2 opacity-0 group-hover:opacity-100",
|
|
68
|
-
children: [/*#__PURE__*/jsxRuntime.jsx(Button, {
|
|
69
|
-
className: "neeto-ui-rounded hover:neeto-ui-bg-gray-400 p-1",
|
|
70
|
-
"data-cy": "address-field-edit-button",
|
|
71
|
-
"data-testid": "address-field-edit-button",
|
|
72
|
-
icon: Edit,
|
|
73
|
-
size: "small",
|
|
74
|
-
style: "text",
|
|
75
|
-
tooltipProps: {
|
|
76
|
-
content: t("neetoMolecules.common.actions.edit"),
|
|
77
|
-
position: "top",
|
|
78
|
-
touch: ["hold", 500]
|
|
79
|
-
},
|
|
80
|
-
onClick: function onClick() {
|
|
81
|
-
return onEdit(index);
|
|
82
|
-
}
|
|
83
|
-
}), !hideDeleteOption && /*#__PURE__*/jsxRuntime.jsx(Button, {
|
|
84
|
-
className: "neeto-ui-rounded hover:neeto-ui-bg-gray-400 p-1",
|
|
85
|
-
"data-cy": "address-field-delete-button",
|
|
86
|
-
"data-testid": "address-field-delete-button",
|
|
87
|
-
icon: Delete,
|
|
88
|
-
size: "small",
|
|
89
|
-
style: "text",
|
|
90
|
-
tooltipProps: {
|
|
91
|
-
content: t("neetoMolecules.common.actions.delete"),
|
|
92
|
-
position: "top",
|
|
93
|
-
touch: ["hold", 500]
|
|
94
|
-
},
|
|
95
|
-
onClick: function onClick() {
|
|
96
|
-
return handleDeleteClick({
|
|
97
|
-
index: index,
|
|
98
|
-
id: id
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
})]
|
|
102
|
-
})]
|
|
103
|
-
})
|
|
104
|
-
}));
|
|
105
|
-
});
|
|
24
|
+
var Input = require('@bigbinary/neetoui/formik/Input');
|
|
25
|
+
var Textarea$1 = require('@bigbinary/neetoui/formik/Textarea');
|
|
106
26
|
|
|
107
27
|
var BulkOptionModal = function BulkOptionModal(_ref) {
|
|
108
28
|
var isOpen = _ref.isOpen,
|
|
@@ -175,24 +95,56 @@ var BulkOptionModal = function BulkOptionModal(_ref) {
|
|
|
175
95
|
|
|
176
96
|
var DEFAULT_OPTION_LABEL = i18next.t("neetoMolecules.optionFields.defaultOption");
|
|
177
97
|
|
|
178
|
-
var
|
|
98
|
+
var FormError = function FormError(_ref) {
|
|
99
|
+
var error = _ref.error;
|
|
100
|
+
if (neetoCist.isNotPresent(error) || typeof error !== "string") return null;
|
|
101
|
+
return /*#__PURE__*/jsxRuntime.jsx(Typography, {
|
|
102
|
+
className: "neeto-ui-input__error",
|
|
103
|
+
"data-testid": "validation-error-container",
|
|
104
|
+
style: "body3",
|
|
105
|
+
children: error
|
|
106
|
+
});
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
var getOrderedOptions = function getOrderedOptions() {
|
|
179
110
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
180
|
-
return options.
|
|
181
|
-
return !option.deleted;
|
|
182
|
-
}).sort(function (a, b) {
|
|
111
|
+
return options.sort(function (a, b) {
|
|
183
112
|
return a.position - b.position;
|
|
184
113
|
});
|
|
185
114
|
};
|
|
186
|
-
var filterDeletedRecords =
|
|
115
|
+
var filterDeletedRecords = function filterDeletedRecords(options, destroyFlagName) {
|
|
116
|
+
return ramda.reject(ramda.prop(destroyFlagName), options);
|
|
117
|
+
};
|
|
187
118
|
var randomId = function randomId() {
|
|
188
119
|
return Math.random().toString(36).substring(2, 13);
|
|
189
120
|
};
|
|
121
|
+
var getUniqueOptionId = function getUniqueOptionId(option) {
|
|
122
|
+
var _option$id, _option$position, _option$label;
|
|
123
|
+
return option.altId || ((_option$id = option.id) === null || _option$id === void 0 ? void 0 : _option$id.toString()) || ((_option$position = option.position) === null || _option$position === void 0 ? void 0 : _option$position.toString()) || neetoCist.slugify((_option$label = option.label) !== null && _option$label !== void 0 ? _option$label : "");
|
|
124
|
+
};
|
|
125
|
+
var generatePlaceholder = function generatePlaceholder(itemLabel, count) {
|
|
126
|
+
return "".concat(itemLabel, " ").concat(count + 1);
|
|
127
|
+
};
|
|
128
|
+
var _generateLabel = function generateLabel(itemLabel, options, count) {
|
|
129
|
+
var labelCount = count || options.length + 1;
|
|
130
|
+
var tempLabel = "".concat(itemLabel, " ").concat(labelCount);
|
|
131
|
+
var isDuplicateLabel = ramda.pluck("label", options).includes(tempLabel);
|
|
132
|
+
return isDuplicateLabel ? _generateLabel(itemLabel, options, labelCount + 1) : tempLabel;
|
|
133
|
+
};
|
|
134
|
+
var resolveFormikValue = function resolveFormikValue(path, values) {
|
|
135
|
+
if (!path || typeof path !== "string") {
|
|
136
|
+
return [];
|
|
137
|
+
}
|
|
138
|
+
return path.replace(/\[|\]/g, ".").split(".").filter(Boolean).reduce(function (acc, key) {
|
|
139
|
+
return acc && acc[key] !== undefined ? acc[key] : undefined;
|
|
140
|
+
}, values);
|
|
141
|
+
};
|
|
190
142
|
|
|
191
|
-
function ownKeys$
|
|
192
|
-
function _objectSpread$
|
|
143
|
+
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; }
|
|
144
|
+
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), !0).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; }
|
|
193
145
|
var attachPosition = function attachPosition(options) {
|
|
194
146
|
return options.map(function (option, index) {
|
|
195
|
-
return _objectSpread$
|
|
147
|
+
return _objectSpread$4(_objectSpread$4({}, option), {}, {
|
|
196
148
|
position: index
|
|
197
149
|
});
|
|
198
150
|
});
|
|
@@ -201,8 +153,11 @@ var useOptionFields = function useOptionFields(_ref) {
|
|
|
201
153
|
var options = _ref.options,
|
|
202
154
|
onChange = _ref.onChange,
|
|
203
155
|
shouldDestroy = _ref.shouldDestroy,
|
|
204
|
-
|
|
205
|
-
|
|
156
|
+
itemLabel = _ref.itemLabel,
|
|
157
|
+
shouldResetEmptyOptionOnBlur = _ref.shouldResetEmptyOptionOnBlur,
|
|
158
|
+
name = _ref.name,
|
|
159
|
+
destroyFlagName = _ref.destroyFlagName,
|
|
160
|
+
isNewItemsPrefilled = _ref.isNewItemsPrefilled;
|
|
206
161
|
var _useState = React.useState(false),
|
|
207
162
|
_useState2 = _slicedToArray(_useState, 2),
|
|
208
163
|
shouldFocus = _useState2[0],
|
|
@@ -211,11 +166,20 @@ var useOptionFields = function useOptionFields(_ref) {
|
|
|
211
166
|
id: "",
|
|
212
167
|
value: ""
|
|
213
168
|
});
|
|
169
|
+
var _useField = formik.useField(name),
|
|
170
|
+
_useField2 = _slicedToArray(_useField, 3);
|
|
171
|
+
_useField2[0];
|
|
172
|
+
_useField2[1];
|
|
173
|
+
var helpers = _useField2[2];
|
|
174
|
+
var setValue = helpers.setValue;
|
|
214
175
|
var handleChange = function handleChange(id, value) {
|
|
215
176
|
var isOnBlur = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
216
177
|
// Ignores onBlur events if the value in the input field is not cleared.
|
|
217
178
|
// The value will be reset to the initial value if user clicks outside after clearing the value.
|
|
218
|
-
|
|
179
|
+
// This can be controlled using the prop `shouldResetEmptyOptionOnBlur`.
|
|
180
|
+
if (isOnBlur && (neetoCist.isNotEmpty(value) || !shouldResetEmptyOptionOnBlur)) {
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
219
183
|
var index = neetoCist.findIndexById(id, options);
|
|
220
184
|
if (editingOptionDetailsRef.current.id !== id) {
|
|
221
185
|
editingOptionDetailsRef.current = {
|
|
@@ -226,49 +190,50 @@ var useOptionFields = function useOptionFields(_ref) {
|
|
|
226
190
|
|
|
227
191
|
// Resets the value to initial value if the user cleared and blurred the input field.
|
|
228
192
|
var valueToUpdate = isOnBlur ? editingOptionDetailsRef.current.value : value;
|
|
229
|
-
|
|
193
|
+
var nextOptions = ramda.assocPath([index, "label"], valueToUpdate, options);
|
|
194
|
+
setValue(nextOptions);
|
|
195
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(nextOptions);
|
|
230
196
|
};
|
|
231
|
-
var
|
|
232
|
-
var labelCount = count || opts.length + 1;
|
|
233
|
-
var tempLabel = "".concat(itemLabel, " ").concat(labelCount);
|
|
234
|
-
var isDuplicateLabel = ramda.pluck("label", opts).includes(tempLabel);
|
|
235
|
-
return isDuplicateLabel ? _generateLabel(opts, labelCount + 1) : tempLabel;
|
|
236
|
-
};
|
|
237
|
-
var handleDelete = function handleDelete(_, id) {
|
|
197
|
+
var handleDelete = function handleDelete(id, arrayHelpers) {
|
|
238
198
|
var nextOptions;
|
|
239
199
|
var indexToDelete = neetoCist.findIndexById(id, options);
|
|
240
200
|
if (shouldDestroy) {
|
|
241
|
-
nextOptions = ramda.assocPath([indexToDelete,
|
|
201
|
+
nextOptions = ramda.assocPath([indexToDelete, destroyFlagName], true, options);
|
|
202
|
+
setValue(nextOptions);
|
|
242
203
|
} else {
|
|
204
|
+
arrayHelpers.remove(indexToDelete);
|
|
243
205
|
nextOptions = attachPosition(ramda.remove(indexToDelete, 1, options));
|
|
244
206
|
}
|
|
245
|
-
onChange(nextOptions);
|
|
207
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(nextOptions);
|
|
246
208
|
};
|
|
247
209
|
var handleDragEnd = function handleDragEnd(_ref2) {
|
|
248
210
|
var source = _ref2.source,
|
|
249
211
|
destination = _ref2.destination;
|
|
250
212
|
// When dragged outside of draggable
|
|
251
213
|
if (destination === null) return;
|
|
252
|
-
var deletedOptions = options.filter(ramda.prop(
|
|
253
|
-
var filteredOptions = filterDeletedRecords(options);
|
|
214
|
+
var deletedOptions = options.filter(ramda.prop(destroyFlagName));
|
|
215
|
+
var filteredOptions = filterDeletedRecords(options, destroyFlagName);
|
|
254
216
|
var nextOptions = ramda.move(source.index, destination.index, filteredOptions);
|
|
255
217
|
var finalOptions = attachPosition(nextOptions);
|
|
256
|
-
|
|
218
|
+
setValue([].concat(_toConsumableArray(deletedOptions), _toConsumableArray(finalOptions)));
|
|
219
|
+
onChange === null || onChange === void 0 ? void 0 : onChange([].concat(_toConsumableArray(deletedOptions), _toConsumableArray(finalOptions)));
|
|
257
220
|
};
|
|
258
221
|
var handleAddOption = function handleAddOption() {
|
|
259
222
|
var id = randomId();
|
|
260
223
|
var newOption = {
|
|
261
224
|
id: "draft-".concat(id),
|
|
262
225
|
altId: "alt-".concat(id),
|
|
263
|
-
label: _generateLabel(
|
|
226
|
+
label: isNewItemsPrefilled ? _generateLabel(itemLabel, options) : "",
|
|
264
227
|
position: options.length
|
|
265
228
|
};
|
|
266
229
|
setShouldFocus(true);
|
|
267
|
-
|
|
230
|
+
var nextOptions = ramda.append(newOption, options);
|
|
231
|
+
setValue(nextOptions);
|
|
232
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(nextOptions);
|
|
268
233
|
};
|
|
269
234
|
var handleBulkAddOption = function handleBulkAddOption(optionsString) {
|
|
270
235
|
setShouldFocus(true);
|
|
271
|
-
var position =
|
|
236
|
+
var position = options.length;
|
|
272
237
|
var newOptions = optionsString.trim().split(/\r?\n|,/).filter(neetoCist.isNotEmpty).map(function (option, index) {
|
|
273
238
|
return {
|
|
274
239
|
id: "draft-".concat(randomId()),
|
|
@@ -277,23 +242,23 @@ var useOptionFields = function useOptionFields(_ref) {
|
|
|
277
242
|
position: position + index
|
|
278
243
|
};
|
|
279
244
|
});
|
|
280
|
-
|
|
245
|
+
var nextOptions = [].concat(_toConsumableArray(options), _toConsumableArray(newOptions));
|
|
246
|
+
setValue(nextOptions);
|
|
247
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(nextOptions);
|
|
281
248
|
};
|
|
282
|
-
var handleKeyDown = function handleKeyDown() {
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
event.stopPropagation();
|
|
296
|
-
};
|
|
249
|
+
var handleKeyDown = function handleKeyDown(event) {
|
|
250
|
+
if (event.key !== "Enter") return;
|
|
251
|
+
var form = event.target.form;
|
|
252
|
+
var inputs = Array.from(form.querySelectorAll("input"));
|
|
253
|
+
var currentInput = inputs.indexOf(event.target);
|
|
254
|
+
if (currentInput >= inputs.length - 1) {
|
|
255
|
+
handleAddOption();
|
|
256
|
+
} else {
|
|
257
|
+
var _inputs;
|
|
258
|
+
(_inputs = inputs[currentInput + 1]) === null || _inputs === void 0 ? void 0 : _inputs.focus();
|
|
259
|
+
event.preventDefault();
|
|
260
|
+
}
|
|
261
|
+
event.stopPropagation();
|
|
297
262
|
};
|
|
298
263
|
return {
|
|
299
264
|
shouldFocus: shouldFocus,
|
|
@@ -306,6 +271,89 @@ var useOptionFields = function useOptionFields(_ref) {
|
|
|
306
271
|
};
|
|
307
272
|
};
|
|
308
273
|
|
|
274
|
+
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; }
|
|
275
|
+
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), !0).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; }
|
|
276
|
+
var DragHandle = function DragHandle(props) {
|
|
277
|
+
return /*#__PURE__*/jsxRuntime.jsx("div", _objectSpread$3(_objectSpread$3({
|
|
278
|
+
className: "neeto-ui-text-gray-500 flex h-8 flex-shrink-0 cursor-grab items-center",
|
|
279
|
+
"data-cy": "drag-handle",
|
|
280
|
+
"data-testid": "drag-handle"
|
|
281
|
+
}, props), {}, {
|
|
282
|
+
children: /*#__PURE__*/jsxRuntime.jsx(Drag, {
|
|
283
|
+
size: 16,
|
|
284
|
+
strokeWidth: 2
|
|
285
|
+
})
|
|
286
|
+
}));
|
|
287
|
+
};
|
|
288
|
+
|
|
289
|
+
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; }
|
|
290
|
+
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), !0).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; }
|
|
291
|
+
var BlockOption = reactUtils.withT(function (_ref) {
|
|
292
|
+
var t = _ref.t,
|
|
293
|
+
innerRef = _ref.innerRef,
|
|
294
|
+
_ref$hideDeleteOption = _ref.hideDeleteOption,
|
|
295
|
+
hideDeleteOption = _ref$hideDeleteOption === void 0 ? false : _ref$hideDeleteOption,
|
|
296
|
+
draggableProps = _ref.draggableProps,
|
|
297
|
+
dragHandleProps = _ref.dragHandleProps,
|
|
298
|
+
label = _ref.label,
|
|
299
|
+
onEdit = _ref.onEdit,
|
|
300
|
+
handleDeleteClick = _ref.handleDeleteClick,
|
|
301
|
+
id = _ref.id,
|
|
302
|
+
isDraggable = _ref.isDraggable,
|
|
303
|
+
optionIndex = _ref.optionIndex,
|
|
304
|
+
arrayHelpers = _ref.arrayHelpers;
|
|
305
|
+
return /*#__PURE__*/jsxRuntime.jsx("div", _objectSpread$2(_objectSpread$2(_objectSpread$2({
|
|
306
|
+
ref: innerRef
|
|
307
|
+
}, draggableProps), dragHandleProps), {}, {
|
|
308
|
+
children: /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
309
|
+
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",
|
|
310
|
+
"data-cy": "address-field-block",
|
|
311
|
+
children: [isDraggable && /*#__PURE__*/jsxRuntime.jsx(DragHandle, _objectSpread$2(_objectSpread$2({}, dragHandleProps), {}, {
|
|
312
|
+
"data-testid": "drag-handle-".concat(optionIndex)
|
|
313
|
+
})), /*#__PURE__*/jsxRuntime.jsx(Typography, {
|
|
314
|
+
className: "flex-grow leading-4",
|
|
315
|
+
"data-cy": "address-text-field",
|
|
316
|
+
"data-testid": "address-text-field",
|
|
317
|
+
style: "body2",
|
|
318
|
+
children: label
|
|
319
|
+
}), /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
320
|
+
className: "flex items-center justify-end gap-2 opacity-0 group-hover:opacity-100",
|
|
321
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(Button, {
|
|
322
|
+
className: "neeto-ui-rounded hover:neeto-ui-bg-gray-400 p-1",
|
|
323
|
+
"data-cy": "address-field-edit-button",
|
|
324
|
+
"data-testid": "address-field-edit-button",
|
|
325
|
+
icon: Edit,
|
|
326
|
+
size: "small",
|
|
327
|
+
style: "text",
|
|
328
|
+
tooltipProps: {
|
|
329
|
+
content: t("neetoMolecules.common.actions.edit"),
|
|
330
|
+
position: "top",
|
|
331
|
+
touch: ["hold", 500]
|
|
332
|
+
},
|
|
333
|
+
onClick: function onClick() {
|
|
334
|
+
return onEdit(id);
|
|
335
|
+
}
|
|
336
|
+
}), !hideDeleteOption && /*#__PURE__*/jsxRuntime.jsx(Button, {
|
|
337
|
+
className: "neeto-ui-rounded hover:neeto-ui-bg-gray-400 p-1",
|
|
338
|
+
"data-cy": "address-field-delete-button",
|
|
339
|
+
"data-testid": "delete-option-button-".concat(optionIndex),
|
|
340
|
+
icon: Delete,
|
|
341
|
+
size: "small",
|
|
342
|
+
style: "text",
|
|
343
|
+
tooltipProps: {
|
|
344
|
+
content: t("neetoMolecules.common.actions.delete"),
|
|
345
|
+
position: "top",
|
|
346
|
+
touch: ["hold", 500]
|
|
347
|
+
},
|
|
348
|
+
onClick: function onClick() {
|
|
349
|
+
return handleDeleteClick(id, arrayHelpers);
|
|
350
|
+
}
|
|
351
|
+
})]
|
|
352
|
+
})]
|
|
353
|
+
})
|
|
354
|
+
}));
|
|
355
|
+
});
|
|
356
|
+
|
|
309
357
|
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; }
|
|
310
358
|
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), !0).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; }
|
|
311
359
|
var InputOption = function InputOption(_ref) {
|
|
@@ -319,22 +367,31 @@ var InputOption = function InputOption(_ref) {
|
|
|
319
367
|
onKeyDown = _ref.onKeyDown,
|
|
320
368
|
onDelete = _ref.onDelete,
|
|
321
369
|
_onChange = _ref.onChange,
|
|
322
|
-
|
|
323
|
-
index = _ref.index,
|
|
370
|
+
optionIndex = _ref.optionIndex,
|
|
324
371
|
disabled = _ref.disabled,
|
|
325
372
|
isTextArea = _ref.isTextArea,
|
|
326
|
-
id = _ref.id
|
|
373
|
+
id = _ref.id,
|
|
374
|
+
isDraggable = _ref.isDraggable,
|
|
375
|
+
name = _ref.name,
|
|
376
|
+
placeholder = _ref.placeholder,
|
|
377
|
+
_onBlur = _ref.onBlur,
|
|
378
|
+
arrayHelpers = _ref.arrayHelpers;
|
|
327
379
|
var _useTranslation = reactI18next.useTranslation(),
|
|
328
380
|
t = _useTranslation.t;
|
|
329
|
-
var Component = isTextArea ? Textarea : Input;
|
|
381
|
+
var Component = isTextArea ? Textarea$1 : Input;
|
|
382
|
+
var _useField = formik.useField(name),
|
|
383
|
+
_useField2 = _slicedToArray(_useField, 1),
|
|
384
|
+
field = _useField2[0];
|
|
330
385
|
return /*#__PURE__*/jsxRuntime.jsx("div", _objectSpread$1(_objectSpread$1({
|
|
331
386
|
ref: innerRef
|
|
332
387
|
}, _objectSpread$1(_objectSpread$1({}, draggableProps), dragHandleProps)), {}, {
|
|
333
388
|
"data-cy": "form-block-options",
|
|
334
389
|
children: /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
335
390
|
className: "nf-input-options group relative mb-2 flex items-start gap-1",
|
|
336
|
-
children: [/*#__PURE__*/jsxRuntime.jsx(DragHandle, _objectSpread$1({}, dragHandleProps)
|
|
337
|
-
|
|
391
|
+
children: [isDraggable && /*#__PURE__*/jsxRuntime.jsx(DragHandle, _objectSpread$1(_objectSpread$1({}, dragHandleProps), {}, {
|
|
392
|
+
"data-testid": "drag-handle-".concat(optionIndex)
|
|
393
|
+
})), isPictureChoice && /*#__PURE__*/jsxRuntime.jsx(jsxRuntime.Fragment, {
|
|
394
|
+
children: optionIndex === 0 ? /*#__PURE__*/jsxRuntime.jsx("img", {
|
|
338
395
|
className: "neeto-ui-rounded-sm h-8 w-8 cursor-pointer overflow-hidden object-cover",
|
|
339
396
|
"data-testid": "picture-choice-option",
|
|
340
397
|
src: "https://i.pravatar.cc/300"
|
|
@@ -346,16 +403,17 @@ var InputOption = function InputOption(_ref) {
|
|
|
346
403
|
})
|
|
347
404
|
}), /*#__PURE__*/jsxRuntime.jsx(Component, {
|
|
348
405
|
disabled: disabled,
|
|
406
|
+
name: name,
|
|
407
|
+
onKeyDown: onKeyDown,
|
|
408
|
+
placeholder: placeholder,
|
|
349
409
|
autoFocus: shouldFocus,
|
|
350
|
-
"data-cy": "option-input-".concat(
|
|
351
|
-
"data-testid": isTextArea ? "textarea-option" : "input-option",
|
|
352
|
-
placeholder: t("neetoMolecules.optionFields.optionName"),
|
|
353
|
-
value: label,
|
|
410
|
+
"data-cy": "option-input-".concat(optionIndex),
|
|
411
|
+
"data-testid": "".concat(isTextArea ? "textarea-option" : "input-option", "-").concat(optionIndex),
|
|
354
412
|
suffix: !hideDeleteOption && /*#__PURE__*/jsxRuntime.jsx(Button, {
|
|
355
413
|
disabled: disabled,
|
|
356
414
|
className: "p-0.5",
|
|
357
|
-
"data-cy": "delete-option-button-".concat(
|
|
358
|
-
"data-testid": "delete-option-button",
|
|
415
|
+
"data-cy": "delete-option-button-".concat(optionIndex),
|
|
416
|
+
"data-testid": "delete-option-button-".concat(optionIndex),
|
|
359
417
|
icon: Delete,
|
|
360
418
|
size: "small",
|
|
361
419
|
style: "text",
|
|
@@ -365,39 +423,97 @@ var InputOption = function InputOption(_ref) {
|
|
|
365
423
|
touch: ["hold", 500]
|
|
366
424
|
},
|
|
367
425
|
onClick: function onClick() {
|
|
368
|
-
return onDelete(
|
|
369
|
-
index: index,
|
|
370
|
-
id: id
|
|
371
|
-
});
|
|
426
|
+
return onDelete(id, arrayHelpers);
|
|
372
427
|
}
|
|
373
428
|
}),
|
|
374
|
-
|
|
429
|
+
onChange: function onChange(_ref2) {
|
|
375
430
|
var target = _ref2.target;
|
|
376
|
-
return _onChange(id, target.value, true);
|
|
377
|
-
},
|
|
378
|
-
onChange: function onChange(_ref3) {
|
|
379
|
-
var target = _ref3.target;
|
|
380
431
|
return _onChange(id, target.value);
|
|
381
432
|
},
|
|
382
|
-
onFocus: function onFocus(
|
|
383
|
-
var target =
|
|
433
|
+
onFocus: function onFocus(_ref3) {
|
|
434
|
+
var target = _ref3.target;
|
|
384
435
|
return target.select();
|
|
385
436
|
},
|
|
386
|
-
|
|
437
|
+
onBlur: function onBlur(event) {
|
|
438
|
+
_onChange(id, event.target.value, true);
|
|
439
|
+
_onBlur === null || _onBlur === void 0 ? void 0 : _onBlur(id, event.target.value);
|
|
440
|
+
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
441
|
+
args[_key - 1] = arguments[_key];
|
|
442
|
+
}
|
|
443
|
+
field.onBlur.apply(field, [event].concat(args));
|
|
444
|
+
}
|
|
387
445
|
})]
|
|
388
446
|
})
|
|
389
447
|
}));
|
|
390
448
|
};
|
|
391
449
|
|
|
450
|
+
var OptionField = function OptionField(_ref) {
|
|
451
|
+
var option = _ref.option,
|
|
452
|
+
editable = _ref.editable,
|
|
453
|
+
dragHandleProps = _ref.dragHandleProps,
|
|
454
|
+
draggableProps = _ref.draggableProps,
|
|
455
|
+
handleDeleteClick = _ref.handleDeleteClick,
|
|
456
|
+
hideDeleteOption = _ref.hideDeleteOption,
|
|
457
|
+
innerRef = _ref.innerRef,
|
|
458
|
+
onEdit = _ref.onEdit,
|
|
459
|
+
draggable = _ref.draggable,
|
|
460
|
+
disabled = _ref.disabled,
|
|
461
|
+
isPictureChoice = _ref.isPictureChoice,
|
|
462
|
+
isTextArea = _ref.isTextArea,
|
|
463
|
+
shouldFocus = _ref.shouldFocus,
|
|
464
|
+
isEditable = _ref.isEditable,
|
|
465
|
+
itemLabel = _ref.itemLabel,
|
|
466
|
+
handleChange = _ref.handleChange,
|
|
467
|
+
handleKeyDown = _ref.handleKeyDown,
|
|
468
|
+
name = _ref.name,
|
|
469
|
+
optionIndex = _ref.optionIndex,
|
|
470
|
+
onBlur = _ref.onBlur,
|
|
471
|
+
arrayHelpers = _ref.arrayHelpers;
|
|
472
|
+
if (!editable) {
|
|
473
|
+
return /*#__PURE__*/jsxRuntime.jsx(BlockOption, {
|
|
474
|
+
arrayHelpers: arrayHelpers,
|
|
475
|
+
dragHandleProps: dragHandleProps,
|
|
476
|
+
draggableProps: draggableProps,
|
|
477
|
+
handleDeleteClick: handleDeleteClick,
|
|
478
|
+
hideDeleteOption: hideDeleteOption,
|
|
479
|
+
innerRef: innerRef,
|
|
480
|
+
onEdit: onEdit,
|
|
481
|
+
optionIndex: optionIndex,
|
|
482
|
+
id: option.id,
|
|
483
|
+
isDraggable: draggable && !disabled,
|
|
484
|
+
label: option.label
|
|
485
|
+
});
|
|
486
|
+
}
|
|
487
|
+
return /*#__PURE__*/jsxRuntime.jsx(InputOption, {
|
|
488
|
+
arrayHelpers: arrayHelpers,
|
|
489
|
+
dragHandleProps: dragHandleProps,
|
|
490
|
+
draggableProps: draggableProps,
|
|
491
|
+
hideDeleteOption: hideDeleteOption,
|
|
492
|
+
innerRef: innerRef,
|
|
493
|
+
isPictureChoice: isPictureChoice,
|
|
494
|
+
isTextArea: isTextArea,
|
|
495
|
+
name: name,
|
|
496
|
+
onBlur: onBlur,
|
|
497
|
+
optionIndex: optionIndex,
|
|
498
|
+
shouldFocus: shouldFocus,
|
|
499
|
+
disabled: !isEditable || disabled,
|
|
500
|
+
id: option.id,
|
|
501
|
+
isDraggable: draggable && !disabled,
|
|
502
|
+
placeholder: generatePlaceholder(itemLabel, optionIndex),
|
|
503
|
+
onChange: handleChange,
|
|
504
|
+
onDelete: handleDeleteClick,
|
|
505
|
+
onKeyDown: handleKeyDown
|
|
506
|
+
});
|
|
507
|
+
};
|
|
508
|
+
|
|
392
509
|
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; }
|
|
393
510
|
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) { _defineProperty(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; }
|
|
394
511
|
var OptionFields = function OptionFields(_ref) {
|
|
395
|
-
var
|
|
512
|
+
var name = _ref.name,
|
|
396
513
|
error = _ref.error,
|
|
397
|
-
onChange = _ref.onChange,
|
|
398
|
-
name = _ref.name,
|
|
399
514
|
onDelete = _ref.onDelete,
|
|
400
|
-
|
|
515
|
+
onChange = _ref.onChange,
|
|
516
|
+
onBlur = _ref.onBlur,
|
|
401
517
|
_ref$onEdit = _ref.onEdit,
|
|
402
518
|
onEdit = _ref$onEdit === void 0 ? neetoCist.noop : _ref$onEdit,
|
|
403
519
|
_ref$buttonProps = _ref.buttonProps,
|
|
@@ -408,12 +524,26 @@ var OptionFields = function OptionFields(_ref) {
|
|
|
408
524
|
draggable = _ref$draggable === void 0 ? false : _ref$draggable,
|
|
409
525
|
_ref$editable = _ref.editable,
|
|
410
526
|
editable = _ref$editable === void 0 ? true : _ref$editable,
|
|
527
|
+
_ref$disabled = _ref.disabled,
|
|
528
|
+
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
529
|
+
_ref$isAddOptionEnabl = _ref.isAddOptionEnabled,
|
|
530
|
+
isAddOptionEnabled = _ref$isAddOptionEnabl === void 0 ? true : _ref$isAddOptionEnabl,
|
|
531
|
+
_ref$isDeleteOptionEn = _ref.isDeleteOptionEnabled,
|
|
532
|
+
isDeleteOptionEnabled = _ref$isDeleteOptionEn === void 0 ? true : _ref$isDeleteOptionEn,
|
|
411
533
|
_ref$isPictureChoice = _ref.isPictureChoice,
|
|
412
534
|
isPictureChoice = _ref$isPictureChoice === void 0 ? false : _ref$isPictureChoice,
|
|
413
535
|
_ref$isTextArea = _ref.isTextArea,
|
|
414
536
|
isTextArea = _ref$isTextArea === void 0 ? false : _ref$isTextArea,
|
|
415
537
|
_ref$shouldDestroy = _ref.shouldDestroy,
|
|
416
538
|
shouldDestroy = _ref$shouldDestroy === void 0 ? false : _ref$shouldDestroy,
|
|
539
|
+
_ref$destroyFlagName = _ref.destroyFlagName,
|
|
540
|
+
destroyFlagName = _ref$destroyFlagName === void 0 ? "deleted" : _ref$destroyFlagName,
|
|
541
|
+
_ref$shouldResetEmpty = _ref.shouldResetEmptyOptionOnBlur,
|
|
542
|
+
shouldResetEmptyOptionOnBlur = _ref$shouldResetEmpty === void 0 ? true : _ref$shouldResetEmpty,
|
|
543
|
+
_ref$isNewItemsPrefil = _ref.isNewItemsPrefilled,
|
|
544
|
+
isNewItemsPrefilled = _ref$isNewItemsPrefil === void 0 ? true : _ref$isNewItemsPrefil,
|
|
545
|
+
_ref$itemLabel = _ref.itemLabel,
|
|
546
|
+
itemLabel = _ref$itemLabel === void 0 ? DEFAULT_OPTION_LABEL : _ref$itemLabel,
|
|
417
547
|
_ref$bulkActionProps = _ref.bulkActionProps,
|
|
418
548
|
bulkActionProps = _ref$bulkActionProps === void 0 ? {
|
|
419
549
|
enabled: false,
|
|
@@ -425,11 +555,21 @@ var OptionFields = function OptionFields(_ref) {
|
|
|
425
555
|
_useState2 = _slicedToArray(_useState, 2),
|
|
426
556
|
isBulkOptionModalOpen = _useState2[0],
|
|
427
557
|
setIsBulkOptionModalOpen = _useState2[1];
|
|
558
|
+
var _useField = formik.useField(name),
|
|
559
|
+
_useField2 = _slicedToArray(_useField, 2),
|
|
560
|
+
field = _useField2[0],
|
|
561
|
+
meta = _useField2[1];
|
|
562
|
+
var fieldError = meta.touched ? meta.error : null;
|
|
563
|
+
var options = field.value;
|
|
428
564
|
var _useOptionFields = useOptionFields({
|
|
429
565
|
options: options,
|
|
430
566
|
onChange: onChange,
|
|
431
567
|
shouldDestroy: shouldDestroy,
|
|
432
|
-
itemLabel: itemLabel
|
|
568
|
+
itemLabel: itemLabel,
|
|
569
|
+
shouldResetEmptyOptionOnBlur: shouldResetEmptyOptionOnBlur,
|
|
570
|
+
destroyFlagName: destroyFlagName,
|
|
571
|
+
name: name,
|
|
572
|
+
isNewItemsPrefilled: isNewItemsPrefilled
|
|
433
573
|
}),
|
|
434
574
|
shouldFocus = _useOptionFields.shouldFocus,
|
|
435
575
|
handleAddOption = _useOptionFields.handleAddOption,
|
|
@@ -442,20 +582,49 @@ var OptionFields = function OptionFields(_ref) {
|
|
|
442
582
|
// Temporarily disables the modifications to options when changed are getting saved to server
|
|
443
583
|
// This condition only needed for server id generated types
|
|
444
584
|
var isEditable = true;
|
|
445
|
-
if (shouldDestroy)
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
585
|
+
if (shouldDestroy) isEditable = options.every(ramda.prop("id") || error);
|
|
586
|
+
var orderedOptions = getOrderedOptions(options, destroyFlagName);
|
|
587
|
+
var filteredOptions = orderedOptions.filter(function (_ref2) {
|
|
588
|
+
var deleted = _ref2[destroyFlagName];
|
|
589
|
+
return !deleted;
|
|
590
|
+
});
|
|
591
|
+
var hideDeleteOption = filteredOptions.length <= minOptions || disabled || !isDeleteOptionEnabled;
|
|
592
|
+
var optionFieldProps = {
|
|
593
|
+
disabled: disabled,
|
|
594
|
+
draggable: draggable,
|
|
595
|
+
editable: editable,
|
|
596
|
+
handleChange: handleChange,
|
|
597
|
+
handleDeleteClick: onDelete !== null && onDelete !== void 0 ? onDelete : handleDelete,
|
|
598
|
+
handleKeyDown: handleKeyDown,
|
|
599
|
+
hideDeleteOption: hideDeleteOption,
|
|
600
|
+
isEditable: isEditable,
|
|
601
|
+
isPictureChoice: isPictureChoice,
|
|
602
|
+
isTextArea: isTextArea,
|
|
603
|
+
itemLabel: itemLabel,
|
|
604
|
+
onEdit: onEdit,
|
|
605
|
+
onBlur: onBlur,
|
|
606
|
+
shouldFocus: shouldFocus
|
|
453
607
|
};
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
608
|
+
|
|
609
|
+
// To fix the element positioned incorrectly while dragging when in a pane or modal.
|
|
610
|
+
// https://github.com/hello-pangea/dnd/issues/560#issuecomment-1679201455
|
|
611
|
+
var renderDragClone = function renderDragClone(provided, _, rubric) {
|
|
612
|
+
var draggingIndex = rubric["source"].index;
|
|
613
|
+
var option = filteredOptions[draggingIndex];
|
|
614
|
+
var formikIndex = neetoCist.findIndexById(option.id, options);
|
|
615
|
+
return /*#__PURE__*/jsxRuntime.jsx(OptionField, _objectSpread(_objectSpread({}, _objectSpread(_objectSpread({}, optionFieldProps), {}, {
|
|
616
|
+
option: option
|
|
617
|
+
})), {}, {
|
|
618
|
+
dragHandleProps: provided.dragHandleProps,
|
|
619
|
+
innerRef: null,
|
|
620
|
+
name: "".concat(name, ".").concat(formikIndex, ".label"),
|
|
621
|
+
optionIndex: draggingIndex,
|
|
622
|
+
draggableProps: _objectSpread(_objectSpread({}, provided.draggableProps), {}, {
|
|
623
|
+
style: _objectSpread(_objectSpread({}, provided.draggableProps.style), {}, {
|
|
624
|
+
zIndex: 999999
|
|
625
|
+
})
|
|
626
|
+
})
|
|
627
|
+
}));
|
|
459
628
|
};
|
|
460
629
|
return /*#__PURE__*/jsxRuntime.jsxs("form", {
|
|
461
630
|
onSubmit: function onSubmit(e) {
|
|
@@ -466,6 +635,7 @@ var OptionFields = function OptionFields(_ref) {
|
|
|
466
635
|
children: [/*#__PURE__*/jsxRuntime.jsx(dnd.Droppable, {
|
|
467
636
|
droppableId: "neeto-molecules-option-fields-".concat(name),
|
|
468
637
|
isDropDisabled: !draggable,
|
|
638
|
+
renderClone: renderDragClone,
|
|
469
639
|
children: function children(_ref3) {
|
|
470
640
|
var innerRef = _ref3.innerRef,
|
|
471
641
|
droppableProps = _ref3.droppableProps,
|
|
@@ -473,56 +643,44 @@ var OptionFields = function OptionFields(_ref) {
|
|
|
473
643
|
return /*#__PURE__*/jsxRuntime.jsxs("div", _objectSpread(_objectSpread({
|
|
474
644
|
ref: innerRef
|
|
475
645
|
}, droppableProps), {}, {
|
|
476
|
-
children: [
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
dragHandleProps: dragHandleProps,
|
|
505
|
-
draggableProps: draggableProps,
|
|
506
|
-
handleDeleteClick: handleDeleteClick,
|
|
507
|
-
hideDeleteOption: hideDeleteOption,
|
|
508
|
-
index: index,
|
|
509
|
-
innerRef: innerRef,
|
|
510
|
-
onEdit: onEdit,
|
|
511
|
-
id: option.id,
|
|
512
|
-
label: option.label
|
|
646
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(formik.FieldArray, {
|
|
647
|
+
name: name,
|
|
648
|
+
children: function children(arrayHelpers) {
|
|
649
|
+
var options = resolveFormikValue(name, arrayHelpers.form.values);
|
|
650
|
+
return options === null || options === void 0 ? void 0 : options.map(function (option, index) {
|
|
651
|
+
if (option !== null && option !== void 0 && option[destroyFlagName]) return null;
|
|
652
|
+
var optionIndex = neetoCist.findIndexById(option.id, filteredOptions);
|
|
653
|
+
return /*#__PURE__*/jsxRuntime.jsx(dnd.Draggable, {
|
|
654
|
+
dataKey: getUniqueOptionId(option),
|
|
655
|
+
draggableId: getUniqueOptionId(option),
|
|
656
|
+
index: optionIndex,
|
|
657
|
+
isDragDisabled: !draggable,
|
|
658
|
+
children: function children(_ref4) {
|
|
659
|
+
var innerRef = _ref4.innerRef,
|
|
660
|
+
draggableProps = _ref4.draggableProps,
|
|
661
|
+
dragHandleProps = _ref4.dragHandleProps;
|
|
662
|
+
return /*#__PURE__*/jsxRuntime.jsx(OptionField, _objectSpread(_objectSpread({}, _objectSpread(_objectSpread({}, optionFieldProps), {}, {
|
|
663
|
+
arrayHelpers: arrayHelpers,
|
|
664
|
+
dragHandleProps: dragHandleProps,
|
|
665
|
+
draggableProps: draggableProps,
|
|
666
|
+
innerRef: innerRef,
|
|
667
|
+
option: option,
|
|
668
|
+
optionIndex: optionIndex
|
|
669
|
+
})), {}, {
|
|
670
|
+
name: "".concat(name, ".").concat(index, ".label")
|
|
671
|
+
}));
|
|
672
|
+
}
|
|
673
|
+
}, getUniqueOptionId(option));
|
|
513
674
|
});
|
|
514
|
-
}
|
|
515
|
-
}),
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
style: "body3",
|
|
519
|
-
children: error
|
|
520
|
-
}), placeholder]
|
|
675
|
+
}
|
|
676
|
+
}), placeholder, /*#__PURE__*/jsxRuntime.jsx(FormError, {
|
|
677
|
+
error: error !== null && error !== void 0 ? error : fieldError
|
|
678
|
+
})]
|
|
521
679
|
}));
|
|
522
680
|
}
|
|
523
681
|
}), /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
524
682
|
className: "mt-4 flex items-center justify-between",
|
|
525
|
-
children: [/*#__PURE__*/jsxRuntime.jsx(Button, _objectSpread({
|
|
683
|
+
children: [isAddOptionEnabled && /*#__PURE__*/jsxRuntime.jsx(Button, _objectSpread({
|
|
526
684
|
"data-cy": "add-option-link",
|
|
527
685
|
"data-testid": "add-option-link",
|
|
528
686
|
disabled: !isEditable,
|