powr-sdk-web 5.6.9 → 5.6.10
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/forms/admin.js +40 -23
- package/dist/forms/index.js +20 -0
- package/package.json +1 -1
package/dist/forms/admin.js
CHANGED
|
@@ -225,12 +225,19 @@ var PowrFormsAdmin = function PowrFormsAdmin(_ref) {
|
|
|
225
225
|
return candidate;
|
|
226
226
|
};
|
|
227
227
|
var addField = function addField(type) {
|
|
228
|
-
var index = formDraft.fields.length + 1;
|
|
229
228
|
setFormDraft(function (prev) {
|
|
229
|
+
var index = prev.fields.length + 1;
|
|
230
|
+
var defaults = type === 'mobile' ? {
|
|
231
|
+
name: 'whatsapp',
|
|
232
|
+
label: 'Mobile Number'
|
|
233
|
+
} : {
|
|
234
|
+
name: "field".concat(index),
|
|
235
|
+
label: "Field ".concat(index)
|
|
236
|
+
};
|
|
230
237
|
return _objectSpread(_objectSpread({}, prev), {}, {
|
|
231
|
-
fields: [].concat(_toConsumableArray(prev.fields), [_objectSpread({
|
|
232
|
-
|
|
233
|
-
|
|
238
|
+
fields: [].concat(_toConsumableArray(prev.fields), [_objectSpread(_objectSpread({
|
|
239
|
+
id: "".concat(Date.now(), "-").concat(index)
|
|
240
|
+
}, defaults), {}, {
|
|
234
241
|
type: type,
|
|
235
242
|
required: false
|
|
236
243
|
}, type === 'radio' ? {
|
|
@@ -259,7 +266,7 @@ var PowrFormsAdmin = function PowrFormsAdmin(_ref) {
|
|
|
259
266
|
};
|
|
260
267
|
var createForm = /*#__PURE__*/function () {
|
|
261
268
|
var _ref4 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3() {
|
|
262
|
-
var trimmedTitle, trimmedName, trimmedId, hasInvalidField, fieldNames, duplicateNames, payload, _yield$apiCall3, result, ok, errorMessage, _t3;
|
|
269
|
+
var trimmedTitle, trimmedName, trimmedId, hasInvalidField, fieldNames, duplicateNames, usedNames, normalizedFields, payload, _yield$apiCall3, result, ok, errorMessage, _t3;
|
|
263
270
|
return _regenerator().w(function (_context3) {
|
|
264
271
|
while (1) switch (_context3.p = _context3.n) {
|
|
265
272
|
case 0:
|
|
@@ -314,20 +321,34 @@ var PowrFormsAdmin = function PowrFormsAdmin(_ref) {
|
|
|
314
321
|
case 5:
|
|
315
322
|
setIsSaving(true);
|
|
316
323
|
_context3.p = 6;
|
|
324
|
+
usedNames = new Set();
|
|
325
|
+
normalizedFields = formDraft.fields.map(function (field, index, allFields) {
|
|
326
|
+
var _field$name2;
|
|
327
|
+
var others = allFields.filter(function (_, i) {
|
|
328
|
+
return i !== index;
|
|
329
|
+
});
|
|
330
|
+
var name = ((_field$name2 = field.name) === null || _field$name2 === void 0 ? void 0 : _field$name2.trim()) || uniqueFieldName(field.label, index, others);
|
|
331
|
+
var candidate = name;
|
|
332
|
+
var suffix = 2;
|
|
333
|
+
while (usedNames.has(candidate)) {
|
|
334
|
+
candidate = "".concat(name).concat(suffix);
|
|
335
|
+
suffix += 1;
|
|
336
|
+
}
|
|
337
|
+
usedNames.add(candidate);
|
|
338
|
+
return _objectSpread({
|
|
339
|
+
name: candidate,
|
|
340
|
+
label: field.label.trim(),
|
|
341
|
+
type: field.type,
|
|
342
|
+
required: !!field.required
|
|
343
|
+
}, field.type === 'radio' ? {
|
|
344
|
+
options: field.options || []
|
|
345
|
+
} : {});
|
|
346
|
+
});
|
|
317
347
|
payload = {
|
|
318
348
|
formTitle: trimmedTitle,
|
|
319
349
|
formName: trimmedName,
|
|
320
350
|
formId: trimmedId,
|
|
321
|
-
fields:
|
|
322
|
-
return _objectSpread({
|
|
323
|
-
name: field.name.trim(),
|
|
324
|
-
label: field.label.trim(),
|
|
325
|
-
type: field.type,
|
|
326
|
-
required: !!field.required
|
|
327
|
-
}, field.type === 'radio' ? {
|
|
328
|
-
options: field.options || []
|
|
329
|
-
} : {});
|
|
330
|
-
})
|
|
351
|
+
fields: normalizedFields
|
|
331
352
|
};
|
|
332
353
|
_context3.n = 7;
|
|
333
354
|
return (0, _auth.apiCall)(apiUrl, "/forms/create-form", projectId, {
|
|
@@ -535,7 +556,7 @@ var PowrFormsAdmin = function PowrFormsAdmin(_ref) {
|
|
|
535
556
|
className: "text-sm font-semibold text-gray-900"
|
|
536
557
|
}, "Fields"), /*#__PURE__*/_react["default"].createElement("div", {
|
|
537
558
|
className: "flex flex-wrap gap-2"
|
|
538
|
-
}, ['text', 'email', 'textarea', 'radio', 'fileUploader'].map(function (type) {
|
|
559
|
+
}, ['text', 'email', 'mobile', 'textarea', 'radio', 'fileUploader'].map(function (type) {
|
|
539
560
|
return /*#__PURE__*/_react["default"].createElement("button", {
|
|
540
561
|
key: type,
|
|
541
562
|
type: "button",
|
|
@@ -550,7 +571,7 @@ var PowrFormsAdmin = function PowrFormsAdmin(_ref) {
|
|
|
550
571
|
className: "space-y-4"
|
|
551
572
|
}, formDraft.fields.map(function (field, index) {
|
|
552
573
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
553
|
-
key:
|
|
574
|
+
key: field.id || index,
|
|
554
575
|
className: "rounded-lg border border-gray-200 p-4 space-y-3"
|
|
555
576
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
556
577
|
className: "flex items-center justify-between"
|
|
@@ -568,12 +589,8 @@ var PowrFormsAdmin = function PowrFormsAdmin(_ref) {
|
|
|
568
589
|
type: "text",
|
|
569
590
|
value: field.label,
|
|
570
591
|
onChange: function onChange(e) {
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
label: label,
|
|
574
|
-
name: uniqueFieldName(label, index, formDraft.fields.filter(function (_, i) {
|
|
575
|
-
return i !== index;
|
|
576
|
-
}))
|
|
592
|
+
return updateField(index, {
|
|
593
|
+
label: e.target.value
|
|
577
594
|
});
|
|
578
595
|
},
|
|
579
596
|
placeholder: "Label",
|
package/dist/forms/index.js
CHANGED
|
@@ -202,6 +202,26 @@ var PowrForm = function PowrForm(_ref) {
|
|
|
202
202
|
}), {
|
|
203
203
|
className: inputClass
|
|
204
204
|
})));
|
|
205
|
+
case "mobile":
|
|
206
|
+
return /*#__PURE__*/_react["default"].createElement(InputField, {
|
|
207
|
+
key: field.name,
|
|
208
|
+
label: field.label,
|
|
209
|
+
required: field.required,
|
|
210
|
+
error: errors[field.name],
|
|
211
|
+
theme: theme
|
|
212
|
+
}, /*#__PURE__*/_react["default"].createElement("input", _extends({
|
|
213
|
+
type: "tel",
|
|
214
|
+
inputMode: "tel",
|
|
215
|
+
autoComplete: "tel"
|
|
216
|
+
}, register(field.name, {
|
|
217
|
+
required: field.required,
|
|
218
|
+
pattern: {
|
|
219
|
+
value: /^[0-9+\-\s()]{8,15}$/,
|
|
220
|
+
message: "Invalid mobile number"
|
|
221
|
+
}
|
|
222
|
+
}), {
|
|
223
|
+
className: inputClass
|
|
224
|
+
})));
|
|
205
225
|
case "textarea":
|
|
206
226
|
return /*#__PURE__*/_react["default"].createElement(InputField, {
|
|
207
227
|
key: field.name,
|