@bigbinary/neeto-rules-frontend 2.5.24 → 2.5.26

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.
Files changed (34) hide show
  1. package/README.md +25 -9
  2. package/app/javascript/src/translations/de.json +2 -1
  3. package/app/javascript/src/translations/en.json +1 -0
  4. package/app/javascript/src/translations/es.json +2 -1
  5. package/app/javascript/src/translations/fr.json +2 -1
  6. package/dist/NeetoRules.js +2 -1
  7. package/dist/NeetoRules.js.map +1 -1
  8. package/dist/NeetoRulesForm.js +217 -54
  9. package/dist/NeetoRulesForm.js.map +1 -1
  10. package/dist/RulePreview.js +55 -44
  11. package/dist/RulePreview.js.map +1 -1
  12. package/dist/cjs/NeetoRules.js +2 -1
  13. package/dist/cjs/NeetoRules.js.map +1 -1
  14. package/dist/cjs/NeetoRulesForm.js +217 -54
  15. package/dist/cjs/NeetoRulesForm.js.map +1 -1
  16. package/dist/cjs/RulePreview.js +55 -44
  17. package/dist/cjs/RulePreview.js.map +1 -1
  18. package/dist/cjs/index.js +5 -3
  19. package/dist/cjs/index.js.map +1 -1
  20. package/dist/{constants-BkPVd-Gz.js → constants-CCwwHsAM.js} +2 -1
  21. package/dist/constants-CCwwHsAM.js.map +1 -0
  22. package/dist/{constants-DghBXpIM.js → constants-DvCsjJGj.js} +2 -1
  23. package/dist/constants-DvCsjJGj.js.map +1 -0
  24. package/dist/index.js +5 -3
  25. package/dist/index.js.map +1 -1
  26. package/dist/{useUtilityStore-DhJI92iM.js → useUtilityStore-0xgAU9fw.js} +56 -2
  27. package/dist/useUtilityStore-0xgAU9fw.js.map +1 -0
  28. package/dist/{useUtilityStore-BcSUEW_u.js → useUtilityStore-C0O0N3Aq.js} +50 -3
  29. package/dist/useUtilityStore-C0O0N3Aq.js.map +1 -0
  30. package/package.json +14 -14
  31. package/dist/constants-BkPVd-Gz.js.map +0 -1
  32. package/dist/constants-DghBXpIM.js.map +0 -1
  33. package/dist/useUtilityStore-BcSUEW_u.js.map +0 -1
  34. package/dist/useUtilityStore-DhJI92iM.js.map +0 -1
@@ -11,7 +11,7 @@ import Delete from '@bigbinary/neeto-icons/Delete';
11
11
  import Refresh from '@bigbinary/neeto-icons/Refresh';
12
12
  import Button from '@bigbinary/neetoui/Button';
13
13
  import { useTranslation, Trans } from 'react-i18next';
14
- import { u as useUtilityStore, g as getSeparator } from './useUtilityStore-BcSUEW_u.js';
14
+ import { u as useUtilityStore, g as getSeparator, d as dotPath$1, b as getDateTimeValue, a as getDateTimeFormattedValue, D as DATE_TIME_TYPES, e as DATE_TIME_FORMAT, f as DATE_FORMAT, T as TIME_FORMAT } from './useUtilityStore-C0O0N3Aq.js';
15
15
  import classNames from 'classnames';
16
16
  import Typography from '@bigbinary/neetoui/Typography';
17
17
  import { assocPath, pluck, identity, isEmpty, mergeDeepLeft, isNotNil, whereAny, reject, equals, unless, path, omit, useWith, split, when, is, trim, eqBy, F, values, isNil, without, append, pipe, filter, uniq, join, map, assoc, mergeLeft, includes, test } from 'ramda';
@@ -47,8 +47,10 @@ import _toArray from '@babel/runtime/helpers/toArray';
47
47
  import { isPhoneNumberValid } from '@bigbinary/neeto-molecules/PhoneNumber';
48
48
  import Tag from '@bigbinary/neetoui/Tag';
49
49
  import { components } from 'react-select';
50
- import { O as OPERATORS$1, V as VERB_LABELS, I as INPUT_FIELD_TYPES, C as CONDITION_VALUE_TYPES, F as FIELDS_WITH_OPTIONS$1 } from './constants-DghBXpIM.js';
50
+ import { globalProps } from '@bigbinary/neeto-commons-frontend/initializers';
51
+ import { O as OPERATORS$1, V as VERB_LABELS, I as INPUT_FIELD_TYPES, C as CONDITION_VALUE_TYPES, F as FIELDS_WITH_OPTIONS$1 } from './constants-DvCsjJGj.js';
51
52
  import Radio$1 from '@bigbinary/neetoui/Radio';
53
+ import TimePicker from '@bigbinary/neetoui/TimePicker';
52
54
  import _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';
53
55
  import _regeneratorRuntime from '@babel/runtime/regenerator';
54
56
  import { isEditorEmpty } from '@bigbinary/neeto-editor/utils';
@@ -145,6 +147,7 @@ var Footer = function Footer(_ref) {
145
147
  var children = _ref.children,
146
148
  className = _ref.className;
147
149
  return /*#__PURE__*/jsx("div", {
150
+ "data-cy": "pane-footer",
148
151
  className: classNames("neeto-rules-side-panel__footer neeto-ui-border-gray-300 flex items-center justify-between border-t p-6", className),
149
152
  children: children
150
153
  });
@@ -162,12 +165,14 @@ var Header = function Header(_ref) {
162
165
  var _useTranslation = useTranslation(),
163
166
  t = _useTranslation.t;
164
167
  return /*#__PURE__*/jsxs("div", {
168
+ "data-cy": "pane-header",
165
169
  className: classNames("neeto-rules-side-panel__header neeto-ui-border-gray-300 flex items-start justify-between border-b p-6", _defineProperty({}, className, className)),
166
170
  children: [/*#__PURE__*/jsx("div", {
167
171
  className: "flex min-w-0 flex-grow",
168
172
  children: children
169
173
  }), /*#__PURE__*/jsx(Button, {
170
174
  className: "flex-shrink-0 scale-x-[-1]",
175
+ "data-cy": "collapse-sidebar-button",
171
176
  icon: Collapse,
172
177
  size: "medium",
173
178
  style: "text",
@@ -432,9 +437,11 @@ var ActionPanel = function ActionPanel() {
432
437
  children: /*#__PURE__*/jsxs("div", {
433
438
  className: "flex flex-col space-y-2",
434
439
  children: [/*#__PURE__*/jsxs(Typography, {
440
+ "data-cy": "action-title",
435
441
  style: "h3",
436
442
  children: [label, "..."]
437
443
  }), /*#__PURE__*/jsx(Typography, {
444
+ "data-cy": "action-description",
438
445
  style: "body2",
439
446
  children: t("neetoRules.form.addActionDescription")
440
447
  })]
@@ -463,6 +470,7 @@ var ActionPanel = function ActionPanel() {
463
470
  })]
464
471
  }), /*#__PURE__*/jsx(Panel.Footer, {
465
472
  children: /*#__PURE__*/jsx(Button, {
473
+ "data-cy": "continue-button",
466
474
  onClick: handleContinue,
467
475
  children: t("neetoRules.buttons.continue")
468
476
  })
@@ -521,7 +529,7 @@ function flatten (target, opts) {
521
529
 
522
530
  var DEFAULT_LONG_TEXT_ROWS = 8;
523
531
 
524
- var Target$j = function Target(_ref) {
532
+ var Target$k = function Target(_ref) {
525
533
  var _errors$actions, _touched$actions, _selectedField$separa;
526
534
  var index = _ref.index,
527
535
  name = _ref.name,
@@ -585,7 +593,7 @@ var LongTextField = function LongTextField(_ref2) {
585
593
  onFocus: setFieldActive
586
594
  });
587
595
  };
588
- LongTextField.Target = Target$j;
596
+ LongTextField.Target = Target$k;
589
597
 
590
598
  var CUSTOM_HEADERS_INITIAL_VALUE = {
591
599
  key: "",
@@ -1034,7 +1042,7 @@ var useResetSaveAsTemplateOnHide = function useResetSaveAsTemplateOnHide(name, s
1034
1042
  return isVisible;
1035
1043
  };
1036
1044
 
1037
- var Target$i = function Target(_ref) {
1045
+ var Target$j = function Target(_ref) {
1038
1046
  var _selectedField$separa;
1039
1047
  var selectedField = _ref.selectedField,
1040
1048
  name = _ref.name,
@@ -1157,9 +1165,9 @@ var ApiFields = function ApiFields(_ref2) {
1157
1165
  })]
1158
1166
  });
1159
1167
  };
1160
- ApiFields.Target = Target$i;
1168
+ ApiFields.Target = Target$j;
1161
1169
 
1162
- var Target$h = function Target(_ref) {
1170
+ var Target$i = function Target(_ref) {
1163
1171
  var _selectedField$separa;
1164
1172
  var selectedField = _ref.selectedField,
1165
1173
  name = _ref.name,
@@ -1216,9 +1224,9 @@ var CustomAction = function CustomAction(_ref2) {
1216
1224
  setFieldActive: setFieldActive
1217
1225
  });
1218
1226
  };
1219
- CustomAction.Target = Target$h;
1227
+ CustomAction.Target = Target$i;
1220
1228
 
1221
- var Target$g = function Target(_ref) {
1229
+ var Target$h = function Target(_ref) {
1222
1230
  var _field$value, _selectedField$separa;
1223
1231
  var name = _ref.name,
1224
1232
  selectedField = _ref.selectedField,
@@ -1298,7 +1306,7 @@ var DateField$1 = function DateField(_ref2) {
1298
1306
  }
1299
1307
  });
1300
1308
  };
1301
- DateField$1.Target = Target$g;
1309
+ DateField$1.Target = Target$h;
1302
1310
 
1303
1311
  var EmailIdFields = function EmailIdFields(_ref) {
1304
1312
  var initialFocusRef = _ref.initialFocusRef,
@@ -1375,7 +1383,7 @@ var EditorAction = function EditorAction(_ref) {
1375
1383
  var _excluded$d = ["dropdownOptions", "name", "selectedField", "shouldAutoFocus", "className", "required"];
1376
1384
  function ownKeys$p(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; }
1377
1385
  function _objectSpread$p(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$p(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$p(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1378
- var Target$f = function Target(_ref) {
1386
+ var Target$g = function Target(_ref) {
1379
1387
  var _selectedOption$label;
1380
1388
  var dropdownOptions = _ref.dropdownOptions,
1381
1389
  name = _ref.name,
@@ -1480,11 +1488,11 @@ var SelectField$2 = function SelectField(_ref2) {
1480
1488
  onFocus: setFieldActive
1481
1489
  }));
1482
1490
  };
1483
- SelectField$2.Target = Target$f;
1491
+ SelectField$2.Target = Target$g;
1484
1492
 
1485
1493
  function ownKeys$o(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; }
1486
1494
  function _objectSpread$o(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$o(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$o(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1487
- var Target$e = function Target(_ref) {
1495
+ var Target$f = function Target(_ref) {
1488
1496
  var selectedField = _ref.selectedField,
1489
1497
  _ref$separatorIndex = _ref.separatorIndex,
1490
1498
  separatorIndex = _ref$separatorIndex === void 0 ? 0 : _ref$separatorIndex,
@@ -1638,9 +1646,9 @@ var EmailFields = function EmailFields(_ref2) {
1638
1646
  })]
1639
1647
  });
1640
1648
  };
1641
- EmailFields.Target = Target$e;
1649
+ EmailFields.Target = Target$f;
1642
1650
 
1643
- var Target$d = function Target(_ref) {
1651
+ var Target$e = function Target(_ref) {
1644
1652
  var _field$value, _selectedField$separa;
1645
1653
  var name = _ref.name,
1646
1654
  selectedField = _ref.selectedField,
@@ -1672,6 +1680,7 @@ var Target$d = function Target(_ref) {
1672
1680
  children: separator
1673
1681
  }), /*#__PURE__*/jsx(Button, {
1674
1682
  label: label,
1683
+ "data-cy": "action-value-input-button",
1675
1684
  style: "link",
1676
1685
  className: classNames("neeto-ui-text-gray-800 neeto-ui-font-semibold underline", {
1677
1686
  "neeto-ui-text-accent-800": isFieldActive,
@@ -1705,7 +1714,7 @@ var Input = function Input(_ref2) {
1705
1714
  onFocus: setFieldActive
1706
1715
  });
1707
1716
  };
1708
- Input.Target = Target$d;
1717
+ Input.Target = Target$e;
1709
1718
 
1710
1719
  var useOnClickOutside = function useOnClickOutside(ref, handler) {
1711
1720
  useEffect(function () {
@@ -1812,7 +1821,7 @@ var InlineInput = /*#__PURE__*/forwardRef(function (props, ref) {
1812
1821
  });
1813
1822
  InlineInput.displayName = "InlineInput";
1814
1823
 
1815
- var Target$c = function Target(_ref) {
1824
+ var Target$d = function Target(_ref) {
1816
1825
  var _selectedField$separa;
1817
1826
  var name = _ref.name,
1818
1827
  selectedField = _ref.selectedField,
@@ -1931,9 +1940,9 @@ var ListField = function ListField(_ref2) {
1931
1940
  })
1932
1941
  });
1933
1942
  };
1934
- ListField.Target = Target$c;
1943
+ ListField.Target = Target$d;
1935
1944
 
1936
- var Target$b = function Target(_ref) {
1945
+ var Target$c = function Target(_ref) {
1937
1946
  var _selectedField$separa, _selectedField$placeh;
1938
1947
  var _ref$dropdownOptions = _ref.dropdownOptions,
1939
1948
  dropdownOptions = _ref$dropdownOptions === void 0 ? [] : _ref$dropdownOptions,
@@ -2060,9 +2069,9 @@ var MultiSelect$1 = function MultiSelect(_ref2) {
2060
2069
  })
2061
2070
  });
2062
2071
  };
2063
- MultiSelect$1.Target = Target$b;
2072
+ MultiSelect$1.Target = Target$c;
2064
2073
 
2065
- var Target$a = function Target(_ref) {
2074
+ var Target$b = function Target(_ref) {
2066
2075
  var _selectedField$separa, _selectedField$placeh;
2067
2076
  var _ref$dropdownOptions = _ref.dropdownOptions,
2068
2077
  dropdownOptions = _ref$dropdownOptions === void 0 ? [] : _ref$dropdownOptions,
@@ -2196,9 +2205,9 @@ var MultiSelectCheckbox$1 = function MultiSelectCheckbox(_ref2) {
2196
2205
  })]
2197
2206
  });
2198
2207
  };
2199
- MultiSelectCheckbox$1.Target = Target$a;
2208
+ MultiSelectCheckbox$1.Target = Target$b;
2200
2209
 
2201
- var Target$9 = function Target(_ref) {
2210
+ var Target$a = function Target(_ref) {
2202
2211
  var _selectedField$placeh, _selectedField$separa;
2203
2212
  var name = _ref.name,
2204
2213
  selectedField = _ref.selectedField,
@@ -2265,9 +2274,9 @@ var NoteField = function NoteField(_ref2) {
2265
2274
  onFocus: setFieldActive
2266
2275
  });
2267
2276
  };
2268
- NoteField.Target = Target$9;
2277
+ NoteField.Target = Target$a;
2269
2278
 
2270
- var Target$8 = function Target(_ref) {
2279
+ var Target$9 = function Target(_ref) {
2271
2280
  var _selectedOption$label;
2272
2281
  var options = _ref.options,
2273
2282
  name = _ref.name,
@@ -2387,7 +2396,7 @@ var RadioField$2 = function RadioField(_ref2) {
2387
2396
  onFocus: setFieldActive
2388
2397
  });
2389
2398
  };
2390
- RadioField$2.Target = Target$8;
2399
+ RadioField$2.Target = Target$9;
2391
2400
 
2392
2401
  var removeDuplicateErrorMessages = pipe(filter(isNotNil), uniq, join(ERROR_MESSAGE_DELIMITER));
2393
2402
  var dasherize = function dasherize(input) {
@@ -2648,7 +2657,7 @@ var PhoneNumberField = function PhoneNumberField(_ref) {
2648
2657
 
2649
2658
  function ownKeys$k(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; }
2650
2659
  function _objectSpread$k(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$k(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$k(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
2651
- var Target$7 = function Target(_ref) {
2660
+ var Target$8 = function Target(_ref) {
2652
2661
  var name = _ref.name,
2653
2662
  _ref$separatorIndex = _ref.separatorIndex,
2654
2663
  separatorIndex = _ref$separatorIndex === void 0 ? 0 : _ref$separatorIndex,
@@ -2788,7 +2797,7 @@ var SmsFields = function SmsFields(_ref2) {
2788
2797
  })]
2789
2798
  });
2790
2799
  };
2791
- SmsFields.Target = Target$7;
2800
+ SmsFields.Target = Target$8;
2792
2801
 
2793
2802
  var ActionSubItem = function ActionSubItem(_ref) {
2794
2803
  var name = _ref.name,
@@ -3210,6 +3219,7 @@ var ActionSubItemPanel = function ActionSubItemPanel() {
3210
3219
  className: "flex items-center space-x-2",
3211
3220
  children: [/*#__PURE__*/jsx(Button, {
3212
3221
  className: "flex-shrink-0",
3222
+ "data-cy": "back-button",
3213
3223
  icon: Left,
3214
3224
  size: "medium",
3215
3225
  style: "text",
@@ -3227,10 +3237,12 @@ var ActionSubItemPanel = function ActionSubItemPanel() {
3227
3237
  }));
3228
3238
  }
3229
3239
  }), /*#__PURE__*/jsx(Typography, {
3240
+ "data-cy": "action-sub-item-title",
3230
3241
  style: "h3",
3231
3242
  children: header
3232
3243
  })]
3233
3244
  }), /*#__PURE__*/jsx(Typography, {
3245
+ "data-cy": "action-sub-item-description",
3234
3246
  style: "body2",
3235
3247
  children: t("neetoRules.form.addActionSubItemDescription")
3236
3248
  })]
@@ -3249,6 +3261,7 @@ var ActionSubItemPanel = function ActionSubItemPanel() {
3249
3261
  })]
3250
3262
  }), /*#__PURE__*/jsx(Panel.Footer, {
3251
3263
  children: /*#__PURE__*/jsx(Button, {
3264
+ "data-cy": "continue-button",
3252
3265
  onClick: handleContinue,
3253
3266
  children: t("neetoRules.buttons.continue")
3254
3267
  })
@@ -3256,20 +3269,31 @@ var ActionSubItemPanel = function ActionSubItemPanel() {
3256
3269
  });
3257
3270
  };
3258
3271
 
3259
- var Target$6 = function Target(_ref) {
3272
+ var Target$7 = function Target(_ref) {
3260
3273
  var name = _ref.name,
3261
3274
  _ref$onClick = _ref.onClick,
3262
3275
  _onClick = _ref$onClick === void 0 ? noop : _ref$onClick;
3263
3276
  var _useTranslation = useTranslation(),
3264
3277
  t = _useTranslation.t;
3265
- var _useField = useField(name),
3278
+ var _useFormikContext = useFormikContext(),
3279
+ values = _useFormikContext.values;
3280
+ var _useField = useField("".concat(name, ".value")),
3266
3281
  _useField2 = _slicedToArray(_useField, 2),
3267
3282
  field = _useField2[0],
3268
3283
  meta = _useField2[1];
3269
- var _useActiveField = useActiveField(name),
3284
+ var _useActiveField = useActiveField("".concat(name, ".value")),
3270
3285
  isFieldActive = _useActiveField.isFieldActive,
3271
3286
  setFieldActive = _useActiveField.setFieldActive;
3272
- var label = field.value || t("neetoRules.form.selectDate");
3287
+ var format = dotPath$1("".concat(name, ".format"), values);
3288
+ var type = dotPath$1("".concat(name, ".type"), values);
3289
+ var timezone = dotPath$1("".concat(name, ".timezone"), values);
3290
+ var defaultLabel = t("neetoRules.form.selectDate");
3291
+ var label = field.value ? getDateTimeFormattedValue({
3292
+ date: field.value,
3293
+ format: format,
3294
+ type: type,
3295
+ timezone: timezone
3296
+ }) : defaultLabel.toLowerCase();
3273
3297
  var isFieldInvalid = meta.touched && meta.error;
3274
3298
  return /*#__PURE__*/jsx(Button, {
3275
3299
  label: label,
@@ -3293,35 +3317,53 @@ var DateField = function DateField(_ref2) {
3293
3317
  required = _ref2$required === void 0 ? false : _ref2$required;
3294
3318
  var _useTranslation2 = useTranslation(),
3295
3319
  t = _useTranslation2.t;
3296
- var _useField3 = useField(name),
3320
+ var _useFormikContext2 = useFormikContext(),
3321
+ values = _useFormikContext2.values,
3322
+ setFieldValue = _useFormikContext2.setFieldValue;
3323
+ var _useField3 = useField("".concat(name, ".value")),
3297
3324
  _useField4 = _slicedToArray(_useField3, 3),
3298
3325
  field = _useField4[0],
3299
3326
  meta = _useField4[1],
3300
3327
  _useField4$ = _useField4[2],
3301
3328
  setValue = _useField4$.setValue,
3302
3329
  setTouched = _useField4$.setTouched;
3303
- var _useActiveField2 = useActiveField(name, {
3330
+ var _useActiveField2 = useActiveField("".concat(name, ".value"), {
3304
3331
  shouldAutoFocus: shouldAutoFocus
3305
3332
  }),
3306
3333
  ref = _useActiveField2.ref,
3307
3334
  setFieldActive = _useActiveField2.setFieldActive;
3335
+ var format = dotPath$1("".concat(name, ".format"), values);
3336
+ var type = dotPath$1("".concat(name, ".type"), values);
3337
+ var timezone = dotPath$1("".concat(name, ".timezone"), values);
3338
+ var value = getDateTimeValue({
3339
+ date: field.value,
3340
+ format: format,
3341
+ type: type,
3342
+ timezone: timezone
3343
+ });
3308
3344
  var handleOnChange = function handleOnChange(date) {
3309
- var format = selectedField.showTime ? "YYYY-MM-DD HH:mm:ss" : "YYYY-MM-DD";
3345
+ var _globalProps$user;
3346
+ var type = selectedField.showTime ? DATE_TIME_TYPES.datetime : DATE_TIME_TYPES.date;
3347
+ var format = selectedField.showTime ? DATE_TIME_FORMAT : DATE_FORMAT;
3310
3348
 
3311
3349
  // This is the format being stored in database as of now, standard doesn't include this format
3312
3350
  // eslint-disable-next-line @bigbinary/neeto/use-standard-date-time-formats
3313
3351
  setValue(date ? dayjs(date).format(format) : "");
3352
+ setFieldValue("".concat(name, ".type"), type);
3353
+ setFieldValue("".concat(name, ".format"), format);
3354
+ setFieldValue("".concat(name, ".timezone"), globalProps === null || globalProps === void 0 || (_globalProps$user = globalProps.user) === null || _globalProps$user === void 0 ? void 0 : _globalProps$user.timeZone);
3314
3355
  };
3315
3356
  return /*#__PURE__*/jsx(DatePicker, {
3316
3357
  ref: ref,
3317
3358
  required: required,
3318
- defaultValue: field.value,
3359
+ defaultValue: value,
3319
3360
  error: meta.touched && meta.error,
3320
3361
  label: t("neetoRules.form.selectDate"),
3321
3362
  name: "".concat(name, ".value"),
3322
3363
  showTime: selectedField.showTime,
3364
+ timeFormat: "HH:mm",
3323
3365
  type: "date",
3324
- value: field.value || "",
3366
+ value: value || "",
3325
3367
  onBlur: function onBlur() {
3326
3368
  return setTouched(true);
3327
3369
  },
@@ -3329,9 +3371,9 @@ var DateField = function DateField(_ref2) {
3329
3371
  onFocus: setFieldActive
3330
3372
  });
3331
3373
  };
3332
- DateField.Target = Target$6;
3374
+ DateField.Target = Target$7;
3333
3375
 
3334
- var Target$5 = function Target(_ref) {
3376
+ var Target$6 = function Target(_ref) {
3335
3377
  var _field$value;
3336
3378
  var name = _ref.name,
3337
3379
  _ref$onClick = _ref.onClick,
@@ -3350,6 +3392,7 @@ var Target$5 = function Target(_ref) {
3350
3392
  var label = valueTerm !== null && valueTerm !== void 0 && valueTerm.trim().length ? valueTerm : t("neetoRules.form.addValue");
3351
3393
  return /*#__PURE__*/jsx(Button, {
3352
3394
  label: label,
3395
+ "data-cy": "condition-value-input-button",
3353
3396
  style: "link",
3354
3397
  className: classNames("neeto-ui-text-gray-800 neeto-ui-font-semibold underline", {
3355
3398
  "neeto-ui-text-accent-800": isFieldActive,
@@ -3391,12 +3434,12 @@ var InputField$1 = function InputField(_ref2) {
3391
3434
  }
3392
3435
  });
3393
3436
  };
3394
- InputField$1.Target = Target$5;
3437
+ InputField$1.Target = Target$6;
3395
3438
 
3396
3439
  var _excluded$9 = ["name", "dropdownOptions", "shouldAutoFocus", "required"];
3397
3440
  function ownKeys$j(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; }
3398
3441
  function _objectSpread$j(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$j(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$j(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
3399
- var Target$4 = function Target(_ref) {
3442
+ var Target$5 = function Target(_ref) {
3400
3443
  var name = _ref.name,
3401
3444
  dropdownOptions = _ref.dropdownOptions,
3402
3445
  _ref$onClick = _ref.onClick,
@@ -3499,12 +3542,12 @@ var MultiSelect = function MultiSelect(_ref2) {
3499
3542
  }, otherProps))
3500
3543
  });
3501
3544
  };
3502
- MultiSelect.Target = Target$4;
3545
+ MultiSelect.Target = Target$5;
3503
3546
 
3504
3547
  var _excluded$8 = ["name", "dropdownOptions", "shouldAutoFocus", "required"];
3505
3548
  function ownKeys$i(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; }
3506
3549
  function _objectSpread$i(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$i(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$i(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
3507
- var Target$3 = function Target(_ref) {
3550
+ var Target$4 = function Target(_ref) {
3508
3551
  var name = _ref.name,
3509
3552
  dropdownOptions = _ref.dropdownOptions,
3510
3553
  _ref$onClick = _ref.onClick,
@@ -3621,7 +3664,7 @@ var MultiSelectCheckbox = function MultiSelectCheckbox(_ref2) {
3621
3664
  })]
3622
3665
  });
3623
3666
  };
3624
- MultiSelectCheckbox.Target = Target$3;
3667
+ MultiSelectCheckbox.Target = Target$4;
3625
3668
 
3626
3669
  var getFieldDetails = function getFieldDetails(fieldValue) {
3627
3670
  var conditionOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
@@ -3656,7 +3699,7 @@ var getLogicalOperatorOptions = function getLogicalOperatorOptions(isWithEvents)
3656
3699
  }];
3657
3700
  };
3658
3701
 
3659
- var Target$2 = function Target(_ref) {
3702
+ var Target$3 = function Target(_ref) {
3660
3703
  var name = _ref.name,
3661
3704
  _ref$onClick = _ref.onClick,
3662
3705
  _onClick = _ref$onClick === void 0 ? noop : _ref$onClick;
@@ -3752,13 +3795,13 @@ var MultiSelectCreate = function MultiSelectCreate(_ref2) {
3752
3795
  onFocus: setFieldActive
3753
3796
  });
3754
3797
  };
3755
- MultiSelectCreate.Target = Target$2;
3798
+ MultiSelectCreate.Target = Target$3;
3756
3799
 
3757
3800
  var _excluded$7 = ["name", "options", "placeholder", "onClick"],
3758
3801
  _excluded2 = ["name", "options", "handleOnChange", "shouldAutoFocus", "showLabel", "required"];
3759
3802
  function ownKeys$h(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; }
3760
3803
  function _objectSpread$h(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$h(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$h(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
3761
- var Target$1 = function Target(_ref) {
3804
+ var Target$2 = function Target(_ref) {
3762
3805
  var _selectedOption$label;
3763
3806
  var name = _ref.name,
3764
3807
  options = _ref.options,
@@ -3855,9 +3898,9 @@ var RadioField$1 = function RadioField(_ref2) {
3855
3898
  })
3856
3899
  }));
3857
3900
  };
3858
- RadioField$1.Target = Target$1;
3901
+ RadioField$1.Target = Target$2;
3859
3902
 
3860
- var Target = function Target(_ref) {
3903
+ var Target$1 = function Target(_ref) {
3861
3904
  var _selectedOption$label;
3862
3905
  var name = _ref.name,
3863
3906
  dropdownOptions = _ref.dropdownOptions,
@@ -3885,7 +3928,7 @@ var Target = function Target(_ref) {
3885
3928
  };
3886
3929
  }, [field.value, dropdownOptions]);
3887
3930
  return /*#__PURE__*/jsx(Button, {
3888
- "data-cy": "condition-value-dropdown-button",
3931
+ "data-cy": "condition-verb-dropdown-button",
3889
3932
  label: selectedOption === null || selectedOption === void 0 || (_selectedOption$label = selectedOption.label) === null || _selectedOption$label === void 0 ? void 0 : _selectedOption$label.toLowerCase(),
3890
3933
  style: "link",
3891
3934
  className: classNames("neeto-ui-text-gray-800 neeto-ui-font-semibold underline", {
@@ -3946,7 +3989,105 @@ var SelectField$1 = function SelectField(_ref2) {
3946
3989
  onFocus: setFieldActive
3947
3990
  });
3948
3991
  };
3949
- SelectField$1.Target = Target;
3992
+ SelectField$1.Target = Target$1;
3993
+
3994
+ var Target = function Target(_ref) {
3995
+ var name = _ref.name,
3996
+ _ref$onClick = _ref.onClick,
3997
+ _onClick = _ref$onClick === void 0 ? noop : _ref$onClick;
3998
+ var _useTranslation = useTranslation(),
3999
+ t = _useTranslation.t;
4000
+ var _useFormikContext = useFormikContext(),
4001
+ values = _useFormikContext.values;
4002
+ var _useField = useField("".concat(name, ".value")),
4003
+ _useField2 = _slicedToArray(_useField, 2),
4004
+ field = _useField2[0],
4005
+ meta = _useField2[1];
4006
+ var _useActiveField = useActiveField("".concat(name, ".value")),
4007
+ isFieldActive = _useActiveField.isFieldActive,
4008
+ setFieldActive = _useActiveField.setFieldActive;
4009
+ var format = dotPath$1("".concat(name, ".format"), values);
4010
+ var type = dotPath$1("".concat(name, ".type"), values);
4011
+ var timezone = dotPath$1("".concat(name, ".timezone"), values);
4012
+ var defaultLabel = t("neetoRules.form.selectTime");
4013
+ var label = field.value ? getDateTimeFormattedValue({
4014
+ date: field.value,
4015
+ format: format,
4016
+ type: type,
4017
+ timezone: timezone
4018
+ }) : defaultLabel.toLowerCase();
4019
+ var isFieldInvalid = meta.touched && meta.error;
4020
+ return /*#__PURE__*/jsx(Button, {
4021
+ label: label,
4022
+ style: "link",
4023
+ className: classNames("neeto-ui-text-gray-800 neeto-ui-font-semibold underline", {
4024
+ "neeto-ui-text-accent-800": isFieldActive,
4025
+ "neeto-ui-text-error-500": isFieldInvalid && !isFieldActive
4026
+ }),
4027
+ onClick: function onClick() {
4028
+ _onClick();
4029
+ setFieldActive();
4030
+ }
4031
+ });
4032
+ };
4033
+ var TimeField = function TimeField(_ref2) {
4034
+ var name = _ref2.name,
4035
+ _ref2$shouldAutoFocus = _ref2.shouldAutoFocus,
4036
+ shouldAutoFocus = _ref2$shouldAutoFocus === void 0 ? false : _ref2$shouldAutoFocus,
4037
+ _ref2$required = _ref2.required,
4038
+ required = _ref2$required === void 0 ? false : _ref2$required;
4039
+ var _useTranslation2 = useTranslation(),
4040
+ t = _useTranslation2.t;
4041
+ var _useFormikContext2 = useFormikContext(),
4042
+ values = _useFormikContext2.values,
4043
+ setFieldValue = _useFormikContext2.setFieldValue;
4044
+ var _useField3 = useField("".concat(name, ".value")),
4045
+ _useField4 = _slicedToArray(_useField3, 3),
4046
+ field = _useField4[0],
4047
+ meta = _useField4[1],
4048
+ _useField4$ = _useField4[2],
4049
+ setValue = _useField4$.setValue,
4050
+ setTouched = _useField4$.setTouched;
4051
+ var _useActiveField2 = useActiveField("".concat(name, ".value"), {
4052
+ shouldAutoFocus: shouldAutoFocus
4053
+ }),
4054
+ ref = _useActiveField2.ref,
4055
+ setFieldActive = _useActiveField2.setFieldActive;
4056
+ var format = dotPath$1("".concat(name, ".format"), values);
4057
+ var type = dotPath$1("".concat(name, ".type"), values);
4058
+ var timezone = dotPath$1("".concat(name, ".timezone"), values);
4059
+ var value = getDateTimeValue({
4060
+ date: field.value,
4061
+ format: format,
4062
+ type: type,
4063
+ timezone: timezone
4064
+ });
4065
+ var handleOnChange = function handleOnChange(time) {
4066
+ var _globalProps$user;
4067
+ // This is the format being stored in database as of now, standard doesn't include this format
4068
+ // eslint-disable-next-line @bigbinary/neeto/use-standard-date-time-formats
4069
+ setValue(time ? dayjs(time).format(TIME_FORMAT) : "");
4070
+ setFieldValue("".concat(name, ".type"), DATE_TIME_TYPES.time);
4071
+ setFieldValue("".concat(name, ".format"), TIME_FORMAT);
4072
+ setFieldValue("".concat(name, ".timezone"), globalProps === null || globalProps === void 0 || (_globalProps$user = globalProps.user) === null || _globalProps$user === void 0 ? void 0 : _globalProps$user.timeZone);
4073
+ };
4074
+ return /*#__PURE__*/jsx(TimePicker, {
4075
+ ref: ref,
4076
+ required: required,
4077
+ defaultValue: value,
4078
+ error: meta.touched && meta.error,
4079
+ format: "HH:mm",
4080
+ label: t("neetoRules.form.selectTime"),
4081
+ name: "".concat(name, ".value"),
4082
+ value: value || "",
4083
+ onBlur: function onBlur() {
4084
+ return setTouched(true);
4085
+ },
4086
+ onChange: handleOnChange,
4087
+ onFocus: setFieldActive
4088
+ });
4089
+ };
4090
+ TimeField.Target = Target;
3950
4091
 
3951
4092
  var FieldPanel = function FieldPanel() {
3952
4093
  var _findBy;
@@ -3997,9 +4138,11 @@ var FieldPanel = function FieldPanel() {
3997
4138
  children: /*#__PURE__*/jsxs("div", {
3998
4139
  className: "flex flex-col space-y-2",
3999
4140
  children: [/*#__PURE__*/jsxs(Typography, {
4141
+ "data-cy": "condition-title",
4000
4142
  style: "h3",
4001
4143
  children: [index ? logicalOperatorLabel : conditionLabel, "..."]
4002
4144
  }), /*#__PURE__*/jsx(Typography, {
4145
+ "data-cy": "condition-description",
4003
4146
  style: "body2",
4004
4147
  children: t("neetoRules.form.addConditionDescription")
4005
4148
  })]
@@ -4015,6 +4158,7 @@ var FieldPanel = function FieldPanel() {
4015
4158
  })
4016
4159
  }), /*#__PURE__*/jsx(Panel.Footer, {
4017
4160
  children: /*#__PURE__*/jsx(Button, {
4161
+ "data-cy": "continue-button",
4018
4162
  onClick: handleContinue,
4019
4163
  children: t("neetoRules.buttons.continue")
4020
4164
  })
@@ -4122,14 +4266,23 @@ var ValueField = function ValueField(_ref) {
4122
4266
  }
4123
4267
  if (fieldType === CONDITION_VALUE_TYPES.date) {
4124
4268
  return isTarget ? /*#__PURE__*/jsx(DateField.Target, {
4125
- onClick: onClick,
4126
- name: "".concat(name, ".value")
4269
+ name: name,
4270
+ onClick: onClick
4127
4271
  }) : /*#__PURE__*/jsx(DateField, {
4272
+ name: name,
4128
4273
  required: true,
4129
- name: "".concat(name, ".value"),
4130
4274
  selectedField: field
4131
4275
  });
4132
4276
  }
4277
+ if (fieldType === CONDITION_VALUE_TYPES.time) {
4278
+ return isTarget ? /*#__PURE__*/jsx(TimeField.Target, {
4279
+ name: name,
4280
+ onClick: onClick
4281
+ }) : /*#__PURE__*/jsx(TimeField, {
4282
+ name: name,
4283
+ required: true
4284
+ });
4285
+ }
4133
4286
  return null;
4134
4287
  };
4135
4288
 
@@ -4223,10 +4376,12 @@ var VerbAndValuePanel = function VerbAndValuePanel() {
4223
4376
  }));
4224
4377
  }
4225
4378
  }), /*#__PURE__*/jsxs(Typography, {
4379
+ "data-cy": "condition-verb-and-value-title",
4226
4380
  style: "h3",
4227
4381
  children: [index ? logicalOperatorLabel : conditionLabel, " ", fieldLabel, "..."]
4228
4382
  })]
4229
4383
  }), /*#__PURE__*/jsx(Typography, {
4384
+ "data-cy": "condition-verb-and-value-description",
4230
4385
  style: "body2",
4231
4386
  children: t("neetoRules.form.addConditionVerbAndValueDescription")
4232
4387
  })]
@@ -4251,6 +4406,7 @@ var VerbAndValuePanel = function VerbAndValuePanel() {
4251
4406
  })
4252
4407
  }), /*#__PURE__*/jsx(Panel.Footer, {
4253
4408
  children: /*#__PURE__*/jsx(Button, {
4409
+ "data-cy": "continue-button",
4254
4410
  onClick: handleContinue,
4255
4411
  children: t("neetoRules.buttons.continue")
4256
4412
  })
@@ -4493,9 +4649,11 @@ var EventsPanel = function EventsPanel() {
4493
4649
  children: /*#__PURE__*/jsxs("div", {
4494
4650
  className: "flex flex-col space-y-2",
4495
4651
  children: [/*#__PURE__*/jsxs(Typography, {
4652
+ "data-cy": "event-title",
4496
4653
  style: "h3",
4497
4654
  children: [t("neetoRules.common.when"), "..."]
4498
4655
  }), /*#__PURE__*/jsx(Typography, {
4656
+ "data-cy": "event-description",
4499
4657
  style: "body2",
4500
4658
  children: t("neetoRules.form.addEventDescription")
4501
4659
  })]
@@ -4527,6 +4685,7 @@ var EventsPanel = function EventsPanel() {
4527
4685
  })
4528
4686
  }), /*#__PURE__*/jsx(Panel.Footer, {
4529
4687
  children: /*#__PURE__*/jsx(Button, {
4688
+ "data-cy": "continue-button",
4530
4689
  onClick: handleContinue,
4531
4690
  children: t("neetoRules.buttons.continue")
4532
4691
  })
@@ -4599,6 +4758,7 @@ var PerformerPanel = function PerformerPanel() {
4599
4758
  className: "flex items-center space-x-2",
4600
4759
  children: [/*#__PURE__*/jsx(Button, {
4601
4760
  className: "flex-shrink-0",
4761
+ "data-cy": "back-button",
4602
4762
  icon: Left,
4603
4763
  size: "medium",
4604
4764
  style: "text",
@@ -4615,10 +4775,12 @@ var PerformerPanel = function PerformerPanel() {
4615
4775
  }));
4616
4776
  }
4617
4777
  }), /*#__PURE__*/jsxs(Typography, {
4778
+ "data-cy": "performer-title",
4618
4779
  style: "h3",
4619
4780
  children: [t("neetoRules.form.actionTriggeredBy"), "..."]
4620
4781
  })]
4621
4782
  }), /*#__PURE__*/jsx(Typography, {
4783
+ "data-cy": "performer-description",
4622
4784
  style: "body2",
4623
4785
  children: t("neetoRules.form.addPerformerDescription")
4624
4786
  })]
@@ -4645,6 +4807,7 @@ var PerformerPanel = function PerformerPanel() {
4645
4807
  })
4646
4808
  }), /*#__PURE__*/jsx(Panel.Footer, {
4647
4809
  children: /*#__PURE__*/jsx(Button, {
4810
+ "data-cy": "continue-button",
4648
4811
  onClick: handleContinue,
4649
4812
  children: t("neetoRules.buttons.continue")
4650
4813
  })