@bigbinary/neeto-message-templates-frontend 1.3.7 → 1.3.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.
package/README.md CHANGED
@@ -307,6 +307,12 @@ it if needed and send the data to the specified HTTP(S) endpoint.
307
307
  - `onSubmit`: This function will be executed while submitting the form.
308
308
  - `isSubmitting`: A boolean to know the form submission status
309
309
  - `canManageTemplates` - When this is set to false, `save as template` option won't be displayed to users.
310
+ - `helpPopoverProps` - To add help popovers to various sections in the pane.
311
+ - **Pane title**: Define popover props under `sendToApi`.
312
+ - **Additional data**: Define popover props under `additionalData`.
313
+
314
+ For more details. For more details, refer to the
315
+ [HelpPopover component documentation](https://neeto-molecules.neeto.com/?path=/docs/helppopover--docs).
310
316
 
311
317
  ##### Usage
312
318
 
@@ -321,6 +327,19 @@ const App = () => {
321
327
 
322
328
  const ownerId = "ownerId";
323
329
 
330
+ const HELP_POPOVER_PROPS = {
331
+ sendToApi: {
332
+ title: "Title for send to API popover",
333
+ description: "Description for send to API popover.",
334
+ helpLinkProps: { href: SEND_TO_API_HELP_DOC_URL },
335
+ },
336
+ additionalData: {
337
+ title: "Title for additional data popover",
338
+ description: "Description for additional data popover.",
339
+ helpLinkProps: { href: ADDITIONAL_DATA_HELP_DOC_URL },
340
+ },
341
+ };
342
+
324
343
  const handleSubmit = () => {
325
344
  setIsSubmitting(true);
326
345
  // API call
@@ -333,6 +352,7 @@ const App = () => {
333
352
  isOpen={isSendToApiPaneOpen}
334
353
  onClose={() => setIsSendToApiPaneOpen(false)}
335
354
  onSubmit={handleSubmit}
355
+ helpPopoverProps={HELP_POPOVER_PROPS}
336
356
  />
337
357
  );
338
358
  };
@@ -59,7 +59,8 @@
59
59
  "emailBody": "Email body",
60
60
  "smsBody": "SMS body",
61
61
  "messageTemplatesWithCount_one": "{{count}} {{type, anyCase}} template",
62
- "messageTemplatesWithCount_other": "{{count}} {{type, anyCase}} templates"
62
+ "messageTemplatesWithCount_other": "{{count}} {{type, anyCase}} templates",
63
+ "viewHelpArticle": "View help article"
63
64
  },
64
65
  "sendMessage": {
65
66
  "email": "Send email",
@@ -86,6 +87,14 @@
86
87
  "validation": {
87
88
  "endpointPresence": "Endpoint is required",
88
89
  "validEndpoint": "Endpoint should be valid URL"
90
+ },
91
+ "helpPopovers": {
92
+ "sendToApi": {
93
+ "description": "In certain cases, you might want to send data to an external service. This allows you to send the selected data via an API request."
94
+ },
95
+ "additionalData": {
96
+ "description": "Specify additional information that needs to be included in the request body. This allows you to send custom values alongside your selected data."
97
+ }
89
98
  }
90
99
  }
91
100
  },
@@ -18,7 +18,7 @@ import Table from '@bigbinary/neetoui/Table';
18
18
  import Typography from '@bigbinary/neetoui/Typography';
19
19
  import { equals, isEmpty, pick } from 'ramda';
20
20
  import { useTranslation, Trans } from 'react-i18next';
21
- import { T as TEMPLATE_STATUS, A as API_TEMPLATE_INITIAL_VALUES, a as ADDITIONAL_DATA_INITIAL_VALUE, r as rejectEmptyKeyValuePairs, b as API_TEMPLATE_TYPE, c as API_TEMPLATE_FORM_VALIDATION_SCHEMA, S as SAMPLE_URL, K as KeyValuePairs, F as FILTER_COLUMNS } from './utils-BUob2F8X.js';
21
+ import { T as TEMPLATE_STATUS, A as API_TEMPLATE_INITIAL_VALUES, a as ADDITIONAL_DATA_INITIAL_VALUE, r as rejectEmptyKeyValuePairs, b as API_TEMPLATE_TYPE, c as API_TEMPLATE_FORM_VALIDATION_SCHEMA, S as SAMPLE_URL, K as KeyValuePairs, F as FILTER_COLUMNS } from './utils-oljkG5EG.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,6 @@
1
1
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
2
  import { isPresent, renameKeys, findBy } from '@bigbinary/neeto-cist';
3
+ import HelpPopover from '@bigbinary/neeto-molecules/HelpPopover';
3
4
  import Pane from '@bigbinary/neetoui/Pane';
4
5
  import Select from '@bigbinary/neetoui/Select';
5
6
  import Spinner from '@bigbinary/neetoui/Spinner';
@@ -7,9 +8,9 @@ import Typography from '@bigbinary/neetoui/Typography';
7
8
  import ActionBlock from '@bigbinary/neetoui/formik/ActionBlock';
8
9
  import Input from '@bigbinary/neetoui/formik/Input';
9
10
  import NeetoUIForm from '@bigbinary/neetoui/formik/Form';
10
- import { modify, equals } from 'ramda';
11
+ import { map, unless, path, omit, mergeDeepLeft, modify, equals } from 'ramda';
11
12
  import { useTranslation } from 'react-i18next';
12
- import { V as VALID_URL_REGEX, a as ADDITIONAL_DATA_INITIAL_VALUE, S as SAMPLE_URL, K as KeyValuePairs, r as rejectEmptyKeyValuePairs, b as API_TEMPLATE_TYPE } from './utils-BUob2F8X.js';
13
+ import { V as VALID_URL_REGEX, a as ADDITIONAL_DATA_INITIAL_VALUE, S as SAMPLE_URL, K as KeyValuePairs, r as rejectEmptyKeyValuePairs, b as API_TEMPLATE_TYPE } from './utils-oljkG5EG.js';
13
14
  import { S as SaveAsTemplate, a as areValuesEqual } from './utils-CdkVjz8p.js';
14
15
  import { b as useFetchTemplates } from './useTemplatesApi-D63swqeh.js';
15
16
  import { t } from 'i18next';
@@ -47,10 +48,34 @@ var SEND_TO_API_FORM_VALIDATION_SCHEMA = yup.object({
47
48
  }))
48
49
  })
49
50
  });
51
+ var SEND_TO_API_HELP_POPOVER_PROPS = {
52
+ sendToApi: {
53
+ description: t("neetoMessageTemplate.api.helpPopovers.sendToApi.description"),
54
+ helpLinkProps: {
55
+ "data-cy": "send-to-api-action-help-link"
56
+ },
57
+ popoverProps: {
58
+ position: "top"
59
+ }
60
+ },
61
+ additionalData: {
62
+ description: t("neetoMessageTemplate.api.helpPopovers.additionalData.description"),
63
+ helpLinkProps: {
64
+ label: t("neetoMessageTemplate.template.viewHelpArticle"),
65
+ "data-cy": "send-to-api-additional-data-help-link"
66
+ },
67
+ position: "top"
68
+ }
69
+ };
50
70
 
71
+ var sanitizeHelpPopoverProps = map(unless(path(["helpLinkProps", "href"]), omit(["helpLinkProps"])));
51
72
  var formatAdditionalData = function formatAdditionalData(additionalData) {
52
73
  return isPresent(additionalData) ? additionalData : [ADDITIONAL_DATA_INITIAL_VALUE];
53
74
  };
75
+ var buildHelpPopoverProps = function buildHelpPopoverProps(popoverProps) {
76
+ var combinedProps = mergeDeepLeft(popoverProps, SEND_TO_API_HELP_POPOVER_PROPS);
77
+ return sanitizeHelpPopoverProps(combinedProps);
78
+ };
54
79
 
55
80
  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; }
56
81
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).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; }
@@ -74,6 +99,8 @@ var SendToApiForm = function SendToApiForm(_ref) {
74
99
  isSubmitting = _ref.isSubmitting,
75
100
  _ref$canManageTemplat = _ref.canManageTemplates,
76
101
  canManageTemplates = _ref$canManageTemplat === void 0 ? true : _ref$canManageTemplat,
102
+ _ref$helpPopoverProps = _ref.helpPopoverProps,
103
+ helpPopoverProps = _ref$helpPopoverProps === void 0 ? {} : _ref$helpPopoverProps,
77
104
  setFocusField = _ref.paneProps.setFocusField;
78
105
  var _useTranslation = useTranslation(),
79
106
  t = _useTranslation.t;
@@ -111,6 +138,9 @@ var SendToApiForm = function SendToApiForm(_ref) {
111
138
  return hasContent && isContentDifferentFromTemplate;
112
139
  };
113
140
  var isTemplateSelectionEnabled = isPresent(templates);
141
+ var _buildHelpPopoverProp = buildHelpPopoverProps(helpPopoverProps),
142
+ sendToApiHelpPopoverProps = _buildHelpPopoverProp.sendToApi,
143
+ additionalDataHelpPopoverProps = _buildHelpPopoverProp.additionalData;
114
144
  if (isLoadingTemplates) {
115
145
  return /*#__PURE__*/jsx("div", {
116
146
  className: "flex h-full w-full items-center justify-center",
@@ -119,10 +149,12 @@ var SendToApiForm = function SendToApiForm(_ref) {
119
149
  }
120
150
  return /*#__PURE__*/jsxs(Fragment, {
121
151
  children: [/*#__PURE__*/jsx(Pane.Header, {
122
- children: /*#__PURE__*/jsx(Typography, {
152
+ children: /*#__PURE__*/jsxs(Typography, {
123
153
  style: "h2",
124
154
  weight: "semibold",
125
- children: t("neetoMessageTemplate.api.sendToApi")
155
+ children: [t("neetoMessageTemplate.api.sendToApi"), /*#__PURE__*/jsx(HelpPopover, _objectSpread({
156
+ className: "ml-2"
157
+ }, sendToApiHelpPopoverProps))]
126
158
  })
127
159
  }), /*#__PURE__*/jsx(NeetoUIForm, {
128
160
  formikProps: {
@@ -157,7 +189,13 @@ var SendToApiForm = function SendToApiForm(_ref) {
157
189
  ref: isTemplateSelectionEnabled ? null : setFocusField
158
190
  }), /*#__PURE__*/jsx(KeyValuePairs, {
159
191
  label: t("neetoMessageTemplate.api.additionalData"),
160
- name: "additionalData"
192
+ name: "additionalData",
193
+ labelProps: {
194
+ className: "ml-2",
195
+ helpIconProps: {
196
+ popoverProps: additionalDataHelpPopoverProps
197
+ }
198
+ }
161
199
  }), canManageTemplates && shouldShowSaveAsTemplate(values) && /*#__PURE__*/jsx(SaveAsTemplate, {})]
162
200
  })
163
201
  }), /*#__PURE__*/jsx(Pane.Footer, {
@@ -1 +1 @@
1
- {"version":3,"file":"SendToApiPane.js","sources":["../app/javascript/src/components/Api/SendToApiPane/constants.js","../app/javascript/src/components/Api/SendToApiPane/utils.js","../app/javascript/src/components/Api/SendToApiPane/index.jsx"],"sourcesContent":["import { t } from \"i18next\";\nimport * as yup from \"yup\";\n\nimport { ADDITIONAL_DATA_INITIAL_VALUE, VALID_URL_REGEX } from \"../constants\";\n\nexport const SEND_TO_API_FORM_INITIAL_VALUES = {\n endpoint: \"\",\n additionalData: [ADDITIONAL_DATA_INITIAL_VALUE],\n shouldSaveAsTemplate: false,\n templateName: \"\",\n};\n\nexport const SEND_TO_API_FORM_VALIDATION_SCHEMA = yup.object({\n endpoint: yup\n .string()\n .required(t(\"neetoMessageTemplate.api.validation.endpointPresence\"))\n .matches(\n VALID_URL_REGEX,\n t(\"neetoMessageTemplate.api.validation.validEndpoint\")\n ),\n additionalData: yup\n .array()\n .of(yup.object({ key: yup.string(), value: yup.string() })),\n templateName: yup.string().when(\"shouldSaveAsTemplate\", {\n is: true,\n then: yup.string().required(\n t(\"neetoMessageTemplate.template.validation.requiredEntity\", {\n entity: t(\"neetoMessageTemplate.template.templateName\"),\n })\n ),\n }),\n});\n","import { isPresent } from \"neetocist\";\n\nimport { ADDITIONAL_DATA_INITIAL_VALUE } from \"../constants\";\n\nexport const formatAdditionalData = additionalData =>\n isPresent(additionalData) ? additionalData : [ADDITIONAL_DATA_INITIAL_VALUE];\n","import { findBy, isPresent, renameKeys } from \"neetocist\";\nimport { Pane, Select, Spinner, Typography } from \"neetoui\";\nimport { ActionBlock, Input, Form as NeetoUIForm } from \"neetoui/formik\";\nimport { equals, modify } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { SAMPLE_URL } from \"components/Api/ApiTemplates/constants\";\nimport { API_TEMPLATE_TYPE } from \"components/Api/constants\";\nimport { rejectEmptyKeyValuePairs } from \"components/Api/utils\";\nimport KeyValuePairs from \"components/commons/KeyValuePairs\";\nimport SaveAsTemplate from \"components/commons/SaveAsTemplate\";\nimport { areValuesEqual } from \"components/utils\";\nimport { useFetchTemplates } from \"hooks/reactQuery/useTemplatesApi\";\n\nimport {\n SEND_TO_API_FORM_INITIAL_VALUES,\n SEND_TO_API_FORM_VALIDATION_SCHEMA,\n} from \"./constants\";\nimport { formatAdditionalData } from \"./utils\";\n\nconst SendToApiPane = props => {\n const { isOpen, onClose } = props;\n\n return (\n <Pane {...{ isOpen, onClose }}>\n {paneProps => <SendToApiForm {...{ ...props, paneProps }} />}\n </Pane>\n );\n};\n\nconst SendToApiForm = ({\n ownerId,\n onClose,\n onSubmit,\n isSubmitting,\n canManageTemplates = true,\n paneProps: { setFocusField },\n}) => {\n const { t } = useTranslation();\n\n const { data: { templates = [] } = {}, isLoading: isLoadingTemplates } =\n useFetchTemplates({\n status: \"active\",\n templateType: API_TEMPLATE_TYPE,\n ownerId,\n });\n\n const handleTemplateChange = (setValues, values, option) => {\n if (!option) return;\n\n const template = findBy({ id: option.value }, templates);\n\n setValues({\n ...values,\n ...modify(\"additionalData\", formatAdditionalData, template),\n });\n };\n\n const handleSubmit = formValues => {\n const additionalDataModifiedFormValues = modify(\n \"additionalData\",\n rejectEmptyKeyValuePairs,\n formValues\n );\n\n onSubmit(additionalDataModifiedFormValues);\n };\n\n const shouldShowSaveAsTemplate = ({ id, endpoint, additionalData } = {}) => {\n const template = findBy({ id }, templates);\n const hasContent =\n isPresent(endpoint) ||\n isPresent(rejectEmptyKeyValuePairs(additionalData));\n\n const isContentDifferentFromTemplate = !(\n areValuesEqual(template?.endpoint, endpoint) &&\n equals(template?.additionalData, additionalData)\n );\n\n return hasContent && isContentDifferentFromTemplate;\n };\n\n const isTemplateSelectionEnabled = isPresent(templates);\n\n if (isLoadingTemplates) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n return (\n <>\n <Pane.Header>\n <Typography style=\"h2\" weight=\"semibold\">\n {t(\"neetoMessageTemplate.api.sendToApi\")}\n </Typography>\n </Pane.Header>\n <NeetoUIForm\n formikProps={{\n initialValues: SEND_TO_API_FORM_INITIAL_VALUES,\n validationSchema: SEND_TO_API_FORM_VALIDATION_SCHEMA,\n onSubmit: handleSubmit,\n }}\n >\n {({ values, setValues }) => (\n <>\n <Pane.Body>\n <div className=\"w-full space-y-5\">\n {isTemplateSelectionEnabled && (\n <Select\n innerRef={setFocusField}\n isLoading={isLoadingTemplates}\n label={t(\"neetoMessageTemplate.template.title\")}\n options={renameKeys(\n { name: \"label\", id: \"value\" },\n templates\n )}\n placeholder={t(\n \"neetoMessageTemplate.sendMessage.selectTemplate\"\n )}\n onChange={template =>\n handleTemplateChange(setValues, values, template)\n }\n />\n )}\n <Input\n required\n label={t(\"neetoMessageTemplate.api.endpoint\")}\n name=\"endpoint\"\n placeholder={SAMPLE_URL}\n ref={isTemplateSelectionEnabled ? null : setFocusField}\n />\n <KeyValuePairs\n label={t(\"neetoMessageTemplate.api.additionalData\")}\n name=\"additionalData\"\n />\n {canManageTemplates && shouldShowSaveAsTemplate(values) && (\n <SaveAsTemplate />\n )}\n </div>\n </Pane.Body>\n <Pane.Footer>\n <ActionBlock\n {...{ isSubmitting }}\n cancelButtonProps={{\n onClick: onClose,\n \"data-cy\": \"api-template-cancel-button\",\n }}\n submitButtonProps={{\n label: t(\"neetoMessageTemplate.template.send\"),\n \"data-cy\": \"api-template-send-button\",\n }}\n />\n </Pane.Footer>\n </>\n )}\n </NeetoUIForm>\n </>\n );\n};\n\nexport default SendToApiPane;\n"],"names":["SEND_TO_API_FORM_INITIAL_VALUES","endpoint","additionalData","ADDITIONAL_DATA_INITIAL_VALUE","shouldSaveAsTemplate","templateName","SEND_TO_API_FORM_VALIDATION_SCHEMA","yup","object","string","required","t","matches","VALID_URL_REGEX","array","of","key","value","when","is","then","entity","formatAdditionalData","isPresent","SendToApiPane","props","isOpen","onClose","_jsx","Pane","children","paneProps","SendToApiForm","_objectSpread","_ref","ownerId","onSubmit","isSubmitting","_ref$canManageTemplat","canManageTemplates","setFocusField","_useTranslation","useTranslation","_useFetchTemplates","useFetchTemplates","status","templateType","API_TEMPLATE_TYPE","_useFetchTemplates$da","data","_useFetchTemplates$da2","_useFetchTemplates$da3","templates","isLoadingTemplates","isLoading","handleTemplateChange","setValues","values","option","template","findBy","id","modify","handleSubmit","formValues","additionalDataModifiedFormValues","rejectEmptyKeyValuePairs","shouldShowSaveAsTemplate","_ref2","arguments","length","undefined","hasContent","isContentDifferentFromTemplate","areValuesEqual","equals","isTemplateSelectionEnabled","className","Spinner","_jsxs","_Fragment","Header","Typography","style","weight","NeetoUIForm","formikProps","initialValues","validationSchema","_ref3","Body","Select","innerRef","label","options","renameKeys","name","placeholder","onChange","Input","SAMPLE_URL","ref","KeyValuePairs","SaveAsTemplate","Footer","ActionBlock","cancelButtonProps","onClick","submitButtonProps"],"mappings":"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"}
1
+ {"version":3,"file":"SendToApiPane.js","sources":["../app/javascript/src/components/Api/SendToApiPane/constants.js","../app/javascript/src/components/Api/SendToApiPane/utils.js","../app/javascript/src/components/Api/SendToApiPane/index.jsx"],"sourcesContent":["import { t } from \"i18next\";\nimport * as yup from \"yup\";\n\nimport { ADDITIONAL_DATA_INITIAL_VALUE, VALID_URL_REGEX } from \"../constants\";\n\nexport const SEND_TO_API_FORM_INITIAL_VALUES = {\n endpoint: \"\",\n additionalData: [ADDITIONAL_DATA_INITIAL_VALUE],\n shouldSaveAsTemplate: false,\n templateName: \"\",\n};\n\nexport const SEND_TO_API_FORM_VALIDATION_SCHEMA = yup.object({\n endpoint: yup\n .string()\n .required(t(\"neetoMessageTemplate.api.validation.endpointPresence\"))\n .matches(\n VALID_URL_REGEX,\n t(\"neetoMessageTemplate.api.validation.validEndpoint\")\n ),\n additionalData: yup\n .array()\n .of(yup.object({ key: yup.string(), value: yup.string() })),\n templateName: yup.string().when(\"shouldSaveAsTemplate\", {\n is: true,\n then: yup.string().required(\n t(\"neetoMessageTemplate.template.validation.requiredEntity\", {\n entity: t(\"neetoMessageTemplate.template.templateName\"),\n })\n ),\n }),\n});\n\nexport const SEND_TO_API_HELP_POPOVER_PROPS = {\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 additionalData: {\n description: t(\n \"neetoMessageTemplate.api.helpPopovers.additionalData.description\"\n ),\n helpLinkProps: {\n label: t(\"neetoMessageTemplate.template.viewHelpArticle\"),\n \"data-cy\": \"send-to-api-additional-data-help-link\",\n },\n position: \"top\",\n },\n};\n","import { isPresent } from \"neetocist\";\nimport { map, mergeDeepLeft, omit, path, unless } from \"ramda\";\n\nimport { SEND_TO_API_HELP_POPOVER_PROPS } from \"./constants\";\n\nimport { ADDITIONAL_DATA_INITIAL_VALUE } from \"../constants\";\n\nconst sanitizeHelpPopoverProps = map(\n unless(path([\"helpLinkProps\", \"href\"]), omit([\"helpLinkProps\"]))\n);\n\nexport const formatAdditionalData = additionalData =>\n isPresent(additionalData) ? additionalData : [ADDITIONAL_DATA_INITIAL_VALUE];\n\nexport const buildHelpPopoverProps = popoverProps => {\n const combinedProps = mergeDeepLeft(\n popoverProps,\n SEND_TO_API_HELP_POPOVER_PROPS\n );\n\n return sanitizeHelpPopoverProps(combinedProps);\n};\n","import { findBy, isPresent, renameKeys } from \"neetocist\";\nimport HelpPopover from \"neetomolecules/HelpPopover\";\nimport { Pane, Select, Spinner, Typography } from \"neetoui\";\nimport { ActionBlock, Input, Form as NeetoUIForm } from \"neetoui/formik\";\nimport { equals, modify } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { SAMPLE_URL } from \"components/Api/ApiTemplates/constants\";\nimport { API_TEMPLATE_TYPE } from \"components/Api/constants\";\nimport { rejectEmptyKeyValuePairs } from \"components/Api/utils\";\nimport KeyValuePairs from \"components/commons/KeyValuePairs\";\nimport SaveAsTemplate from \"components/commons/SaveAsTemplate\";\nimport { areValuesEqual } from \"components/utils\";\nimport { useFetchTemplates } from \"hooks/reactQuery/useTemplatesApi\";\n\nimport {\n SEND_TO_API_FORM_INITIAL_VALUES,\n SEND_TO_API_FORM_VALIDATION_SCHEMA,\n} from \"./constants\";\nimport { buildHelpPopoverProps, formatAdditionalData } from \"./utils\";\n\nconst SendToApiPane = props => {\n const { isOpen, onClose } = props;\n\n return (\n <Pane {...{ isOpen, onClose }}>\n {paneProps => <SendToApiForm {...{ ...props, paneProps }} />}\n </Pane>\n );\n};\n\nconst SendToApiForm = ({\n ownerId,\n onClose,\n onSubmit,\n isSubmitting,\n canManageTemplates = true,\n helpPopoverProps = {},\n paneProps: { setFocusField },\n}) => {\n const { t } = useTranslation();\n\n const { data: { templates = [] } = {}, isLoading: isLoadingTemplates } =\n useFetchTemplates({\n status: \"active\",\n templateType: API_TEMPLATE_TYPE,\n ownerId,\n });\n\n const handleTemplateChange = (setValues, values, option) => {\n if (!option) return;\n\n const template = findBy({ id: option.value }, templates);\n\n setValues({\n ...values,\n ...modify(\"additionalData\", formatAdditionalData, template),\n });\n };\n\n const handleSubmit = formValues => {\n const additionalDataModifiedFormValues = modify(\n \"additionalData\",\n rejectEmptyKeyValuePairs,\n formValues\n );\n\n onSubmit(additionalDataModifiedFormValues);\n };\n\n const shouldShowSaveAsTemplate = ({ id, endpoint, additionalData } = {}) => {\n const template = findBy({ id }, templates);\n const hasContent =\n isPresent(endpoint) ||\n isPresent(rejectEmptyKeyValuePairs(additionalData));\n\n const isContentDifferentFromTemplate = !(\n areValuesEqual(template?.endpoint, endpoint) &&\n equals(template?.additionalData, additionalData)\n );\n\n return hasContent && isContentDifferentFromTemplate;\n };\n\n const isTemplateSelectionEnabled = isPresent(templates);\n\n const {\n sendToApi: sendToApiHelpPopoverProps,\n additionalData: additionalDataHelpPopoverProps,\n } = buildHelpPopoverProps(helpPopoverProps);\n\n if (isLoadingTemplates) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n return (\n <>\n <Pane.Header>\n <Typography style=\"h2\" weight=\"semibold\">\n {t(\"neetoMessageTemplate.api.sendToApi\")}\n <HelpPopover className=\"ml-2\" {...sendToApiHelpPopoverProps} />\n </Typography>\n </Pane.Header>\n <NeetoUIForm\n formikProps={{\n initialValues: SEND_TO_API_FORM_INITIAL_VALUES,\n validationSchema: SEND_TO_API_FORM_VALIDATION_SCHEMA,\n onSubmit: handleSubmit,\n }}\n >\n {({ values, setValues }) => (\n <>\n <Pane.Body>\n <div className=\"w-full space-y-5\">\n {isTemplateSelectionEnabled && (\n <Select\n innerRef={setFocusField}\n isLoading={isLoadingTemplates}\n label={t(\"neetoMessageTemplate.template.title\")}\n options={renameKeys(\n { name: \"label\", id: \"value\" },\n templates\n )}\n placeholder={t(\n \"neetoMessageTemplate.sendMessage.selectTemplate\"\n )}\n onChange={template =>\n handleTemplateChange(setValues, values, template)\n }\n />\n )}\n <Input\n required\n label={t(\"neetoMessageTemplate.api.endpoint\")}\n name=\"endpoint\"\n placeholder={SAMPLE_URL}\n ref={isTemplateSelectionEnabled ? null : setFocusField}\n />\n <KeyValuePairs\n label={t(\"neetoMessageTemplate.api.additionalData\")}\n name=\"additionalData\"\n labelProps={{\n className: \"ml-2\",\n helpIconProps: {\n popoverProps: additionalDataHelpPopoverProps,\n },\n }}\n />\n {canManageTemplates && shouldShowSaveAsTemplate(values) && (\n <SaveAsTemplate />\n )}\n </div>\n </Pane.Body>\n <Pane.Footer>\n <ActionBlock\n {...{ isSubmitting }}\n cancelButtonProps={{\n onClick: onClose,\n \"data-cy\": \"api-template-cancel-button\",\n }}\n submitButtonProps={{\n label: t(\"neetoMessageTemplate.template.send\"),\n \"data-cy\": \"api-template-send-button\",\n }}\n />\n </Pane.Footer>\n </>\n )}\n </NeetoUIForm>\n </>\n );\n};\n\nexport default SendToApiPane;\n"],"names":["SEND_TO_API_FORM_INITIAL_VALUES","endpoint","additionalData","ADDITIONAL_DATA_INITIAL_VALUE","shouldSaveAsTemplate","templateName","SEND_TO_API_FORM_VALIDATION_SCHEMA","yup","object","string","required","t","matches","VALID_URL_REGEX","array","of","key","value","when","is","then","entity","SEND_TO_API_HELP_POPOVER_PROPS","sendToApi","description","helpLinkProps","popoverProps","position","label","sanitizeHelpPopoverProps","map","unless","path","omit","formatAdditionalData","isPresent","buildHelpPopoverProps","combinedProps","mergeDeepLeft","SendToApiPane","props","isOpen","onClose","_jsx","Pane","children","paneProps","SendToApiForm","_objectSpread","_ref","ownerId","onSubmit","isSubmitting","_ref$canManageTemplat","canManageTemplates","_ref$helpPopoverProps","helpPopoverProps","setFocusField","_useTranslation","useTranslation","_useFetchTemplates","useFetchTemplates","status","templateType","API_TEMPLATE_TYPE","_useFetchTemplates$da","data","_useFetchTemplates$da2","_useFetchTemplates$da3","templates","isLoadingTemplates","isLoading","handleTemplateChange","setValues","values","option","template","findBy","id","modify","handleSubmit","formValues","additionalDataModifiedFormValues","rejectEmptyKeyValuePairs","shouldShowSaveAsTemplate","_ref2","arguments","length","undefined","hasContent","isContentDifferentFromTemplate","areValuesEqual","equals","isTemplateSelectionEnabled","_buildHelpPopoverProp","sendToApiHelpPopoverProps","additionalDataHelpPopoverProps","className","Spinner","_jsxs","_Fragment","Header","Typography","style","weight","HelpPopover","NeetoUIForm","formikProps","initialValues","validationSchema","_ref3","Body","Select","innerRef","options","renameKeys","name","placeholder","onChange","Input","SAMPLE_URL","ref","KeyValuePairs","labelProps","helpIconProps","SaveAsTemplate","Footer","ActionBlock","cancelButtonProps","onClick","submitButtonProps"],"mappings":"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"}
@@ -20,7 +20,7 @@ var Table = require('@bigbinary/neetoui/Table');
20
20
  var Typography = require('@bigbinary/neetoui/Typography');
21
21
  var ramda = require('ramda');
22
22
  var reactI18next = require('react-i18next');
23
- var utils = require('../utils-aj-r79qQ.js');
23
+ var utils = require('../utils-D7y24q1q.js');
24
24
  var constants = require('../constants-CqiptWxr.js');
25
25
  var useTemplatesApi = require('../useTemplatesApi-CSsaKyRi.js');
26
26
  var ActionBlock = require('@bigbinary/neetoui/formik/ActionBlock');
@@ -2,6 +2,7 @@
2
2
 
3
3
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
4
  var neetoCist = require('@bigbinary/neeto-cist');
5
+ var HelpPopover = require('@bigbinary/neeto-molecules/HelpPopover');
5
6
  var Pane = require('@bigbinary/neetoui/Pane');
6
7
  var Select = require('@bigbinary/neetoui/Select');
7
8
  var Spinner = require('@bigbinary/neetoui/Spinner');
@@ -11,7 +12,7 @@ var Input = require('@bigbinary/neetoui/formik/Input');
11
12
  var NeetoUIForm = require('@bigbinary/neetoui/formik/Form');
12
13
  var ramda = require('ramda');
13
14
  var reactI18next = require('react-i18next');
14
- var utils = require('../utils-aj-r79qQ.js');
15
+ var utils = require('../utils-D7y24q1q.js');
15
16
  var utils$1 = require('../utils-DCNzEjAw.js');
16
17
  var useTemplatesApi = require('../useTemplatesApi-CSsaKyRi.js');
17
18
  var i18next = require('i18next');
@@ -68,10 +69,34 @@ var SEND_TO_API_FORM_VALIDATION_SCHEMA = yup__namespace.object({
68
69
  }))
69
70
  })
70
71
  });
72
+ var SEND_TO_API_HELP_POPOVER_PROPS = {
73
+ sendToApi: {
74
+ description: i18next.t("neetoMessageTemplate.api.helpPopovers.sendToApi.description"),
75
+ helpLinkProps: {
76
+ "data-cy": "send-to-api-action-help-link"
77
+ },
78
+ popoverProps: {
79
+ position: "top"
80
+ }
81
+ },
82
+ additionalData: {
83
+ description: i18next.t("neetoMessageTemplate.api.helpPopovers.additionalData.description"),
84
+ helpLinkProps: {
85
+ label: i18next.t("neetoMessageTemplate.template.viewHelpArticle"),
86
+ "data-cy": "send-to-api-additional-data-help-link"
87
+ },
88
+ position: "top"
89
+ }
90
+ };
71
91
 
92
+ var sanitizeHelpPopoverProps = ramda.map(ramda.unless(ramda.path(["helpLinkProps", "href"]), ramda.omit(["helpLinkProps"])));
72
93
  var formatAdditionalData = function formatAdditionalData(additionalData) {
73
94
  return neetoCist.isPresent(additionalData) ? additionalData : [utils.ADDITIONAL_DATA_INITIAL_VALUE];
74
95
  };
96
+ var buildHelpPopoverProps = function buildHelpPopoverProps(popoverProps) {
97
+ var combinedProps = ramda.mergeDeepLeft(popoverProps, SEND_TO_API_HELP_POPOVER_PROPS);
98
+ return sanitizeHelpPopoverProps(combinedProps);
99
+ };
75
100
 
76
101
  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; }
77
102
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).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; }
@@ -95,6 +120,8 @@ var SendToApiForm = function SendToApiForm(_ref) {
95
120
  isSubmitting = _ref.isSubmitting,
96
121
  _ref$canManageTemplat = _ref.canManageTemplates,
97
122
  canManageTemplates = _ref$canManageTemplat === void 0 ? true : _ref$canManageTemplat,
123
+ _ref$helpPopoverProps = _ref.helpPopoverProps,
124
+ helpPopoverProps = _ref$helpPopoverProps === void 0 ? {} : _ref$helpPopoverProps,
98
125
  setFocusField = _ref.paneProps.setFocusField;
99
126
  var _useTranslation = reactI18next.useTranslation(),
100
127
  t = _useTranslation.t;
@@ -132,6 +159,9 @@ var SendToApiForm = function SendToApiForm(_ref) {
132
159
  return hasContent && isContentDifferentFromTemplate;
133
160
  };
134
161
  var isTemplateSelectionEnabled = neetoCist.isPresent(templates);
162
+ var _buildHelpPopoverProp = buildHelpPopoverProps(helpPopoverProps),
163
+ sendToApiHelpPopoverProps = _buildHelpPopoverProp.sendToApi,
164
+ additionalDataHelpPopoverProps = _buildHelpPopoverProp.additionalData;
135
165
  if (isLoadingTemplates) {
136
166
  return /*#__PURE__*/jsxRuntime.jsx("div", {
137
167
  className: "flex h-full w-full items-center justify-center",
@@ -140,10 +170,12 @@ var SendToApiForm = function SendToApiForm(_ref) {
140
170
  }
141
171
  return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
142
172
  children: [/*#__PURE__*/jsxRuntime.jsx(Pane.Header, {
143
- children: /*#__PURE__*/jsxRuntime.jsx(Typography, {
173
+ children: /*#__PURE__*/jsxRuntime.jsxs(Typography, {
144
174
  style: "h2",
145
175
  weight: "semibold",
146
- children: t("neetoMessageTemplate.api.sendToApi")
176
+ children: [t("neetoMessageTemplate.api.sendToApi"), /*#__PURE__*/jsxRuntime.jsx(HelpPopover, _objectSpread({
177
+ className: "ml-2"
178
+ }, sendToApiHelpPopoverProps))]
147
179
  })
148
180
  }), /*#__PURE__*/jsxRuntime.jsx(NeetoUIForm, {
149
181
  formikProps: {
@@ -178,7 +210,13 @@ var SendToApiForm = function SendToApiForm(_ref) {
178
210
  ref: isTemplateSelectionEnabled ? null : setFocusField
179
211
  }), /*#__PURE__*/jsxRuntime.jsx(utils.KeyValuePairs, {
180
212
  label: t("neetoMessageTemplate.api.additionalData"),
181
- name: "additionalData"
213
+ name: "additionalData",
214
+ labelProps: {
215
+ className: "ml-2",
216
+ helpIconProps: {
217
+ popoverProps: additionalDataHelpPopoverProps
218
+ }
219
+ }
182
220
  }), canManageTemplates && shouldShowSaveAsTemplate(values) && /*#__PURE__*/jsxRuntime.jsx(utils$1.SaveAsTemplate, {})]
183
221
  })
184
222
  }), /*#__PURE__*/jsxRuntime.jsx(Pane.Footer, {
@@ -1 +1 @@
1
- {"version":3,"file":"SendToApiPane.js","sources":["../../app/javascript/src/components/Api/SendToApiPane/constants.js","../../app/javascript/src/components/Api/SendToApiPane/utils.js","../../app/javascript/src/components/Api/SendToApiPane/index.jsx"],"sourcesContent":["import { t } from \"i18next\";\nimport * as yup from \"yup\";\n\nimport { ADDITIONAL_DATA_INITIAL_VALUE, VALID_URL_REGEX } from \"../constants\";\n\nexport const SEND_TO_API_FORM_INITIAL_VALUES = {\n endpoint: \"\",\n additionalData: [ADDITIONAL_DATA_INITIAL_VALUE],\n shouldSaveAsTemplate: false,\n templateName: \"\",\n};\n\nexport const SEND_TO_API_FORM_VALIDATION_SCHEMA = yup.object({\n endpoint: yup\n .string()\n .required(t(\"neetoMessageTemplate.api.validation.endpointPresence\"))\n .matches(\n VALID_URL_REGEX,\n t(\"neetoMessageTemplate.api.validation.validEndpoint\")\n ),\n additionalData: yup\n .array()\n .of(yup.object({ key: yup.string(), value: yup.string() })),\n templateName: yup.string().when(\"shouldSaveAsTemplate\", {\n is: true,\n then: yup.string().required(\n t(\"neetoMessageTemplate.template.validation.requiredEntity\", {\n entity: t(\"neetoMessageTemplate.template.templateName\"),\n })\n ),\n }),\n});\n","import { isPresent } from \"neetocist\";\n\nimport { ADDITIONAL_DATA_INITIAL_VALUE } from \"../constants\";\n\nexport const formatAdditionalData = additionalData =>\n isPresent(additionalData) ? additionalData : [ADDITIONAL_DATA_INITIAL_VALUE];\n","import { findBy, isPresent, renameKeys } from \"neetocist\";\nimport { Pane, Select, Spinner, Typography } from \"neetoui\";\nimport { ActionBlock, Input, Form as NeetoUIForm } from \"neetoui/formik\";\nimport { equals, modify } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { SAMPLE_URL } from \"components/Api/ApiTemplates/constants\";\nimport { API_TEMPLATE_TYPE } from \"components/Api/constants\";\nimport { rejectEmptyKeyValuePairs } from \"components/Api/utils\";\nimport KeyValuePairs from \"components/commons/KeyValuePairs\";\nimport SaveAsTemplate from \"components/commons/SaveAsTemplate\";\nimport { areValuesEqual } from \"components/utils\";\nimport { useFetchTemplates } from \"hooks/reactQuery/useTemplatesApi\";\n\nimport {\n SEND_TO_API_FORM_INITIAL_VALUES,\n SEND_TO_API_FORM_VALIDATION_SCHEMA,\n} from \"./constants\";\nimport { formatAdditionalData } from \"./utils\";\n\nconst SendToApiPane = props => {\n const { isOpen, onClose } = props;\n\n return (\n <Pane {...{ isOpen, onClose }}>\n {paneProps => <SendToApiForm {...{ ...props, paneProps }} />}\n </Pane>\n );\n};\n\nconst SendToApiForm = ({\n ownerId,\n onClose,\n onSubmit,\n isSubmitting,\n canManageTemplates = true,\n paneProps: { setFocusField },\n}) => {\n const { t } = useTranslation();\n\n const { data: { templates = [] } = {}, isLoading: isLoadingTemplates } =\n useFetchTemplates({\n status: \"active\",\n templateType: API_TEMPLATE_TYPE,\n ownerId,\n });\n\n const handleTemplateChange = (setValues, values, option) => {\n if (!option) return;\n\n const template = findBy({ id: option.value }, templates);\n\n setValues({\n ...values,\n ...modify(\"additionalData\", formatAdditionalData, template),\n });\n };\n\n const handleSubmit = formValues => {\n const additionalDataModifiedFormValues = modify(\n \"additionalData\",\n rejectEmptyKeyValuePairs,\n formValues\n );\n\n onSubmit(additionalDataModifiedFormValues);\n };\n\n const shouldShowSaveAsTemplate = ({ id, endpoint, additionalData } = {}) => {\n const template = findBy({ id }, templates);\n const hasContent =\n isPresent(endpoint) ||\n isPresent(rejectEmptyKeyValuePairs(additionalData));\n\n const isContentDifferentFromTemplate = !(\n areValuesEqual(template?.endpoint, endpoint) &&\n equals(template?.additionalData, additionalData)\n );\n\n return hasContent && isContentDifferentFromTemplate;\n };\n\n const isTemplateSelectionEnabled = isPresent(templates);\n\n if (isLoadingTemplates) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n return (\n <>\n <Pane.Header>\n <Typography style=\"h2\" weight=\"semibold\">\n {t(\"neetoMessageTemplate.api.sendToApi\")}\n </Typography>\n </Pane.Header>\n <NeetoUIForm\n formikProps={{\n initialValues: SEND_TO_API_FORM_INITIAL_VALUES,\n validationSchema: SEND_TO_API_FORM_VALIDATION_SCHEMA,\n onSubmit: handleSubmit,\n }}\n >\n {({ values, setValues }) => (\n <>\n <Pane.Body>\n <div className=\"w-full space-y-5\">\n {isTemplateSelectionEnabled && (\n <Select\n innerRef={setFocusField}\n isLoading={isLoadingTemplates}\n label={t(\"neetoMessageTemplate.template.title\")}\n options={renameKeys(\n { name: \"label\", id: \"value\" },\n templates\n )}\n placeholder={t(\n \"neetoMessageTemplate.sendMessage.selectTemplate\"\n )}\n onChange={template =>\n handleTemplateChange(setValues, values, template)\n }\n />\n )}\n <Input\n required\n label={t(\"neetoMessageTemplate.api.endpoint\")}\n name=\"endpoint\"\n placeholder={SAMPLE_URL}\n ref={isTemplateSelectionEnabled ? null : setFocusField}\n />\n <KeyValuePairs\n label={t(\"neetoMessageTemplate.api.additionalData\")}\n name=\"additionalData\"\n />\n {canManageTemplates && shouldShowSaveAsTemplate(values) && (\n <SaveAsTemplate />\n )}\n </div>\n </Pane.Body>\n <Pane.Footer>\n <ActionBlock\n {...{ isSubmitting }}\n cancelButtonProps={{\n onClick: onClose,\n \"data-cy\": \"api-template-cancel-button\",\n }}\n submitButtonProps={{\n label: t(\"neetoMessageTemplate.template.send\"),\n \"data-cy\": \"api-template-send-button\",\n }}\n />\n </Pane.Footer>\n </>\n )}\n </NeetoUIForm>\n </>\n );\n};\n\nexport default SendToApiPane;\n"],"names":["SEND_TO_API_FORM_INITIAL_VALUES","endpoint","additionalData","ADDITIONAL_DATA_INITIAL_VALUE","shouldSaveAsTemplate","templateName","SEND_TO_API_FORM_VALIDATION_SCHEMA","yup","object","string","required","t","matches","VALID_URL_REGEX","array","of","key","value","when","is","then","entity","formatAdditionalData","isPresent","SendToApiPane","props","isOpen","onClose","_jsx","Pane","children","paneProps","SendToApiForm","_objectSpread","_ref","ownerId","onSubmit","isSubmitting","_ref$canManageTemplat","canManageTemplates","setFocusField","_useTranslation","useTranslation","_useFetchTemplates","useFetchTemplates","status","templateType","API_TEMPLATE_TYPE","_useFetchTemplates$da","data","_useFetchTemplates$da2","_useFetchTemplates$da3","templates","isLoadingTemplates","isLoading","handleTemplateChange","setValues","values","option","template","findBy","id","modify","handleSubmit","formValues","additionalDataModifiedFormValues","rejectEmptyKeyValuePairs","shouldShowSaveAsTemplate","_ref2","arguments","length","undefined","hasContent","isContentDifferentFromTemplate","areValuesEqual","equals","isTemplateSelectionEnabled","className","Spinner","_jsxs","_Fragment","Header","Typography","style","weight","NeetoUIForm","formikProps","initialValues","validationSchema","_ref3","Body","Select","innerRef","label","options","renameKeys","name","placeholder","onChange","Input","SAMPLE_URL","ref","KeyValuePairs","SaveAsTemplate","Footer","ActionBlock","cancelButtonProps","onClick","submitButtonProps"],"mappings":"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"}
1
+ {"version":3,"file":"SendToApiPane.js","sources":["../../app/javascript/src/components/Api/SendToApiPane/constants.js","../../app/javascript/src/components/Api/SendToApiPane/utils.js","../../app/javascript/src/components/Api/SendToApiPane/index.jsx"],"sourcesContent":["import { t } from \"i18next\";\nimport * as yup from \"yup\";\n\nimport { ADDITIONAL_DATA_INITIAL_VALUE, VALID_URL_REGEX } from \"../constants\";\n\nexport const SEND_TO_API_FORM_INITIAL_VALUES = {\n endpoint: \"\",\n additionalData: [ADDITIONAL_DATA_INITIAL_VALUE],\n shouldSaveAsTemplate: false,\n templateName: \"\",\n};\n\nexport const SEND_TO_API_FORM_VALIDATION_SCHEMA = yup.object({\n endpoint: yup\n .string()\n .required(t(\"neetoMessageTemplate.api.validation.endpointPresence\"))\n .matches(\n VALID_URL_REGEX,\n t(\"neetoMessageTemplate.api.validation.validEndpoint\")\n ),\n additionalData: yup\n .array()\n .of(yup.object({ key: yup.string(), value: yup.string() })),\n templateName: yup.string().when(\"shouldSaveAsTemplate\", {\n is: true,\n then: yup.string().required(\n t(\"neetoMessageTemplate.template.validation.requiredEntity\", {\n entity: t(\"neetoMessageTemplate.template.templateName\"),\n })\n ),\n }),\n});\n\nexport const SEND_TO_API_HELP_POPOVER_PROPS = {\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 additionalData: {\n description: t(\n \"neetoMessageTemplate.api.helpPopovers.additionalData.description\"\n ),\n helpLinkProps: {\n label: t(\"neetoMessageTemplate.template.viewHelpArticle\"),\n \"data-cy\": \"send-to-api-additional-data-help-link\",\n },\n position: \"top\",\n },\n};\n","import { isPresent } from \"neetocist\";\nimport { map, mergeDeepLeft, omit, path, unless } from \"ramda\";\n\nimport { SEND_TO_API_HELP_POPOVER_PROPS } from \"./constants\";\n\nimport { ADDITIONAL_DATA_INITIAL_VALUE } from \"../constants\";\n\nconst sanitizeHelpPopoverProps = map(\n unless(path([\"helpLinkProps\", \"href\"]), omit([\"helpLinkProps\"]))\n);\n\nexport const formatAdditionalData = additionalData =>\n isPresent(additionalData) ? additionalData : [ADDITIONAL_DATA_INITIAL_VALUE];\n\nexport const buildHelpPopoverProps = popoverProps => {\n const combinedProps = mergeDeepLeft(\n popoverProps,\n SEND_TO_API_HELP_POPOVER_PROPS\n );\n\n return sanitizeHelpPopoverProps(combinedProps);\n};\n","import { findBy, isPresent, renameKeys } from \"neetocist\";\nimport HelpPopover from \"neetomolecules/HelpPopover\";\nimport { Pane, Select, Spinner, Typography } from \"neetoui\";\nimport { ActionBlock, Input, Form as NeetoUIForm } from \"neetoui/formik\";\nimport { equals, modify } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { SAMPLE_URL } from \"components/Api/ApiTemplates/constants\";\nimport { API_TEMPLATE_TYPE } from \"components/Api/constants\";\nimport { rejectEmptyKeyValuePairs } from \"components/Api/utils\";\nimport KeyValuePairs from \"components/commons/KeyValuePairs\";\nimport SaveAsTemplate from \"components/commons/SaveAsTemplate\";\nimport { areValuesEqual } from \"components/utils\";\nimport { useFetchTemplates } from \"hooks/reactQuery/useTemplatesApi\";\n\nimport {\n SEND_TO_API_FORM_INITIAL_VALUES,\n SEND_TO_API_FORM_VALIDATION_SCHEMA,\n} from \"./constants\";\nimport { buildHelpPopoverProps, formatAdditionalData } from \"./utils\";\n\nconst SendToApiPane = props => {\n const { isOpen, onClose } = props;\n\n return (\n <Pane {...{ isOpen, onClose }}>\n {paneProps => <SendToApiForm {...{ ...props, paneProps }} />}\n </Pane>\n );\n};\n\nconst SendToApiForm = ({\n ownerId,\n onClose,\n onSubmit,\n isSubmitting,\n canManageTemplates = true,\n helpPopoverProps = {},\n paneProps: { setFocusField },\n}) => {\n const { t } = useTranslation();\n\n const { data: { templates = [] } = {}, isLoading: isLoadingTemplates } =\n useFetchTemplates({\n status: \"active\",\n templateType: API_TEMPLATE_TYPE,\n ownerId,\n });\n\n const handleTemplateChange = (setValues, values, option) => {\n if (!option) return;\n\n const template = findBy({ id: option.value }, templates);\n\n setValues({\n ...values,\n ...modify(\"additionalData\", formatAdditionalData, template),\n });\n };\n\n const handleSubmit = formValues => {\n const additionalDataModifiedFormValues = modify(\n \"additionalData\",\n rejectEmptyKeyValuePairs,\n formValues\n );\n\n onSubmit(additionalDataModifiedFormValues);\n };\n\n const shouldShowSaveAsTemplate = ({ id, endpoint, additionalData } = {}) => {\n const template = findBy({ id }, templates);\n const hasContent =\n isPresent(endpoint) ||\n isPresent(rejectEmptyKeyValuePairs(additionalData));\n\n const isContentDifferentFromTemplate = !(\n areValuesEqual(template?.endpoint, endpoint) &&\n equals(template?.additionalData, additionalData)\n );\n\n return hasContent && isContentDifferentFromTemplate;\n };\n\n const isTemplateSelectionEnabled = isPresent(templates);\n\n const {\n sendToApi: sendToApiHelpPopoverProps,\n additionalData: additionalDataHelpPopoverProps,\n } = buildHelpPopoverProps(helpPopoverProps);\n\n if (isLoadingTemplates) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n return (\n <>\n <Pane.Header>\n <Typography style=\"h2\" weight=\"semibold\">\n {t(\"neetoMessageTemplate.api.sendToApi\")}\n <HelpPopover className=\"ml-2\" {...sendToApiHelpPopoverProps} />\n </Typography>\n </Pane.Header>\n <NeetoUIForm\n formikProps={{\n initialValues: SEND_TO_API_FORM_INITIAL_VALUES,\n validationSchema: SEND_TO_API_FORM_VALIDATION_SCHEMA,\n onSubmit: handleSubmit,\n }}\n >\n {({ values, setValues }) => (\n <>\n <Pane.Body>\n <div className=\"w-full space-y-5\">\n {isTemplateSelectionEnabled && (\n <Select\n innerRef={setFocusField}\n isLoading={isLoadingTemplates}\n label={t(\"neetoMessageTemplate.template.title\")}\n options={renameKeys(\n { name: \"label\", id: \"value\" },\n templates\n )}\n placeholder={t(\n \"neetoMessageTemplate.sendMessage.selectTemplate\"\n )}\n onChange={template =>\n handleTemplateChange(setValues, values, template)\n }\n />\n )}\n <Input\n required\n label={t(\"neetoMessageTemplate.api.endpoint\")}\n name=\"endpoint\"\n placeholder={SAMPLE_URL}\n ref={isTemplateSelectionEnabled ? null : setFocusField}\n />\n <KeyValuePairs\n label={t(\"neetoMessageTemplate.api.additionalData\")}\n name=\"additionalData\"\n labelProps={{\n className: \"ml-2\",\n helpIconProps: {\n popoverProps: additionalDataHelpPopoverProps,\n },\n }}\n />\n {canManageTemplates && shouldShowSaveAsTemplate(values) && (\n <SaveAsTemplate />\n )}\n </div>\n </Pane.Body>\n <Pane.Footer>\n <ActionBlock\n {...{ isSubmitting }}\n cancelButtonProps={{\n onClick: onClose,\n \"data-cy\": \"api-template-cancel-button\",\n }}\n submitButtonProps={{\n label: t(\"neetoMessageTemplate.template.send\"),\n \"data-cy\": \"api-template-send-button\",\n }}\n />\n </Pane.Footer>\n </>\n )}\n </NeetoUIForm>\n </>\n );\n};\n\nexport default SendToApiPane;\n"],"names":["SEND_TO_API_FORM_INITIAL_VALUES","endpoint","additionalData","ADDITIONAL_DATA_INITIAL_VALUE","shouldSaveAsTemplate","templateName","SEND_TO_API_FORM_VALIDATION_SCHEMA","yup","object","string","required","t","matches","VALID_URL_REGEX","array","of","key","value","when","is","then","entity","SEND_TO_API_HELP_POPOVER_PROPS","sendToApi","description","helpLinkProps","popoverProps","position","label","sanitizeHelpPopoverProps","map","unless","path","omit","formatAdditionalData","isPresent","buildHelpPopoverProps","combinedProps","mergeDeepLeft","SendToApiPane","props","isOpen","onClose","_jsx","Pane","children","paneProps","SendToApiForm","_objectSpread","_ref","ownerId","onSubmit","isSubmitting","_ref$canManageTemplat","canManageTemplates","_ref$helpPopoverProps","helpPopoverProps","setFocusField","_useTranslation","useTranslation","_useFetchTemplates","useFetchTemplates","status","templateType","API_TEMPLATE_TYPE","_useFetchTemplates$da","data","_useFetchTemplates$da2","_useFetchTemplates$da3","templates","isLoadingTemplates","isLoading","handleTemplateChange","setValues","values","option","template","findBy","id","modify","handleSubmit","formValues","additionalDataModifiedFormValues","rejectEmptyKeyValuePairs","shouldShowSaveAsTemplate","_ref2","arguments","length","undefined","hasContent","isContentDifferentFromTemplate","areValuesEqual","equals","isTemplateSelectionEnabled","_buildHelpPopoverProp","sendToApiHelpPopoverProps","additionalDataHelpPopoverProps","className","Spinner","_jsxs","_Fragment","Header","Typography","style","weight","HelpPopover","NeetoUIForm","formikProps","initialValues","validationSchema","_ref3","Body","Select","innerRef","options","renameKeys","name","placeholder","onChange","Input","SAMPLE_URL","ref","KeyValuePairs","labelProps","helpIconProps","SaveAsTemplate","Footer","ActionBlock","cancelButtonProps","onClick","submitButtonProps"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKO,IAAMA,+BAA+B,GAAG;AAC7CC,EAAAA,QAAQ,EAAE,EAAE;EACZC,cAAc,EAAE,CAACC,mCAA6B,CAAC;AAC/CC,EAAAA,oBAAoB,EAAE,KAAK;AAC3BC,EAAAA,YAAY,EAAE;AAChB,CAAC;AAEM,IAAMC,kCAAkC,GAAGC,cAAG,CAACC,MAAM,CAAC;EAC3DP,QAAQ,EAAEM,cAAG,CACVE,MAAM,EAAE,CACRC,QAAQ,CAACC,SAAC,CAAC,sDAAsD,CAAC,CAAC,CACnEC,OAAO,CACNC,qBAAe,EACfF,SAAC,CAAC,mDAAmD,CACvD,CAAC;AACHT,EAAAA,cAAc,EAAEK,cAAG,CAChBO,KAAK,EAAE,CACPC,EAAE,CAACR,cAAG,CAACC,MAAM,CAAC;AAAEQ,IAAAA,GAAG,EAAET,cAAG,CAACE,MAAM,EAAE;AAAEQ,IAAAA,KAAK,EAAEV,cAAG,CAACE,MAAM;AAAG,GAAC,CAAC,CAAC;EAC7DJ,YAAY,EAAEE,cAAG,CAACE,MAAM,EAAE,CAACS,IAAI,CAAC,sBAAsB,EAAE;AACtDC,IAAAA,EAAE,EAAE,IAAI;AACRC,IAAAA,IAAI,EAAEb,cAAG,CAACE,MAAM,EAAE,CAACC,QAAQ,CACzBC,SAAC,CAAC,yDAAyD,EAAE;MAC3DU,MAAM,EAAEV,SAAC,CAAC,4CAA4C;AACxD,KAAC,CACH;GACD;AACH,CAAC,CAAC;AAEK,IAAMW,8BAA8B,GAAG;AAC5CC,EAAAA,SAAS,EAAE;AACTC,IAAAA,WAAW,EAAEb,SAAC,CACZ,6DACF,CAAC;AACDc,IAAAA,aAAa,EAAE;AAAE,MAAA,SAAS,EAAE;KAAgC;AAC5DC,IAAAA,YAAY,EAAE;AAAEC,MAAAA,QAAQ,EAAE;AAAM;GACjC;AACDzB,EAAAA,cAAc,EAAE;AACdsB,IAAAA,WAAW,EAAEb,SAAC,CACZ,kEACF,CAAC;AACDc,IAAAA,aAAa,EAAE;AACbG,MAAAA,KAAK,EAAEjB,SAAC,CAAC,+CAA+C,CAAC;AACzD,MAAA,SAAS,EAAE;KACZ;AACDgB,IAAAA,QAAQ,EAAE;AACZ;AACF,CAAC;;AC5CD,IAAME,wBAAwB,GAAGC,SAAG,CAClCC,YAAM,CAACC,UAAI,CAAC,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,EAAEC,UAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CACjE,CAAC;AAEM,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAGhC,cAAc,EAAA;EAAA,OAChDiC,mBAAS,CAACjC,cAAc,CAAC,GAAGA,cAAc,GAAG,CAACC,mCAA6B,CAAC;AAAA,CAAA;AAEvE,IAAMiC,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAGV,YAAY,EAAI;AACnD,EAAA,IAAMW,aAAa,GAAGC,mBAAa,CACjCZ,YAAY,EACZJ,8BACF,CAAC;EAED,OAAOO,wBAAwB,CAACQ,aAAa,CAAC;AAChD,CAAC;;;;ACAD,IAAME,aAAa,GAAG,SAAhBA,aAAaA,CAAGC,KAAK,EAAI;AAC7B,EAAA,IAAQC,MAAM,GAAcD,KAAK,CAAzBC,MAAM;IAAEC,OAAO,GAAKF,KAAK,CAAjBE,OAAO;EAEvB,oBACEC,cAAA,CAACC,IAAI,EAAA;AAAOH,IAAAA,MAAM,EAANA,MAAM;AAAEC,IAAAA,OAAO,EAAPA,OAAO;IAAAG,QAAA,EACxB,SAAAA,QAAAA,CAAAC,SAAS,EAAA;MAAA,oBAAIH,cAAA,CAACI,aAAa,EAAAC,aAAA,KAAAA,aAAA,CAAAA,aAAA,CAAA,EAAA,EAAUR,KAAK,CAAA,EAAA,EAAA,EAAA;AAAEM,QAAAA,SAAS,EAATA;AAAS,OAAA,CAAA,CAAK,CAAC;AAAA;AAAA,GACxD,CAAC;AAEX;AAEA,IAAMC,aAAa,GAAG,SAAhBA,aAAaA,CAAAE,IAAA,EAQb;AAAA,EAAA,IAPJC,OAAO,GAAAD,IAAA,CAAPC,OAAO;IACPR,OAAO,GAAAO,IAAA,CAAPP,OAAO;IACPS,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IACRC,YAAY,GAAAH,IAAA,CAAZG,YAAY;IAAAC,qBAAA,GAAAJ,IAAA,CACZK,kBAAkB;AAAlBA,IAAAA,kBAAkB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,qBAAA;IAAAE,qBAAA,GAAAN,IAAA,CACzBO,gBAAgB;AAAhBA,IAAAA,gBAAgB,GAAAD,qBAAA,KAAA,KAAA,CAAA,GAAG,EAAE,GAAAA,qBAAA;AACRE,IAAAA,aAAa,GAAAR,IAAA,CAA1BH,SAAS,CAAIW,aAAa;AAE1B,EAAA,IAAAC,eAAA,GAAcC,2BAAc,EAAE;IAAtBhD,CAAC,GAAA+C,eAAA,CAAD/C,CAAC;EAET,IAAAiD,kBAAA,GACEC,iCAAiB,CAAC;AAChBC,MAAAA,MAAM,EAAE,QAAQ;AAChBC,MAAAA,YAAY,EAAEC,uBAAiB;AAC/Bd,MAAAA,OAAO,EAAPA;AACF,KAAC,CAAC;IAAAe,qBAAA,GAAAL,kBAAA,CALIM,IAAI;AAAAC,IAAAA,sBAAA,GAAAF,qBAAA,KAAA,KAAA,CAAA,GAAuB,EAAE,GAAAA,qBAAA;IAAAG,sBAAA,GAAAD,sBAAA,CAArBE,SAAS;AAATA,IAAAA,SAAS,GAAAD,sBAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,sBAAA;IAAoBE,kBAAkB,GAAAV,kBAAA,CAA7BW,SAAS;EAOhD,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAIC,SAAS,EAAEC,MAAM,EAAEC,MAAM,EAAK;IAC1D,IAAI,CAACA,MAAM,EAAE;IAEb,IAAMC,QAAQ,GAAGC,gBAAM,CAAC;MAAEC,EAAE,EAAEH,MAAM,CAAC1D;KAAO,EAAEoD,SAAS,CAAC;AAExDI,IAAAA,SAAS,CAAAzB,aAAA,CAAAA,aAAA,CAAA,EAAA,EACJ0B,MAAM,CACNK,EAAAA,YAAM,CAAC,gBAAgB,EAAE7C,oBAAoB,EAAE0C,QAAQ,CAAC,CAC5D,CAAC;GACH;AAED,EAAA,IAAMI,YAAY,GAAG,SAAfA,YAAYA,CAAGC,UAAU,EAAI;IACjC,IAAMC,gCAAgC,GAAGH,YAAM,CAC7C,gBAAgB,EAChBI,8BAAwB,EACxBF,UACF,CAAC;IAED9B,QAAQ,CAAC+B,gCAAgC,CAAC;GAC3C;AAED,EAAA,IAAME,wBAAwB,GAAG,SAA3BA,wBAAwBA,GAA8C;AAAA,IAAA,IAAAC,KAAA,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAP,EAAE;MAAnCR,EAAE,GAAAO,KAAA,CAAFP,EAAE;MAAE7E,QAAQ,GAAAoF,KAAA,CAARpF,QAAQ;MAAEC,cAAc,GAAAmF,KAAA,CAAdnF,cAAc;IAC9D,IAAM0E,QAAQ,GAAGC,gBAAM,CAAC;AAAEC,MAAAA,EAAE,EAAFA;KAAI,EAAET,SAAS,CAAC;AAC1C,IAAA,IAAMoB,UAAU,GACdtD,mBAAS,CAAClC,QAAQ,CAAC,IACnBkC,mBAAS,CAACgD,8BAAwB,CAACjF,cAAc,CAAC,CAAC;AAErD,IAAA,IAAMwF,8BAA8B,GAAG,EACrCC,sBAAc,CAACf,QAAQ,KAARA,IAAAA,IAAAA,QAAQ,KAARA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,QAAQ,CAAE3E,QAAQ,EAAEA,QAAQ,CAAC,IAC5C2F,YAAM,CAAChB,QAAQ,KAAA,IAAA,IAARA,QAAQ,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAARA,QAAQ,CAAE1E,cAAc,EAAEA,cAAc,CAAC,CACjD;IAED,OAAOuF,UAAU,IAAIC,8BAA8B;GACpD;AAED,EAAA,IAAMG,0BAA0B,GAAG1D,mBAAS,CAACkC,SAAS,CAAC;AAEvD,EAAA,IAAAyB,qBAAA,GAGI1D,qBAAqB,CAACoB,gBAAgB,CAAC;IAF9BuC,yBAAyB,GAAAD,qBAAA,CAApCvE,SAAS;IACOyE,8BAA8B,GAAAF,qBAAA,CAA9C5F,cAAc;AAGhB,EAAA,IAAIoE,kBAAkB,EAAE;AACtB,IAAA,oBACE3B,cAAA,CAAA,KAAA,EAAA;AAAKsD,MAAAA,SAAS,EAAC,gDAAgD;AAAApD,MAAAA,QAAA,eAC7DF,cAAA,CAACuD,OAAO,EAAE,EAAA;AAAC,KACR,CAAC;AAEV;EAEA,oBACEC,eAAA,CAAAC,mBAAA,EAAA;AAAAvD,IAAAA,QAAA,EACEF,cAAAA,cAAA,CAACC,IAAI,CAACyD,MAAM,EAAA;MAAAxD,QAAA,eACVsD,eAAA,CAACG,UAAU,EAAA;AAACC,QAAAA,KAAK,EAAC,IAAI;AAACC,QAAAA,MAAM,EAAC,UAAU;QAAA3D,QAAA,EAAA,CACrClC,CAAC,CAAC,oCAAoC,CAAC,eACxCgC,cAAA,CAAC8D,WAAW,EAAAzD,aAAA,CAAA;AAACiD,UAAAA,SAAS,EAAC;SAAWF,EAAAA,yBAAyB,CAAG,CAAC;OACrD;AAAC,KACF,CAAC,eACdpD,cAAA,CAAC+D,WAAW,EAAA;AACVC,MAAAA,WAAW,EAAE;AACXC,QAAAA,aAAa,EAAE5G,+BAA+B;AAC9C6G,QAAAA,gBAAgB,EAAEvG,kCAAkC;AACpD6C,QAAAA,QAAQ,EAAE6B;OACV;MAAAnC,QAAA,EAED,SAAAA,QAAAA,CAAAiE,KAAA,EAAA;AAAA,QAAA,IAAGpC,MAAM,GAAAoC,KAAA,CAANpC,MAAM;UAAED,SAAS,GAAAqC,KAAA,CAATrC,SAAS;QAAA,oBACnB0B,eAAA,CAAAC,mBAAA,EAAA;AAAAvD,UAAAA,QAAA,EACEF,cAAAA,cAAA,CAACC,IAAI,CAACmE,IAAI,EAAA;AAAAlE,YAAAA,QAAA,eACRsD,eAAA,CAAA,KAAA,EAAA;AAAKF,cAAAA,SAAS,EAAC,kBAAkB;AAAApD,cAAAA,QAAA,EAC9BgD,CAAAA,0BAA0B,iBACzBlD,cAAA,CAACqE,MAAM,EAAA;AACLC,gBAAAA,QAAQ,EAAExD,aAAc;AACxBc,gBAAAA,SAAS,EAAED,kBAAmB;AAC9B1C,gBAAAA,KAAK,EAAEjB,CAAC,CAAC,qCAAqC,CAAE;gBAChDuG,OAAO,EAAEC,oBAAU,CACjB;AAAEC,kBAAAA,IAAI,EAAE,OAAO;AAAEtC,kBAAAA,EAAE,EAAE;iBAAS,EAC9BT,SACF,CAAE;AACFgD,gBAAAA,WAAW,EAAE1G,CAAC,CACZ,iDACF,CAAE;AACF2G,gBAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAE1C,QAAQ,EAAA;AAAA,kBAAA,OAChBJ,oBAAoB,CAACC,SAAS,EAAEC,MAAM,EAAEE,QAAQ,CAAC;AAAA;AAClD,eACF,CACF,eACDjC,cAAA,CAAC4E,KAAK,EAAA;gBACJ7G,QAAQ,EAAA,IAAA;AACRkB,gBAAAA,KAAK,EAAEjB,CAAC,CAAC,mCAAmC,CAAE;AAC9CyG,gBAAAA,IAAI,EAAC,UAAU;AACfC,gBAAAA,WAAW,EAAEG,gBAAW;AACxBC,gBAAAA,GAAG,EAAE5B,0BAA0B,GAAG,IAAI,GAAGpC;AAAc,eACxD,CAAC,eACFd,cAAA,CAAC+E,mBAAa,EAAA;AACZ9F,gBAAAA,KAAK,EAAEjB,CAAC,CAAC,yCAAyC,CAAE;AACpDyG,gBAAAA,IAAI,EAAC,gBAAgB;AACrBO,gBAAAA,UAAU,EAAE;AACV1B,kBAAAA,SAAS,EAAE,MAAM;AACjB2B,kBAAAA,aAAa,EAAE;AACblG,oBAAAA,YAAY,EAAEsE;AAChB;AACF;AAAE,eACH,CAAC,EACD1C,kBAAkB,IAAI8B,wBAAwB,CAACV,MAAM,CAAC,iBACrD/B,cAAA,CAACkF,sBAAc,IAAE,CAClB;aACE;AAAC,WACG,CAAC,eACZlF,cAAA,CAACC,IAAI,CAACkF,MAAM,EAAA;YAAAjF,QAAA,eACVF,cAAA,CAACoF,WAAW,EAAA;AACJ3E,cAAAA,YAAY,EAAZA,YAAY;AAClB4E,cAAAA,iBAAiB,EAAE;AACjBC,gBAAAA,OAAO,EAAEvF,OAAO;AAChB,gBAAA,SAAS,EAAE;eACX;AACFwF,cAAAA,iBAAiB,EAAE;AACjBtG,gBAAAA,KAAK,EAAEjB,CAAC,CAAC,oCAAoC,CAAC;AAC9C,gBAAA,SAAS,EAAE;AACb;aACD;AAAC,WACS,CAAC;AAAA,SACd,CAAC;AAAA;AACJ,KACU,CAAC;AAAA,GACd,CAAC;AAEP,CAAC;;;;"}
package/dist/cjs/index.js CHANGED
@@ -54,8 +54,9 @@ require('@bigbinary/neetoui/Label');
54
54
  require('@bigbinary/neetoui/formik/Switch');
55
55
  require('@bigbinary/neetoui/Textarea');
56
56
  require('@bigbinary/neetoui/formik/Select');
57
- require('../utils-aj-r79qQ.js');
57
+ require('../utils-D7y24q1q.js');
58
58
  require('@bigbinary/neeto-icons/Delete');
59
+ require('@bigbinary/neeto-molecules/HelpPopover');
59
60
 
60
61
 
61
62
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/index.js CHANGED
@@ -52,6 +52,7 @@ import '@bigbinary/neetoui/Label';
52
52
  import '@bigbinary/neetoui/formik/Switch';
53
53
  import '@bigbinary/neetoui/Textarea';
54
54
  import '@bigbinary/neetoui/formik/Select';
55
- import './utils-BUob2F8X.js';
55
+ import './utils-oljkG5EG.js';
56
56
  import '@bigbinary/neeto-icons/Delete';
57
+ import '@bigbinary/neeto-molecules/HelpPopover';
57
58
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -2,6 +2,7 @@
2
2
 
3
3
  var i18next = require('i18next');
4
4
  var yup = require('yup');
5
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
5
6
  var formik = require('formik');
6
7
  var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
7
8
  var Delete = require('@bigbinary/neeto-icons/Delete');
@@ -107,11 +108,15 @@ var isKeyOrValueNotEmpty = ramda.whereAny({
107
108
  value: neetoCist.isNotEmpty
108
109
  });
109
110
 
111
+ 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; }
112
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).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; }
110
113
  var KeyValuePairs = reactUtils.withT(function (_ref) {
111
114
  var t = _ref.t,
112
115
  name = _ref.name,
113
116
  _ref$label = _ref.label,
114
- label = _ref$label === void 0 ? "" : _ref$label;
117
+ label = _ref$label === void 0 ? "" : _ref$label,
118
+ _ref$labelProps = _ref.labelProps,
119
+ labelProps = _ref$labelProps === void 0 ? {} : _ref$labelProps;
115
120
  return /*#__PURE__*/jsxRuntime.jsx(formik.FieldArray, {
116
121
  name: name,
117
122
  children: function children(arrayHelpers) {
@@ -119,9 +124,9 @@ var KeyValuePairs = reactUtils.withT(function (_ref) {
119
124
  var showDeleteButton = data.length > 1 || isKeyOrValueNotEmpty(data[0]);
120
125
  return /*#__PURE__*/jsxRuntime.jsxs("div", {
121
126
  className: "space-y-2",
122
- children: [/*#__PURE__*/jsxRuntime.jsx(Label, {
127
+ children: [/*#__PURE__*/jsxRuntime.jsx(Label, _objectSpread(_objectSpread({}, labelProps), {}, {
123
128
  children: label
124
- }), data.map(function (_, index) {
129
+ })), data.map(function (_, index) {
125
130
  return /*#__PURE__*/jsxRuntime.jsxs("div", {
126
131
  className: "flex h-8 space-x-3",
127
132
  children: [/*#__PURE__*/jsxRuntime.jsx(Input, {
@@ -178,4 +183,4 @@ exports.SAMPLE_URL = SAMPLE_URL;
178
183
  exports.TEMPLATE_STATUS = TEMPLATE_STATUS;
179
184
  exports.VALID_URL_REGEX = VALID_URL_REGEX;
180
185
  exports.rejectEmptyKeyValuePairs = rejectEmptyKeyValuePairs;
181
- //# sourceMappingURL=utils-aj-r79qQ.js.map
186
+ //# sourceMappingURL=utils-D7y24q1q.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils-D7y24q1q.js","sources":["../app/javascript/src/components/Api/constants.js","../app/javascript/src/components/Api/ApiTemplates/constants.js","../app/javascript/src/components/commons/KeyValuePairs/utils.js","../app/javascript/src/components/commons/KeyValuePairs/index.jsx","../app/javascript/src/components/Api/utils.js"],"sourcesContent":["export const VALID_URL_REGEX =\n /^(https?):\\/\\/([a-zA-Z0-9-]+\\.){1,}[a-zA-Z]{2,}\\/?[^\\s]*$/;\n\nexport const ADDITIONAL_DATA_INITIAL_VALUE = { key: \"\", value: \"\" };\n\nexport const API_TEMPLATE_TYPE = \"api_template\";\n","import { t } from \"i18next\";\nimport * as yup from \"yup\";\n\nimport {\n ADDITIONAL_DATA_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 additionalData: [ADDITIONAL_DATA_INITIAL_VALUE],\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(t(\"neetoMessageTemplate.template.validation.namePresence\")),\n endpoint: yup\n .string()\n .required(t(\"neetoMessageTemplate.api.validation.endpointPresence\"))\n .matches(\n VALID_URL_REGEX,\n t(\"neetoMessageTemplate.api.validation.validEndpoint\")\n ),\n additionalData: yup\n .array()\n .of(yup.object({ key: yup.string(), value: yup.string() })),\n});\n\nexport const TEMPLATE_STATUS = { ACTIVE: \"active\", INACTIVE: \"inactive\" };\n","import { isNotEmpty } from \"neetocist\";\nimport { whereAny } from \"ramda\";\n\nimport { ADDITIONAL_DATA_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(ADDITIONAL_DATA_INITIAL_VALUE);\n\n return;\n }\n\n arrayHelpers.remove(index);\n};\n\nexport const addOption = arrayHelpers =>\n arrayHelpers.push(ADDITIONAL_DATA_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, Label } from \"neetoui\";\nimport { Input } from \"neetoui/formik\";\n\nimport { addOption, isKeyOrValueNotEmpty, removeOption } from \"./utils\";\n\nconst KeyValuePairs = withT(({ t, name, label = \"\", labelProps = {} }) => (\n <FieldArray {...{ name }}>\n {arrayHelpers => {\n const data = arrayHelpers.form.values[name];\n\n const showDeleteButton = data.length > 1 || isKeyOrValueNotEmpty(data[0]);\n\n return (\n <div className=\"space-y-2\">\n <Label {...labelProps}>{label}</Label>\n {data.map((_, index) => (\n <div className=\"flex h-8 space-x-3\" key={index}>\n <Input\n className=\"w-2/5\"\n data-cy={`key-input-${index}`}\n name={`${name}.${index}.key`}\n placeholder={t(\"neetoMessageTemplate.api.key\")}\n />\n <Input\n className=\"w-3/5\"\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-full justify-center\"\n data-cy=\"add-key-value-pair-button\"\n label={t(\"neetoMessageTemplate.api.addKeyValuePair\")}\n style=\"secondary\"\n onClick={() => addOption(arrayHelpers)}\n />\n </div>\n );\n }}\n </FieldArray>\n));\n\nexport default KeyValuePairs;\n","import { isEmpty, reject, whereAny } from \"ramda\";\n\nexport const rejectEmptyKeyValuePairs = reject(\n whereAny({ key: isEmpty, value: isEmpty })\n);\n"],"names":["VALID_URL_REGEX","ADDITIONAL_DATA_INITIAL_VALUE","key","value","API_TEMPLATE_TYPE","dataIndex","title","t","render","status","width","FILTER_COLUMNS","node","label","type","values","API_TEMPLATE_INITIAL_VALUES","name","endpoint","additionalData","SAMPLE_URL","API_TEMPLATE_FORM_VALIDATION_SCHEMA","yup","object","string","trim","required","matches","array","of","TEMPLATE_STATUS","ACTIVE","INACTIVE","removeOption","_ref","arrayHelpers","index","data","length","remove","push","addOption","isKeyOrValueNotEmpty","whereAny","isNotEmpty","KeyValuePairs","withT","_ref$label","_ref$labelProps","labelProps","_jsx","FieldArray","children","form","showDeleteButton","_jsxs","className","Label","_objectSpread","map","_","Input","concat","placeholder","suffix","Button","icon","Delete","size","style","onClick","rejectEmptyKeyValuePairs","reject","isEmpty"],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { t } from 'i18next';
2
2
  import * as yup from 'yup';
3
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
3
4
  import { FieldArray } from 'formik';
4
5
  import { withT } from '@bigbinary/neeto-commons-frontend/react-utils';
5
6
  import Delete from '@bigbinary/neeto-icons/Delete';
@@ -86,11 +87,15 @@ var isKeyOrValueNotEmpty = whereAny({
86
87
  value: isNotEmpty
87
88
  });
88
89
 
90
+ 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; }
91
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).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; }
89
92
  var KeyValuePairs = withT(function (_ref) {
90
93
  var t = _ref.t,
91
94
  name = _ref.name,
92
95
  _ref$label = _ref.label,
93
- label = _ref$label === void 0 ? "" : _ref$label;
96
+ label = _ref$label === void 0 ? "" : _ref$label,
97
+ _ref$labelProps = _ref.labelProps,
98
+ labelProps = _ref$labelProps === void 0 ? {} : _ref$labelProps;
94
99
  return /*#__PURE__*/jsx(FieldArray, {
95
100
  name: name,
96
101
  children: function children(arrayHelpers) {
@@ -98,9 +103,9 @@ var KeyValuePairs = withT(function (_ref) {
98
103
  var showDeleteButton = data.length > 1 || isKeyOrValueNotEmpty(data[0]);
99
104
  return /*#__PURE__*/jsxs("div", {
100
105
  className: "space-y-2",
101
- children: [/*#__PURE__*/jsx(Label, {
106
+ children: [/*#__PURE__*/jsx(Label, _objectSpread(_objectSpread({}, labelProps), {}, {
102
107
  children: label
103
- }), data.map(function (_, index) {
108
+ })), data.map(function (_, index) {
104
109
  return /*#__PURE__*/jsxs("div", {
105
110
  className: "flex h-8 space-x-3",
106
111
  children: [/*#__PURE__*/jsx(Input, {
@@ -148,4 +153,4 @@ var rejectEmptyKeyValuePairs = reject(whereAny({
148
153
  }));
149
154
 
150
155
  export { API_TEMPLATE_INITIAL_VALUES as A, FILTER_COLUMNS as F, KeyValuePairs as K, SAMPLE_URL as S, TEMPLATE_STATUS as T, VALID_URL_REGEX as V, ADDITIONAL_DATA_INITIAL_VALUE as a, API_TEMPLATE_TYPE as b, API_TEMPLATE_FORM_VALIDATION_SCHEMA as c, rejectEmptyKeyValuePairs as r };
151
- //# sourceMappingURL=utils-BUob2F8X.js.map
156
+ //# sourceMappingURL=utils-oljkG5EG.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils-oljkG5EG.js","sources":["../app/javascript/src/components/Api/constants.js","../app/javascript/src/components/Api/ApiTemplates/constants.js","../app/javascript/src/components/commons/KeyValuePairs/utils.js","../app/javascript/src/components/commons/KeyValuePairs/index.jsx","../app/javascript/src/components/Api/utils.js"],"sourcesContent":["export const VALID_URL_REGEX =\n /^(https?):\\/\\/([a-zA-Z0-9-]+\\.){1,}[a-zA-Z]{2,}\\/?[^\\s]*$/;\n\nexport const ADDITIONAL_DATA_INITIAL_VALUE = { key: \"\", value: \"\" };\n\nexport const API_TEMPLATE_TYPE = \"api_template\";\n","import { t } from \"i18next\";\nimport * as yup from \"yup\";\n\nimport {\n ADDITIONAL_DATA_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 additionalData: [ADDITIONAL_DATA_INITIAL_VALUE],\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(t(\"neetoMessageTemplate.template.validation.namePresence\")),\n endpoint: yup\n .string()\n .required(t(\"neetoMessageTemplate.api.validation.endpointPresence\"))\n .matches(\n VALID_URL_REGEX,\n t(\"neetoMessageTemplate.api.validation.validEndpoint\")\n ),\n additionalData: yup\n .array()\n .of(yup.object({ key: yup.string(), value: yup.string() })),\n});\n\nexport const TEMPLATE_STATUS = { ACTIVE: \"active\", INACTIVE: \"inactive\" };\n","import { isNotEmpty } from \"neetocist\";\nimport { whereAny } from \"ramda\";\n\nimport { ADDITIONAL_DATA_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(ADDITIONAL_DATA_INITIAL_VALUE);\n\n return;\n }\n\n arrayHelpers.remove(index);\n};\n\nexport const addOption = arrayHelpers =>\n arrayHelpers.push(ADDITIONAL_DATA_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, Label } from \"neetoui\";\nimport { Input } from \"neetoui/formik\";\n\nimport { addOption, isKeyOrValueNotEmpty, removeOption } from \"./utils\";\n\nconst KeyValuePairs = withT(({ t, name, label = \"\", labelProps = {} }) => (\n <FieldArray {...{ name }}>\n {arrayHelpers => {\n const data = arrayHelpers.form.values[name];\n\n const showDeleteButton = data.length > 1 || isKeyOrValueNotEmpty(data[0]);\n\n return (\n <div className=\"space-y-2\">\n <Label {...labelProps}>{label}</Label>\n {data.map((_, index) => (\n <div className=\"flex h-8 space-x-3\" key={index}>\n <Input\n className=\"w-2/5\"\n data-cy={`key-input-${index}`}\n name={`${name}.${index}.key`}\n placeholder={t(\"neetoMessageTemplate.api.key\")}\n />\n <Input\n className=\"w-3/5\"\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-full justify-center\"\n data-cy=\"add-key-value-pair-button\"\n label={t(\"neetoMessageTemplate.api.addKeyValuePair\")}\n style=\"secondary\"\n onClick={() => addOption(arrayHelpers)}\n />\n </div>\n );\n }}\n </FieldArray>\n));\n\nexport default KeyValuePairs;\n","import { isEmpty, reject, whereAny } from \"ramda\";\n\nexport const rejectEmptyKeyValuePairs = reject(\n whereAny({ key: isEmpty, value: isEmpty })\n);\n"],"names":["VALID_URL_REGEX","ADDITIONAL_DATA_INITIAL_VALUE","key","value","API_TEMPLATE_TYPE","dataIndex","title","t","render","status","width","FILTER_COLUMNS","node","label","type","values","API_TEMPLATE_INITIAL_VALUES","name","endpoint","additionalData","SAMPLE_URL","API_TEMPLATE_FORM_VALIDATION_SCHEMA","yup","object","string","trim","required","matches","array","of","TEMPLATE_STATUS","ACTIVE","INACTIVE","removeOption","_ref","arrayHelpers","index","data","length","remove","push","addOption","isKeyOrValueNotEmpty","whereAny","isNotEmpty","KeyValuePairs","withT","_ref$label","_ref$labelProps","labelProps","_jsx","FieldArray","children","form","showDeleteButton","_jsxs","className","Label","_objectSpread","map","_","Input","concat","placeholder","suffix","Button","icon","Delete","size","style","onClick","rejectEmptyKeyValuePairs","reject","isEmpty"],"mappings":";;;;;;;;;;;;;AAAO,IAAMA,eAAe,GAC1B;AAEK,IAAMC,6BAA6B,GAAG;AAAEC,EAAAA,GAAG,EAAE,EAAE;AAAEC,EAAAA,KAAK,EAAE;AAAG;AAE3D,IAAMC,iBAAiB,GAAG;;ACGA,CAC/B;AACEC,EAAAA,SAAS,EAAE,MAAM;AACjBH,EAAAA,GAAG,EAAE,MAAM;EACXI,KAAK,EAAEC,CAAC,CAAC,oCAAoC;AAC/C,CAAC,EACD;AACEF,EAAAA,SAAS,EAAE,QAAQ;AACnBH,EAAAA,GAAG,EAAE,QAAQ;AACbI,EAAAA,KAAK,EAAEC,CAAC,CAAC,sCAAsC,CAAC;AAChDC,EAAAA,MAAM,EAAE,SAARA,MAAMA,CAAEC,MAAM,EAAA;AAAA,IAAA,OACZA,MAAM,KAAK,QAAQ,GACfF,CAAC,CAAC,0BAA0B,CAAC,GAC7BA,CAAC,CAAC,yBAAyB,CAAC;AAAA,GAAA;AAClCG,EAAAA,KAAK,EAAE;AACT,CAAC;AAGI,IAAMC,cAAc,GAAG,CAC5B;AACET,EAAAA,GAAG,EAAE,MAAM;AACXU,EAAAA,IAAI,EAAE,MAAM;AACZC,EAAAA,KAAK,EAAEN,CAAC,CAAC,oCAAoC,CAAC;AAC9CO,EAAAA,IAAI,EAAE;AACR,CAAC,EACD;AACEZ,EAAAA,GAAG,EAAE,QAAQ;AACbU,EAAAA,IAAI,EAAE,QAAQ;AACdC,EAAAA,KAAK,EAAEN,CAAC,CAAC,sCAAsC,CAAC;AAChDO,EAAAA,IAAI,EAAE,eAAe;AACrBC,EAAAA,MAAM,EAAE,CACN;AAAEF,IAAAA,KAAK,EAAEN,CAAC,CAAC,0BAA0B,CAAC;AAAEJ,IAAAA,KAAK,EAAE;AAAS,GAAC,EACzD;AAAEU,IAAAA,KAAK,EAAEN,CAAC,CAAC,yBAAyB,CAAC;AAAEJ,IAAAA,KAAK,EAAE;GAAY;AAE9D,CAAC;AAGI,IAAMa,2BAA2B,GAAG;AACzCC,EAAAA,IAAI,EAAE,EAAE;AACRC,EAAAA,QAAQ,EAAE,EAAE;EACZC,cAAc,EAAE,CAAClB,6BAA6B;AAChD;AAEO,IAAMmB,UAAU,GAAG;IAEbC,mCAAmC,GAAGC,GAAG,CAACC,MAAM,CAAC;AAC5DN,EAAAA,IAAI,EAAEK,GAAG,CACNE,MAAM,EAAE,CACRC,IAAI,EAAE,CACNC,QAAQ,CAACnB,CAAC,CAAC,uDAAuD,CAAC,CAAC;EACvEW,QAAQ,EAAEI,GAAG,CACVE,MAAM,EAAE,CACRE,QAAQ,CAACnB,CAAC,CAAC,sDAAsD,CAAC,CAAC,CACnEoB,OAAO,CACN3B,eAAe,EACfO,CAAC,CAAC,mDAAmD,CACvD,CAAC;AACHY,EAAAA,cAAc,EAAEG,GAAG,CAChBM,KAAK,EAAE,CACPC,EAAE,CAACP,GAAG,CAACC,MAAM,CAAC;AAAErB,IAAAA,GAAG,EAAEoB,GAAG,CAACE,MAAM,EAAE;AAAErB,IAAAA,KAAK,EAAEmB,GAAG,CAACE,MAAM;AAAG,GAAC,CAAC;AAC9D,CAAC;AAEM,IAAMM,eAAe,GAAG;AAAEC,EAAAA,MAAM,EAAE,QAAQ;AAAEC,EAAAA,QAAQ,EAAE;AAAW;;ACjEjE,IAAMC,YAAY,GAAG,SAAfA,YAAYA,CAAAC,IAAA,EAAsC;AAAA,EAAA,IAAhCC,YAAY,GAAAD,IAAA,CAAZC,YAAY;IAAEC,KAAK,GAAAF,IAAA,CAALE,KAAK;IAAEC,IAAI,GAAAH,IAAA,CAAJG,IAAI;AACtD,EAAA,IAAIA,IAAI,CAACC,MAAM,KAAK,CAAC,EAAE;AACrBH,IAAAA,YAAY,CAACI,MAAM,CAACH,KAAK,CAAC;AAC1BD,IAAAA,YAAY,CAACK,IAAI,CAACvC,6BAA6B,CAAC;AAEhD,IAAA;AACF;AAEAkC,EAAAA,YAAY,CAACI,MAAM,CAACH,KAAK,CAAC;AAC5B,CAAC;AAEM,IAAMK,SAAS,GAAG,SAAZA,SAASA,CAAGN,YAAY,EAAA;AAAA,EAAA,OACnCA,YAAY,CAACK,IAAI,CAACvC,6BAA6B,CAAC;AAAA,CAAA;AAE3C,IAAMyC,oBAAoB,GAAGC,QAAQ,CAAC;AAC3CzC,EAAAA,GAAG,EAAE0C,UAAU;AACfzC,EAAAA,KAAK,EAAEyC;AACT,CAAC,CAAC;;;;ACdF,IAAMC,aAAa,GAAGC,KAAK,CAAC,UAAAZ,IAAA,EAAA;AAAA,EAAA,IAAG3B,CAAC,GAAA2B,IAAA,CAAD3B,CAAC;IAAEU,IAAI,GAAAiB,IAAA,CAAJjB,IAAI;IAAA8B,UAAA,GAAAb,IAAA,CAAErB,KAAK;AAALA,IAAAA,KAAK,GAAAkC,UAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,UAAA;IAAAC,eAAA,GAAAd,IAAA,CAAEe,UAAU;AAAVA,IAAAA,UAAU,GAAAD,eAAA,KAAA,KAAA,CAAA,GAAG,EAAE,GAAAA,eAAA;EAAA,oBACjEE,GAAA,CAACC,UAAU,EAAA;AAAOlC,IAAAA,IAAI,EAAJA,IAAI;AAAAmC,IAAAA,QAAA,EACnB,SAAAA,QAAAjB,CAAAA,YAAY,EAAI;MACf,IAAME,IAAI,GAAGF,YAAY,CAACkB,IAAI,CAACtC,MAAM,CAACE,IAAI,CAAC;AAE3C,MAAA,IAAMqC,gBAAgB,GAAGjB,IAAI,CAACC,MAAM,GAAG,CAAC,IAAII,oBAAoB,CAACL,IAAI,CAAC,CAAC,CAAC,CAAC;AAEzE,MAAA,oBACEkB,IAAA,CAAA,KAAA,EAAA;AAAKC,QAAAA,SAAS,EAAC,WAAW;QAAAJ,QAAA,EAAA,cACxBF,GAAA,CAACO,KAAK,EAAAC,aAAA,CAAAA,aAAA,CAAA,EAAA,EAAKT,UAAU,CAAA,EAAA,EAAA,EAAA;AAAAG,UAAAA,QAAA,EAAGvC;SAAa,CAAA,CAAC,EACrCwB,IAAI,CAACsB,GAAG,CAAC,UAACC,CAAC,EAAExB,KAAK,EAAA;AAAA,UAAA,oBACjBmB,IAAA,CAAA,KAAA,EAAA;AAAKC,YAAAA,SAAS,EAAC,oBAAoB;YAAAJ,QAAA,EAAA,cACjCF,GAAA,CAACW,KAAK,EAAA;AACJL,cAAAA,SAAS,EAAC,OAAO;cACjB,SAAAM,EAAAA,YAAAA,CAAAA,MAAA,CAAsB1B,KAAK,CAAG;cAC9BnB,IAAI,EAAA,EAAA,CAAA6C,MAAA,CAAK7C,IAAI,OAAA6C,MAAA,CAAI1B,KAAK,EAAO,MAAA,CAAA;cAC7B2B,WAAW,EAAExD,CAAC,CAAC,8BAA8B;AAAE,aAChD,CAAC,eACF2C,GAAA,CAACW,KAAK,EAAA;AACJL,cAAAA,SAAS,EAAC,OAAO;cACjB,SAAAM,EAAAA,cAAAA,CAAAA,MAAA,CAAwB1B,KAAK,CAAG;cAChCnB,IAAI,EAAA,EAAA,CAAA6C,MAAA,CAAK7C,IAAI,OAAA6C,MAAA,CAAI1B,KAAK,EAAS,QAAA,CAAA;AAC/B2B,cAAAA,WAAW,EAAExD,CAAC,CAAC,gCAAgC,CAAE;AACjDyD,cAAAA,MAAM,EACJV,gBAAgB,iBACdJ,GAAA,CAACe,MAAM,EAAA;gBACL,SAAAH,EAAAA,wBAAAA,CAAAA,MAAA,CAAkC1B,KAAK,CAAG;AAC1C8B,gBAAAA,IAAI,EAAEC,MAAO;AACbC,gBAAAA,IAAI,EAAC,OAAO;AACZC,gBAAAA,KAAK,EAAC,MAAM;gBACZC,OAAO,EAAE,SAATA,OAAOA,GAAA;AAAA,kBAAA,OACLrC,YAAY,CAAC;AAAEE,oBAAAA,YAAY,EAAZA,YAAY;AAAEC,oBAAAA,KAAK,EAALA,KAAK;AAAEC,oBAAAA,IAAI,EAAJA;AAAK,mBAAC,CAAC;AAAA;eAE9C;AAEJ,aACF,CAAC;AAAA,WAAA,EAzBqCD,KA0BpC,CAAC;AAAA,SACP,CAAC,eACFc,GAAA,CAACe,MAAM,EAAA;AACLT,UAAAA,SAAS,EAAC,uBAAuB;AACjC,UAAA,SAAA,EAAQ,2BAA2B;AACnC3C,UAAAA,KAAK,EAAEN,CAAC,CAAC,0CAA0C,CAAE;AACrD8D,UAAAA,KAAK,EAAC,WAAW;UACjBC,OAAO,EAAE,SAATA,OAAOA,GAAA;YAAA,OAAQ7B,SAAS,CAACN,YAAY,CAAC;AAAA;AAAC,SACxC,CAAC;AAAA,OACC,CAAC;AAEV;AAAC,GACS,CAAC;AAAA,CACd;;ICxDYoC,wBAAwB,GAAGC,MAAM,CAC5C7B,QAAQ,CAAC;AAAEzC,EAAAA,GAAG,EAAEuE,OAAO;AAAEtE,EAAAA,KAAK,EAAEsE;AAAQ,CAAC,CAC3C;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bigbinary/neeto-message-templates-frontend",
3
- "version": "1.3.7",
3
+ "version": "1.3.8",
4
4
  "description": "To manage message templates across neeto products.",
5
5
  "license": "UNLICENSED",
6
6
  "homepage": "https://github.com/bigbinary/neeto-message-templates-nano",
@@ -61,15 +61,15 @@
61
61
  "@babel/preset-typescript": "7.26.0",
62
62
  "@babel/runtime": "7.26.0",
63
63
  "@bigbinary/babel-preset-neeto": "^1.0.3",
64
- "@bigbinary/eslint-plugin-neeto": "1.5.7",
64
+ "@bigbinary/eslint-plugin-neeto": "1.5.8",
65
65
  "@bigbinary/neeto-cist": "1.0.15",
66
- "@bigbinary/neeto-commons-frontend": "4.13.22",
67
- "@bigbinary/neeto-editor": "1.45.12",
66
+ "@bigbinary/neeto-commons-frontend": "4.13.26",
67
+ "@bigbinary/neeto-editor": "1.45.21",
68
68
  "@bigbinary/neeto-filters-frontend": "4.3.15",
69
- "@bigbinary/neeto-icons": "1.20.26",
70
- "@bigbinary/neeto-molecules": "3.15.31",
71
- "@bigbinary/neeto-team-members-frontend": "4.4.23",
72
- "@bigbinary/neetoui": "8.2.63",
69
+ "@bigbinary/neeto-icons": "1.20.29",
70
+ "@bigbinary/neeto-molecules": "3.15.57",
71
+ "@bigbinary/neeto-team-members-frontend": "4.4.25",
72
+ "@bigbinary/neetoui": "8.2.74",
73
73
  "@emotion/is-prop-valid": "1.2.0",
74
74
  "@faker-js/faker": "8.2.0",
75
75
  "@honeybadger-io/js": "6.10.1",
@@ -174,13 +174,13 @@
174
174
  "@babel/plugin-syntax-dynamic-import": "^7.8.3",
175
175
  "@babel/runtime": "7.26.0",
176
176
  "@bigbinary/neeto-cist": "1.0.15",
177
- "@bigbinary/neeto-commons-frontend": "4.13.22",
178
- "@bigbinary/neeto-editor": "1.45.12",
177
+ "@bigbinary/neeto-commons-frontend": "4.13.26",
178
+ "@bigbinary/neeto-editor": "1.45.21",
179
179
  "@bigbinary/neeto-filters-frontend": "4.3.15",
180
- "@bigbinary/neeto-icons": "1.20.26",
181
- "@bigbinary/neeto-molecules": "3.15.31",
182
- "@bigbinary/neeto-team-members-frontend": "4.4.23",
183
- "@bigbinary/neetoui": "8.2.63",
180
+ "@bigbinary/neeto-icons": "1.20.29",
181
+ "@bigbinary/neeto-molecules": "3.15.57",
182
+ "@bigbinary/neeto-team-members-frontend": "4.4.25",
183
+ "@bigbinary/neetoui": "8.2.74",
184
184
  "@honeybadger-io/js": "6.10.1",
185
185
  "@honeybadger-io/react": "6.1.25",
186
186
  "@tailwindcss/container-queries": "^0.1.1",
package/types.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import React, { ReactNode } from "react";
2
2
 
3
- import { PopoverProps } from "@bigbinary/neetoui";
3
+ import { PopoverProps, ButtonProps } from "@bigbinary/neetoui";
4
4
 
5
5
  type Breadcrumb = {
6
6
  text: string;
@@ -12,6 +12,20 @@ type TemplateVariables = {
12
12
  label: string;
13
13
  };
14
14
 
15
+ interface SendToApiHelpPopoverProps {
16
+ sendToApi?: {
17
+ title?: string;
18
+ description?: React.ReactNode;
19
+ helpLinkProps?: ButtonProps;
20
+ popoverProps?: PopoverProps;
21
+ },
22
+ additionalData?: {
23
+ title?: string;
24
+ description?: React.ReactNode;
25
+ helpLinkProps?: ButtonProps;
26
+ } & PopoverProps;
27
+ }
28
+
15
29
  interface MessageTemplatesProps {
16
30
  breadcrumbs?: Breadcrumb[];
17
31
  type?: string;
@@ -54,6 +68,7 @@ interface SendToApiPaneProps {
54
68
  onSubmit?: (values: { [key: string]: any }) => void;
55
69
  isSubmitting?: boolean;
56
70
  canManageTemplates?: boolean;
71
+ helpPopoverProps?: SendToApiHelpPopoverProps;
57
72
  }
58
73
 
59
74
  export const MessageTemplates = React.FC<MessageTemplatesProps>;
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils-BUob2F8X.js","sources":["../app/javascript/src/components/Api/constants.js","../app/javascript/src/components/Api/ApiTemplates/constants.js","../app/javascript/src/components/commons/KeyValuePairs/utils.js","../app/javascript/src/components/commons/KeyValuePairs/index.jsx","../app/javascript/src/components/Api/utils.js"],"sourcesContent":["export const VALID_URL_REGEX =\n /^(https?):\\/\\/([a-zA-Z0-9-]+\\.){1,}[a-zA-Z]{2,}\\/?[^\\s]*$/;\n\nexport const ADDITIONAL_DATA_INITIAL_VALUE = { key: \"\", value: \"\" };\n\nexport const API_TEMPLATE_TYPE = \"api_template\";\n","import { t } from \"i18next\";\nimport * as yup from \"yup\";\n\nimport {\n ADDITIONAL_DATA_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 additionalData: [ADDITIONAL_DATA_INITIAL_VALUE],\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(t(\"neetoMessageTemplate.template.validation.namePresence\")),\n endpoint: yup\n .string()\n .required(t(\"neetoMessageTemplate.api.validation.endpointPresence\"))\n .matches(\n VALID_URL_REGEX,\n t(\"neetoMessageTemplate.api.validation.validEndpoint\")\n ),\n additionalData: yup\n .array()\n .of(yup.object({ key: yup.string(), value: yup.string() })),\n});\n\nexport const TEMPLATE_STATUS = { ACTIVE: \"active\", INACTIVE: \"inactive\" };\n","import { isNotEmpty } from \"neetocist\";\nimport { whereAny } from \"ramda\";\n\nimport { ADDITIONAL_DATA_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(ADDITIONAL_DATA_INITIAL_VALUE);\n\n return;\n }\n\n arrayHelpers.remove(index);\n};\n\nexport const addOption = arrayHelpers =>\n arrayHelpers.push(ADDITIONAL_DATA_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, Label } from \"neetoui\";\nimport { Input } from \"neetoui/formik\";\n\nimport { addOption, isKeyOrValueNotEmpty, removeOption } from \"./utils\";\n\nconst KeyValuePairs = withT(({ t, name, label = \"\" }) => (\n <FieldArray {...{ name }}>\n {arrayHelpers => {\n const data = arrayHelpers.form.values[name];\n\n const showDeleteButton = data.length > 1 || isKeyOrValueNotEmpty(data[0]);\n\n return (\n <div className=\"space-y-2\">\n <Label>{label}</Label>\n {data.map((_, index) => (\n <div className=\"flex h-8 space-x-3\" key={index}>\n <Input\n className=\"w-2/5\"\n data-cy={`key-input-${index}`}\n name={`${name}.${index}.key`}\n placeholder={t(\"neetoMessageTemplate.api.key\")}\n />\n <Input\n className=\"w-3/5\"\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-full justify-center\"\n data-cy=\"add-key-value-pair-button\"\n label={t(\"neetoMessageTemplate.api.addKeyValuePair\")}\n style=\"secondary\"\n onClick={() => addOption(arrayHelpers)}\n />\n </div>\n );\n }}\n </FieldArray>\n));\n\nexport default KeyValuePairs;\n","import { isEmpty, reject, whereAny } from \"ramda\";\n\nexport const rejectEmptyKeyValuePairs = reject(\n whereAny({ key: isEmpty, value: isEmpty })\n);\n"],"names":["VALID_URL_REGEX","ADDITIONAL_DATA_INITIAL_VALUE","key","value","API_TEMPLATE_TYPE","dataIndex","title","t","render","status","width","FILTER_COLUMNS","node","label","type","values","API_TEMPLATE_INITIAL_VALUES","name","endpoint","additionalData","SAMPLE_URL","API_TEMPLATE_FORM_VALIDATION_SCHEMA","yup","object","string","trim","required","matches","array","of","TEMPLATE_STATUS","ACTIVE","INACTIVE","removeOption","_ref","arrayHelpers","index","data","length","remove","push","addOption","isKeyOrValueNotEmpty","whereAny","isNotEmpty","KeyValuePairs","withT","_ref$label","_jsx","FieldArray","children","form","showDeleteButton","_jsxs","className","Label","map","_","Input","concat","placeholder","suffix","Button","icon","Delete","size","style","onClick","rejectEmptyKeyValuePairs","reject","isEmpty"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils-aj-r79qQ.js","sources":["../app/javascript/src/components/Api/constants.js","../app/javascript/src/components/Api/ApiTemplates/constants.js","../app/javascript/src/components/commons/KeyValuePairs/utils.js","../app/javascript/src/components/commons/KeyValuePairs/index.jsx","../app/javascript/src/components/Api/utils.js"],"sourcesContent":["export const VALID_URL_REGEX =\n /^(https?):\\/\\/([a-zA-Z0-9-]+\\.){1,}[a-zA-Z]{2,}\\/?[^\\s]*$/;\n\nexport const ADDITIONAL_DATA_INITIAL_VALUE = { key: \"\", value: \"\" };\n\nexport const API_TEMPLATE_TYPE = \"api_template\";\n","import { t } from \"i18next\";\nimport * as yup from \"yup\";\n\nimport {\n ADDITIONAL_DATA_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 additionalData: [ADDITIONAL_DATA_INITIAL_VALUE],\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(t(\"neetoMessageTemplate.template.validation.namePresence\")),\n endpoint: yup\n .string()\n .required(t(\"neetoMessageTemplate.api.validation.endpointPresence\"))\n .matches(\n VALID_URL_REGEX,\n t(\"neetoMessageTemplate.api.validation.validEndpoint\")\n ),\n additionalData: yup\n .array()\n .of(yup.object({ key: yup.string(), value: yup.string() })),\n});\n\nexport const TEMPLATE_STATUS = { ACTIVE: \"active\", INACTIVE: \"inactive\" };\n","import { isNotEmpty } from \"neetocist\";\nimport { whereAny } from \"ramda\";\n\nimport { ADDITIONAL_DATA_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(ADDITIONAL_DATA_INITIAL_VALUE);\n\n return;\n }\n\n arrayHelpers.remove(index);\n};\n\nexport const addOption = arrayHelpers =>\n arrayHelpers.push(ADDITIONAL_DATA_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, Label } from \"neetoui\";\nimport { Input } from \"neetoui/formik\";\n\nimport { addOption, isKeyOrValueNotEmpty, removeOption } from \"./utils\";\n\nconst KeyValuePairs = withT(({ t, name, label = \"\" }) => (\n <FieldArray {...{ name }}>\n {arrayHelpers => {\n const data = arrayHelpers.form.values[name];\n\n const showDeleteButton = data.length > 1 || isKeyOrValueNotEmpty(data[0]);\n\n return (\n <div className=\"space-y-2\">\n <Label>{label}</Label>\n {data.map((_, index) => (\n <div className=\"flex h-8 space-x-3\" key={index}>\n <Input\n className=\"w-2/5\"\n data-cy={`key-input-${index}`}\n name={`${name}.${index}.key`}\n placeholder={t(\"neetoMessageTemplate.api.key\")}\n />\n <Input\n className=\"w-3/5\"\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-full justify-center\"\n data-cy=\"add-key-value-pair-button\"\n label={t(\"neetoMessageTemplate.api.addKeyValuePair\")}\n style=\"secondary\"\n onClick={() => addOption(arrayHelpers)}\n />\n </div>\n );\n }}\n </FieldArray>\n));\n\nexport default KeyValuePairs;\n","import { isEmpty, reject, whereAny } from \"ramda\";\n\nexport const rejectEmptyKeyValuePairs = reject(\n whereAny({ key: isEmpty, value: isEmpty })\n);\n"],"names":["VALID_URL_REGEX","ADDITIONAL_DATA_INITIAL_VALUE","key","value","API_TEMPLATE_TYPE","dataIndex","title","t","render","status","width","FILTER_COLUMNS","node","label","type","values","API_TEMPLATE_INITIAL_VALUES","name","endpoint","additionalData","SAMPLE_URL","API_TEMPLATE_FORM_VALIDATION_SCHEMA","yup","object","string","trim","required","matches","array","of","TEMPLATE_STATUS","ACTIVE","INACTIVE","removeOption","_ref","arrayHelpers","index","data","length","remove","push","addOption","isKeyOrValueNotEmpty","whereAny","isNotEmpty","KeyValuePairs","withT","_ref$label","_jsx","FieldArray","children","form","showDeleteButton","_jsxs","className","Label","map","_","Input","concat","placeholder","suffix","Button","icon","Delete","size","style","onClick","rejectEmptyKeyValuePairs","reject","isEmpty"],"mappings":"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"}