@bigbinary/neeto-rules-frontend 2.5.56 → 2.5.58

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 (62) hide show
  1. package/dist/.ready +1 -1
  2. package/dist/NeetoRulesForm.js +67 -162
  3. package/dist/NeetoRulesForm.js.map +1 -1
  4. package/dist/cjs/NeetoRulesForm.js +10 -105
  5. package/dist/cjs/NeetoRulesForm.js.map +1 -1
  6. package/dist/cjs/index.js +1 -0
  7. package/dist/cjs/index.js.map +1 -1
  8. package/dist/cjs/v2/CannedResponsesPane.js +396 -0
  9. package/dist/cjs/v2/CannedResponsesPane.js.map +1 -0
  10. package/dist/cjs/v2/NeetoRules.js +486 -0
  11. package/dist/cjs/v2/NeetoRules.js.map +1 -0
  12. package/dist/cjs/v2/NeetoRulesForm.js +6740 -0
  13. package/dist/cjs/v2/NeetoRulesForm.js.map +1 -0
  14. package/dist/cjs/v2/RulePreview.js +513 -0
  15. package/dist/cjs/v2/RulePreview.js.map +1 -0
  16. package/dist/cjs/v2/RulesReorder.js +24 -0
  17. package/dist/cjs/v2/RulesReorder.js.map +1 -0
  18. package/dist/cjs/v2/constants.js +8 -0
  19. package/dist/cjs/v2/constants.js.map +1 -0
  20. package/dist/cjs/v2/hooks.js +15 -0
  21. package/dist/cjs/v2/hooks.js.map +1 -0
  22. package/dist/cjs/v2/index.js +86 -0
  23. package/dist/cjs/v2/index.js.map +1 -0
  24. package/dist/constants-CYdcft3h.js +53 -0
  25. package/dist/constants-CYdcft3h.js.map +1 -0
  26. package/dist/constants-dLBadaIU.js +60 -0
  27. package/dist/constants-dLBadaIU.js.map +1 -0
  28. package/dist/index-BBcadHIi.js +208 -0
  29. package/dist/index-BBcadHIi.js.map +1 -0
  30. package/dist/index-CSnQp41c.js +211 -0
  31. package/dist/index-CSnQp41c.js.map +1 -0
  32. package/dist/index.js +1 -0
  33. package/dist/index.js.map +1 -1
  34. package/dist/useCustomDataStore-D7hl6nev.js +74 -0
  35. package/dist/useCustomDataStore-D7hl6nev.js.map +1 -0
  36. package/dist/useCustomDataStore-DipT25Pg.js +77 -0
  37. package/dist/useCustomDataStore-DipT25Pg.js.map +1 -0
  38. package/dist/useDebouncedUpdate-6Ibug5MF.js +108 -0
  39. package/dist/useDebouncedUpdate-6Ibug5MF.js.map +1 -0
  40. package/dist/useDebouncedUpdate-BcPAGgg7.js +103 -0
  41. package/dist/useDebouncedUpdate-BcPAGgg7.js.map +1 -0
  42. package/dist/useUtilityStore-BBb39TOj.js +53 -0
  43. package/dist/useUtilityStore-BBb39TOj.js.map +1 -0
  44. package/dist/useUtilityStore-DkxAexDw.js +55 -0
  45. package/dist/useUtilityStore-DkxAexDw.js.map +1 -0
  46. package/dist/v2/CannedResponsesPane.js +394 -0
  47. package/dist/v2/CannedResponsesPane.js.map +1 -0
  48. package/dist/v2/NeetoRules.js +484 -0
  49. package/dist/v2/NeetoRules.js.map +1 -0
  50. package/dist/v2/NeetoRulesForm.js +6719 -0
  51. package/dist/v2/NeetoRulesForm.js.map +1 -0
  52. package/dist/v2/RulePreview.js +511 -0
  53. package/dist/v2/RulePreview.js.map +1 -0
  54. package/dist/v2/RulesReorder.js +18 -0
  55. package/dist/v2/RulesReorder.js.map +1 -0
  56. package/dist/v2/constants.js +2 -0
  57. package/dist/v2/constants.js.map +1 -0
  58. package/dist/v2/hooks.js +8 -0
  59. package/dist/v2/hooks.js.map +1 -0
  60. package/dist/v2/index.js +74 -0
  61. package/dist/v2/index.js.map +1 -0
  62. package/package.json +28 -16
@@ -0,0 +1,211 @@
1
+ 'use strict';
2
+
3
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
+ var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
5
+ var react = require('react');
6
+ var neetoAtoms = require('@bigbinary/neeto-atoms');
7
+ var dnd = require('@hello-pangea/dnd');
8
+ var Drag = require('@bigbinary/neeto-icons/Drag');
9
+ var ramda = require('ramda');
10
+ var reactI18next = require('react-i18next');
11
+ var useAutomationRulesApi = require('./useAutomationRulesApi-C1T2E1AN.js');
12
+ var reactRouterDom = require('react-router-dom');
13
+ var jsxRuntime = require('react/jsx-runtime');
14
+
15
+ var INITIAL_RULES_DATA = {
16
+ rules: [],
17
+ totalCount: 0
18
+ };
19
+
20
+ function ownKeys$2(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; }
21
+ function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
22
+ var reorderList = function reorderList(_ref) {
23
+ var endIndex = _ref.endIndex,
24
+ firstDisplayOrder = _ref.firstDisplayOrder,
25
+ list = _ref.list,
26
+ startIndex = _ref.startIndex;
27
+ var result = Array.from(list);
28
+ var _result$splice = result.splice(startIndex, 1),
29
+ _result$splice2 = _slicedToArray(_result$splice, 1),
30
+ removed = _result$splice2[0];
31
+ result.splice(endIndex, 0, removed);
32
+ return result.map(function (item, index) {
33
+ return _objectSpread$2(_objectSpread$2({}, item), {}, {
34
+ displayOrder: firstDisplayOrder + index
35
+ });
36
+ });
37
+ };
38
+ var getDragItemStyle = function getDragItemStyle(isDragging, draggableStyle) {
39
+ return _objectSpread$2(_objectSpread$2({}, draggableStyle), isDragging && {
40
+ zIndex: 99999
41
+ });
42
+ };
43
+
44
+ function ownKeys$1(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; }
45
+ function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
46
+ var DraggableItem = function DraggableItem(props) {
47
+ var rule = props.rule,
48
+ ruleIndex = props.ruleIndex;
49
+ return /*#__PURE__*/jsxRuntime.jsx(dnd.Draggable, {
50
+ draggableId: "item_".concat(rule.id),
51
+ index: ruleIndex,
52
+ children: function children(provided, snapshot) {
53
+ return /*#__PURE__*/jsxRuntime.jsxs("div", _objectSpread$1(_objectSpread$1(_objectSpread$1({
54
+ className: "neeto-ui-text-gray-800 mb-3 flex w-full items-center gap-1 font-medium",
55
+ ref: provided.innerRef
56
+ }, provided.draggableProps), provided.dragHandleProps), {}, {
57
+ style: getDragItemStyle(snapshot.isDragging, provided.draggableProps.style),
58
+ children: [/*#__PURE__*/jsxRuntime.jsx(Drag, {
59
+ className: "neeto-ui-text-gray-400 hover:neeto-ui-text-gray-500 -ms-1 cursor-grab transition-all duration-300 ease-in-out",
60
+ size: 16
61
+ }), /*#__PURE__*/jsxRuntime.jsx("div", {
62
+ className: "neeto-ui-bg-white neeto-ui-border-gray-300 neeto-ui-rounded flex w-full items-center space-x-4 border p-3",
63
+ "data-testid": "automation-rule-reorder-container",
64
+ children: rule.name
65
+ })]
66
+ }), "list_".concat(rule.id));
67
+ }
68
+ });
69
+ };
70
+ var DraggableItem$1 = reactRouterDom.withRouter(DraggableItem);
71
+
72
+ function ownKeys(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; }
73
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
74
+ var RulesReorder = function RulesReorder(_ref) {
75
+ var _rules$0$displayOrder, _rules$;
76
+ var isOpen = _ref.isOpen,
77
+ totalCount = _ref.totalCount,
78
+ url = _ref.url,
79
+ onClose = _ref.onClose,
80
+ onReorderSuccess = _ref.onReorderSuccess;
81
+ var _useState = react.useState([]),
82
+ _useState2 = _slicedToArray(_useState, 2),
83
+ reorderedRules = _useState2[0],
84
+ setReorderedRules = _useState2[1];
85
+ var _useTranslation = reactI18next.useTranslation(),
86
+ t = _useTranslation.t;
87
+ var _useFetchAutomationRu = useAutomationRulesApi.useFetchAutomationRules({
88
+ pageSize: totalCount,
89
+ url: url
90
+ }, {
91
+ enabled: isOpen
92
+ }),
93
+ _useFetchAutomationRu2 = _useFetchAutomationRu.data,
94
+ _useFetchAutomationRu3 = _useFetchAutomationRu2 === void 0 ? INITIAL_RULES_DATA : _useFetchAutomationRu2,
95
+ rules = _useFetchAutomationRu3.rules,
96
+ isLoading = _useFetchAutomationRu.isLoading;
97
+ var _useReorderAutomation = useAutomationRulesApi.useReorderAutomationRules(url),
98
+ reOrder = _useReorderAutomation.mutate,
99
+ isPending = _useReorderAutomation.isPending;
100
+ var firstDisplayOrder = (_rules$0$displayOrder = (_rules$ = rules[0]) === null || _rules$ === void 0 ? void 0 : _rules$.displayOrder) !== null && _rules$0$displayOrder !== void 0 ? _rules$0$displayOrder : 1;
101
+ var handleReorderSave = function handleReorderSave() {
102
+ return reOrder({
103
+ url: url,
104
+ payload: {
105
+ reorder: {
106
+ rules: reorderedRules
107
+ }
108
+ }
109
+ }, {
110
+ onSuccess: function onSuccess() {
111
+ onReorderSuccess === null || onReorderSuccess === void 0 || onReorderSuccess();
112
+ onClose();
113
+ }
114
+ });
115
+ };
116
+ var onDragEnd = function onDragEnd(_ref2) {
117
+ var destination = _ref2.destination,
118
+ source = _ref2.source;
119
+ if (!destination || source.index === destination.index) return;
120
+ var items = reorderList({
121
+ endIndex: destination.index,
122
+ firstDisplayOrder: firstDisplayOrder,
123
+ list: ramda.clone(reorderedRules),
124
+ startIndex: source.index
125
+ });
126
+ setReorderedRules(items);
127
+ };
128
+ react.useEffect(function () {
129
+ setReorderedRules(rules);
130
+ }, [rules]);
131
+ if (isLoading) {
132
+ return /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Sheet, {
133
+ isOpen: isOpen,
134
+ onClose: onClose,
135
+ children: /*#__PURE__*/jsxRuntime.jsx("div", {
136
+ className: "flex h-full w-full items-center justify-center",
137
+ children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Spinner, {})
138
+ })
139
+ });
140
+ }
141
+ return /*#__PURE__*/jsxRuntime.jsxs(neetoAtoms.Sheet, {
142
+ isOpen: isOpen,
143
+ onClose: onClose,
144
+ children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Sheet.Header, {
145
+ children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Sheet.Title, {
146
+ children: t("neetoRules.common.reorder")
147
+ })
148
+ }), /*#__PURE__*/jsxRuntime.jsxs(neetoAtoms.Sheet.Body, {
149
+ children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
150
+ className: "mb-3",
151
+ variant: "body2",
152
+ children: t("neetoRules.description.reorder")
153
+ }), /*#__PURE__*/jsxRuntime.jsx("div", {
154
+ className: "flex flex-col items-center w-full",
155
+ children: /*#__PURE__*/jsxRuntime.jsx(dnd.DragDropContext, {
156
+ onDragEnd: onDragEnd,
157
+ children: /*#__PURE__*/jsxRuntime.jsx(dnd.Droppable, {
158
+ droppableId: "droppable",
159
+ renderClone: function renderClone(provided, snapshot, rubric) {
160
+ return /*#__PURE__*/jsxRuntime.jsxs("div", _objectSpread(_objectSpread(_objectSpread({
161
+ className: "neeto-ui-text-gray-800 mb-3 flex w-full items-center gap-1 font-medium",
162
+ ref: provided.innerRef
163
+ }, provided.draggableProps), provided.dragHandleProps), {}, {
164
+ style: getDragItemStyle(snapshot.isDragging, provided.draggableProps.style),
165
+ children: [/*#__PURE__*/jsxRuntime.jsx(Drag, {
166
+ className: "neeto-ui-text-gray-400 hover:neeto-ui-text-gray-500 -ms-1 cursor-grab transition-all duration-300 ease-in-out",
167
+ size: 16
168
+ }), /*#__PURE__*/jsxRuntime.jsx("div", {
169
+ className: "neeto-ui-bg-white grow neeto-ui-border-gray-300 neeto-ui-rounded flex items-center space-x-4 border p-3",
170
+ children: /*#__PURE__*/jsxRuntime.jsx("div", {
171
+ children: reorderedRules[rubric.source.index].name
172
+ })
173
+ })]
174
+ }), "list_".concat(reorderedRules[rubric.source.index].id));
175
+ },
176
+ children: function children(provided) {
177
+ return /*#__PURE__*/jsxRuntime.jsxs("div", _objectSpread(_objectSpread({
178
+ className: "w-full"
179
+ }, provided.droppableProps), {}, {
180
+ ref: provided.innerRef,
181
+ children: [reorderedRules.map(function (rule, index) {
182
+ return /*#__PURE__*/react.createElement(DraggableItem$1, {
183
+ rule: rule,
184
+ key: rule.id,
185
+ ruleIndex: index
186
+ });
187
+ }), provided.placeholder]
188
+ }));
189
+ }
190
+ })
191
+ })
192
+ })]
193
+ }), /*#__PURE__*/jsxRuntime.jsxs(neetoAtoms.Sheet.Footer, {
194
+ className: "flex items-center gap-x-2",
195
+ children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Button, {
196
+ disabled: isPending || ramda.equals(rules, reorderedRules),
197
+ label: t("neetoRules.common.saveChange"),
198
+ loading: isPending,
199
+ onClick: handleReorderSave
200
+ }), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Button, {
201
+ label: t("neetoRules.buttons.cancel"),
202
+ variant: "ghost",
203
+ onClick: onClose
204
+ })]
205
+ })]
206
+ });
207
+ };
208
+
209
+ exports.INITIAL_RULES_DATA = INITIAL_RULES_DATA;
210
+ exports.RulesReorder = RulesReorder;
211
+ //# sourceMappingURL=index-CSnQp41c.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-CSnQp41c.js","sources":["../app/javascript/src/v2/components/NeetoRules/constants.js","../app/javascript/src/v2/components/NeetoRules/RulesReorder/utils.js","../app/javascript/src/v2/components/NeetoRules/RulesReorder/DraggableItem.jsx","../app/javascript/src/v2/components/NeetoRules/RulesReorder/index.jsx"],"sourcesContent":["export const STATUS_KEYS = { ENABLED: \"enabled\", DISABLED: \"disabled\" };\n\nexport const DEFAULT_INIT_PAGE = 1;\n\nexport const INITIAL_RULES_DATA = { rules: [], totalCount: 0 };\n","export const reorderList = ({\n endIndex,\n firstDisplayOrder,\n list,\n startIndex,\n}) => {\n const result = Array.from(list);\n const [removed] = result.splice(startIndex, 1);\n result.splice(endIndex, 0, removed);\n\n return result.map((item, index) => ({\n ...item,\n displayOrder: firstDisplayOrder + index,\n }));\n};\n\nexport const getDragItemStyle = (isDragging, draggableStyle) => ({\n // styles we need to apply on draggables\n ...draggableStyle,\n\n ...(isDragging && { zIndex: 99999 }),\n});\n","import { Draggable } from \"@hello-pangea/dnd\";\nimport { Drag } from \"neetoicons\";\nimport { withRouter } from \"react-router-dom\";\n\nimport { getDragItemStyle } from \"./utils\";\n\nconst DraggableItem = props => {\n const { rule, ruleIndex } = props;\n\n return (\n <Draggable draggableId={`item_${rule.id}`} index={ruleIndex}>\n {(provided, snapshot) => (\n <div\n className=\"neeto-ui-text-gray-800 mb-3 flex w-full items-center gap-1 font-medium\"\n key={`list_${rule.id}`}\n ref={provided.innerRef}\n {...provided.draggableProps}\n {...provided.dragHandleProps}\n style={getDragItemStyle(\n snapshot.isDragging,\n provided.draggableProps.style\n )}\n >\n <Drag\n className=\"neeto-ui-text-gray-400 hover:neeto-ui-text-gray-500 -ms-1 cursor-grab transition-all duration-300 ease-in-out\"\n size={16}\n />\n <div\n className=\"neeto-ui-bg-white neeto-ui-border-gray-300 neeto-ui-rounded flex w-full items-center space-x-4 border p-3\"\n data-testid=\"automation-rule-reorder-container\"\n >\n {rule.name}\n </div>\n </div>\n )}\n </Draggable>\n );\n};\n\nexport default withRouter(DraggableItem);\n","import { useEffect, useState } from \"react\";\n\nimport { Button, Sheet, Spinner, Typography } from \"@bigbinary/neeto-atoms\";\nimport { DragDropContext, Droppable } from \"@hello-pangea/dnd\";\nimport { Drag } from \"neetoicons\";\nimport { clone, equals } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n useFetchAutomationRules,\n useReorderAutomationRules,\n} from \"hooks/reactQuery/useAutomationRulesApi\";\n\nimport DraggableItem from \"./DraggableItem\";\nimport { getDragItemStyle, reorderList } from \"./utils\";\n\nimport { INITIAL_RULES_DATA } from \"../constants\";\n\nconst RulesReorder = ({\n isOpen,\n totalCount,\n url,\n onClose,\n onReorderSuccess,\n}) => {\n const [reorderedRules, setReorderedRules] = useState([]);\n\n const { t } = useTranslation();\n\n const { data: { rules } = INITIAL_RULES_DATA, isLoading } =\n useFetchAutomationRules({ pageSize: totalCount, url }, { enabled: isOpen });\n\n const { mutate: reOrder, isPending } = useReorderAutomationRules(url);\n\n const firstDisplayOrder = rules[0]?.displayOrder ?? 1;\n\n const handleReorderSave = () =>\n reOrder(\n { url, payload: { reorder: { rules: reorderedRules } } },\n {\n onSuccess: () => {\n onReorderSuccess?.();\n onClose();\n },\n }\n );\n\n const onDragEnd = ({ destination, source }) => {\n if (!destination || source.index === destination.index) return;\n\n const items = reorderList({\n endIndex: destination.index,\n firstDisplayOrder,\n list: clone(reorderedRules),\n startIndex: source.index,\n });\n setReorderedRules(items);\n };\n\n useEffect(() => {\n setReorderedRules(rules);\n }, [rules]);\n\n if (isLoading) {\n return (\n <Sheet {...{ isOpen, onClose }}>\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n </Sheet>\n );\n }\n\n return (\n <Sheet {...{ isOpen, onClose }}>\n <Sheet.Header>\n <Sheet.Title>{t(\"neetoRules.common.reorder\")}</Sheet.Title>\n </Sheet.Header>\n <Sheet.Body>\n <Typography className=\"mb-3\" variant=\"body2\">\n {t(\"neetoRules.description.reorder\")}\n </Typography>\n <div className=\"flex flex-col items-center w-full\">\n <DragDropContext {...{ onDragEnd }}>\n <Droppable\n droppableId=\"droppable\"\n renderClone={(provided, snapshot, rubric) => (\n <div\n className=\"neeto-ui-text-gray-800 mb-3 flex w-full items-center gap-1 font-medium\"\n key={`list_${reorderedRules[rubric.source.index].id}`}\n ref={provided.innerRef}\n {...provided.draggableProps}\n {...provided.dragHandleProps}\n style={getDragItemStyle(\n snapshot.isDragging,\n provided.draggableProps.style\n )}\n >\n <Drag\n className=\"neeto-ui-text-gray-400 hover:neeto-ui-text-gray-500 -ms-1 cursor-grab transition-all duration-300 ease-in-out\"\n size={16}\n />\n <div className=\"neeto-ui-bg-white grow neeto-ui-border-gray-300 neeto-ui-rounded flex items-center space-x-4 border p-3\">\n <div>{reorderedRules[rubric.source.index].name}</div>\n </div>\n </div>\n )}\n >\n {provided => (\n <div\n className=\"w-full\"\n {...provided.droppableProps}\n ref={provided.innerRef}\n >\n {reorderedRules.map((rule, index) => (\n <DraggableItem\n {...{ rule }}\n key={rule.id}\n ruleIndex={index}\n />\n ))}\n {provided.placeholder}\n </div>\n )}\n </Droppable>\n </DragDropContext>\n </div>\n </Sheet.Body>\n <Sheet.Footer className=\"flex items-center gap-x-2\">\n <Button\n disabled={isPending || equals(rules, reorderedRules)}\n label={t(\"neetoRules.common.saveChange\")}\n loading={isPending}\n onClick={handleReorderSave}\n />\n <Button\n label={t(\"neetoRules.buttons.cancel\")}\n variant=\"ghost\"\n onClick={onClose}\n />\n </Sheet.Footer>\n </Sheet>\n );\n};\nexport default RulesReorder;\n"],"names":["INITIAL_RULES_DATA","rules","totalCount","reorderList","_ref","endIndex","firstDisplayOrder","list","startIndex","result","Array","from","_result$splice","splice","_result$splice2","_slicedToArray","removed","map","item","index","_objectSpread","displayOrder","getDragItemStyle","isDragging","draggableStyle","zIndex","DraggableItem","props","rule","ruleIndex","_jsx","Draggable","draggableId","concat","id","children","provided","snapshot","_jsxs","className","ref","innerRef","draggableProps","dragHandleProps","style","Drag","size","name","withRouter","RulesReorder","_rules$0$displayOrder","_rules$","isOpen","url","onClose","onReorderSuccess","_useState","useState","_useState2","reorderedRules","setReorderedRules","_useTranslation","useTranslation","t","_useFetchAutomationRu","useFetchAutomationRules","pageSize","enabled","_useFetchAutomationRu2","data","_useFetchAutomationRu3","isLoading","_useReorderAutomation","useReorderAutomationRules","reOrder","mutate","isPending","handleReorderSave","payload","reorder","onSuccess","onDragEnd","_ref2","destination","source","items","clone","useEffect","Sheet","Spinner","Header","Title","Body","Typography","variant","DragDropContext","Droppable","droppableId","renderClone","rubric","droppableProps","_createElement","key","placeholder","Footer","Button","disabled","equals","label","loading","onClick"],"mappings":"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"}
package/dist/index.js CHANGED
@@ -52,6 +52,7 @@ import '@hello-pangea/dnd';
52
52
  import '@bigbinary/neeto-icons/Drag';
53
53
  import 'react-router-dom';
54
54
  import '@babel/runtime/helpers/objectDestructuringEmpty';
55
+ import './useDebouncedUpdate-BcPAGgg7.js';
55
56
  import '@bigbinary/neeto-icons/Plus';
56
57
  import '@bigbinary/neeto-icons/Delete';
57
58
  import 'classnames';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,74 @@
1
+ import { shallow } from 'zustand/shallow';
2
+ import { useRef, useEffect } from 'react';
3
+ import { assocPath } from 'ramda';
4
+ import { u as useUtilityStore } from './useUtilityStore-BBb39TOj.js';
5
+ import { withImmutableActions } from '@bigbinary/neeto-commons-frontend/v2/react-utils';
6
+ import { create } from 'zustand';
7
+
8
+ var useActiveField = function useActiveField(name) {
9
+ var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
10
+ _ref$shouldAutoFocus = _ref.shouldAutoFocus,
11
+ shouldAutoFocus = _ref$shouldAutoFocus === void 0 ? false : _ref$shouldAutoFocus;
12
+ var ref = useRef(null);
13
+ var shouldFocusRef = useRef(true);
14
+ var _useUtilityStore = useUtilityStore(function (store) {
15
+ return {
16
+ setPanelState: store["setPanelState"]
17
+ };
18
+ }, shallow),
19
+ setPanelState = _useUtilityStore.setPanelState;
20
+ var _useUtilityStore2 = useUtilityStore(function (store) {
21
+ var _store$panelState;
22
+ return {
23
+ activeField: (_store$panelState = store["panelState"]) === null || _store$panelState === void 0 || (_store$panelState = _store$panelState["data"]) === null || _store$panelState === void 0 ? void 0 : _store$panelState["activeField"]
24
+ };
25
+ }, shallow),
26
+ activeField = _useUtilityStore2.activeField;
27
+ var isFieldActive = activeField === name;
28
+ useEffect(function () {
29
+ if (!shouldAutoFocus || activeField) return;
30
+ setFieldActive();
31
+ }, [name]);
32
+ useEffect(function () {
33
+ var shouldFocus = shouldFocusRef.current;
34
+ shouldFocusRef.current = true;
35
+ if (!isFieldActive || !shouldFocus) return;
36
+ requestAnimationFrame(function () {
37
+ var _ref$current, _ref$current$focus;
38
+ return ref === null || ref === void 0 || (_ref$current = ref.current) === null || _ref$current === void 0 || (_ref$current$focus = _ref$current.focus) === null || _ref$current$focus === void 0 ? void 0 : _ref$current$focus.call(_ref$current);
39
+ });
40
+ }, [isFieldActive]);
41
+ var setFieldActive = function setFieldActive() {
42
+ var needsRerender = !ref.current && isFieldActive;
43
+ shouldFocusRef.current = !ref.current;
44
+ if (needsRerender) {
45
+ setPanelState(assocPath(["data", "activeField"], null));
46
+ requestAnimationFrame(function () {
47
+ return setPanelState(assocPath(["data", "activeField"], name));
48
+ });
49
+ } else {
50
+ setPanelState(assocPath(["data", "activeField"], name));
51
+ }
52
+ };
53
+ var resetActiveField = function resetActiveField() {
54
+ return setPanelState(assocPath(["data", "activeField"], null));
55
+ };
56
+ return {
57
+ ref: ref,
58
+ isFieldActive: isFieldActive,
59
+ setFieldActive: setFieldActive,
60
+ resetActiveField: resetActiveField,
61
+ setPanelState: setPanelState
62
+ };
63
+ };
64
+
65
+ /** @type {import("neetocommons/react-utils").ZustandStoreHook} */
66
+ var useCustomDataStore = create(withImmutableActions(function (set) {
67
+ return {
68
+ customData: {},
69
+ setCustomDataState: set
70
+ };
71
+ }));
72
+
73
+ export { useActiveField as a, useCustomDataStore as u };
74
+ //# sourceMappingURL=useCustomDataStore-D7hl6nev.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCustomDataStore-D7hl6nev.js","sources":["../app/javascript/src/v2/components/NeetoRulesForm/hooks/useActiveField.js","../app/javascript/src/v2/components/NeetoRulesForm/stores/useCustomDataStore.js"],"sourcesContent":["import { useEffect, useRef } from \"react\";\n\nimport { assocPath } from \"ramda\";\n\nimport useUtilityStore from \"v2/components/stores/useUtilityStore\";\n\nconst useActiveField = (name, { shouldAutoFocus = false } = {}) => {\n const ref = useRef(null);\n const shouldFocusRef = useRef(true);\n\n const { setPanelState } = useUtilityStore.pick();\n const { activeField } = useUtilityStore.pick([\"panelState\", \"data\"]);\n\n const isFieldActive = activeField === name;\n\n useEffect(() => {\n if (!shouldAutoFocus || activeField) return;\n\n setFieldActive();\n }, [name]);\n\n useEffect(() => {\n const shouldFocus = shouldFocusRef.current;\n shouldFocusRef.current = true;\n\n if (!isFieldActive || !shouldFocus) return;\n\n requestAnimationFrame(() => ref?.current?.focus?.());\n }, [isFieldActive]);\n\n const setFieldActive = () => {\n const needsRerender = !ref.current && isFieldActive;\n shouldFocusRef.current = !ref.current;\n\n if (needsRerender) {\n setPanelState(assocPath([\"data\", \"activeField\"], null));\n requestAnimationFrame(() =>\n setPanelState(assocPath([\"data\", \"activeField\"], name))\n );\n } else {\n setPanelState(assocPath([\"data\", \"activeField\"], name));\n }\n };\n\n const resetActiveField = () =>\n setPanelState(assocPath([\"data\", \"activeField\"], null));\n\n return {\n ref,\n isFieldActive,\n setFieldActive,\n resetActiveField,\n setPanelState,\n };\n};\n\nexport default useActiveField;\n","import { withImmutableActions } from \"neetocommons/v2/react-utils\";\nimport { create } from \"zustand\";\n\n/** @type {import(\"neetocommons/react-utils\").ZustandStoreHook} */\nconst useCustomDataStore = create(\n withImmutableActions(set => ({ customData: {}, setCustomDataState: set }))\n);\n\nexport default useCustomDataStore;\n"],"names":["useActiveField","name","_ref","arguments","length","undefined","_ref$shouldAutoFocus","shouldAutoFocus","ref","useRef","shouldFocusRef","_useUtilityStore","useUtilityStore","store","setPanelState","shallow","_useUtilityStore2","_store$panelState","activeField","isFieldActive","useEffect","setFieldActive","shouldFocus","current","requestAnimationFrame","_ref$current","_ref$current$focus","focus","call","needsRerender","assocPath","resetActiveField","useCustomDataStore","create","withImmutableActions","set","customData","setCustomDataState"],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ 'use strict';
2
+
3
+ var shallow = require('zustand/shallow');
4
+ var react = require('react');
5
+ var ramda = require('ramda');
6
+ var useUtilityStore = require('./useUtilityStore-DkxAexDw.js');
7
+ var reactUtils = require('@bigbinary/neeto-commons-frontend/v2/react-utils');
8
+ var zustand = require('zustand');
9
+
10
+ var useActiveField = function useActiveField(name) {
11
+ var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
12
+ _ref$shouldAutoFocus = _ref.shouldAutoFocus,
13
+ shouldAutoFocus = _ref$shouldAutoFocus === void 0 ? false : _ref$shouldAutoFocus;
14
+ var ref = react.useRef(null);
15
+ var shouldFocusRef = react.useRef(true);
16
+ var _useUtilityStore = useUtilityStore.useUtilityStore(function (store) {
17
+ return {
18
+ setPanelState: store["setPanelState"]
19
+ };
20
+ }, shallow.shallow),
21
+ setPanelState = _useUtilityStore.setPanelState;
22
+ var _useUtilityStore2 = useUtilityStore.useUtilityStore(function (store) {
23
+ var _store$panelState;
24
+ return {
25
+ activeField: (_store$panelState = store["panelState"]) === null || _store$panelState === void 0 || (_store$panelState = _store$panelState["data"]) === null || _store$panelState === void 0 ? void 0 : _store$panelState["activeField"]
26
+ };
27
+ }, shallow.shallow),
28
+ activeField = _useUtilityStore2.activeField;
29
+ var isFieldActive = activeField === name;
30
+ react.useEffect(function () {
31
+ if (!shouldAutoFocus || activeField) return;
32
+ setFieldActive();
33
+ }, [name]);
34
+ react.useEffect(function () {
35
+ var shouldFocus = shouldFocusRef.current;
36
+ shouldFocusRef.current = true;
37
+ if (!isFieldActive || !shouldFocus) return;
38
+ requestAnimationFrame(function () {
39
+ var _ref$current, _ref$current$focus;
40
+ return ref === null || ref === void 0 || (_ref$current = ref.current) === null || _ref$current === void 0 || (_ref$current$focus = _ref$current.focus) === null || _ref$current$focus === void 0 ? void 0 : _ref$current$focus.call(_ref$current);
41
+ });
42
+ }, [isFieldActive]);
43
+ var setFieldActive = function setFieldActive() {
44
+ var needsRerender = !ref.current && isFieldActive;
45
+ shouldFocusRef.current = !ref.current;
46
+ if (needsRerender) {
47
+ setPanelState(ramda.assocPath(["data", "activeField"], null));
48
+ requestAnimationFrame(function () {
49
+ return setPanelState(ramda.assocPath(["data", "activeField"], name));
50
+ });
51
+ } else {
52
+ setPanelState(ramda.assocPath(["data", "activeField"], name));
53
+ }
54
+ };
55
+ var resetActiveField = function resetActiveField() {
56
+ return setPanelState(ramda.assocPath(["data", "activeField"], null));
57
+ };
58
+ return {
59
+ ref: ref,
60
+ isFieldActive: isFieldActive,
61
+ setFieldActive: setFieldActive,
62
+ resetActiveField: resetActiveField,
63
+ setPanelState: setPanelState
64
+ };
65
+ };
66
+
67
+ /** @type {import("neetocommons/react-utils").ZustandStoreHook} */
68
+ var useCustomDataStore = zustand.create(reactUtils.withImmutableActions(function (set) {
69
+ return {
70
+ customData: {},
71
+ setCustomDataState: set
72
+ };
73
+ }));
74
+
75
+ exports.useActiveField = useActiveField;
76
+ exports.useCustomDataStore = useCustomDataStore;
77
+ //# sourceMappingURL=useCustomDataStore-DipT25Pg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCustomDataStore-DipT25Pg.js","sources":["../app/javascript/src/v2/components/NeetoRulesForm/hooks/useActiveField.js","../app/javascript/src/v2/components/NeetoRulesForm/stores/useCustomDataStore.js"],"sourcesContent":["import { useEffect, useRef } from \"react\";\n\nimport { assocPath } from \"ramda\";\n\nimport useUtilityStore from \"v2/components/stores/useUtilityStore\";\n\nconst useActiveField = (name, { shouldAutoFocus = false } = {}) => {\n const ref = useRef(null);\n const shouldFocusRef = useRef(true);\n\n const { setPanelState } = useUtilityStore.pick();\n const { activeField } = useUtilityStore.pick([\"panelState\", \"data\"]);\n\n const isFieldActive = activeField === name;\n\n useEffect(() => {\n if (!shouldAutoFocus || activeField) return;\n\n setFieldActive();\n }, [name]);\n\n useEffect(() => {\n const shouldFocus = shouldFocusRef.current;\n shouldFocusRef.current = true;\n\n if (!isFieldActive || !shouldFocus) return;\n\n requestAnimationFrame(() => ref?.current?.focus?.());\n }, [isFieldActive]);\n\n const setFieldActive = () => {\n const needsRerender = !ref.current && isFieldActive;\n shouldFocusRef.current = !ref.current;\n\n if (needsRerender) {\n setPanelState(assocPath([\"data\", \"activeField\"], null));\n requestAnimationFrame(() =>\n setPanelState(assocPath([\"data\", \"activeField\"], name))\n );\n } else {\n setPanelState(assocPath([\"data\", \"activeField\"], name));\n }\n };\n\n const resetActiveField = () =>\n setPanelState(assocPath([\"data\", \"activeField\"], null));\n\n return {\n ref,\n isFieldActive,\n setFieldActive,\n resetActiveField,\n setPanelState,\n };\n};\n\nexport default useActiveField;\n","import { withImmutableActions } from \"neetocommons/v2/react-utils\";\nimport { create } from \"zustand\";\n\n/** @type {import(\"neetocommons/react-utils\").ZustandStoreHook} */\nconst useCustomDataStore = create(\n withImmutableActions(set => ({ customData: {}, setCustomDataState: set }))\n);\n\nexport default useCustomDataStore;\n"],"names":["useActiveField","name","_ref","arguments","length","undefined","_ref$shouldAutoFocus","shouldAutoFocus","ref","useRef","shouldFocusRef","_useUtilityStore","useUtilityStore","store","setPanelState","shallow","_useUtilityStore2","_store$panelState","activeField","isFieldActive","useEffect","setFieldActive","shouldFocus","current","requestAnimationFrame","_ref$current","_ref$current$focus","focus","call","needsRerender","assocPath","resetActiveField","useCustomDataStore","create","withImmutableActions","set","customData","setCustomDataState"],"mappings":"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"}
@@ -0,0 +1,108 @@
1
+ 'use strict';
2
+
3
+ var react = require('react');
4
+ var i18next = require('i18next');
5
+ var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
6
+ var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
7
+
8
+ var e=[],t=[];function n(n,r){if(n&&"undefined"!=typeof document){var a,s=true===r.prepend?"prepend":"append",d=true===r.singleTag,i="string"==typeof r.container?document.querySelector(r.container):document.getElementsByTagName("head")[0];if(d){var u=e.indexOf(i);-1===u&&(u=e.push(i)-1,t[u]={}),a=t[u]&&t[u][s]?t[u][s]:t[u][s]=c();}else a=c();65279===n.charCodeAt(0)&&(n=n.substring(1)),a.styleSheet?a.styleSheet.cssText+=n:a.appendChild(document.createTextNode(n));}function c(){var e=document.createElement("style");if(e.setAttribute("type","text/css"),r.attributes)for(var t=Object.keys(r.attributes),n=0;n<t.length;n++)e.setAttribute(t[n],r.attributes[t[n]]);var a="prepend"===s?"afterbegin":"beforeend";return i.insertAdjacentElement(a,e),e}}
9
+
10
+ var css = ".neeto-rules-main-content__container{height:100dvh!important}.neeto-rules-main-card .neeto-ui-btn.underline{text-align:start}.neeto-rules-side-panel{flex-grow:0;flex-shrink:0}.neeto-rules-side-panel--small{width:320px}.neeto-rules-side-panel--large{width:380px}@media (min-width:1024px){.neeto-rules-side-panel--small{width:380px}.neeto-rules-side-panel--large{width:480px}}.neeto-rules-json-editor__wrapper{height:35vh;padding-bottom:2rem;position:relative}.neeto-rules-json-editor__editor{height:100%}.neeto-rules-json-editor__dynamic-variables{inset-inline-end:1rem;position:absolute;top:1rem;z-index:10}[data-tippy-root]{z-index:99999!important}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC9qYXZhc2NyaXB0L3NyYy9zdHlsZXNoZWV0cy9jb21wb25lbnRzL2xheW91dC5jc3MiLCJhcHAvamF2YXNjcmlwdC9zcmMvc3R5bGVzaGVldHMvY29tcG9uZW50cy9wYW5lLmNzcyIsImFwcC9qYXZhc2NyaXB0L3NyYy9zdHlsZXNoZWV0cy9jb21wb25lbnRzL2pzb24tZWRpdG9yLmNzcyIsImFwcC9qYXZhc2NyaXB0L3NyYy9zdHlsZXNoZWV0cy9jb21wb25lbnRzL2Ryb3Bkb3duLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxxQ0FDRSx1QkFDRixDQUVBLCtDQUNFLGdCQUNGLENDTkEsd0JBRUUsV0FBWSxDQURaLGFBRUYsQ0FFQSwrQkFDRSxXQUNGLENBRUEsK0JBQ0UsV0FDRixDQUVBLDBCQUNFLCtCQUNFLFdBQ0YsQ0FDQSwrQkFDRSxXQUNGLENBQ0YsQ0NwQkEsa0NBRUUsV0FBWSxDQUNaLG1CQUFvQixDQUZwQixpQkFHRixDQUVBLGlDQUNFLFdBQ0YsQ0FFQSw0Q0FHRSxxQkFBc0IsQ0FGdEIsaUJBQWtCLENBQ2xCLFFBQVMsQ0FFVCxVQUNGLENDZkEsa0JBQ0UsdUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIubmVldG8tcnVsZXMtbWFpbi1jb250ZW50X19jb250YWluZXIge1xuICBoZWlnaHQ6IDEwMGR2aCAhaW1wb3J0YW50O1xufVxuXG4ubmVldG8tcnVsZXMtbWFpbi1jYXJkIC5uZWV0by11aS1idG4udW5kZXJsaW5lIHtcbiAgdGV4dC1hbGlnbjogc3RhcnQ7XG59XG4iLCIubmVldG8tcnVsZXMtc2lkZS1wYW5lbCB7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBmbGV4LWdyb3c6IDA7XG59XG5cbi5uZWV0by1ydWxlcy1zaWRlLXBhbmVsLS1zbWFsbCB7XG4gIHdpZHRoOiAzMjBweDtcbn1cblxuLm5lZXRvLXJ1bGVzLXNpZGUtcGFuZWwtLWxhcmdlIHtcbiAgd2lkdGg6IDM4MHB4O1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC5uZWV0by1ydWxlcy1zaWRlLXBhbmVsLS1zbWFsbCB7XG4gICAgd2lkdGg6IDM4MHB4O1xuICB9XG4gIC5uZWV0by1ydWxlcy1zaWRlLXBhbmVsLS1sYXJnZSB7XG4gICAgd2lkdGg6IDQ4MHB4O1xuICB9XG59XG4iLCIubmVldG8tcnVsZXMtanNvbi1lZGl0b3JfX3dyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMzV2aDtcbiAgcGFkZGluZy1ib3R0b206IDJyZW07XG59XG5cbi5uZWV0by1ydWxlcy1qc29uLWVkaXRvcl9fZWRpdG9yIHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4ubmVldG8tcnVsZXMtanNvbi1lZGl0b3JfX2R5bmFtaWMtdmFyaWFibGVzIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDFyZW07XG4gIGluc2V0LWlubGluZS1lbmQ6IDFyZW07XG4gIHotaW5kZXg6IDEwO1xufVxuIiwiW2RhdGEtdGlwcHktcm9vdF0ge1xuICB6LWluZGV4OiA5OTk5OSAhaW1wb3J0YW50O1xufVxuIl19 */";
11
+ n(css,{});
12
+
13
+ function isBuffer (obj) {
14
+ return obj &&
15
+ obj.constructor &&
16
+ (typeof obj.constructor.isBuffer === 'function') &&
17
+ obj.constructor.isBuffer(obj)
18
+ }
19
+
20
+ function keyIdentity (key) {
21
+ return key
22
+ }
23
+
24
+ function flatten (target, opts) {
25
+ opts = opts || {};
26
+
27
+ const delimiter = opts.delimiter || '.';
28
+ const maxDepth = opts.maxDepth;
29
+ const transformKey = opts.transformKey || keyIdentity;
30
+ const output = {};
31
+
32
+ function step (object, prev, currentDepth) {
33
+ currentDepth = currentDepth || 1;
34
+ Object.keys(object).forEach(function (key) {
35
+ const value = object[key];
36
+ const isarray = opts.safe && Array.isArray(value);
37
+ const type = Object.prototype.toString.call(value);
38
+ const isbuffer = isBuffer(value);
39
+ const isobject = (
40
+ type === '[object Object]' ||
41
+ type === '[object Array]'
42
+ );
43
+
44
+ const newKey = prev
45
+ ? prev + delimiter + transformKey(key)
46
+ : transformKey(key);
47
+
48
+ if (!isarray && !isbuffer && isobject && Object.keys(value).length &&
49
+ (!opts.maxDepth || currentDepth < maxDepth)) {
50
+ return step(value, newKey, currentDepth + 1)
51
+ }
52
+
53
+ output[newKey] = value;
54
+ });
55
+ }
56
+
57
+ step(target);
58
+
59
+ return output
60
+ }
61
+
62
+ var useOnClickOutside = function useOnClickOutside(ref, handler) {
63
+ react.useEffect(function () {
64
+ var listener = function listener(event) {
65
+ // Do nothing if clicking ref's element or descendent elements
66
+ if (!ref.current || ref.current.contains(event.target)) {
67
+ return;
68
+ }
69
+ handler(event);
70
+ };
71
+ document.addEventListener("mousedown", listener);
72
+ document.addEventListener("touchstart", listener);
73
+ return function () {
74
+ document.removeEventListener("mousedown", listener);
75
+ document.removeEventListener("touchstart", listener);
76
+ };
77
+ }, [handler]);
78
+ };
79
+
80
+ var SHORTCUTS = {
81
+ cancel: {
82
+ sequence: "escape",
83
+ description: i18next.t("neetoRules.shortcuts.cancel")
84
+ },
85
+ submit: {
86
+ sequence: "enter",
87
+ description: i18next.t("neetoRules.shortcuts.submit")
88
+ }
89
+ };
90
+
91
+ var useDebouncedUpdate = function useDebouncedUpdate(value, setValue) {
92
+ var duration = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 200;
93
+ var _useStateWithDependen = reactUtils.useStateWithDependency(value),
94
+ _useStateWithDependen2 = _slicedToArray(_useStateWithDependen, 2),
95
+ text = _useStateWithDependen2[0],
96
+ setText = _useStateWithDependen2[1];
97
+ var debouncedValue = reactUtils.useDebounce(text, duration);
98
+ react.useEffect(function () {
99
+ setValue(text);
100
+ }, [debouncedValue]);
101
+ return [text, setText];
102
+ };
103
+
104
+ exports.SHORTCUTS = SHORTCUTS;
105
+ exports.flatten = flatten;
106
+ exports.useDebouncedUpdate = useDebouncedUpdate;
107
+ exports.useOnClickOutside = useOnClickOutside;
108
+ //# sourceMappingURL=useDebouncedUpdate-6Ibug5MF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDebouncedUpdate-6Ibug5MF.js","sources":["../node_modules/rollup-plugin-styles/dist/runtime/inject-css.js","../node_modules/flat/index.js","../app/javascript/src/hooks/useOnClickOutside.js","../app/javascript/src/constants/keyboardShortcuts.js","../app/javascript/src/hooks/useDebouncedUpdate.js"],"sourcesContent":["var e=[],t=[];function n(n,r){if(n&&\"undefined\"!=typeof document){var a,s=!0===r.prepend?\"prepend\":\"append\",d=!0===r.singleTag,i=\"string\"==typeof r.container?document.querySelector(r.container):document.getElementsByTagName(\"head\")[0];if(d){var u=e.indexOf(i);-1===u&&(u=e.push(i)-1,t[u]={}),a=t[u]&&t[u][s]?t[u][s]:t[u][s]=c()}else a=c();65279===n.charCodeAt(0)&&(n=n.substring(1)),a.styleSheet?a.styleSheet.cssText+=n:a.appendChild(document.createTextNode(n))}function c(){var e=document.createElement(\"style\");if(e.setAttribute(\"type\",\"text/css\"),r.attributes)for(var t=Object.keys(r.attributes),n=0;n<t.length;n++)e.setAttribute(t[n],r.attributes[t[n]]);var a=\"prepend\"===s?\"afterbegin\":\"beforeend\";return i.insertAdjacentElement(a,e),e}}export{n as default};\n","function isBuffer (obj) {\n return obj &&\n obj.constructor &&\n (typeof obj.constructor.isBuffer === 'function') &&\n obj.constructor.isBuffer(obj)\n}\n\nfunction keyIdentity (key) {\n return key\n}\n\nexport function flatten (target, opts) {\n opts = opts || {}\n\n const delimiter = opts.delimiter || '.'\n const maxDepth = opts.maxDepth\n const transformKey = opts.transformKey || keyIdentity\n const output = {}\n\n function step (object, prev, currentDepth) {\n currentDepth = currentDepth || 1\n Object.keys(object).forEach(function (key) {\n const value = object[key]\n const isarray = opts.safe && Array.isArray(value)\n const type = Object.prototype.toString.call(value)\n const isbuffer = isBuffer(value)\n const isobject = (\n type === '[object Object]' ||\n type === '[object Array]'\n )\n\n const newKey = prev\n ? prev + delimiter + transformKey(key)\n : transformKey(key)\n\n if (!isarray && !isbuffer && isobject && Object.keys(value).length &&\n (!opts.maxDepth || currentDepth < maxDepth)) {\n return step(value, newKey, currentDepth + 1)\n }\n\n output[newKey] = value\n })\n }\n\n step(target)\n\n return output\n}\n\nexport function unflatten (target, opts) {\n opts = opts || {}\n\n const delimiter = opts.delimiter || '.'\n const overwrite = opts.overwrite || false\n const transformKey = opts.transformKey || keyIdentity\n const result = {}\n\n const isbuffer = isBuffer(target)\n if (isbuffer || Object.prototype.toString.call(target) !== '[object Object]') {\n return target\n }\n\n // safely ensure that the key is\n // an integer.\n function getkey (key) {\n const parsedKey = Number(key)\n\n return (\n isNaN(parsedKey) ||\n key.indexOf('.') !== -1 ||\n opts.object\n )\n ? key\n : parsedKey\n }\n\n function addKeys (keyPrefix, recipient, target) {\n return Object.keys(target).reduce(function (result, key) {\n result[keyPrefix + delimiter + key] = target[key]\n\n return result\n }, recipient)\n }\n\n function isEmpty (val) {\n const type = Object.prototype.toString.call(val)\n const isArray = type === '[object Array]'\n const isObject = type === '[object Object]'\n\n if (!val) {\n return true\n } else if (isArray) {\n return !val.length\n } else if (isObject) {\n return !Object.keys(val).length\n }\n }\n\n target = Object.keys(target).reduce(function (result, key) {\n const type = Object.prototype.toString.call(target[key])\n const isObject = (type === '[object Object]' || type === '[object Array]')\n if (!isObject || isEmpty(target[key])) {\n result[key] = target[key]\n return result\n } else {\n return addKeys(\n key,\n result,\n flatten(target[key], opts)\n )\n }\n }, {})\n\n Object.keys(target).forEach(function (key) {\n const split = key.split(delimiter).map(transformKey)\n let key1 = getkey(split.shift())\n let key2 = getkey(split[0])\n let recipient = result\n\n while (key2 !== undefined) {\n if (key1 === '__proto__') {\n return\n }\n\n const type = Object.prototype.toString.call(recipient[key1])\n const isobject = (\n type === '[object Object]' ||\n type === '[object Array]'\n )\n\n // do not write over falsey, non-undefined values if overwrite is false\n if (!overwrite && !isobject && typeof recipient[key1] !== 'undefined') {\n return\n }\n\n if ((overwrite && !isobject) || (!overwrite && recipient[key1] == null)) {\n recipient[key1] = (\n typeof key2 === 'number' &&\n !opts.object\n ? []\n : {}\n )\n }\n\n recipient = recipient[key1]\n if (split.length > 0) {\n key1 = getkey(split.shift())\n key2 = getkey(split[0])\n }\n }\n\n // unflatten again for 'messy objects'\n recipient[key1] = unflatten(target[key], opts)\n })\n\n return result\n}\n","import { useEffect } from \"react\";\n\nconst useOnClickOutside = (ref, handler) => {\n useEffect(() => {\n const listener = event => {\n // Do nothing if clicking ref's element or descendent elements\n if (!ref.current || ref.current.contains(event.target)) {\n return;\n }\n handler(event);\n };\n document.addEventListener(\"mousedown\", listener);\n document.addEventListener(\"touchstart\", listener);\n\n return () => {\n document.removeEventListener(\"mousedown\", listener);\n document.removeEventListener(\"touchstart\", listener);\n };\n }, [handler]);\n};\n\nexport default useOnClickOutside;\n","import { t } from \"i18next\";\n\nexport const SHORTCUTS = {\n cancel: {\n sequence: \"escape\",\n description: t(\"neetoRules.shortcuts.cancel\"),\n },\n submit: {\n sequence: \"enter\",\n description: t(\"neetoRules.shortcuts.submit\"),\n },\n};\n","import { useEffect } from \"react\";\n\nimport { useDebounce, useStateWithDependency } from \"neetocommons/react-utils\";\n\nconst useDebouncedUpdate = (value, setValue, duration = 200) => {\n const [text, setText] = useStateWithDependency(value);\n\n const debouncedValue = useDebounce(text, duration);\n\n useEffect(() => {\n setValue(text);\n }, [debouncedValue]);\n\n return [text, setText];\n};\n\nexport default useDebouncedUpdate;\n"],"names":["useOnClickOutside","ref","handler","useEffect","listener","event","current","contains","target","document","addEventListener","removeEventListener","SHORTCUTS","cancel","sequence","description","t","submit","useDebouncedUpdate","value","setValue","duration","arguments","length","undefined","_useStateWithDependen","useStateWithDependency","_useStateWithDependen2","_slicedToArray","text","setText","debouncedValue","useDebounce"],"mappings":";;;;;;;AAAA,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,OAAO,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAE,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAE,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,EAAC,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;;;;;ACAruB,SAAS,QAAQ,EAAE,GAAG,EAAE;AACxB,EAAE,OAAO,GAAG;AACZ,IAAI,GAAG,CAAC,WAAW;AACnB,KAAK,OAAO,GAAG,CAAC,WAAW,CAAC,QAAQ,KAAK,UAAU,CAAC;AACpD,IAAI,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG;AAChC;;AAEA,SAAS,WAAW,EAAE,GAAG,EAAE;AAC3B,EAAE,OAAO;AACT;;AAEO,SAAS,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE;AACvC,EAAE,IAAI,GAAG,IAAI,IAAI;;AAEjB,EAAE,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI;AACtC,EAAE,MAAM,QAAQ,GAAG,IAAI,CAAC;AACxB,EAAE,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI;AAC5C,EAAE,MAAM,MAAM,GAAG;;AAEjB,EAAE,SAAS,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE;AAC7C,IAAI,YAAY,GAAG,YAAY,IAAI;AACnC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE;AAC/C,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG;AAC9B,MAAM,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK;AACtD,MAAM,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK;AACvD,MAAM,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK;AACrC,MAAM,MAAM,QAAQ;AACpB,QAAQ,IAAI,KAAK,iBAAiB;AAClC,QAAQ,IAAI,KAAK;AACjB;;AAEA,MAAM,MAAM,MAAM,GAAG;AACrB,UAAU,IAAI,GAAG,SAAS,GAAG,YAAY,CAAC,GAAG;AAC7C,UAAU,YAAY,CAAC,GAAG;;AAE1B,MAAM,IAAI,CAAC,OAAO,IAAI,CAAC,QAAQ,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM;AACxE,SAAS,CAAC,IAAI,CAAC,QAAQ,IAAI,YAAY,GAAG,QAAQ,CAAC,EAAE;AACrD,QAAQ,OAAO,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,GAAG,CAAC;AACnD,MAAM;;AAEN,MAAM,MAAM,CAAC,MAAM,CAAC,GAAG;AACvB,IAAI,CAAC;AACL,EAAE;;AAEF,EAAE,IAAI,CAAC,MAAM;;AAEb,EAAE,OAAO;AACT;;AC7CA,IAAMA,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAIC,GAAG,EAAEC,OAAO,EAAK;AAC1CC,EAAAA,eAAS,CAAC,YAAM;AACd,IAAA,IAAMC,QAAQ,GAAG,SAAXA,QAAQA,CAAGC,KAAK,EAAI;AACxB;AACA,MAAA,IAAI,CAACJ,GAAG,CAACK,OAAO,IAAIL,GAAG,CAACK,OAAO,CAACC,QAAQ,CAACF,KAAK,CAACG,MAAM,CAAC,EAAE;AACtD,QAAA;AACF,MAAA;MACAN,OAAO,CAACG,KAAK,CAAC;IAChB,CAAC;AACDI,IAAAA,QAAQ,CAACC,gBAAgB,CAAC,WAAW,EAAEN,QAAQ,CAAC;AAChDK,IAAAA,QAAQ,CAACC,gBAAgB,CAAC,YAAY,EAAEN,QAAQ,CAAC;AAEjD,IAAA,OAAO,YAAM;AACXK,MAAAA,QAAQ,CAACE,mBAAmB,CAAC,WAAW,EAAEP,QAAQ,CAAC;AACnDK,MAAAA,QAAQ,CAACE,mBAAmB,CAAC,YAAY,EAAEP,QAAQ,CAAC;IACtD,CAAC;AACH,EAAA,CAAC,EAAE,CAACF,OAAO,CAAC,CAAC;AACf;;ACjBO,IAAMU,SAAS,GAAG;AACvBC,EAAAA,MAAM,EAAE;AACNC,IAAAA,QAAQ,EAAE,QAAQ;IAClBC,WAAW,EAAEC,SAAC,CAAC,6BAA6B;GAC7C;AACDC,EAAAA,MAAM,EAAE;AACNH,IAAAA,QAAQ,EAAE,OAAO;IACjBC,WAAW,EAAEC,SAAC,CAAC,6BAA6B;AAC9C;AACF;;ACPA,IAAME,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAIC,KAAK,EAAEC,QAAQ,EAAqB;AAAA,EAAA,IAAnBC,QAAQ,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,GAAG;AACzD,EAAA,IAAAG,qBAAA,GAAwBC,iCAAsB,CAACP,KAAK,CAAC;IAAAQ,sBAAA,GAAAC,cAAA,CAAAH,qBAAA,EAAA,CAAA,CAAA;AAA9CI,IAAAA,IAAI,GAAAF,sBAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,OAAO,GAAAH,sBAAA,CAAA,CAAA,CAAA;AAEpB,EAAA,IAAMI,cAAc,GAAGC,sBAAW,CAACH,IAAI,EAAER,QAAQ,CAAC;AAElDlB,EAAAA,eAAS,CAAC,YAAM;IACdiB,QAAQ,CAACS,IAAI,CAAC;AAChB,EAAA,CAAC,EAAE,CAACE,cAAc,CAAC,CAAC;AAEpB,EAAA,OAAO,CAACF,IAAI,EAAEC,OAAO,CAAC;AACxB;;;;;;;","x_google_ignoreList":[0,1]}