@bigbinary/neeto-message-templates-frontend 2.0.7 → 2.0.8

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 (83) hide show
  1. package/README.md +0 -2
  2. package/dist/.ready +1 -0
  3. package/dist/ApiTemplates.js +14 -13
  4. package/dist/ApiTemplates.js.map +1 -1
  5. package/dist/JsonEditor-BHy4s0Bo.js +402 -0
  6. package/dist/JsonEditor-BHy4s0Bo.js.map +1 -0
  7. package/dist/JsonEditor-BMMyHPxh.js +434 -0
  8. package/dist/JsonEditor-BMMyHPxh.js.map +1 -0
  9. package/dist/{JsonEditor-CGNPIMpX.js → JsonEditor-DEKfDX8p.js} +2 -5
  10. package/dist/{JsonEditor-CGNPIMpX.js.map → JsonEditor-DEKfDX8p.js.map} +1 -1
  11. package/dist/{JsonEditor-CLHGjppr.js → JsonEditor-DihhWMI5.js} +2 -5
  12. package/dist/{JsonEditor-CLHGjppr.js.map → JsonEditor-DihhWMI5.js.map} +1 -1
  13. package/dist/MessageTemplates.js +33 -43
  14. package/dist/MessageTemplates.js.map +1 -1
  15. package/dist/SendMessagePane.js +5 -5
  16. package/dist/SendMessagePane.js.map +1 -1
  17. package/dist/SendToApiPane.js +5 -4
  18. package/dist/SendToApiPane.js.map +1 -1
  19. package/dist/adaptive_input-BpXdshqg.js +17 -0
  20. package/dist/adaptive_input-BpXdshqg.js.map +1 -0
  21. package/dist/adaptive_input-Cd_EArae.js +19 -0
  22. package/dist/adaptive_input-Cd_EArae.js.map +1 -0
  23. package/dist/cjs/ApiTemplates.js +13 -12
  24. package/dist/cjs/ApiTemplates.js.map +1 -1
  25. package/dist/cjs/MessageTemplates.js +35 -45
  26. package/dist/cjs/MessageTemplates.js.map +1 -1
  27. package/dist/cjs/SendMessagePane.js +4 -4
  28. package/dist/cjs/SendMessagePane.js.map +1 -1
  29. package/dist/cjs/SendToApiPane.js +5 -4
  30. package/dist/cjs/SendToApiPane.js.map +1 -1
  31. package/dist/cjs/index.js +5 -4
  32. package/dist/cjs/index.js.map +1 -1
  33. package/dist/cjs/v2/ApiTemplates.js +461 -0
  34. package/dist/cjs/v2/ApiTemplates.js.map +1 -0
  35. package/dist/cjs/v2/MessageTemplates.js +849 -0
  36. package/dist/cjs/v2/MessageTemplates.js.map +1 -0
  37. package/dist/cjs/v2/SendMessagePane.js +451 -0
  38. package/dist/cjs/v2/SendMessagePane.js.map +1 -0
  39. package/dist/cjs/v2/SendToApiPane.js +244 -0
  40. package/dist/cjs/v2/SendToApiPane.js.map +1 -0
  41. package/dist/cjs/v2/index.js +57 -0
  42. package/dist/cjs/v2/index.js.map +1 -0
  43. package/dist/{constants-D4v0xTUu.js → constants-B2GWdy9V.js} +2 -2
  44. package/dist/{constants-D4v0xTUu.js.map → constants-B2GWdy9V.js.map} +1 -1
  45. package/dist/constants-CX95xIS-.js +44 -0
  46. package/dist/constants-CX95xIS-.js.map +1 -0
  47. package/dist/constants-Cvnks2UE.js +49 -0
  48. package/dist/constants-Cvnks2UE.js.map +1 -0
  49. package/dist/index.js +6 -5
  50. package/dist/index.js.map +1 -1
  51. package/dist/inject-css-B6qYtOJe.js +6 -0
  52. package/dist/inject-css-B6qYtOJe.js.map +1 -0
  53. package/dist/inject-css-C2dztUxs.js +4 -0
  54. package/dist/inject-css-C2dztUxs.js.map +1 -0
  55. package/dist/json_editor-Co5e3Chh.js +5 -0
  56. package/dist/json_editor-Co5e3Chh.js.map +1 -0
  57. package/dist/json_editor-CvRhtSA3.js +7 -0
  58. package/dist/json_editor-CvRhtSA3.js.map +1 -0
  59. package/dist/{useTemplatesApi-BBQsbYMK.js → useTemplatesApi-CMkDeBa9.js} +2 -2
  60. package/dist/{useTemplatesApi-BBQsbYMK.js.map → useTemplatesApi-CMkDeBa9.js.map} +1 -1
  61. package/dist/{useTemplatesApi-DHrOrdXb.js → useTemplatesApi-byHuEDTl.js} +2 -2
  62. package/dist/{useTemplatesApi-DHrOrdXb.js.map → useTemplatesApi-byHuEDTl.js.map} +1 -1
  63. package/dist/utils-BGEmI_om.js +49 -0
  64. package/dist/utils-BGEmI_om.js.map +1 -0
  65. package/dist/utils-CLc_-Ysi.js +52 -0
  66. package/dist/utils-CLc_-Ysi.js.map +1 -0
  67. package/dist/utils-Cz5W3I3l.js.map +1 -1
  68. package/dist/utils-DddrNhQe.js.map +1 -1
  69. package/dist/v2/ApiTemplates.js +459 -0
  70. package/dist/v2/ApiTemplates.js.map +1 -0
  71. package/dist/v2/MessageTemplates.js +828 -0
  72. package/dist/v2/MessageTemplates.js.map +1 -0
  73. package/dist/v2/SendMessagePane.js +430 -0
  74. package/dist/v2/SendMessagePane.js.map +1 -0
  75. package/dist/v2/SendToApiPane.js +223 -0
  76. package/dist/v2/SendToApiPane.js.map +1 -0
  77. package/dist/v2/index.js +48 -0
  78. package/dist/v2/index.js.map +1 -0
  79. package/package.json +44 -35
  80. package/dist/inject-css-DmrvuTKK.js +0 -4
  81. package/dist/inject-css-DmrvuTKK.js.map +0 -1
  82. package/dist/inject-css-vQvjPR2x.js +0 -6
  83. package/dist/inject-css-vQvjPR2x.js.map +0 -1
@@ -0,0 +1,849 @@
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 neetoCist = require('@bigbinary/neeto-cist');
8
+ var FiltersBar = require('@bigbinary/neeto-filters-frontend/Bar');
9
+ var Container = require('@bigbinary/neeto-molecules/v2/Container');
10
+ var NeetoHeader = require('@bigbinary/neeto-molecules/v2/Header');
11
+ var SubHeader = require('@bigbinary/neeto-molecules/v2/SubHeader');
12
+ var ramda = require('ramda');
13
+ var reactI18next = require('react-i18next');
14
+ var adaptive_input = require('../../adaptive_input-Cd_EArae.js');
15
+ var constants = require('../../constants-Cvnks2UE.js');
16
+ var i18next = require('i18next');
17
+ var MoreDropdown = require('@bigbinary/neeto-molecules/v2/MoreDropdown');
18
+ var useTemplatesApi = require('../../useTemplatesApi-byHuEDTl.js');
19
+ var jsxRuntime = require('react/jsx-runtime');
20
+ var formik$1 = require('@bigbinary/neeto-atoms/formik');
21
+ var FormikEditor = require('@bigbinary/neeto-editor/FormikEditor');
22
+ var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
23
+ var formik = require('formik');
24
+ var PhoneNumber = require('@bigbinary/neeto-molecules/v2/PhoneNumber');
25
+ var yup = require('yup');
26
+ var _asyncToGenerator = require('@babel/runtime/helpers/asyncToGenerator');
27
+ var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
28
+ var reactUtils = require('@bigbinary/neeto-commons-frontend/v2/react-utils');
29
+ var utils = require('@bigbinary/neeto-filters-frontend/utils');
30
+ var TableWrapper = require('@bigbinary/neeto-molecules/v2/TableWrapper');
31
+ require('@bigbinary/neeto-commons-frontend/react-utils');
32
+ require('zustand');
33
+ require('../../inject-css-B6qYtOJe.js');
34
+ require('@bigbinary/neeto-commons-frontend/v2/constants');
35
+ require('@tanstack/react-query');
36
+ require('axios');
37
+ require('qs');
38
+
39
+ function _interopNamespaceDefault(e) {
40
+ var n = Object.create(null);
41
+ if (e) {
42
+ Object.keys(e).forEach(function (k) {
43
+ if (k !== 'default') {
44
+ var d = Object.getOwnPropertyDescriptor(e, k);
45
+ Object.defineProperty(n, k, d.get ? d : {
46
+ enumerable: true,
47
+ get: function () { return e[k]; }
48
+ });
49
+ }
50
+ });
51
+ }
52
+ n.default = e;
53
+ return Object.freeze(n);
54
+ }
55
+
56
+ var yup__namespace = /*#__PURE__*/_interopNamespaceDefault(yup);
57
+
58
+ var MESSAGE_TEMPLATE_INITIAL_STATE = {
59
+ isOpen: false,
60
+ isEdit: false,
61
+ isDelete: false,
62
+ template: {}
63
+ };
64
+
65
+ var MENU_ITEMS = {
66
+ EDIT: "edit",
67
+ DELETE: "delete",
68
+ STATUS: "status"
69
+ };
70
+
71
+ var getMenuItems = function getMenuItems(_ref) {
72
+ var handleDeleteTemplate = _ref.handleDeleteTemplate,
73
+ handleEditTemplate = _ref.handleEditTemplate,
74
+ handleMarkActiveInactive = _ref.handleMarkActiveInactive,
75
+ status = _ref.status;
76
+ return [{
77
+ key: MENU_ITEMS.EDIT,
78
+ label: i18next.t("neetoMessageTemplate.template.edit"),
79
+ onClick: handleEditTemplate,
80
+ "data-testid": "message-template-edit-button"
81
+ }, {
82
+ key: MENU_ITEMS.STATUS,
83
+ label: ramda.equals(status, "active") ? i18next.t("neetoMessageTemplate.template.markAsInactive") : i18next.t("neetoMessageTemplate.template.markAsActive"),
84
+ onClick: function onClick() {
85
+ return handleMarkActiveInactive(status);
86
+ },
87
+ "data-testid": "message-template-status-button"
88
+ }, {
89
+ key: MENU_ITEMS.DELETE,
90
+ label: i18next.t("neetoMessageTemplate.template.delete"),
91
+ onClick: handleDeleteTemplate,
92
+ "data-testid": "message-template-delete-button"
93
+ }];
94
+ };
95
+
96
+ function ownKeys$6(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; }
97
+ function _objectSpread$6(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$6(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$6(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
98
+ var RowActions = function RowActions(_ref) {
99
+ var template = _ref.template,
100
+ setManageTemplatePane = _ref.setManageTemplatePane,
101
+ ownerId = _ref.ownerId,
102
+ onMutationSuccess = _ref.onMutationSuccess;
103
+ var _useUpdateTemplate = useTemplatesApi.useUpdateTemplate(ownerId),
104
+ update = _useUpdateTemplate.mutate;
105
+ var status = template.status,
106
+ id = template.id;
107
+ var templateType = adaptive_input.useTemplateStore(ramda.prop("templateType"));
108
+ var handleEditTemplate = function handleEditTemplate() {
109
+ return setManageTemplatePane(_objectSpread$6(_objectSpread$6({}, MESSAGE_TEMPLATE_INITIAL_STATE), {}, {
110
+ isOpen: true,
111
+ isEdit: true,
112
+ template: template
113
+ }));
114
+ };
115
+ var handleDeleteTemplate = function handleDeleteTemplate() {
116
+ return setManageTemplatePane(_objectSpread$6(_objectSpread$6({}, MESSAGE_TEMPLATE_INITIAL_STATE), {}, {
117
+ isDelete: true,
118
+ template: template
119
+ }));
120
+ };
121
+ var handleMarkActiveInactive = function handleMarkActiveInactive(activeState) {
122
+ var status = activeState === "active" ? "inactive" : "active";
123
+ update({
124
+ payload: {
125
+ status: status,
126
+ templateType: templateType
127
+ },
128
+ id: id
129
+ }, {
130
+ onSuccess: onMutationSuccess
131
+ });
132
+ };
133
+ return /*#__PURE__*/jsxRuntime.jsx(MoreDropdown, {
134
+ dropdownButtonProps: {
135
+ "data-testid": "message-template-dropdown",
136
+ className: "me-1 my-1"
137
+ },
138
+ menuItems: getMenuItems({
139
+ handleDeleteTemplate: handleDeleteTemplate,
140
+ handleEditTemplate: handleEditTemplate,
141
+ handleMarkActiveInactive: handleMarkActiveInactive,
142
+ status: status
143
+ })
144
+ });
145
+ };
146
+
147
+ function ownKeys$5(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; }
148
+ function _objectSpread$5(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$5(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$5(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
149
+ var handleEditTemplate = function handleEditTemplate(setManageTemplatePane, template) {
150
+ return setManageTemplatePane(_objectSpread$5(_objectSpread$5({}, MESSAGE_TEMPLATE_INITIAL_STATE), {}, {
151
+ isOpen: true,
152
+ isEdit: true,
153
+ template: template
154
+ }));
155
+ };
156
+ var renderSearchProps = function renderSearchProps(label, value) {
157
+ return {
158
+ className: "w-52",
159
+ placeholder: i18next.t("neetoMessageTemplate.template.search", {
160
+ what: label
161
+ }),
162
+ "data-testid": "".concat(neetoCist.hyphenate(value), "-search-input")
163
+ };
164
+ };
165
+
166
+ // These column definitions serve double duty, exactly as they did in v1: the
167
+ // TanStack keys (`id`/`accessorKey`/`header`/`size`/`cell`) feed atoms'
168
+ // DataTable, while the filter keys (`key`/`node`/`label`/`type`/`values`) feed
169
+ // neetofilters via `useFilters`. Keep both sets in sync when editing.
170
+ var buildTableColumnData = function buildTableColumnData(setManageTemplatePane, ownerId, onMutationSuccess) {
171
+ return [{
172
+ accessorKey: "name",
173
+ id: "name",
174
+ key: "name",
175
+ node: "name",
176
+ header: i18next.t("neetoMessageTemplate.template.name"),
177
+ label: i18next.t("neetoMessageTemplate.template.name"),
178
+ type: "text",
179
+ size: 200,
180
+ cell: function cell(_ref) {
181
+ var template = _ref.row.original;
182
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
183
+ className: "flex items-center justify-between gap-x-3",
184
+ children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Button, {
185
+ label: neetoCist.truncate(template.name, 100),
186
+ variant: "link",
187
+ onClick: function onClick() {
188
+ return handleEditTemplate(setManageTemplatePane, template);
189
+ }
190
+ }), /*#__PURE__*/jsxRuntime.jsx(RowActions, {
191
+ onMutationSuccess: onMutationSuccess,
192
+ ownerId: ownerId,
193
+ setManageTemplatePane: setManageTemplatePane,
194
+ template: template
195
+ })]
196
+ });
197
+ }
198
+ }, {
199
+ accessorKey: "status",
200
+ id: "status",
201
+ key: "status",
202
+ node: "status",
203
+ header: i18next.t("neetoMessageTemplate.template.active"),
204
+ label: i18next.t("neetoMessageTemplate.template.active"),
205
+ type: "single_option",
206
+ values: [{
207
+ label: "Yes",
208
+ value: "active"
209
+ }, {
210
+ label: "No",
211
+ value: "inactive"
212
+ }],
213
+ cell: function cell(_ref2) {
214
+ var getValue = _ref2.getValue;
215
+ return getValue() === "active" ? "Yes" : "No";
216
+ },
217
+ size: 180
218
+ }];
219
+ };
220
+
221
+ var _excluded = ["label", "name"];
222
+ function ownKeys$4(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$4(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$4(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$4(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
224
+ var FormikAdaptiveInput = function FormikAdaptiveInput(_ref) {
225
+ var label = _ref.label,
226
+ name = _ref.name,
227
+ otherProps = _objectWithoutProperties(_ref, _excluded);
228
+ var _useFormikContext = formik.useFormikContext(),
229
+ submitForm = _useFormikContext.submitForm;
230
+ var handleKeyDown = function handleKeyDown(event) {
231
+ if (event.key !== "Enter" || event.shiftKey) return;
232
+ event.preventDefault();
233
+ submitForm();
234
+ };
235
+ return /*#__PURE__*/jsxRuntime.jsx(formik$1.Textarea, _objectSpread$4({
236
+ label: label,
237
+ name: name,
238
+ className: "neeto-message-templates-nano-adaptive-input",
239
+ resize: "none",
240
+ size: "small",
241
+ onKeyDown: handleKeyDown
242
+ }, otherProps));
243
+ };
244
+
245
+ // eslint-disable-next-line @bigbinary/neeto/file-name-and-export-name-standards
246
+ var formatEditorContent = function formatEditorContent(value) {
247
+ return value === null || value === void 0 ? void 0 : value.replaceAll(/<\/?(?!img)\w*\b[^>]*>/gi, "").trim();
248
+ };
249
+ var EMAIL_TEMPLATE_INITIAL_VALUES = {
250
+ name: "",
251
+ subject: "",
252
+ body: "",
253
+ testEmailAddress: ""
254
+ };
255
+ var SMS_TEMPLATE_INITIAL_VALUES = {
256
+ name: "",
257
+ body: "",
258
+ testPhoneNumber: ""
259
+ };
260
+ var EMAIL_TEMPLATE_FORM_SCHEMA = yup__namespace.object({
261
+ name: yup__namespace.string().trim().required(i18next.t("neetoMessageTemplate.template.validation.namePresence")),
262
+ subject: yup__namespace.string().trim().required(i18next.t("neetoMessageTemplate.template.validation.subjectPresence")),
263
+ body: yup__namespace.string().test("name", i18next.t("neetoMessageTemplate.template.validation.bodyPresence"), function (value) {
264
+ return !!formatEditorContent(value);
265
+ })
266
+ });
267
+ var SMS_TEMPLATE_FORM_VALIDATION_SCHEMA = yup__namespace.object({
268
+ name: yup__namespace.string().trim().required(i18next.t("neetoMessageTemplate.template.validation.namePresence")),
269
+ body: yup__namespace.string().test("body", i18next.t("neetoMessageTemplate.template.validation.bodyPresence"), function (value) {
270
+ return !!formatEditorContent(value);
271
+ })
272
+ });
273
+ var SEND_TEST_EMAIL_SCHEMA = yup__namespace.string().trim().required(i18next.t("neetoMessageTemplate.template.validation.emailAddressPresence")).email(i18next.t("neetoMessageTemplate.template.validation.emailAddressFormatValidation"));
274
+ var PHONE_NUMBER_VALIDATION_SCHEMA = yup__namespace.string().test("testPhoneNumber", i18next.t("neetoMessageTemplate.template.validation.validPhoneNumber"), function (value) {
275
+ return PhoneNumber.isPhoneNumberValid(value);
276
+ });
277
+
278
+ function ownKeys$3(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; }
279
+ function _objectSpread$3(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$3(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$3(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
280
+ function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = false, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = true, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), true), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
281
+ function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
282
+ var TestMessage = function TestMessage(_ref) {
283
+ var isEmailTemplate = _ref.isEmailTemplate,
284
+ handleSubmitTestTemplate = _ref.handleSubmitTestTemplate,
285
+ isTestMessageLoading = _ref.isTestMessageLoading,
286
+ isTestingTemplateDisabled = _ref.isTestingTemplateDisabled,
287
+ customFields = _ref.customFields;
288
+ var _useState = react.useState(true),
289
+ _useState2 = _slicedToArray(_useState, 2),
290
+ isTestingTemplateRestricted = _useState2[0],
291
+ setIsTestingTemplateRestricted = _useState2[1];
292
+ var _useFormikContext = formik.useFormikContext(),
293
+ values = _useFormikContext.values,
294
+ isValid = _useFormikContext.isValid;
295
+ var _useTranslation = reactI18next.useTranslation(),
296
+ t = _useTranslation.t;
297
+ var handleTestValidation = /*#__PURE__*/function () {
298
+ var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(event) {
299
+ var value;
300
+ return _regenerator().w(function (_context) {
301
+ while (1) switch (_context.p = _context.n) {
302
+ case 0:
303
+ value = event.target.value;
304
+ _context.p = 1;
305
+ if (!isEmailTemplate) {
306
+ _context.n = 3;
307
+ break;
308
+ }
309
+ _context.n = 2;
310
+ return SEND_TEST_EMAIL_SCHEMA.validate(value);
311
+ case 2:
312
+ _context.n = 4;
313
+ break;
314
+ case 3:
315
+ _context.n = 4;
316
+ return PHONE_NUMBER_VALIDATION_SCHEMA.validate(value);
317
+ case 4:
318
+ setIsTestingTemplateRestricted(false);
319
+ _context.n = 6;
320
+ break;
321
+ case 5:
322
+ _context.p = 5;
323
+ _context.v;
324
+ setIsTestingTemplateRestricted(true);
325
+ case 6:
326
+ return _context.a(2);
327
+ }
328
+ }, _callee, null, [[1, 5]]);
329
+ }));
330
+ return function handleTestValidation(_x) {
331
+ return _ref2.apply(this, arguments);
332
+ };
333
+ }();
334
+ var isTestTemplateButtonDisabled = !isValid || isTestingTemplateDisabled || isTestingTemplateRestricted || isTestMessageLoading;
335
+ var handleKeyDown = function handleKeyDown(event) {
336
+ if (event.key !== "Enter") return;
337
+ event.stopPropagation();
338
+ event.preventDefault();
339
+ !isTestTemplateButtonDisabled && handleSubmitTestTemplate(values);
340
+ };
341
+ return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
342
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
343
+ className: "start-0 flex items-start gap-x-2",
344
+ children: [/*#__PURE__*/jsxRuntime.jsx(formik$1.Input, _objectSpread$3(_objectSpread$3({
345
+ "data-testid": "message-template-test-input"
346
+ }, !isEmailTemplate && {
347
+ helpText: t("neetoMessageTemplate.template.phoneNumberHelpText")
348
+ }), {}, {
349
+ name: isEmailTemplate ? "testEmailAddress" : "testPhoneNumber",
350
+ placeholder: t(isEmailTemplate ? "neetoMessageTemplate.template.emailAddress" : "neetoMessageTemplate.template.phoneNumber"),
351
+ onKeyDown: handleKeyDown,
352
+ onKeyUp: handleTestValidation
353
+ })), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Button, {
354
+ "data-testid": "message-template-test-button",
355
+ disabled: isTestTemplateButtonDisabled,
356
+ loading: isTestMessageLoading,
357
+ type: "button",
358
+ variant: "default",
359
+ label: isEmailTemplate ? t("neetoMessageTemplate.template.sendTestEmail") : t("neetoMessageTemplate.template.sendTestSms"),
360
+ onClick: function onClick() {
361
+ return handleSubmitTestTemplate(values);
362
+ }
363
+ })]
364
+ }), !isEmailTemplate && /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
365
+ variant: "body2",
366
+ children: t("neetoMessageTemplate.sendMessage.testSmsNote")
367
+ }), customFields]
368
+ });
369
+ };
370
+
371
+ 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; }
372
+ 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; }
373
+ var Form = function Form(_ref) {
374
+ var onClose = _ref.onClose,
375
+ isEdit = _ref.isEdit,
376
+ _ref$template = _ref.template,
377
+ template = _ref$template === void 0 ? {} : _ref$template,
378
+ createUpdateTemplate = _ref.createUpdateTemplate,
379
+ setInitialFocusField = _ref.setInitialFocusField,
380
+ handleSubmitTestTemplate = _ref.handleSubmitTestTemplate,
381
+ isTestMessageLoading = _ref.isTestMessageLoading,
382
+ shouldIncludeTestTemplate = _ref.shouldIncludeTestTemplate,
383
+ templateVariables = _ref.templateVariables,
384
+ isTestingTemplateDisabled = _ref.isTestingTemplateDisabled,
385
+ customFields = _ref.customFields,
386
+ onMutationSuccess = _ref.onMutationSuccess;
387
+ var _useTranslation = reactI18next.useTranslation(),
388
+ t = _useTranslation.t;
389
+ var editorRef = react.useRef(null);
390
+ var templateType = adaptive_input.useTemplateStore(ramda.prop("templateType"));
391
+ var isEmailTemplate = ramda.equals(templateType, "email_template");
392
+ var isTestTemplateVisible = ramda.includes(templateType, ["sms_template", "email_template"]) && shouldIncludeTestTemplate;
393
+ var _ref2 = isEmailTemplate ? [_objectSpread$2(_objectSpread$2({}, EMAIL_TEMPLATE_INITIAL_VALUES), ramda.pick(["name", "body", "subject", "active"], template)), EMAIL_TEMPLATE_FORM_SCHEMA] : [_objectSpread$2(_objectSpread$2({}, SMS_TEMPLATE_INITIAL_VALUES), ramda.pick(["name", "body", "active"], template)), SMS_TEMPLATE_FORM_VALIDATION_SCHEMA],
394
+ _ref3 = _slicedToArray(_ref2, 2),
395
+ TEMPLATE_INITIAL_VALUES = _ref3[0],
396
+ TEMPLATE_FORM_SCHEMA = _ref3[1];
397
+ var handleSubmit = function handleSubmit(values) {
398
+ var filteredValues = isEmailTemplate ? ramda.omit(["name", "testEmailAddress"], values) : ramda.omit(["name", "testPhoneNumber"], values);
399
+ var payload = {
400
+ templateType: templateType,
401
+ name: values.name,
402
+ entity: ramda.mergeLeft({
403
+ id: template.id
404
+ }, filteredValues)
405
+ };
406
+ createUpdateTemplate({
407
+ isEdit: isEdit,
408
+ payload: payload,
409
+ id: template.id
410
+ }, {
411
+ onSuccess: function onSuccess() {
412
+ onMutationSuccess.apply(void 0, arguments);
413
+ onClose();
414
+ }
415
+ });
416
+ };
417
+ var messageBodyLabel = isEmailTemplate ? t("neetoMessageTemplate.template.emailBody") : t("neetoMessageTemplate.template.smsBody");
418
+ return /*#__PURE__*/jsxRuntime.jsxs(formik$1.Form, {
419
+ formProps: {
420
+ noValidate: true,
421
+ className: "flex w-full flex-col gap-y-4 pb-6"
422
+ },
423
+ formikProps: {
424
+ initialValues: TEMPLATE_INITIAL_VALUES,
425
+ validationSchema: TEMPLATE_FORM_SCHEMA,
426
+ validateOnBlur: true,
427
+ validateOnChange: true,
428
+ onSubmit: handleSubmit
429
+ },
430
+ children: [/*#__PURE__*/jsxRuntime.jsx(formik$1.Input, {
431
+ required: true,
432
+ label: t("neetoMessageTemplate.template.templateName"),
433
+ name: "name",
434
+ ref: setInitialFocusField
435
+ }), isEmailTemplate && /*#__PURE__*/jsxRuntime.jsx(FormikAdaptiveInput, {
436
+ required: true,
437
+ label: t("neetoMessageTemplate.template.emailSubject"),
438
+ name: "subject"
439
+ }), /*#__PURE__*/jsxRuntime.jsx(FormikEditor, {
440
+ hideSlashCommands: true,
441
+ required: true,
442
+ contentClassName: "max-h-40",
443
+ defaults: isEmailTemplate ? undefined : [],
444
+ label: messageBodyLabel,
445
+ name: "body",
446
+ ref: editorRef,
447
+ rows: constants.DEFAULT_EDITOR_ROW_COUNT,
448
+ variables: templateVariables
449
+ }), isTestTemplateVisible && /*#__PURE__*/jsxRuntime.jsx(TestMessage, {
450
+ customFields: customFields,
451
+ handleSubmitTestTemplate: handleSubmitTestTemplate,
452
+ isEmailTemplate: isEmailTemplate,
453
+ isTestMessageLoading: isTestMessageLoading,
454
+ isTestingTemplateDisabled: isTestingTemplateDisabled
455
+ }), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Sheet.Footer, {
456
+ className: "absolute bottom-0 start-0",
457
+ children: /*#__PURE__*/jsxRuntime.jsx(formik$1.ActionBlock, {
458
+ cancelButtonProps: {
459
+ "data-testid": "message-template-reset-button",
460
+ onClick: onClose
461
+ },
462
+ submitButtonProps: {
463
+ "data-testid": "message-template-submit-button"
464
+ }
465
+ })
466
+ })]
467
+ });
468
+ };
469
+
470
+ var AddEdit = function AddEdit(_ref) {
471
+ var onClose = _ref.onClose,
472
+ createUpdateTemplate = _ref.createUpdateTemplate,
473
+ manageTemplatePane = _ref.manageTemplatePane,
474
+ isTestMessageLoading = _ref.isTestMessageLoading,
475
+ handleSubmitTestTemplate = _ref.handleSubmitTestTemplate,
476
+ shouldIncludeTestTemplate = _ref.shouldIncludeTestTemplate,
477
+ addText = _ref.addText,
478
+ editText = _ref.editText,
479
+ templateVariables = _ref.templateVariables,
480
+ isTestingTemplateDisabled = _ref.isTestingTemplateDisabled,
481
+ customFields = _ref.customFields,
482
+ onMutationSuccess = _ref.onMutationSuccess;
483
+ var initialFocusField = react.useRef(null);
484
+ var isOpen = manageTemplatePane.isOpen,
485
+ isEdit = manageTemplatePane.isEdit,
486
+ template = manageTemplatePane.template;
487
+ var label = isEdit ? editText : addText;
488
+ return /*#__PURE__*/jsxRuntime.jsxs(neetoAtoms.Sheet, {
489
+ isOpen: isOpen,
490
+ onClose: onClose,
491
+ initialFocusRef: initialFocusField,
492
+ children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Sheet.Header, {
493
+ children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Sheet.Title, {
494
+ children: label
495
+ })
496
+ }), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Sheet.Body, {
497
+ children: /*#__PURE__*/jsxRuntime.jsx(Form, {
498
+ createUpdateTemplate: createUpdateTemplate,
499
+ customFields: customFields,
500
+ handleSubmitTestTemplate: handleSubmitTestTemplate,
501
+ isEdit: isEdit,
502
+ isTestMessageLoading: isTestMessageLoading,
503
+ isTestingTemplateDisabled: isTestingTemplateDisabled,
504
+ onClose: onClose,
505
+ onMutationSuccess: onMutationSuccess,
506
+ shouldIncludeTestTemplate: shouldIncludeTestTemplate,
507
+ template: template,
508
+ templateVariables: templateVariables,
509
+ setInitialFocusField: initialFocusField
510
+ })
511
+ })]
512
+ });
513
+ };
514
+
515
+ var useFilters = function useFilters() {
516
+ var _useState = react.useState(constants.DEFAULT_PAGE_PROPERTIES),
517
+ _useState2 = _slicedToArray(_useState, 2),
518
+ pageProperties = _useState2[0],
519
+ setPageProperties = _useState2[1];
520
+ var _useQueryParams = reactUtils.useQueryParams(),
521
+ _useQueryParams$searc = _useQueryParams.searchTerm,
522
+ searchTerm = _useQueryParams$searc === void 0 ? "" : _useQueryParams$searc;
523
+ var filterColumns = buildTableColumnData().filter(ramda.prop("node"));
524
+ var searchKeywordProps = {
525
+ key: "search_term",
526
+ node: "name",
527
+ value: searchTerm,
528
+ setValue: neetoCist.noop
529
+ };
530
+ var _useState3 = react.useState(function () {
531
+ return utils.buildFiltersFromURL([].concat(_toConsumableArray(filterColumns), [searchKeywordProps]));
532
+ }),
533
+ _useState4 = _slicedToArray(_useState3, 2),
534
+ filters = _useState4[0],
535
+ setFilters = _useState4[1];
536
+ return {
537
+ filterColumns: filterColumns,
538
+ searchKeywordProps: searchKeywordProps,
539
+ searchTerm: searchTerm,
540
+ filters: filters,
541
+ setFilters: setFilters,
542
+ pageProperties: pageProperties,
543
+ setPageProperties: setPageProperties
544
+ };
545
+ };
546
+
547
+ var useTemplates = function useTemplates(_ref) {
548
+ var type = _ref.type,
549
+ ownerId = _ref.ownerId,
550
+ filters = _ref.filters,
551
+ pageProperties = _ref.pageProperties;
552
+ var pageIndex = pageProperties.index,
553
+ pageSize = pageProperties.size;
554
+ var templateParams = {
555
+ page: pageIndex,
556
+ pageSize: pageSize,
557
+ filters: filters,
558
+ templateType: constants.MESSAGE_TEMPLATES[type].value,
559
+ ownerId: ramda.isEmpty(ownerId) ? undefined : ownerId
560
+ };
561
+ var _useFetchTemplates = useTemplatesApi.useFetchTemplates(templateParams),
562
+ _useFetchTemplates$da = _useFetchTemplates.data,
563
+ templatesData = _useFetchTemplates$da === void 0 ? {} : _useFetchTemplates$da,
564
+ isLoadingTemplates = _useFetchTemplates.isLoading,
565
+ isFetching = _useFetchTemplates.isFetching;
566
+ var _useCreateTemplate = useTemplatesApi.useCreateTemplate(ownerId),
567
+ create = _useCreateTemplate.mutate;
568
+ var _useUpdateTemplate = useTemplatesApi.useUpdateTemplate(ownerId),
569
+ update = _useUpdateTemplate.mutate;
570
+ var createUpdateTemplate = function createUpdateTemplate(_ref2, options) {
571
+ var isEdit = _ref2.isEdit,
572
+ payload = _ref2.payload,
573
+ _ref2$id = _ref2.id,
574
+ id = _ref2$id === void 0 ? null : _ref2$id;
575
+ return isEdit ? update({
576
+ id: id,
577
+ payload: payload
578
+ }, options) : create(payload, options);
579
+ };
580
+ var isLoaderVisible = isLoadingTemplates || isFetching;
581
+ return {
582
+ templatesData: templatesData,
583
+ isLoading: isLoaderVisible,
584
+ createUpdateTemplate: createUpdateTemplate
585
+ };
586
+ };
587
+
588
+ 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; }
589
+ 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; }
590
+ var List = function List(_ref) {
591
+ var setManageTemplatePane = _ref.setManageTemplatePane,
592
+ templatesData = _ref.templatesData,
593
+ isLoading = _ref.isLoading,
594
+ manageTemplatePane = _ref.manageTemplatePane,
595
+ labelSingular = _ref.labelSingular,
596
+ setPageProperties = _ref.setPageProperties,
597
+ pageProperties = _ref.pageProperties,
598
+ label = _ref.label,
599
+ addText = _ref.addText,
600
+ isFilterApplied = _ref.isFilterApplied,
601
+ ownerId = _ref.ownerId,
602
+ type = _ref.type,
603
+ onMutationSuccess = _ref.onMutationSuccess,
604
+ helpDocUrl = _ref.helpDocUrl;
605
+ var _useTranslation = reactI18next.useTranslation(),
606
+ t = _useTranslation.t;
607
+ var _useDeleteTemplate = useTemplatesApi.useDeleteTemplate(ownerId),
608
+ deleteTemplate = _useDeleteTemplate.mutate,
609
+ isDeleting = _useDeleteTemplate.isPending;
610
+ var templates = templatesData.templates,
611
+ totalCount = templatesData.totalCount;
612
+ var template = manageTemplatePane.template,
613
+ isDelete = manageTemplatePane.isDelete;
614
+ var pageIndex = pageProperties.index,
615
+ pageSize = pageProperties.size;
616
+ var isSms = type === "sms";
617
+ var typeLabelSingular = isSms ? labelSingular : labelSingular.toLowerCase();
618
+ var emptyStateLabel = isSms ? label : label.toLowerCase();
619
+ var noDataProps = _objectSpread$1(_objectSpread$1({}, !isFilterApplied && {
620
+ primaryButtonProps: {
621
+ label: addText,
622
+ onClick: function onClick() {
623
+ return setManageTemplatePane(ramda.assoc("isOpen", true));
624
+ }
625
+ },
626
+ helpText: /*#__PURE__*/jsxRuntime.jsx(reactI18next.Trans, {
627
+ i18nKey: "neetoMessageTemplate.template.linkToHelpArticle",
628
+ values: {
629
+ entity: label
630
+ },
631
+ components: {
632
+ Link: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Button, {
633
+ href: helpDocUrl,
634
+ target: "_blank",
635
+ variant: "link"
636
+ })
637
+ }
638
+ })
639
+ }), {}, {
640
+ title: isFilterApplied ? t("neetoMessageTemplate.template.filtersEmptyState", {
641
+ type: emptyStateLabel
642
+ }) : t("neetoMessageTemplate.template.emptyState", {
643
+ type: emptyStateLabel
644
+ })
645
+ });
646
+ var handleDelete = function handleDelete() {
647
+ deleteTemplate(template.id, {
648
+ onSuccess: onMutationSuccess,
649
+ onSettled: function onSettled() {
650
+ setManageTemplatePane(ramda.assoc("isDelete", false));
651
+ }
652
+ });
653
+ };
654
+ return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
655
+ children: [!ramda.isEmpty(templates) ? /*#__PURE__*/jsxRuntime.jsx(TableWrapper, {
656
+ hasPagination: totalCount > pageSize,
657
+ children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.DataTable, {
658
+ pageSize: pageSize,
659
+ totalCount: totalCount,
660
+ currentPage: pageIndex,
661
+ data: templates,
662
+ enableURLPagination: false,
663
+ loading: isLoading,
664
+ columns: buildTableColumnData(setManageTemplatePane, ownerId, onMutationSuccess),
665
+ onPageChange: function onPageChange(index) {
666
+ return setPageProperties({
667
+ index: index,
668
+ size: pageSize
669
+ });
670
+ }
671
+ })
672
+ }) : /*#__PURE__*/jsxRuntime.jsx("div", {
673
+ className: "flex h-full w-full items-center justify-center",
674
+ children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Empty, _objectSpread$1({}, noDataProps))
675
+ }), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Alert, {
676
+ isOpen: isDelete,
677
+ isSubmitting: isDeleting,
678
+ submitButtonLabel: t("neetoMessageTemplate.template.delete"),
679
+ message: /*#__PURE__*/jsxRuntime.jsx(reactI18next.Trans, {
680
+ i18nKey: "neetoMessageTemplate.template.templateDeleteConfirmation",
681
+ values: {
682
+ name: template.name
683
+ }
684
+ }),
685
+ title: t("neetoMessageTemplate.template.deleteTemplate", {
686
+ label: typeLabelSingular
687
+ }),
688
+ onClose: function onClose() {
689
+ return setManageTemplatePane(ramda.assoc("isDelete", false));
690
+ },
691
+ onSubmit: handleDelete
692
+ })]
693
+ });
694
+ };
695
+
696
+ 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; }
697
+ 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; }
698
+ var MessageTemplates = function MessageTemplates(_ref) {
699
+ var _helpPopoverProps$hel;
700
+ var _ref$breadcrumbs = _ref.breadcrumbs,
701
+ breadcrumbs = _ref$breadcrumbs === void 0 ? [] : _ref$breadcrumbs,
702
+ _ref$type = _ref.type,
703
+ type = _ref$type === void 0 ? "" : _ref$type,
704
+ _ref$handleSubmitTest = _ref.handleSubmitTestTemplate,
705
+ handleSubmitTestTemplate = _ref$handleSubmitTest === void 0 ? neetoCist.noop : _ref$handleSubmitTest,
706
+ _ref$isTestMessageLoa = _ref.isTestMessageLoading,
707
+ isTestMessageLoading = _ref$isTestMessageLoa === void 0 ? false : _ref$isTestMessageLoa,
708
+ _ref$shouldIncludeTes = _ref.shouldIncludeTestTemplate,
709
+ shouldIncludeTestTemplate = _ref$shouldIncludeTes === void 0 ? true : _ref$shouldIncludeTes,
710
+ _ref$templateVariable = _ref.templateVariables,
711
+ templateVariables = _ref$templateVariable === void 0 ? {} : _ref$templateVariable,
712
+ _ref$ownerId = _ref.ownerId,
713
+ ownerId = _ref$ownerId === void 0 ? "" : _ref$ownerId,
714
+ _ref$isTestingTemplat = _ref.isTestingTemplateDisabled,
715
+ isTestingTemplateDisabled = _ref$isTestingTemplat === void 0 ? false : _ref$isTestingTemplat,
716
+ _ref$manageTemplatesP = _ref.manageTemplatesPaneCustomFields,
717
+ manageTemplatesPaneCustomFields = _ref$manageTemplatesP === void 0 ? null : _ref$manageTemplatesP,
718
+ _ref$onMutationSucces = _ref.onMutationSuccess,
719
+ onMutationSuccess = _ref$onMutationSucces === void 0 ? neetoCist.noop : _ref$onMutationSucces,
720
+ _ref$helpPopoverProps = _ref.helpPopoverProps,
721
+ helpPopoverProps = _ref$helpPopoverProps === void 0 ? {} : _ref$helpPopoverProps;
722
+ var _useState = react.useState(MESSAGE_TEMPLATE_INITIAL_STATE),
723
+ _useState2 = _slicedToArray(_useState, 2),
724
+ manageTemplatePane = _useState2[0],
725
+ setManageTemplatePane = _useState2[1];
726
+ var _useState3 = react.useState(false),
727
+ _useState4 = _slicedToArray(_useState3, 2),
728
+ isFilterPaneOpen = _useState4[0],
729
+ setIsFilterPaneOpen = _useState4[1];
730
+ var _useTranslation = reactI18next.useTranslation(),
731
+ t = _useTranslation.t;
732
+ var _useFilters = useFilters(),
733
+ searchKeywordProps = _useFilters.searchKeywordProps,
734
+ filterColumns = _useFilters.filterColumns,
735
+ searchTerm = _useFilters.searchTerm,
736
+ filters = _useFilters.filters,
737
+ setFilters = _useFilters.setFilters,
738
+ pageProperties = _useFilters.pageProperties,
739
+ setPageProperties = _useFilters.setPageProperties;
740
+ var _useTemplates = useTemplates({
741
+ type: type,
742
+ ownerId: ownerId,
743
+ filters: filters,
744
+ pageProperties: pageProperties
745
+ }),
746
+ isLoading = _useTemplates.isLoading,
747
+ templatesData = _useTemplates.templatesData,
748
+ createUpdateTemplate = _useTemplates.createUpdateTemplate;
749
+ var setTemplateState = adaptive_input.useTemplateStore(ramda.prop("setTemplateState"));
750
+ var _MESSAGE_TEMPLATES$ty = constants.MESSAGE_TEMPLATES[type],
751
+ label = _MESSAGE_TEMPLATES$ty.label,
752
+ value = _MESSAGE_TEMPLATES$ty.value,
753
+ addText = _MESSAGE_TEMPLATES$ty.addText,
754
+ labelSingular = _MESSAGE_TEMPLATES$ty.labelSingular,
755
+ editText = _MESSAGE_TEMPLATES$ty.editText;
756
+ var isFilterApplied = neetoCist.isNotEmpty(filters) || neetoCist.isNotEmpty(searchTerm);
757
+ var handleActionClick = function handleActionClick() {
758
+ return setManageTemplatePane(_objectSpread(_objectSpread({}, MESSAGE_TEMPLATE_INITIAL_STATE), {}, {
759
+ isOpen: true
760
+ }));
761
+ };
762
+ var handleChange = function handleChange(filters) {
763
+ setFilters(filters);
764
+ setPageProperties(constants.DEFAULT_PAGE_PROPERTIES);
765
+ };
766
+ var templatesCount = (templatesData === null || templatesData === void 0 ? void 0 : templatesData.totalCount) || 0;
767
+ react.useEffect(function () {
768
+ setTemplateState({
769
+ templateType: value
770
+ });
771
+ }, [value]);
772
+ var shouldShowTemplatesCount = !isLoading && (isFilterApplied || templatesCount > 0);
773
+ var helpDocUrl = (helpPopoverProps === null || helpPopoverProps === void 0 || (_helpPopoverProps$hel = helpPopoverProps.helpLinkProps) === null || _helpPopoverProps$hel === void 0 ? void 0 : _helpPopoverProps$hel.href) || "";
774
+ return /*#__PURE__*/jsxRuntime.jsxs(Container, {
775
+ children: [/*#__PURE__*/jsxRuntime.jsx(NeetoHeader, {
776
+ breadcrumbs: breadcrumbs,
777
+ size: "small",
778
+ title: label,
779
+ actionBlock: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Button, {
780
+ "data-testid": "add-".concat(neetoCist.hyphenate(value), "-button"),
781
+ label: addText,
782
+ onClick: handleActionClick
783
+ }),
784
+ searchProps: shouldShowTemplatesCount && renderSearchProps(label, value),
785
+ titleHelpPopoverProps: helpPopoverProps && _objectSpread(_objectSpread({}, helpPopoverProps), {}, {
786
+ title: (helpPopoverProps === null || helpPopoverProps === void 0 ? void 0 : helpPopoverProps.title) || label
787
+ })
788
+ }), /*#__PURE__*/jsxRuntime.jsx(SubHeader, {
789
+ className: "mb-4",
790
+ leftActionBlock: shouldShowTemplatesCount && /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
791
+ as: "h4",
792
+ children: t("neetoMessageTemplate.template.messageTemplatesWithCount", {
793
+ type: constants.MESSAGE_TYPES[type],
794
+ count: templatesCount
795
+ })
796
+ }),
797
+ rightActionBlock: /*#__PURE__*/jsxRuntime.jsx(SubHeader.RightBlock, {
798
+ dataProps: {
799
+ totalCount: isFilterApplied ? null : templatesCount
800
+ },
801
+ filterProps: {
802
+ columns: filterColumns,
803
+ isOpen: isFilterPaneOpen,
804
+ keyword: searchKeywordProps,
805
+ setIsOpen: setIsFilterPaneOpen,
806
+ onChange: handleChange
807
+ }
808
+ })
809
+ }), /*#__PURE__*/jsxRuntime.jsx(FiltersBar, {
810
+ columns: filterColumns,
811
+ keyword: searchKeywordProps,
812
+ setIsPaneOpen: setIsFilterPaneOpen,
813
+ onChange: handleChange
814
+ }), /*#__PURE__*/jsxRuntime.jsx(List, {
815
+ addText: addText,
816
+ helpDocUrl: helpDocUrl,
817
+ isFilterApplied: isFilterApplied,
818
+ isLoading: isLoading,
819
+ label: label,
820
+ labelSingular: labelSingular,
821
+ manageTemplatePane: manageTemplatePane,
822
+ onMutationSuccess: onMutationSuccess,
823
+ ownerId: ownerId,
824
+ pageProperties: pageProperties,
825
+ setManageTemplatePane: setManageTemplatePane,
826
+ setPageProperties: setPageProperties,
827
+ templatesData: templatesData,
828
+ type: type
829
+ }), /*#__PURE__*/jsxRuntime.jsx(AddEdit, {
830
+ addText: addText,
831
+ createUpdateTemplate: createUpdateTemplate,
832
+ editText: editText,
833
+ handleSubmitTestTemplate: handleSubmitTestTemplate,
834
+ isTestMessageLoading: isTestMessageLoading,
835
+ isTestingTemplateDisabled: isTestingTemplateDisabled,
836
+ manageTemplatePane: manageTemplatePane,
837
+ onMutationSuccess: onMutationSuccess,
838
+ shouldIncludeTestTemplate: shouldIncludeTestTemplate,
839
+ templateVariables: templateVariables,
840
+ customFields: manageTemplatesPaneCustomFields,
841
+ onClose: function onClose() {
842
+ return setManageTemplatePane(ramda.assoc("isOpen", false));
843
+ }
844
+ })]
845
+ });
846
+ };
847
+
848
+ module.exports = MessageTemplates;
849
+ //# sourceMappingURL=MessageTemplates.js.map