@bigbinary/neeto-rules-frontend 2.7.6 → 2.7.7

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 (33) hide show
  1. package/app/javascript/src/translations/en.json +4 -1
  2. package/dist/.ready +1 -1
  3. package/dist/NeetoRulesBuilder.js +168 -101
  4. package/dist/NeetoRulesBuilder.js.map +1 -1
  5. package/dist/NeetoRulesForm.js +2 -2
  6. package/dist/cjs/NeetoRulesBuilder.js +187 -101
  7. package/dist/cjs/NeetoRulesBuilder.js.map +1 -1
  8. package/dist/cjs/NeetoRulesForm.js +2 -2
  9. package/dist/cjs/index.js +2 -2
  10. package/dist/cjs/v2/NeetoRulesBuilder.js +2 -2
  11. package/dist/cjs/v2/NeetoRulesForm.js +2 -2
  12. package/dist/cjs/v2/index.js +2 -2
  13. package/dist/{index-DFg6NbA-.js → index-7Oqmz32n.js} +2 -2
  14. package/dist/{index-DFg6NbA-.js.map → index-7Oqmz32n.js.map} +1 -1
  15. package/dist/{index-BTE3mSY7.js → index-BL9TdE9q.js} +2 -2
  16. package/dist/{index-BTE3mSY7.js.map → index-BL9TdE9q.js.map} +1 -1
  17. package/dist/{index-qw90tLi9.js → index-C9u2JDEa.js} +41 -8
  18. package/dist/index-C9u2JDEa.js.map +1 -0
  19. package/dist/{index-Df_k2p4V.js → index-Co-qUEtS.js} +42 -7
  20. package/dist/index-Co-qUEtS.js.map +1 -0
  21. package/dist/index.js +2 -2
  22. package/dist/keyboardShortcuts-DcvmDX_K.js +88 -0
  23. package/dist/{keyboardShortcuts-BvIE6AHg.js.map → keyboardShortcuts-DcvmDX_K.js.map} +1 -1
  24. package/dist/keyboardShortcuts-Dg7lUOmj.js +92 -0
  25. package/dist/{keyboardShortcuts-NxcrOxzv.js.map → keyboardShortcuts-Dg7lUOmj.js.map} +1 -1
  26. package/dist/v2/NeetoRulesBuilder.js +2 -2
  27. package/dist/v2/NeetoRulesForm.js +2 -2
  28. package/dist/v2/index.js +2 -2
  29. package/package.json +1 -1
  30. package/dist/index-Df_k2p4V.js.map +0 -1
  31. package/dist/index-qw90tLi9.js.map +0 -1
  32. package/dist/keyboardShortcuts-BvIE6AHg.js +0 -88
  33. package/dist/keyboardShortcuts-NxcrOxzv.js +0 -92
@@ -8,7 +8,7 @@ var _typeof = require('@babel/runtime/helpers/typeof');
8
8
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
9
9
  var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
10
10
  var useAutomationRulesApi = require('./useAutomationRulesApi-C1T2E1AN.js');
11
- var keyboardShortcuts = require('./keyboardShortcuts-NxcrOxzv.js');
11
+ var keyboardShortcuts = require('./keyboardShortcuts-Dg7lUOmj.js');
12
12
  var ramda = require('ramda');
13
13
  var i18next = require('i18next');
14
14
  var yup = require('yup');
@@ -2735,6 +2735,16 @@ var Target$8 = function Target(_ref) {
2735
2735
  })]
2736
2736
  });
2737
2737
  };
2738
+
2739
+ // Counts what the user sees in the editor, like a plain textarea would:
2740
+ // every visible character including typed line breaks (<br> and paragraph
2741
+ // ends), excluding only the structural newline after the final paragraph.
2742
+ var plainTextLength = function plainTextLength(html) {
2743
+ if (!html) return 0;
2744
+ var withLineBreaks = html.replace(/<br\s*\/?>/gi, "\n").replace(/<\/p>/gi, "\n");
2745
+ var doc = new DOMParser().parseFromString(withLineBreaks, HTML_MIME_TYPE);
2746
+ return (doc.body.textContent || "").replace(/\n$/, "").length;
2747
+ };
2738
2748
  var SmsFields = function SmsFields(_ref2) {
2739
2749
  var _action$metadata;
2740
2750
  var _ref2$showFieldSelect = _ref2.showFieldSelection,
@@ -2747,7 +2757,9 @@ var SmsFields = function SmsFields(_ref2) {
2747
2757
  showPhoneNumberInput = _ref2$showPhoneNumber === void 0 ? false : _ref2$showPhoneNumber,
2748
2758
  fieldOptions = _ref2.fieldOptions,
2749
2759
  _ref2$shouldAutoFocus = _ref2.shouldAutoFocus,
2750
- shouldAutoFocus = _ref2$shouldAutoFocus === void 0 ? false : _ref2$shouldAutoFocus;
2760
+ shouldAutoFocus = _ref2$shouldAutoFocus === void 0 ? false : _ref2$shouldAutoFocus,
2761
+ _ref2$hint = _ref2.hint,
2762
+ hint = _ref2$hint === void 0 ? null : _ref2$hint;
2751
2763
  var _useTranslation2 = reactI18next.useTranslation(),
2752
2764
  t = _useTranslation2.t;
2753
2765
  var editorRef = react.useRef(null);
@@ -2755,6 +2767,9 @@ var SmsFields = function SmsFields(_ref2) {
2755
2767
  _useField4 = _slicedToArray(_useField3, 1),
2756
2768
  _useField4$0$value = _useField4[0].value,
2757
2769
  phoneNumbers = _useField4$0$value === void 0 ? [] : _useField4$0$value;
2770
+ var _useField5 = formik.useField("".concat(name, ".body")),
2771
+ _useField6 = _slicedToArray(_useField5, 1),
2772
+ body = _useField6[0].value;
2758
2773
  var _useActiveField2 = useCustomDataStore.useActiveField(name, {
2759
2774
  shouldAutoFocus: showFieldSelection ? false : shouldAutoFocus
2760
2775
  }),
@@ -2823,6 +2838,21 @@ var SmsFields = function SmsFields(_ref2) {
2823
2838
  variables: selectedField === null || selectedField === void 0 ? void 0 : selectedField.variables,
2824
2839
  editorRef: isFirstFieldInForm("body") ? mergeRefs(editorRef, initialFocusRef) : editorRef,
2825
2840
  onFocus: setFieldActive
2841
+ }), /*#__PURE__*/jsxRuntime.jsxs("div", {
2842
+ "aria-live": "polite",
2843
+ className: "mt-1 flex items-baseline justify-between gap-x-2",
2844
+ children: [/*#__PURE__*/jsxRuntime.jsx(Typography, {
2845
+ className: "neeto-ui-text-gray-500",
2846
+ style: "body3",
2847
+ children: hint
2848
+ }), /*#__PURE__*/jsxRuntime.jsx(Typography, {
2849
+ className: "neeto-ui-text-gray-500 shrink-0",
2850
+ "data-testid": "sms-body-character-count",
2851
+ style: "body3",
2852
+ children: t("neetoRules.labels.characterCount", {
2853
+ count: plainTextLength(body)
2854
+ })
2855
+ })]
2826
2856
  }), isSaveAsTemplateVisible && /*#__PURE__*/jsxRuntime.jsx(SaveAsTemplate, {
2827
2857
  name: name,
2828
2858
  className: "mt-4"
@@ -5285,10 +5315,10 @@ var getSchemaForExecutionDelay = function getSchemaForExecutionDelay(_) {
5285
5315
  return true;
5286
5316
  }
5287
5317
  var schema = yup__namespace.object().shape({
5288
- value: yup__namespace.number().nullable().integer().typeError(i18next.t("neetoRules.validations.number")).min(1, i18next.t("neetoRules.validations.minDelay", {
5289
- min: 1
5290
- })).max(999, i18next.t("neetoRules.validations.maxDelay", {
5291
- max: 999
5318
+ value: yup__namespace.number().nullable().integer().typeError(i18next.t("neetoRules.validations.number")).min(MIN_DELAY_VALUE, i18next.t("neetoRules.validations.minDelay", {
5319
+ min: MIN_DELAY_VALUE
5320
+ })).max(MAX_DELAY_VALUE, i18next.t("neetoRules.validations.maxDelay", {
5321
+ max: MAX_DELAY_VALUE
5292
5322
  })).required(i18next.t("neetoRules.validations.required.value")),
5293
5323
  unit: yup__namespace.string().nullable().required(i18next.t("neetoRules.validations.required.value"))
5294
5324
  });
@@ -5343,6 +5373,9 @@ var FIELD_TYPES = {
5343
5373
  multiSelect: "multi-select",
5344
5374
  executionDelay: "execution-delay"
5345
5375
  };
5376
+ var HTML_MIME_TYPE = "text/html";
5377
+ var MIN_DELAY_VALUE = 1;
5378
+ var MAX_DELAY_VALUE = 999;
5346
5379
  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);
5347
5380
  var DECIMAL_NUMBER_REGEX = /^-?\d*\.?\d+$/;
5348
5381
  var NUMBER_REGEX = /^-?\d+$/;
@@ -5560,6 +5593,8 @@ exports.DEFAULT_RULE_ACTION = DEFAULT_RULE_ACTION;
5560
5593
  exports.EditorAction = EditorAction;
5561
5594
  exports.ErrorCallout = ErrorCallout;
5562
5595
  exports.FIELDS_WITH_OPTIONS = FIELDS_WITH_OPTIONS;
5596
+ exports.MAX_DELAY_VALUE = MAX_DELAY_VALUE;
5597
+ exports.MIN_DELAY_VALUE = MIN_DELAY_VALUE;
5563
5598
  exports.OPERATORS = OPERATORS;
5564
5599
  exports.PANEL_TYPES = PANEL_TYPES;
5565
5600
  exports.Panel = Panel;
@@ -5584,4 +5619,4 @@ exports.getSlackChannelErrors = getSlackChannelErrors;
5584
5619
  exports.getValidationSchema = getValidationSchema;
5585
5620
  exports.getVerbOptions = getVerbOptions;
5586
5621
  exports.usePollRuleName = usePollRuleName;
5587
- //# sourceMappingURL=index-Df_k2p4V.js.map
5622
+ //# sourceMappingURL=index-Co-qUEtS.js.map