@bigbinary/neeto-rules-frontend 2.7.20 → 2.7.22

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 (87) hide show
  1. package/app/javascript/src/translations/ar.json +2 -1
  2. package/app/javascript/src/translations/bg.json +2 -1
  3. package/app/javascript/src/translations/ca.json +2 -1
  4. package/app/javascript/src/translations/cs.json +2 -1
  5. package/app/javascript/src/translations/da.json +2 -1
  6. package/app/javascript/src/translations/de.json +2 -1
  7. package/app/javascript/src/translations/es-MX.json +2 -1
  8. package/app/javascript/src/translations/es.json +2 -1
  9. package/app/javascript/src/translations/et.json +2 -1
  10. package/app/javascript/src/translations/fi.json +2 -1
  11. package/app/javascript/src/translations/fil.json +2 -1
  12. package/app/javascript/src/translations/fr.json +2 -1
  13. package/app/javascript/src/translations/he.json +2 -1
  14. package/app/javascript/src/translations/hi.json +2 -1
  15. package/app/javascript/src/translations/hr.json +2 -1
  16. package/app/javascript/src/translations/hu.json +2 -1
  17. package/app/javascript/src/translations/id.json +2 -1
  18. package/app/javascript/src/translations/it.json +2 -1
  19. package/app/javascript/src/translations/ja.json +2 -1
  20. package/app/javascript/src/translations/ko.json +2 -1
  21. package/app/javascript/src/translations/nl.json +2 -1
  22. package/app/javascript/src/translations/pl.json +2 -1
  23. package/app/javascript/src/translations/pt-BR.json +2 -1
  24. package/app/javascript/src/translations/pt.json +2 -1
  25. package/app/javascript/src/translations/ro.json +2 -1
  26. package/app/javascript/src/translations/ru.json +2 -1
  27. package/app/javascript/src/translations/sk.json +2 -1
  28. package/app/javascript/src/translations/sl.json +2 -1
  29. package/app/javascript/src/translations/sv.json +2 -1
  30. package/app/javascript/src/translations/th.json +2 -1
  31. package/app/javascript/src/translations/tr.json +2 -1
  32. package/app/javascript/src/translations/uk.json +2 -1
  33. package/app/javascript/src/translations/vi.json +2 -1
  34. package/app/javascript/src/translations/zh-CN.json +2 -1
  35. package/app/javascript/src/translations/zh-TW.json +2 -1
  36. package/dist/.ready +1 -1
  37. package/dist/NeetoRulesBuilder.js +30 -2
  38. package/dist/NeetoRulesBuilder.js.map +1 -1
  39. package/dist/NeetoRulesForm.js +2 -2
  40. package/dist/cjs/NeetoRulesBuilder.js +30 -2
  41. package/dist/cjs/NeetoRulesBuilder.js.map +1 -1
  42. package/dist/cjs/NeetoRulesForm.js +2 -2
  43. package/dist/cjs/index.js +2 -2
  44. package/dist/cjs/v2/NeetoRules.js +1 -1
  45. package/dist/cjs/v2/NeetoRulesBuilder.js +407 -207
  46. package/dist/cjs/v2/NeetoRulesBuilder.js.map +1 -1
  47. package/dist/cjs/v2/NeetoRulesForm.js +10 -8
  48. package/dist/cjs/v2/NeetoRulesForm.js.map +1 -1
  49. package/dist/cjs/v2/RulePreview.js +1 -1
  50. package/dist/cjs/v2/hooks.js +2 -2
  51. package/dist/cjs/v2/index.js +4 -4
  52. package/dist/{index-DMCgC01M.js → index-49edM85x.js} +2 -2
  53. package/dist/{index-DMCgC01M.js.map → index-49edM85x.js.map} +1 -1
  54. package/dist/{index-D_dEe2Gg.js → index-BZYwFjcS.js} +2 -2
  55. package/dist/{index-D_dEe2Gg.js.map → index-BZYwFjcS.js.map} +1 -1
  56. package/dist/{index-BXLCiV70.js → index-CcbW7H2S.js} +67 -21
  57. package/dist/index-CcbW7H2S.js.map +1 -0
  58. package/dist/{index-hvuc6OIP.js → index-Fukq1VSN.js} +69 -18
  59. package/dist/index-Fukq1VSN.js.map +1 -0
  60. package/dist/index.js +2 -2
  61. package/dist/keyboardShortcuts-DtnjcivY.js +96 -0
  62. package/dist/{keyboardShortcuts-lX0oq49M.js.map → keyboardShortcuts-DtnjcivY.js.map} +1 -1
  63. package/dist/keyboardShortcuts-_OrtgF0A.js +92 -0
  64. package/dist/{keyboardShortcuts-DXP5YgeG.js.map → keyboardShortcuts-_OrtgF0A.js.map} +1 -1
  65. package/dist/{useCustomDataStore-CU3KpyD4.js → useCustomDataStore-CEbhXugO.js} +2 -2
  66. package/dist/{useCustomDataStore-CU3KpyD4.js.map → useCustomDataStore-CEbhXugO.js.map} +1 -1
  67. package/dist/{useCustomDataStore-D9k8F5g-.js → useCustomDataStore-DPmWkEhs.js} +2 -2
  68. package/dist/{useCustomDataStore-D9k8F5g-.js.map → useCustomDataStore-DPmWkEhs.js.map} +1 -1
  69. package/dist/{useUtilityStore-BBb39TOj.js → useUtilityStore-BVCulMEC.js} +9 -2
  70. package/dist/useUtilityStore-BVCulMEC.js.map +1 -0
  71. package/dist/{useUtilityStore-DkxAexDw.js → useUtilityStore-gtPhFvpI.js} +9 -2
  72. package/dist/useUtilityStore-gtPhFvpI.js.map +1 -0
  73. package/dist/v2/NeetoRules.js +1 -1
  74. package/dist/v2/NeetoRulesBuilder.js +388 -207
  75. package/dist/v2/NeetoRulesBuilder.js.map +1 -1
  76. package/dist/v2/NeetoRulesForm.js +10 -8
  77. package/dist/v2/NeetoRulesForm.js.map +1 -1
  78. package/dist/v2/RulePreview.js +1 -1
  79. package/dist/v2/hooks.js +2 -2
  80. package/dist/v2/index.js +4 -4
  81. package/package.json +7 -7
  82. package/dist/index-BXLCiV70.js.map +0 -1
  83. package/dist/index-hvuc6OIP.js.map +0 -1
  84. package/dist/keyboardShortcuts-DXP5YgeG.js +0 -92
  85. package/dist/keyboardShortcuts-lX0oq49M.js +0 -96
  86. package/dist/useUtilityStore-BBb39TOj.js.map +0 -1
  87. package/dist/useUtilityStore-DkxAexDw.js.map +0 -1
@@ -6,19 +6,19 @@ 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-DXP5YgeG.js';
10
- import { toLower, identity, pluck, 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';
9
+ import { u as useOnClickOutside, S as SHORTCUTS, f as flatten } from './keyboardShortcuts-_OrtgF0A.js';
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';
13
13
  import { useShallow } from 'zustand/shallow';
14
14
  import { Button, Callout, Typography, Input as Input$1, Label, Select, DatePicker, Checkbox, Badge, RadioGroup as RadioGroup$1, TimePicker } from '@bigbinary/neeto-atoms';
15
15
  import { RadioGroup, Textarea, Input as Input$2, Switch, MultiEmailInput, Select as Select$1 } from '@bigbinary/neeto-atoms/formik';
16
16
  import classNames from 'classnames';
17
- import { PanelRightClose, Search, Trash2, CircleHelp, RefreshCw, Lock, Check, X, Plus, ChevronLeft } from 'lucide-react';
17
+ import { X, PanelRightClose, Search, Trash2, CircleHelp, RefreshCw, Lock, Check, Plus, ChevronLeft } from 'lucide-react';
18
18
  import { useTranslation, Trans } from 'react-i18next';
19
- import { a as useActiveField } from './useCustomDataStore-CU3KpyD4.js';
19
+ import { a as useActiveField } from './useCustomDataStore-CEbhXugO.js';
20
20
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
21
- import { u as useUtilityStore } from './useUtilityStore-BBb39TOj.js';
21
+ import { u as useUtilityStore } from './useUtilityStore-BVCulMEC.js';
22
22
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
23
23
  import { withT, useStateWithDependency, useDebounce } from '@bigbinary/neeto-commons-frontend/v2/react-utils';
24
24
  import Editor from '@monaco-editor/react';
@@ -122,12 +122,15 @@ var Header = function Header(_ref) {
122
122
  className = _ref.className;
123
123
  var _useUtilityStore = useUtilityStore(useShallow(function (store) {
124
124
  return {
125
- resetPanelState: store["resetPanelState"]
125
+ resetPanelState: store["resetPanelState"],
126
+ panelState: store["panelState"]
126
127
  };
127
128
  })),
128
- resetPanelState = _useUtilityStore.resetPanelState;
129
+ resetPanelState = _useUtilityStore.resetPanelState,
130
+ panelState = _useUtilityStore.panelState;
129
131
  var _useTranslation = useTranslation(),
130
132
  t = _useTranslation.t;
133
+ var isBuilder = (panelState === null || panelState === void 0 ? void 0 : panelState.variant) === "builder";
131
134
  return /*#__PURE__*/jsxs("div", {
132
135
  "data-testid": "pane-header",
133
136
  className: classNames("neeto-rules-side-panel__header border-border flex items-start justify-between border-b p-6", _defineProperty({}, className, className)),
@@ -135,12 +138,14 @@ var Header = function Header(_ref) {
135
138
  className: "flex min-w-0 grow",
136
139
  children: children
137
140
  }), /*#__PURE__*/jsx(Button, {
138
- className: "shrink-0 scale-x-[-1] rtl:rotate-180",
139
141
  "data-testid": "collapse-sidebar-button",
140
- icon: PanelRightClose,
142
+ icon: isBuilder ? X : PanelRightClose,
141
143
  size: "default",
142
- title: t("neetoRules.common.collapseSidebar"),
143
144
  variant: "ghost",
145
+ className: classNames("shrink-0", {
146
+ "scale-x-[-1] rtl:rotate-180": !isBuilder
147
+ }),
148
+ title: isBuilder ? t("neetoRules.common.close") : t("neetoRules.common.collapseSidebar"),
144
149
  onClick: resetPanelState
145
150
  })]
146
151
  });
@@ -149,7 +154,9 @@ var Header = function Header(_ref) {
149
154
  var _excluded$8 = ["component"];
150
155
  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; }
151
156
  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), true).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; }
152
- var Panel = function Panel() {
157
+ var Panel = function Panel(_ref) {
158
+ var _ref$configMap = _ref.configMap,
159
+ configMap = _ref$configMap === void 0 ? PANEL_TYPE_CONFIG_MAP : _ref$configMap;
153
160
  var _useUtilityStore = useUtilityStore(useShallow(function (store) {
154
161
  return {
155
162
  panelState: store["panelState"],
@@ -165,7 +172,7 @@ var Panel = function Panel() {
165
172
  };
166
173
  var data = {};
167
174
  if (panelState.type) {
168
- Object.assign(config, PANEL_TYPE_CONFIG_MAP[panelState.type]);
175
+ Object.assign(config, configMap[panelState.type]);
169
176
  Object.assign(data, panelState.data);
170
177
  }
171
178
  var Component = config.component,
@@ -176,8 +183,26 @@ var Panel = function Panel() {
176
183
  small: "neeto-rules-side-panel--small",
177
184
  large: "neeto-rules-side-panel--large"
178
185
  }[panelState.size] || "neeto-rules-side-panel--small";
186
+ var isBuilderPane = panelState.variant === "builder" && isOpen;
187
+ useEffect(function () {
188
+ if (!isBuilderPane) return undefined;
189
+ var handleKeyDown = function handleKeyDown(event) {
190
+ var target = event.target;
191
+ if (event.key !== "Enter" || event.shiftKey || (target === null || target === void 0 ? void 0 : target.tagName) === "TEXTAREA" || target !== null && target !== void 0 && target.isContentEditable) {
192
+ return;
193
+ }
194
+ var primaryButton = document.querySelector(".neeto-rules-side-panel__footer button");
195
+ if (!primaryButton) return;
196
+ event.preventDefault();
197
+ primaryButton.click();
198
+ };
199
+ document.addEventListener("keydown", handleKeyDown);
200
+ return function () {
201
+ return document.removeEventListener("keydown", handleKeyDown);
202
+ };
203
+ }, [isBuilderPane]);
179
204
  return /*#__PURE__*/jsx("div", _objectSpread$h(_objectSpread$h({
180
- className: classNames("neeto-rules-side-panel border-border transition-width bg-background ms-auto flex h-screen max-h-full flex-col overflow-y-auto border-s duration-300 ease-in-out", _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, panelSize, isOpen), "w-0 overflow-hidden", !isOpen), "absolute", hasOverlays), "end-0", hasOverlays))
205
+ className: classNames("neeto-rules-side-panel nrb-atoms border-border transition-width bg-background ms-auto flex h-screen max-h-full flex-col overflow-y-auto border-s duration-300 ease-in-out", _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, panelSize, isOpen), "w-0 overflow-hidden", !isOpen), "absolute", hasOverlays), "end-0", hasOverlays))
181
206
  }, paneProps), {}, {
182
207
  children: /*#__PURE__*/jsx(Component, _objectSpread$h(_objectSpread$h({}, data), {}, {
183
208
  onClose: resetPanelState
@@ -253,7 +278,7 @@ var ErrorCallout = function ErrorCallout(_ref) {
253
278
  if (typeof message === "function") return message(selectedField);
254
279
  return /*#__PURE__*/jsx(Callout, {
255
280
  className: "block",
256
- variant: "destructive",
281
+ variant: "danger",
257
282
  children: message
258
283
  });
259
284
  };
@@ -342,6 +367,18 @@ var getPanelSize = function getPanelSize(selectedField) {
342
367
  var isLargeType = [ACTION_TYPES.sendToApi, ACTION_TYPES.smsToNumbers, ACTION_TYPES.sms, ACTION_TYPES.smsTo, ACTION_TYPES.emailToIds, ACTION_TYPES.email, ACTION_TYPES.emailTo, ACTION_TYPES.note, ACTION_TYPES.longText, ACTION_TYPES.textarea, ACTION_TYPES.list].includes(selectedField === null || selectedField === void 0 ? void 0 : selectedField.type) || !!(selectedField !== null && selectedField !== void 0 && selectedField.component);
343
368
  return isLargeType ? "large" : "small";
344
369
  };
370
+ var getActionLabel = function getActionLabel(action) {
371
+ var modifiedActionLabel = action.toLowerCase();
372
+ return replace(/slack/g, "Slack", modifiedActionLabel);
373
+ };
374
+ var getOptionsKey = function getOptionsKey() {
375
+ var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
376
+ return options.map(function (_ref3) {
377
+ var value = _ref3.value,
378
+ label = _ref3.label;
379
+ return "".concat(value, ":").concat(label);
380
+ }).join(",");
381
+ };
345
382
 
346
383
  var ActionPanel = function ActionPanel() {
347
384
  var _useTranslation = useTranslation(),
@@ -2609,7 +2646,9 @@ var SmsFields = function SmsFields(_ref2) {
2609
2646
  showPhoneNumberInput = _ref2$showPhoneNumber === void 0 ? false : _ref2$showPhoneNumber,
2610
2647
  fieldOptions = _ref2.fieldOptions,
2611
2648
  _ref2$shouldAutoFocus = _ref2.shouldAutoFocus,
2612
- shouldAutoFocus = _ref2$shouldAutoFocus === void 0 ? false : _ref2$shouldAutoFocus;
2649
+ shouldAutoFocus = _ref2$shouldAutoFocus === void 0 ? false : _ref2$shouldAutoFocus,
2650
+ _ref2$hint = _ref2.hint,
2651
+ hint = _ref2$hint === void 0 ? null : _ref2$hint;
2613
2652
  var _useTranslation2 = useTranslation(),
2614
2653
  t = _useTranslation2.t;
2615
2654
  var editorRef = useRef(null);
@@ -2685,6 +2724,11 @@ var SmsFields = function SmsFields(_ref2) {
2685
2724
  variables: selectedField === null || selectedField === void 0 ? void 0 : selectedField.variables,
2686
2725
  editorRef: isFirstFieldInForm("body") ? mergeRefs(editorRef, initialFocusRef) : editorRef,
2687
2726
  onFocus: setFieldActive
2727
+ }), hint && /*#__PURE__*/jsx(Typography, {
2728
+ className: "mt-1",
2729
+ color: "muted",
2730
+ variant: "body3",
2731
+ children: hint
2688
2732
  }), isSaveAsTemplateVisible && /*#__PURE__*/jsx(SaveAsTemplate, {
2689
2733
  name: name,
2690
2734
  className: "mt-4"
@@ -5103,10 +5147,10 @@ var getSchemaForExecutionDelay = function getSchemaForExecutionDelay(_) {
5103
5147
  return true;
5104
5148
  }
5105
5149
  var schema = yup.object().shape({
5106
- value: yup.number().nullable().integer(t("neetoRules.validations.number")).typeError(t("neetoRules.validations.number")).min(1, t("neetoRules.validations.minDelay", {
5107
- min: 1
5108
- })).max(999, t("neetoRules.validations.maxDelay", {
5109
- max: 999
5150
+ value: yup.number().nullable().integer(t("neetoRules.validations.number")).typeError(t("neetoRules.validations.number")).min(MIN_DELAY_VALUE, t("neetoRules.validations.minDelay", {
5151
+ min: MIN_DELAY_VALUE
5152
+ })).max(MAX_DELAY_VALUE, t("neetoRules.validations.maxDelay", {
5153
+ max: MAX_DELAY_VALUE
5110
5154
  })).required(t("neetoRules.validations.required.value")),
5111
5155
  unit: yup.string().nullable().required(t("neetoRules.validations.required.value"))
5112
5156
  });
@@ -5161,6 +5205,8 @@ var FIELD_TYPES = {
5161
5205
  multiSelect: "multi-select",
5162
5206
  executionDelay: "execution-delay"
5163
5207
  };
5208
+ var MIN_DELAY_VALUE = 1;
5209
+ var MAX_DELAY_VALUE = 999;
5164
5210
  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);
5165
5211
  var DECIMAL_NUMBER_REGEX = /^-?\d*\.?\d+$/;
5166
5212
  var NUMBER_REGEX = /^-?\d+$/;
@@ -5371,5 +5417,5 @@ var formatData = function formatData(data) {
5371
5417
  }, {});
5372
5418
  };
5373
5419
 
5374
- 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, getLogicalOperatorOptions as c, getFieldDetails as d, getVerbOptions as e, DEFAULT_DELAY as f, getActionOptions as g, getAllEvents as h, STATUS_KEYS as i, formatData as j, buildPayload as k, ScrollToErrorField as l, Panel as m, getValidationSchema as n, DEFAULT_INITIAL_VALUE as o, ErrorCallout as p, SmsFields as q, PhoneNumberField as r, usePollRuleName as u };
5375
- //# sourceMappingURL=index-BXLCiV70.js.map
5420
+ export { ActionSubItem as A, DEFAULT_RULE_ACTION as D, EditorAction as E, FIELDS_WITH_OPTIONS as F, ListField as L, 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 };
5421
+ //# sourceMappingURL=index-CcbW7H2S.js.map