@bigbinary/neeto-rules-frontend 2.7.6 → 2.7.8

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 (68) hide show
  1. package/app/javascript/src/translations/ar.json +6 -3
  2. package/app/javascript/src/translations/bg.json +6 -3
  3. package/app/javascript/src/translations/ca.json +6 -3
  4. package/app/javascript/src/translations/cs.json +6 -3
  5. package/app/javascript/src/translations/da.json +6 -3
  6. package/app/javascript/src/translations/de.json +6 -3
  7. package/app/javascript/src/translations/en.json +4 -1
  8. package/app/javascript/src/translations/es-MX.json +6 -3
  9. package/app/javascript/src/translations/es.json +6 -3
  10. package/app/javascript/src/translations/et.json +6 -3
  11. package/app/javascript/src/translations/fi.json +6 -3
  12. package/app/javascript/src/translations/fil.json +6 -3
  13. package/app/javascript/src/translations/fr.json +6 -3
  14. package/app/javascript/src/translations/he.json +6 -3
  15. package/app/javascript/src/translations/hi.json +6 -3
  16. package/app/javascript/src/translations/hr.json +6 -3
  17. package/app/javascript/src/translations/hu.json +6 -3
  18. package/app/javascript/src/translations/id.json +6 -3
  19. package/app/javascript/src/translations/it.json +6 -3
  20. package/app/javascript/src/translations/ja.json +6 -3
  21. package/app/javascript/src/translations/ko.json +6 -3
  22. package/app/javascript/src/translations/nl.json +6 -3
  23. package/app/javascript/src/translations/pl.json +6 -3
  24. package/app/javascript/src/translations/pt-BR.json +6 -3
  25. package/app/javascript/src/translations/pt.json +6 -3
  26. package/app/javascript/src/translations/ro.json +6 -3
  27. package/app/javascript/src/translations/ru.json +6 -3
  28. package/app/javascript/src/translations/sk.json +6 -3
  29. package/app/javascript/src/translations/sl.json +6 -3
  30. package/app/javascript/src/translations/sv.json +6 -3
  31. package/app/javascript/src/translations/th.json +6 -3
  32. package/app/javascript/src/translations/tr.json +6 -3
  33. package/app/javascript/src/translations/uk.json +6 -3
  34. package/app/javascript/src/translations/vi.json +6 -3
  35. package/app/javascript/src/translations/zh-CN.json +6 -3
  36. package/app/javascript/src/translations/zh-TW.json +6 -3
  37. package/dist/.ready +1 -1
  38. package/dist/NeetoRulesBuilder.js +168 -101
  39. package/dist/NeetoRulesBuilder.js.map +1 -1
  40. package/dist/NeetoRulesForm.js +2 -2
  41. package/dist/cjs/NeetoRulesBuilder.js +187 -101
  42. package/dist/cjs/NeetoRulesBuilder.js.map +1 -1
  43. package/dist/cjs/NeetoRulesForm.js +2 -2
  44. package/dist/cjs/index.js +2 -2
  45. package/dist/cjs/v2/NeetoRulesBuilder.js +2 -2
  46. package/dist/cjs/v2/NeetoRulesForm.js +2 -2
  47. package/dist/cjs/v2/index.js +2 -2
  48. package/dist/{index-DFg6NbA-.js → index-7Oqmz32n.js} +2 -2
  49. package/dist/{index-DFg6NbA-.js.map → index-7Oqmz32n.js.map} +1 -1
  50. package/dist/{index-BTE3mSY7.js → index-BL9TdE9q.js} +2 -2
  51. package/dist/{index-BTE3mSY7.js.map → index-BL9TdE9q.js.map} +1 -1
  52. package/dist/{index-qw90tLi9.js → index-C9u2JDEa.js} +41 -8
  53. package/dist/index-C9u2JDEa.js.map +1 -0
  54. package/dist/{index-Df_k2p4V.js → index-Co-qUEtS.js} +42 -7
  55. package/dist/index-Co-qUEtS.js.map +1 -0
  56. package/dist/index.js +2 -2
  57. package/dist/keyboardShortcuts-DcvmDX_K.js +88 -0
  58. package/dist/{keyboardShortcuts-BvIE6AHg.js.map → keyboardShortcuts-DcvmDX_K.js.map} +1 -1
  59. package/dist/keyboardShortcuts-Dg7lUOmj.js +92 -0
  60. package/dist/{keyboardShortcuts-NxcrOxzv.js.map → keyboardShortcuts-Dg7lUOmj.js.map} +1 -1
  61. package/dist/v2/NeetoRulesBuilder.js +2 -2
  62. package/dist/v2/NeetoRulesForm.js +2 -2
  63. package/dist/v2/index.js +2 -2
  64. package/package.json +1 -1
  65. package/dist/index-Df_k2p4V.js.map +0 -1
  66. package/dist/index-qw90tLi9.js.map +0 -1
  67. package/dist/keyboardShortcuts-BvIE6AHg.js +0 -88
  68. package/dist/keyboardShortcuts-NxcrOxzv.js +0 -92
@@ -6,7 +6,7 @@ import _typeof from '@babel/runtime/helpers/typeof';
6
6
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
7
7
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
8
8
  import { b as useUpdateAutomationRule, e as useFetchNameGenerationStatus } from './useAutomationRulesApi-C9I3wUZ8.js';
9
- import { u as useOnClickOutside, S as SHORTCUTS, f as flatten } from './keyboardShortcuts-BvIE6AHg.js';
9
+ import { u as useOnClickOutside, S as SHORTCUTS, f as flatten } from './keyboardShortcuts-DcvmDX_K.js';
10
10
  import { toLower, identity, pluck, isEmpty, replace, 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';
11
11
  import { t } from 'i18next';
12
12
  import * as yup from 'yup';
@@ -2714,6 +2714,16 @@ var Target$8 = function Target(_ref) {
2714
2714
  })]
2715
2715
  });
2716
2716
  };
2717
+
2718
+ // Counts what the user sees in the editor, like a plain textarea would:
2719
+ // every visible character including typed line breaks (<br> and paragraph
2720
+ // ends), excluding only the structural newline after the final paragraph.
2721
+ var plainTextLength = function plainTextLength(html) {
2722
+ if (!html) return 0;
2723
+ var withLineBreaks = html.replace(/<br\s*\/?>/gi, "\n").replace(/<\/p>/gi, "\n");
2724
+ var doc = new DOMParser().parseFromString(withLineBreaks, HTML_MIME_TYPE);
2725
+ return (doc.body.textContent || "").replace(/\n$/, "").length;
2726
+ };
2717
2727
  var SmsFields = function SmsFields(_ref2) {
2718
2728
  var _action$metadata;
2719
2729
  var _ref2$showFieldSelect = _ref2.showFieldSelection,
@@ -2726,7 +2736,9 @@ var SmsFields = function SmsFields(_ref2) {
2726
2736
  showPhoneNumberInput = _ref2$showPhoneNumber === void 0 ? false : _ref2$showPhoneNumber,
2727
2737
  fieldOptions = _ref2.fieldOptions,
2728
2738
  _ref2$shouldAutoFocus = _ref2.shouldAutoFocus,
2729
- shouldAutoFocus = _ref2$shouldAutoFocus === void 0 ? false : _ref2$shouldAutoFocus;
2739
+ shouldAutoFocus = _ref2$shouldAutoFocus === void 0 ? false : _ref2$shouldAutoFocus,
2740
+ _ref2$hint = _ref2.hint,
2741
+ hint = _ref2$hint === void 0 ? null : _ref2$hint;
2730
2742
  var _useTranslation2 = useTranslation(),
2731
2743
  t = _useTranslation2.t;
2732
2744
  var editorRef = useRef(null);
@@ -2734,6 +2746,9 @@ var SmsFields = function SmsFields(_ref2) {
2734
2746
  _useField4 = _slicedToArray(_useField3, 1),
2735
2747
  _useField4$0$value = _useField4[0].value,
2736
2748
  phoneNumbers = _useField4$0$value === void 0 ? [] : _useField4$0$value;
2749
+ var _useField5 = useField("".concat(name, ".body")),
2750
+ _useField6 = _slicedToArray(_useField5, 1),
2751
+ body = _useField6[0].value;
2737
2752
  var _useActiveField2 = useActiveField(name, {
2738
2753
  shouldAutoFocus: showFieldSelection ? false : shouldAutoFocus
2739
2754
  }),
@@ -2802,6 +2817,21 @@ var SmsFields = function SmsFields(_ref2) {
2802
2817
  variables: selectedField === null || selectedField === void 0 ? void 0 : selectedField.variables,
2803
2818
  editorRef: isFirstFieldInForm("body") ? mergeRefs(editorRef, initialFocusRef) : editorRef,
2804
2819
  onFocus: setFieldActive
2820
+ }), /*#__PURE__*/jsxs("div", {
2821
+ "aria-live": "polite",
2822
+ className: "mt-1 flex items-baseline justify-between gap-x-2",
2823
+ children: [/*#__PURE__*/jsx(Typography, {
2824
+ className: "neeto-ui-text-gray-500",
2825
+ style: "body3",
2826
+ children: hint
2827
+ }), /*#__PURE__*/jsx(Typography, {
2828
+ className: "neeto-ui-text-gray-500 shrink-0",
2829
+ "data-testid": "sms-body-character-count",
2830
+ style: "body3",
2831
+ children: t("neetoRules.labels.characterCount", {
2832
+ count: plainTextLength(body)
2833
+ })
2834
+ })]
2805
2835
  }), isSaveAsTemplateVisible && /*#__PURE__*/jsx(SaveAsTemplate, {
2806
2836
  name: name,
2807
2837
  className: "mt-4"
@@ -5264,10 +5294,10 @@ var getSchemaForExecutionDelay = function getSchemaForExecutionDelay(_) {
5264
5294
  return true;
5265
5295
  }
5266
5296
  var schema = yup.object().shape({
5267
- value: yup.number().nullable().integer().typeError(t("neetoRules.validations.number")).min(1, t("neetoRules.validations.minDelay", {
5268
- min: 1
5269
- })).max(999, t("neetoRules.validations.maxDelay", {
5270
- max: 999
5297
+ value: yup.number().nullable().integer().typeError(t("neetoRules.validations.number")).min(MIN_DELAY_VALUE, t("neetoRules.validations.minDelay", {
5298
+ min: MIN_DELAY_VALUE
5299
+ })).max(MAX_DELAY_VALUE, t("neetoRules.validations.maxDelay", {
5300
+ max: MAX_DELAY_VALUE
5271
5301
  })).required(t("neetoRules.validations.required.value")),
5272
5302
  unit: yup.string().nullable().required(t("neetoRules.validations.required.value"))
5273
5303
  });
@@ -5322,6 +5352,9 @@ var FIELD_TYPES = {
5322
5352
  multiSelect: "multi-select",
5323
5353
  executionDelay: "execution-delay"
5324
5354
  };
5355
+ var HTML_MIME_TYPE = "text/html";
5356
+ var MIN_DELAY_VALUE = 1;
5357
+ var MAX_DELAY_VALUE = 999;
5325
5358
  var VALIDATION_SCHEMA = _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, FIELD_TYPES.text, getSchemaForStrings), FIELD_TYPES.longText, getSchemaForStrings), FIELD_TYPES.dropdown, getSchemaForStrings), FIELD_TYPES.radio, getSchemaForStrings), FIELD_TYPES.events, getEventsSchema), FIELD_TYPES.condition, getConditionsSchema), FIELD_TYPES.actions, getActionsSchema), FIELD_TYPES.multiSelect, getSchemaForArray), FIELD_TYPES.executionDelay, getSchemaForExecutionDelay);
5326
5359
  var DECIMAL_NUMBER_REGEX = /^-?\d*\.?\d+$/;
5327
5360
  var NUMBER_REGEX = /^-?\d+$/;
@@ -5532,5 +5565,5 @@ var formatData = function formatData(data) {
5532
5565
  }, {});
5533
5566
  };
5534
5567
 
5535
- export { ActionSubItem as A, DEFAULT_RULE_ACTION as D, EditorAction as E, FIELDS_WITH_OPTIONS as F, OPERATORS as O, PANEL_TYPES as P, RadioField as R, SelectField as S, TouchErrors as T, ValueField as V, getFieldDetails$1 as a, getSlackChannelErrors as b, getOptionsKey as c, getActionLabel as d, getLogicalOperatorOptions as e, getFieldDetails as f, getActionOptions as g, getVerbOptions as h, DEFAULT_DELAY as i, getAllEvents as j, STATUS_KEYS as k, formatData as l, buildPayload as m, ScrollToErrorField as n, Panel as o, getValidationSchema as p, DEFAULT_INITIAL_VALUE as q, ErrorCallout as r, SmsFields as s, PhoneNumberField as t, usePollRuleName as u };
5536
- //# sourceMappingURL=index-qw90tLi9.js.map
5568
+ export { ActionSubItem as A, DEFAULT_RULE_ACTION as D, EditorAction as E, FIELDS_WITH_OPTIONS as F, MIN_DELAY_VALUE as M, OPERATORS as O, PANEL_TYPES as P, RadioField as R, SelectField as S, TouchErrors as T, ValueField as V, getFieldDetails$1 as a, getSlackChannelErrors as b, getOptionsKey as c, getActionLabel as d, getLogicalOperatorOptions as e, getFieldDetails as f, getActionOptions as g, getVerbOptions as h, DEFAULT_DELAY as i, getAllEvents as j, STATUS_KEYS as k, formatData as l, buildPayload as m, ScrollToErrorField as n, Panel as o, getValidationSchema as p, DEFAULT_INITIAL_VALUE as q, ErrorCallout as r, SmsFields as s, MAX_DELAY_VALUE as t, usePollRuleName as u, PhoneNumberField as v };
5569
+ //# sourceMappingURL=index-C9u2JDEa.js.map