@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/dist/index.js CHANGED
@@ -4,19 +4,19 @@ import { BrowserRouter } from 'react-router-dom';
4
4
  import { shallow } from 'zustand/shallow';
5
5
  import classNames$1 from 'classnames';
6
6
  import { useFormikContext, Formik, Form, useField, FieldArray, ErrorMessage } from 'formik';
7
- import { findBy, noop as noop$1, isPresent, renameKeys, isNotEmpty, nullSafe, toLabelAndValue, removeBy } from '@bigbinary/neeto-cist';
7
+ import { findBy, noop as noop$1, isNotEmpty, renameKeys, isPresent, nullSafe, toLabelAndValue, removeBy } from '@bigbinary/neeto-cist';
8
8
  import { ActionBlock, Textarea, MultiEmailInput, Input as Input$3, Select as Select$2, Radio } from '@bigbinary/neetoui/formik';
9
9
  import { t as t$2 } from 'i18next';
10
10
  import { isPhoneNumberValid } from '@bigbinary/neeto-molecules/PhoneNumber';
11
11
  import * as yup from 'yup';
12
12
  import { isEditorEmpty, FormikEditor } from '@bigbinary/neeto-editor';
13
- import { withImmutableActions, useDebounce, useStateWithDependency } from '@bigbinary/neeto-commons-frontend/react-utils';
13
+ import { withImmutableActions, withT, useStateWithDependency, useDebounce } from '@bigbinary/neeto-commons-frontend/react-utils';
14
14
  import { create } from 'zustand';
15
15
  import PageLoader from '@bigbinary/neeto-molecules/PageLoader';
16
- import { Typography, Button, Pane, DatePicker, Dropdown as Dropdown$1, Input as Input$2, Select as Select$1, Checkbox, Tag, Label, Tooltip } from '@bigbinary/neetoui';
16
+ import { Typography, Button, Pane, Input as Input$2, Label, Select as Select$1, DatePicker, Dropdown as Dropdown$1, Checkbox, Tag, Tooltip } from '@bigbinary/neetoui';
17
17
  import { useTranslation } from 'react-i18next';
18
- import { Down, Up, Check, Search, Close, Delete, Plus, Refresh, Eye } from '@bigbinary/neeto-icons';
19
- import { pluck, isNil, isNotNil, assocPath, toLower, isEmpty, without, append as append$1, pipe, filter, uniq, join, map, assoc, mergeLeft, includes, test, partition } from 'ramda';
18
+ import { Down, Up, Delete, Check, Search, Close, Plus, Refresh, Eye } from '@bigbinary/neeto-icons';
19
+ import { pluck, isNil, isNotNil, whereAny, useWith, path, split, assocPath, toLower, isEmpty, without, append as append$1, pipe, filter, uniq, join, map, assoc, mergeLeft, includes, test, partition } from 'ramda';
20
20
  import { joinHyphenCase, hyphenize } from '@bigbinary/neeto-commons-frontend/utils';
21
21
  import useHotkeys from '@bigbinary/neeto-hotkeys';
22
22
  import { createPortal } from 'react-dom';
@@ -240,7 +240,8 @@ var ACTION_TYPES = {
240
240
  longText: "longText",
241
241
  sms: "sms",
242
242
  smsToNumbers: "smsToNumbers",
243
- smsTo: "smsTo"
243
+ smsTo: "smsTo",
244
+ sendToApi: "sendToApi"
244
245
  };
245
246
  var LIST_FIELD_TOOLTIP_PROPS = {
246
247
  save: {
@@ -453,7 +454,7 @@ var getActionsSchema = function getActionsSchema(element, customData) {
453
454
  return yup.object({
454
455
  phoneNumbers: selectedAction.type === ACTION_TYPES.smsToNumbers ? yup.array().required(t$2("neetoRules.validations.required.entity", {
455
456
  entity: t$2("neetoRules.common.phoneNumber")
456
- })).of(yup.string().test("testPhoneNumber", t$2("neetoRules.validations.inValidPhoneNumber"), function (value) {
457
+ })).of(yup.string().test("testPhoneNumber", t$2("neetoRules.validations.invalidPhoneNumber"), function (value) {
457
458
  return isPhoneNumberValid(value);
458
459
  })) : schema,
459
460
  body: yup.string().test("body", t$2("neetoRules.validations.required.body"), function (value) {
@@ -461,6 +462,14 @@ var getActionsSchema = function getActionsSchema(element, customData) {
461
462
  }),
462
463
  value: selectedAction.type === ACTION_TYPES.smsTo ? yup.string().required(t$2("neetoRules.validations.required.value")) : schema
463
464
  });
465
+ } else if (ACTION_TYPES.sendToApi === (selectedAction === null || selectedAction === void 0 ? void 0 : selectedAction.type)) {
466
+ return yup.object({
467
+ endpoint: yup.string().url(t$2("neetoRules.validations.invalidUrlEntity", {
468
+ entity: t$2("neetoRules.labels.endpoint")
469
+ })).required(t$2("neetoRules.validations.required.entity", {
470
+ entity: t$2("neetoRules.labels.endpoint")
471
+ }))
472
+ });
464
473
  } else if (ACTION_TYPES.multiSelect === (selectedAction === null || selectedAction === void 0 ? void 0 : selectedAction.type)) {
465
474
  return yup.object({
466
475
  value: yup.array().min(1, t$2("neetoRules.validations.atLeastOneValue")).required(t$2("neetoRules.validations.atLeastOneValue"))
@@ -1188,6 +1197,247 @@ var LongTextField = function LongTextField(_ref) {
1188
1197
  }))));
1189
1198
  };
1190
1199
 
1200
+ function _extends$1() {
1201
+ _extends$1 = Object.assign ? Object.assign.bind() : function (target) {
1202
+ for (var i = 1; i < arguments.length; i++) {
1203
+ var source = arguments[i];
1204
+ for (var key in source) {
1205
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
1206
+ target[key] = source[key];
1207
+ }
1208
+ }
1209
+ }
1210
+ return target;
1211
+ };
1212
+ return _extends$1.apply(this, arguments);
1213
+ }
1214
+
1215
+ var _excluded$f = ["initialFocusRef", "name", "label"];
1216
+ var InputField$2 = function InputField(_ref) {
1217
+ var initialFocusRef = _ref.initialFocusRef,
1218
+ name = _ref.name,
1219
+ label = _ref.label,
1220
+ otherProps = _objectWithoutProperties$1(_ref, _excluded$f);
1221
+ var _useField = useField(name),
1222
+ _useField2 = _slicedToArray$1(_useField, 2),
1223
+ field = _useField2[0],
1224
+ meta = _useField2[1];
1225
+ return /*#__PURE__*/React__default.createElement(Input$2, _extends$1({
1226
+ label: label,
1227
+ type: "text"
1228
+ }, field, {
1229
+ error: meta.touched ? meta.error : "",
1230
+ ref: initialFocusRef
1231
+ }, otherProps));
1232
+ };
1233
+
1234
+ var ADDITIONAL_DATA_INITIAL_VALUE = {
1235
+ key: "",
1236
+ value: ""
1237
+ };
1238
+ var SAMPLE_ENDPOINT = "https://example.com";
1239
+
1240
+ var addOption = function addOption(arrayHelpers) {
1241
+ return arrayHelpers.push(ADDITIONAL_DATA_INITIAL_VALUE);
1242
+ };
1243
+ var removeOption = function removeOption(_ref) {
1244
+ var arrayHelpers = _ref.arrayHelpers,
1245
+ index = _ref.index,
1246
+ data = _ref.data;
1247
+ arrayHelpers.remove(index);
1248
+ if (data.length === 1) {
1249
+ addOption(arrayHelpers);
1250
+ }
1251
+ };
1252
+ var hasKeyOrValue = whereAny({
1253
+ key: isNotEmpty,
1254
+ value: isNotEmpty
1255
+ });
1256
+
1257
+ var setEditorContent = function setEditorContent(ref, content) {
1258
+ if (!ref.current) return;
1259
+ ref.current.editor.commands.setContent(content);
1260
+ };
1261
+
1262
+ // eslint-disable-next-line react-hooks/rules-of-hooks
1263
+ var dotPath = useWith(path, [split(".")]);
1264
+
1265
+ var KeyValuePairsField = withT(function (_ref) {
1266
+ var t = _ref.t,
1267
+ name = _ref.name,
1268
+ _ref$label = _ref.label,
1269
+ label = _ref$label === void 0 ? "" : _ref$label;
1270
+ return /*#__PURE__*/React__default.createElement(FieldArray, {
1271
+ name: name
1272
+ }, function (arrayHelpers) {
1273
+ var data = dotPath(name, arrayHelpers.form.values);
1274
+ var showDeleteButton = data.length > 1 || hasKeyOrValue(data[0]);
1275
+ return /*#__PURE__*/React__default.createElement("div", {
1276
+ className: "space-y-3"
1277
+ }, /*#__PURE__*/React__default.createElement(Label, null, label), data.map(function (_, index) {
1278
+ return /*#__PURE__*/React__default.createElement("div", {
1279
+ className: "flex h-8 space-x-3",
1280
+ key: index
1281
+ }, /*#__PURE__*/React__default.createElement(InputField$2, {
1282
+ className: "w-2/5",
1283
+ name: "".concat(name, ".").concat(index, ".key"),
1284
+ placeholder: t("neetoRules.labels.key")
1285
+ }), /*#__PURE__*/React__default.createElement(InputField$2, {
1286
+ className: "w-3/5",
1287
+ name: "".concat(name, ".").concat(index, ".value"),
1288
+ placeholder: t("neetoRules.labels.value"),
1289
+ suffix: showDeleteButton && /*#__PURE__*/React__default.createElement(Button, {
1290
+ icon: Delete,
1291
+ size: "small",
1292
+ style: "text",
1293
+ onClick: function onClick() {
1294
+ return removeOption({
1295
+ arrayHelpers: arrayHelpers,
1296
+ index: index,
1297
+ data: data
1298
+ });
1299
+ }
1300
+ })
1301
+ }));
1302
+ }), /*#__PURE__*/React__default.createElement(Button, {
1303
+ label: t("neetoRules.labels.addKeyValuePair"),
1304
+ style: "secondary",
1305
+ onClick: function onClick() {
1306
+ return addOption(arrayHelpers);
1307
+ }
1308
+ }));
1309
+ });
1310
+ });
1311
+
1312
+ var SelectTemplateField = function SelectTemplateField(_ref) {
1313
+ var selectedField = _ref.selectedField,
1314
+ templates = _ref.templates,
1315
+ onChange = _ref.onChange,
1316
+ initialFocusRef = _ref.initialFocusRef;
1317
+ var _useStateWithDependen = useStateWithDependency(null, [selectedField]),
1318
+ _useStateWithDependen2 = _slicedToArray$1(_useStateWithDependen, 2),
1319
+ selectedTemplate = _useStateWithDependen2[0],
1320
+ setSelectedTemplate = _useStateWithDependen2[1];
1321
+ var _useTranslation = useTranslation(),
1322
+ t = _useTranslation.t;
1323
+ var handleTemplateChange = function handleTemplateChange(option) {
1324
+ setSelectedTemplate(option);
1325
+ if (!option) return;
1326
+ var template = findBy({
1327
+ id: option.value
1328
+ }, templates);
1329
+ onChange === null || onChange === void 0 || onChange(template);
1330
+ };
1331
+ return /*#__PURE__*/React__default.createElement(Select$1, {
1332
+ isClearable: true,
1333
+ isSearchable: true,
1334
+ className: "mb-4",
1335
+ innerRef: initialFocusRef,
1336
+ label: t("neetoRules.labels.template"),
1337
+ options: renameKeys({
1338
+ name: "label",
1339
+ id: "value"
1340
+ }, templates),
1341
+ placeholder: t("neetoRules.placeholders.selectTemplate"),
1342
+ value: selectedTemplate,
1343
+ onChange: handleTemplateChange
1344
+ });
1345
+ };
1346
+
1347
+ var ApiFields = function ApiFields(_ref) {
1348
+ var _errors$actions, _touched$actions, _selectedField$separa;
1349
+ var name = _ref.name,
1350
+ selectedField = _ref.selectedField,
1351
+ index = _ref.index;
1352
+ var _useFormikContext = useFormikContext(),
1353
+ errors = _useFormikContext.errors,
1354
+ touched = _useFormikContext.touched,
1355
+ setFieldValue = _useFormikContext.setFieldValue;
1356
+ var _useState = useState(false),
1357
+ _useState2 = _slicedToArray$1(_useState, 2),
1358
+ showPane = _useState2[0],
1359
+ setShowPane = _useState2[1];
1360
+ var initialFocusRef = useRef(null);
1361
+ var _useTranslation = useTranslation(),
1362
+ t = _useTranslation.t;
1363
+ useOnButtonPressed(initialFocusRef, function () {
1364
+ return setShowPane(false);
1365
+ });
1366
+ var isValid = errors.actions && 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]) && 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]);
1367
+ 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");
1368
+ var defaultLabel = (selectedField === null || selectedField === void 0 ? void 0 : selectedField.dataPlaceholder) || t("neetoRules.common.data");
1369
+ var templates = selectedField === null || selectedField === void 0 ? void 0 : selectedField.templates;
1370
+ var isTemplateSelectionEnabled = isPresent(templates);
1371
+ var handleTemplateChange = function handleTemplateChange(template) {
1372
+ setFieldValue("".concat(name, ".endpoint"), template.endpoint);
1373
+ setFieldValue("".concat(name, ".additionalData"), template.additionalData);
1374
+ };
1375
+ return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Typography, {
1376
+ className: "neeto-ui-text-gray-700 mt-1",
1377
+ "data-cy": "api-action-separator-text",
1378
+ style: "h5",
1379
+ weight: "normal"
1380
+ }, separator), /*#__PURE__*/React__default.createElement(Typography, {
1381
+ "data-cy": "api-action-button",
1382
+ style: "h5",
1383
+ weight: "semibold",
1384
+ className: classNames$1("hover:neeto-ui-text-primary-800 neeto-ui-text-gray-800 mt-1 cursor-pointer underline", {
1385
+ "neeto-ui-text-primary-800": showPane,
1386
+ "neeto-ui-text-error-500": isValid
1387
+ }),
1388
+ onClick: function onClick() {
1389
+ return setShowPane(function (prevState) {
1390
+ return !prevState;
1391
+ });
1392
+ }
1393
+ }, defaultLabel.toLowerCase()), /*#__PURE__*/React__default.createElement(Pane, {
1394
+ initialFocusRef: initialFocusRef,
1395
+ isOpen: showPane,
1396
+ size: "large",
1397
+ onClose: function onClose() {
1398
+ return setShowPane(false);
1399
+ }
1400
+ }, /*#__PURE__*/React__default.createElement(Pane.Header, null, /*#__PURE__*/React__default.createElement(Typography, {
1401
+ className: "neeto-ui-text-gray-800 cursor-pointer",
1402
+ "data-cy": "api-action-pane-header-title",
1403
+ style: "h3",
1404
+ weight: "semibold"
1405
+ }, defaultLabel)), /*#__PURE__*/React__default.createElement(Pane.Body, null, /*#__PURE__*/React__default.createElement("div", {
1406
+ className: "w-full"
1407
+ }, isTemplateSelectionEnabled && /*#__PURE__*/React__default.createElement(SelectTemplateField, {
1408
+ initialFocusRef: initialFocusRef,
1409
+ selectedField: selectedField,
1410
+ templates: templates,
1411
+ onChange: handleTemplateChange
1412
+ }), /*#__PURE__*/React__default.createElement(InputField$2, {
1413
+ required: true,
1414
+ className: "mb-4",
1415
+ "data-cy": "api-action-endpoint-text-field",
1416
+ label: t("neetoRules.labels.endpoint"),
1417
+ name: "".concat(name, ".endpoint"),
1418
+ placeholder: SAMPLE_ENDPOINT,
1419
+ initialFocusRef: isTemplateSelectionEnabled ? null : initialFocusRef
1420
+ }), /*#__PURE__*/React__default.createElement(KeyValuePairsField, {
1421
+ label: t("neetoRules.labels.additionalData"),
1422
+ name: "".concat(name, ".additionalData")
1423
+ }))), /*#__PURE__*/React__default.createElement(Pane.Footer, {
1424
+ className: "flex items-center space-x-2"
1425
+ }, /*#__PURE__*/React__default.createElement(Button, {
1426
+ "data-cy": "save-changes-button",
1427
+ label: t("neetoRules.common.saveChange"),
1428
+ onClick: function onClick() {
1429
+ return setShowPane(false);
1430
+ }
1431
+ }), /*#__PURE__*/React__default.createElement(Button, {
1432
+ "data-cy": "cancel-button",
1433
+ label: t("neetoRules.buttons.cancel"),
1434
+ style: "text",
1435
+ onClick: function onClick() {
1436
+ return setShowPane(false);
1437
+ }
1438
+ }))));
1439
+ };
1440
+
1191
1441
  var CustomAction = function CustomAction(_ref) {
1192
1442
  var _errors$actions, _touched$actions, _selectedField$separa;
1193
1443
  var ActionComponent = _ref.ActionComponent,
@@ -1511,22 +1761,7 @@ var DropdownField$1 = function DropdownField(_ref) {
1511
1761
  }, t$2("neetoRules.common.noOptions")))));
1512
1762
  };
1513
1763
 
1514
- function _extends$1() {
1515
- _extends$1 = Object.assign ? Object.assign.bind() : function (target) {
1516
- for (var i = 1; i < arguments.length; i++) {
1517
- var source = arguments[i];
1518
- for (var key in source) {
1519
- if (Object.prototype.hasOwnProperty.call(source, key)) {
1520
- target[key] = source[key];
1521
- }
1522
- }
1523
- }
1524
- return target;
1525
- };
1526
- return _extends$1.apply(this, arguments);
1527
- }
1528
-
1529
- var _excluded$f = ["autoFocus", "name", "value", "label", "variables", "addons", "editorRef", "defaults"];
1764
+ var _excluded$e = ["autoFocus", "name", "value", "label", "variables", "addons", "editorRef", "defaults"];
1530
1765
  var EditorAction = function EditorAction(_ref) {
1531
1766
  var autoFocus = _ref.autoFocus,
1532
1767
  name = _ref.name,
@@ -1540,7 +1775,7 @@ var EditorAction = function EditorAction(_ref) {
1540
1775
  _ref$editorRef = _ref.editorRef,
1541
1776
  editorRef = _ref$editorRef === void 0 ? null : _ref$editorRef,
1542
1777
  defaults = _ref.defaults,
1543
- otherProps = _objectWithoutProperties$1(_ref, _excluded$f);
1778
+ otherProps = _objectWithoutProperties$1(_ref, _excluded$e);
1544
1779
  var _useFormikContext = useFormikContext(),
1545
1780
  setFieldValue = _useFormikContext.setFieldValue;
1546
1781
  var _useState = useState(value),
@@ -1591,30 +1826,6 @@ var EmailIdFields = function EmailIdFields(_ref) {
1591
1826
  }));
1592
1827
  };
1593
1828
 
1594
- var _excluded$e = ["initialFocusRef", "name", "label"];
1595
- var InputField$2 = function InputField(_ref) {
1596
- var initialFocusRef = _ref.initialFocusRef,
1597
- name = _ref.name,
1598
- label = _ref.label,
1599
- otherProps = _objectWithoutProperties$1(_ref, _excluded$e);
1600
- var _useField = useField(name),
1601
- _useField2 = _slicedToArray$1(_useField, 2),
1602
- field = _useField2[0],
1603
- meta = _useField2[1];
1604
- return /*#__PURE__*/React__default.createElement(Input$2, _extends$1({
1605
- label: label,
1606
- type: "text"
1607
- }, field, {
1608
- error: meta.touched ? meta.error : "",
1609
- ref: initialFocusRef
1610
- }, otherProps));
1611
- };
1612
-
1613
- var setEditorContent = function setEditorContent(ref, content) {
1614
- if (!ref.current) return;
1615
- ref.current.editor.commands.setContent(content);
1616
- };
1617
-
1618
1829
  var EmailFields = function EmailFields(_ref) {
1619
1830
  var _errors$actions, _touched$actions, _selectedField$separa, _action$metadata;
1620
1831
  var _ref$isEmailIdField = _ref.isEmailIdField,
@@ -1633,10 +1844,6 @@ var EmailFields = function EmailFields(_ref) {
1633
1844
  _useState2 = _slicedToArray$1(_useState, 2),
1634
1845
  showPane = _useState2[0],
1635
1846
  setShowPane = _useState2[1];
1636
- var _useStateWithDependen = useStateWithDependency(null, [selectedField]),
1637
- _useStateWithDependen2 = _slicedToArray$1(_useStateWithDependen, 2),
1638
- selectedTemplate = _useStateWithDependen2[0],
1639
- setSelectedTemplate = _useStateWithDependen2[1];
1640
1847
  var initialFocusRef = useRef(null);
1641
1848
  var editorRef = useRef(null);
1642
1849
  var _useTranslation = useTranslation(),
@@ -1649,12 +1856,7 @@ var EmailFields = function EmailFields(_ref) {
1649
1856
  var defaultLabel = (selectedField === null || selectedField === void 0 ? void 0 : selectedField.emailPlaceholder) || t("neetoRules.common.email");
1650
1857
  var templates = selectedField === null || selectedField === void 0 ? void 0 : selectedField.templates;
1651
1858
  var isTemplateSelectionEnabled = isPresent(templates);
1652
- var handleTemplateChange = function handleTemplateChange(option) {
1653
- setSelectedTemplate(option);
1654
- if (!option) return;
1655
- var template = findBy({
1656
- id: option.value
1657
- }, templates);
1859
+ var handleTemplateChange = function handleTemplateChange(template) {
1658
1860
  setFieldValue("".concat(name, ".body"), template.body);
1659
1861
  setEditorContent(editorRef, template.body);
1660
1862
  if (selectedField.hideSubject) return;
@@ -1705,18 +1907,10 @@ var EmailFields = function EmailFields(_ref) {
1705
1907
  weight: "semibold"
1706
1908
  }, defaultLabel)), /*#__PURE__*/React__default.createElement(Pane.Body, null, /*#__PURE__*/React__default.createElement("div", {
1707
1909
  className: "w-full"
1708
- }, isTemplateSelectionEnabled && /*#__PURE__*/React__default.createElement(Select$1, {
1709
- isClearable: true,
1710
- isSearchable: true,
1711
- className: "mb-4",
1712
- innerRef: initialFocusRef,
1713
- label: t("neetoRules.labels.template"),
1714
- options: renameKeys({
1715
- name: "label",
1716
- id: "value"
1717
- }, templates),
1718
- placeholder: t("neetoRules.placeholders.selectTemplate"),
1719
- value: selectedTemplate,
1910
+ }, isTemplateSelectionEnabled && /*#__PURE__*/React__default.createElement(SelectTemplateField, {
1911
+ initialFocusRef: initialFocusRef,
1912
+ selectedField: selectedField,
1913
+ templates: templates,
1720
1914
  onChange: handleTemplateChange
1721
1915
  }), isEmailIdField && /*#__PURE__*/React__default.createElement(EmailIdFields, {
1722
1916
  emails: emails,
@@ -10095,7 +10289,7 @@ var PHONE_NUMBER_SEPARATION_REGEX = /[^\s,]+/g;
10095
10289
  var FLEXIBLE_PHONE_NUMBER_REGEX = /[0-9+, ]+/g;
10096
10290
  var PHONE_NUMBER_VALIDATION_SCHEMA = yup.string().required(t$2("neetoRules.validations.required.entity", {
10097
10291
  entity: t$2("neetoRules.common.phoneNumber")
10098
- })).test("testPhoneNumber", t$2("neetoRules.validations.inValidPhoneNumber"), isPhoneNumberValid);
10292
+ })).test("testPhoneNumber", t$2("neetoRules.validations.invalidPhoneNumber"), isPhoneNumberValid);
10099
10293
  var CUSTOM_STYLES = {
10100
10294
  input: assoc("overflow", "hidden"),
10101
10295
  multiValue: function multiValue(styles, _ref2) {
@@ -10266,10 +10460,6 @@ var SmsFields = function SmsFields(_ref) {
10266
10460
  _useState2 = _slicedToArray$1(_useState, 2),
10267
10461
  showPane = _useState2[0],
10268
10462
  setShowPane = _useState2[1];
10269
- var _useStateWithDependen = useStateWithDependency(null, [selectedField]),
10270
- _useStateWithDependen2 = _slicedToArray$1(_useStateWithDependen, 2),
10271
- selectedTemplate = _useStateWithDependen2[0],
10272
- setSelectedTemplate = _useStateWithDependen2[1];
10273
10463
  var initialFocusRef = useRef(null);
10274
10464
  var editorRef = useRef(null);
10275
10465
  var _useTranslation = useTranslation(),
@@ -10282,12 +10472,7 @@ var SmsFields = function SmsFields(_ref) {
10282
10472
  var defaultLabel = (selectedField === null || selectedField === void 0 ? void 0 : selectedField.smsPlaceholder) || t("neetoRules.common.sms");
10283
10473
  var templates = selectedField === null || selectedField === void 0 ? void 0 : selectedField.templates;
10284
10474
  var isTemplateSelectionEnabled = isPresent(templates);
10285
- var handleTemplateChange = function handleTemplateChange(option) {
10286
- setSelectedTemplate(option);
10287
- if (!option) return;
10288
- var template = findBy({
10289
- id: option.value
10290
- }, templates);
10475
+ var handleTemplateChange = function handleTemplateChange(template) {
10291
10476
  setFieldValue("".concat(name, ".body"), template.body);
10292
10477
  setEditorContent(editorRef, template.body);
10293
10478
  };
@@ -10329,18 +10514,10 @@ var SmsFields = function SmsFields(_ref) {
10329
10514
  weight: "semibold"
10330
10515
  }, defaultLabel)), /*#__PURE__*/React__default.createElement(Pane.Body, null, /*#__PURE__*/React__default.createElement("div", {
10331
10516
  className: "w-full"
10332
- }, isTemplateSelectionEnabled && /*#__PURE__*/React__default.createElement(Select$1, {
10333
- isClearable: true,
10334
- isSearchable: true,
10335
- className: "mb-4",
10336
- innerRef: initialFocusRef,
10337
- label: t("neetoRules.labels.template"),
10338
- options: renameKeys({
10339
- name: "label",
10340
- id: "value"
10341
- }, templates),
10342
- placeholder: t("neetoRules.placeholders.selectTemplate"),
10343
- value: selectedTemplate,
10517
+ }, isTemplateSelectionEnabled && /*#__PURE__*/React__default.createElement(SelectTemplateField, {
10518
+ initialFocusRef: initialFocusRef,
10519
+ selectedField: selectedField,
10520
+ templates: templates,
10344
10521
  onChange: handleTemplateChange
10345
10522
  }), showPhoneNumberInput && /*#__PURE__*/React__default.createElement(PhoneNumberField, {
10346
10523
  phoneNumbers: phoneNumbers,
@@ -10454,6 +10631,14 @@ var ActionSubItems = function ActionSubItems(_ref) {
10454
10631
  key: name
10455
10632
  }));
10456
10633
  }
10634
+ if ((selectedField === null || selectedField === void 0 ? void 0 : selectedField.type) === ACTION_TYPES.sendToApi) {
10635
+ return /*#__PURE__*/React__default.createElement(ApiFields, {
10636
+ index: index,
10637
+ name: name,
10638
+ selectedField: selectedField,
10639
+ key: name
10640
+ });
10641
+ }
10457
10642
  if ((selectedField === null || selectedField === void 0 ? void 0 : selectedField.type) === ACTION_TYPES.dropdown) {
10458
10643
  return /*#__PURE__*/React__default.createElement(DropdownField$1, {
10459
10644
  index: index,