@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
@@ -13,7 +13,7 @@ var Delete = require('@bigbinary/neeto-icons/Delete');
13
13
  var Refresh = require('@bigbinary/neeto-icons/Refresh');
14
14
  var Button = require('@bigbinary/neetoui/Button');
15
15
  var reactI18next = require('react-i18next');
16
- var useUtilityStore = require('../useUtilityStore-DhJI92iM.js');
16
+ var useUtilityStore = require('../useUtilityStore-0xgAU9fw.js');
17
17
  var classNames = require('classnames');
18
18
  var Typography = require('@bigbinary/neetoui/Typography');
19
19
  var ramda = require('ramda');
@@ -49,8 +49,10 @@ var _toArray = require('@babel/runtime/helpers/toArray');
49
49
  var PhoneNumber = require('@bigbinary/neeto-molecules/PhoneNumber');
50
50
  var Tag = require('@bigbinary/neetoui/Tag');
51
51
  var reactSelect = require('react-select');
52
- var constants = require('../constants-BkPVd-Gz.js');
52
+ var initializers = require('@bigbinary/neeto-commons-frontend/initializers');
53
+ var constants = require('../constants-CCwwHsAM.js');
53
54
  var Radio$1 = require('@bigbinary/neetoui/Radio');
55
+ var TimePicker = require('@bigbinary/neetoui/TimePicker');
54
56
  var _asyncToGenerator = require('@babel/runtime/helpers/asyncToGenerator');
55
57
  var _regeneratorRuntime = require('@babel/runtime/regenerator');
56
58
  var utils$1 = require('@bigbinary/neeto-editor/utils');
@@ -166,6 +168,7 @@ var Footer = function Footer(_ref) {
166
168
  var children = _ref.children,
167
169
  className = _ref.className;
168
170
  return /*#__PURE__*/jsxRuntime.jsx("div", {
171
+ "data-cy": "pane-footer",
169
172
  className: classNames("neeto-rules-side-panel__footer neeto-ui-border-gray-300 flex items-center justify-between border-t p-6", className),
170
173
  children: children
171
174
  });
@@ -183,12 +186,14 @@ var Header = function Header(_ref) {
183
186
  var _useTranslation = reactI18next.useTranslation(),
184
187
  t = _useTranslation.t;
185
188
  return /*#__PURE__*/jsxRuntime.jsxs("div", {
189
+ "data-cy": "pane-header",
186
190
  className: classNames("neeto-rules-side-panel__header neeto-ui-border-gray-300 flex items-start justify-between border-b p-6", _defineProperty({}, className, className)),
187
191
  children: [/*#__PURE__*/jsxRuntime.jsx("div", {
188
192
  className: "flex min-w-0 flex-grow",
189
193
  children: children
190
194
  }), /*#__PURE__*/jsxRuntime.jsx(Button, {
191
195
  className: "flex-shrink-0 scale-x-[-1]",
196
+ "data-cy": "collapse-sidebar-button",
192
197
  icon: Collapse,
193
198
  size: "medium",
194
199
  style: "text",
@@ -453,9 +458,11 @@ var ActionPanel = function ActionPanel() {
453
458
  children: /*#__PURE__*/jsxRuntime.jsxs("div", {
454
459
  className: "flex flex-col space-y-2",
455
460
  children: [/*#__PURE__*/jsxRuntime.jsxs(Typography, {
461
+ "data-cy": "action-title",
456
462
  style: "h3",
457
463
  children: [label, "..."]
458
464
  }), /*#__PURE__*/jsxRuntime.jsx(Typography, {
465
+ "data-cy": "action-description",
459
466
  style: "body2",
460
467
  children: t("neetoRules.form.addActionDescription")
461
468
  })]
@@ -484,6 +491,7 @@ var ActionPanel = function ActionPanel() {
484
491
  })]
485
492
  }), /*#__PURE__*/jsxRuntime.jsx(Panel.Footer, {
486
493
  children: /*#__PURE__*/jsxRuntime.jsx(Button, {
494
+ "data-cy": "continue-button",
487
495
  onClick: handleContinue,
488
496
  children: t("neetoRules.buttons.continue")
489
497
  })
@@ -542,7 +550,7 @@ function flatten (target, opts) {
542
550
 
543
551
  var DEFAULT_LONG_TEXT_ROWS = 8;
544
552
 
545
- var Target$j = function Target(_ref) {
553
+ var Target$k = function Target(_ref) {
546
554
  var _errors$actions, _touched$actions, _selectedField$separa;
547
555
  var index = _ref.index,
548
556
  name = _ref.name,
@@ -606,7 +614,7 @@ var LongTextField = function LongTextField(_ref2) {
606
614
  onFocus: setFieldActive
607
615
  });
608
616
  };
609
- LongTextField.Target = Target$j;
617
+ LongTextField.Target = Target$k;
610
618
 
611
619
  var CUSTOM_HEADERS_INITIAL_VALUE = {
612
620
  key: "",
@@ -1055,7 +1063,7 @@ var useResetSaveAsTemplateOnHide = function useResetSaveAsTemplateOnHide(name, s
1055
1063
  return isVisible;
1056
1064
  };
1057
1065
 
1058
- var Target$i = function Target(_ref) {
1066
+ var Target$j = function Target(_ref) {
1059
1067
  var _selectedField$separa;
1060
1068
  var selectedField = _ref.selectedField,
1061
1069
  name = _ref.name,
@@ -1178,9 +1186,9 @@ var ApiFields = function ApiFields(_ref2) {
1178
1186
  })]
1179
1187
  });
1180
1188
  };
1181
- ApiFields.Target = Target$i;
1189
+ ApiFields.Target = Target$j;
1182
1190
 
1183
- var Target$h = function Target(_ref) {
1191
+ var Target$i = function Target(_ref) {
1184
1192
  var _selectedField$separa;
1185
1193
  var selectedField = _ref.selectedField,
1186
1194
  name = _ref.name,
@@ -1237,9 +1245,9 @@ var CustomAction = function CustomAction(_ref2) {
1237
1245
  setFieldActive: setFieldActive
1238
1246
  });
1239
1247
  };
1240
- CustomAction.Target = Target$h;
1248
+ CustomAction.Target = Target$i;
1241
1249
 
1242
- var Target$g = function Target(_ref) {
1250
+ var Target$h = function Target(_ref) {
1243
1251
  var _field$value, _selectedField$separa;
1244
1252
  var name = _ref.name,
1245
1253
  selectedField = _ref.selectedField,
@@ -1319,7 +1327,7 @@ var DateField$1 = function DateField(_ref2) {
1319
1327
  }
1320
1328
  });
1321
1329
  };
1322
- DateField$1.Target = Target$g;
1330
+ DateField$1.Target = Target$h;
1323
1331
 
1324
1332
  var EmailIdFields = function EmailIdFields(_ref) {
1325
1333
  var initialFocusRef = _ref.initialFocusRef,
@@ -1396,7 +1404,7 @@ var EditorAction = function EditorAction(_ref) {
1396
1404
  var _excluded$d = ["dropdownOptions", "name", "selectedField", "shouldAutoFocus", "className", "required"];
1397
1405
  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; }
1398
1406
  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; }
1399
- var Target$f = function Target(_ref) {
1407
+ var Target$g = function Target(_ref) {
1400
1408
  var _selectedOption$label;
1401
1409
  var dropdownOptions = _ref.dropdownOptions,
1402
1410
  name = _ref.name,
@@ -1501,11 +1509,11 @@ var SelectField$2 = function SelectField(_ref2) {
1501
1509
  onFocus: setFieldActive
1502
1510
  }));
1503
1511
  };
1504
- SelectField$2.Target = Target$f;
1512
+ SelectField$2.Target = Target$g;
1505
1513
 
1506
1514
  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; }
1507
1515
  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; }
1508
- var Target$e = function Target(_ref) {
1516
+ var Target$f = function Target(_ref) {
1509
1517
  var selectedField = _ref.selectedField,
1510
1518
  _ref$separatorIndex = _ref.separatorIndex,
1511
1519
  separatorIndex = _ref$separatorIndex === void 0 ? 0 : _ref$separatorIndex,
@@ -1659,9 +1667,9 @@ var EmailFields = function EmailFields(_ref2) {
1659
1667
  })]
1660
1668
  });
1661
1669
  };
1662
- EmailFields.Target = Target$e;
1670
+ EmailFields.Target = Target$f;
1663
1671
 
1664
- var Target$d = function Target(_ref) {
1672
+ var Target$e = function Target(_ref) {
1665
1673
  var _field$value, _selectedField$separa;
1666
1674
  var name = _ref.name,
1667
1675
  selectedField = _ref.selectedField,
@@ -1693,6 +1701,7 @@ var Target$d = function Target(_ref) {
1693
1701
  children: separator
1694
1702
  }), /*#__PURE__*/jsxRuntime.jsx(Button, {
1695
1703
  label: label,
1704
+ "data-cy": "action-value-input-button",
1696
1705
  style: "link",
1697
1706
  className: classNames("neeto-ui-text-gray-800 neeto-ui-font-semibold underline", {
1698
1707
  "neeto-ui-text-accent-800": isFieldActive,
@@ -1726,7 +1735,7 @@ var Input = function Input(_ref2) {
1726
1735
  onFocus: setFieldActive
1727
1736
  });
1728
1737
  };
1729
- Input.Target = Target$d;
1738
+ Input.Target = Target$e;
1730
1739
 
1731
1740
  var useOnClickOutside = function useOnClickOutside(ref, handler) {
1732
1741
  react.useEffect(function () {
@@ -1833,7 +1842,7 @@ var InlineInput = /*#__PURE__*/react.forwardRef(function (props, ref) {
1833
1842
  });
1834
1843
  InlineInput.displayName = "InlineInput";
1835
1844
 
1836
- var Target$c = function Target(_ref) {
1845
+ var Target$d = function Target(_ref) {
1837
1846
  var _selectedField$separa;
1838
1847
  var name = _ref.name,
1839
1848
  selectedField = _ref.selectedField,
@@ -1952,9 +1961,9 @@ var ListField = function ListField(_ref2) {
1952
1961
  })
1953
1962
  });
1954
1963
  };
1955
- ListField.Target = Target$c;
1964
+ ListField.Target = Target$d;
1956
1965
 
1957
- var Target$b = function Target(_ref) {
1966
+ var Target$c = function Target(_ref) {
1958
1967
  var _selectedField$separa, _selectedField$placeh;
1959
1968
  var _ref$dropdownOptions = _ref.dropdownOptions,
1960
1969
  dropdownOptions = _ref$dropdownOptions === void 0 ? [] : _ref$dropdownOptions,
@@ -2081,9 +2090,9 @@ var MultiSelect$1 = function MultiSelect(_ref2) {
2081
2090
  })
2082
2091
  });
2083
2092
  };
2084
- MultiSelect$1.Target = Target$b;
2093
+ MultiSelect$1.Target = Target$c;
2085
2094
 
2086
- var Target$a = function Target(_ref) {
2095
+ var Target$b = function Target(_ref) {
2087
2096
  var _selectedField$separa, _selectedField$placeh;
2088
2097
  var _ref$dropdownOptions = _ref.dropdownOptions,
2089
2098
  dropdownOptions = _ref$dropdownOptions === void 0 ? [] : _ref$dropdownOptions,
@@ -2217,9 +2226,9 @@ var MultiSelectCheckbox$1 = function MultiSelectCheckbox(_ref2) {
2217
2226
  })]
2218
2227
  });
2219
2228
  };
2220
- MultiSelectCheckbox$1.Target = Target$a;
2229
+ MultiSelectCheckbox$1.Target = Target$b;
2221
2230
 
2222
- var Target$9 = function Target(_ref) {
2231
+ var Target$a = function Target(_ref) {
2223
2232
  var _selectedField$placeh, _selectedField$separa;
2224
2233
  var name = _ref.name,
2225
2234
  selectedField = _ref.selectedField,
@@ -2286,9 +2295,9 @@ var NoteField = function NoteField(_ref2) {
2286
2295
  onFocus: setFieldActive
2287
2296
  });
2288
2297
  };
2289
- NoteField.Target = Target$9;
2298
+ NoteField.Target = Target$a;
2290
2299
 
2291
- var Target$8 = function Target(_ref) {
2300
+ var Target$9 = function Target(_ref) {
2292
2301
  var _selectedOption$label;
2293
2302
  var options = _ref.options,
2294
2303
  name = _ref.name,
@@ -2408,7 +2417,7 @@ var RadioField$2 = function RadioField(_ref2) {
2408
2417
  onFocus: setFieldActive
2409
2418
  });
2410
2419
  };
2411
- RadioField$2.Target = Target$8;
2420
+ RadioField$2.Target = Target$9;
2412
2421
 
2413
2422
  var removeDuplicateErrorMessages = ramda.pipe(ramda.filter(ramda.isNotNil), ramda.uniq, ramda.join(ERROR_MESSAGE_DELIMITER));
2414
2423
  var dasherize = function dasherize(input) {
@@ -2669,7 +2678,7 @@ var PhoneNumberField = function PhoneNumberField(_ref) {
2669
2678
 
2670
2679
  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; }
2671
2680
  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; }
2672
- var Target$7 = function Target(_ref) {
2681
+ var Target$8 = function Target(_ref) {
2673
2682
  var name = _ref.name,
2674
2683
  _ref$separatorIndex = _ref.separatorIndex,
2675
2684
  separatorIndex = _ref$separatorIndex === void 0 ? 0 : _ref$separatorIndex,
@@ -2809,7 +2818,7 @@ var SmsFields = function SmsFields(_ref2) {
2809
2818
  })]
2810
2819
  });
2811
2820
  };
2812
- SmsFields.Target = Target$7;
2821
+ SmsFields.Target = Target$8;
2813
2822
 
2814
2823
  var ActionSubItem = function ActionSubItem(_ref) {
2815
2824
  var name = _ref.name,
@@ -3231,6 +3240,7 @@ var ActionSubItemPanel = function ActionSubItemPanel() {
3231
3240
  className: "flex items-center space-x-2",
3232
3241
  children: [/*#__PURE__*/jsxRuntime.jsx(Button, {
3233
3242
  className: "flex-shrink-0",
3243
+ "data-cy": "back-button",
3234
3244
  icon: Left,
3235
3245
  size: "medium",
3236
3246
  style: "text",
@@ -3248,10 +3258,12 @@ var ActionSubItemPanel = function ActionSubItemPanel() {
3248
3258
  }));
3249
3259
  }
3250
3260
  }), /*#__PURE__*/jsxRuntime.jsx(Typography, {
3261
+ "data-cy": "action-sub-item-title",
3251
3262
  style: "h3",
3252
3263
  children: header
3253
3264
  })]
3254
3265
  }), /*#__PURE__*/jsxRuntime.jsx(Typography, {
3266
+ "data-cy": "action-sub-item-description",
3255
3267
  style: "body2",
3256
3268
  children: t("neetoRules.form.addActionSubItemDescription")
3257
3269
  })]
@@ -3270,6 +3282,7 @@ var ActionSubItemPanel = function ActionSubItemPanel() {
3270
3282
  })]
3271
3283
  }), /*#__PURE__*/jsxRuntime.jsx(Panel.Footer, {
3272
3284
  children: /*#__PURE__*/jsxRuntime.jsx(Button, {
3285
+ "data-cy": "continue-button",
3273
3286
  onClick: handleContinue,
3274
3287
  children: t("neetoRules.buttons.continue")
3275
3288
  })
@@ -3277,20 +3290,31 @@ var ActionSubItemPanel = function ActionSubItemPanel() {
3277
3290
  });
3278
3291
  };
3279
3292
 
3280
- var Target$6 = function Target(_ref) {
3293
+ var Target$7 = function Target(_ref) {
3281
3294
  var name = _ref.name,
3282
3295
  _ref$onClick = _ref.onClick,
3283
3296
  _onClick = _ref$onClick === void 0 ? neetoCist.noop : _ref$onClick;
3284
3297
  var _useTranslation = reactI18next.useTranslation(),
3285
3298
  t = _useTranslation.t;
3286
- var _useField = formik.useField(name),
3299
+ var _useFormikContext = formik.useFormikContext(),
3300
+ values = _useFormikContext.values;
3301
+ var _useField = formik.useField("".concat(name, ".value")),
3287
3302
  _useField2 = _slicedToArray(_useField, 2),
3288
3303
  field = _useField2[0],
3289
3304
  meta = _useField2[1];
3290
- var _useActiveField = useActiveField(name),
3305
+ var _useActiveField = useActiveField("".concat(name, ".value")),
3291
3306
  isFieldActive = _useActiveField.isFieldActive,
3292
3307
  setFieldActive = _useActiveField.setFieldActive;
3293
- var label = field.value || t("neetoRules.form.selectDate");
3308
+ var format = useUtilityStore.dotPath("".concat(name, ".format"), values);
3309
+ var type = useUtilityStore.dotPath("".concat(name, ".type"), values);
3310
+ var timezone = useUtilityStore.dotPath("".concat(name, ".timezone"), values);
3311
+ var defaultLabel = t("neetoRules.form.selectDate");
3312
+ var label = field.value ? useUtilityStore.getDateTimeFormattedValue({
3313
+ date: field.value,
3314
+ format: format,
3315
+ type: type,
3316
+ timezone: timezone
3317
+ }) : defaultLabel.toLowerCase();
3294
3318
  var isFieldInvalid = meta.touched && meta.error;
3295
3319
  return /*#__PURE__*/jsxRuntime.jsx(Button, {
3296
3320
  label: label,
@@ -3314,35 +3338,53 @@ var DateField = function DateField(_ref2) {
3314
3338
  required = _ref2$required === void 0 ? false : _ref2$required;
3315
3339
  var _useTranslation2 = reactI18next.useTranslation(),
3316
3340
  t = _useTranslation2.t;
3317
- var _useField3 = formik.useField(name),
3341
+ var _useFormikContext2 = formik.useFormikContext(),
3342
+ values = _useFormikContext2.values,
3343
+ setFieldValue = _useFormikContext2.setFieldValue;
3344
+ var _useField3 = formik.useField("".concat(name, ".value")),
3318
3345
  _useField4 = _slicedToArray(_useField3, 3),
3319
3346
  field = _useField4[0],
3320
3347
  meta = _useField4[1],
3321
3348
  _useField4$ = _useField4[2],
3322
3349
  setValue = _useField4$.setValue,
3323
3350
  setTouched = _useField4$.setTouched;
3324
- var _useActiveField2 = useActiveField(name, {
3351
+ var _useActiveField2 = useActiveField("".concat(name, ".value"), {
3325
3352
  shouldAutoFocus: shouldAutoFocus
3326
3353
  }),
3327
3354
  ref = _useActiveField2.ref,
3328
3355
  setFieldActive = _useActiveField2.setFieldActive;
3356
+ var format = useUtilityStore.dotPath("".concat(name, ".format"), values);
3357
+ var type = useUtilityStore.dotPath("".concat(name, ".type"), values);
3358
+ var timezone = useUtilityStore.dotPath("".concat(name, ".timezone"), values);
3359
+ var value = useUtilityStore.getDateTimeValue({
3360
+ date: field.value,
3361
+ format: format,
3362
+ type: type,
3363
+ timezone: timezone
3364
+ });
3329
3365
  var handleOnChange = function handleOnChange(date) {
3330
- var format = selectedField.showTime ? "YYYY-MM-DD HH:mm:ss" : "YYYY-MM-DD";
3366
+ var _globalProps$user;
3367
+ var type = selectedField.showTime ? useUtilityStore.DATE_TIME_TYPES.datetime : useUtilityStore.DATE_TIME_TYPES.date;
3368
+ var format = selectedField.showTime ? useUtilityStore.DATE_TIME_FORMAT : useUtilityStore.DATE_FORMAT;
3331
3369
 
3332
3370
  // This is the format being stored in database as of now, standard doesn't include this format
3333
3371
  // eslint-disable-next-line @bigbinary/neeto/use-standard-date-time-formats
3334
3372
  setValue(date ? utils.dayjs(date).format(format) : "");
3373
+ setFieldValue("".concat(name, ".type"), type);
3374
+ setFieldValue("".concat(name, ".format"), format);
3375
+ setFieldValue("".concat(name, ".timezone"), initializers.globalProps === null || initializers.globalProps === void 0 || (_globalProps$user = initializers.globalProps.user) === null || _globalProps$user === void 0 ? void 0 : _globalProps$user.timeZone);
3335
3376
  };
3336
3377
  return /*#__PURE__*/jsxRuntime.jsx(DatePicker, {
3337
3378
  ref: ref,
3338
3379
  required: required,
3339
- defaultValue: field.value,
3380
+ defaultValue: value,
3340
3381
  error: meta.touched && meta.error,
3341
3382
  label: t("neetoRules.form.selectDate"),
3342
3383
  name: "".concat(name, ".value"),
3343
3384
  showTime: selectedField.showTime,
3385
+ timeFormat: "HH:mm",
3344
3386
  type: "date",
3345
- value: field.value || "",
3387
+ value: value || "",
3346
3388
  onBlur: function onBlur() {
3347
3389
  return setTouched(true);
3348
3390
  },
@@ -3350,9 +3392,9 @@ var DateField = function DateField(_ref2) {
3350
3392
  onFocus: setFieldActive
3351
3393
  });
3352
3394
  };
3353
- DateField.Target = Target$6;
3395
+ DateField.Target = Target$7;
3354
3396
 
3355
- var Target$5 = function Target(_ref) {
3397
+ var Target$6 = function Target(_ref) {
3356
3398
  var _field$value;
3357
3399
  var name = _ref.name,
3358
3400
  _ref$onClick = _ref.onClick,
@@ -3371,6 +3413,7 @@ var Target$5 = function Target(_ref) {
3371
3413
  var label = valueTerm !== null && valueTerm !== void 0 && valueTerm.trim().length ? valueTerm : t("neetoRules.form.addValue");
3372
3414
  return /*#__PURE__*/jsxRuntime.jsx(Button, {
3373
3415
  label: label,
3416
+ "data-cy": "condition-value-input-button",
3374
3417
  style: "link",
3375
3418
  className: classNames("neeto-ui-text-gray-800 neeto-ui-font-semibold underline", {
3376
3419
  "neeto-ui-text-accent-800": isFieldActive,
@@ -3412,12 +3455,12 @@ var InputField$1 = function InputField(_ref2) {
3412
3455
  }
3413
3456
  });
3414
3457
  };
3415
- InputField$1.Target = Target$5;
3458
+ InputField$1.Target = Target$6;
3416
3459
 
3417
3460
  var _excluded$9 = ["name", "dropdownOptions", "shouldAutoFocus", "required"];
3418
3461
  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; }
3419
3462
  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; }
3420
- var Target$4 = function Target(_ref) {
3463
+ var Target$5 = function Target(_ref) {
3421
3464
  var name = _ref.name,
3422
3465
  dropdownOptions = _ref.dropdownOptions,
3423
3466
  _ref$onClick = _ref.onClick,
@@ -3520,12 +3563,12 @@ var MultiSelect = function MultiSelect(_ref2) {
3520
3563
  }, otherProps))
3521
3564
  });
3522
3565
  };
3523
- MultiSelect.Target = Target$4;
3566
+ MultiSelect.Target = Target$5;
3524
3567
 
3525
3568
  var _excluded$8 = ["name", "dropdownOptions", "shouldAutoFocus", "required"];
3526
3569
  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; }
3527
3570
  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; }
3528
- var Target$3 = function Target(_ref) {
3571
+ var Target$4 = function Target(_ref) {
3529
3572
  var name = _ref.name,
3530
3573
  dropdownOptions = _ref.dropdownOptions,
3531
3574
  _ref$onClick = _ref.onClick,
@@ -3642,7 +3685,7 @@ var MultiSelectCheckbox = function MultiSelectCheckbox(_ref2) {
3642
3685
  })]
3643
3686
  });
3644
3687
  };
3645
- MultiSelectCheckbox.Target = Target$3;
3688
+ MultiSelectCheckbox.Target = Target$4;
3646
3689
 
3647
3690
  var getFieldDetails = function getFieldDetails(fieldValue) {
3648
3691
  var conditionOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
@@ -3677,7 +3720,7 @@ var getLogicalOperatorOptions = function getLogicalOperatorOptions(isWithEvents)
3677
3720
  }];
3678
3721
  };
3679
3722
 
3680
- var Target$2 = function Target(_ref) {
3723
+ var Target$3 = function Target(_ref) {
3681
3724
  var name = _ref.name,
3682
3725
  _ref$onClick = _ref.onClick,
3683
3726
  _onClick = _ref$onClick === void 0 ? neetoCist.noop : _ref$onClick;
@@ -3773,13 +3816,13 @@ var MultiSelectCreate = function MultiSelectCreate(_ref2) {
3773
3816
  onFocus: setFieldActive
3774
3817
  });
3775
3818
  };
3776
- MultiSelectCreate.Target = Target$2;
3819
+ MultiSelectCreate.Target = Target$3;
3777
3820
 
3778
3821
  var _excluded$7 = ["name", "options", "placeholder", "onClick"],
3779
3822
  _excluded2 = ["name", "options", "handleOnChange", "shouldAutoFocus", "showLabel", "required"];
3780
3823
  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; }
3781
3824
  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; }
3782
- var Target$1 = function Target(_ref) {
3825
+ var Target$2 = function Target(_ref) {
3783
3826
  var _selectedOption$label;
3784
3827
  var name = _ref.name,
3785
3828
  options = _ref.options,
@@ -3876,9 +3919,9 @@ var RadioField$1 = function RadioField(_ref2) {
3876
3919
  })
3877
3920
  }));
3878
3921
  };
3879
- RadioField$1.Target = Target$1;
3922
+ RadioField$1.Target = Target$2;
3880
3923
 
3881
- var Target = function Target(_ref) {
3924
+ var Target$1 = function Target(_ref) {
3882
3925
  var _selectedOption$label;
3883
3926
  var name = _ref.name,
3884
3927
  dropdownOptions = _ref.dropdownOptions,
@@ -3906,7 +3949,7 @@ var Target = function Target(_ref) {
3906
3949
  };
3907
3950
  }, [field.value, dropdownOptions]);
3908
3951
  return /*#__PURE__*/jsxRuntime.jsx(Button, {
3909
- "data-cy": "condition-value-dropdown-button",
3952
+ "data-cy": "condition-verb-dropdown-button",
3910
3953
  label: selectedOption === null || selectedOption === void 0 || (_selectedOption$label = selectedOption.label) === null || _selectedOption$label === void 0 ? void 0 : _selectedOption$label.toLowerCase(),
3911
3954
  style: "link",
3912
3955
  className: classNames("neeto-ui-text-gray-800 neeto-ui-font-semibold underline", {
@@ -3967,7 +4010,105 @@ var SelectField$1 = function SelectField(_ref2) {
3967
4010
  onFocus: setFieldActive
3968
4011
  });
3969
4012
  };
3970
- SelectField$1.Target = Target;
4013
+ SelectField$1.Target = Target$1;
4014
+
4015
+ var Target = function Target(_ref) {
4016
+ var name = _ref.name,
4017
+ _ref$onClick = _ref.onClick,
4018
+ _onClick = _ref$onClick === void 0 ? neetoCist.noop : _ref$onClick;
4019
+ var _useTranslation = reactI18next.useTranslation(),
4020
+ t = _useTranslation.t;
4021
+ var _useFormikContext = formik.useFormikContext(),
4022
+ values = _useFormikContext.values;
4023
+ var _useField = formik.useField("".concat(name, ".value")),
4024
+ _useField2 = _slicedToArray(_useField, 2),
4025
+ field = _useField2[0],
4026
+ meta = _useField2[1];
4027
+ var _useActiveField = useActiveField("".concat(name, ".value")),
4028
+ isFieldActive = _useActiveField.isFieldActive,
4029
+ setFieldActive = _useActiveField.setFieldActive;
4030
+ var format = useUtilityStore.dotPath("".concat(name, ".format"), values);
4031
+ var type = useUtilityStore.dotPath("".concat(name, ".type"), values);
4032
+ var timezone = useUtilityStore.dotPath("".concat(name, ".timezone"), values);
4033
+ var defaultLabel = t("neetoRules.form.selectTime");
4034
+ var label = field.value ? useUtilityStore.getDateTimeFormattedValue({
4035
+ date: field.value,
4036
+ format: format,
4037
+ type: type,
4038
+ timezone: timezone
4039
+ }) : defaultLabel.toLowerCase();
4040
+ var isFieldInvalid = meta.touched && meta.error;
4041
+ return /*#__PURE__*/jsxRuntime.jsx(Button, {
4042
+ label: label,
4043
+ style: "link",
4044
+ className: classNames("neeto-ui-text-gray-800 neeto-ui-font-semibold underline", {
4045
+ "neeto-ui-text-accent-800": isFieldActive,
4046
+ "neeto-ui-text-error-500": isFieldInvalid && !isFieldActive
4047
+ }),
4048
+ onClick: function onClick() {
4049
+ _onClick();
4050
+ setFieldActive();
4051
+ }
4052
+ });
4053
+ };
4054
+ var TimeField = function TimeField(_ref2) {
4055
+ var name = _ref2.name,
4056
+ _ref2$shouldAutoFocus = _ref2.shouldAutoFocus,
4057
+ shouldAutoFocus = _ref2$shouldAutoFocus === void 0 ? false : _ref2$shouldAutoFocus,
4058
+ _ref2$required = _ref2.required,
4059
+ required = _ref2$required === void 0 ? false : _ref2$required;
4060
+ var _useTranslation2 = reactI18next.useTranslation(),
4061
+ t = _useTranslation2.t;
4062
+ var _useFormikContext2 = formik.useFormikContext(),
4063
+ values = _useFormikContext2.values,
4064
+ setFieldValue = _useFormikContext2.setFieldValue;
4065
+ var _useField3 = formik.useField("".concat(name, ".value")),
4066
+ _useField4 = _slicedToArray(_useField3, 3),
4067
+ field = _useField4[0],
4068
+ meta = _useField4[1],
4069
+ _useField4$ = _useField4[2],
4070
+ setValue = _useField4$.setValue,
4071
+ setTouched = _useField4$.setTouched;
4072
+ var _useActiveField2 = useActiveField("".concat(name, ".value"), {
4073
+ shouldAutoFocus: shouldAutoFocus
4074
+ }),
4075
+ ref = _useActiveField2.ref,
4076
+ setFieldActive = _useActiveField2.setFieldActive;
4077
+ var format = useUtilityStore.dotPath("".concat(name, ".format"), values);
4078
+ var type = useUtilityStore.dotPath("".concat(name, ".type"), values);
4079
+ var timezone = useUtilityStore.dotPath("".concat(name, ".timezone"), values);
4080
+ var value = useUtilityStore.getDateTimeValue({
4081
+ date: field.value,
4082
+ format: format,
4083
+ type: type,
4084
+ timezone: timezone
4085
+ });
4086
+ var handleOnChange = function handleOnChange(time) {
4087
+ var _globalProps$user;
4088
+ // This is the format being stored in database as of now, standard doesn't include this format
4089
+ // eslint-disable-next-line @bigbinary/neeto/use-standard-date-time-formats
4090
+ setValue(time ? utils.dayjs(time).format(useUtilityStore.TIME_FORMAT) : "");
4091
+ setFieldValue("".concat(name, ".type"), useUtilityStore.DATE_TIME_TYPES.time);
4092
+ setFieldValue("".concat(name, ".format"), useUtilityStore.TIME_FORMAT);
4093
+ setFieldValue("".concat(name, ".timezone"), initializers.globalProps === null || initializers.globalProps === void 0 || (_globalProps$user = initializers.globalProps.user) === null || _globalProps$user === void 0 ? void 0 : _globalProps$user.timeZone);
4094
+ };
4095
+ return /*#__PURE__*/jsxRuntime.jsx(TimePicker, {
4096
+ ref: ref,
4097
+ required: required,
4098
+ defaultValue: value,
4099
+ error: meta.touched && meta.error,
4100
+ format: "HH:mm",
4101
+ label: t("neetoRules.form.selectTime"),
4102
+ name: "".concat(name, ".value"),
4103
+ value: value || "",
4104
+ onBlur: function onBlur() {
4105
+ return setTouched(true);
4106
+ },
4107
+ onChange: handleOnChange,
4108
+ onFocus: setFieldActive
4109
+ });
4110
+ };
4111
+ TimeField.Target = Target;
3971
4112
 
3972
4113
  var FieldPanel = function FieldPanel() {
3973
4114
  var _findBy;
@@ -4018,9 +4159,11 @@ var FieldPanel = function FieldPanel() {
4018
4159
  children: /*#__PURE__*/jsxRuntime.jsxs("div", {
4019
4160
  className: "flex flex-col space-y-2",
4020
4161
  children: [/*#__PURE__*/jsxRuntime.jsxs(Typography, {
4162
+ "data-cy": "condition-title",
4021
4163
  style: "h3",
4022
4164
  children: [index ? logicalOperatorLabel : conditionLabel, "..."]
4023
4165
  }), /*#__PURE__*/jsxRuntime.jsx(Typography, {
4166
+ "data-cy": "condition-description",
4024
4167
  style: "body2",
4025
4168
  children: t("neetoRules.form.addConditionDescription")
4026
4169
  })]
@@ -4036,6 +4179,7 @@ var FieldPanel = function FieldPanel() {
4036
4179
  })
4037
4180
  }), /*#__PURE__*/jsxRuntime.jsx(Panel.Footer, {
4038
4181
  children: /*#__PURE__*/jsxRuntime.jsx(Button, {
4182
+ "data-cy": "continue-button",
4039
4183
  onClick: handleContinue,
4040
4184
  children: t("neetoRules.buttons.continue")
4041
4185
  })
@@ -4143,14 +4287,23 @@ var ValueField = function ValueField(_ref) {
4143
4287
  }
4144
4288
  if (fieldType === constants.CONDITION_VALUE_TYPES.date) {
4145
4289
  return isTarget ? /*#__PURE__*/jsxRuntime.jsx(DateField.Target, {
4146
- onClick: onClick,
4147
- name: "".concat(name, ".value")
4290
+ name: name,
4291
+ onClick: onClick
4148
4292
  }) : /*#__PURE__*/jsxRuntime.jsx(DateField, {
4293
+ name: name,
4149
4294
  required: true,
4150
- name: "".concat(name, ".value"),
4151
4295
  selectedField: field
4152
4296
  });
4153
4297
  }
4298
+ if (fieldType === constants.CONDITION_VALUE_TYPES.time) {
4299
+ return isTarget ? /*#__PURE__*/jsxRuntime.jsx(TimeField.Target, {
4300
+ name: name,
4301
+ onClick: onClick
4302
+ }) : /*#__PURE__*/jsxRuntime.jsx(TimeField, {
4303
+ name: name,
4304
+ required: true
4305
+ });
4306
+ }
4154
4307
  return null;
4155
4308
  };
4156
4309
 
@@ -4244,10 +4397,12 @@ var VerbAndValuePanel = function VerbAndValuePanel() {
4244
4397
  }));
4245
4398
  }
4246
4399
  }), /*#__PURE__*/jsxRuntime.jsxs(Typography, {
4400
+ "data-cy": "condition-verb-and-value-title",
4247
4401
  style: "h3",
4248
4402
  children: [index ? logicalOperatorLabel : conditionLabel, " ", fieldLabel, "..."]
4249
4403
  })]
4250
4404
  }), /*#__PURE__*/jsxRuntime.jsx(Typography, {
4405
+ "data-cy": "condition-verb-and-value-description",
4251
4406
  style: "body2",
4252
4407
  children: t("neetoRules.form.addConditionVerbAndValueDescription")
4253
4408
  })]
@@ -4272,6 +4427,7 @@ var VerbAndValuePanel = function VerbAndValuePanel() {
4272
4427
  })
4273
4428
  }), /*#__PURE__*/jsxRuntime.jsx(Panel.Footer, {
4274
4429
  children: /*#__PURE__*/jsxRuntime.jsx(Button, {
4430
+ "data-cy": "continue-button",
4275
4431
  onClick: handleContinue,
4276
4432
  children: t("neetoRules.buttons.continue")
4277
4433
  })
@@ -4514,9 +4670,11 @@ var EventsPanel = function EventsPanel() {
4514
4670
  children: /*#__PURE__*/jsxRuntime.jsxs("div", {
4515
4671
  className: "flex flex-col space-y-2",
4516
4672
  children: [/*#__PURE__*/jsxRuntime.jsxs(Typography, {
4673
+ "data-cy": "event-title",
4517
4674
  style: "h3",
4518
4675
  children: [t("neetoRules.common.when"), "..."]
4519
4676
  }), /*#__PURE__*/jsxRuntime.jsx(Typography, {
4677
+ "data-cy": "event-description",
4520
4678
  style: "body2",
4521
4679
  children: t("neetoRules.form.addEventDescription")
4522
4680
  })]
@@ -4548,6 +4706,7 @@ var EventsPanel = function EventsPanel() {
4548
4706
  })
4549
4707
  }), /*#__PURE__*/jsxRuntime.jsx(Panel.Footer, {
4550
4708
  children: /*#__PURE__*/jsxRuntime.jsx(Button, {
4709
+ "data-cy": "continue-button",
4551
4710
  onClick: handleContinue,
4552
4711
  children: t("neetoRules.buttons.continue")
4553
4712
  })
@@ -4620,6 +4779,7 @@ var PerformerPanel = function PerformerPanel() {
4620
4779
  className: "flex items-center space-x-2",
4621
4780
  children: [/*#__PURE__*/jsxRuntime.jsx(Button, {
4622
4781
  className: "flex-shrink-0",
4782
+ "data-cy": "back-button",
4623
4783
  icon: Left,
4624
4784
  size: "medium",
4625
4785
  style: "text",
@@ -4636,10 +4796,12 @@ var PerformerPanel = function PerformerPanel() {
4636
4796
  }));
4637
4797
  }
4638
4798
  }), /*#__PURE__*/jsxRuntime.jsxs(Typography, {
4799
+ "data-cy": "performer-title",
4639
4800
  style: "h3",
4640
4801
  children: [t("neetoRules.form.actionTriggeredBy"), "..."]
4641
4802
  })]
4642
4803
  }), /*#__PURE__*/jsxRuntime.jsx(Typography, {
4804
+ "data-cy": "performer-description",
4643
4805
  style: "body2",
4644
4806
  children: t("neetoRules.form.addPerformerDescription")
4645
4807
  })]
@@ -4666,6 +4828,7 @@ var PerformerPanel = function PerformerPanel() {
4666
4828
  })
4667
4829
  }), /*#__PURE__*/jsxRuntime.jsx(Panel.Footer, {
4668
4830
  children: /*#__PURE__*/jsxRuntime.jsx(Button, {
4831
+ "data-cy": "continue-button",
4669
4832
  onClick: handleContinue,
4670
4833
  children: t("neetoRules.buttons.continue")
4671
4834
  })