@bigbinary/neeto-message-templates-frontend 1.4.1 → 1.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -204,6 +204,8 @@ to compose and send messages.
204
204
  message as a new template.
205
205
  - `canManageTemplates` - When this is set to false, `save as template` option
206
206
  won't be displayed to users.
207
+ - `helpPopoverProps`: Props to display `HelpPopover` next to input fields in
208
+ `EmailAndSms`.
207
209
 
208
210
  ##### Usage
209
211
 
@@ -212,6 +214,8 @@ import React, { useState } from "react";
212
214
 
213
215
  import { SendMessagePane } from "@bigbinary/neeto-message-templates-frontend";
214
216
 
217
+ import { EMAIL_SUBJECT_HELP_DOC_URL, SMS_TEMPLATE_HELP_DOC_URL }
218
+
215
219
  const App = () => {
216
220
  const [isPaneOpen, setIsPaneOpen] = useState(false);
217
221
 
@@ -240,6 +244,35 @@ const App = () => {
240
244
  .email("invalid"),
241
245
  });
242
246
 
247
+ const helpPopoverProps = {
248
+ email: {
249
+ subject: {
250
+ helpIconProps: {
251
+ popoverProps: {
252
+ title: "subject",
253
+ helpLinkProps: {
254
+ href: EMAIL_SUBJECT_HELP_DOC_URL,
255
+ label: t("View help article"),
256
+ },
257
+ },
258
+ },
259
+ },
260
+ },
261
+ sms: {
262
+ template: {
263
+ helpIconProps: {
264
+ popoverProps: {
265
+ title: "SMS Templates",
266
+ helpLinkProps: {
267
+ href: SMS_TEMPLATE_HELP_DOC_URL,
268
+ label: t("View help article"),
269
+ },
270
+ },
271
+ },
272
+ },
273
+ },
274
+ };
275
+
243
276
  return (
244
277
  <SendMessagePane
245
278
  handleSubmit={handleSubmit}
@@ -249,6 +282,7 @@ const App = () => {
249
282
  customFields={customFields()}
250
283
  customFieldsInitialValues={customFieldsInitialValues}
251
284
  customFieldsValidationSchema={customFieldsSchema}
285
+ helpPopoverProps
252
286
  />
253
287
  );
254
288
  };
@@ -18,7 +18,7 @@ import Table from '@bigbinary/neetoui/Table';
18
18
  import Typography from '@bigbinary/neetoui/Typography';
19
19
  import { equals, assoc, isEmpty, pick } from 'ramda';
20
20
  import { useTranslation, Trans } from 'react-i18next';
21
- import { T as TEMPLATE_STATUS, A as API_TEMPLATE_INITIAL_VALUES, C as CUSTOM_HEADERS_INITIAL_VALUE, r as rejectEmptyKeyValuePairs, a as API_TEMPLATE_TYPE, b as API_TEMPLATE_FORM_VALIDATION_SCHEMA, S as SAMPLE_URL, c as CustomHeaders, J as JsonEditor, F as FILTER_COLUMNS, d as buildHelpPopoverProps } from './JsonEditor-ChlZYDDV.js';
21
+ import { T as TEMPLATE_STATUS, A as API_TEMPLATE_INITIAL_VALUES, C as CUSTOM_HEADERS_INITIAL_VALUE, r as rejectEmptyKeyValuePairs, a as API_TEMPLATE_TYPE, b as API_TEMPLATE_FORM_VALIDATION_SCHEMA, S as SAMPLE_URL, c as CustomHeaders, J as JsonEditor, F as FILTER_COLUMNS, d as buildHelpPopoverProps } from './JsonEditor-BKfioOr3.js';
22
22
  import { D as DEFAULT_PAGE_PROPERTIES } from './constants-D4v0xTUu.js';
23
23
  import { u as useCreateTemplate, a as useUpdateTemplate, b as useFetchTemplates, c as useDeleteTemplate } from './useTemplatesApi-D63swqeh.js';
24
24
  import ActionBlock from '@bigbinary/neetoui/formik/ActionBlock';
@@ -1,5 +1,5 @@
1
1
  import { t } from 'i18next';
2
- import { isPresent, isNotEmpty, hyphenate } from '@bigbinary/neeto-cist';
2
+ import { isNotPresent, isNotEmpty, hyphenate } from '@bigbinary/neeto-cist';
3
3
  import * as yup from 'yup';
4
4
  import { map, unless, path, omit, reject, whereAny, isEmpty, mergeDeepLeft } from 'ramda';
5
5
  import { useEffect, useRef } from 'react';
@@ -60,6 +60,18 @@ var API_TEMPLATES_HELP_POPOVER_PROPS = {
60
60
  position: "top"
61
61
  }
62
62
  };
63
+ var JSON_LANGUAGE = "json";
64
+ var EDITOR_CONFIG = {
65
+ formatOnType: true,
66
+ formatOnPaste: true,
67
+ automaticLayout: true,
68
+ tabSize: 2,
69
+ minimap: {
70
+ enabled: false
71
+ },
72
+ scrollBeyondLastLine: false,
73
+ autoIndent: "full"
74
+ };
63
75
 
64
76
  [{
65
77
  dataIndex: "name",
@@ -109,16 +121,22 @@ var API_TEMPLATE_FORM_VALIDATION_SCHEMA = yup.object({
109
121
  })).matches(VALID_URL_REGEX, t("neetoMessageTemplate.api.validation.validEndpoint")),
110
122
  body: yup.string().trim().required(t("neetoMessageTemplate.validations.requiredEntity", {
111
123
  entity: t("neetoMessageTemplate.template.body")
112
- })).test("is-not-empty", t("neetoMessageTemplate.validations.requiredEntity", {
113
- entity: t("neetoMessageTemplate.template.body")
114
- }), function (value) {
115
- return isPresent(value);
116
- }).test("is-valid-json", t("neetoMessageTemplate.api.validation.invalidJsonBody"), function (value) {
124
+ })).test("is-valid-json-and-not-empty", function (value, context) {
125
+ if (!value) return true;
117
126
  try {
118
- JSON.parse(value);
127
+ var parsedValue = JSON.parse(value);
128
+ if (isNotPresent(parsedValue)) {
129
+ return context.createError({
130
+ message: t("neetoMessageTemplate.validations.requiredEntity", {
131
+ entity: t("neetoMessageTemplate.template.body")
132
+ })
133
+ });
134
+ }
119
135
  return true;
120
136
  } catch (_unused) {
121
- return false;
137
+ return context.createError({
138
+ message: t("neetoMessageTemplate.api.validation.invalidJsonBody")
139
+ });
122
140
  }
123
141
  })
124
142
  });
@@ -253,7 +271,7 @@ var CustomHeaders = function CustomHeaders(_ref) {
253
271
  });
254
272
  };
255
273
 
256
- var css = ".neeto-message-template-json-editor__wrapper{height:40vh;position:relative}.neeto-message-template-json-editor__editor{height:100%}.neeto-message-template-json-editor__dynamic-variables{position:absolute;right:1rem;top:1rem;z-index:10}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC9qYXZhc2NyaXB0L3N0eWxlc2hlZXRzL2NvbXBvbmVudHMvX2pzb25fZWRpdG9yLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0UsNkNBRUUsV0FBQSxDQURBLGlCQUNKLENBR0UsNENBQ0UsV0FESixDQUlFLHVEQUNFLGlCQUFBLENBRUEsVUFBQSxDQURBLFFBQUEsQ0FFQSxVQUZKIiwic291cmNlc0NvbnRlbnQiOlsiLm5lZXRvLW1lc3NhZ2UtdGVtcGxhdGUtanNvbi1lZGl0b3Ige1xuICAmX193cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiA0MHZoO1xuICB9XG5cbiAgJl9fZWRpdG9yIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cblxuICAmX19keW5hbWljLXZhcmlhYmxlcyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMXJlbTtcbiAgICByaWdodDogMXJlbTtcbiAgICB6LWluZGV4OiAxMDtcbiAgfVxufVxuIl19 */";
274
+ var css = ".neeto-message-template-json-editor__wrapper{height:40vh;padding-bottom:.75rem;position:relative}.neeto-message-template-json-editor__editor{height:100%}.neeto-message-template-json-editor__dynamic-variables{position:absolute;right:1rem;top:1rem;z-index:10}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC9qYXZhc2NyaXB0L3N0eWxlc2hlZXRzL2NvbXBvbmVudHMvX2pzb25fZWRpdG9yLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0UsNkNBRUUsV0FBQSxDQUNBLHFCQUFBLENBRkEsaUJBRUosQ0FHRSw0Q0FDRSxXQURKLENBSUUsdURBQ0UsaUJBQUEsQ0FFQSxVQUFBLENBREEsUUFBQSxDQUVBLFVBRkoiLCJzb3VyY2VzQ29udGVudCI6WyIubmVldG8tbWVzc2FnZS10ZW1wbGF0ZS1qc29uLWVkaXRvciB7XG4gICZfX3dyYXBwZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IDQwdmg7XG4gICAgcGFkZGluZy1ib3R0b206IDAuNzVyZW07XG4gIH1cblxuICAmX19lZGl0b3Ige1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxuXG4gICZfX2R5bmFtaWMtdmFyaWFibGVzIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxcmVtO1xuICAgIHJpZ2h0OiAxcmVtO1xuICAgIHotaW5kZXg6IDEwO1xuICB9XG59XG4iXX0= */";
257
275
  n(css,{});
258
276
 
259
277
  var JsonEditor = function JsonEditor(_ref) {
@@ -261,7 +279,7 @@ var JsonEditor = function JsonEditor(_ref) {
261
279
  _ref$helpPopoverProps = _ref.helpPopoverProps,
262
280
  helpPopoverProps = _ref$helpPopoverProps === void 0 ? {} : _ref$helpPopoverProps,
263
281
  _ref$initialValue = _ref.initialValue,
264
- initialValue = _ref$initialValue === void 0 ? {} : _ref$initialValue,
282
+ initialValue = _ref$initialValue === void 0 ? "{}" : _ref$initialValue,
265
283
  _ref$templateVariable = _ref.templateVariables,
266
284
  templateVariables = _ref$templateVariable === void 0 ? [] : _ref$templateVariable;
267
285
  var editorRef = useRef(null);
@@ -279,7 +297,7 @@ var JsonEditor = function JsonEditor(_ref) {
279
297
  t = _useTranslation.t;
280
298
  var handleEditorDidMount = function handleEditorDidMount(editor, monaco) {
281
299
  editorRef.current = editor;
282
- completionProviderRef.current = monaco.languages.registerCompletionItemProvider("json", {
300
+ completionProviderRef.current = monaco.languages.registerCompletionItemProvider(JSON_LANGUAGE, {
283
301
  triggerCharacters: ["{"],
284
302
  provideCompletionItems: function provideCompletionItems(model, position) {
285
303
  var lineContent = model.getLineContent(position.lineNumber);
@@ -352,7 +370,7 @@ var JsonEditor = function JsonEditor(_ref) {
352
370
  };
353
371
  }, []);
354
372
  return /*#__PURE__*/jsxs("div", {
355
- className: "space-y-2 mb-2",
373
+ className: "space-y-2",
356
374
  children: [/*#__PURE__*/jsx(Label, {
357
375
  required: true,
358
376
  "data-cy": "message-template-body",
@@ -371,34 +389,20 @@ var JsonEditor = function JsonEditor(_ref) {
371
389
  })
372
390
  }), /*#__PURE__*/jsx(Editor, {
373
391
  className: "neeto-message-template-json-editor__editor",
374
- defaultLanguage: "json",
392
+ defaultLanguage: JSON_LANGUAGE,
375
393
  defaultValue: initialValue,
376
394
  height: "100%",
395
+ options: EDITOR_CONFIG,
377
396
  theme: "vs-dark",
378
- options: {
379
- formatOnType: true,
380
- formatOnPaste: true,
381
- automaticLayout: true,
382
- tabSize: 2,
383
- minimap: {
384
- enabled: false
385
- },
386
- scrollBeyondLastLine: false,
387
- autoIndent: "full"
388
- },
389
397
  onChange: handleChange,
390
398
  onMount: handleEditorDidMount
391
- }), touched && error && /*#__PURE__*/jsx("p", {
392
- className: "neeto-form-input__error-text",
393
- "data-cy": "api-template-body-error-message",
394
- children: /*#__PURE__*/jsx("span", {
395
- className: "neeto-ui-input__error",
396
- children: error
397
- })
399
+ }), touched && error && /*#__PURE__*/jsx("div", {
400
+ className: "neeto-ui-input__error",
401
+ children: error
398
402
  })]
399
403
  })]
400
404
  });
401
405
  };
402
406
 
403
407
  export { API_TEMPLATE_INITIAL_VALUES as A, CUSTOM_HEADERS_INITIAL_VALUE as C, FILTER_COLUMNS as F, JsonEditor as J, SAMPLE_URL as S, TEMPLATE_STATUS as T, VALID_URL_REGEX as V, API_TEMPLATE_TYPE as a, API_TEMPLATE_FORM_VALIDATION_SCHEMA as b, CustomHeaders as c, buildHelpPopoverProps as d, rejectEmptyKeyValuePairs as r };
404
- //# sourceMappingURL=JsonEditor-ChlZYDDV.js.map
408
+ //# sourceMappingURL=JsonEditor-BKfioOr3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JsonEditor-BKfioOr3.js","sources":["../app/javascript/src/components/Api/constants.js","../app/javascript/src/components/Api/ApiTemplates/constants.js","../app/javascript/src/components/Api/utils.js","../app/javascript/src/components/commons/KeyValuePairs/utils.js","../app/javascript/src/components/commons/KeyValuePairs/index.jsx","../app/javascript/src/components/Api/CustomHeaders.jsx","../app/javascript/src/components/Api/JsonEditor.jsx"],"sourcesContent":["import { t } from \"i18next\";\n\nexport const VALID_URL_REGEX =\n /^(https?):\\/\\/([a-zA-Z0-9-]+\\.){1,}[a-zA-Z]{2,}\\/?[^\\s]*$/;\n\nexport const CUSTOM_HEADERS_INITIAL_VALUE = { key: \"\", value: \"\" };\n\nexport const API_TEMPLATE_TYPE = \"api_template\";\n\nexport const API_TEMPLATES_HELP_POPOVER_PROPS = {\n apiTemplates: {\n description: t(\n \"neetoMessageTemplate.api.helpPopovers.apiTemplates.description\"\n ),\n helpLinkProps: { \"data-cy\": \"api-templates-header-help-link\" },\n popoverProps: { position: \"top\" },\n },\n sendToApi: {\n description: t(\n \"neetoMessageTemplate.api.helpPopovers.sendToApi.description\"\n ),\n helpLinkProps: { \"data-cy\": \"send-to-api-action-help-link\" },\n popoverProps: { position: \"top\" },\n },\n customHeaders: {\n description: t(\n \"neetoMessageTemplate.api.helpPopovers.customHeaders.description\"\n ),\n helpLinkProps: {\n label: t(\"neetoMessageTemplate.template.viewHelpArticle\"),\n \"data-cy\": \"api-templates-custom-headers-help-link\",\n },\n position: \"top\",\n },\n body: {\n description: t(\"neetoMessageTemplate.api.helpPopovers.body.description\"),\n helpLinkProps: {\n label: t(\"neetoMessageTemplate.template.viewHelpArticle\"),\n \"data-cy\": \"api-templates-body-help-link\",\n },\n position: \"top\",\n },\n};\n\nexport const JSON_LANGUAGE = \"json\";\n\nexport const EDITOR_CONFIG = {\n formatOnType: true,\n formatOnPaste: true,\n automaticLayout: true,\n tabSize: 2,\n minimap: { enabled: false },\n scrollBeyondLastLine: false,\n autoIndent: \"full\",\n};\n","import { t } from \"i18next\";\nimport { isNotPresent } from \"neetocist\";\nimport * as yup from \"yup\";\n\nimport {\n CUSTOM_HEADERS_INITIAL_VALUE,\n VALID_URL_REGEX,\n} from \"components/Api/constants\";\n\nexport const TABLE_COLUMN_DATA = [\n {\n dataIndex: \"name\",\n key: \"name\",\n title: t(\"neetoMessageTemplate.template.name\"),\n },\n {\n dataIndex: \"status\",\n key: \"status\",\n title: t(\"neetoMessageTemplate.template.active\"),\n render: status =>\n status === \"active\"\n ? t(\"neetoMessageTemplate.yes\")\n : t(\"neetoMessageTemplate.no\"),\n width: \"20%\",\n },\n];\n\nexport const FILTER_COLUMNS = [\n {\n key: \"name\",\n node: \"name\",\n label: t(\"neetoMessageTemplate.template.name\"),\n type: \"text\",\n },\n {\n key: \"status\",\n node: \"status\",\n label: t(\"neetoMessageTemplate.template.active\"),\n type: \"single_option\",\n values: [\n { label: t(\"neetoMessageTemplate.yes\"), value: \"active\" },\n { label: t(\"neetoMessageTemplate.no\"), value: \"inactive\" },\n ],\n },\n];\n\nexport const API_TEMPLATE_INITIAL_VALUES = {\n name: \"\",\n endpoint: \"\",\n enableCustomHeaders: false,\n customHeaders: [CUSTOM_HEADERS_INITIAL_VALUE],\n body: \"{}\",\n};\n\nexport const SAMPLE_URL = \"https://example.com\";\n\nexport const API_TEMPLATE_FORM_VALIDATION_SCHEMA = yup.object({\n name: yup\n .string()\n .trim()\n .required(\n t(\"neetoMessageTemplate.validations.requiredEntity\", {\n entity: t(\"neetoMessageTemplate.template.name\"),\n })\n ),\n endpoint: yup\n .string()\n .trim()\n .required(\n t(\"neetoMessageTemplate.validations.requiredEntity\", {\n entity: t(\"neetoMessageTemplate.api.endpoint\"),\n })\n )\n .matches(\n VALID_URL_REGEX,\n t(\"neetoMessageTemplate.api.validation.validEndpoint\")\n ),\n body: yup\n .string()\n .trim()\n .required(\n t(\"neetoMessageTemplate.validations.requiredEntity\", {\n entity: t(\"neetoMessageTemplate.template.body\"),\n })\n )\n .test(\"is-valid-json-and-not-empty\", (value, context) => {\n if (!value) return true;\n\n try {\n const parsedValue = JSON.parse(value);\n\n if (isNotPresent(parsedValue)) {\n return context.createError({\n message: t(\"neetoMessageTemplate.validations.requiredEntity\", {\n entity: t(\"neetoMessageTemplate.template.body\"),\n }),\n });\n }\n\n return true;\n } catch {\n return context.createError({\n message: t(\"neetoMessageTemplate.api.validation.invalidJsonBody\"),\n });\n }\n }),\n});\n\nexport const TEMPLATE_STATUS = { ACTIVE: \"active\", INACTIVE: \"inactive\" };\n","import {\n isEmpty,\n reject,\n whereAny,\n map,\n mergeDeepLeft,\n omit,\n path,\n unless,\n} from \"ramda\";\n\nimport { API_TEMPLATES_HELP_POPOVER_PROPS } from \"./constants\";\n\nconst sanitizeHelpPopoverProps = map(\n unless(path([\"helpLinkProps\", \"href\"]), omit([\"helpLinkProps\"]))\n);\n\nexport const buildHelpPopoverProps = popoverProps => {\n const combinedProps = mergeDeepLeft(\n popoverProps,\n API_TEMPLATES_HELP_POPOVER_PROPS\n );\n\n return sanitizeHelpPopoverProps(combinedProps);\n};\n\nexport const rejectEmptyKeyValuePairs = reject(\n whereAny({ key: isEmpty, value: isEmpty })\n);\n","import { isNotEmpty } from \"neetocist\";\nimport { whereAny } from \"ramda\";\n\nimport { CUSTOM_HEADERS_INITIAL_VALUE } from \"components/Api/constants\";\n\nexport const removeOption = ({ arrayHelpers, index, data }) => {\n if (data.length === 1) {\n arrayHelpers.remove(index);\n arrayHelpers.push(CUSTOM_HEADERS_INITIAL_VALUE);\n\n return;\n }\n\n arrayHelpers.remove(index);\n};\n\nexport const addOption = arrayHelpers =>\n arrayHelpers.push(CUSTOM_HEADERS_INITIAL_VALUE);\n\nexport const isKeyOrValueNotEmpty = whereAny({\n key: isNotEmpty,\n value: isNotEmpty,\n});\n","import { FieldArray } from \"formik\";\nimport { withT } from \"neetocommons/react-utils\";\nimport { Delete } from \"neetoicons\";\nimport { Button } from \"neetoui\";\nimport { Input } from \"neetoui/formik\";\n\nimport { CUSTOM_HEADERS_INITIAL_VALUE } from \"components/Api/constants\";\n\nimport { addOption, isKeyOrValueNotEmpty, removeOption } from \"./utils\";\n\nconst KeyValuePairs = withT(({ t, name, entity }) => (\n <FieldArray {...{ name }}>\n {arrayHelpers => {\n const data = arrayHelpers.form.values[name] || [\n CUSTOM_HEADERS_INITIAL_VALUE,\n ];\n\n const showDeleteButton = data.length > 1 || isKeyOrValueNotEmpty(data[0]);\n\n return (\n <div className=\"flex flex-col space-y-2\">\n {data.map((_, index) => (\n <div className=\"flex h-8 space-x-3\" key={index}>\n <Input\n className=\"w-1/3\"\n data-cy={`key-input-${index}`}\n name={`${name}.${index}.key`}\n placeholder={t(\"neetoMessageTemplate.api.key\")}\n />\n <Input\n className=\"w-2/3\"\n data-cy={`value-input-${index}`}\n name={`${name}.${index}.value`}\n placeholder={t(\"neetoMessageTemplate.api.value\")}\n suffix={\n showDeleteButton && (\n <Button\n data-cy={`delete-key-value-pair-${index}`}\n icon={Delete}\n size=\"small\"\n style=\"text\"\n onClick={() =>\n removeOption({ arrayHelpers, index, data })\n }\n />\n )\n }\n />\n </div>\n ))}\n <Button\n className=\"w-30 ml-auto\"\n data-cy=\"add-key-value-pair-button\"\n label={t(\"neetoMessageTemplate.api.addEntity\", { entity })}\n style=\"secondary\"\n onClick={() => addOption(arrayHelpers)}\n />\n </div>\n );\n }}\n </FieldArray>\n));\n\nexport default KeyValuePairs;\n","import { useEffect } from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport { hyphenate } from \"neetocist\";\nimport { Switch } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport KeyValuePairs from \"components/commons/KeyValuePairs\";\n\nimport { CUSTOM_HEADERS_INITIAL_VALUE } from \"./constants\";\n\nconst CustomHeaders = ({ helpPopoverProps = {} }) => {\n const {\n values: { enableCustomHeaders },\n setFieldValue,\n } = useFormikContext();\n\n const { t } = useTranslation();\n\n useEffect(\n () => () => {\n setFieldValue(\"enableCustomHeaders\", false);\n setFieldValue(\"customHeaders\", [CUSTOM_HEADERS_INITIAL_VALUE]);\n },\n []\n );\n\n const handleChange = ({ target: { checked } }) => {\n if (!checked) {\n setFieldValue(\"customHeaders\", [CUSTOM_HEADERS_INITIAL_VALUE]);\n }\n\n setFieldValue(\"enableCustomHeaders\", checked);\n };\n\n const label = t(\"neetoMessageTemplate.api.includeHeaders\");\n\n return (\n <div className=\"flex flex-col space-y-4\">\n <Switch\n {...{ label }}\n data-cy={`neeto-message-template-${hyphenate(label)}-switch`}\n name=\"enableCustomHeaders\"\n labelProps={{\n className: \"ml-2\",\n helpIconProps: { popoverProps: helpPopoverProps },\n }}\n onChange={handleChange}\n />\n {enableCustomHeaders && (\n <KeyValuePairs\n entity={t(\"neetoMessageTemplate.api.headers\")}\n name=\"customHeaders\"\n />\n )}\n </div>\n );\n};\n\nexport default CustomHeaders;\n","import { useEffect, useRef } from \"react\";\n\nimport Editor from \"@monaco-editor/react\";\nimport { useField } from \"formik\";\nimport { Help } from \"neetoicons\";\nimport DynamicVariables from \"neetomolecules/DynamicVariables\";\nimport { Label } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\n// eslint-disable-next-line import/extensions\nimport \"stylesheets/components/_json_editor.scss\";\n\nimport { EDITOR_CONFIG, JSON_LANGUAGE } from \"./constants\";\n\nconst JsonEditor = ({\n name,\n helpPopoverProps = {},\n initialValue = \"{}\",\n templateVariables = [],\n}) => {\n const editorRef = useRef(null);\n const completionProviderRef = useRef(null);\n\n const [_, { touched, error }, { setValue, setTouched }] = useField(name);\n\n const { t } = useTranslation();\n\n const handleEditorDidMount = (editor, monaco) => {\n editorRef.current = editor;\n\n completionProviderRef.current =\n monaco.languages.registerCompletionItemProvider(JSON_LANGUAGE, {\n triggerCharacters: [\"{\"],\n provideCompletionItems: (model, position) => {\n const lineContent = model.getLineContent(position.lineNumber);\n const beforeCursor = lineContent.slice(0, position.column - 1);\n\n if (!beforeCursor.endsWith('\"{')) {\n return { suggestions: [] };\n }\n\n const suggestions = templateVariables.map(({ key, label }) => ({\n label,\n kind: monaco.languages.CompletionItemKind.Variable,\n insertText: `{${key}}}`,\n insertTextRules:\n monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,\n detail: t(\"neetoMessageTemplate.api.insertPlaceholder\", {\n label,\n }),\n }));\n\n return { suggestions };\n },\n });\n };\n\n const insertVariable = ({ key }) => {\n const editor = editorRef.current;\n if (!editor) return;\n\n const selection = editor.getSelection();\n const range = {\n startLineNumber: selection.startLineNumber,\n startColumn: selection.startColumn,\n endLineNumber: selection.endLineNumber,\n endColumn: selection.endColumn,\n };\n const text = `\"{{${key}}}\"`;\n\n editor.executeEdits(\"\", [{ range, text, forceMoveMarkers: true }]);\n\n const position = editor.getPosition();\n editor.setPosition({\n lineNumber: position.lineNumber,\n column: position.column + text.length,\n });\n\n editor.focus();\n };\n\n const handleChange = value => {\n setTouched(true);\n setValue(value);\n };\n\n useEffect(() => {\n const editor = editorRef.current;\n if (!editor) return;\n\n const currentValue = editor.getValue();\n if (currentValue !== initialValue) {\n editor.setValue(initialValue);\n }\n }, [initialValue]);\n\n useEffect(\n () => () => {\n completionProviderRef.current?.dispose();\n completionProviderRef.current = null;\n },\n []\n );\n\n return (\n <div className=\"space-y-2\">\n <Label\n required\n data-cy=\"message-template-body\"\n helpIconProps={{ icon: Help, popoverProps: helpPopoverProps }}\n >\n {t(\"neetoMessageTemplate.template.body\")}\n </Label>\n <div className=\"neeto-message-template-json-editor__wrapper\">\n <div className=\"neeto-message-template-json-editor__dynamic-variables\">\n <DynamicVariables\n variables={templateVariables}\n onVariableClick={insertVariable}\n />\n </div>\n <Editor\n className=\"neeto-message-template-json-editor__editor\"\n defaultLanguage={JSON_LANGUAGE}\n defaultValue={initialValue}\n height=\"100%\"\n options={EDITOR_CONFIG}\n theme=\"vs-dark\"\n onChange={handleChange}\n onMount={handleEditorDidMount}\n />\n {touched && error && (\n <div className=\"neeto-ui-input__error\">{error}</div>\n )}\n </div>\n </div>\n );\n};\n\nexport default JsonEditor;\n"],"names":["VALID_URL_REGEX","CUSTOM_HEADERS_INITIAL_VALUE","key","value","API_TEMPLATE_TYPE","API_TEMPLATES_HELP_POPOVER_PROPS","apiTemplates","description","t","helpLinkProps","popoverProps","position","sendToApi","customHeaders","label","body","JSON_LANGUAGE","EDITOR_CONFIG","formatOnType","formatOnPaste","automaticLayout","tabSize","minimap","enabled","scrollBeyondLastLine","autoIndent","dataIndex","title","render","status","width","FILTER_COLUMNS","node","type","values","API_TEMPLATE_INITIAL_VALUES","name","endpoint","enableCustomHeaders","SAMPLE_URL","API_TEMPLATE_FORM_VALIDATION_SCHEMA","yup","object","string","trim","required","entity","matches","test","context","parsedValue","JSON","parse","isNotPresent","createError","message","_unused","TEMPLATE_STATUS","ACTIVE","INACTIVE","sanitizeHelpPopoverProps","map","unless","path","omit","buildHelpPopoverProps","combinedProps","mergeDeepLeft","rejectEmptyKeyValuePairs","reject","whereAny","isEmpty","removeOption","_ref","arrayHelpers","index","data","length","remove","push","addOption","isKeyOrValueNotEmpty","isNotEmpty","KeyValuePairs","withT","_jsx","FieldArray","children","form","showDeleteButton","_jsxs","className","_","Input","concat","placeholder","suffix","Button","icon","Delete","size","style","onClick","CustomHeaders","_ref$helpPopoverProps","helpPopoverProps","_useFormikContext","useFormikContext","setFieldValue","_useTranslation","useTranslation","useEffect","handleChange","_ref2","checked","target","Switch","hyphenate","labelProps","helpIconProps","onChange","JsonEditor","_ref$initialValue","initialValue","_ref$templateVariable","templateVariables","editorRef","useRef","completionProviderRef","_useField","useField","_useField2","_slicedToArray","_useField2$","touched","error","_useField2$2","setValue","setTouched","handleEditorDidMount","editor","monaco","current","languages","registerCompletionItemProvider","triggerCharacters","provideCompletionItems","model","lineContent","getLineContent","lineNumber","beforeCursor","slice","column","endsWith","suggestions","kind","CompletionItemKind","Variable","insertText","insertTextRules","CompletionItemInsertTextRule","InsertAsSnippet","detail","insertVariable","_ref3","selection","getSelection","range","startLineNumber","startColumn","endLineNumber","endColumn","text","executeEdits","forceMoveMarkers","getPosition","setPosition","focus","currentValue","getValue","_completionProviderRe","dispose","Label","Help","DynamicVariables","variables","onVariableClick","Editor","defaultLanguage","defaultValue","height","options","theme","onMount"],"mappings":"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"}
@@ -81,6 +81,18 @@ var API_TEMPLATES_HELP_POPOVER_PROPS = {
81
81
  position: "top"
82
82
  }
83
83
  };
84
+ var JSON_LANGUAGE = "json";
85
+ var EDITOR_CONFIG = {
86
+ formatOnType: true,
87
+ formatOnPaste: true,
88
+ automaticLayout: true,
89
+ tabSize: 2,
90
+ minimap: {
91
+ enabled: false
92
+ },
93
+ scrollBeyondLastLine: false,
94
+ autoIndent: "full"
95
+ };
84
96
 
85
97
  [{
86
98
  dataIndex: "name",
@@ -130,16 +142,22 @@ var API_TEMPLATE_FORM_VALIDATION_SCHEMA = yup__namespace.object({
130
142
  })).matches(VALID_URL_REGEX, i18next.t("neetoMessageTemplate.api.validation.validEndpoint")),
131
143
  body: yup__namespace.string().trim().required(i18next.t("neetoMessageTemplate.validations.requiredEntity", {
132
144
  entity: i18next.t("neetoMessageTemplate.template.body")
133
- })).test("is-not-empty", i18next.t("neetoMessageTemplate.validations.requiredEntity", {
134
- entity: i18next.t("neetoMessageTemplate.template.body")
135
- }), function (value) {
136
- return neetoCist.isPresent(value);
137
- }).test("is-valid-json", i18next.t("neetoMessageTemplate.api.validation.invalidJsonBody"), function (value) {
145
+ })).test("is-valid-json-and-not-empty", function (value, context) {
146
+ if (!value) return true;
138
147
  try {
139
- JSON.parse(value);
148
+ var parsedValue = JSON.parse(value);
149
+ if (neetoCist.isNotPresent(parsedValue)) {
150
+ return context.createError({
151
+ message: i18next.t("neetoMessageTemplate.validations.requiredEntity", {
152
+ entity: i18next.t("neetoMessageTemplate.template.body")
153
+ })
154
+ });
155
+ }
140
156
  return true;
141
157
  } catch (_unused) {
142
- return false;
158
+ return context.createError({
159
+ message: i18next.t("neetoMessageTemplate.api.validation.invalidJsonBody")
160
+ });
143
161
  }
144
162
  })
145
163
  });
@@ -274,7 +292,7 @@ var CustomHeaders = function CustomHeaders(_ref) {
274
292
  });
275
293
  };
276
294
 
277
- var css = ".neeto-message-template-json-editor__wrapper{height:40vh;position:relative}.neeto-message-template-json-editor__editor{height:100%}.neeto-message-template-json-editor__dynamic-variables{position:absolute;right:1rem;top:1rem;z-index:10}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC9qYXZhc2NyaXB0L3N0eWxlc2hlZXRzL2NvbXBvbmVudHMvX2pzb25fZWRpdG9yLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0UsNkNBRUUsV0FBQSxDQURBLGlCQUNKLENBR0UsNENBQ0UsV0FESixDQUlFLHVEQUNFLGlCQUFBLENBRUEsVUFBQSxDQURBLFFBQUEsQ0FFQSxVQUZKIiwic291cmNlc0NvbnRlbnQiOlsiLm5lZXRvLW1lc3NhZ2UtdGVtcGxhdGUtanNvbi1lZGl0b3Ige1xuICAmX193cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiA0MHZoO1xuICB9XG5cbiAgJl9fZWRpdG9yIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cblxuICAmX19keW5hbWljLXZhcmlhYmxlcyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMXJlbTtcbiAgICByaWdodDogMXJlbTtcbiAgICB6LWluZGV4OiAxMDtcbiAgfVxufVxuIl19 */";
295
+ var css = ".neeto-message-template-json-editor__wrapper{height:40vh;padding-bottom:.75rem;position:relative}.neeto-message-template-json-editor__editor{height:100%}.neeto-message-template-json-editor__dynamic-variables{position:absolute;right:1rem;top:1rem;z-index:10}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC9qYXZhc2NyaXB0L3N0eWxlc2hlZXRzL2NvbXBvbmVudHMvX2pzb25fZWRpdG9yLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0UsNkNBRUUsV0FBQSxDQUNBLHFCQUFBLENBRkEsaUJBRUosQ0FHRSw0Q0FDRSxXQURKLENBSUUsdURBQ0UsaUJBQUEsQ0FFQSxVQUFBLENBREEsUUFBQSxDQUVBLFVBRkoiLCJzb3VyY2VzQ29udGVudCI6WyIubmVldG8tbWVzc2FnZS10ZW1wbGF0ZS1qc29uLWVkaXRvciB7XG4gICZfX3dyYXBwZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IDQwdmg7XG4gICAgcGFkZGluZy1ib3R0b206IDAuNzVyZW07XG4gIH1cblxuICAmX19lZGl0b3Ige1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxuXG4gICZfX2R5bmFtaWMtdmFyaWFibGVzIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxcmVtO1xuICAgIHJpZ2h0OiAxcmVtO1xuICAgIHotaW5kZXg6IDEwO1xuICB9XG59XG4iXX0= */";
278
296
  injectCss.n(css,{});
279
297
 
280
298
  var JsonEditor = function JsonEditor(_ref) {
@@ -282,7 +300,7 @@ var JsonEditor = function JsonEditor(_ref) {
282
300
  _ref$helpPopoverProps = _ref.helpPopoverProps,
283
301
  helpPopoverProps = _ref$helpPopoverProps === void 0 ? {} : _ref$helpPopoverProps,
284
302
  _ref$initialValue = _ref.initialValue,
285
- initialValue = _ref$initialValue === void 0 ? {} : _ref$initialValue,
303
+ initialValue = _ref$initialValue === void 0 ? "{}" : _ref$initialValue,
286
304
  _ref$templateVariable = _ref.templateVariables,
287
305
  templateVariables = _ref$templateVariable === void 0 ? [] : _ref$templateVariable;
288
306
  var editorRef = react.useRef(null);
@@ -300,7 +318,7 @@ var JsonEditor = function JsonEditor(_ref) {
300
318
  t = _useTranslation.t;
301
319
  var handleEditorDidMount = function handleEditorDidMount(editor, monaco) {
302
320
  editorRef.current = editor;
303
- completionProviderRef.current = monaco.languages.registerCompletionItemProvider("json", {
321
+ completionProviderRef.current = monaco.languages.registerCompletionItemProvider(JSON_LANGUAGE, {
304
322
  triggerCharacters: ["{"],
305
323
  provideCompletionItems: function provideCompletionItems(model, position) {
306
324
  var lineContent = model.getLineContent(position.lineNumber);
@@ -373,7 +391,7 @@ var JsonEditor = function JsonEditor(_ref) {
373
391
  };
374
392
  }, []);
375
393
  return /*#__PURE__*/jsxRuntime.jsxs("div", {
376
- className: "space-y-2 mb-2",
394
+ className: "space-y-2",
377
395
  children: [/*#__PURE__*/jsxRuntime.jsx(Label, {
378
396
  required: true,
379
397
  "data-cy": "message-template-body",
@@ -392,30 +410,16 @@ var JsonEditor = function JsonEditor(_ref) {
392
410
  })
393
411
  }), /*#__PURE__*/jsxRuntime.jsx(Editor, {
394
412
  className: "neeto-message-template-json-editor__editor",
395
- defaultLanguage: "json",
413
+ defaultLanguage: JSON_LANGUAGE,
396
414
  defaultValue: initialValue,
397
415
  height: "100%",
416
+ options: EDITOR_CONFIG,
398
417
  theme: "vs-dark",
399
- options: {
400
- formatOnType: true,
401
- formatOnPaste: true,
402
- automaticLayout: true,
403
- tabSize: 2,
404
- minimap: {
405
- enabled: false
406
- },
407
- scrollBeyondLastLine: false,
408
- autoIndent: "full"
409
- },
410
418
  onChange: handleChange,
411
419
  onMount: handleEditorDidMount
412
- }), touched && error && /*#__PURE__*/jsxRuntime.jsx("p", {
413
- className: "neeto-form-input__error-text",
414
- "data-cy": "api-template-body-error-message",
415
- children: /*#__PURE__*/jsxRuntime.jsx("span", {
416
- className: "neeto-ui-input__error",
417
- children: error
418
- })
420
+ }), touched && error && /*#__PURE__*/jsxRuntime.jsx("div", {
421
+ className: "neeto-ui-input__error",
422
+ children: error
419
423
  })]
420
424
  })]
421
425
  });
@@ -433,4 +437,4 @@ exports.TEMPLATE_STATUS = TEMPLATE_STATUS;
433
437
  exports.VALID_URL_REGEX = VALID_URL_REGEX;
434
438
  exports.buildHelpPopoverProps = buildHelpPopoverProps;
435
439
  exports.rejectEmptyKeyValuePairs = rejectEmptyKeyValuePairs;
436
- //# sourceMappingURL=JsonEditor-Cz_76w4s.js.map
440
+ //# sourceMappingURL=JsonEditor-CDXr0EnM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JsonEditor-CDXr0EnM.js","sources":["../app/javascript/src/components/Api/constants.js","../app/javascript/src/components/Api/ApiTemplates/constants.js","../app/javascript/src/components/Api/utils.js","../app/javascript/src/components/commons/KeyValuePairs/utils.js","../app/javascript/src/components/commons/KeyValuePairs/index.jsx","../app/javascript/src/components/Api/CustomHeaders.jsx","../app/javascript/src/components/Api/JsonEditor.jsx"],"sourcesContent":["import { t } from \"i18next\";\n\nexport const VALID_URL_REGEX =\n /^(https?):\\/\\/([a-zA-Z0-9-]+\\.){1,}[a-zA-Z]{2,}\\/?[^\\s]*$/;\n\nexport const CUSTOM_HEADERS_INITIAL_VALUE = { key: \"\", value: \"\" };\n\nexport const API_TEMPLATE_TYPE = \"api_template\";\n\nexport const API_TEMPLATES_HELP_POPOVER_PROPS = {\n apiTemplates: {\n description: t(\n \"neetoMessageTemplate.api.helpPopovers.apiTemplates.description\"\n ),\n helpLinkProps: { \"data-cy\": \"api-templates-header-help-link\" },\n popoverProps: { position: \"top\" },\n },\n sendToApi: {\n description: t(\n \"neetoMessageTemplate.api.helpPopovers.sendToApi.description\"\n ),\n helpLinkProps: { \"data-cy\": \"send-to-api-action-help-link\" },\n popoverProps: { position: \"top\" },\n },\n customHeaders: {\n description: t(\n \"neetoMessageTemplate.api.helpPopovers.customHeaders.description\"\n ),\n helpLinkProps: {\n label: t(\"neetoMessageTemplate.template.viewHelpArticle\"),\n \"data-cy\": \"api-templates-custom-headers-help-link\",\n },\n position: \"top\",\n },\n body: {\n description: t(\"neetoMessageTemplate.api.helpPopovers.body.description\"),\n helpLinkProps: {\n label: t(\"neetoMessageTemplate.template.viewHelpArticle\"),\n \"data-cy\": \"api-templates-body-help-link\",\n },\n position: \"top\",\n },\n};\n\nexport const JSON_LANGUAGE = \"json\";\n\nexport const EDITOR_CONFIG = {\n formatOnType: true,\n formatOnPaste: true,\n automaticLayout: true,\n tabSize: 2,\n minimap: { enabled: false },\n scrollBeyondLastLine: false,\n autoIndent: \"full\",\n};\n","import { t } from \"i18next\";\nimport { isNotPresent } from \"neetocist\";\nimport * as yup from \"yup\";\n\nimport {\n CUSTOM_HEADERS_INITIAL_VALUE,\n VALID_URL_REGEX,\n} from \"components/Api/constants\";\n\nexport const TABLE_COLUMN_DATA = [\n {\n dataIndex: \"name\",\n key: \"name\",\n title: t(\"neetoMessageTemplate.template.name\"),\n },\n {\n dataIndex: \"status\",\n key: \"status\",\n title: t(\"neetoMessageTemplate.template.active\"),\n render: status =>\n status === \"active\"\n ? t(\"neetoMessageTemplate.yes\")\n : t(\"neetoMessageTemplate.no\"),\n width: \"20%\",\n },\n];\n\nexport const FILTER_COLUMNS = [\n {\n key: \"name\",\n node: \"name\",\n label: t(\"neetoMessageTemplate.template.name\"),\n type: \"text\",\n },\n {\n key: \"status\",\n node: \"status\",\n label: t(\"neetoMessageTemplate.template.active\"),\n type: \"single_option\",\n values: [\n { label: t(\"neetoMessageTemplate.yes\"), value: \"active\" },\n { label: t(\"neetoMessageTemplate.no\"), value: \"inactive\" },\n ],\n },\n];\n\nexport const API_TEMPLATE_INITIAL_VALUES = {\n name: \"\",\n endpoint: \"\",\n enableCustomHeaders: false,\n customHeaders: [CUSTOM_HEADERS_INITIAL_VALUE],\n body: \"{}\",\n};\n\nexport const SAMPLE_URL = \"https://example.com\";\n\nexport const API_TEMPLATE_FORM_VALIDATION_SCHEMA = yup.object({\n name: yup\n .string()\n .trim()\n .required(\n t(\"neetoMessageTemplate.validations.requiredEntity\", {\n entity: t(\"neetoMessageTemplate.template.name\"),\n })\n ),\n endpoint: yup\n .string()\n .trim()\n .required(\n t(\"neetoMessageTemplate.validations.requiredEntity\", {\n entity: t(\"neetoMessageTemplate.api.endpoint\"),\n })\n )\n .matches(\n VALID_URL_REGEX,\n t(\"neetoMessageTemplate.api.validation.validEndpoint\")\n ),\n body: yup\n .string()\n .trim()\n .required(\n t(\"neetoMessageTemplate.validations.requiredEntity\", {\n entity: t(\"neetoMessageTemplate.template.body\"),\n })\n )\n .test(\"is-valid-json-and-not-empty\", (value, context) => {\n if (!value) return true;\n\n try {\n const parsedValue = JSON.parse(value);\n\n if (isNotPresent(parsedValue)) {\n return context.createError({\n message: t(\"neetoMessageTemplate.validations.requiredEntity\", {\n entity: t(\"neetoMessageTemplate.template.body\"),\n }),\n });\n }\n\n return true;\n } catch {\n return context.createError({\n message: t(\"neetoMessageTemplate.api.validation.invalidJsonBody\"),\n });\n }\n }),\n});\n\nexport const TEMPLATE_STATUS = { ACTIVE: \"active\", INACTIVE: \"inactive\" };\n","import {\n isEmpty,\n reject,\n whereAny,\n map,\n mergeDeepLeft,\n omit,\n path,\n unless,\n} from \"ramda\";\n\nimport { API_TEMPLATES_HELP_POPOVER_PROPS } from \"./constants\";\n\nconst sanitizeHelpPopoverProps = map(\n unless(path([\"helpLinkProps\", \"href\"]), omit([\"helpLinkProps\"]))\n);\n\nexport const buildHelpPopoverProps = popoverProps => {\n const combinedProps = mergeDeepLeft(\n popoverProps,\n API_TEMPLATES_HELP_POPOVER_PROPS\n );\n\n return sanitizeHelpPopoverProps(combinedProps);\n};\n\nexport const rejectEmptyKeyValuePairs = reject(\n whereAny({ key: isEmpty, value: isEmpty })\n);\n","import { isNotEmpty } from \"neetocist\";\nimport { whereAny } from \"ramda\";\n\nimport { CUSTOM_HEADERS_INITIAL_VALUE } from \"components/Api/constants\";\n\nexport const removeOption = ({ arrayHelpers, index, data }) => {\n if (data.length === 1) {\n arrayHelpers.remove(index);\n arrayHelpers.push(CUSTOM_HEADERS_INITIAL_VALUE);\n\n return;\n }\n\n arrayHelpers.remove(index);\n};\n\nexport const addOption = arrayHelpers =>\n arrayHelpers.push(CUSTOM_HEADERS_INITIAL_VALUE);\n\nexport const isKeyOrValueNotEmpty = whereAny({\n key: isNotEmpty,\n value: isNotEmpty,\n});\n","import { FieldArray } from \"formik\";\nimport { withT } from \"neetocommons/react-utils\";\nimport { Delete } from \"neetoicons\";\nimport { Button } from \"neetoui\";\nimport { Input } from \"neetoui/formik\";\n\nimport { CUSTOM_HEADERS_INITIAL_VALUE } from \"components/Api/constants\";\n\nimport { addOption, isKeyOrValueNotEmpty, removeOption } from \"./utils\";\n\nconst KeyValuePairs = withT(({ t, name, entity }) => (\n <FieldArray {...{ name }}>\n {arrayHelpers => {\n const data = arrayHelpers.form.values[name] || [\n CUSTOM_HEADERS_INITIAL_VALUE,\n ];\n\n const showDeleteButton = data.length > 1 || isKeyOrValueNotEmpty(data[0]);\n\n return (\n <div className=\"flex flex-col space-y-2\">\n {data.map((_, index) => (\n <div className=\"flex h-8 space-x-3\" key={index}>\n <Input\n className=\"w-1/3\"\n data-cy={`key-input-${index}`}\n name={`${name}.${index}.key`}\n placeholder={t(\"neetoMessageTemplate.api.key\")}\n />\n <Input\n className=\"w-2/3\"\n data-cy={`value-input-${index}`}\n name={`${name}.${index}.value`}\n placeholder={t(\"neetoMessageTemplate.api.value\")}\n suffix={\n showDeleteButton && (\n <Button\n data-cy={`delete-key-value-pair-${index}`}\n icon={Delete}\n size=\"small\"\n style=\"text\"\n onClick={() =>\n removeOption({ arrayHelpers, index, data })\n }\n />\n )\n }\n />\n </div>\n ))}\n <Button\n className=\"w-30 ml-auto\"\n data-cy=\"add-key-value-pair-button\"\n label={t(\"neetoMessageTemplate.api.addEntity\", { entity })}\n style=\"secondary\"\n onClick={() => addOption(arrayHelpers)}\n />\n </div>\n );\n }}\n </FieldArray>\n));\n\nexport default KeyValuePairs;\n","import { useEffect } from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport { hyphenate } from \"neetocist\";\nimport { Switch } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport KeyValuePairs from \"components/commons/KeyValuePairs\";\n\nimport { CUSTOM_HEADERS_INITIAL_VALUE } from \"./constants\";\n\nconst CustomHeaders = ({ helpPopoverProps = {} }) => {\n const {\n values: { enableCustomHeaders },\n setFieldValue,\n } = useFormikContext();\n\n const { t } = useTranslation();\n\n useEffect(\n () => () => {\n setFieldValue(\"enableCustomHeaders\", false);\n setFieldValue(\"customHeaders\", [CUSTOM_HEADERS_INITIAL_VALUE]);\n },\n []\n );\n\n const handleChange = ({ target: { checked } }) => {\n if (!checked) {\n setFieldValue(\"customHeaders\", [CUSTOM_HEADERS_INITIAL_VALUE]);\n }\n\n setFieldValue(\"enableCustomHeaders\", checked);\n };\n\n const label = t(\"neetoMessageTemplate.api.includeHeaders\");\n\n return (\n <div className=\"flex flex-col space-y-4\">\n <Switch\n {...{ label }}\n data-cy={`neeto-message-template-${hyphenate(label)}-switch`}\n name=\"enableCustomHeaders\"\n labelProps={{\n className: \"ml-2\",\n helpIconProps: { popoverProps: helpPopoverProps },\n }}\n onChange={handleChange}\n />\n {enableCustomHeaders && (\n <KeyValuePairs\n entity={t(\"neetoMessageTemplate.api.headers\")}\n name=\"customHeaders\"\n />\n )}\n </div>\n );\n};\n\nexport default CustomHeaders;\n","import { useEffect, useRef } from \"react\";\n\nimport Editor from \"@monaco-editor/react\";\nimport { useField } from \"formik\";\nimport { Help } from \"neetoicons\";\nimport DynamicVariables from \"neetomolecules/DynamicVariables\";\nimport { Label } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\n// eslint-disable-next-line import/extensions\nimport \"stylesheets/components/_json_editor.scss\";\n\nimport { EDITOR_CONFIG, JSON_LANGUAGE } from \"./constants\";\n\nconst JsonEditor = ({\n name,\n helpPopoverProps = {},\n initialValue = \"{}\",\n templateVariables = [],\n}) => {\n const editorRef = useRef(null);\n const completionProviderRef = useRef(null);\n\n const [_, { touched, error }, { setValue, setTouched }] = useField(name);\n\n const { t } = useTranslation();\n\n const handleEditorDidMount = (editor, monaco) => {\n editorRef.current = editor;\n\n completionProviderRef.current =\n monaco.languages.registerCompletionItemProvider(JSON_LANGUAGE, {\n triggerCharacters: [\"{\"],\n provideCompletionItems: (model, position) => {\n const lineContent = model.getLineContent(position.lineNumber);\n const beforeCursor = lineContent.slice(0, position.column - 1);\n\n if (!beforeCursor.endsWith('\"{')) {\n return { suggestions: [] };\n }\n\n const suggestions = templateVariables.map(({ key, label }) => ({\n label,\n kind: monaco.languages.CompletionItemKind.Variable,\n insertText: `{${key}}}`,\n insertTextRules:\n monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,\n detail: t(\"neetoMessageTemplate.api.insertPlaceholder\", {\n label,\n }),\n }));\n\n return { suggestions };\n },\n });\n };\n\n const insertVariable = ({ key }) => {\n const editor = editorRef.current;\n if (!editor) return;\n\n const selection = editor.getSelection();\n const range = {\n startLineNumber: selection.startLineNumber,\n startColumn: selection.startColumn,\n endLineNumber: selection.endLineNumber,\n endColumn: selection.endColumn,\n };\n const text = `\"{{${key}}}\"`;\n\n editor.executeEdits(\"\", [{ range, text, forceMoveMarkers: true }]);\n\n const position = editor.getPosition();\n editor.setPosition({\n lineNumber: position.lineNumber,\n column: position.column + text.length,\n });\n\n editor.focus();\n };\n\n const handleChange = value => {\n setTouched(true);\n setValue(value);\n };\n\n useEffect(() => {\n const editor = editorRef.current;\n if (!editor) return;\n\n const currentValue = editor.getValue();\n if (currentValue !== initialValue) {\n editor.setValue(initialValue);\n }\n }, [initialValue]);\n\n useEffect(\n () => () => {\n completionProviderRef.current?.dispose();\n completionProviderRef.current = null;\n },\n []\n );\n\n return (\n <div className=\"space-y-2\">\n <Label\n required\n data-cy=\"message-template-body\"\n helpIconProps={{ icon: Help, popoverProps: helpPopoverProps }}\n >\n {t(\"neetoMessageTemplate.template.body\")}\n </Label>\n <div className=\"neeto-message-template-json-editor__wrapper\">\n <div className=\"neeto-message-template-json-editor__dynamic-variables\">\n <DynamicVariables\n variables={templateVariables}\n onVariableClick={insertVariable}\n />\n </div>\n <Editor\n className=\"neeto-message-template-json-editor__editor\"\n defaultLanguage={JSON_LANGUAGE}\n defaultValue={initialValue}\n height=\"100%\"\n options={EDITOR_CONFIG}\n theme=\"vs-dark\"\n onChange={handleChange}\n onMount={handleEditorDidMount}\n />\n {touched && error && (\n <div className=\"neeto-ui-input__error\">{error}</div>\n )}\n </div>\n </div>\n );\n};\n\nexport default JsonEditor;\n"],"names":["VALID_URL_REGEX","CUSTOM_HEADERS_INITIAL_VALUE","key","value","API_TEMPLATE_TYPE","API_TEMPLATES_HELP_POPOVER_PROPS","apiTemplates","description","t","helpLinkProps","popoverProps","position","sendToApi","customHeaders","label","body","JSON_LANGUAGE","EDITOR_CONFIG","formatOnType","formatOnPaste","automaticLayout","tabSize","minimap","enabled","scrollBeyondLastLine","autoIndent","dataIndex","title","render","status","width","FILTER_COLUMNS","node","type","values","API_TEMPLATE_INITIAL_VALUES","name","endpoint","enableCustomHeaders","SAMPLE_URL","API_TEMPLATE_FORM_VALIDATION_SCHEMA","yup","object","string","trim","required","entity","matches","test","context","parsedValue","JSON","parse","isNotPresent","createError","message","_unused","TEMPLATE_STATUS","ACTIVE","INACTIVE","sanitizeHelpPopoverProps","map","unless","path","omit","buildHelpPopoverProps","combinedProps","mergeDeepLeft","rejectEmptyKeyValuePairs","reject","whereAny","isEmpty","removeOption","_ref","arrayHelpers","index","data","length","remove","push","addOption","isKeyOrValueNotEmpty","isNotEmpty","KeyValuePairs","withT","_jsx","FieldArray","children","form","showDeleteButton","_jsxs","className","_","Input","concat","placeholder","suffix","Button","icon","Delete","size","style","onClick","CustomHeaders","_ref$helpPopoverProps","helpPopoverProps","_useFormikContext","useFormikContext","setFieldValue","_useTranslation","useTranslation","useEffect","handleChange","_ref2","checked","target","Switch","hyphenate","labelProps","helpIconProps","onChange","JsonEditor","_ref$initialValue","initialValue","_ref$templateVariable","templateVariables","editorRef","useRef","completionProviderRef","_useField","useField","_useField2","_slicedToArray","_useField2$","touched","error","_useField2$2","setValue","setTouched","handleEditorDidMount","editor","monaco","current","languages","registerCompletionItemProvider","triggerCharacters","provideCompletionItems","model","lineContent","getLineContent","lineNumber","beforeCursor","slice","column","endsWith","suggestions","kind","CompletionItemKind","Variable","insertText","insertTextRules","CompletionItemInsertTextRule","InsertAsSnippet","detail","insertVariable","_ref3","selection","getSelection","range","startLineNumber","startColumn","endLineNumber","endColumn","text","executeEdits","forceMoveMarkers","getPosition","setPosition","focus","currentValue","getValue","_completionProviderRe","dispose","Label","Help","DynamicVariables","variables","onVariableClick","Editor","defaultLanguage","defaultValue","height","options","theme","onMount"],"mappings":"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"}
@@ -117,7 +117,8 @@ var EmailAndSms = function EmailAndSms(_ref) {
117
117
  type = _ref.type,
118
118
  handleSubmit = _ref.handleSubmit,
119
119
  isSaveAsTemplateEnabled = _ref.isSaveAsTemplateEnabled,
120
- helpPopoverProps = _ref.helpPopoverProps;
120
+ _ref$helpPopoverProps = _ref.helpPopoverProps,
121
+ helpPopoverProps = _ref$helpPopoverProps === void 0 ? {} : _ref$helpPopoverProps;
121
122
  var editorRef = useRef(null);
122
123
  var _useTranslation = useTranslation(),
123
124
  t = _useTranslation.t;
@@ -153,6 +154,7 @@ var EmailAndSms = function EmailAndSms(_ref) {
153
154
  onSubmit: handleSubmit
154
155
  },
155
156
  children: function children(_ref5) {
157
+ var _helpPopoverProps$typ, _helpPopoverProps$ema;
156
158
  var setValues = _ref5.setValues,
157
159
  values = _ref5.values;
158
160
  var handleTemplateChange = function handleTemplateChange(value) {
@@ -170,7 +172,7 @@ var EmailAndSms = function EmailAndSms(_ref) {
170
172
  isSearchable: true,
171
173
  innerRef: setFocusField,
172
174
  label: t("neetoMessageTemplate.template.title"),
173
- labelProps: helpPopoverProps["template"],
175
+ labelProps: helpPopoverProps === null || helpPopoverProps === void 0 || (_helpPopoverProps$typ = helpPopoverProps[type]) === null || _helpPopoverProps$typ === void 0 ? void 0 : _helpPopoverProps$typ.template,
174
176
  options: renameKeys({
175
177
  name: "label",
176
178
  id: "value"
@@ -180,6 +182,7 @@ var EmailAndSms = function EmailAndSms(_ref) {
180
182
  }), customFields, isEmailTemplate && /*#__PURE__*/jsx(Input, {
181
183
  required: true,
182
184
  label: t("neetoMessageTemplate.template.subject"),
185
+ labelProps: helpPopoverProps === null || helpPopoverProps === void 0 || (_helpPopoverProps$ema = helpPopoverProps.email) === null || _helpPopoverProps$ema === void 0 ? void 0 : _helpPopoverProps$ema.subject,
183
186
  name: "subject",
184
187
  ref: isTemplateSelectionEnabled ? null : setFocusField
185
188
  }), /*#__PURE__*/jsx(FormikEditor, {