@bigbinary/neeto-rules-frontend 0.5.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/app/javascript/src/translations/en.json +10 -3
- package/dist/index.cjs.js +273 -88
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.js +278 -93
- package/dist/index.js.map +1 -1
- package/package.json +11 -11
package/README.md
CHANGED
|
@@ -496,7 +496,7 @@ const initialProps = {
|
|
|
496
496
|
{
|
|
497
497
|
value: "add_tags",
|
|
498
498
|
label: "Add Tags",
|
|
499
|
-
type: "multiSelect", // Types : emailToIds, emailTo, email, dropdown, list, multiSelect, note, date, text, textarea, decimal, number, regex, longText, sms, smsToNumbers, smsTo
|
|
499
|
+
type: "multiSelect", // Types : emailToIds, emailTo, email, dropdown, list, multiSelect, note, date, text, textarea, decimal, number, regex, longText, sms, smsToNumbers, smsTo, sendToApi
|
|
500
500
|
hideSeparator: true,
|
|
501
501
|
placeholder: "Select tags",
|
|
502
502
|
dropdownOptions: [
|
|
@@ -562,7 +562,7 @@ neetoRulesFrontend allows to pass custom action components from host application
|
|
|
562
562
|
|
|
563
563
|
#### 2.10 Custom message templates
|
|
564
564
|
|
|
565
|
-
neetoRulesFrontend allows to pass predefined email and
|
|
565
|
+
neetoRulesFrontend allows to pass predefined email, SMS and API templates from host application. This enables to use templates created using neeto-message-templates-nano. Below is an example for custom message template which is being sent by neeto-form in action options.
|
|
566
566
|
|
|
567
567
|
```jsx
|
|
568
568
|
{
|
|
@@ -31,7 +31,8 @@
|
|
|
31
31
|
"viewLess": "View less",
|
|
32
32
|
"sms": "SMS",
|
|
33
33
|
"phoneNumber": "Phone number",
|
|
34
|
-
"phoneNumbers": "Phone numbers"
|
|
34
|
+
"phoneNumbers": "Phone numbers",
|
|
35
|
+
"data": "Data"
|
|
35
36
|
},
|
|
36
37
|
"form": {
|
|
37
38
|
"noEvents": "A rule without events will run hourly.",
|
|
@@ -135,7 +136,12 @@
|
|
|
135
136
|
"text": "Text",
|
|
136
137
|
"ruleSummary": "Automation rule summary",
|
|
137
138
|
"template": "Template",
|
|
138
|
-
"remainingItemsCount": "{{count}} more"
|
|
139
|
+
"remainingItemsCount": "{{count}} more",
|
|
140
|
+
"endpoint": "Endpoint",
|
|
141
|
+
"key": "Key",
|
|
142
|
+
"value": "Value",
|
|
143
|
+
"addKeyValuePair": "Add new key value pair",
|
|
144
|
+
"additionalData": "Additional data"
|
|
139
145
|
},
|
|
140
146
|
"placeholders": {
|
|
141
147
|
"if": "If",
|
|
@@ -189,7 +195,8 @@
|
|
|
189
195
|
"invalidChannel": "Could not connect to the channel, please select other options.",
|
|
190
196
|
"errorInIntegration": "Could not connect to Slack! Please check the integration or remove this action otherwise the automation rule will not be able to function as intended."
|
|
191
197
|
},
|
|
192
|
-
"
|
|
198
|
+
"invalidPhoneNumber": "Phone number is invalid",
|
|
199
|
+
"invalidUrlEntity": "{{entity}} must be a valid URL"
|
|
193
200
|
},
|
|
194
201
|
"conditionVerbs": {
|
|
195
202
|
"is": "Is",
|
package/dist/index.cjs.js
CHANGED
|
@@ -270,7 +270,8 @@ var ACTION_TYPES = {
|
|
|
270
270
|
longText: "longText",
|
|
271
271
|
sms: "sms",
|
|
272
272
|
smsToNumbers: "smsToNumbers",
|
|
273
|
-
smsTo: "smsTo"
|
|
273
|
+
smsTo: "smsTo",
|
|
274
|
+
sendToApi: "sendToApi"
|
|
274
275
|
};
|
|
275
276
|
var LIST_FIELD_TOOLTIP_PROPS = {
|
|
276
277
|
save: {
|
|
@@ -483,7 +484,7 @@ var getActionsSchema = function getActionsSchema(element, customData) {
|
|
|
483
484
|
return yup__namespace.object({
|
|
484
485
|
phoneNumbers: selectedAction.type === ACTION_TYPES.smsToNumbers ? yup__namespace.array().required(i18next.t("neetoRules.validations.required.entity", {
|
|
485
486
|
entity: i18next.t("neetoRules.common.phoneNumber")
|
|
486
|
-
})).of(yup__namespace.string().test("testPhoneNumber", i18next.t("neetoRules.validations.
|
|
487
|
+
})).of(yup__namespace.string().test("testPhoneNumber", i18next.t("neetoRules.validations.invalidPhoneNumber"), function (value) {
|
|
487
488
|
return PhoneNumber.isPhoneNumberValid(value);
|
|
488
489
|
})) : schema,
|
|
489
490
|
body: yup__namespace.string().test("body", i18next.t("neetoRules.validations.required.body"), function (value) {
|
|
@@ -491,6 +492,14 @@ var getActionsSchema = function getActionsSchema(element, customData) {
|
|
|
491
492
|
}),
|
|
492
493
|
value: selectedAction.type === ACTION_TYPES.smsTo ? yup__namespace.string().required(i18next.t("neetoRules.validations.required.value")) : schema
|
|
493
494
|
});
|
|
495
|
+
} else if (ACTION_TYPES.sendToApi === (selectedAction === null || selectedAction === void 0 ? void 0 : selectedAction.type)) {
|
|
496
|
+
return yup__namespace.object({
|
|
497
|
+
endpoint: yup__namespace.string().url(i18next.t("neetoRules.validations.invalidUrlEntity", {
|
|
498
|
+
entity: i18next.t("neetoRules.labels.endpoint")
|
|
499
|
+
})).required(i18next.t("neetoRules.validations.required.entity", {
|
|
500
|
+
entity: i18next.t("neetoRules.labels.endpoint")
|
|
501
|
+
}))
|
|
502
|
+
});
|
|
494
503
|
} else if (ACTION_TYPES.multiSelect === (selectedAction === null || selectedAction === void 0 ? void 0 : selectedAction.type)) {
|
|
495
504
|
return yup__namespace.object({
|
|
496
505
|
value: yup__namespace.array().min(1, i18next.t("neetoRules.validations.atLeastOneValue")).required(i18next.t("neetoRules.validations.atLeastOneValue"))
|
|
@@ -1218,6 +1227,247 @@ var LongTextField = function LongTextField(_ref) {
|
|
|
1218
1227
|
}))));
|
|
1219
1228
|
};
|
|
1220
1229
|
|
|
1230
|
+
function _extends$1() {
|
|
1231
|
+
_extends$1 = Object.assign ? Object.assign.bind() : function (target) {
|
|
1232
|
+
for (var i = 1; i < arguments.length; i++) {
|
|
1233
|
+
var source = arguments[i];
|
|
1234
|
+
for (var key in source) {
|
|
1235
|
+
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
1236
|
+
target[key] = source[key];
|
|
1237
|
+
}
|
|
1238
|
+
}
|
|
1239
|
+
}
|
|
1240
|
+
return target;
|
|
1241
|
+
};
|
|
1242
|
+
return _extends$1.apply(this, arguments);
|
|
1243
|
+
}
|
|
1244
|
+
|
|
1245
|
+
var _excluded$f = ["initialFocusRef", "name", "label"];
|
|
1246
|
+
var InputField$2 = function InputField(_ref) {
|
|
1247
|
+
var initialFocusRef = _ref.initialFocusRef,
|
|
1248
|
+
name = _ref.name,
|
|
1249
|
+
label = _ref.label,
|
|
1250
|
+
otherProps = _objectWithoutProperties$1(_ref, _excluded$f);
|
|
1251
|
+
var _useField = formik.useField(name),
|
|
1252
|
+
_useField2 = _slicedToArray$1(_useField, 2),
|
|
1253
|
+
field = _useField2[0],
|
|
1254
|
+
meta = _useField2[1];
|
|
1255
|
+
return /*#__PURE__*/React__default["default"].createElement(neetoui.Input, _extends$1({
|
|
1256
|
+
label: label,
|
|
1257
|
+
type: "text"
|
|
1258
|
+
}, field, {
|
|
1259
|
+
error: meta.touched ? meta.error : "",
|
|
1260
|
+
ref: initialFocusRef
|
|
1261
|
+
}, otherProps));
|
|
1262
|
+
};
|
|
1263
|
+
|
|
1264
|
+
var ADDITIONAL_DATA_INITIAL_VALUE = {
|
|
1265
|
+
key: "",
|
|
1266
|
+
value: ""
|
|
1267
|
+
};
|
|
1268
|
+
var SAMPLE_ENDPOINT = "https://example.com";
|
|
1269
|
+
|
|
1270
|
+
var addOption = function addOption(arrayHelpers) {
|
|
1271
|
+
return arrayHelpers.push(ADDITIONAL_DATA_INITIAL_VALUE);
|
|
1272
|
+
};
|
|
1273
|
+
var removeOption = function removeOption(_ref) {
|
|
1274
|
+
var arrayHelpers = _ref.arrayHelpers,
|
|
1275
|
+
index = _ref.index,
|
|
1276
|
+
data = _ref.data;
|
|
1277
|
+
arrayHelpers.remove(index);
|
|
1278
|
+
if (data.length === 1) {
|
|
1279
|
+
addOption(arrayHelpers);
|
|
1280
|
+
}
|
|
1281
|
+
};
|
|
1282
|
+
var hasKeyOrValue = ramda.whereAny({
|
|
1283
|
+
key: neetoCist.isNotEmpty,
|
|
1284
|
+
value: neetoCist.isNotEmpty
|
|
1285
|
+
});
|
|
1286
|
+
|
|
1287
|
+
var setEditorContent = function setEditorContent(ref, content) {
|
|
1288
|
+
if (!ref.current) return;
|
|
1289
|
+
ref.current.editor.commands.setContent(content);
|
|
1290
|
+
};
|
|
1291
|
+
|
|
1292
|
+
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
1293
|
+
var dotPath = ramda.useWith(ramda.path, [ramda.split(".")]);
|
|
1294
|
+
|
|
1295
|
+
var KeyValuePairsField = reactUtils.withT(function (_ref) {
|
|
1296
|
+
var t = _ref.t,
|
|
1297
|
+
name = _ref.name,
|
|
1298
|
+
_ref$label = _ref.label,
|
|
1299
|
+
label = _ref$label === void 0 ? "" : _ref$label;
|
|
1300
|
+
return /*#__PURE__*/React__default["default"].createElement(formik.FieldArray, {
|
|
1301
|
+
name: name
|
|
1302
|
+
}, function (arrayHelpers) {
|
|
1303
|
+
var data = dotPath(name, arrayHelpers.form.values);
|
|
1304
|
+
var showDeleteButton = data.length > 1 || hasKeyOrValue(data[0]);
|
|
1305
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
1306
|
+
className: "space-y-3"
|
|
1307
|
+
}, /*#__PURE__*/React__default["default"].createElement(neetoui.Label, null, label), data.map(function (_, index) {
|
|
1308
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
1309
|
+
className: "flex h-8 space-x-3",
|
|
1310
|
+
key: index
|
|
1311
|
+
}, /*#__PURE__*/React__default["default"].createElement(InputField$2, {
|
|
1312
|
+
className: "w-2/5",
|
|
1313
|
+
name: "".concat(name, ".").concat(index, ".key"),
|
|
1314
|
+
placeholder: t("neetoRules.labels.key")
|
|
1315
|
+
}), /*#__PURE__*/React__default["default"].createElement(InputField$2, {
|
|
1316
|
+
className: "w-3/5",
|
|
1317
|
+
name: "".concat(name, ".").concat(index, ".value"),
|
|
1318
|
+
placeholder: t("neetoRules.labels.value"),
|
|
1319
|
+
suffix: showDeleteButton && /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
|
|
1320
|
+
icon: neetoIcons.Delete,
|
|
1321
|
+
size: "small",
|
|
1322
|
+
style: "text",
|
|
1323
|
+
onClick: function onClick() {
|
|
1324
|
+
return removeOption({
|
|
1325
|
+
arrayHelpers: arrayHelpers,
|
|
1326
|
+
index: index,
|
|
1327
|
+
data: data
|
|
1328
|
+
});
|
|
1329
|
+
}
|
|
1330
|
+
})
|
|
1331
|
+
}));
|
|
1332
|
+
}), /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
|
|
1333
|
+
label: t("neetoRules.labels.addKeyValuePair"),
|
|
1334
|
+
style: "secondary",
|
|
1335
|
+
onClick: function onClick() {
|
|
1336
|
+
return addOption(arrayHelpers);
|
|
1337
|
+
}
|
|
1338
|
+
}));
|
|
1339
|
+
});
|
|
1340
|
+
});
|
|
1341
|
+
|
|
1342
|
+
var SelectTemplateField = function SelectTemplateField(_ref) {
|
|
1343
|
+
var selectedField = _ref.selectedField,
|
|
1344
|
+
templates = _ref.templates,
|
|
1345
|
+
onChange = _ref.onChange,
|
|
1346
|
+
initialFocusRef = _ref.initialFocusRef;
|
|
1347
|
+
var _useStateWithDependen = reactUtils.useStateWithDependency(null, [selectedField]),
|
|
1348
|
+
_useStateWithDependen2 = _slicedToArray$1(_useStateWithDependen, 2),
|
|
1349
|
+
selectedTemplate = _useStateWithDependen2[0],
|
|
1350
|
+
setSelectedTemplate = _useStateWithDependen2[1];
|
|
1351
|
+
var _useTranslation = reactI18next.useTranslation(),
|
|
1352
|
+
t = _useTranslation.t;
|
|
1353
|
+
var handleTemplateChange = function handleTemplateChange(option) {
|
|
1354
|
+
setSelectedTemplate(option);
|
|
1355
|
+
if (!option) return;
|
|
1356
|
+
var template = neetoCist.findBy({
|
|
1357
|
+
id: option.value
|
|
1358
|
+
}, templates);
|
|
1359
|
+
onChange === null || onChange === void 0 || onChange(template);
|
|
1360
|
+
};
|
|
1361
|
+
return /*#__PURE__*/React__default["default"].createElement(neetoui.Select, {
|
|
1362
|
+
isClearable: true,
|
|
1363
|
+
isSearchable: true,
|
|
1364
|
+
className: "mb-4",
|
|
1365
|
+
innerRef: initialFocusRef,
|
|
1366
|
+
label: t("neetoRules.labels.template"),
|
|
1367
|
+
options: neetoCist.renameKeys({
|
|
1368
|
+
name: "label",
|
|
1369
|
+
id: "value"
|
|
1370
|
+
}, templates),
|
|
1371
|
+
placeholder: t("neetoRules.placeholders.selectTemplate"),
|
|
1372
|
+
value: selectedTemplate,
|
|
1373
|
+
onChange: handleTemplateChange
|
|
1374
|
+
});
|
|
1375
|
+
};
|
|
1376
|
+
|
|
1377
|
+
var ApiFields = function ApiFields(_ref) {
|
|
1378
|
+
var _errors$actions, _touched$actions, _selectedField$separa;
|
|
1379
|
+
var name = _ref.name,
|
|
1380
|
+
selectedField = _ref.selectedField,
|
|
1381
|
+
index = _ref.index;
|
|
1382
|
+
var _useFormikContext = formik.useFormikContext(),
|
|
1383
|
+
errors = _useFormikContext.errors,
|
|
1384
|
+
touched = _useFormikContext.touched,
|
|
1385
|
+
setFieldValue = _useFormikContext.setFieldValue;
|
|
1386
|
+
var _useState = React.useState(false),
|
|
1387
|
+
_useState2 = _slicedToArray$1(_useState, 2),
|
|
1388
|
+
showPane = _useState2[0],
|
|
1389
|
+
setShowPane = _useState2[1];
|
|
1390
|
+
var initialFocusRef = React.useRef(null);
|
|
1391
|
+
var _useTranslation = reactI18next.useTranslation(),
|
|
1392
|
+
t = _useTranslation.t;
|
|
1393
|
+
useOnButtonPressed(initialFocusRef, function () {
|
|
1394
|
+
return setShowPane(false);
|
|
1395
|
+
});
|
|
1396
|
+
var isValid = errors.actions && ramda.isNotNil((_errors$actions = errors.actions) === null || _errors$actions === void 0 || (_errors$actions = _errors$actions.value) === null || _errors$actions === void 0 ? void 0 : _errors$actions[index]) && ramda.isNotNil((_touched$actions = touched.actions) === null || _touched$actions === void 0 || (_touched$actions = _touched$actions.value) === null || _touched$actions === void 0 ? void 0 : _touched$actions[index]);
|
|
1397
|
+
var separator = (selectedField === null || selectedField === void 0 || (_selectedField$separa = selectedField.separator) === null || _selectedField$separa === void 0 ? void 0 : _selectedField$separa.toLowerCase()) || t("neetoRules.common.as");
|
|
1398
|
+
var defaultLabel = (selectedField === null || selectedField === void 0 ? void 0 : selectedField.dataPlaceholder) || t("neetoRules.common.data");
|
|
1399
|
+
var templates = selectedField === null || selectedField === void 0 ? void 0 : selectedField.templates;
|
|
1400
|
+
var isTemplateSelectionEnabled = neetoCist.isPresent(templates);
|
|
1401
|
+
var handleTemplateChange = function handleTemplateChange(template) {
|
|
1402
|
+
setFieldValue("".concat(name, ".endpoint"), template.endpoint);
|
|
1403
|
+
setFieldValue("".concat(name, ".additionalData"), template.additionalData);
|
|
1404
|
+
};
|
|
1405
|
+
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
|
|
1406
|
+
className: "neeto-ui-text-gray-700 mt-1",
|
|
1407
|
+
"data-cy": "api-action-separator-text",
|
|
1408
|
+
style: "h5",
|
|
1409
|
+
weight: "normal"
|
|
1410
|
+
}, separator), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
|
|
1411
|
+
"data-cy": "api-action-button",
|
|
1412
|
+
style: "h5",
|
|
1413
|
+
weight: "semibold",
|
|
1414
|
+
className: classNames__default["default"]("hover:neeto-ui-text-primary-800 neeto-ui-text-gray-800 mt-1 cursor-pointer underline", {
|
|
1415
|
+
"neeto-ui-text-primary-800": showPane,
|
|
1416
|
+
"neeto-ui-text-error-500": isValid
|
|
1417
|
+
}),
|
|
1418
|
+
onClick: function onClick() {
|
|
1419
|
+
return setShowPane(function (prevState) {
|
|
1420
|
+
return !prevState;
|
|
1421
|
+
});
|
|
1422
|
+
}
|
|
1423
|
+
}, defaultLabel.toLowerCase()), /*#__PURE__*/React__default["default"].createElement(neetoui.Pane, {
|
|
1424
|
+
initialFocusRef: initialFocusRef,
|
|
1425
|
+
isOpen: showPane,
|
|
1426
|
+
size: "large",
|
|
1427
|
+
onClose: function onClose() {
|
|
1428
|
+
return setShowPane(false);
|
|
1429
|
+
}
|
|
1430
|
+
}, /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Header, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
|
|
1431
|
+
className: "neeto-ui-text-gray-800 cursor-pointer",
|
|
1432
|
+
"data-cy": "api-action-pane-header-title",
|
|
1433
|
+
style: "h3",
|
|
1434
|
+
weight: "semibold"
|
|
1435
|
+
}, defaultLabel)), /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Body, null, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
1436
|
+
className: "w-full"
|
|
1437
|
+
}, isTemplateSelectionEnabled && /*#__PURE__*/React__default["default"].createElement(SelectTemplateField, {
|
|
1438
|
+
initialFocusRef: initialFocusRef,
|
|
1439
|
+
selectedField: selectedField,
|
|
1440
|
+
templates: templates,
|
|
1441
|
+
onChange: handleTemplateChange
|
|
1442
|
+
}), /*#__PURE__*/React__default["default"].createElement(InputField$2, {
|
|
1443
|
+
required: true,
|
|
1444
|
+
className: "mb-4",
|
|
1445
|
+
"data-cy": "api-action-endpoint-text-field",
|
|
1446
|
+
label: t("neetoRules.labels.endpoint"),
|
|
1447
|
+
name: "".concat(name, ".endpoint"),
|
|
1448
|
+
placeholder: SAMPLE_ENDPOINT,
|
|
1449
|
+
initialFocusRef: isTemplateSelectionEnabled ? null : initialFocusRef
|
|
1450
|
+
}), /*#__PURE__*/React__default["default"].createElement(KeyValuePairsField, {
|
|
1451
|
+
label: t("neetoRules.labels.additionalData"),
|
|
1452
|
+
name: "".concat(name, ".additionalData")
|
|
1453
|
+
}))), /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Footer, {
|
|
1454
|
+
className: "flex items-center space-x-2"
|
|
1455
|
+
}, /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
|
|
1456
|
+
"data-cy": "save-changes-button",
|
|
1457
|
+
label: t("neetoRules.common.saveChange"),
|
|
1458
|
+
onClick: function onClick() {
|
|
1459
|
+
return setShowPane(false);
|
|
1460
|
+
}
|
|
1461
|
+
}), /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
|
|
1462
|
+
"data-cy": "cancel-button",
|
|
1463
|
+
label: t("neetoRules.buttons.cancel"),
|
|
1464
|
+
style: "text",
|
|
1465
|
+
onClick: function onClick() {
|
|
1466
|
+
return setShowPane(false);
|
|
1467
|
+
}
|
|
1468
|
+
}))));
|
|
1469
|
+
};
|
|
1470
|
+
|
|
1221
1471
|
var CustomAction = function CustomAction(_ref) {
|
|
1222
1472
|
var _errors$actions, _touched$actions, _selectedField$separa;
|
|
1223
1473
|
var ActionComponent = _ref.ActionComponent,
|
|
@@ -1541,22 +1791,7 @@ var DropdownField$1 = function DropdownField(_ref) {
|
|
|
1541
1791
|
}, i18next.t("neetoRules.common.noOptions")))));
|
|
1542
1792
|
};
|
|
1543
1793
|
|
|
1544
|
-
|
|
1545
|
-
_extends$1 = Object.assign ? Object.assign.bind() : function (target) {
|
|
1546
|
-
for (var i = 1; i < arguments.length; i++) {
|
|
1547
|
-
var source = arguments[i];
|
|
1548
|
-
for (var key in source) {
|
|
1549
|
-
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
1550
|
-
target[key] = source[key];
|
|
1551
|
-
}
|
|
1552
|
-
}
|
|
1553
|
-
}
|
|
1554
|
-
return target;
|
|
1555
|
-
};
|
|
1556
|
-
return _extends$1.apply(this, arguments);
|
|
1557
|
-
}
|
|
1558
|
-
|
|
1559
|
-
var _excluded$f = ["autoFocus", "name", "value", "label", "variables", "addons", "editorRef", "defaults"];
|
|
1794
|
+
var _excluded$e = ["autoFocus", "name", "value", "label", "variables", "addons", "editorRef", "defaults"];
|
|
1560
1795
|
var EditorAction = function EditorAction(_ref) {
|
|
1561
1796
|
var autoFocus = _ref.autoFocus,
|
|
1562
1797
|
name = _ref.name,
|
|
@@ -1570,7 +1805,7 @@ var EditorAction = function EditorAction(_ref) {
|
|
|
1570
1805
|
_ref$editorRef = _ref.editorRef,
|
|
1571
1806
|
editorRef = _ref$editorRef === void 0 ? null : _ref$editorRef,
|
|
1572
1807
|
defaults = _ref.defaults,
|
|
1573
|
-
otherProps = _objectWithoutProperties$1(_ref, _excluded$
|
|
1808
|
+
otherProps = _objectWithoutProperties$1(_ref, _excluded$e);
|
|
1574
1809
|
var _useFormikContext = formik.useFormikContext(),
|
|
1575
1810
|
setFieldValue = _useFormikContext.setFieldValue;
|
|
1576
1811
|
var _useState = React.useState(value),
|
|
@@ -1621,30 +1856,6 @@ var EmailIdFields = function EmailIdFields(_ref) {
|
|
|
1621
1856
|
}));
|
|
1622
1857
|
};
|
|
1623
1858
|
|
|
1624
|
-
var _excluded$e = ["initialFocusRef", "name", "label"];
|
|
1625
|
-
var InputField$2 = function InputField(_ref) {
|
|
1626
|
-
var initialFocusRef = _ref.initialFocusRef,
|
|
1627
|
-
name = _ref.name,
|
|
1628
|
-
label = _ref.label,
|
|
1629
|
-
otherProps = _objectWithoutProperties$1(_ref, _excluded$e);
|
|
1630
|
-
var _useField = formik.useField(name),
|
|
1631
|
-
_useField2 = _slicedToArray$1(_useField, 2),
|
|
1632
|
-
field = _useField2[0],
|
|
1633
|
-
meta = _useField2[1];
|
|
1634
|
-
return /*#__PURE__*/React__default["default"].createElement(neetoui.Input, _extends$1({
|
|
1635
|
-
label: label,
|
|
1636
|
-
type: "text"
|
|
1637
|
-
}, field, {
|
|
1638
|
-
error: meta.touched ? meta.error : "",
|
|
1639
|
-
ref: initialFocusRef
|
|
1640
|
-
}, otherProps));
|
|
1641
|
-
};
|
|
1642
|
-
|
|
1643
|
-
var setEditorContent = function setEditorContent(ref, content) {
|
|
1644
|
-
if (!ref.current) return;
|
|
1645
|
-
ref.current.editor.commands.setContent(content);
|
|
1646
|
-
};
|
|
1647
|
-
|
|
1648
1859
|
var EmailFields = function EmailFields(_ref) {
|
|
1649
1860
|
var _errors$actions, _touched$actions, _selectedField$separa, _action$metadata;
|
|
1650
1861
|
var _ref$isEmailIdField = _ref.isEmailIdField,
|
|
@@ -1663,10 +1874,6 @@ var EmailFields = function EmailFields(_ref) {
|
|
|
1663
1874
|
_useState2 = _slicedToArray$1(_useState, 2),
|
|
1664
1875
|
showPane = _useState2[0],
|
|
1665
1876
|
setShowPane = _useState2[1];
|
|
1666
|
-
var _useStateWithDependen = reactUtils.useStateWithDependency(null, [selectedField]),
|
|
1667
|
-
_useStateWithDependen2 = _slicedToArray$1(_useStateWithDependen, 2),
|
|
1668
|
-
selectedTemplate = _useStateWithDependen2[0],
|
|
1669
|
-
setSelectedTemplate = _useStateWithDependen2[1];
|
|
1670
1877
|
var initialFocusRef = React.useRef(null);
|
|
1671
1878
|
var editorRef = React.useRef(null);
|
|
1672
1879
|
var _useTranslation = reactI18next.useTranslation(),
|
|
@@ -1679,12 +1886,7 @@ var EmailFields = function EmailFields(_ref) {
|
|
|
1679
1886
|
var defaultLabel = (selectedField === null || selectedField === void 0 ? void 0 : selectedField.emailPlaceholder) || t("neetoRules.common.email");
|
|
1680
1887
|
var templates = selectedField === null || selectedField === void 0 ? void 0 : selectedField.templates;
|
|
1681
1888
|
var isTemplateSelectionEnabled = neetoCist.isPresent(templates);
|
|
1682
|
-
var handleTemplateChange = function handleTemplateChange(
|
|
1683
|
-
setSelectedTemplate(option);
|
|
1684
|
-
if (!option) return;
|
|
1685
|
-
var template = neetoCist.findBy({
|
|
1686
|
-
id: option.value
|
|
1687
|
-
}, templates);
|
|
1889
|
+
var handleTemplateChange = function handleTemplateChange(template) {
|
|
1688
1890
|
setFieldValue("".concat(name, ".body"), template.body);
|
|
1689
1891
|
setEditorContent(editorRef, template.body);
|
|
1690
1892
|
if (selectedField.hideSubject) return;
|
|
@@ -1735,18 +1937,10 @@ var EmailFields = function EmailFields(_ref) {
|
|
|
1735
1937
|
weight: "semibold"
|
|
1736
1938
|
}, defaultLabel)), /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Body, null, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
1737
1939
|
className: "w-full"
|
|
1738
|
-
}, isTemplateSelectionEnabled && /*#__PURE__*/React__default["default"].createElement(
|
|
1739
|
-
|
|
1740
|
-
|
|
1741
|
-
|
|
1742
|
-
innerRef: initialFocusRef,
|
|
1743
|
-
label: t("neetoRules.labels.template"),
|
|
1744
|
-
options: neetoCist.renameKeys({
|
|
1745
|
-
name: "label",
|
|
1746
|
-
id: "value"
|
|
1747
|
-
}, templates),
|
|
1748
|
-
placeholder: t("neetoRules.placeholders.selectTemplate"),
|
|
1749
|
-
value: selectedTemplate,
|
|
1940
|
+
}, isTemplateSelectionEnabled && /*#__PURE__*/React__default["default"].createElement(SelectTemplateField, {
|
|
1941
|
+
initialFocusRef: initialFocusRef,
|
|
1942
|
+
selectedField: selectedField,
|
|
1943
|
+
templates: templates,
|
|
1750
1944
|
onChange: handleTemplateChange
|
|
1751
1945
|
}), isEmailIdField && /*#__PURE__*/React__default["default"].createElement(EmailIdFields, {
|
|
1752
1946
|
emails: emails,
|
|
@@ -10125,7 +10319,7 @@ var PHONE_NUMBER_SEPARATION_REGEX = /[^\s,]+/g;
|
|
|
10125
10319
|
var FLEXIBLE_PHONE_NUMBER_REGEX = /[0-9+, ]+/g;
|
|
10126
10320
|
var PHONE_NUMBER_VALIDATION_SCHEMA = yup__namespace.string().required(i18next.t("neetoRules.validations.required.entity", {
|
|
10127
10321
|
entity: i18next.t("neetoRules.common.phoneNumber")
|
|
10128
|
-
})).test("testPhoneNumber", i18next.t("neetoRules.validations.
|
|
10322
|
+
})).test("testPhoneNumber", i18next.t("neetoRules.validations.invalidPhoneNumber"), PhoneNumber.isPhoneNumberValid);
|
|
10129
10323
|
var CUSTOM_STYLES = {
|
|
10130
10324
|
input: ramda.assoc("overflow", "hidden"),
|
|
10131
10325
|
multiValue: function multiValue(styles, _ref2) {
|
|
@@ -10296,10 +10490,6 @@ var SmsFields = function SmsFields(_ref) {
|
|
|
10296
10490
|
_useState2 = _slicedToArray$1(_useState, 2),
|
|
10297
10491
|
showPane = _useState2[0],
|
|
10298
10492
|
setShowPane = _useState2[1];
|
|
10299
|
-
var _useStateWithDependen = reactUtils.useStateWithDependency(null, [selectedField]),
|
|
10300
|
-
_useStateWithDependen2 = _slicedToArray$1(_useStateWithDependen, 2),
|
|
10301
|
-
selectedTemplate = _useStateWithDependen2[0],
|
|
10302
|
-
setSelectedTemplate = _useStateWithDependen2[1];
|
|
10303
10493
|
var initialFocusRef = React.useRef(null);
|
|
10304
10494
|
var editorRef = React.useRef(null);
|
|
10305
10495
|
var _useTranslation = reactI18next.useTranslation(),
|
|
@@ -10312,12 +10502,7 @@ var SmsFields = function SmsFields(_ref) {
|
|
|
10312
10502
|
var defaultLabel = (selectedField === null || selectedField === void 0 ? void 0 : selectedField.smsPlaceholder) || t("neetoRules.common.sms");
|
|
10313
10503
|
var templates = selectedField === null || selectedField === void 0 ? void 0 : selectedField.templates;
|
|
10314
10504
|
var isTemplateSelectionEnabled = neetoCist.isPresent(templates);
|
|
10315
|
-
var handleTemplateChange = function handleTemplateChange(
|
|
10316
|
-
setSelectedTemplate(option);
|
|
10317
|
-
if (!option) return;
|
|
10318
|
-
var template = neetoCist.findBy({
|
|
10319
|
-
id: option.value
|
|
10320
|
-
}, templates);
|
|
10505
|
+
var handleTemplateChange = function handleTemplateChange(template) {
|
|
10321
10506
|
setFieldValue("".concat(name, ".body"), template.body);
|
|
10322
10507
|
setEditorContent(editorRef, template.body);
|
|
10323
10508
|
};
|
|
@@ -10359,18 +10544,10 @@ var SmsFields = function SmsFields(_ref) {
|
|
|
10359
10544
|
weight: "semibold"
|
|
10360
10545
|
}, defaultLabel)), /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Body, null, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
10361
10546
|
className: "w-full"
|
|
10362
|
-
}, isTemplateSelectionEnabled && /*#__PURE__*/React__default["default"].createElement(
|
|
10363
|
-
|
|
10364
|
-
|
|
10365
|
-
|
|
10366
|
-
innerRef: initialFocusRef,
|
|
10367
|
-
label: t("neetoRules.labels.template"),
|
|
10368
|
-
options: neetoCist.renameKeys({
|
|
10369
|
-
name: "label",
|
|
10370
|
-
id: "value"
|
|
10371
|
-
}, templates),
|
|
10372
|
-
placeholder: t("neetoRules.placeholders.selectTemplate"),
|
|
10373
|
-
value: selectedTemplate,
|
|
10547
|
+
}, isTemplateSelectionEnabled && /*#__PURE__*/React__default["default"].createElement(SelectTemplateField, {
|
|
10548
|
+
initialFocusRef: initialFocusRef,
|
|
10549
|
+
selectedField: selectedField,
|
|
10550
|
+
templates: templates,
|
|
10374
10551
|
onChange: handleTemplateChange
|
|
10375
10552
|
}), showPhoneNumberInput && /*#__PURE__*/React__default["default"].createElement(PhoneNumberField, {
|
|
10376
10553
|
phoneNumbers: phoneNumbers,
|
|
@@ -10484,6 +10661,14 @@ var ActionSubItems = function ActionSubItems(_ref) {
|
|
|
10484
10661
|
key: name
|
|
10485
10662
|
}));
|
|
10486
10663
|
}
|
|
10664
|
+
if ((selectedField === null || selectedField === void 0 ? void 0 : selectedField.type) === ACTION_TYPES.sendToApi) {
|
|
10665
|
+
return /*#__PURE__*/React__default["default"].createElement(ApiFields, {
|
|
10666
|
+
index: index,
|
|
10667
|
+
name: name,
|
|
10668
|
+
selectedField: selectedField,
|
|
10669
|
+
key: name
|
|
10670
|
+
});
|
|
10671
|
+
}
|
|
10487
10672
|
if ((selectedField === null || selectedField === void 0 ? void 0 : selectedField.type) === ACTION_TYPES.dropdown) {
|
|
10488
10673
|
return /*#__PURE__*/React__default["default"].createElement(DropdownField$1, {
|
|
10489
10674
|
index: index,
|