@bigbinary/neeto-rules-frontend 0.7.4 → 0.8.0
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/README.md +61 -0
- package/app/javascript/src/translations/en.json +17 -0
- package/dist/index.cjs.js +449 -62
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.js +439 -61
- package/dist/index.js.map +1 -1
- package/package.json +5 -5
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { withImmutableActions, withT, useStateWithDependency, useDebounce } from '@bigbinary/neeto-commons-frontend/react-utils';
|
|
1
|
+
import { withImmutableActions, withT, useMutationWithInvalidation, useQueryParams, useStateWithDependency, useDebounce } from '@bigbinary/neeto-commons-frontend/react-utils';
|
|
2
2
|
import { create as create$1 } from 'zustand';
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import React__default, { useState, useRef, useEffect, useContext, useLayoutEffect as useLayoutEffect$1, createElement, useMemo as useMemo$1, forwardRef, createContext, useCallback as useCallback$1, Component, Fragment as Fragment$1, memo } from 'react';
|
|
@@ -9,21 +9,30 @@ import Pane from '@bigbinary/neetoui/Pane';
|
|
|
9
9
|
import Typography from '@bigbinary/neetoui/Typography';
|
|
10
10
|
import { Down, Up, Reorder, Delete, Check, Search, Close, Plus, Refresh, Eye } from '@bigbinary/neeto-icons';
|
|
11
11
|
import Button from '@bigbinary/neetoui/Button';
|
|
12
|
-
import { pluck, equals, clone, isNil,
|
|
12
|
+
import { pluck, isNotNil, isEmpty, equals, clone as clone$1, isNil, whereAny, useWith, path, split, assocPath, toLower, without, append as append$1, pipe, filter, uniq, join, map, assoc, mergeLeft, includes, test, partition } from 'ramda';
|
|
13
13
|
import { useTranslation, Trans } from 'react-i18next';
|
|
14
14
|
import { jsxs, Fragment, jsx as jsx$1 } from 'react/jsx-runtime';
|
|
15
15
|
import { t as t$5 } from 'i18next';
|
|
16
|
+
import { DEFAULT_PAGE_SIZE } from '@bigbinary/neeto-commons-frontend/constants';
|
|
17
|
+
import SubHeader from '@bigbinary/neeto-molecules/SubHeader';
|
|
18
|
+
import TableWrapper from '@bigbinary/neeto-molecules/TableWrapper';
|
|
19
|
+
import Alert from '@bigbinary/neetoui/Alert';
|
|
20
|
+
import NoData from '@bigbinary/neetoui/NoData';
|
|
21
|
+
import Table from '@bigbinary/neetoui/Table';
|
|
22
|
+
import { useQuery } from 'react-query';
|
|
23
|
+
import axios from 'axios';
|
|
24
|
+
import { buildUrl, joinHyphenCase, hyphenize } from '@bigbinary/neeto-commons-frontend/utils';
|
|
25
|
+
import Switch from '@bigbinary/neetoui/Switch';
|
|
26
|
+
import { Link, withRouter } from 'react-router-dom';
|
|
16
27
|
import ReactDOM, { unstable_batchedUpdates, flushSync, createPortal } from 'react-dom';
|
|
17
28
|
import Pagination from '@bigbinary/neetoui/Pagination';
|
|
18
|
-
import { withRouter } from 'react-router-dom';
|
|
19
29
|
import { shallow } from 'zustand/shallow';
|
|
20
30
|
import classNames$1 from 'classnames';
|
|
21
31
|
import { useFormikContext, Formik, Form, useField, FieldArray, ErrorMessage } from 'formik';
|
|
22
32
|
import ActionBlock from '@bigbinary/neetoui/formik/ActionBlock';
|
|
23
33
|
import { isPhoneNumberValid } from '@bigbinary/neeto-molecules/PhoneNumber';
|
|
24
34
|
import * as yup from 'yup';
|
|
25
|
-
import { isEditorEmpty
|
|
26
|
-
import { joinHyphenCase, hyphenize } from '@bigbinary/neeto-commons-frontend/utils';
|
|
35
|
+
import { isEditorEmpty } from '@bigbinary/neeto-editor/utils';
|
|
27
36
|
import Dropdown$1 from '@bigbinary/neetoui/Dropdown';
|
|
28
37
|
import Input$2 from '@bigbinary/neetoui/Input';
|
|
29
38
|
import Textarea from '@bigbinary/neetoui/formik/Textarea';
|
|
@@ -31,6 +40,7 @@ import Label from '@bigbinary/neetoui/Label';
|
|
|
31
40
|
import Select$1 from '@bigbinary/neetoui/Select';
|
|
32
41
|
import dayjs from 'dayjs';
|
|
33
42
|
import DatePicker from '@bigbinary/neetoui/DatePicker';
|
|
43
|
+
import FormikEditor from '@bigbinary/neeto-editor/FormikEditor';
|
|
34
44
|
import MultiEmailInput from '@bigbinary/neetoui/formik/MultiEmailInput';
|
|
35
45
|
import Input$3 from '@bigbinary/neetoui/formik/Input';
|
|
36
46
|
import useHotkeys from '@bigbinary/neeto-hotkeys';
|
|
@@ -398,8 +408,8 @@ var CONDITION_VALUE_TYPES = {
|
|
|
398
408
|
var INPUT_FIELD_TYPES = ["email", "text", "number", "decimal", "url", "regex"];
|
|
399
409
|
var MAXIMUM_OPTION_LENGTH$3 = 7;
|
|
400
410
|
|
|
401
|
-
function ownKeys$
|
|
402
|
-
function _objectSpread$
|
|
411
|
+
function ownKeys$u(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; }
|
|
412
|
+
function _objectSpread$s(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$u(Object(t), !0).forEach(function (r) { _defineProperty$2(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$u(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
403
413
|
var ConditionsDetail = function ConditionsDetail(_ref) {
|
|
404
414
|
var conditions = _ref.conditions,
|
|
405
415
|
conditionOptions = _ref.conditionOptions,
|
|
@@ -415,7 +425,7 @@ var ConditionsDetail = function ConditionsDetail(_ref) {
|
|
|
415
425
|
t = _useTranslation.t;
|
|
416
426
|
var conditionsList = conditions.value;
|
|
417
427
|
var allConditions = viewMore && conditionsList.length > PREVIEW_CONDITION_LIMIT ? conditionsList : conditionsList.slice(0, PREVIEW_CONDITION_LIMIT);
|
|
418
|
-
var allConditionVerbs = _objectSpread$
|
|
428
|
+
var allConditionVerbs = _objectSpread$s(_objectSpread$s({}, VERB_LABELS), conditionVerbs);
|
|
419
429
|
var getLogicOperator = function getLogicOperator(joinType) {
|
|
420
430
|
return joinType === "or_operator" ? "or" : "and";
|
|
421
431
|
};
|
|
@@ -571,8 +581,8 @@ var EventsDetail = function EventsDetail(_ref) {
|
|
|
571
581
|
});
|
|
572
582
|
};
|
|
573
583
|
|
|
574
|
-
function ownKeys$
|
|
575
|
-
function _objectSpread$
|
|
584
|
+
function ownKeys$t(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; }
|
|
585
|
+
function _objectSpread$r(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$t(Object(t), !0).forEach(function (r) { _defineProperty$2(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$t(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
576
586
|
var RulePreview = withT(function (_ref) {
|
|
577
587
|
var t = _ref.t,
|
|
578
588
|
isLoading = _ref.isLoading,
|
|
@@ -593,7 +603,7 @@ var RulePreview = withT(function (_ref) {
|
|
|
593
603
|
style: "h4",
|
|
594
604
|
weight: "semibold",
|
|
595
605
|
children: ruleDetails.name.value
|
|
596
|
-
}), isNotEmpty(moreDropdownProps) && /*#__PURE__*/jsx$1(MoreDropdown, _objectSpread$
|
|
606
|
+
}), isNotEmpty(moreDropdownProps) && /*#__PURE__*/jsx$1(MoreDropdown, _objectSpread$r({}, moreDropdownProps))]
|
|
597
607
|
})
|
|
598
608
|
}), /*#__PURE__*/jsx$1(Pane.Body, {
|
|
599
609
|
children: /*#__PURE__*/jsxs("div", {
|
|
@@ -639,6 +649,419 @@ var RulePreview = withT(function (_ref) {
|
|
|
639
649
|
});
|
|
640
650
|
});
|
|
641
651
|
|
|
652
|
+
function _objectWithoutPropertiesLoose$2(source, excluded) {
|
|
653
|
+
if (source == null) return {};
|
|
654
|
+
var target = {};
|
|
655
|
+
var sourceKeys = Object.keys(source);
|
|
656
|
+
var key, i;
|
|
657
|
+
for (i = 0; i < sourceKeys.length; i++) {
|
|
658
|
+
key = sourceKeys[i];
|
|
659
|
+
if (excluded.indexOf(key) >= 0) continue;
|
|
660
|
+
target[key] = source[key];
|
|
661
|
+
}
|
|
662
|
+
return target;
|
|
663
|
+
}
|
|
664
|
+
|
|
665
|
+
function _objectWithoutProperties$1(source, excluded) {
|
|
666
|
+
if (source == null) return {};
|
|
667
|
+
var target = _objectWithoutPropertiesLoose$2(source, excluded);
|
|
668
|
+
var key, i;
|
|
669
|
+
if (Object.getOwnPropertySymbols) {
|
|
670
|
+
var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
|
|
671
|
+
for (i = 0; i < sourceSymbolKeys.length; i++) {
|
|
672
|
+
key = sourceSymbolKeys[i];
|
|
673
|
+
if (excluded.indexOf(key) >= 0) continue;
|
|
674
|
+
if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
|
|
675
|
+
target[key] = source[key];
|
|
676
|
+
}
|
|
677
|
+
}
|
|
678
|
+
return target;
|
|
679
|
+
}
|
|
680
|
+
|
|
681
|
+
var _excluded$k = ["url"];
|
|
682
|
+
var fetch = function fetch(_ref) {
|
|
683
|
+
var url = _ref.url,
|
|
684
|
+
params = _objectWithoutProperties$1(_ref, _excluded$k);
|
|
685
|
+
return axios.get(url, {
|
|
686
|
+
params: params
|
|
687
|
+
});
|
|
688
|
+
};
|
|
689
|
+
var update$1 = function update(_ref2) {
|
|
690
|
+
var url = _ref2.url,
|
|
691
|
+
id = _ref2.id,
|
|
692
|
+
payload = _ref2.payload;
|
|
693
|
+
return axios.patch("".concat(url, "/").concat(id), payload);
|
|
694
|
+
};
|
|
695
|
+
var clone = function clone(_ref3) {
|
|
696
|
+
var url = _ref3.url,
|
|
697
|
+
id = _ref3.id;
|
|
698
|
+
return axios.post("".concat(url, "/").concat(id, "/clone"));
|
|
699
|
+
};
|
|
700
|
+
var destroy = function destroy(_ref4) {
|
|
701
|
+
var url = _ref4.url,
|
|
702
|
+
id = _ref4.id;
|
|
703
|
+
return axios["delete"]("".concat(url, "/").concat(id));
|
|
704
|
+
};
|
|
705
|
+
var automationRulesApi = {
|
|
706
|
+
fetch: fetch,
|
|
707
|
+
update: update$1,
|
|
708
|
+
clone: clone,
|
|
709
|
+
destroy: destroy
|
|
710
|
+
};
|
|
711
|
+
|
|
712
|
+
//TODO: Remove if not used
|
|
713
|
+
var AUTOMATION_RULES = "automation-rules";
|
|
714
|
+
var STALE_TIME = 3200000;
|
|
715
|
+
|
|
716
|
+
function ownKeys$s(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; }
|
|
717
|
+
function _objectSpread$q(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$s(Object(t), !0).forEach(function (r) { _defineProperty$2(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$s(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
718
|
+
var useFetchAutomationRules = function useFetchAutomationRules(params) {
|
|
719
|
+
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
720
|
+
return useQuery([AUTOMATION_RULES, params], function () {
|
|
721
|
+
return automationRulesApi.fetch(params);
|
|
722
|
+
}, _objectSpread$q({
|
|
723
|
+
staleTime: STALE_TIME,
|
|
724
|
+
select: function select(response) {
|
|
725
|
+
return response.data || response;
|
|
726
|
+
},
|
|
727
|
+
keepPreviousData: true
|
|
728
|
+
}, options));
|
|
729
|
+
};
|
|
730
|
+
var useUpdateAutomationRule = function useUpdateAutomationRule() {
|
|
731
|
+
return useMutationWithInvalidation(automationRulesApi.update, {
|
|
732
|
+
keysToInvalidate: [AUTOMATION_RULES]
|
|
733
|
+
});
|
|
734
|
+
};
|
|
735
|
+
var useCloneAutomationRule = function useCloneAutomationRule() {
|
|
736
|
+
return useMutationWithInvalidation(automationRulesApi.clone, {
|
|
737
|
+
keysToInvalidate: [AUTOMATION_RULES]
|
|
738
|
+
});
|
|
739
|
+
};
|
|
740
|
+
var useDeleteAutomationRule = function useDeleteAutomationRule() {
|
|
741
|
+
return useMutationWithInvalidation(automationRulesApi.destroy, {
|
|
742
|
+
keysToInvalidate: [AUTOMATION_RULES]
|
|
743
|
+
});
|
|
744
|
+
};
|
|
745
|
+
|
|
746
|
+
var createRoutes = function createRoutes(basePath) {
|
|
747
|
+
return {
|
|
748
|
+
index: basePath,
|
|
749
|
+
"new": "".concat(basePath, "/new"),
|
|
750
|
+
edit: "".concat(basePath, "/:ruleId/edit")
|
|
751
|
+
};
|
|
752
|
+
};
|
|
753
|
+
|
|
754
|
+
var STATUS_KEYS = {
|
|
755
|
+
ENABLED: "enabled",
|
|
756
|
+
DISABLED: "disabled"
|
|
757
|
+
};
|
|
758
|
+
var DEFAULT_INIT_PAGE = 1;
|
|
759
|
+
|
|
760
|
+
function _arrayWithoutHoles$1(arr) {
|
|
761
|
+
if (Array.isArray(arr)) return _arrayLikeToArray$1(arr);
|
|
762
|
+
}
|
|
763
|
+
|
|
764
|
+
function _iterableToArray$1(iter) {
|
|
765
|
+
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
|
|
766
|
+
}
|
|
767
|
+
|
|
768
|
+
function _nonIterableSpread$1() {
|
|
769
|
+
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
770
|
+
}
|
|
771
|
+
|
|
772
|
+
function _toConsumableArray$1(arr) {
|
|
773
|
+
return _arrayWithoutHoles$1(arr) || _iterableToArray$1(arr) || _unsupportedIterableToArray$1(arr) || _nonIterableSpread$1();
|
|
774
|
+
}
|
|
775
|
+
|
|
776
|
+
var DisableMessage = withT(function (_ref) {
|
|
777
|
+
var t = _ref.t,
|
|
778
|
+
disabledReason = _ref.disabledReason;
|
|
779
|
+
return isNotNil(disabledReason) && /*#__PURE__*/jsx$1("div", {
|
|
780
|
+
children: /*#__PURE__*/jsx$1(Typography, {
|
|
781
|
+
"class": "text-red-600",
|
|
782
|
+
component: "span",
|
|
783
|
+
style: "body2",
|
|
784
|
+
children: t(disabledReason)
|
|
785
|
+
})
|
|
786
|
+
});
|
|
787
|
+
});
|
|
788
|
+
|
|
789
|
+
var _excluded$j = ["onClick"],
|
|
790
|
+
_excluded2 = ["handleChangeStatus", "additionalColumns", "onPreview"];
|
|
791
|
+
function ownKeys$r(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; }
|
|
792
|
+
function _objectSpread$p(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$r(Object(t), !0).forEach(function (r) { _defineProperty$2(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$r(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
793
|
+
var buildActionDropdownMenuItems = function buildActionDropdownMenuItems(_ref) {
|
|
794
|
+
var rule = _ref.rule,
|
|
795
|
+
onClone = _ref.onClone,
|
|
796
|
+
onDelete = _ref.onDelete,
|
|
797
|
+
_ref$moreDropdownItem = _ref.moreDropdownItems,
|
|
798
|
+
moreDropdownItems = _ref$moreDropdownItem === void 0 ? [] : _ref$moreDropdownItem,
|
|
799
|
+
automationRulesPath = _ref.automationRulesPath;
|
|
800
|
+
return [].concat(_toConsumableArray$1(moreDropdownItems.map(function (_ref2) {
|
|
801
|
+
var _onClick = _ref2.onClick,
|
|
802
|
+
others = _objectWithoutProperties$1(_ref2, _excluded$j);
|
|
803
|
+
return _objectSpread$p(_objectSpread$p({}, others), {}, {
|
|
804
|
+
onClick: function onClick() {
|
|
805
|
+
return _onClick(rule);
|
|
806
|
+
}
|
|
807
|
+
});
|
|
808
|
+
})), [{
|
|
809
|
+
key: "edit",
|
|
810
|
+
className: "neeto-ui-btn",
|
|
811
|
+
"data-test-id": "automation-rules-edit-link",
|
|
812
|
+
label: t$5("neetoRules.button.edit"),
|
|
813
|
+
to: buildUrl(createRoutes(automationRulesPath).edit, {
|
|
814
|
+
ruleId: rule.id
|
|
815
|
+
})
|
|
816
|
+
}, {
|
|
817
|
+
key: "clone",
|
|
818
|
+
"data-test-id": "automation-rules-clone-link",
|
|
819
|
+
label: t$5("neetoRules.button.clone"),
|
|
820
|
+
onClick: function onClick() {
|
|
821
|
+
return onClone(rule.id);
|
|
822
|
+
}
|
|
823
|
+
}, {
|
|
824
|
+
key: "delete",
|
|
825
|
+
"data-test-id": "automation-rules-delete-link",
|
|
826
|
+
label: t$5("neetoRules.button.delete"),
|
|
827
|
+
onClick: function onClick() {
|
|
828
|
+
return onDelete(rule);
|
|
829
|
+
}
|
|
830
|
+
}]);
|
|
831
|
+
};
|
|
832
|
+
var getColumnData = function getColumnData(_ref3) {
|
|
833
|
+
var handleChangeStatus = _ref3.handleChangeStatus,
|
|
834
|
+
_ref3$additionalColum = _ref3.additionalColumns,
|
|
835
|
+
additionalColumns = _ref3$additionalColum === void 0 ? [] : _ref3$additionalColum,
|
|
836
|
+
onPreview = _ref3.onPreview,
|
|
837
|
+
otherProps = _objectWithoutProperties$1(_ref3, _excluded2);
|
|
838
|
+
return [{
|
|
839
|
+
title: t$5("neetoRules.labels.name"),
|
|
840
|
+
dataIndex: "name",
|
|
841
|
+
key: "name",
|
|
842
|
+
ellipsis: true,
|
|
843
|
+
width: 440,
|
|
844
|
+
render: function render(name, rule) {
|
|
845
|
+
return /*#__PURE__*/jsxs("div", {
|
|
846
|
+
children: [/*#__PURE__*/jsxs("div", {
|
|
847
|
+
className: "flex items-center justify-between gap-x-3",
|
|
848
|
+
children: [/*#__PURE__*/jsx$1(Button, {
|
|
849
|
+
className: "whitespace-pre-line break-words text-left",
|
|
850
|
+
style: "link",
|
|
851
|
+
onClick: function onClick() {
|
|
852
|
+
return onPreview(rule.id);
|
|
853
|
+
},
|
|
854
|
+
children: name
|
|
855
|
+
}), /*#__PURE__*/jsx$1(MoreDropdown, {
|
|
856
|
+
dropdownProps: {
|
|
857
|
+
strategy: "fixed"
|
|
858
|
+
},
|
|
859
|
+
menuItems: buildActionDropdownMenuItems(_objectSpread$p({
|
|
860
|
+
rule: rule
|
|
861
|
+
}, otherProps))
|
|
862
|
+
})]
|
|
863
|
+
}), /*#__PURE__*/jsx$1(DisableMessage, {
|
|
864
|
+
disabledReason: rule.disabledReason
|
|
865
|
+
})]
|
|
866
|
+
});
|
|
867
|
+
}
|
|
868
|
+
}, {
|
|
869
|
+
title: t$5("neetoRules.labels.description"),
|
|
870
|
+
dataIndex: "description",
|
|
871
|
+
key: "description",
|
|
872
|
+
width: 390,
|
|
873
|
+
render: function render(description) {
|
|
874
|
+
return /*#__PURE__*/jsx$1(Typography, {
|
|
875
|
+
className: "whitespace-pre-line break-words",
|
|
876
|
+
style: "body2",
|
|
877
|
+
children: description
|
|
878
|
+
});
|
|
879
|
+
}
|
|
880
|
+
}, {
|
|
881
|
+
title: t$5("neetoRules.labels.active"),
|
|
882
|
+
key: "active",
|
|
883
|
+
width: 100,
|
|
884
|
+
align: "center",
|
|
885
|
+
render: function render(_, rule) {
|
|
886
|
+
return /*#__PURE__*/jsx$1("div", {
|
|
887
|
+
className: "flex justify-center",
|
|
888
|
+
children: /*#__PURE__*/jsx$1(Switch, {
|
|
889
|
+
checked: rule.status === STATUS_KEYS.ENABLED,
|
|
890
|
+
"data-test-id": "automation-rules-state-switch-row",
|
|
891
|
+
disabled: !!rule.disabledReason,
|
|
892
|
+
onChange: function onChange(e) {
|
|
893
|
+
handleChangeStatus(e, rule.id);
|
|
894
|
+
}
|
|
895
|
+
})
|
|
896
|
+
});
|
|
897
|
+
}
|
|
898
|
+
}].concat(_toConsumableArray$1(additionalColumns));
|
|
899
|
+
};
|
|
900
|
+
var renderNoDataHelpText = function renderNoDataHelpText(helpDocUrl) {
|
|
901
|
+
return /*#__PURE__*/jsx$1(Trans, {
|
|
902
|
+
i18nKey: "neetoRules.noData.helpText",
|
|
903
|
+
components: {
|
|
904
|
+
a: /*#__PURE__*/jsx$1(Link, {
|
|
905
|
+
className: "neeto-ui-text-primary-600 underline",
|
|
906
|
+
target: "_blank",
|
|
907
|
+
to: {
|
|
908
|
+
pathname: helpDocUrl
|
|
909
|
+
}
|
|
910
|
+
})
|
|
911
|
+
}
|
|
912
|
+
});
|
|
913
|
+
};
|
|
914
|
+
|
|
915
|
+
function ownKeys$q(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; }
|
|
916
|
+
function _objectSpread$o(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$q(Object(t), !0).forEach(function (r) { _defineProperty$2(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$q(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
917
|
+
var RulesTable = function RulesTable(_ref) {
|
|
918
|
+
var url = _ref.automationRulesEndpoint,
|
|
919
|
+
additionalColumns = _ref.additionalColumns,
|
|
920
|
+
_ref$automationRulesP = _ref.automationRulesPath,
|
|
921
|
+
automationRulesPath = _ref$automationRulesP === void 0 ? "/" : _ref$automationRulesP,
|
|
922
|
+
onPreview = _ref.onPreview,
|
|
923
|
+
_ref$helpDocUrl = _ref.helpDocUrl,
|
|
924
|
+
helpDocUrl = _ref$helpDocUrl === void 0 ? null : _ref$helpDocUrl,
|
|
925
|
+
_ref$moreDropdownItem = _ref.moreDropdownItems,
|
|
926
|
+
moreDropdownItems = _ref$moreDropdownItem === void 0 ? [] : _ref$moreDropdownItem;
|
|
927
|
+
var _useState = useState(null),
|
|
928
|
+
_useState2 = _slicedToArray$1(_useState, 2),
|
|
929
|
+
selectedRule = _useState2[0],
|
|
930
|
+
setSelectedRule = _useState2[1];
|
|
931
|
+
var _useState3 = useState(DEFAULT_INIT_PAGE),
|
|
932
|
+
_useState4 = _slicedToArray$1(_useState3, 2),
|
|
933
|
+
page = _useState4[0],
|
|
934
|
+
setPage = _useState4[1];
|
|
935
|
+
var _useTranslation = useTranslation(),
|
|
936
|
+
t = _useTranslation.t;
|
|
937
|
+
var _useQueryParams = useQueryParams(),
|
|
938
|
+
_useQueryParams$searc = _useQueryParams.searchTerm,
|
|
939
|
+
searchTerm = _useQueryParams$searc === void 0 ? "" : _useQueryParams$searc;
|
|
940
|
+
var _useFetchAutomationRu = useFetchAutomationRules({
|
|
941
|
+
url: url,
|
|
942
|
+
page: page,
|
|
943
|
+
pageSize: DEFAULT_PAGE_SIZE,
|
|
944
|
+
searchTerm: searchTerm
|
|
945
|
+
}),
|
|
946
|
+
_useFetchAutomationRu2 = _useFetchAutomationRu.data,
|
|
947
|
+
_useFetchAutomationRu3 = _useFetchAutomationRu2 === void 0 ? {} : _useFetchAutomationRu2,
|
|
948
|
+
_useFetchAutomationRu4 = _useFetchAutomationRu3.rules,
|
|
949
|
+
rules = _useFetchAutomationRu4 === void 0 ? [] : _useFetchAutomationRu4,
|
|
950
|
+
_useFetchAutomationRu5 = _useFetchAutomationRu3.totalCount,
|
|
951
|
+
totalCount = _useFetchAutomationRu5 === void 0 ? 0 : _useFetchAutomationRu5,
|
|
952
|
+
isLoading = _useFetchAutomationRu.isLoading;
|
|
953
|
+
var _useUpdateAutomationR = useUpdateAutomationRule(),
|
|
954
|
+
updateRule = _useUpdateAutomationR.mutate,
|
|
955
|
+
isUpdating = _useUpdateAutomationR.isLoading;
|
|
956
|
+
var _useCloneAutomationRu = useCloneAutomationRule(),
|
|
957
|
+
cloneRule = _useCloneAutomationRu.mutate,
|
|
958
|
+
isCloning = _useCloneAutomationRu.isLoading;
|
|
959
|
+
var _useDeleteAutomationR = useDeleteAutomationRule(),
|
|
960
|
+
deleteRule = _useDeleteAutomationR.mutate,
|
|
961
|
+
isDeleting = _useDeleteAutomationR.isLoading;
|
|
962
|
+
var handleChangeStatus = function handleChangeStatus(event, id) {
|
|
963
|
+
var status = event.target.checked ? STATUS_KEYS.ENABLED : STATUS_KEYS.DISABLED;
|
|
964
|
+
var payload = {
|
|
965
|
+
rule: {
|
|
966
|
+
status: status
|
|
967
|
+
}
|
|
968
|
+
};
|
|
969
|
+
updateRule({
|
|
970
|
+
id: id,
|
|
971
|
+
url: url,
|
|
972
|
+
payload: payload
|
|
973
|
+
});
|
|
974
|
+
};
|
|
975
|
+
var columnData = getColumnData({
|
|
976
|
+
handleChangeStatus: handleChangeStatus,
|
|
977
|
+
additionalColumns: additionalColumns,
|
|
978
|
+
onClone: function onClone(id) {
|
|
979
|
+
return cloneRule({
|
|
980
|
+
id: id,
|
|
981
|
+
url: url
|
|
982
|
+
});
|
|
983
|
+
},
|
|
984
|
+
onDelete: setSelectedRule,
|
|
985
|
+
onPreview: onPreview,
|
|
986
|
+
automationRulesPath: automationRulesPath,
|
|
987
|
+
moreDropdownItems: moreDropdownItems
|
|
988
|
+
});
|
|
989
|
+
if (isLoading) {
|
|
990
|
+
return /*#__PURE__*/jsx$1(PageLoader, {});
|
|
991
|
+
}
|
|
992
|
+
if (isEmpty(rules)) {
|
|
993
|
+
return /*#__PURE__*/jsx$1("div", {
|
|
994
|
+
className: "flex h-full w-full items-center justify-center",
|
|
995
|
+
children: /*#__PURE__*/jsx$1(NoData, _objectSpread$o({
|
|
996
|
+
title: t("neetoRules.noData.title")
|
|
997
|
+
}, isEmpty(searchTerm) && {
|
|
998
|
+
helpText: helpDocUrl ? renderNoDataHelpText(helpDocUrl) : null,
|
|
999
|
+
primaryButtonProps: {
|
|
1000
|
+
label: t("neetoRules.button.addNew"),
|
|
1001
|
+
to: createRoutes(automationRulesPath)["new"]
|
|
1002
|
+
}
|
|
1003
|
+
}))
|
|
1004
|
+
});
|
|
1005
|
+
}
|
|
1006
|
+
return /*#__PURE__*/jsxs(Fragment, {
|
|
1007
|
+
children: [/*#__PURE__*/jsx$1(SubHeader, {
|
|
1008
|
+
leftActionBlock: /*#__PURE__*/jsx$1(Typography, {
|
|
1009
|
+
className: "mr-4 font-semibold",
|
|
1010
|
+
style: "h4",
|
|
1011
|
+
children: t("neetoRules.common.automationRuleWithCount", {
|
|
1012
|
+
count: totalCount
|
|
1013
|
+
})
|
|
1014
|
+
})
|
|
1015
|
+
}), /*#__PURE__*/jsx$1(TableWrapper, {
|
|
1016
|
+
hasPagination: totalCount > DEFAULT_PAGE_SIZE,
|
|
1017
|
+
children: /*#__PURE__*/jsx$1(Table, {
|
|
1018
|
+
columnData: columnData,
|
|
1019
|
+
totalCount: totalCount,
|
|
1020
|
+
fixedHeight: true,
|
|
1021
|
+
allowClick: false,
|
|
1022
|
+
currentPageNumber: page,
|
|
1023
|
+
defaultPageSize: DEFAULT_PAGE_SIZE,
|
|
1024
|
+
handlePageChange: setPage,
|
|
1025
|
+
loading: isUpdating || isLoading || isCloning || isDeleting,
|
|
1026
|
+
rowData: rules.map(function (item) {
|
|
1027
|
+
return _objectSpread$o({
|
|
1028
|
+
key: item.id
|
|
1029
|
+
}, item);
|
|
1030
|
+
}),
|
|
1031
|
+
rowSelection: false,
|
|
1032
|
+
scroll: {
|
|
1033
|
+
x: 0
|
|
1034
|
+
},
|
|
1035
|
+
tableLayout: "fixed"
|
|
1036
|
+
})
|
|
1037
|
+
}), /*#__PURE__*/jsx$1(Alert, {
|
|
1038
|
+
isOpen: !!selectedRule,
|
|
1039
|
+
isSubmitting: isDeleting,
|
|
1040
|
+
submitButtonLabel: t("neetoRules.button.delete"),
|
|
1041
|
+
title: t("neetoRules.deleteAlert.title"),
|
|
1042
|
+
message: /*#__PURE__*/jsx$1(Trans, {
|
|
1043
|
+
i18nKey: "neetoRules.deleteAlert.message",
|
|
1044
|
+
values: {
|
|
1045
|
+
name: selectedRule === null || selectedRule === void 0 ? void 0 : selectedRule.name
|
|
1046
|
+
}
|
|
1047
|
+
}),
|
|
1048
|
+
onClose: function onClose() {
|
|
1049
|
+
return setSelectedRule(null);
|
|
1050
|
+
},
|
|
1051
|
+
onSubmit: function onSubmit() {
|
|
1052
|
+
return deleteRule({
|
|
1053
|
+
id: selectedRule === null || selectedRule === void 0 ? void 0 : selectedRule.id,
|
|
1054
|
+
url: url
|
|
1055
|
+
}, {
|
|
1056
|
+
onSuccess: function onSuccess() {
|
|
1057
|
+
return setSelectedRule(null);
|
|
1058
|
+
}
|
|
1059
|
+
});
|
|
1060
|
+
}
|
|
1061
|
+
})]
|
|
1062
|
+
});
|
|
1063
|
+
};
|
|
1064
|
+
|
|
642
1065
|
function _typeof$2(o) {
|
|
643
1066
|
"@babel/helpers - typeof";
|
|
644
1067
|
|
|
@@ -1237,7 +1660,7 @@ function _extends$2() {
|
|
|
1237
1660
|
}, _extends$2.apply(null, arguments);
|
|
1238
1661
|
}
|
|
1239
1662
|
|
|
1240
|
-
function _objectWithoutPropertiesLoose$
|
|
1663
|
+
function _objectWithoutPropertiesLoose$1(r, e) {
|
|
1241
1664
|
if (null == r) return {};
|
|
1242
1665
|
var t = {};
|
|
1243
1666
|
for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
|
|
@@ -1471,7 +1894,7 @@ function finalPropsSelectorFactory(dispatch, _ref) {
|
|
|
1471
1894
|
initMapDispatchToProps,
|
|
1472
1895
|
initMergeProps
|
|
1473
1896
|
} = _ref,
|
|
1474
|
-
options = _objectWithoutPropertiesLoose$
|
|
1897
|
+
options = _objectWithoutPropertiesLoose$1(_ref, _excluded$i);
|
|
1475
1898
|
|
|
1476
1899
|
const mapStateToProps = initMapStateToProps(dispatch, options);
|
|
1477
1900
|
const mapDispatchToProps = initMapDispatchToProps(dispatch, options);
|
|
@@ -1986,7 +2409,7 @@ function connect(mapStateToProps, mapDispatchToProps, mergeProps, {
|
|
|
1986
2409
|
const {
|
|
1987
2410
|
reactReduxForwardedRef
|
|
1988
2411
|
} = props,
|
|
1989
|
-
wrapperProps = _objectWithoutPropertiesLoose$
|
|
2412
|
+
wrapperProps = _objectWithoutPropertiesLoose$1(props, _excluded$h);
|
|
1990
2413
|
|
|
1991
2414
|
return [props.context, reactReduxForwardedRef, wrapperProps];
|
|
1992
2415
|
}, [props]);
|
|
@@ -9769,7 +10192,7 @@ var RulesReorder = function RulesReorder(_ref) {
|
|
|
9769
10192
|
if (!result.destination || result.source.index === result.destination.index) {
|
|
9770
10193
|
return;
|
|
9771
10194
|
}
|
|
9772
|
-
var originalRules = clone(initialRules);
|
|
10195
|
+
var originalRules = clone$1(initialRules);
|
|
9773
10196
|
var items = reorderList(originalRules, result.source.index, result.destination.index);
|
|
9774
10197
|
items = items.map(function (item, index) {
|
|
9775
10198
|
return _objectSpread$l(_objectSpread$l({}, item), {}, {
|
|
@@ -9853,35 +10276,6 @@ function _objectDestructuringEmpty(obj) {
|
|
|
9853
10276
|
if (obj == null) throw new TypeError("Cannot destructure " + obj);
|
|
9854
10277
|
}
|
|
9855
10278
|
|
|
9856
|
-
function _objectWithoutPropertiesLoose$1(source, excluded) {
|
|
9857
|
-
if (source == null) return {};
|
|
9858
|
-
var target = {};
|
|
9859
|
-
var sourceKeys = Object.keys(source);
|
|
9860
|
-
var key, i;
|
|
9861
|
-
for (i = 0; i < sourceKeys.length; i++) {
|
|
9862
|
-
key = sourceKeys[i];
|
|
9863
|
-
if (excluded.indexOf(key) >= 0) continue;
|
|
9864
|
-
target[key] = source[key];
|
|
9865
|
-
}
|
|
9866
|
-
return target;
|
|
9867
|
-
}
|
|
9868
|
-
|
|
9869
|
-
function _objectWithoutProperties$1(source, excluded) {
|
|
9870
|
-
if (source == null) return {};
|
|
9871
|
-
var target = _objectWithoutPropertiesLoose$1(source, excluded);
|
|
9872
|
-
var key, i;
|
|
9873
|
-
if (Object.getOwnPropertySymbols) {
|
|
9874
|
-
var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
|
|
9875
|
-
for (i = 0; i < sourceSymbolKeys.length; i++) {
|
|
9876
|
-
key = sourceSymbolKeys[i];
|
|
9877
|
-
if (excluded.indexOf(key) >= 0) continue;
|
|
9878
|
-
if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
|
|
9879
|
-
target[key] = source[key];
|
|
9880
|
-
}
|
|
9881
|
-
}
|
|
9882
|
-
return target;
|
|
9883
|
-
}
|
|
9884
|
-
|
|
9885
10279
|
var propTypes = {exports: {}};
|
|
9886
10280
|
|
|
9887
10281
|
/**
|
|
@@ -9973,22 +10367,6 @@ var factoryWithThrowingShims = function() {
|
|
|
9973
10367
|
var propTypesExports = propTypes.exports;
|
|
9974
10368
|
var PropTypes = /*@__PURE__*/getDefaultExportFromCjs(propTypesExports);
|
|
9975
10369
|
|
|
9976
|
-
function _arrayWithoutHoles$1(arr) {
|
|
9977
|
-
if (Array.isArray(arr)) return _arrayLikeToArray$1(arr);
|
|
9978
|
-
}
|
|
9979
|
-
|
|
9980
|
-
function _iterableToArray$1(iter) {
|
|
9981
|
-
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
|
|
9982
|
-
}
|
|
9983
|
-
|
|
9984
|
-
function _nonIterableSpread$1() {
|
|
9985
|
-
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
9986
|
-
}
|
|
9987
|
-
|
|
9988
|
-
function _toConsumableArray$1(arr) {
|
|
9989
|
-
return _arrayWithoutHoles$1(arr) || _iterableToArray$1(arr) || _unsupportedIterableToArray$1(arr) || _nonIterableSpread$1();
|
|
9990
|
-
}
|
|
9991
|
-
|
|
9992
10370
|
var ACTION_TYPES = {
|
|
9993
10371
|
emailToIds: "emailToIds",
|
|
9994
10372
|
email: "email",
|
|
@@ -22626,5 +23004,5 @@ NeetoRules.Card = Card;
|
|
|
22626
23004
|
NeetoRules.MultiSelectField = MultiSelectField;
|
|
22627
23005
|
NeetoRules.EventConditions = EventConditions;
|
|
22628
23006
|
|
|
22629
|
-
export { NeetoRules as NeetoRulesForm, RulePreview, RulesReorder, useCustomDataStore };
|
|
23007
|
+
export { NeetoRules as NeetoRulesForm, RulePreview, RulesReorder, RulesTable, useCustomDataStore };
|
|
22630
23008
|
//# sourceMappingURL=index.js.map
|