@bigbinary/neeto-rules-frontend 2.5.56 → 2.5.57

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 +6818 -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 +6797 -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 +26 -14
@@ -0,0 +1,103 @@
1
+ import { useEffect } from 'react';
2
+ import { t as t$1 } from 'i18next';
3
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
4
+ import { useStateWithDependency, useDebounce } from '@bigbinary/neeto-commons-frontend/react-utils';
5
+
6
+ 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}}
7
+
8
+ 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 */";
9
+ n(css,{});
10
+
11
+ function isBuffer (obj) {
12
+ return obj &&
13
+ obj.constructor &&
14
+ (typeof obj.constructor.isBuffer === 'function') &&
15
+ obj.constructor.isBuffer(obj)
16
+ }
17
+
18
+ function keyIdentity (key) {
19
+ return key
20
+ }
21
+
22
+ function flatten (target, opts) {
23
+ opts = opts || {};
24
+
25
+ const delimiter = opts.delimiter || '.';
26
+ const maxDepth = opts.maxDepth;
27
+ const transformKey = opts.transformKey || keyIdentity;
28
+ const output = {};
29
+
30
+ function step (object, prev, currentDepth) {
31
+ currentDepth = currentDepth || 1;
32
+ Object.keys(object).forEach(function (key) {
33
+ const value = object[key];
34
+ const isarray = opts.safe && Array.isArray(value);
35
+ const type = Object.prototype.toString.call(value);
36
+ const isbuffer = isBuffer(value);
37
+ const isobject = (
38
+ type === '[object Object]' ||
39
+ type === '[object Array]'
40
+ );
41
+
42
+ const newKey = prev
43
+ ? prev + delimiter + transformKey(key)
44
+ : transformKey(key);
45
+
46
+ if (!isarray && !isbuffer && isobject && Object.keys(value).length &&
47
+ (!opts.maxDepth || currentDepth < maxDepth)) {
48
+ return step(value, newKey, currentDepth + 1)
49
+ }
50
+
51
+ output[newKey] = value;
52
+ });
53
+ }
54
+
55
+ step(target);
56
+
57
+ return output
58
+ }
59
+
60
+ var useOnClickOutside = function useOnClickOutside(ref, handler) {
61
+ useEffect(function () {
62
+ var listener = function listener(event) {
63
+ // Do nothing if clicking ref's element or descendent elements
64
+ if (!ref.current || ref.current.contains(event.target)) {
65
+ return;
66
+ }
67
+ handler(event);
68
+ };
69
+ document.addEventListener("mousedown", listener);
70
+ document.addEventListener("touchstart", listener);
71
+ return function () {
72
+ document.removeEventListener("mousedown", listener);
73
+ document.removeEventListener("touchstart", listener);
74
+ };
75
+ }, [handler]);
76
+ };
77
+
78
+ var SHORTCUTS = {
79
+ cancel: {
80
+ sequence: "escape",
81
+ description: t$1("neetoRules.shortcuts.cancel")
82
+ },
83
+ submit: {
84
+ sequence: "enter",
85
+ description: t$1("neetoRules.shortcuts.submit")
86
+ }
87
+ };
88
+
89
+ var useDebouncedUpdate = function useDebouncedUpdate(value, setValue) {
90
+ var duration = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 200;
91
+ var _useStateWithDependen = useStateWithDependency(value),
92
+ _useStateWithDependen2 = _slicedToArray(_useStateWithDependen, 2),
93
+ text = _useStateWithDependen2[0],
94
+ setText = _useStateWithDependen2[1];
95
+ var debouncedValue = useDebounce(text, duration);
96
+ useEffect(function () {
97
+ setValue(text);
98
+ }, [debouncedValue]);
99
+ return [text, setText];
100
+ };
101
+
102
+ export { SHORTCUTS as S, useDebouncedUpdate as a, flatten as f, useOnClickOutside as u };
103
+ //# sourceMappingURL=useDebouncedUpdate-BcPAGgg7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDebouncedUpdate-BcPAGgg7.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":"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","x_google_ignoreList":[0,1]}
@@ -0,0 +1,53 @@
1
+ import { withImmutableActions } from '@bigbinary/neeto-commons-frontend/v2/react-utils';
2
+ import { modify, always } from 'ramda';
3
+ import { create } from 'zustand';
4
+
5
+ var applyStateOrUpdater = function applyStateOrUpdater(stateOrUpdater) {
6
+ return typeof stateOrUpdater === "function" ? stateOrUpdater : always(stateOrUpdater);
7
+ };
8
+
9
+ /** @type {import("neetocommons/react-utils").ZustandStoreHook} */
10
+ var useUtilityStore = create(withImmutableActions(function (set) {
11
+ return {
12
+ moreActionDropdownItems: [],
13
+ showPreviewPane: false,
14
+ panelState: {
15
+ data: {}
16
+ },
17
+ isSaveAsTemplateEnabled: false,
18
+ errorFields: [],
19
+ setMoreActionDropdownItems: function setMoreActionDropdownItems(items) {
20
+ return set({
21
+ moreActionDropdownItems: items,
22
+ showPreviewPane: true
23
+ });
24
+ },
25
+ hidePreviewPane: function hidePreviewPane() {
26
+ return set({
27
+ moreActionDropdownItems: [],
28
+ showPreviewPane: false
29
+ });
30
+ },
31
+ setPanelState: function setPanelState(stateOrUpdater) {
32
+ return set(modify("panelState", applyStateOrUpdater(stateOrUpdater)));
33
+ },
34
+ resetPanelState: function resetPanelState() {
35
+ return set({
36
+ panelState: {
37
+ data: {}
38
+ }
39
+ });
40
+ },
41
+ setIsSaveAsTemplateEnabled: function setIsSaveAsTemplateEnabled(isSaveAsTemplateEnabled) {
42
+ return set({
43
+ isSaveAsTemplateEnabled: isSaveAsTemplateEnabled
44
+ });
45
+ },
46
+ setErrorFields: function setErrorFields(stateOrUpdater) {
47
+ return set(modify("errorFields", applyStateOrUpdater(stateOrUpdater)));
48
+ }
49
+ };
50
+ }));
51
+
52
+ export { useUtilityStore as u };
53
+ //# sourceMappingURL=useUtilityStore-BBb39TOj.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useUtilityStore-BBb39TOj.js","sources":["../app/javascript/src/v2/components/stores/useUtilityStore.js"],"sourcesContent":["import { withImmutableActions } from \"neetocommons/v2/react-utils\";\nimport { always, modify } from \"ramda\";\nimport { create } from \"zustand\";\n\nconst applyStateOrUpdater = stateOrUpdater =>\n typeof stateOrUpdater === \"function\"\n ? stateOrUpdater\n : always(stateOrUpdater);\n\n/** @type {import(\"neetocommons/react-utils\").ZustandStoreHook} */\nconst useUtilityStore = create(\n withImmutableActions(set => ({\n moreActionDropdownItems: [],\n showPreviewPane: false,\n panelState: { data: {} },\n isSaveAsTemplateEnabled: false,\n errorFields: [],\n\n setMoreActionDropdownItems: items =>\n set({ moreActionDropdownItems: items, showPreviewPane: true }),\n hidePreviewPane: () =>\n set({ moreActionDropdownItems: [], showPreviewPane: false }),\n setPanelState: stateOrUpdater =>\n set(modify(\"panelState\", applyStateOrUpdater(stateOrUpdater))),\n resetPanelState: () => set({ panelState: { data: {} } }),\n setIsSaveAsTemplateEnabled: isSaveAsTemplateEnabled =>\n set({ isSaveAsTemplateEnabled }),\n setErrorFields: stateOrUpdater =>\n set(modify(\"errorFields\", applyStateOrUpdater(stateOrUpdater))),\n }))\n);\n\nexport default useUtilityStore;\n"],"names":["applyStateOrUpdater","stateOrUpdater","always","useUtilityStore","create","withImmutableActions","set","moreActionDropdownItems","showPreviewPane","panelState","data","isSaveAsTemplateEnabled","errorFields","setMoreActionDropdownItems","items","hidePreviewPane","setPanelState","modify","resetPanelState","setIsSaveAsTemplateEnabled","setErrorFields"],"mappings":";;;;AAIA,IAAMA,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAGC,cAAc,EAAA;EAAA,OACxC,OAAOA,cAAc,KAAK,UAAU,GAChCA,cAAc,GACdC,MAAM,CAACD,cAAc,CAAC;AAAA,CAAA;;AAE5B;AACA,IAAME,eAAe,GAAGC,MAAM,CAC5BC,oBAAoB,CAAC,UAAAC,GAAG,EAAA;EAAA,OAAK;AAC3BC,IAAAA,uBAAuB,EAAE,EAAE;AAC3BC,IAAAA,eAAe,EAAE,KAAK;AACtBC,IAAAA,UAAU,EAAE;AAAEC,MAAAA,IAAI,EAAE;KAAI;AACxBC,IAAAA,uBAAuB,EAAE,KAAK;AAC9BC,IAAAA,WAAW,EAAE,EAAE;AAEfC,IAAAA,0BAA0B,EAAE,SAA5BA,0BAA0BA,CAAEC,KAAK,EAAA;AAAA,MAAA,OAC/BR,GAAG,CAAC;AAAEC,QAAAA,uBAAuB,EAAEO,KAAK;AAAEN,QAAAA,eAAe,EAAE;AAAK,OAAC,CAAC;AAAA,IAAA,CAAA;IAChEO,eAAe,EAAE,SAAjBA,eAAeA,GAAA;AAAA,MAAA,OACbT,GAAG,CAAC;AAAEC,QAAAA,uBAAuB,EAAE,EAAE;AAAEC,QAAAA,eAAe,EAAE;AAAM,OAAC,CAAC;AAAA,IAAA,CAAA;AAC9DQ,IAAAA,aAAa,EAAE,SAAfA,aAAaA,CAAEf,cAAc,EAAA;MAAA,OAC3BK,GAAG,CAACW,MAAM,CAAC,YAAY,EAAEjB,mBAAmB,CAACC,cAAc,CAAC,CAAC,CAAC;AAAA,IAAA,CAAA;IAChEiB,eAAe,EAAE,SAAjBA,eAAeA,GAAA;AAAA,MAAA,OAAQZ,GAAG,CAAC;AAAEG,QAAAA,UAAU,EAAE;AAAEC,UAAAA,IAAI,EAAE;AAAG;AAAE,OAAC,CAAC;AAAA,IAAA,CAAA;AACxDS,IAAAA,0BAA0B,EAAE,SAA5BA,0BAA0BA,CAAER,uBAAuB,EAAA;AAAA,MAAA,OACjDL,GAAG,CAAC;AAAEK,QAAAA,uBAAuB,EAAvBA;AAAwB,OAAC,CAAC;AAAA,IAAA,CAAA;AAClCS,IAAAA,cAAc,EAAE,SAAhBA,cAAcA,CAAEnB,cAAc,EAAA;MAAA,OAC5BK,GAAG,CAACW,MAAM,CAAC,aAAa,EAAEjB,mBAAmB,CAACC,cAAc,CAAC,CAAC,CAAC;AAAA,IAAA;GAClE;AAAA,CAAC,CACJ;;;;"}
@@ -0,0 +1,55 @@
1
+ 'use strict';
2
+
3
+ var reactUtils = require('@bigbinary/neeto-commons-frontend/v2/react-utils');
4
+ var ramda = require('ramda');
5
+ var zustand = require('zustand');
6
+
7
+ var applyStateOrUpdater = function applyStateOrUpdater(stateOrUpdater) {
8
+ return typeof stateOrUpdater === "function" ? stateOrUpdater : ramda.always(stateOrUpdater);
9
+ };
10
+
11
+ /** @type {import("neetocommons/react-utils").ZustandStoreHook} */
12
+ var useUtilityStore = zustand.create(reactUtils.withImmutableActions(function (set) {
13
+ return {
14
+ moreActionDropdownItems: [],
15
+ showPreviewPane: false,
16
+ panelState: {
17
+ data: {}
18
+ },
19
+ isSaveAsTemplateEnabled: false,
20
+ errorFields: [],
21
+ setMoreActionDropdownItems: function setMoreActionDropdownItems(items) {
22
+ return set({
23
+ moreActionDropdownItems: items,
24
+ showPreviewPane: true
25
+ });
26
+ },
27
+ hidePreviewPane: function hidePreviewPane() {
28
+ return set({
29
+ moreActionDropdownItems: [],
30
+ showPreviewPane: false
31
+ });
32
+ },
33
+ setPanelState: function setPanelState(stateOrUpdater) {
34
+ return set(ramda.modify("panelState", applyStateOrUpdater(stateOrUpdater)));
35
+ },
36
+ resetPanelState: function resetPanelState() {
37
+ return set({
38
+ panelState: {
39
+ data: {}
40
+ }
41
+ });
42
+ },
43
+ setIsSaveAsTemplateEnabled: function setIsSaveAsTemplateEnabled(isSaveAsTemplateEnabled) {
44
+ return set({
45
+ isSaveAsTemplateEnabled: isSaveAsTemplateEnabled
46
+ });
47
+ },
48
+ setErrorFields: function setErrorFields(stateOrUpdater) {
49
+ return set(ramda.modify("errorFields", applyStateOrUpdater(stateOrUpdater)));
50
+ }
51
+ };
52
+ }));
53
+
54
+ exports.useUtilityStore = useUtilityStore;
55
+ //# sourceMappingURL=useUtilityStore-DkxAexDw.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useUtilityStore-DkxAexDw.js","sources":["../app/javascript/src/v2/components/stores/useUtilityStore.js"],"sourcesContent":["import { withImmutableActions } from \"neetocommons/v2/react-utils\";\nimport { always, modify } from \"ramda\";\nimport { create } from \"zustand\";\n\nconst applyStateOrUpdater = stateOrUpdater =>\n typeof stateOrUpdater === \"function\"\n ? stateOrUpdater\n : always(stateOrUpdater);\n\n/** @type {import(\"neetocommons/react-utils\").ZustandStoreHook} */\nconst useUtilityStore = create(\n withImmutableActions(set => ({\n moreActionDropdownItems: [],\n showPreviewPane: false,\n panelState: { data: {} },\n isSaveAsTemplateEnabled: false,\n errorFields: [],\n\n setMoreActionDropdownItems: items =>\n set({ moreActionDropdownItems: items, showPreviewPane: true }),\n hidePreviewPane: () =>\n set({ moreActionDropdownItems: [], showPreviewPane: false }),\n setPanelState: stateOrUpdater =>\n set(modify(\"panelState\", applyStateOrUpdater(stateOrUpdater))),\n resetPanelState: () => set({ panelState: { data: {} } }),\n setIsSaveAsTemplateEnabled: isSaveAsTemplateEnabled =>\n set({ isSaveAsTemplateEnabled }),\n setErrorFields: stateOrUpdater =>\n set(modify(\"errorFields\", applyStateOrUpdater(stateOrUpdater))),\n }))\n);\n\nexport default useUtilityStore;\n"],"names":["applyStateOrUpdater","stateOrUpdater","always","useUtilityStore","create","withImmutableActions","set","moreActionDropdownItems","showPreviewPane","panelState","data","isSaveAsTemplateEnabled","errorFields","setMoreActionDropdownItems","items","hidePreviewPane","setPanelState","modify","resetPanelState","setIsSaveAsTemplateEnabled","setErrorFields"],"mappings":";;;;;;AAIA,IAAMA,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAGC,cAAc,EAAA;EAAA,OACxC,OAAOA,cAAc,KAAK,UAAU,GAChCA,cAAc,GACdC,YAAM,CAACD,cAAc,CAAC;AAAA,CAAA;;AAE5B;AACA,IAAME,eAAe,GAAGC,cAAM,CAC5BC,+BAAoB,CAAC,UAAAC,GAAG,EAAA;EAAA,OAAK;AAC3BC,IAAAA,uBAAuB,EAAE,EAAE;AAC3BC,IAAAA,eAAe,EAAE,KAAK;AACtBC,IAAAA,UAAU,EAAE;AAAEC,MAAAA,IAAI,EAAE;KAAI;AACxBC,IAAAA,uBAAuB,EAAE,KAAK;AAC9BC,IAAAA,WAAW,EAAE,EAAE;AAEfC,IAAAA,0BAA0B,EAAE,SAA5BA,0BAA0BA,CAAEC,KAAK,EAAA;AAAA,MAAA,OAC/BR,GAAG,CAAC;AAAEC,QAAAA,uBAAuB,EAAEO,KAAK;AAAEN,QAAAA,eAAe,EAAE;AAAK,OAAC,CAAC;AAAA,IAAA,CAAA;IAChEO,eAAe,EAAE,SAAjBA,eAAeA,GAAA;AAAA,MAAA,OACbT,GAAG,CAAC;AAAEC,QAAAA,uBAAuB,EAAE,EAAE;AAAEC,QAAAA,eAAe,EAAE;AAAM,OAAC,CAAC;AAAA,IAAA,CAAA;AAC9DQ,IAAAA,aAAa,EAAE,SAAfA,aAAaA,CAAEf,cAAc,EAAA;MAAA,OAC3BK,GAAG,CAACW,YAAM,CAAC,YAAY,EAAEjB,mBAAmB,CAACC,cAAc,CAAC,CAAC,CAAC;AAAA,IAAA,CAAA;IAChEiB,eAAe,EAAE,SAAjBA,eAAeA,GAAA;AAAA,MAAA,OAAQZ,GAAG,CAAC;AAAEG,QAAAA,UAAU,EAAE;AAAEC,UAAAA,IAAI,EAAE;AAAG;AAAE,OAAC,CAAC;AAAA,IAAA,CAAA;AACxDS,IAAAA,0BAA0B,EAAE,SAA5BA,0BAA0BA,CAAER,uBAAuB,EAAA;AAAA,MAAA,OACjDL,GAAG,CAAC;AAAEK,QAAAA,uBAAuB,EAAvBA;AAAwB,OAAC,CAAC;AAAA,IAAA,CAAA;AAClCS,IAAAA,cAAc,EAAE,SAAhBA,cAAcA,CAAEnB,cAAc,EAAA;MAAA,OAC5BK,GAAG,CAACW,YAAM,CAAC,aAAa,EAAEjB,mBAAmB,CAACC,cAAc,CAAC,CAAC,CAAC;AAAA,IAAA;GAClE;AAAA,CAAC,CACJ;;;;"}
@@ -0,0 +1,394 @@
1
+ import _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';
2
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
3
+ import _regeneratorRuntime from '@babel/runtime/regenerator';
4
+ import { createElement, useState, useRef } from 'react';
5
+ import { Label, Input, Spinner, Sheet } from '@bigbinary/neeto-atoms';
6
+ import { Select, ActionBlock } from '@bigbinary/neeto-atoms/formik';
7
+ import { Formik, Form } from 'formik';
8
+ import { findBy, isPresent, toLabelAndValue } from '@bigbinary/neeto-cist';
9
+ import { PLURAL } from '@bigbinary/neeto-commons-frontend/v2/constants';
10
+ import { join, not, omit, values } from 'ramda';
11
+ import { useTranslation } from 'react-i18next';
12
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
13
+ import { t } from 'i18next';
14
+ import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
15
+ import Editor from '@bigbinary/neeto-editor/Editor';
16
+ import { jsxs, jsx } from 'react/jsx-runtime';
17
+
18
+ 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; }
19
+ 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; }
20
+ var CANNED_RESPONSE_INPUT_ACTION_NAMES = ["assign_agent", "assign_group", "remove_tags", "add_tags", "change_priority", "change_status"];
21
+ var CANNED_RESPONSE_RICH_TEXT_ACTION_NAME = ["add_note", "add_reply"];
22
+ var CANNED_RESPONSE_ACTION_LABELS = [].concat(CANNED_RESPONSE_INPUT_ACTION_NAMES, CANNED_RESPONSE_RICH_TEXT_ACTION_NAME).reduce(function (labelObject, actionName) {
23
+ return _objectSpread$2(_objectSpread$2({}, labelObject), {}, _defineProperty({}, actionName, "neetoRules.labels.".concat(actionName)));
24
+ }, {});
25
+ var ACTION_OPTIONS = {
26
+ assignTicketFieldValue: "assign_field_value"
27
+ };
28
+ var ACTION_TYPES_MAP = {
29
+ single_option: "dropdown",
30
+ multi_option: "multiSelect",
31
+ checkbox: "dropdown",
32
+ integer: "number"
33
+ };
34
+ var DEFAULT_CHECKBOX_OPTIONS = [{
35
+ label: t("neetoRules.labels.checked"),
36
+ value: true
37
+ }, {
38
+ label: t("neetoRules.labels.unchecked"),
39
+ value: false
40
+ }];
41
+
42
+ var Action = function Action(_ref) {
43
+ var id = _ref.id,
44
+ label = _ref.label,
45
+ setFieldValue = _ref.setFieldValue,
46
+ value = _ref.value,
47
+ _ref$richText = _ref.richText,
48
+ richText = _ref$richText === void 0 ? false : _ref$richText;
49
+ if (richText) {
50
+ return /*#__PURE__*/jsxs("div", {
51
+ className: "mb-4 space-y-2",
52
+ children: [/*#__PURE__*/jsx(Label, {
53
+ children: label
54
+ }), /*#__PURE__*/jsx(Editor, {
55
+ initialValue: value,
56
+ onChange: function onChange(newValue) {
57
+ return setFieldValue(id, newValue);
58
+ }
59
+ })]
60
+ }, id);
61
+ }
62
+ return /*#__PURE__*/createElement(Input, {
63
+ label: label,
64
+ disabled: true,
65
+ className: "mb-4",
66
+ key: id,
67
+ value: value.replace(/_/g, " ")
68
+ });
69
+ };
70
+
71
+ 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; }
72
+ 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; }
73
+ var renderActionValue = function renderActionValue(_ref) {
74
+ var actionType = _ref.actionType,
75
+ displayValue = _ref.displayValue;
76
+ if (actionType === "multiSelect") {
77
+ return join(", ", displayValue);
78
+ }
79
+ return displayValue;
80
+ };
81
+ var renderDefaultAction = function renderDefaultAction(_ref2) {
82
+ var id = _ref2.id,
83
+ name = _ref2.name,
84
+ displayValue = _ref2.displayValue,
85
+ setFieldValue = _ref2.setFieldValue,
86
+ trixBody = _ref2.trixBody;
87
+ var label = t(CANNED_RESPONSE_ACTION_LABELS[name]);
88
+ if (CANNED_RESPONSE_RICH_TEXT_ACTION_NAME.includes(name)) {
89
+ return /*#__PURE__*/jsx(Action, {
90
+ id: id,
91
+ label: label,
92
+ setFieldValue: setFieldValue,
93
+ richText: true,
94
+ value: trixBody
95
+ });
96
+ }
97
+ return /*#__PURE__*/jsx(Action, {
98
+ id: id,
99
+ label: label,
100
+ value: displayValue
101
+ });
102
+ };
103
+ var renderCustomAction = function renderCustomAction(_ref3) {
104
+ var id = _ref3.id,
105
+ actionableId = _ref3.actionableId,
106
+ displayValue = _ref3.displayValue,
107
+ actionOptions = _ref3.actionOptions,
108
+ setFieldValue = _ref3.setFieldValue;
109
+ var actionName = "ticket_field_".concat(actionableId);
110
+ var actionOption = findBy({
111
+ value: actionName
112
+ }, actionOptions);
113
+ var label = actionOption === null || actionOption === void 0 ? void 0 : actionOption.label;
114
+ var actionType = actionOption === null || actionOption === void 0 ? void 0 : actionOption.type;
115
+ var actionValue = renderActionValue({
116
+ actionType: actionType,
117
+ displayValue: displayValue
118
+ });
119
+ var isRichText = actionType === "rich-text";
120
+ return /*#__PURE__*/jsx(Action, {
121
+ id: id,
122
+ label: label,
123
+ setFieldValue: setFieldValue,
124
+ richText: isRichText,
125
+ value: actionValue
126
+ });
127
+ };
128
+ var getActionDropdown = function getActionDropdown(_ref4) {
129
+ var status = _ref4.status,
130
+ teams = _ref4.teams,
131
+ members = _ref4.members,
132
+ tags = _ref4.tags;
133
+ return {
134
+ change_status: status || [],
135
+ assign_group: teams || [],
136
+ assign_agent: members || [],
137
+ add_tags: tags || [],
138
+ remove_tags: tags || []
139
+ };
140
+ };
141
+ var getActionType = function getActionType(kind) {
142
+ return ACTION_TYPES_MAP[kind] || kind;
143
+ };
144
+ var getDropdownOptions = function getDropdownOptions(kind, optionsAttribute) {
145
+ if (["single_option", "multi_option"].includes(kind)) {
146
+ return optionsAttribute.map(function (_ref5) {
147
+ var id = _ref5.id,
148
+ label = _ref5.label;
149
+ return {
150
+ label: label,
151
+ value: id
152
+ };
153
+ });
154
+ } else if (kind === "checkbox") {
155
+ return _toConsumableArray(DEFAULT_CHECKBOX_OPTIONS);
156
+ }
157
+ return [];
158
+ };
159
+ var renderAction = function renderAction(_ref6) {
160
+ var name = _ref6.name,
161
+ id = _ref6.id,
162
+ actionableId = _ref6.actionableId,
163
+ displayValue = _ref6.displayValue,
164
+ _ref6$actionOptions = _ref6.actionOptions,
165
+ actionOptions = _ref6$actionOptions === void 0 ? [] : _ref6$actionOptions,
166
+ setFieldValue = _ref6.setFieldValue,
167
+ _ref6$trixBody = _ref6.trixBody,
168
+ trixBody = _ref6$trixBody === void 0 ? "" : _ref6$trixBody;
169
+ var isCustomAction = name === ACTION_OPTIONS.assignTicketFieldValue;
170
+ return isCustomAction ? renderCustomAction({
171
+ id: id,
172
+ actionableId: actionableId,
173
+ displayValue: displayValue,
174
+ actionOptions: actionOptions,
175
+ setFieldValue: setFieldValue
176
+ }) : renderDefaultAction({
177
+ id: id,
178
+ name: name,
179
+ displayValue: displayValue,
180
+ setFieldValue: setFieldValue,
181
+ trixBody: trixBody
182
+ });
183
+ };
184
+ var buildActionOptions = function buildActionOptions(_ref7) {
185
+ var dropdownOptions = _ref7.dropdownOptions,
186
+ actionNameOptions = _ref7.actionNameOptions,
187
+ variables = _ref7.variables;
188
+ var actionDropdown = getActionDropdown(dropdownOptions);
189
+ var options = actionNameOptions.map(function (option) {
190
+ var dropdownOptions = actionDropdown[option.value];
191
+ return dropdownOptions ? _objectSpread$1(_objectSpread$1({}, option), {}, {
192
+ dropdownOptions: dropdownOptions
193
+ }) : option;
194
+ });
195
+ var fields = (dropdownOptions.fields || []).filter(function (field) {
196
+ return !field.kind.startsWith("system_");
197
+ }) || [];
198
+ var fieldOptions = fields.map(function (_ref8) {
199
+ var id = _ref8.id,
200
+ name = _ref8.name,
201
+ kind = _ref8.kind,
202
+ attributeOptions = _ref8.data;
203
+ return {
204
+ label: t("neetoRules.common.assign", {
205
+ what: name
206
+ }),
207
+ value: "ticket_field_".concat(id),
208
+ type: getActionType(kind),
209
+ variables: variables,
210
+ defaultData: {
211
+ actionable_id: id,
212
+ actionable_type: "Field"
213
+ },
214
+ dropdownOptions: getDropdownOptions(kind, attributeOptions)
215
+ };
216
+ });
217
+ return [].concat(_toConsumableArray(options), _toConsumableArray(fieldOptions));
218
+ };
219
+
220
+ 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; }
221
+ 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; }
222
+ var Body = function Body(_ref) {
223
+ var actionNameOptions = _ref.actionNameOptions,
224
+ cannedResponse = _ref.cannedResponse,
225
+ dropdownList = _ref.dropdownList,
226
+ isLoading = _ref.isLoading,
227
+ setFieldValue = _ref.setFieldValue,
228
+ variables = _ref.variables;
229
+ var _useTranslation = useTranslation(),
230
+ t = _useTranslation.t;
231
+ var actionOptions = buildActionOptions({
232
+ dropdownOptions: dropdownList,
233
+ actionNameOptions: actionNameOptions,
234
+ variables: variables
235
+ });
236
+ if (isLoading) {
237
+ return /*#__PURE__*/jsx("div", {
238
+ className: "flex h-full w-full items-center justify-center",
239
+ children: /*#__PURE__*/jsx(Spinner, {})
240
+ });
241
+ }
242
+ var sortedActions = cannedResponse.actions.sort(function (a, b) {
243
+ if (CANNED_RESPONSE_RICH_TEXT_ACTION_NAME.includes(a.name)) {
244
+ return 1;
245
+ } else if (CANNED_RESPONSE_RICH_TEXT_ACTION_NAME.includes(b.name)) {
246
+ return -1;
247
+ }
248
+ return 0;
249
+ });
250
+ return /*#__PURE__*/jsx("div", {
251
+ className: "overflow-y-auto",
252
+ children: not(cannedResponse) ? t("neetoRules.common.preview") : sortedActions === null || sortedActions === void 0 ? void 0 : sortedActions.map(function (action) {
253
+ return renderAction(_objectSpread(_objectSpread({}, action), {}, {
254
+ actionOptions: actionOptions,
255
+ setFieldValue: setFieldValue
256
+ }));
257
+ })
258
+ });
259
+ };
260
+
261
+ var CannedResponsesPane = function CannedResponsesPane(_ref) {
262
+ var actionNameOptions = _ref.actionNameOptions,
263
+ areDropdownListsLoading = _ref.areDropdownListsLoading,
264
+ dropdownList = _ref.dropdownList,
265
+ isCannedResponsePaneOpen = _ref.isCannedResponsePaneOpen,
266
+ isLoadingPreview = _ref.isLoadingPreview,
267
+ macros = _ref.macros,
268
+ onApply = _ref.onApply,
269
+ onCancel = _ref.onCancel,
270
+ previewCannedResponses = _ref.previewCannedResponses,
271
+ previewParams = _ref.previewParams,
272
+ _ref$variables = _ref.variables,
273
+ variables = _ref$variables === void 0 ? [] : _ref$variables;
274
+ var _useState = useState(null),
275
+ _useState2 = _slicedToArray(_useState, 2),
276
+ cannedResponse = _useState2[0],
277
+ setCannedResponse = _useState2[1];
278
+ var initialFocusRef = useRef();
279
+ var _useTranslation = useTranslation(),
280
+ t = _useTranslation.t;
281
+ var options = macros === null || macros === void 0 ? void 0 : macros.map(function (_ref2) {
282
+ var name = _ref2.name,
283
+ id = _ref2.id;
284
+ return {
285
+ label: name,
286
+ value: id
287
+ };
288
+ });
289
+ var handleSelect = /*#__PURE__*/function () {
290
+ var _ref4 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref3) {
291
+ var value;
292
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
293
+ while (1) switch (_context.prev = _context.next) {
294
+ case 0:
295
+ value = _ref3.value;
296
+ _context.next = 3;
297
+ return previewCannedResponses({
298
+ id: value,
299
+ payload: previewParams
300
+ }, {
301
+ onSuccess: function onSuccess(response) {
302
+ return setCannedResponse(values(response || {})[0]);
303
+ }
304
+ });
305
+ case 3:
306
+ case "end":
307
+ return _context.stop();
308
+ }
309
+ }, _callee);
310
+ }));
311
+ return function handleSelect(_x) {
312
+ return _ref4.apply(this, arguments);
313
+ };
314
+ }();
315
+ var handleSubmit = function handleSubmit(values) {
316
+ onApply({
317
+ cannedResponse: cannedResponse,
318
+ setCannedResponse: setCannedResponse,
319
+ onSettled: onCancel,
320
+ updatedValues: omit(["cannedResponse"], values)
321
+ });
322
+ };
323
+ var handleCancel = function handleCancel() {
324
+ onCancel();
325
+ setCannedResponse(null);
326
+ };
327
+ return /*#__PURE__*/jsxs(Sheet, {
328
+ initialFocusRef: initialFocusRef,
329
+ isOpen: isCannedResponsePaneOpen,
330
+ onClose: handleCancel,
331
+ children: [/*#__PURE__*/jsx(Sheet.Header, {
332
+ children: /*#__PURE__*/jsx(Sheet.Title, {
333
+ children: t("neetoRules.cannedResponses.title", PLURAL)
334
+ })
335
+ }), /*#__PURE__*/jsx(Formik, {
336
+ initialValues: {
337
+ cannedResponse: toLabelAndValue(null)
338
+ },
339
+ onSubmit: handleSubmit,
340
+ children: function children(_ref5) {
341
+ var setFieldValue = _ref5.setFieldValue,
342
+ isSubmitting = _ref5.isSubmitting;
343
+ return /*#__PURE__*/jsxs(Form, {
344
+ className: "flex flex-1 flex-col",
345
+ children: [/*#__PURE__*/jsx(Sheet.Body, {
346
+ children: /*#__PURE__*/jsx("div", {
347
+ className: "flex w-full grow flex-col space-y-4",
348
+ children: areDropdownListsLoading ? /*#__PURE__*/jsx("div", {
349
+ className: "flex h-full w-full items-center justify-center",
350
+ children: /*#__PURE__*/jsx(Spinner, {})
351
+ }) : /*#__PURE__*/jsxs("div", {
352
+ className: "flex flex-col gap-y-4",
353
+ children: [/*#__PURE__*/jsx(Select, {
354
+ options: options,
355
+ isSearchable: true,
356
+ label: t("neetoRules.labels.selectCannedResponse"),
357
+ name: "cannedResponse",
358
+ ref: initialFocusRef,
359
+ onChange: function onChange(value) {
360
+ setFieldValue("cannedResponse", value);
361
+ handleSelect(value);
362
+ }
363
+ }), isPresent(cannedResponse) && /*#__PURE__*/jsx("div", {
364
+ className: "flex flex-col",
365
+ children: /*#__PURE__*/jsx(Body, {
366
+ actionNameOptions: actionNameOptions,
367
+ cannedResponse: cannedResponse,
368
+ dropdownList: dropdownList,
369
+ setFieldValue: setFieldValue,
370
+ variables: variables,
371
+ isLoading: isLoadingPreview
372
+ })
373
+ })]
374
+ })
375
+ })
376
+ }), /*#__PURE__*/jsx(Sheet.Footer, {
377
+ children: /*#__PURE__*/jsx(ActionBlock, {
378
+ cancelButtonProps: {
379
+ onClick: handleCancel
380
+ },
381
+ isSubmitting: isSubmitting || isLoadingPreview,
382
+ submitButtonProps: {
383
+ label: t("neetoRules.common.apply")
384
+ }
385
+ })
386
+ })]
387
+ });
388
+ }
389
+ })]
390
+ });
391
+ };
392
+
393
+ export { CannedResponsesPane as default };
394
+ //# sourceMappingURL=CannedResponsesPane.js.map