@bigbinary/neeto-rules-frontend 2.7.20 → 2.7.21

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 +323 -141
  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 +304 -141
  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
@@ -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-lX0oq49M.js');
11
+ var keyboardShortcuts = require('./keyboardShortcuts-DtnjcivY.js');
12
12
  var ramda = require('ramda');
13
13
  var i18next = require('i18next');
14
14
  var yup = require('yup');
@@ -18,9 +18,9 @@ var formik$1 = require('@bigbinary/neeto-atoms/formik');
18
18
  var classNames = require('classnames');
19
19
  var lucideReact = require('lucide-react');
20
20
  var reactI18next = require('react-i18next');
21
- var useCustomDataStore = require('./useCustomDataStore-D9k8F5g-.js');
21
+ var useCustomDataStore = require('./useCustomDataStore-DPmWkEhs.js');
22
22
  var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
23
- var useUtilityStore = require('./useUtilityStore-DkxAexDw.js');
23
+ var useUtilityStore = require('./useUtilityStore-gtPhFvpI.js');
24
24
  var jsxRuntime = require('react/jsx-runtime');
25
25
  var reactUtils = require('@bigbinary/neeto-commons-frontend/v2/react-utils');
26
26
  var Editor = require('@monaco-editor/react');
@@ -143,12 +143,15 @@ var Header = function Header(_ref) {
143
143
  className = _ref.className;
144
144
  var _useUtilityStore = useUtilityStore.useUtilityStore(shallow.useShallow(function (store) {
145
145
  return {
146
- resetPanelState: store["resetPanelState"]
146
+ resetPanelState: store["resetPanelState"],
147
+ panelState: store["panelState"]
147
148
  };
148
149
  })),
149
- resetPanelState = _useUtilityStore.resetPanelState;
150
+ resetPanelState = _useUtilityStore.resetPanelState,
151
+ panelState = _useUtilityStore.panelState;
150
152
  var _useTranslation = reactI18next.useTranslation(),
151
153
  t = _useTranslation.t;
154
+ var isBuilder = (panelState === null || panelState === void 0 ? void 0 : panelState.variant) === "builder";
152
155
  return /*#__PURE__*/jsxRuntime.jsxs("div", {
153
156
  "data-testid": "pane-header",
154
157
  className: classNames("neeto-rules-side-panel__header border-border flex items-start justify-between border-b p-6", _defineProperty({}, className, className)),
@@ -156,12 +159,14 @@ var Header = function Header(_ref) {
156
159
  className: "flex min-w-0 grow",
157
160
  children: children
158
161
  }), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Button, {
159
- className: "shrink-0 scale-x-[-1] rtl:rotate-180",
160
162
  "data-testid": "collapse-sidebar-button",
161
- icon: lucideReact.PanelRightClose,
163
+ icon: isBuilder ? lucideReact.X : lucideReact.PanelRightClose,
162
164
  size: "default",
163
- title: t("neetoRules.common.collapseSidebar"),
164
165
  variant: "ghost",
166
+ className: classNames("shrink-0", {
167
+ "scale-x-[-1] rtl:rotate-180": !isBuilder
168
+ }),
169
+ title: isBuilder ? t("neetoRules.common.close") : t("neetoRules.common.collapseSidebar"),
165
170
  onClick: resetPanelState
166
171
  })]
167
172
  });
@@ -170,7 +175,9 @@ var Header = function Header(_ref) {
170
175
  var _excluded$8 = ["component"];
171
176
  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; }
172
177
  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; }
173
- var Panel = function Panel() {
178
+ var Panel = function Panel(_ref) {
179
+ var _ref$configMap = _ref.configMap,
180
+ configMap = _ref$configMap === void 0 ? PANEL_TYPE_CONFIG_MAP : _ref$configMap;
174
181
  var _useUtilityStore = useUtilityStore.useUtilityStore(shallow.useShallow(function (store) {
175
182
  return {
176
183
  panelState: store["panelState"],
@@ -186,7 +193,7 @@ var Panel = function Panel() {
186
193
  };
187
194
  var data = {};
188
195
  if (panelState.type) {
189
- Object.assign(config, PANEL_TYPE_CONFIG_MAP[panelState.type]);
196
+ Object.assign(config, configMap[panelState.type]);
190
197
  Object.assign(data, panelState.data);
191
198
  }
192
199
  var Component = config.component,
@@ -197,8 +204,26 @@ var Panel = function Panel() {
197
204
  small: "neeto-rules-side-panel--small",
198
205
  large: "neeto-rules-side-panel--large"
199
206
  }[panelState.size] || "neeto-rules-side-panel--small";
207
+ var isBuilderPane = panelState.variant === "builder" && isOpen;
208
+ react.useEffect(function () {
209
+ if (!isBuilderPane) return undefined;
210
+ var handleKeyDown = function handleKeyDown(event) {
211
+ var target = event.target;
212
+ if (event.key !== "Enter" || event.shiftKey || (target === null || target === void 0 ? void 0 : target.tagName) === "TEXTAREA" || target !== null && target !== void 0 && target.isContentEditable) {
213
+ return;
214
+ }
215
+ var primaryButton = document.querySelector(".neeto-rules-side-panel__footer button");
216
+ if (!primaryButton) return;
217
+ event.preventDefault();
218
+ primaryButton.click();
219
+ };
220
+ document.addEventListener("keydown", handleKeyDown);
221
+ return function () {
222
+ return document.removeEventListener("keydown", handleKeyDown);
223
+ };
224
+ }, [isBuilderPane]);
200
225
  return /*#__PURE__*/jsxRuntime.jsx("div", _objectSpread$h(_objectSpread$h({
201
- 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))
226
+ 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))
202
227
  }, paneProps), {}, {
203
228
  children: /*#__PURE__*/jsxRuntime.jsx(Component, _objectSpread$h(_objectSpread$h({}, data), {}, {
204
229
  onClose: resetPanelState
@@ -274,7 +299,7 @@ var ErrorCallout = function ErrorCallout(_ref) {
274
299
  if (typeof message === "function") return message(selectedField);
275
300
  return /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Callout, {
276
301
  className: "block",
277
- variant: "destructive",
302
+ variant: "danger",
278
303
  children: message
279
304
  });
280
305
  };
@@ -363,6 +388,18 @@ var getPanelSize = function getPanelSize(selectedField) {
363
388
  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);
364
389
  return isLargeType ? "large" : "small";
365
390
  };
391
+ var getActionLabel = function getActionLabel(action) {
392
+ var modifiedActionLabel = action.toLowerCase();
393
+ return ramda.replace(/slack/g, "Slack", modifiedActionLabel);
394
+ };
395
+ var getOptionsKey = function getOptionsKey() {
396
+ var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
397
+ return options.map(function (_ref3) {
398
+ var value = _ref3.value,
399
+ label = _ref3.label;
400
+ return "".concat(value, ":").concat(label);
401
+ }).join(",");
402
+ };
366
403
 
367
404
  var ActionPanel = function ActionPanel() {
368
405
  var _useTranslation = reactI18next.useTranslation(),
@@ -2630,7 +2667,9 @@ var SmsFields = function SmsFields(_ref2) {
2630
2667
  showPhoneNumberInput = _ref2$showPhoneNumber === void 0 ? false : _ref2$showPhoneNumber,
2631
2668
  fieldOptions = _ref2.fieldOptions,
2632
2669
  _ref2$shouldAutoFocus = _ref2.shouldAutoFocus,
2633
- shouldAutoFocus = _ref2$shouldAutoFocus === void 0 ? false : _ref2$shouldAutoFocus;
2670
+ shouldAutoFocus = _ref2$shouldAutoFocus === void 0 ? false : _ref2$shouldAutoFocus,
2671
+ _ref2$hint = _ref2.hint,
2672
+ hint = _ref2$hint === void 0 ? null : _ref2$hint;
2634
2673
  var _useTranslation2 = reactI18next.useTranslation(),
2635
2674
  t = _useTranslation2.t;
2636
2675
  var editorRef = react.useRef(null);
@@ -2706,6 +2745,11 @@ var SmsFields = function SmsFields(_ref2) {
2706
2745
  variables: selectedField === null || selectedField === void 0 ? void 0 : selectedField.variables,
2707
2746
  editorRef: isFirstFieldInForm("body") ? mergeRefs(editorRef, initialFocusRef) : editorRef,
2708
2747
  onFocus: setFieldActive
2748
+ }), hint && /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
2749
+ className: "mt-1",
2750
+ color: "muted",
2751
+ variant: "body3",
2752
+ children: hint
2709
2753
  }), isSaveAsTemplateVisible && /*#__PURE__*/jsxRuntime.jsx(SaveAsTemplate, {
2710
2754
  name: name,
2711
2755
  className: "mt-4"
@@ -5124,10 +5168,10 @@ var getSchemaForExecutionDelay = function getSchemaForExecutionDelay(_) {
5124
5168
  return true;
5125
5169
  }
5126
5170
  var schema = yup__namespace.object().shape({
5127
- value: yup__namespace.number().nullable().integer(i18next.t("neetoRules.validations.number")).typeError(i18next.t("neetoRules.validations.number")).min(1, i18next.t("neetoRules.validations.minDelay", {
5128
- min: 1
5129
- })).max(999, i18next.t("neetoRules.validations.maxDelay", {
5130
- max: 999
5171
+ value: yup__namespace.number().nullable().integer(i18next.t("neetoRules.validations.number")).typeError(i18next.t("neetoRules.validations.number")).min(MIN_DELAY_VALUE, i18next.t("neetoRules.validations.minDelay", {
5172
+ min: MIN_DELAY_VALUE
5173
+ })).max(MAX_DELAY_VALUE, i18next.t("neetoRules.validations.maxDelay", {
5174
+ max: MAX_DELAY_VALUE
5131
5175
  })).required(i18next.t("neetoRules.validations.required.value")),
5132
5176
  unit: yup__namespace.string().nullable().required(i18next.t("neetoRules.validations.required.value"))
5133
5177
  });
@@ -5182,6 +5226,8 @@ var FIELD_TYPES = {
5182
5226
  multiSelect: "multi-select",
5183
5227
  executionDelay: "execution-delay"
5184
5228
  };
5229
+ var MIN_DELAY_VALUE = 1;
5230
+ var MAX_DELAY_VALUE = 999;
5185
5231
  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);
5186
5232
  var DECIMAL_NUMBER_REGEX = /^-?\d*\.?\d+$/;
5187
5233
  var NUMBER_REGEX = /^-?\d+$/;
@@ -5399,6 +5445,9 @@ exports.DEFAULT_RULE_ACTION = DEFAULT_RULE_ACTION;
5399
5445
  exports.EditorAction = EditorAction;
5400
5446
  exports.ErrorCallout = ErrorCallout;
5401
5447
  exports.FIELDS_WITH_OPTIONS = FIELDS_WITH_OPTIONS;
5448
+ exports.ListField = ListField;
5449
+ exports.MAX_DELAY_VALUE = MAX_DELAY_VALUE;
5450
+ exports.MIN_DELAY_VALUE = MIN_DELAY_VALUE;
5402
5451
  exports.OPERATORS = OPERATORS;
5403
5452
  exports.PANEL_TYPES = PANEL_TYPES;
5404
5453
  exports.Panel = Panel;
@@ -5412,13 +5461,15 @@ exports.TouchErrors = TouchErrors;
5412
5461
  exports.ValueField = ValueField;
5413
5462
  exports.buildPayload = buildPayload;
5414
5463
  exports.formatData = formatData;
5464
+ exports.getActionLabel = getActionLabel;
5415
5465
  exports.getActionOptions = getActionOptions;
5416
5466
  exports.getAllEvents = getAllEvents;
5417
5467
  exports.getFieldDetails = getFieldDetails$1;
5418
5468
  exports.getFieldDetails$1 = getFieldDetails;
5419
5469
  exports.getLogicalOperatorOptions = getLogicalOperatorOptions;
5470
+ exports.getOptionsKey = getOptionsKey;
5420
5471
  exports.getSlackChannelErrors = getSlackChannelErrors;
5421
5472
  exports.getValidationSchema = getValidationSchema;
5422
5473
  exports.getVerbOptions = getVerbOptions;
5423
5474
  exports.usePollRuleName = usePollRuleName;
5424
- //# sourceMappingURL=index-hvuc6OIP.js.map
5475
+ //# sourceMappingURL=index-Fukq1VSN.js.map