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