@bigbinary/neeto-rules-frontend 2.5.55 → 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.
- package/dist/.ready +1 -1
- package/dist/NeetoRulesForm.js +91 -172
- package/dist/NeetoRulesForm.js.map +1 -1
- package/dist/cjs/NeetoRulesForm.js +34 -115
- package/dist/cjs/NeetoRulesForm.js.map +1 -1
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/v2/CannedResponsesPane.js +396 -0
- package/dist/cjs/v2/CannedResponsesPane.js.map +1 -0
- package/dist/cjs/v2/NeetoRules.js +486 -0
- package/dist/cjs/v2/NeetoRules.js.map +1 -0
- package/dist/cjs/v2/NeetoRulesForm.js +6818 -0
- package/dist/cjs/v2/NeetoRulesForm.js.map +1 -0
- package/dist/cjs/v2/RulePreview.js +513 -0
- package/dist/cjs/v2/RulePreview.js.map +1 -0
- package/dist/cjs/v2/RulesReorder.js +24 -0
- package/dist/cjs/v2/RulesReorder.js.map +1 -0
- package/dist/cjs/v2/constants.js +8 -0
- package/dist/cjs/v2/constants.js.map +1 -0
- package/dist/cjs/v2/hooks.js +15 -0
- package/dist/cjs/v2/hooks.js.map +1 -0
- package/dist/cjs/v2/index.js +86 -0
- package/dist/cjs/v2/index.js.map +1 -0
- package/dist/constants-CYdcft3h.js +53 -0
- package/dist/constants-CYdcft3h.js.map +1 -0
- package/dist/constants-dLBadaIU.js +60 -0
- package/dist/constants-dLBadaIU.js.map +1 -0
- package/dist/index-BBcadHIi.js +208 -0
- package/dist/index-BBcadHIi.js.map +1 -0
- package/dist/index-CSnQp41c.js +211 -0
- package/dist/index-CSnQp41c.js.map +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/useCustomDataStore-D7hl6nev.js +74 -0
- package/dist/useCustomDataStore-D7hl6nev.js.map +1 -0
- package/dist/useCustomDataStore-DipT25Pg.js +77 -0
- package/dist/useCustomDataStore-DipT25Pg.js.map +1 -0
- package/dist/useDebouncedUpdate-6Ibug5MF.js +108 -0
- package/dist/useDebouncedUpdate-6Ibug5MF.js.map +1 -0
- package/dist/useDebouncedUpdate-BcPAGgg7.js +103 -0
- package/dist/useDebouncedUpdate-BcPAGgg7.js.map +1 -0
- package/dist/useUtilityStore-BBb39TOj.js +53 -0
- package/dist/useUtilityStore-BBb39TOj.js.map +1 -0
- package/dist/useUtilityStore-DkxAexDw.js +55 -0
- package/dist/useUtilityStore-DkxAexDw.js.map +1 -0
- package/dist/v2/CannedResponsesPane.js +394 -0
- package/dist/v2/CannedResponsesPane.js.map +1 -0
- package/dist/v2/NeetoRules.js +484 -0
- package/dist/v2/NeetoRules.js.map +1 -0
- package/dist/v2/NeetoRulesForm.js +6797 -0
- package/dist/v2/NeetoRulesForm.js.map +1 -0
- package/dist/v2/RulePreview.js +511 -0
- package/dist/v2/RulePreview.js.map +1 -0
- package/dist/v2/RulesReorder.js +18 -0
- package/dist/v2/RulesReorder.js.map +1 -0
- package/dist/v2/constants.js +2 -0
- package/dist/v2/constants.js.map +1 -0
- package/dist/v2/hooks.js +8 -0
- package/dist/v2/hooks.js.map +1 -0
- package/dist/v2/index.js +74 -0
- package/dist/v2/index.js.map +1 -0
- package/package.json +30 -18
- package/types.d.ts +1 -0
package/dist/cjs/index.js
CHANGED
|
@@ -54,6 +54,7 @@ require('@hello-pangea/dnd');
|
|
|
54
54
|
require('@bigbinary/neeto-icons/Drag');
|
|
55
55
|
require('react-router-dom');
|
|
56
56
|
require('@babel/runtime/helpers/objectDestructuringEmpty');
|
|
57
|
+
require('../useDebouncedUpdate-6Ibug5MF.js');
|
|
57
58
|
require('@bigbinary/neeto-icons/Plus');
|
|
58
59
|
require('@bigbinary/neeto-icons/Delete');
|
|
59
60
|
require('classnames');
|
package/dist/cjs/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,396 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _asyncToGenerator = require('@babel/runtime/helpers/asyncToGenerator');
|
|
4
|
+
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
5
|
+
var _regeneratorRuntime = require('@babel/runtime/regenerator');
|
|
6
|
+
var react = require('react');
|
|
7
|
+
var neetoAtoms = require('@bigbinary/neeto-atoms');
|
|
8
|
+
var formik$1 = require('@bigbinary/neeto-atoms/formik');
|
|
9
|
+
var formik = require('formik');
|
|
10
|
+
var neetoCist = require('@bigbinary/neeto-cist');
|
|
11
|
+
var constants = require('@bigbinary/neeto-commons-frontend/v2/constants');
|
|
12
|
+
var ramda = require('ramda');
|
|
13
|
+
var reactI18next = require('react-i18next');
|
|
14
|
+
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
15
|
+
var i18next = require('i18next');
|
|
16
|
+
var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
|
17
|
+
var Editor = require('@bigbinary/neeto-editor/Editor');
|
|
18
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
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 CANNED_RESPONSE_INPUT_ACTION_NAMES = ["assign_agent", "assign_group", "remove_tags", "add_tags", "change_priority", "change_status"];
|
|
23
|
+
var CANNED_RESPONSE_RICH_TEXT_ACTION_NAME = ["add_note", "add_reply"];
|
|
24
|
+
var CANNED_RESPONSE_ACTION_LABELS = [].concat(CANNED_RESPONSE_INPUT_ACTION_NAMES, CANNED_RESPONSE_RICH_TEXT_ACTION_NAME).reduce(function (labelObject, actionName) {
|
|
25
|
+
return _objectSpread$2(_objectSpread$2({}, labelObject), {}, _defineProperty({}, actionName, "neetoRules.labels.".concat(actionName)));
|
|
26
|
+
}, {});
|
|
27
|
+
var ACTION_OPTIONS = {
|
|
28
|
+
assignTicketFieldValue: "assign_field_value"
|
|
29
|
+
};
|
|
30
|
+
var ACTION_TYPES_MAP = {
|
|
31
|
+
single_option: "dropdown",
|
|
32
|
+
multi_option: "multiSelect",
|
|
33
|
+
checkbox: "dropdown",
|
|
34
|
+
integer: "number"
|
|
35
|
+
};
|
|
36
|
+
var DEFAULT_CHECKBOX_OPTIONS = [{
|
|
37
|
+
label: i18next.t("neetoRules.labels.checked"),
|
|
38
|
+
value: true
|
|
39
|
+
}, {
|
|
40
|
+
label: i18next.t("neetoRules.labels.unchecked"),
|
|
41
|
+
value: false
|
|
42
|
+
}];
|
|
43
|
+
|
|
44
|
+
var Action = function Action(_ref) {
|
|
45
|
+
var id = _ref.id,
|
|
46
|
+
label = _ref.label,
|
|
47
|
+
setFieldValue = _ref.setFieldValue,
|
|
48
|
+
value = _ref.value,
|
|
49
|
+
_ref$richText = _ref.richText,
|
|
50
|
+
richText = _ref$richText === void 0 ? false : _ref$richText;
|
|
51
|
+
if (richText) {
|
|
52
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
53
|
+
className: "mb-4 space-y-2",
|
|
54
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Label, {
|
|
55
|
+
children: label
|
|
56
|
+
}), /*#__PURE__*/jsxRuntime.jsx(Editor, {
|
|
57
|
+
initialValue: value,
|
|
58
|
+
onChange: function onChange(newValue) {
|
|
59
|
+
return setFieldValue(id, newValue);
|
|
60
|
+
}
|
|
61
|
+
})]
|
|
62
|
+
}, id);
|
|
63
|
+
}
|
|
64
|
+
return /*#__PURE__*/react.createElement(neetoAtoms.Input, {
|
|
65
|
+
label: label,
|
|
66
|
+
disabled: true,
|
|
67
|
+
className: "mb-4",
|
|
68
|
+
key: id,
|
|
69
|
+
value: value.replace(/_/g, " ")
|
|
70
|
+
});
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
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; }
|
|
74
|
+
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; }
|
|
75
|
+
var renderActionValue = function renderActionValue(_ref) {
|
|
76
|
+
var actionType = _ref.actionType,
|
|
77
|
+
displayValue = _ref.displayValue;
|
|
78
|
+
if (actionType === "multiSelect") {
|
|
79
|
+
return ramda.join(", ", displayValue);
|
|
80
|
+
}
|
|
81
|
+
return displayValue;
|
|
82
|
+
};
|
|
83
|
+
var renderDefaultAction = function renderDefaultAction(_ref2) {
|
|
84
|
+
var id = _ref2.id,
|
|
85
|
+
name = _ref2.name,
|
|
86
|
+
displayValue = _ref2.displayValue,
|
|
87
|
+
setFieldValue = _ref2.setFieldValue,
|
|
88
|
+
trixBody = _ref2.trixBody;
|
|
89
|
+
var label = i18next.t(CANNED_RESPONSE_ACTION_LABELS[name]);
|
|
90
|
+
if (CANNED_RESPONSE_RICH_TEXT_ACTION_NAME.includes(name)) {
|
|
91
|
+
return /*#__PURE__*/jsxRuntime.jsx(Action, {
|
|
92
|
+
id: id,
|
|
93
|
+
label: label,
|
|
94
|
+
setFieldValue: setFieldValue,
|
|
95
|
+
richText: true,
|
|
96
|
+
value: trixBody
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
return /*#__PURE__*/jsxRuntime.jsx(Action, {
|
|
100
|
+
id: id,
|
|
101
|
+
label: label,
|
|
102
|
+
value: displayValue
|
|
103
|
+
});
|
|
104
|
+
};
|
|
105
|
+
var renderCustomAction = function renderCustomAction(_ref3) {
|
|
106
|
+
var id = _ref3.id,
|
|
107
|
+
actionableId = _ref3.actionableId,
|
|
108
|
+
displayValue = _ref3.displayValue,
|
|
109
|
+
actionOptions = _ref3.actionOptions,
|
|
110
|
+
setFieldValue = _ref3.setFieldValue;
|
|
111
|
+
var actionName = "ticket_field_".concat(actionableId);
|
|
112
|
+
var actionOption = neetoCist.findBy({
|
|
113
|
+
value: actionName
|
|
114
|
+
}, actionOptions);
|
|
115
|
+
var label = actionOption === null || actionOption === void 0 ? void 0 : actionOption.label;
|
|
116
|
+
var actionType = actionOption === null || actionOption === void 0 ? void 0 : actionOption.type;
|
|
117
|
+
var actionValue = renderActionValue({
|
|
118
|
+
actionType: actionType,
|
|
119
|
+
displayValue: displayValue
|
|
120
|
+
});
|
|
121
|
+
var isRichText = actionType === "rich-text";
|
|
122
|
+
return /*#__PURE__*/jsxRuntime.jsx(Action, {
|
|
123
|
+
id: id,
|
|
124
|
+
label: label,
|
|
125
|
+
setFieldValue: setFieldValue,
|
|
126
|
+
richText: isRichText,
|
|
127
|
+
value: actionValue
|
|
128
|
+
});
|
|
129
|
+
};
|
|
130
|
+
var getActionDropdown = function getActionDropdown(_ref4) {
|
|
131
|
+
var status = _ref4.status,
|
|
132
|
+
teams = _ref4.teams,
|
|
133
|
+
members = _ref4.members,
|
|
134
|
+
tags = _ref4.tags;
|
|
135
|
+
return {
|
|
136
|
+
change_status: status || [],
|
|
137
|
+
assign_group: teams || [],
|
|
138
|
+
assign_agent: members || [],
|
|
139
|
+
add_tags: tags || [],
|
|
140
|
+
remove_tags: tags || []
|
|
141
|
+
};
|
|
142
|
+
};
|
|
143
|
+
var getActionType = function getActionType(kind) {
|
|
144
|
+
return ACTION_TYPES_MAP[kind] || kind;
|
|
145
|
+
};
|
|
146
|
+
var getDropdownOptions = function getDropdownOptions(kind, optionsAttribute) {
|
|
147
|
+
if (["single_option", "multi_option"].includes(kind)) {
|
|
148
|
+
return optionsAttribute.map(function (_ref5) {
|
|
149
|
+
var id = _ref5.id,
|
|
150
|
+
label = _ref5.label;
|
|
151
|
+
return {
|
|
152
|
+
label: label,
|
|
153
|
+
value: id
|
|
154
|
+
};
|
|
155
|
+
});
|
|
156
|
+
} else if (kind === "checkbox") {
|
|
157
|
+
return _toConsumableArray(DEFAULT_CHECKBOX_OPTIONS);
|
|
158
|
+
}
|
|
159
|
+
return [];
|
|
160
|
+
};
|
|
161
|
+
var renderAction = function renderAction(_ref6) {
|
|
162
|
+
var name = _ref6.name,
|
|
163
|
+
id = _ref6.id,
|
|
164
|
+
actionableId = _ref6.actionableId,
|
|
165
|
+
displayValue = _ref6.displayValue,
|
|
166
|
+
_ref6$actionOptions = _ref6.actionOptions,
|
|
167
|
+
actionOptions = _ref6$actionOptions === void 0 ? [] : _ref6$actionOptions,
|
|
168
|
+
setFieldValue = _ref6.setFieldValue,
|
|
169
|
+
_ref6$trixBody = _ref6.trixBody,
|
|
170
|
+
trixBody = _ref6$trixBody === void 0 ? "" : _ref6$trixBody;
|
|
171
|
+
var isCustomAction = name === ACTION_OPTIONS.assignTicketFieldValue;
|
|
172
|
+
return isCustomAction ? renderCustomAction({
|
|
173
|
+
id: id,
|
|
174
|
+
actionableId: actionableId,
|
|
175
|
+
displayValue: displayValue,
|
|
176
|
+
actionOptions: actionOptions,
|
|
177
|
+
setFieldValue: setFieldValue
|
|
178
|
+
}) : renderDefaultAction({
|
|
179
|
+
id: id,
|
|
180
|
+
name: name,
|
|
181
|
+
displayValue: displayValue,
|
|
182
|
+
setFieldValue: setFieldValue,
|
|
183
|
+
trixBody: trixBody
|
|
184
|
+
});
|
|
185
|
+
};
|
|
186
|
+
var buildActionOptions = function buildActionOptions(_ref7) {
|
|
187
|
+
var dropdownOptions = _ref7.dropdownOptions,
|
|
188
|
+
actionNameOptions = _ref7.actionNameOptions,
|
|
189
|
+
variables = _ref7.variables;
|
|
190
|
+
var actionDropdown = getActionDropdown(dropdownOptions);
|
|
191
|
+
var options = actionNameOptions.map(function (option) {
|
|
192
|
+
var dropdownOptions = actionDropdown[option.value];
|
|
193
|
+
return dropdownOptions ? _objectSpread$1(_objectSpread$1({}, option), {}, {
|
|
194
|
+
dropdownOptions: dropdownOptions
|
|
195
|
+
}) : option;
|
|
196
|
+
});
|
|
197
|
+
var fields = (dropdownOptions.fields || []).filter(function (field) {
|
|
198
|
+
return !field.kind.startsWith("system_");
|
|
199
|
+
}) || [];
|
|
200
|
+
var fieldOptions = fields.map(function (_ref8) {
|
|
201
|
+
var id = _ref8.id,
|
|
202
|
+
name = _ref8.name,
|
|
203
|
+
kind = _ref8.kind,
|
|
204
|
+
attributeOptions = _ref8.data;
|
|
205
|
+
return {
|
|
206
|
+
label: i18next.t("neetoRules.common.assign", {
|
|
207
|
+
what: name
|
|
208
|
+
}),
|
|
209
|
+
value: "ticket_field_".concat(id),
|
|
210
|
+
type: getActionType(kind),
|
|
211
|
+
variables: variables,
|
|
212
|
+
defaultData: {
|
|
213
|
+
actionable_id: id,
|
|
214
|
+
actionable_type: "Field"
|
|
215
|
+
},
|
|
216
|
+
dropdownOptions: getDropdownOptions(kind, attributeOptions)
|
|
217
|
+
};
|
|
218
|
+
});
|
|
219
|
+
return [].concat(_toConsumableArray(options), _toConsumableArray(fieldOptions));
|
|
220
|
+
};
|
|
221
|
+
|
|
222
|
+
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; }
|
|
223
|
+
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; }
|
|
224
|
+
var Body = function Body(_ref) {
|
|
225
|
+
var actionNameOptions = _ref.actionNameOptions,
|
|
226
|
+
cannedResponse = _ref.cannedResponse,
|
|
227
|
+
dropdownList = _ref.dropdownList,
|
|
228
|
+
isLoading = _ref.isLoading,
|
|
229
|
+
setFieldValue = _ref.setFieldValue,
|
|
230
|
+
variables = _ref.variables;
|
|
231
|
+
var _useTranslation = reactI18next.useTranslation(),
|
|
232
|
+
t = _useTranslation.t;
|
|
233
|
+
var actionOptions = buildActionOptions({
|
|
234
|
+
dropdownOptions: dropdownList,
|
|
235
|
+
actionNameOptions: actionNameOptions,
|
|
236
|
+
variables: variables
|
|
237
|
+
});
|
|
238
|
+
if (isLoading) {
|
|
239
|
+
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
240
|
+
className: "flex h-full w-full items-center justify-center",
|
|
241
|
+
children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Spinner, {})
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
var sortedActions = cannedResponse.actions.sort(function (a, b) {
|
|
245
|
+
if (CANNED_RESPONSE_RICH_TEXT_ACTION_NAME.includes(a.name)) {
|
|
246
|
+
return 1;
|
|
247
|
+
} else if (CANNED_RESPONSE_RICH_TEXT_ACTION_NAME.includes(b.name)) {
|
|
248
|
+
return -1;
|
|
249
|
+
}
|
|
250
|
+
return 0;
|
|
251
|
+
});
|
|
252
|
+
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
253
|
+
className: "overflow-y-auto",
|
|
254
|
+
children: ramda.not(cannedResponse) ? t("neetoRules.common.preview") : sortedActions === null || sortedActions === void 0 ? void 0 : sortedActions.map(function (action) {
|
|
255
|
+
return renderAction(_objectSpread(_objectSpread({}, action), {}, {
|
|
256
|
+
actionOptions: actionOptions,
|
|
257
|
+
setFieldValue: setFieldValue
|
|
258
|
+
}));
|
|
259
|
+
})
|
|
260
|
+
});
|
|
261
|
+
};
|
|
262
|
+
|
|
263
|
+
var CannedResponsesPane = function CannedResponsesPane(_ref) {
|
|
264
|
+
var actionNameOptions = _ref.actionNameOptions,
|
|
265
|
+
areDropdownListsLoading = _ref.areDropdownListsLoading,
|
|
266
|
+
dropdownList = _ref.dropdownList,
|
|
267
|
+
isCannedResponsePaneOpen = _ref.isCannedResponsePaneOpen,
|
|
268
|
+
isLoadingPreview = _ref.isLoadingPreview,
|
|
269
|
+
macros = _ref.macros,
|
|
270
|
+
onApply = _ref.onApply,
|
|
271
|
+
onCancel = _ref.onCancel,
|
|
272
|
+
previewCannedResponses = _ref.previewCannedResponses,
|
|
273
|
+
previewParams = _ref.previewParams,
|
|
274
|
+
_ref$variables = _ref.variables,
|
|
275
|
+
variables = _ref$variables === void 0 ? [] : _ref$variables;
|
|
276
|
+
var _useState = react.useState(null),
|
|
277
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
278
|
+
cannedResponse = _useState2[0],
|
|
279
|
+
setCannedResponse = _useState2[1];
|
|
280
|
+
var initialFocusRef = react.useRef();
|
|
281
|
+
var _useTranslation = reactI18next.useTranslation(),
|
|
282
|
+
t = _useTranslation.t;
|
|
283
|
+
var options = macros === null || macros === void 0 ? void 0 : macros.map(function (_ref2) {
|
|
284
|
+
var name = _ref2.name,
|
|
285
|
+
id = _ref2.id;
|
|
286
|
+
return {
|
|
287
|
+
label: name,
|
|
288
|
+
value: id
|
|
289
|
+
};
|
|
290
|
+
});
|
|
291
|
+
var handleSelect = /*#__PURE__*/function () {
|
|
292
|
+
var _ref4 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref3) {
|
|
293
|
+
var value;
|
|
294
|
+
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
295
|
+
while (1) switch (_context.prev = _context.next) {
|
|
296
|
+
case 0:
|
|
297
|
+
value = _ref3.value;
|
|
298
|
+
_context.next = 3;
|
|
299
|
+
return previewCannedResponses({
|
|
300
|
+
id: value,
|
|
301
|
+
payload: previewParams
|
|
302
|
+
}, {
|
|
303
|
+
onSuccess: function onSuccess(response) {
|
|
304
|
+
return setCannedResponse(ramda.values(response || {})[0]);
|
|
305
|
+
}
|
|
306
|
+
});
|
|
307
|
+
case 3:
|
|
308
|
+
case "end":
|
|
309
|
+
return _context.stop();
|
|
310
|
+
}
|
|
311
|
+
}, _callee);
|
|
312
|
+
}));
|
|
313
|
+
return function handleSelect(_x) {
|
|
314
|
+
return _ref4.apply(this, arguments);
|
|
315
|
+
};
|
|
316
|
+
}();
|
|
317
|
+
var handleSubmit = function handleSubmit(values) {
|
|
318
|
+
onApply({
|
|
319
|
+
cannedResponse: cannedResponse,
|
|
320
|
+
setCannedResponse: setCannedResponse,
|
|
321
|
+
onSettled: onCancel,
|
|
322
|
+
updatedValues: ramda.omit(["cannedResponse"], values)
|
|
323
|
+
});
|
|
324
|
+
};
|
|
325
|
+
var handleCancel = function handleCancel() {
|
|
326
|
+
onCancel();
|
|
327
|
+
setCannedResponse(null);
|
|
328
|
+
};
|
|
329
|
+
return /*#__PURE__*/jsxRuntime.jsxs(neetoAtoms.Sheet, {
|
|
330
|
+
initialFocusRef: initialFocusRef,
|
|
331
|
+
isOpen: isCannedResponsePaneOpen,
|
|
332
|
+
onClose: handleCancel,
|
|
333
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Sheet.Header, {
|
|
334
|
+
children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Sheet.Title, {
|
|
335
|
+
children: t("neetoRules.cannedResponses.title", constants.PLURAL)
|
|
336
|
+
})
|
|
337
|
+
}), /*#__PURE__*/jsxRuntime.jsx(formik.Formik, {
|
|
338
|
+
initialValues: {
|
|
339
|
+
cannedResponse: neetoCist.toLabelAndValue(null)
|
|
340
|
+
},
|
|
341
|
+
onSubmit: handleSubmit,
|
|
342
|
+
children: function children(_ref5) {
|
|
343
|
+
var setFieldValue = _ref5.setFieldValue,
|
|
344
|
+
isSubmitting = _ref5.isSubmitting;
|
|
345
|
+
return /*#__PURE__*/jsxRuntime.jsxs(formik.Form, {
|
|
346
|
+
className: "flex flex-1 flex-col",
|
|
347
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Sheet.Body, {
|
|
348
|
+
children: /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
349
|
+
className: "flex w-full grow flex-col space-y-4",
|
|
350
|
+
children: areDropdownListsLoading ? /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
351
|
+
className: "flex h-full w-full items-center justify-center",
|
|
352
|
+
children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Spinner, {})
|
|
353
|
+
}) : /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
354
|
+
className: "flex flex-col gap-y-4",
|
|
355
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(formik$1.Select, {
|
|
356
|
+
options: options,
|
|
357
|
+
isSearchable: true,
|
|
358
|
+
label: t("neetoRules.labels.selectCannedResponse"),
|
|
359
|
+
name: "cannedResponse",
|
|
360
|
+
ref: initialFocusRef,
|
|
361
|
+
onChange: function onChange(value) {
|
|
362
|
+
setFieldValue("cannedResponse", value);
|
|
363
|
+
handleSelect(value);
|
|
364
|
+
}
|
|
365
|
+
}), neetoCist.isPresent(cannedResponse) && /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
366
|
+
className: "flex flex-col",
|
|
367
|
+
children: /*#__PURE__*/jsxRuntime.jsx(Body, {
|
|
368
|
+
actionNameOptions: actionNameOptions,
|
|
369
|
+
cannedResponse: cannedResponse,
|
|
370
|
+
dropdownList: dropdownList,
|
|
371
|
+
setFieldValue: setFieldValue,
|
|
372
|
+
variables: variables,
|
|
373
|
+
isLoading: isLoadingPreview
|
|
374
|
+
})
|
|
375
|
+
})]
|
|
376
|
+
})
|
|
377
|
+
})
|
|
378
|
+
}), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Sheet.Footer, {
|
|
379
|
+
children: /*#__PURE__*/jsxRuntime.jsx(formik$1.ActionBlock, {
|
|
380
|
+
cancelButtonProps: {
|
|
381
|
+
onClick: handleCancel
|
|
382
|
+
},
|
|
383
|
+
isSubmitting: isSubmitting || isLoadingPreview,
|
|
384
|
+
submitButtonProps: {
|
|
385
|
+
label: t("neetoRules.common.apply")
|
|
386
|
+
}
|
|
387
|
+
})
|
|
388
|
+
})]
|
|
389
|
+
});
|
|
390
|
+
}
|
|
391
|
+
})]
|
|
392
|
+
});
|
|
393
|
+
};
|
|
394
|
+
|
|
395
|
+
module.exports = CannedResponsesPane;
|
|
396
|
+
//# sourceMappingURL=CannedResponsesPane.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CannedResponsesPane.js","sources":["../../../app/javascript/src/v2/components/CannedResponsesPane/constants.js","../../../app/javascript/src/v2/components/CannedResponsesPane/Action.jsx","../../../app/javascript/src/v2/components/CannedResponsesPane/utils.jsx","../../../app/javascript/src/v2/components/CannedResponsesPane/Body.jsx","../../../app/javascript/src/v2/components/CannedResponsesPane/index.jsx"],"sourcesContent":["import { t } from \"i18next\";\n\nconst CANNED_RESPONSE_INPUT_ACTION_NAMES = [\n \"assign_agent\",\n \"assign_group\",\n \"remove_tags\",\n \"add_tags\",\n \"change_priority\",\n \"change_status\",\n];\n\nexport const CANNED_RESPONSE_RICH_TEXT_ACTION_NAME = [\"add_note\", \"add_reply\"];\n\nexport const CANNED_RESPONSE_ACTION_LABELS = [\n ...CANNED_RESPONSE_INPUT_ACTION_NAMES,\n ...CANNED_RESPONSE_RICH_TEXT_ACTION_NAME,\n].reduce(\n (labelObject, actionName) => ({\n ...labelObject,\n [actionName]: `neetoRules.labels.${actionName}`,\n }),\n {}\n);\n\nexport const ACTION_OPTIONS = {\n addNote: \"add_note\",\n addCommentOrReply: \"add_reply\",\n addTags: \"add_tags\",\n removeTags: \"remove_tags\",\n changePriority: \"change_priority\",\n changeStatus: \"change_status\",\n assignAgent: \"assign_agent\",\n assignGroup: \"assign_group\",\n assignTicketFieldValue: \"assign_field_value\",\n};\n\nexport const ACTION_TYPES_MAP = {\n single_option: \"dropdown\",\n multi_option: \"multiSelect\",\n checkbox: \"dropdown\",\n integer: \"number\",\n};\n\nexport const DEFAULT_CHECKBOX_OPTIONS = [\n { label: t(\"neetoRules.labels.checked\"), value: true },\n { label: t(\"neetoRules.labels.unchecked\"), value: false },\n];\n","import { Input, Label } from \"@bigbinary/neeto-atoms\";\nimport { Editor } from \"neetoeditor\";\n\nconst Action = ({ id, label, setFieldValue, value, richText = false }) => {\n if (richText) {\n return (\n <div className=\"mb-4 space-y-2\" key={id}>\n <Label>{label}</Label>\n <Editor\n initialValue={value}\n onChange={newValue => setFieldValue(id, newValue)}\n />\n </div>\n );\n }\n\n return (\n <Input\n {...{ label }}\n disabled\n className=\"mb-4\"\n key={id}\n value={value.replace(/_/g, \" \")}\n />\n );\n};\n\nexport default Action;\n","import { t } from \"i18next\";\nimport { findBy } from \"neetocist\";\nimport { join } from \"ramda\";\n\nimport Action from \"./Action\";\nimport {\n ACTION_OPTIONS,\n ACTION_TYPES_MAP,\n CANNED_RESPONSE_ACTION_LABELS,\n CANNED_RESPONSE_RICH_TEXT_ACTION_NAME,\n DEFAULT_CHECKBOX_OPTIONS,\n} from \"./constants\";\n\nconst renderActionValue = ({ actionType, displayValue }) => {\n if (actionType === \"multiSelect\") {\n return join(\", \", displayValue);\n }\n\n return displayValue;\n};\n\nconst renderDefaultAction = ({\n id,\n name,\n displayValue,\n setFieldValue,\n trixBody,\n}) => {\n const label = t(CANNED_RESPONSE_ACTION_LABELS[name]);\n\n if (CANNED_RESPONSE_RICH_TEXT_ACTION_NAME.includes(name)) {\n return (\n <Action {...{ id, label, setFieldValue }} richText value={trixBody} />\n );\n }\n\n return <Action {...{ id, label }} value={displayValue} />;\n};\n\nconst renderCustomAction = ({\n id,\n actionableId,\n displayValue,\n actionOptions,\n setFieldValue,\n}) => {\n const actionName = `ticket_field_${actionableId}`;\n const actionOption = findBy({ value: actionName }, actionOptions);\n const label = actionOption?.label;\n const actionType = actionOption?.type;\n const actionValue = renderActionValue({ actionType, displayValue });\n const isRichText = actionType === \"rich-text\";\n\n return (\n <Action\n {...{ id, label, setFieldValue }}\n richText={isRichText}\n value={actionValue}\n />\n );\n};\n\nconst getActionDropdown = ({ status, teams, members, tags }) => ({\n change_status: status || [],\n assign_group: teams || [],\n assign_agent: members || [],\n add_tags: tags || [],\n remove_tags: tags || [],\n});\n\nconst getActionType = kind => ACTION_TYPES_MAP[kind] || kind;\n\nconst getDropdownOptions = (kind, optionsAttribute) => {\n if ([\"single_option\", \"multi_option\"].includes(kind)) {\n return optionsAttribute.map(({ id, label }) => ({\n label,\n value: id,\n }));\n } else if (kind === \"checkbox\") {\n return [...DEFAULT_CHECKBOX_OPTIONS];\n }\n\n return [];\n};\n\nexport const renderAction = ({\n name,\n id,\n actionableId,\n displayValue,\n actionOptions = [],\n setFieldValue,\n trixBody = \"\",\n}) => {\n const isCustomAction = name === ACTION_OPTIONS.assignTicketFieldValue;\n\n return isCustomAction\n ? renderCustomAction({\n id,\n actionableId,\n displayValue,\n actionOptions,\n setFieldValue,\n })\n : renderDefaultAction({ id, name, displayValue, setFieldValue, trixBody });\n};\n\nexport const buildActionOptions = ({\n dropdownOptions,\n actionNameOptions,\n variables,\n}) => {\n const actionDropdown = getActionDropdown(dropdownOptions);\n const options = actionNameOptions.map(option => {\n const dropdownOptions = actionDropdown[option.value];\n\n return dropdownOptions ? { ...option, dropdownOptions } : option;\n });\n\n const fields =\n (dropdownOptions.fields || []).filter(\n field => !field.kind.startsWith(\"system_\")\n ) || [];\n\n const fieldOptions = fields.map(\n ({ id, name, kind, data: attributeOptions }) => ({\n label: t(\"neetoRules.common.assign\", { what: name }),\n value: `ticket_field_${id}`,\n type: getActionType(kind),\n variables,\n defaultData: { actionable_id: id, actionable_type: \"Field\" },\n dropdownOptions: getDropdownOptions(kind, attributeOptions),\n })\n );\n\n return [...options, ...fieldOptions];\n};\n","import { Spinner } from \"@bigbinary/neeto-atoms\";\nimport { not } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { CANNED_RESPONSE_RICH_TEXT_ACTION_NAME } from \"./constants\";\nimport { buildActionOptions, renderAction } from \"./utils\";\n\nconst Body = ({\n actionNameOptions,\n cannedResponse,\n dropdownList,\n isLoading,\n setFieldValue,\n variables,\n}) => {\n const { t } = useTranslation();\n\n const actionOptions = buildActionOptions({\n dropdownOptions: dropdownList,\n actionNameOptions,\n variables,\n });\n\n if (isLoading) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n const sortedActions = cannedResponse.actions.sort((a, b) => {\n if (CANNED_RESPONSE_RICH_TEXT_ACTION_NAME.includes(a.name)) {\n return 1;\n } else if (CANNED_RESPONSE_RICH_TEXT_ACTION_NAME.includes(b.name)) {\n return -1;\n }\n\n return 0;\n });\n\n return (\n <div className=\"overflow-y-auto\">\n {not(cannedResponse)\n ? t(\"neetoRules.common.preview\")\n : sortedActions?.map(action =>\n renderAction({ ...action, actionOptions, setFieldValue })\n )}\n </div>\n );\n};\nexport default Body;\n","import { useRef, useState } from \"react\";\n\nimport { Sheet, Spinner } from \"@bigbinary/neeto-atoms\";\nimport { ActionBlock, Select } from \"@bigbinary/neeto-atoms/formik\";\nimport { Form, Formik } from \"formik\";\nimport { isPresent, toLabelAndValue } from \"neetocist\";\nimport { PLURAL } from \"neetocommons/v2/constants\";\nimport { omit, values } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Body from \"./Body\";\n\nconst CannedResponsesPane = ({\n actionNameOptions,\n areDropdownListsLoading,\n dropdownList,\n isCannedResponsePaneOpen,\n isLoadingPreview,\n macros,\n onApply,\n onCancel,\n previewCannedResponses,\n previewParams,\n variables = [],\n}) => {\n const [cannedResponse, setCannedResponse] = useState(null);\n\n const initialFocusRef = useRef();\n\n const { t } = useTranslation();\n\n const options = macros?.map(({ name, id }) => ({ label: name, value: id }));\n\n const handleSelect = async ({ value }) => {\n await previewCannedResponses(\n { id: value, payload: previewParams },\n { onSuccess: response => setCannedResponse(values(response || {})[0]) }\n );\n };\n\n const handleSubmit = values => {\n onApply({\n cannedResponse,\n setCannedResponse,\n onSettled: onCancel,\n updatedValues: omit([\"cannedResponse\"], values),\n });\n };\n\n const handleCancel = () => {\n onCancel();\n setCannedResponse(null);\n };\n\n return (\n <Sheet\n {...{ initialFocusRef }}\n isOpen={isCannedResponsePaneOpen}\n onClose={handleCancel}\n >\n <Sheet.Header>\n <Sheet.Title>\n {t(\"neetoRules.cannedResponses.title\", PLURAL)}\n </Sheet.Title>\n </Sheet.Header>\n <Formik\n initialValues={{ cannedResponse: toLabelAndValue(null) }}\n onSubmit={handleSubmit}\n >\n {({ setFieldValue, isSubmitting }) => (\n <Form className=\"flex flex-1 flex-col\">\n <Sheet.Body>\n <div className=\"flex w-full grow flex-col space-y-4\">\n {areDropdownListsLoading ? (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n ) : (\n <div className=\"flex flex-col gap-y-4\">\n <Select\n {...{ options }}\n isSearchable\n label={t(\"neetoRules.labels.selectCannedResponse\")}\n name=\"cannedResponse\"\n ref={initialFocusRef}\n onChange={value => {\n setFieldValue(\"cannedResponse\", value);\n handleSelect(value);\n }}\n />\n {isPresent(cannedResponse) && (\n <div className=\"flex flex-col\">\n <Body\n {...{\n actionNameOptions,\n cannedResponse,\n dropdownList,\n setFieldValue,\n variables,\n }}\n isLoading={isLoadingPreview}\n />\n </div>\n )}\n </div>\n )}\n </div>\n </Sheet.Body>\n <Sheet.Footer>\n <ActionBlock\n cancelButtonProps={{ onClick: handleCancel }}\n isSubmitting={isSubmitting || isLoadingPreview}\n submitButtonProps={{ label: t(\"neetoRules.common.apply\") }}\n />\n </Sheet.Footer>\n </Form>\n )}\n </Formik>\n </Sheet>\n );\n};\n\nexport default CannedResponsesPane;\n"],"names":["CANNED_RESPONSE_INPUT_ACTION_NAMES","CANNED_RESPONSE_RICH_TEXT_ACTION_NAME","CANNED_RESPONSE_ACTION_LABELS","concat","reduce","labelObject","actionName","_objectSpread","_defineProperty","ACTION_OPTIONS","addNote","assignTicketFieldValue","ACTION_TYPES_MAP","single_option","multi_option","checkbox","integer","DEFAULT_CHECKBOX_OPTIONS","label","t","value","Action","_ref","id","setFieldValue","_ref$richText","richText","_jsxs","className","children","_jsx","Label","Editor","initialValue","onChange","newValue","_createElement","Input","disabled","key","replace","renderActionValue","actionType","displayValue","join","renderDefaultAction","_ref2","name","trixBody","includes","renderCustomAction","_ref3","actionableId","actionOptions","actionOption","findBy","type","actionValue","isRichText","getActionDropdown","_ref4","status","teams","members","tags","change_status","assign_group","assign_agent","add_tags","remove_tags","getActionType","kind","getDropdownOptions","optionsAttribute","map","_ref5","_toConsumableArray","renderAction","_ref6","_ref6$actionOptions","_ref6$trixBody","isCustomAction","buildActionOptions","_ref7","dropdownOptions","actionNameOptions","variables","actionDropdown","options","option","fields","filter","field","startsWith","fieldOptions","_ref8","attributeOptions","data","what","defaultData","actionable_id","actionable_type","Body","cannedResponse","dropdownList","isLoading","_useTranslation","useTranslation","Spinner","sortedActions","actions","sort","a","b","not","action","CannedResponsesPane","areDropdownListsLoading","isCannedResponsePaneOpen","isLoadingPreview","macros","onApply","onCancel","previewCannedResponses","previewParams","_ref$variables","_useState","useState","_useState2","_slicedToArray","setCannedResponse","initialFocusRef","useRef","handleSelect","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context","prev","next","payload","onSuccess","response","values","stop","_x","apply","arguments","handleSubmit","onSettled","updatedValues","omit","handleCancel","Sheet","isOpen","onClose","Header","Title","PLURAL","Formik","initialValues","toLabelAndValue","onSubmit","isSubmitting","Form","Select","isSearchable","ref","isPresent","Footer","ActionBlock","cancelButtonProps","onClick","submitButtonProps"],"mappings":"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"}
|