@bigbinary/neeto-rules-frontend 2.5.27 → 2.5.29
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.
- package/dist/NeetoRules.js +1 -1
- package/dist/NeetoRulesForm.js +262 -110
- package/dist/NeetoRulesForm.js.map +1 -1
- package/dist/RulePreview.js +2 -2
- package/dist/cjs/NeetoRules.js +1 -1
- package/dist/cjs/NeetoRulesForm.js +259 -107
- package/dist/cjs/NeetoRulesForm.js.map +1 -1
- package/dist/cjs/RulePreview.js +2 -2
- package/dist/cjs/index.js +5 -3
- package/dist/cjs/index.js.map +1 -1
- package/dist/{constants-CCwwHsAM.js → constants-BjXYr8nk.js} +3 -1
- package/dist/{constants-DvCsjJGj.js.map → constants-BjXYr8nk.js.map} +1 -1
- package/dist/{constants-DvCsjJGj.js → constants-C_bfl8XZ.js} +3 -2
- package/dist/{constants-CCwwHsAM.js.map → constants-C_bfl8XZ.js.map} +1 -1
- package/dist/index.js +5 -3
- package/dist/index.js.map +1 -1
- package/dist/{useUtilityStore-C0O0N3Aq.js → useUtilityStore-6TPs8A8Q.js} +5 -1
- package/dist/useUtilityStore-6TPs8A8Q.js.map +1 -0
- package/dist/{useUtilityStore-0xgAU9fw.js → useUtilityStore-D6PfpKqa.js} +5 -1
- package/dist/useUtilityStore-D6PfpKqa.js.map +1 -0
- package/package.json +13 -12
- package/dist/useUtilityStore-0xgAU9fw.js.map +0 -1
- package/dist/useUtilityStore-C0O0N3Aq.js.map +0 -1
|
@@ -10,23 +10,25 @@ var formik = require('formik');
|
|
|
10
10
|
var neetoCist = require('@bigbinary/neeto-cist');
|
|
11
11
|
var Plus = require('@bigbinary/neeto-icons/Plus');
|
|
12
12
|
var Delete = require('@bigbinary/neeto-icons/Delete');
|
|
13
|
-
var Refresh = require('@bigbinary/neeto-icons/Refresh');
|
|
14
13
|
var Button = require('@bigbinary/neetoui/Button');
|
|
15
14
|
var reactI18next = require('react-i18next');
|
|
16
|
-
var useUtilityStore = require('../useUtilityStore-
|
|
15
|
+
var useUtilityStore = require('../useUtilityStore-D6PfpKqa.js');
|
|
17
16
|
var classNames = require('classnames');
|
|
18
17
|
var Typography = require('@bigbinary/neetoui/Typography');
|
|
19
18
|
var ramda = require('ramda');
|
|
20
19
|
var i18next = require('i18next');
|
|
21
20
|
var yup = require('yup');
|
|
21
|
+
var Search = require('@bigbinary/neeto-icons/Search');
|
|
22
|
+
var Input$1 = require('@bigbinary/neetoui/Input');
|
|
22
23
|
var Radio = require('@bigbinary/neetoui/formik/Radio');
|
|
23
24
|
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
|
24
25
|
var managers = require('@bigbinary/neetoui/managers');
|
|
25
26
|
var jsxRuntime = require('react/jsx-runtime');
|
|
26
27
|
var Collapse = require('@bigbinary/neeto-icons/Collapse');
|
|
28
|
+
var Callout = require('@bigbinary/neetoui/Callout');
|
|
27
29
|
var Left = require('@bigbinary/neeto-icons/Left');
|
|
28
30
|
var Textarea = require('@bigbinary/neetoui/formik/Textarea');
|
|
29
|
-
var Input$
|
|
31
|
+
var Input$2 = require('@bigbinary/neetoui/formik/Input');
|
|
30
32
|
var Switch = require('@bigbinary/neetoui/formik/Switch');
|
|
31
33
|
var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
|
|
32
34
|
var Editor = require('@monaco-editor/react');
|
|
@@ -38,19 +40,19 @@ var utils = require('@bigbinary/neeto-commons-frontend/utils');
|
|
|
38
40
|
var DatePicker = require('@bigbinary/neetoui/DatePicker');
|
|
39
41
|
var MultiEmailInput = require('@bigbinary/neetoui/formik/MultiEmailInput');
|
|
40
42
|
var FormikEditor = require('@bigbinary/neeto-editor/FormikEditor');
|
|
43
|
+
var Refresh = require('@bigbinary/neeto-icons/Refresh');
|
|
41
44
|
var Select$1 = require('@bigbinary/neetoui/formik/Select');
|
|
42
45
|
var useHotkeys = require('@bigbinary/neeto-hotkeys');
|
|
43
46
|
var Check = require('@bigbinary/neeto-icons/Check');
|
|
44
47
|
var Close = require('@bigbinary/neeto-icons/Close');
|
|
45
|
-
var Input$2 = require('@bigbinary/neetoui/Input');
|
|
46
48
|
var Checkbox = require('@bigbinary/neetoui/Checkbox');
|
|
47
49
|
var CreatableSelect = require('react-select/creatable');
|
|
48
50
|
var _toArray = require('@babel/runtime/helpers/toArray');
|
|
49
51
|
var PhoneNumber = require('@bigbinary/neeto-molecules/PhoneNumber');
|
|
50
52
|
var Tag = require('@bigbinary/neetoui/Tag');
|
|
51
53
|
var reactSelect = require('react-select');
|
|
54
|
+
var constants = require('../constants-BjXYr8nk.js');
|
|
52
55
|
var initializers = require('@bigbinary/neeto-commons-frontend/initializers');
|
|
53
|
-
var constants = require('../constants-CCwwHsAM.js');
|
|
54
56
|
var Radio$1 = require('@bigbinary/neetoui/Radio');
|
|
55
57
|
var TimePicker = require('@bigbinary/neetoui/TimePicker');
|
|
56
58
|
var _asyncToGenerator = require('@babel/runtime/helpers/asyncToGenerator');
|
|
@@ -169,7 +171,7 @@ var Footer = function Footer(_ref) {
|
|
|
169
171
|
className = _ref.className;
|
|
170
172
|
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
171
173
|
"data-cy": "pane-footer",
|
|
172
|
-
className: classNames("neeto-rules-side-panel__footer neeto-ui-border-gray-
|
|
174
|
+
className: classNames("neeto-rules-side-panel__footer neeto-ui-border-gray-200 flex items-center justify-between border-t p-6", className),
|
|
173
175
|
children: children
|
|
174
176
|
});
|
|
175
177
|
};
|
|
@@ -187,7 +189,7 @@ var Header = function Header(_ref) {
|
|
|
187
189
|
t = _useTranslation.t;
|
|
188
190
|
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
189
191
|
"data-cy": "pane-header",
|
|
190
|
-
className: classNames("neeto-rules-side-panel__header neeto-ui-border-gray-
|
|
192
|
+
className: classNames("neeto-rules-side-panel__header neeto-ui-border-gray-200 flex items-start justify-between border-b p-6", _defineProperty({}, className, className)),
|
|
191
193
|
children: [/*#__PURE__*/jsxRuntime.jsx("div", {
|
|
192
194
|
className: "flex min-w-0 flex-grow",
|
|
193
195
|
children: children
|
|
@@ -237,7 +239,7 @@ var Panel = function Panel() {
|
|
|
237
239
|
large: "neeto-rules-side-panel--large"
|
|
238
240
|
}[panelState.size] || "neeto-rules-side-panel--small";
|
|
239
241
|
return /*#__PURE__*/jsxRuntime.jsx("div", _objectSpread$u(_objectSpread$u({
|
|
240
|
-
className: classNames("neeto-rules-side-panel neeto-ui-border-gray-
|
|
242
|
+
className: classNames("neeto-rules-side-panel neeto-ui-border-gray-200 transition-width neeto-ui-bg-white ml-auto flex h-screen max-h-full flex-col overflow-y-auto border-l duration-300 ease-in-out", _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, panelSize, isOpen), "w-0 overflow-hidden", !isOpen), "absolute", hasOverlays), "right-0", hasOverlays))
|
|
241
243
|
}, paneProps), {}, {
|
|
242
244
|
children: /*#__PURE__*/jsxRuntime.jsx(Component, _objectSpread$u(_objectSpread$u({}, data), {}, {
|
|
243
245
|
onClose: resetPanelState
|
|
@@ -248,15 +250,11 @@ Panel.Header = Header;
|
|
|
248
250
|
Panel.Body = Body;
|
|
249
251
|
Panel.Footer = Footer;
|
|
250
252
|
|
|
251
|
-
var
|
|
252
|
-
var
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
return /*#__PURE__*/jsxRuntime.jsx(Typography, {
|
|
257
|
-
className: "neeto-ui-text-white neeto-ui-bg-error-500 neeto-ui-rounded-sm -mx-4 w-full p-3",
|
|
258
|
-
style: "h5",
|
|
259
|
-
children: message
|
|
253
|
+
var StickySidebarHeader = function StickySidebarHeader(_ref) {
|
|
254
|
+
var children = _ref.children;
|
|
255
|
+
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
256
|
+
className: "sticky top-0 neeto-ui-bg-white py-6 flex flex-col gap-3",
|
|
257
|
+
children: children
|
|
260
258
|
});
|
|
261
259
|
};
|
|
262
260
|
|
|
@@ -302,6 +300,7 @@ var DEFAULT_RULE_ACTION = {
|
|
|
302
300
|
};
|
|
303
301
|
var EDITOR_ADDONS = ["code-block", "block-quote", "image-upload"];
|
|
304
302
|
var EMAIL_REGEX = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
|
|
303
|
+
var MAXIMUM_OPTION_LENGTH$1 = 7;
|
|
305
304
|
var ACTION_INPUT_TYPES = ["text", "number", "decimal", "regex"];
|
|
306
305
|
var DEFAULT_HELP_POPOVER_PROPS = {
|
|
307
306
|
helpLinkProps: {
|
|
@@ -309,6 +308,18 @@ var DEFAULT_HELP_POPOVER_PROPS = {
|
|
|
309
308
|
}
|
|
310
309
|
};
|
|
311
310
|
|
|
311
|
+
var ErrorCallout = function ErrorCallout(_ref) {
|
|
312
|
+
var message = _ref.message,
|
|
313
|
+
selectedField = _ref.selectedField;
|
|
314
|
+
if (!message) return null;
|
|
315
|
+
if (typeof message === "function") return message(selectedField);
|
|
316
|
+
return /*#__PURE__*/jsxRuntime.jsx(Callout, {
|
|
317
|
+
className: "block",
|
|
318
|
+
style: "danger",
|
|
319
|
+
children: message
|
|
320
|
+
});
|
|
321
|
+
};
|
|
322
|
+
|
|
312
323
|
var getFieldDetails$1 = function getFieldDetails(fieldValue) {
|
|
313
324
|
var actionOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
314
325
|
return neetoCist.findBy({
|
|
@@ -337,6 +348,12 @@ var getDetailsByValue = function getDetailsByValue(value, options) {
|
|
|
337
348
|
value: value
|
|
338
349
|
}, options);
|
|
339
350
|
};
|
|
351
|
+
var getSearchedOptions$2 = function getSearchedOptions(dropdownOptions, searchTerm) {
|
|
352
|
+
return dropdownOptions.filter(function (_ref) {
|
|
353
|
+
var label = _ref.label;
|
|
354
|
+
return ramda.toLower(label).includes(ramda.toLower(searchTerm.trim()));
|
|
355
|
+
});
|
|
356
|
+
};
|
|
340
357
|
var getSelectedOptions = function getSelectedOptions(options) {
|
|
341
358
|
return options.filter(ramda.identity).length ? options : [];
|
|
342
359
|
};
|
|
@@ -389,6 +406,10 @@ var getPanelSize = function getPanelSize(selectedField) {
|
|
|
389
406
|
var ActionPanel = function ActionPanel() {
|
|
390
407
|
var _useTranslation = reactI18next.useTranslation(),
|
|
391
408
|
t = _useTranslation.t;
|
|
409
|
+
var _useState = react.useState(""),
|
|
410
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
411
|
+
searchTerm = _useState2[0],
|
|
412
|
+
setSearchTerm = _useState2[1];
|
|
392
413
|
var _useUtilityStore = useUtilityStore.useUtilityStore(function (store) {
|
|
393
414
|
return {
|
|
394
415
|
setPanelState: store["setPanelState"],
|
|
@@ -428,6 +449,8 @@ var ActionPanel = function ActionPanel() {
|
|
|
428
449
|
ref = _useActiveField.ref,
|
|
429
450
|
setFieldActive = _useActiveField.setFieldActive;
|
|
430
451
|
var label = index ? t("neetoRules.common.andThen") : t("neetoRules.common.then");
|
|
452
|
+
var isSearchable = actionOptions.length > MAXIMUM_OPTION_LENGTH$1;
|
|
453
|
+
var searchedOptions = getSearchedOptions$2(actionOptions, searchTerm);
|
|
431
454
|
var setFieldValueAndUntouch = function setFieldValueAndUntouch(field, value) {
|
|
432
455
|
setFieldValue(field, value);
|
|
433
456
|
setFieldTouched(field, false);
|
|
@@ -468,26 +491,45 @@ var ActionPanel = function ActionPanel() {
|
|
|
468
491
|
})]
|
|
469
492
|
})
|
|
470
493
|
}), /*#__PURE__*/jsxRuntime.jsxs(Panel.Body, {
|
|
471
|
-
className: "space-y-4",
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
494
|
+
className: classNames("space-y-4", {
|
|
495
|
+
"pt-0": isSearchable || errorMessage
|
|
496
|
+
}),
|
|
497
|
+
children: [(isSearchable || errorMessage) && /*#__PURE__*/jsxRuntime.jsxs(StickySidebarHeader, {
|
|
498
|
+
children: [isSearchable && /*#__PURE__*/jsxRuntime.jsx(Input$1, {
|
|
499
|
+
"data-cy": "search-text-field",
|
|
500
|
+
placeholder: t("neetoRules.common.search"),
|
|
501
|
+
prefix: /*#__PURE__*/jsxRuntime.jsx(Search, {}),
|
|
502
|
+
value: searchTerm,
|
|
503
|
+
onChange: function onChange(e) {
|
|
504
|
+
return setSearchTerm(e.target.value);
|
|
505
|
+
},
|
|
506
|
+
onClick: function onClick(e) {
|
|
507
|
+
return e.stopPropagation();
|
|
508
|
+
}
|
|
509
|
+
}), /*#__PURE__*/jsxRuntime.jsx(ErrorCallout, {
|
|
510
|
+
selectedField: selectedField,
|
|
511
|
+
message: errorMessage
|
|
512
|
+
})]
|
|
513
|
+
}), neetoCist.isNotEmpty(searchedOptions) ? /*#__PURE__*/jsxRuntime.jsx(Radio, {
|
|
476
514
|
ref: ref,
|
|
477
515
|
stacked: true,
|
|
478
516
|
name: "".concat(name, ".name"),
|
|
479
517
|
value: selectedField === null || selectedField === void 0 ? void 0 : selectedField.value,
|
|
480
518
|
onChange: handleSelectOption,
|
|
481
|
-
children:
|
|
519
|
+
children: searchedOptions.map(function (_ref2) {
|
|
482
520
|
var label = _ref2.label,
|
|
483
521
|
value = _ref2.value;
|
|
484
522
|
return /*#__PURE__*/react.createElement(Radio.Item, {
|
|
485
523
|
label: label,
|
|
486
524
|
value: value,
|
|
487
|
-
key:
|
|
525
|
+
key: value,
|
|
488
526
|
onFocus: setFieldActive
|
|
489
527
|
});
|
|
490
528
|
})
|
|
529
|
+
}) : /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
530
|
+
className: "py-1 text-sm",
|
|
531
|
+
"data-cy": "no-options-menu-item",
|
|
532
|
+
children: t("neetoRules.common.noOptions")
|
|
491
533
|
})]
|
|
492
534
|
}), /*#__PURE__*/jsxRuntime.jsx(Panel.Footer, {
|
|
493
535
|
children: /*#__PURE__*/jsxRuntime.jsx(Button, {
|
|
@@ -742,13 +784,13 @@ var KeyValuePairsField = reactUtils.withT(function (_ref) {
|
|
|
742
784
|
children: [data.map(function (_, index) {
|
|
743
785
|
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
744
786
|
className: "flex h-8 space-x-3",
|
|
745
|
-
children: [/*#__PURE__*/jsxRuntime.jsx(Input$
|
|
787
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(Input$2, {
|
|
746
788
|
onFocus: onFocus,
|
|
747
789
|
className: "w-1/3",
|
|
748
790
|
name: "".concat(name, ".").concat(index, ".key"),
|
|
749
791
|
placeholder: t("neetoRules.labels.key"),
|
|
750
792
|
type: "text"
|
|
751
|
-
}), /*#__PURE__*/jsxRuntime.jsx(Input$
|
|
793
|
+
}), /*#__PURE__*/jsxRuntime.jsx(Input$2, {
|
|
752
794
|
onFocus: onFocus,
|
|
753
795
|
className: "w-2/3",
|
|
754
796
|
name: "".concat(name, ".").concat(index, ".value"),
|
|
@@ -985,7 +1027,7 @@ var SaveAsTemplate = function SaveAsTemplate(_ref) {
|
|
|
985
1027
|
label: t("neetoRules.labels.saveAsTemplate"),
|
|
986
1028
|
name: switchName,
|
|
987
1029
|
onChange: handleChange
|
|
988
|
-
}), shouldSaveAsTemplate && /*#__PURE__*/jsxRuntime.jsx(Input$
|
|
1030
|
+
}), shouldSaveAsTemplate && /*#__PURE__*/jsxRuntime.jsx(Input$2, {
|
|
989
1031
|
autoFocus: true,
|
|
990
1032
|
required: true,
|
|
991
1033
|
label: t("neetoRules.labels.templateName"),
|
|
@@ -1161,7 +1203,7 @@ var ApiFields = function ApiFields(_ref2) {
|
|
|
1161
1203
|
initialFocusRef: ref,
|
|
1162
1204
|
onChange: handleTemplateChange,
|
|
1163
1205
|
onFocus: setFieldActive
|
|
1164
|
-
}), /*#__PURE__*/jsxRuntime.jsx(Input$
|
|
1206
|
+
}), /*#__PURE__*/jsxRuntime.jsx(Input$2, {
|
|
1165
1207
|
required: true,
|
|
1166
1208
|
className: "mb-4",
|
|
1167
1209
|
"data-cy": "api-action-endpoint-text-field",
|
|
@@ -1401,7 +1443,7 @@ var EditorAction = function EditorAction(_ref) {
|
|
|
1401
1443
|
}, otherProps));
|
|
1402
1444
|
};
|
|
1403
1445
|
|
|
1404
|
-
var _excluded$d = ["dropdownOptions", "name", "selectedField", "shouldAutoFocus", "className", "required"];
|
|
1446
|
+
var _excluded$d = ["dropdownOptions", "name", "selectedField", "shouldAutoFocus", "className", "required", "handleSlackChannelRefresh", "action"];
|
|
1405
1447
|
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; }
|
|
1406
1448
|
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; }
|
|
1407
1449
|
var Target$g = function Target(_ref) {
|
|
@@ -1465,6 +1507,8 @@ var SelectField$2 = function SelectField(_ref2) {
|
|
|
1465
1507
|
className = _ref2.className,
|
|
1466
1508
|
_ref2$required = _ref2.required,
|
|
1467
1509
|
required = _ref2$required === void 0 ? false : _ref2$required,
|
|
1510
|
+
handleSlackChannelRefresh = _ref2.handleSlackChannelRefresh,
|
|
1511
|
+
action = _ref2.action,
|
|
1468
1512
|
otherProps = _objectWithoutProperties(_ref2, _excluded$d);
|
|
1469
1513
|
var _useTranslation2 = reactI18next.useTranslation(),
|
|
1470
1514
|
t = _useTranslation2.t;
|
|
@@ -1496,18 +1540,32 @@ var SelectField$2 = function SelectField(_ref2) {
|
|
|
1496
1540
|
setValue((_option$value = option === null || option === void 0 ? void 0 : option.value) !== null && _option$value !== void 0 ? _option$value : null);
|
|
1497
1541
|
setTouched(true);
|
|
1498
1542
|
};
|
|
1499
|
-
return /*#__PURE__*/jsxRuntime.
|
|
1500
|
-
className:
|
|
1501
|
-
|
|
1502
|
-
|
|
1503
|
-
|
|
1504
|
-
|
|
1505
|
-
|
|
1506
|
-
|
|
1507
|
-
|
|
1508
|
-
|
|
1509
|
-
|
|
1510
|
-
|
|
1543
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
1544
|
+
className: "flex items-start gap-2",
|
|
1545
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(Select$1, _objectSpread$p(_objectSpread$p({}, _objectSpread$p({
|
|
1546
|
+
className: className,
|
|
1547
|
+
name: name,
|
|
1548
|
+
required: required
|
|
1549
|
+
}, otherProps)), {}, {
|
|
1550
|
+
innerRef: ref,
|
|
1551
|
+
label: defaultLabel,
|
|
1552
|
+
options: dropdownOptions,
|
|
1553
|
+
value: selectedOption,
|
|
1554
|
+
onChange: handleSelectOption,
|
|
1555
|
+
onFocus: setFieldActive
|
|
1556
|
+
})), handleSlackChannelRefresh && action.name === "message_to_slack" && /*#__PURE__*/jsxRuntime.jsx(Button, {
|
|
1557
|
+
className: "mt-[22px]",
|
|
1558
|
+
"data-cy": "refresh-slack-button",
|
|
1559
|
+
icon: Refresh,
|
|
1560
|
+
size: "medium",
|
|
1561
|
+
style: "secondary",
|
|
1562
|
+
tooltipProps: {
|
|
1563
|
+
content: t("neetoRules.slack.refreshChannelList"),
|
|
1564
|
+
position: "top"
|
|
1565
|
+
},
|
|
1566
|
+
onClick: handleSlackChannelRefresh
|
|
1567
|
+
})]
|
|
1568
|
+
});
|
|
1511
1569
|
};
|
|
1512
1570
|
SelectField$2.Target = Target$g;
|
|
1513
1571
|
|
|
@@ -1644,7 +1702,7 @@ var EmailFields = function EmailFields(_ref2) {
|
|
|
1644
1702
|
name: "".concat(name, ".emails"),
|
|
1645
1703
|
initialFocusRef: isFirstFieldInForm("emails") ? initialFocusRef : null,
|
|
1646
1704
|
onFocus: setFieldActive
|
|
1647
|
-
}), !selectedField.hideSubject && /*#__PURE__*/jsxRuntime.jsx(Input$
|
|
1705
|
+
}), !selectedField.hideSubject && /*#__PURE__*/jsxRuntime.jsx(Input$2, {
|
|
1648
1706
|
required: true,
|
|
1649
1707
|
className: "mb-4",
|
|
1650
1708
|
"data-cy": "email-action-subject-text-field",
|
|
@@ -1724,7 +1782,7 @@ var Input = function Input(_ref2) {
|
|
|
1724
1782
|
}),
|
|
1725
1783
|
ref = _useActiveField2.ref,
|
|
1726
1784
|
setFieldActive = _useActiveField2.setFieldActive;
|
|
1727
|
-
return /*#__PURE__*/jsxRuntime.jsx(Input$
|
|
1785
|
+
return /*#__PURE__*/jsxRuntime.jsx(Input$2, {
|
|
1728
1786
|
ref: ref,
|
|
1729
1787
|
required: required,
|
|
1730
1788
|
className: "my-auto",
|
|
@@ -1806,7 +1864,7 @@ var InlineInput = /*#__PURE__*/react.forwardRef(function (props, ref) {
|
|
|
1806
1864
|
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
1807
1865
|
className: classNames("flex flex-grow", _defineProperty({}, className, className)),
|
|
1808
1866
|
ref: inputWrapperRef,
|
|
1809
|
-
children: /*#__PURE__*/jsxRuntime.jsx(Input$
|
|
1867
|
+
children: /*#__PURE__*/jsxRuntime.jsx(Input$1, _objectSpread$n(_objectSpread$n({
|
|
1810
1868
|
autoFocus: true,
|
|
1811
1869
|
required: true,
|
|
1812
1870
|
className: "neeto-planner-inline-input",
|
|
@@ -2220,7 +2278,6 @@ var MultiSelectCheckbox$1 = function MultiSelectCheckbox(_ref2) {
|
|
|
2220
2278
|
}) : /*#__PURE__*/jsxRuntime.jsx(Select$1, {
|
|
2221
2279
|
name: name,
|
|
2222
2280
|
innerRef: ref,
|
|
2223
|
-
label: defaultLabel,
|
|
2224
2281
|
options: dropdownOptions,
|
|
2225
2282
|
onFocus: setFieldActive
|
|
2226
2283
|
})]
|
|
@@ -2830,7 +2887,8 @@ var ActionSubItem = function ActionSubItem(_ref) {
|
|
|
2830
2887
|
isTarget = _ref$isTarget === void 0 ? false : _ref$isTarget,
|
|
2831
2888
|
errorMessage = _ref.errorMessage,
|
|
2832
2889
|
_ref$openPanel = _ref.openPanel,
|
|
2833
|
-
openPanel = _ref$openPanel === void 0 ? neetoCist.noop : _ref$openPanel
|
|
2890
|
+
openPanel = _ref$openPanel === void 0 ? neetoCist.noop : _ref$openPanel,
|
|
2891
|
+
handleSlackChannelRefresh = _ref.handleSlackChannelRefresh;
|
|
2834
2892
|
var _useTranslation = reactI18next.useTranslation(),
|
|
2835
2893
|
t = _useTranslation.t;
|
|
2836
2894
|
var hasError = !!errorMessage;
|
|
@@ -2887,6 +2945,7 @@ var ActionSubItem = function ActionSubItem(_ref) {
|
|
|
2887
2945
|
}
|
|
2888
2946
|
}), /*#__PURE__*/jsxRuntime.jsx(EmailFields.Target, {
|
|
2889
2947
|
action: action,
|
|
2948
|
+
hasError: hasError,
|
|
2890
2949
|
index: index,
|
|
2891
2950
|
name: name,
|
|
2892
2951
|
selectedField: selectedField,
|
|
@@ -3026,6 +3085,8 @@ var ActionSubItem = function ActionSubItem(_ref) {
|
|
|
3026
3085
|
return openPanel("small");
|
|
3027
3086
|
}
|
|
3028
3087
|
}) : /*#__PURE__*/jsxRuntime.jsx(SelectField$2, {
|
|
3088
|
+
action: action,
|
|
3089
|
+
handleSlackChannelRefresh: handleSlackChannelRefresh,
|
|
3029
3090
|
index: index,
|
|
3030
3091
|
selectedField: selectedField,
|
|
3031
3092
|
required: true,
|
|
@@ -3198,14 +3259,15 @@ var ActionSubItemPanel = function ActionSubItemPanel() {
|
|
|
3198
3259
|
setPanelState = _useUtilityStore.setPanelState,
|
|
3199
3260
|
resetPanelState = _useUtilityStore.resetPanelState;
|
|
3200
3261
|
var _useUtilityStore2 = useUtilityStore.useUtilityStore(function (store) {
|
|
3201
|
-
var _store$panelState, _store$panelState2, _store$panelState3, _store$panelState4, _store$panelState5, _store$panelState6;
|
|
3262
|
+
var _store$panelState, _store$panelState2, _store$panelState3, _store$panelState4, _store$panelState5, _store$panelState6, _store$panelState7;
|
|
3202
3263
|
return {
|
|
3203
3264
|
name: (_store$panelState = store["panelState"]) === null || _store$panelState === void 0 || (_store$panelState = _store$panelState["data"]) === null || _store$panelState === void 0 ? void 0 : _store$panelState["name"],
|
|
3204
3265
|
index: (_store$panelState2 = store["panelState"]) === null || _store$panelState2 === void 0 || (_store$panelState2 = _store$panelState2["data"]) === null || _store$panelState2 === void 0 ? void 0 : _store$panelState2["index"],
|
|
3205
3266
|
action: (_store$panelState3 = store["panelState"]) === null || _store$panelState3 === void 0 || (_store$panelState3 = _store$panelState3["data"]) === null || _store$panelState3 === void 0 ? void 0 : _store$panelState3["action"],
|
|
3206
3267
|
valueOptions: (_store$panelState4 = store["panelState"]) === null || _store$panelState4 === void 0 || (_store$panelState4 = _store$panelState4["data"]) === null || _store$panelState4 === void 0 ? void 0 : _store$panelState4["valueOptions"],
|
|
3207
3268
|
selectedField: (_store$panelState5 = store["panelState"]) === null || _store$panelState5 === void 0 || (_store$panelState5 = _store$panelState5["data"]) === null || _store$panelState5 === void 0 ? void 0 : _store$panelState5["selectedField"],
|
|
3208
|
-
errorMessage: (_store$panelState6 = store["panelState"]) === null || _store$panelState6 === void 0 || (_store$panelState6 = _store$panelState6["data"]) === null || _store$panelState6 === void 0 ? void 0 : _store$panelState6["errorMessage"]
|
|
3269
|
+
errorMessage: (_store$panelState6 = store["panelState"]) === null || _store$panelState6 === void 0 || (_store$panelState6 = _store$panelState6["data"]) === null || _store$panelState6 === void 0 ? void 0 : _store$panelState6["errorMessage"],
|
|
3270
|
+
handleSlackChannelRefresh: (_store$panelState7 = store["panelState"]) === null || _store$panelState7 === void 0 || (_store$panelState7 = _store$panelState7["data"]) === null || _store$panelState7 === void 0 ? void 0 : _store$panelState7["handleSlackChannelRefresh"]
|
|
3209
3271
|
};
|
|
3210
3272
|
}, shallow.shallow),
|
|
3211
3273
|
name = _useUtilityStore2.name,
|
|
@@ -3213,7 +3275,8 @@ var ActionSubItemPanel = function ActionSubItemPanel() {
|
|
|
3213
3275
|
action = _useUtilityStore2.action,
|
|
3214
3276
|
valueOptions = _useUtilityStore2.valueOptions,
|
|
3215
3277
|
selectedField = _useUtilityStore2.selectedField,
|
|
3216
|
-
errorMessage = _useUtilityStore2.errorMessage
|
|
3278
|
+
errorMessage = _useUtilityStore2.errorMessage,
|
|
3279
|
+
handleSlackChannelRefresh = _useUtilityStore2.handleSlackChannelRefresh;
|
|
3217
3280
|
var _useFormikContext = formik.useFormikContext(),
|
|
3218
3281
|
setFieldTouched = _useFormikContext.setFieldTouched;
|
|
3219
3282
|
var _useField = formik.useField("".concat(name, ".metadata")),
|
|
@@ -3269,12 +3332,17 @@ var ActionSubItemPanel = function ActionSubItemPanel() {
|
|
|
3269
3332
|
})]
|
|
3270
3333
|
})
|
|
3271
3334
|
}), /*#__PURE__*/jsxRuntime.jsxs(Panel.Body, {
|
|
3272
|
-
className: "space-y-4",
|
|
3273
|
-
|
|
3274
|
-
|
|
3275
|
-
|
|
3335
|
+
className: classNames("space-y-4", {
|
|
3336
|
+
"pt-0": errorMessage
|
|
3337
|
+
}),
|
|
3338
|
+
children: [errorMessage && /*#__PURE__*/jsxRuntime.jsx(StickySidebarHeader, {
|
|
3339
|
+
children: /*#__PURE__*/jsxRuntime.jsx(ErrorCallout, {
|
|
3340
|
+
selectedField: selectedField,
|
|
3341
|
+
message: errorMessage
|
|
3342
|
+
})
|
|
3276
3343
|
}), /*#__PURE__*/jsxRuntime.jsx(ActionSubItem$1, {
|
|
3277
3344
|
action: action,
|
|
3345
|
+
handleSlackChannelRefresh: handleSlackChannelRefresh,
|
|
3278
3346
|
index: index,
|
|
3279
3347
|
selectedField: selectedField,
|
|
3280
3348
|
valueOptions: valueOptions,
|
|
@@ -3442,7 +3510,7 @@ var InputField$1 = function InputField(_ref2) {
|
|
|
3442
3510
|
}),
|
|
3443
3511
|
ref = _useActiveField2.ref,
|
|
3444
3512
|
setFieldActive = _useActiveField2.setFieldActive;
|
|
3445
|
-
return /*#__PURE__*/jsxRuntime.jsx(Input$
|
|
3513
|
+
return /*#__PURE__*/jsxRuntime.jsx(Input$2, {
|
|
3446
3514
|
name: name,
|
|
3447
3515
|
placeholder: placeholder,
|
|
3448
3516
|
ref: ref,
|
|
@@ -3702,6 +3770,12 @@ var getVerbOptions = function getVerbOptions() {
|
|
|
3702
3770
|
};
|
|
3703
3771
|
});
|
|
3704
3772
|
};
|
|
3773
|
+
var getSearchedOptions$1 = function getSearchedOptions(dropdownOptions, searchTerm) {
|
|
3774
|
+
return dropdownOptions === null || dropdownOptions === void 0 ? void 0 : dropdownOptions.filter(function (_ref) {
|
|
3775
|
+
var label = _ref.label;
|
|
3776
|
+
return ramda.toLower(label).includes(ramda.toLower(searchTerm.trim()));
|
|
3777
|
+
});
|
|
3778
|
+
};
|
|
3705
3779
|
var getAllOptions = function getAllOptions(options) {
|
|
3706
3780
|
return Array.isArray(options) ? options.map(function (option) {
|
|
3707
3781
|
return {
|
|
@@ -3819,7 +3893,7 @@ var MultiSelectCreate = function MultiSelectCreate(_ref2) {
|
|
|
3819
3893
|
MultiSelectCreate.Target = Target$3;
|
|
3820
3894
|
|
|
3821
3895
|
var _excluded$7 = ["name", "options", "placeholder", "onClick"],
|
|
3822
|
-
_excluded2 = ["name", "options", "handleOnChange", "shouldAutoFocus", "showLabel", "required"];
|
|
3896
|
+
_excluded2 = ["name", "options", "handleOnChange", "shouldAutoFocus", "showLabel", "required", "isSearchable"];
|
|
3823
3897
|
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; }
|
|
3824
3898
|
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; }
|
|
3825
3899
|
var Target$2 = function Target(_ref) {
|
|
@@ -3874,9 +3948,15 @@ var RadioField$1 = function RadioField(_ref2) {
|
|
|
3874
3948
|
showLabel = _ref2$showLabel === void 0 ? true : _ref2$showLabel,
|
|
3875
3949
|
_ref2$required = _ref2.required,
|
|
3876
3950
|
required = _ref2$required === void 0 ? false : _ref2$required,
|
|
3951
|
+
_ref2$isSearchable = _ref2.isSearchable,
|
|
3952
|
+
isSearchable = _ref2$isSearchable === void 0 ? false : _ref2$isSearchable,
|
|
3877
3953
|
otherProps = _objectWithoutProperties(_ref2, _excluded2);
|
|
3878
3954
|
var _useTranslation2 = reactI18next.useTranslation(),
|
|
3879
3955
|
t = _useTranslation2.t;
|
|
3956
|
+
var _useState = react.useState(""),
|
|
3957
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
3958
|
+
searchTerm = _useState2[0],
|
|
3959
|
+
setSearchTerm = _useState2[1];
|
|
3880
3960
|
var _useField3 = formik.useField(name),
|
|
3881
3961
|
_useField4 = _slicedToArray(_useField3, 3),
|
|
3882
3962
|
field = _useField4[0],
|
|
@@ -3891,6 +3971,7 @@ var RadioField$1 = function RadioField(_ref2) {
|
|
|
3891
3971
|
var selectedOption = neetoCist.findBy({
|
|
3892
3972
|
value: field.value
|
|
3893
3973
|
}, options);
|
|
3974
|
+
var searchedOptions = getSearchedOptions$1(options, searchTerm);
|
|
3894
3975
|
var handleRadioChange = function handleRadioChange(_ref3) {
|
|
3895
3976
|
var value = _ref3.target.value;
|
|
3896
3977
|
var selectedOption = neetoCist.findBy({
|
|
@@ -3899,25 +3980,45 @@ var RadioField$1 = function RadioField(_ref2) {
|
|
|
3899
3980
|
handleOnChange ? handleOnChange(selectedOption) : setValue(value);
|
|
3900
3981
|
setTouched(true);
|
|
3901
3982
|
};
|
|
3902
|
-
return /*#__PURE__*/jsxRuntime.
|
|
3903
|
-
|
|
3904
|
-
|
|
3905
|
-
|
|
3906
|
-
|
|
3907
|
-
|
|
3908
|
-
|
|
3909
|
-
|
|
3910
|
-
|
|
3911
|
-
|
|
3912
|
-
|
|
3913
|
-
|
|
3914
|
-
|
|
3915
|
-
|
|
3916
|
-
|
|
3917
|
-
|
|
3918
|
-
|
|
3919
|
-
|
|
3920
|
-
|
|
3983
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
3984
|
+
className: "w-full",
|
|
3985
|
+
children: [isSearchable && /*#__PURE__*/jsxRuntime.jsx(StickySidebarHeader, {
|
|
3986
|
+
children: /*#__PURE__*/jsxRuntime.jsx(Input$1, {
|
|
3987
|
+
"data-cy": "search-text-field",
|
|
3988
|
+
placeholder: t("neetoRules.common.search"),
|
|
3989
|
+
prefix: /*#__PURE__*/jsxRuntime.jsx(Search, {}),
|
|
3990
|
+
value: searchTerm,
|
|
3991
|
+
onChange: function onChange(e) {
|
|
3992
|
+
return setSearchTerm(e.target.value);
|
|
3993
|
+
},
|
|
3994
|
+
onClick: function onClick(e) {
|
|
3995
|
+
return e.stopPropagation();
|
|
3996
|
+
}
|
|
3997
|
+
})
|
|
3998
|
+
}), neetoCist.isNotEmpty(searchedOptions) ? /*#__PURE__*/jsxRuntime.jsx(Radio$1, _objectSpread$h(_objectSpread$h({
|
|
3999
|
+
ref: ref,
|
|
4000
|
+
required: required,
|
|
4001
|
+
stacked: true,
|
|
4002
|
+
label: showLabel && t("neetoRules.labels.selectValue"),
|
|
4003
|
+
value: selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.value,
|
|
4004
|
+
onChange: handleRadioChange,
|
|
4005
|
+
onFocus: setFieldActive
|
|
4006
|
+
}, otherProps), {}, {
|
|
4007
|
+
children: searchedOptions.map(function (_ref4) {
|
|
4008
|
+
var label = _ref4.label,
|
|
4009
|
+
value = _ref4.value;
|
|
4010
|
+
return /*#__PURE__*/react.createElement(Radio$1.Item, {
|
|
4011
|
+
label: label,
|
|
4012
|
+
value: value,
|
|
4013
|
+
key: value
|
|
4014
|
+
});
|
|
4015
|
+
})
|
|
4016
|
+
})) : /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
4017
|
+
className: "py-1 text-sm",
|
|
4018
|
+
"data-cy": "no-options-menu-item",
|
|
4019
|
+
children: t("neetoRules.common.noOptions")
|
|
4020
|
+
})]
|
|
4021
|
+
});
|
|
3921
4022
|
};
|
|
3922
4023
|
RadioField$1.Target = Target$2;
|
|
3923
4024
|
|
|
@@ -4142,6 +4243,7 @@ var FieldPanel = function FieldPanel() {
|
|
|
4142
4243
|
var _useField3 = formik.useField("".concat(name, ".joinType")),
|
|
4143
4244
|
_useField4 = _slicedToArray(_useField3, 1),
|
|
4144
4245
|
logicalOperator = _useField4[0];
|
|
4246
|
+
var isSearchable = conditionOptions.length > constants.MAXIMUM_OPTION_LENGTH;
|
|
4145
4247
|
var handleContinue = function handleContinue() {
|
|
4146
4248
|
!meta.error && setPanelState(ramda.mergeDeepLeft({
|
|
4147
4249
|
type: PANEL_TYPES.VERB_AND_VALUE,
|
|
@@ -4169,7 +4271,11 @@ var FieldPanel = function FieldPanel() {
|
|
|
4169
4271
|
})]
|
|
4170
4272
|
})
|
|
4171
4273
|
}), /*#__PURE__*/jsxRuntime.jsx(Panel.Body, {
|
|
4274
|
+
className: classNames({
|
|
4275
|
+
"pt-0": isSearchable
|
|
4276
|
+
}),
|
|
4172
4277
|
children: /*#__PURE__*/jsxRuntime.jsx(RadioField$1, {
|
|
4278
|
+
isSearchable: isSearchable,
|
|
4173
4279
|
shouldAutoFocus: true,
|
|
4174
4280
|
handleOnChange: handleFieldChange,
|
|
4175
4281
|
name: "".concat(name, ".field"),
|
|
@@ -4435,6 +4541,7 @@ var VerbAndValuePanel = function VerbAndValuePanel() {
|
|
|
4435
4541
|
});
|
|
4436
4542
|
};
|
|
4437
4543
|
|
|
4544
|
+
var MAXIMUM_OPTION_LENGTH = 7;
|
|
4438
4545
|
var OPERATORS = {
|
|
4439
4546
|
or: "or_operator",
|
|
4440
4547
|
and: "and_operator"
|
|
@@ -4497,7 +4604,7 @@ var DelayPanel = function DelayPanel() {
|
|
|
4497
4604
|
}), /*#__PURE__*/jsxRuntime.jsx(Panel.Body, {
|
|
4498
4605
|
children: /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
4499
4606
|
className: "flex gap-x-2",
|
|
4500
|
-
children: [/*#__PURE__*/jsxRuntime.jsx(Input$
|
|
4607
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(Input$2, {
|
|
4501
4608
|
className: "w-44",
|
|
4502
4609
|
max: 15,
|
|
4503
4610
|
min: 1,
|
|
@@ -4531,11 +4638,27 @@ var DelayPanel = function DelayPanel() {
|
|
|
4531
4638
|
});
|
|
4532
4639
|
};
|
|
4533
4640
|
|
|
4641
|
+
var getAllEvents = function getAllEvents(events, dropdownOptions) {
|
|
4642
|
+
return dropdownOptions.filter(function (option) {
|
|
4643
|
+
return events.includes(option.value);
|
|
4644
|
+
});
|
|
4645
|
+
};
|
|
4646
|
+
var getSearchedOptions = function getSearchedOptions(dropdownOptions, searchTerm) {
|
|
4647
|
+
return dropdownOptions === null || dropdownOptions === void 0 ? void 0 : dropdownOptions.filter(function (_ref) {
|
|
4648
|
+
var label = _ref.label;
|
|
4649
|
+
return ramda.toLower(label).includes(ramda.toLower(searchTerm.trim()));
|
|
4650
|
+
});
|
|
4651
|
+
};
|
|
4652
|
+
|
|
4534
4653
|
function ownKeys$f(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; }
|
|
4535
4654
|
function _objectSpread$f(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$f(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$f(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
4536
4655
|
var EventsPanel = function EventsPanel() {
|
|
4537
4656
|
var _useTranslation = reactI18next.useTranslation(),
|
|
4538
4657
|
t = _useTranslation.t;
|
|
4658
|
+
var _useState = react.useState(""),
|
|
4659
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
4660
|
+
searchTerm = _useState2[0],
|
|
4661
|
+
setSearchTerm = _useState2[1];
|
|
4539
4662
|
var _useUtilityStore = useUtilityStore.useUtilityStore(function (store) {
|
|
4540
4663
|
return {
|
|
4541
4664
|
setPanelState: store["setPanelState"]
|
|
@@ -4577,6 +4700,8 @@ var EventsPanel = function EventsPanel() {
|
|
|
4577
4700
|
var defaultData = elementProps.defaultData;
|
|
4578
4701
|
var eventNames = ramda.pluck("name", events);
|
|
4579
4702
|
var dropdownOptions = elementProps.eventOptions;
|
|
4703
|
+
var searchedOptions = getSearchedOptions(dropdownOptions, searchTerm);
|
|
4704
|
+
var isSearchable = dropdownOptions.length > MAXIMUM_OPTION_LENGTH;
|
|
4580
4705
|
var handleDefaultData = /*#__PURE__*/function () {
|
|
4581
4706
|
var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
4582
4707
|
var _values$name;
|
|
@@ -4679,10 +4804,26 @@ var EventsPanel = function EventsPanel() {
|
|
|
4679
4804
|
children: t("neetoRules.form.addEventDescription")
|
|
4680
4805
|
})]
|
|
4681
4806
|
})
|
|
4682
|
-
}), /*#__PURE__*/jsxRuntime.
|
|
4683
|
-
|
|
4807
|
+
}), /*#__PURE__*/jsxRuntime.jsxs(Panel.Body, {
|
|
4808
|
+
className: classNames({
|
|
4809
|
+
"pt-0": isSearchable
|
|
4810
|
+
}),
|
|
4811
|
+
children: [isSearchable && /*#__PURE__*/jsxRuntime.jsx(StickySidebarHeader, {
|
|
4812
|
+
children: /*#__PURE__*/jsxRuntime.jsx(Input$1, {
|
|
4813
|
+
"data-cy": "search-text-field",
|
|
4814
|
+
placeholder: t("neetoRules.common.search"),
|
|
4815
|
+
prefix: /*#__PURE__*/jsxRuntime.jsx(Search, {}),
|
|
4816
|
+
value: searchTerm,
|
|
4817
|
+
onChange: function onChange(e) {
|
|
4818
|
+
return setSearchTerm(e.target.value);
|
|
4819
|
+
},
|
|
4820
|
+
onClick: function onClick(e) {
|
|
4821
|
+
return e.stopPropagation();
|
|
4822
|
+
}
|
|
4823
|
+
})
|
|
4824
|
+
}), /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
4684
4825
|
className: "space-y-3",
|
|
4685
|
-
children: [neetoCist.isNotEmpty(
|
|
4826
|
+
children: [neetoCist.isNotEmpty(searchedOptions) ? searchedOptions.map(function (option) {
|
|
4686
4827
|
return /*#__PURE__*/react.createElement(Checkbox, {
|
|
4687
4828
|
ref: ref,
|
|
4688
4829
|
checked: eventNames === null || eventNames === void 0 ? void 0 : eventNames.includes(option.value),
|
|
@@ -4703,7 +4844,7 @@ var EventsPanel = function EventsPanel() {
|
|
|
4703
4844
|
className: "neeto-ui-input__error",
|
|
4704
4845
|
children: error
|
|
4705
4846
|
})]
|
|
4706
|
-
})
|
|
4847
|
+
})]
|
|
4707
4848
|
}), /*#__PURE__*/jsxRuntime.jsx(Panel.Footer, {
|
|
4708
4849
|
children: /*#__PURE__*/jsxRuntime.jsx(Button, {
|
|
4709
4850
|
"data-cy": "continue-button",
|
|
@@ -5228,7 +5369,8 @@ var ActionItem = function ActionItem(_ref) {
|
|
|
5228
5369
|
selectedActionOptions = _ref.selectedActionOptions,
|
|
5229
5370
|
routeToSlackIntegration = _ref.routeToSlackIntegration,
|
|
5230
5371
|
shouldOpenPanel = _ref.shouldOpenPanel,
|
|
5231
|
-
setShouldOpenPanel = _ref.setShouldOpenPanel
|
|
5372
|
+
setShouldOpenPanel = _ref.setShouldOpenPanel,
|
|
5373
|
+
handleSlackChannelRefresh = _ref.handleSlackChannelRefresh;
|
|
5232
5374
|
var _useTranslation = reactI18next.useTranslation(),
|
|
5233
5375
|
t = _useTranslation.t;
|
|
5234
5376
|
var _useFormikContext = formik.useFormikContext(),
|
|
@@ -5240,10 +5382,12 @@ var ActionItem = function ActionItem(_ref) {
|
|
|
5240
5382
|
setFieldActive = _useActiveField.setFieldActive;
|
|
5241
5383
|
var _useUtilityStore = useUtilityStore.useUtilityStore(function (store) {
|
|
5242
5384
|
return {
|
|
5243
|
-
setPanelState: store["setPanelState"]
|
|
5385
|
+
setPanelState: store["setPanelState"],
|
|
5386
|
+
setErrorFields: store["setErrorFields"]
|
|
5244
5387
|
};
|
|
5245
5388
|
}, shallow.shallow),
|
|
5246
|
-
setPanelState = _useUtilityStore.setPanelState
|
|
5389
|
+
setPanelState = _useUtilityStore.setPanelState,
|
|
5390
|
+
setErrorFields = _useUtilityStore.setErrorFields;
|
|
5247
5391
|
var _useUtilityStore2 = useUtilityStore.useUtilityStore(function (store) {
|
|
5248
5392
|
var _store$panelState;
|
|
5249
5393
|
return {
|
|
@@ -5301,7 +5445,8 @@ var ActionItem = function ActionItem(_ref) {
|
|
|
5301
5445
|
selectedField: selectedField,
|
|
5302
5446
|
onSelectAction: onSelectAction,
|
|
5303
5447
|
valueOptions: getSelectedFieldOptions(),
|
|
5304
|
-
errorMessage: errorMessage
|
|
5448
|
+
errorMessage: errorMessage,
|
|
5449
|
+
handleSlackChannelRefresh: handleSlackChannelRefresh
|
|
5305
5450
|
};
|
|
5306
5451
|
var _openPanel = function openPanel(type, panelSize) {
|
|
5307
5452
|
setPanelState({
|
|
@@ -5329,7 +5474,24 @@ var ActionItem = function ActionItem(_ref) {
|
|
|
5329
5474
|
})
|
|
5330
5475
|
});
|
|
5331
5476
|
});
|
|
5332
|
-
}, [selectedField]);
|
|
5477
|
+
}, [selectedField === null || selectedField === void 0 ? void 0 : selectedField.value]);
|
|
5478
|
+
var hasError = !!errorMessage;
|
|
5479
|
+
react.useEffect(function () {
|
|
5480
|
+
if (hasError) {
|
|
5481
|
+
setErrorFields(function (prev) {
|
|
5482
|
+
return prev.includes(name) ? prev : [].concat(_toConsumableArray(prev), [name]);
|
|
5483
|
+
});
|
|
5484
|
+
} else {
|
|
5485
|
+
setErrorFields(function (prev) {
|
|
5486
|
+
return prev.filter(neetoCist.isNot(name));
|
|
5487
|
+
});
|
|
5488
|
+
}
|
|
5489
|
+
return function () {
|
|
5490
|
+
setErrorFields(function (prev) {
|
|
5491
|
+
return prev.filter(neetoCist.isNot(name));
|
|
5492
|
+
});
|
|
5493
|
+
};
|
|
5494
|
+
}, [hasError, name, setErrorFields]);
|
|
5333
5495
|
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
5334
5496
|
className: "flex flex-grow min-w-0 flex-wrap gap-x-1 gap-y-3",
|
|
5335
5497
|
children: /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
@@ -5345,7 +5507,7 @@ var ActionItem = function ActionItem(_ref) {
|
|
|
5345
5507
|
style: "link",
|
|
5346
5508
|
className: classNames("neeto-ui-text-gray-800 neeto-ui-font-semibold underline", {
|
|
5347
5509
|
"neeto-ui-text-accent-800": isFieldActive,
|
|
5348
|
-
"neeto-ui-text-error-500": isActionSelected
|
|
5510
|
+
"neeto-ui-text-error-500": isActionSelected || !!errorMessage
|
|
5349
5511
|
}),
|
|
5350
5512
|
onClick: handleOnClick
|
|
5351
5513
|
}), /*#__PURE__*/jsxRuntime.jsx(ActionSubItem$1, _objectSpread$d(_objectSpread$d({}, _objectSpread$d(_objectSpread$d({}, panelData), {}, {
|
|
@@ -5448,6 +5610,7 @@ var Actions = function Actions(_ref) {
|
|
|
5448
5610
|
children: [/*#__PURE__*/jsxRuntime.jsx(ActionItem$1, {
|
|
5449
5611
|
action: action,
|
|
5450
5612
|
elementProps: elementProps,
|
|
5613
|
+
handleSlackChannelRefresh: handleSlackChannelRefresh,
|
|
5451
5614
|
index: index,
|
|
5452
5615
|
onSelectAction: onSelectAction,
|
|
5453
5616
|
routeToSlackIntegration: routeToSlackIntegration,
|
|
@@ -5458,18 +5621,7 @@ var Actions = function Actions(_ref) {
|
|
|
5458
5621
|
parentName: name
|
|
5459
5622
|
}), /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
5460
5623
|
className: "flex flex-wrap flex-shrink-0 self-center",
|
|
5461
|
-
children: [
|
|
5462
|
-
"data-cy": "refresh-slack-button",
|
|
5463
|
-
icon: Refresh,
|
|
5464
|
-
size: "medium",
|
|
5465
|
-
tooltipProps: {
|
|
5466
|
-
content: t("neetoRules.slack.refreshChannelList"),
|
|
5467
|
-
position: "top"
|
|
5468
|
-
},
|
|
5469
|
-
onClick: function onClick() {
|
|
5470
|
-
return handleSlackChannelRefresh();
|
|
5471
|
-
}
|
|
5472
|
-
}), showButton && index === actions.length - 1 && /*#__PURE__*/jsxRuntime.jsx(Button, {
|
|
5624
|
+
children: [showButton && index === actions.length - 1 && /*#__PURE__*/jsxRuntime.jsx(Button, {
|
|
5473
5625
|
"data-cy": "add-action-button",
|
|
5474
5626
|
icon: Plus,
|
|
5475
5627
|
size: "medium",
|
|
@@ -5650,7 +5802,7 @@ var ConditionItem = function ConditionItem(_ref) {
|
|
|
5650
5802
|
})
|
|
5651
5803
|
});
|
|
5652
5804
|
});
|
|
5653
|
-
}, [selectedField, condition.verb]);
|
|
5805
|
+
}, [selectedField === null || selectedField === void 0 ? void 0 : selectedField.value, condition.verb]);
|
|
5654
5806
|
return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
5655
5807
|
children: [!!index && /*#__PURE__*/jsxRuntime.jsx(LogicalOperator, {
|
|
5656
5808
|
handleGroupJoinType: handleGroupJoinType,
|
|
@@ -6014,12 +6166,6 @@ var Performer = function Performer(_ref) {
|
|
|
6014
6166
|
});
|
|
6015
6167
|
};
|
|
6016
6168
|
|
|
6017
|
-
var getAllEvents = function getAllEvents(events, dropdownOptions) {
|
|
6018
|
-
return dropdownOptions.filter(function (option) {
|
|
6019
|
-
return events.includes(option.value);
|
|
6020
|
-
});
|
|
6021
|
-
};
|
|
6022
|
-
|
|
6023
6169
|
function ownKeys$9(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; }
|
|
6024
6170
|
function _objectSpread$9(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$9(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$9(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
6025
6171
|
var Events = function Events(_ref) {
|
|
@@ -6244,7 +6390,7 @@ var InputField = function InputField(_ref) {
|
|
|
6244
6390
|
_useDebouncedUpdate2 = _slicedToArray(_useDebouncedUpdate, 2),
|
|
6245
6391
|
text = _useDebouncedUpdate2[0],
|
|
6246
6392
|
setText = _useDebouncedUpdate2[1];
|
|
6247
|
-
return /*#__PURE__*/jsxRuntime.jsx(Input$
|
|
6393
|
+
return /*#__PURE__*/jsxRuntime.jsx(Input$2, _objectSpread$7(_objectSpread$7({
|
|
6248
6394
|
className: "mb-4",
|
|
6249
6395
|
label: label || (elementProps === null || elementProps === void 0 ? void 0 : elementProps.label)
|
|
6250
6396
|
}, field), {}, {
|
|
@@ -6631,10 +6777,12 @@ var Form = function Form(_ref) {
|
|
|
6631
6777
|
customData = _useCustomDataStore.customData;
|
|
6632
6778
|
var _useUtilityStore = useUtilityStore.useUtilityStore(function (store) {
|
|
6633
6779
|
return {
|
|
6634
|
-
resetPanelState: store["resetPanelState"]
|
|
6780
|
+
resetPanelState: store["resetPanelState"],
|
|
6781
|
+
errorFields: store["errorFields"]
|
|
6635
6782
|
};
|
|
6636
6783
|
}, shallow.shallow),
|
|
6637
|
-
resetPanelState = _useUtilityStore.resetPanelState
|
|
6784
|
+
resetPanelState = _useUtilityStore.resetPanelState,
|
|
6785
|
+
errorFields = _useUtilityStore.errorFields;
|
|
6638
6786
|
var initialValues = react.useMemo(function () {
|
|
6639
6787
|
return formatData(data);
|
|
6640
6788
|
}, [data]);
|
|
@@ -6654,6 +6802,10 @@ var Form = function Form(_ref) {
|
|
|
6654
6802
|
};
|
|
6655
6803
|
}, []);
|
|
6656
6804
|
var submitForm = function submitForm(values, formikBag) {
|
|
6805
|
+
if (neetoCist.isNotEmpty(errorFields)) {
|
|
6806
|
+
formikBag.setSubmitting(false);
|
|
6807
|
+
return;
|
|
6808
|
+
}
|
|
6657
6809
|
if (isCancelledNameGeneration) {
|
|
6658
6810
|
saveRuleName(values);
|
|
6659
6811
|
return;
|