@bigbinary/neeto-message-templates-frontend 1.3.10 → 1.4.0
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 +69 -17
- package/app/javascript/src/translations/en.json +18 -6
- package/dist/ApiTemplates.js +52 -19
- package/dist/ApiTemplates.js.map +1 -1
- package/dist/JsonEditor-ChlZYDDV.js +404 -0
- package/dist/JsonEditor-ChlZYDDV.js.map +1 -0
- package/dist/JsonEditor-Cz_76w4s.js +436 -0
- package/dist/JsonEditor-Cz_76w4s.js.map +1 -0
- package/dist/MessageTemplates.js +4 -1
- package/dist/MessageTemplates.js.map +1 -1
- package/dist/SendMessagePane.js +1 -4
- package/dist/SendMessagePane.js.map +1 -1
- package/dist/SendToApiPane.js +65 -60
- package/dist/SendToApiPane.js.map +1 -1
- package/dist/cjs/ApiTemplates.js +61 -28
- package/dist/cjs/ApiTemplates.js.map +1 -1
- package/dist/cjs/MessageTemplates.js +4 -1
- package/dist/cjs/MessageTemplates.js.map +1 -1
- package/dist/cjs/SendMessagePane.js +1 -4
- package/dist/cjs/SendMessagePane.js.map +1 -1
- package/dist/cjs/SendToApiPane.js +68 -63
- package/dist/cjs/SendToApiPane.js.map +1 -1
- package/dist/cjs/index.js +7 -5
- package/dist/cjs/index.js.map +1 -1
- package/dist/index.js +7 -5
- package/dist/index.js.map +1 -1
- package/dist/inject-css-DmrvuTKK.js +4 -0
- package/dist/inject-css-DmrvuTKK.js.map +1 -0
- package/dist/inject-css-vQvjPR2x.js +6 -0
- package/dist/inject-css-vQvjPR2x.js.map +1 -0
- package/dist/utils-3fvk3PIJ.js +54 -0
- package/dist/utils-3fvk3PIJ.js.map +1 -0
- package/dist/utils-o_45ksFf.js +51 -0
- package/dist/utils-o_45ksFf.js.map +1 -0
- package/package.json +21 -17
- package/types.d.ts +30 -3
- package/dist/utils-CdkVjz8p.js +0 -80
- package/dist/utils-CdkVjz8p.js.map +0 -1
- package/dist/utils-D7y24q1q.js +0 -186
- package/dist/utils-D7y24q1q.js.map +0 -1
- package/dist/utils-DCNzEjAw.js +0 -83
- package/dist/utils-DCNzEjAw.js.map +0 -1
- package/dist/utils-oljkG5EG.js +0 -156
- package/dist/utils-oljkG5EG.js.map +0 -1
package/dist/SendToApiPane.js
CHANGED
|
@@ -8,73 +8,74 @@ import Typography from '@bigbinary/neetoui/Typography';
|
|
|
8
8
|
import ActionBlock from '@bigbinary/neetoui/formik/ActionBlock';
|
|
9
9
|
import Input from '@bigbinary/neetoui/formik/Input';
|
|
10
10
|
import NeetoUIForm from '@bigbinary/neetoui/formik/Form';
|
|
11
|
-
import {
|
|
11
|
+
import { equals, modify } from 'ramda';
|
|
12
12
|
import { useTranslation } from 'react-i18next';
|
|
13
|
-
import { V as VALID_URL_REGEX,
|
|
14
|
-
import { S as SaveAsTemplate, a as areValuesEqual } from './utils-
|
|
13
|
+
import { V as VALID_URL_REGEX, C as CUSTOM_HEADERS_INITIAL_VALUE, d as buildHelpPopoverProps, S as SAMPLE_URL, c as CustomHeaders, J as JsonEditor, r as rejectEmptyKeyValuePairs, a as API_TEMPLATE_TYPE } from './JsonEditor-ChlZYDDV.js';
|
|
14
|
+
import { S as SaveAsTemplate, a as areValuesEqual } from './utils-o_45ksFf.js';
|
|
15
15
|
import { b as useFetchTemplates } from './useTemplatesApi-D63swqeh.js';
|
|
16
16
|
import { t } from 'i18next';
|
|
17
17
|
import * as yup from 'yup';
|
|
18
18
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
19
|
+
import 'react';
|
|
19
20
|
import 'formik';
|
|
21
|
+
import '@bigbinary/neetoui/formik/Switch';
|
|
20
22
|
import '@bigbinary/neeto-commons-frontend/react-utils';
|
|
21
23
|
import '@bigbinary/neeto-icons/Delete';
|
|
22
24
|
import '@bigbinary/neetoui/Button';
|
|
25
|
+
import '@babel/runtime/helpers/slicedToArray';
|
|
26
|
+
import '@monaco-editor/react';
|
|
27
|
+
import '@bigbinary/neeto-icons/Help';
|
|
28
|
+
import '@bigbinary/neeto-molecules/DynamicVariables';
|
|
23
29
|
import '@bigbinary/neetoui/Label';
|
|
24
|
-
import '
|
|
25
|
-
import '@babel/runtime/helpers/objectWithoutProperties';
|
|
26
|
-
import 'classnames';
|
|
27
|
-
import '@bigbinary/neetoui/formik/Switch';
|
|
30
|
+
import './inject-css-DmrvuTKK.js';
|
|
28
31
|
import '@tanstack/react-query';
|
|
29
32
|
import 'axios';
|
|
30
33
|
import 'qs';
|
|
31
34
|
|
|
32
35
|
var SEND_TO_API_FORM_INITIAL_VALUES = {
|
|
33
36
|
endpoint: "",
|
|
34
|
-
|
|
37
|
+
enableCustomHeaders: false,
|
|
38
|
+
customHeaders: [CUSTOM_HEADERS_INITIAL_VALUE],
|
|
39
|
+
body: "{}",
|
|
35
40
|
shouldSaveAsTemplate: false,
|
|
36
41
|
templateName: ""
|
|
37
42
|
};
|
|
38
43
|
var SEND_TO_API_FORM_VALIDATION_SCHEMA = yup.object({
|
|
39
|
-
endpoint: yup.string().required(t("neetoMessageTemplate.api.validation.endpointPresence")).matches(VALID_URL_REGEX, t("neetoMessageTemplate.api.validation.validEndpoint")),
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
44
|
+
endpoint: yup.string().trim().required(t("neetoMessageTemplate.api.validation.endpointPresence")).matches(VALID_URL_REGEX, t("neetoMessageTemplate.api.validation.validEndpoint")),
|
|
45
|
+
body: yup.string().trim().required(t("neetoMessageTemplate.validations.requiredEntity", {
|
|
46
|
+
entity: t("neetoMessageTemplate.template.body")
|
|
47
|
+
})).test("is-not-empty", t("neetoMessageTemplate.validations.requiredEntity", {
|
|
48
|
+
entity: t("neetoMessageTemplate.template.body")
|
|
49
|
+
}), function (value) {
|
|
50
|
+
return isPresent(value);
|
|
51
|
+
}).test("is-valid-json", t("neetoMessageTemplate.api.validation.invalidJsonBody"), function (value) {
|
|
52
|
+
try {
|
|
53
|
+
JSON.parse(value);
|
|
54
|
+
return true;
|
|
55
|
+
} catch (_unused) {
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
49
58
|
})
|
|
50
59
|
});
|
|
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
|
-
};
|
|
70
60
|
|
|
71
|
-
var
|
|
72
|
-
|
|
73
|
-
return isPresent(additionalData) ? additionalData : [ADDITIONAL_DATA_INITIAL_VALUE];
|
|
61
|
+
var formatCustomHeaders = function formatCustomHeaders(customHeaders) {
|
|
62
|
+
return isPresent(customHeaders) ? customHeaders : [CUSTOM_HEADERS_INITIAL_VALUE];
|
|
74
63
|
};
|
|
75
|
-
var
|
|
76
|
-
var
|
|
77
|
-
|
|
64
|
+
var areHeadersSame = function areHeadersSame(enableCustomHeaders, customHeaders) {
|
|
65
|
+
var template = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
66
|
+
var templateHasCustomHeaders = template.enableCustomHeaders,
|
|
67
|
+
templateHeaders = template.customHeaders;
|
|
68
|
+
if (!enableCustomHeaders && !templateHasCustomHeaders) return true;
|
|
69
|
+
if (enableCustomHeaders !== templateHasCustomHeaders) return false;
|
|
70
|
+
return equals(customHeaders, templateHeaders);
|
|
71
|
+
};
|
|
72
|
+
var isBodyAvailable = function isBodyAvailable(body) {
|
|
73
|
+
try {
|
|
74
|
+
var data = JSON.parse(body);
|
|
75
|
+
return isPresent(data);
|
|
76
|
+
} catch (_unused) {
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
78
79
|
};
|
|
79
80
|
|
|
80
81
|
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; }
|
|
@@ -85,6 +86,7 @@ var SendToApiPane = function SendToApiPane(props) {
|
|
|
85
86
|
return /*#__PURE__*/jsx(Pane, {
|
|
86
87
|
isOpen: isOpen,
|
|
87
88
|
onClose: onClose,
|
|
89
|
+
size: "large",
|
|
88
90
|
children: function children(paneProps) {
|
|
89
91
|
return /*#__PURE__*/jsx(SendToApiForm, _objectSpread({}, _objectSpread(_objectSpread({}, props), {}, {
|
|
90
92
|
paneProps: paneProps
|
|
@@ -97,6 +99,7 @@ var SendToApiForm = function SendToApiForm(_ref) {
|
|
|
97
99
|
onClose = _ref.onClose,
|
|
98
100
|
onSubmit = _ref.onSubmit,
|
|
99
101
|
isSubmitting = _ref.isSubmitting,
|
|
102
|
+
templateVariables = _ref.templateVariables,
|
|
100
103
|
_ref$canManageTemplat = _ref.canManageTemplates,
|
|
101
104
|
canManageTemplates = _ref$canManageTemplat === void 0 ? true : _ref$canManageTemplat,
|
|
102
105
|
_ref$helpPopoverProps = _ref.helpPopoverProps,
|
|
@@ -119,28 +122,32 @@ var SendToApiForm = function SendToApiForm(_ref) {
|
|
|
119
122
|
var template = findBy({
|
|
120
123
|
id: option.value
|
|
121
124
|
}, templates);
|
|
122
|
-
setValues(_objectSpread(_objectSpread({}, values), modify("
|
|
125
|
+
setValues(_objectSpread(_objectSpread({}, values), modify("customHeaders", formatCustomHeaders, template)));
|
|
123
126
|
};
|
|
124
127
|
var handleSubmit = function handleSubmit(formValues) {
|
|
125
|
-
var
|
|
126
|
-
onSubmit(
|
|
128
|
+
var customHeadersModifiedFormValues = modify("customHeaders", rejectEmptyKeyValuePairs, formValues);
|
|
129
|
+
onSubmit(customHeadersModifiedFormValues);
|
|
127
130
|
};
|
|
128
131
|
var shouldShowSaveAsTemplate = function shouldShowSaveAsTemplate() {
|
|
129
132
|
var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
130
133
|
id = _ref2.id,
|
|
131
134
|
endpoint = _ref2.endpoint,
|
|
132
|
-
|
|
135
|
+
enableCustomHeaders = _ref2.enableCustomHeaders,
|
|
136
|
+
_ref2$customHeaders = _ref2.customHeaders,
|
|
137
|
+
customHeaders = _ref2$customHeaders === void 0 ? [CUSTOM_HEADERS_INITIAL_VALUE] : _ref2$customHeaders,
|
|
138
|
+
body = _ref2.body;
|
|
133
139
|
var template = findBy({
|
|
134
140
|
id: id
|
|
135
141
|
}, templates);
|
|
136
|
-
var hasContent = isPresent(endpoint) || isPresent(rejectEmptyKeyValuePairs(
|
|
137
|
-
var isContentDifferentFromTemplate = !(areValuesEqual(template === null || template === void 0 ? void 0 : template.endpoint, endpoint) && equals(template === null || template === void 0 ? void 0 : template.
|
|
142
|
+
var hasContent = isPresent(endpoint) || isPresent(rejectEmptyKeyValuePairs(customHeaders)) || isBodyAvailable(body);
|
|
143
|
+
var isContentDifferentFromTemplate = !(areValuesEqual(template === null || template === void 0 ? void 0 : template.endpoint, endpoint) && areHeadersSame(enableCustomHeaders, customHeaders, template) && equals(template === null || template === void 0 ? void 0 : template.body, body));
|
|
138
144
|
return hasContent && isContentDifferentFromTemplate;
|
|
139
145
|
};
|
|
140
146
|
var isTemplateSelectionEnabled = isPresent(templates);
|
|
141
147
|
var _buildHelpPopoverProp = buildHelpPopoverProps(helpPopoverProps),
|
|
142
148
|
sendToApiHelpPopoverProps = _buildHelpPopoverProp.sendToApi,
|
|
143
|
-
|
|
149
|
+
customHeadersHelpPopoverProps = _buildHelpPopoverProp.customHeaders,
|
|
150
|
+
bodyHelpPopoverProps = _buildHelpPopoverProp.body;
|
|
144
151
|
if (isLoadingTemplates) {
|
|
145
152
|
return /*#__PURE__*/jsx("div", {
|
|
146
153
|
className: "flex h-full w-full items-center justify-center",
|
|
@@ -168,7 +175,7 @@ var SendToApiForm = function SendToApiForm(_ref) {
|
|
|
168
175
|
return /*#__PURE__*/jsxs(Fragment, {
|
|
169
176
|
children: [/*#__PURE__*/jsx(Pane.Body, {
|
|
170
177
|
children: /*#__PURE__*/jsxs("div", {
|
|
171
|
-
className: "w-full space-y-5",
|
|
178
|
+
className: "w-full space-y-5 mb-10",
|
|
172
179
|
children: [isTemplateSelectionEnabled && /*#__PURE__*/jsx(Select, {
|
|
173
180
|
innerRef: setFocusField,
|
|
174
181
|
isLoading: isLoadingTemplates,
|
|
@@ -187,15 +194,13 @@ var SendToApiForm = function SendToApiForm(_ref) {
|
|
|
187
194
|
name: "endpoint",
|
|
188
195
|
placeholder: SAMPLE_URL,
|
|
189
196
|
ref: isTemplateSelectionEnabled ? null : setFocusField
|
|
190
|
-
}), /*#__PURE__*/jsx(
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
}
|
|
198
|
-
}
|
|
197
|
+
}), /*#__PURE__*/jsx(CustomHeaders, {
|
|
198
|
+
helpPopoverProps: customHeadersHelpPopoverProps
|
|
199
|
+
}), /*#__PURE__*/jsx(JsonEditor, {
|
|
200
|
+
templateVariables: templateVariables,
|
|
201
|
+
helpPopoverProps: bodyHelpPopoverProps,
|
|
202
|
+
initialValue: values.body,
|
|
203
|
+
name: "body"
|
|
199
204
|
}), canManageTemplates && shouldShowSaveAsTemplate(values) && /*#__PURE__*/jsx(SaveAsTemplate, {})]
|
|
200
205
|
})
|
|
201
206
|
}), /*#__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\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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"}
|
|
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 { isPresent } from \"neetocist\";\nimport * as yup from \"yup\";\n\nimport { CUSTOM_HEADERS_INITIAL_VALUE, VALID_URL_REGEX } from \"../constants\";\n\nexport const SEND_TO_API_FORM_INITIAL_VALUES = {\n endpoint: \"\",\n enableCustomHeaders: false,\n customHeaders: [CUSTOM_HEADERS_INITIAL_VALUE],\n body: \"{}\",\n shouldSaveAsTemplate: false,\n templateName: \"\",\n};\n\nexport const SEND_TO_API_FORM_VALIDATION_SCHEMA = yup.object({\n endpoint: yup\n .string()\n .trim()\n .required(t(\"neetoMessageTemplate.api.validation.endpointPresence\"))\n .matches(\n VALID_URL_REGEX,\n t(\"neetoMessageTemplate.api.validation.validEndpoint\")\n ),\n body: yup\n .string()\n .trim()\n .required(\n t(\"neetoMessageTemplate.validations.requiredEntity\", {\n entity: t(\"neetoMessageTemplate.template.body\"),\n })\n )\n .test(\n \"is-not-empty\",\n t(\"neetoMessageTemplate.validations.requiredEntity\", {\n entity: t(\"neetoMessageTemplate.template.body\"),\n }),\n value => isPresent(value)\n )\n .test(\n \"is-valid-json\",\n t(\"neetoMessageTemplate.api.validation.invalidJsonBody\"),\n value => {\n try {\n JSON.parse(value);\n\n return true;\n } catch {\n return false;\n }\n }\n ),\n});\n","import { isPresent } from \"neetocist\";\nimport { equals } from \"ramda\";\n\nimport { CUSTOM_HEADERS_INITIAL_VALUE } from \"../constants\";\n\nexport const formatCustomHeaders = customHeaders =>\n isPresent(customHeaders) ? customHeaders : [CUSTOM_HEADERS_INITIAL_VALUE];\n\nexport const areHeadersSame = (\n enableCustomHeaders,\n customHeaders,\n template = {}\n) => {\n const {\n enableCustomHeaders: templateHasCustomHeaders,\n customHeaders: templateHeaders,\n } = template;\n if (!enableCustomHeaders && !templateHasCustomHeaders) return true;\n\n if (enableCustomHeaders !== templateHasCustomHeaders) return false;\n\n return equals(customHeaders, templateHeaders);\n};\n\nexport const isBodyAvailable = body => {\n try {\n const data = JSON.parse(body);\n\n return isPresent(data);\n } catch {\n return false;\n }\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 {\n API_TEMPLATE_TYPE,\n CUSTOM_HEADERS_INITIAL_VALUE,\n} from \"components/Api/constants\";\nimport {\n buildHelpPopoverProps,\n rejectEmptyKeyValuePairs,\n} from \"components/Api/utils\";\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 { areHeadersSame, formatCustomHeaders, isBodyAvailable } from \"./utils\";\n\nimport CustomHeaders from \"../CustomHeaders\";\nimport JsonEditor from \"../JsonEditor\";\n\nconst SendToApiPane = props => {\n const { isOpen, onClose } = props;\n\n return (\n <Pane {...{ isOpen, onClose }} size=\"large\">\n {paneProps => <SendToApiForm {...{ ...props, paneProps }} />}\n </Pane>\n );\n};\n\nconst SendToApiForm = ({\n ownerId,\n onClose,\n onSubmit,\n isSubmitting,\n templateVariables,\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 setValues({\n ...values,\n ...modify(\"customHeaders\", formatCustomHeaders, template),\n });\n };\n\n const handleSubmit = formValues => {\n const customHeadersModifiedFormValues = modify(\n \"customHeaders\",\n rejectEmptyKeyValuePairs,\n formValues\n );\n\n onSubmit(customHeadersModifiedFormValues);\n };\n\n const shouldShowSaveAsTemplate = ({\n id,\n endpoint,\n enableCustomHeaders,\n customHeaders = [CUSTOM_HEADERS_INITIAL_VALUE],\n body,\n } = {}) => {\n const template = findBy({ id }, templates);\n const hasContent =\n isPresent(endpoint) ||\n isPresent(rejectEmptyKeyValuePairs(customHeaders)) ||\n isBodyAvailable(body);\n\n const isContentDifferentFromTemplate = !(\n areValuesEqual(template?.endpoint, endpoint) &&\n areHeadersSame(enableCustomHeaders, customHeaders, template) &&\n equals(template?.body, body)\n );\n\n return hasContent && isContentDifferentFromTemplate;\n };\n\n const isTemplateSelectionEnabled = isPresent(templates);\n\n const {\n sendToApi: sendToApiHelpPopoverProps,\n customHeaders: customHeadersHelpPopoverProps,\n body: bodyHelpPopoverProps,\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 mb-10\">\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 <CustomHeaders\n helpPopoverProps={customHeadersHelpPopoverProps}\n />\n <JsonEditor\n {...{ templateVariables }}\n helpPopoverProps={bodyHelpPopoverProps}\n initialValue={values.body}\n name=\"body\"\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","enableCustomHeaders","customHeaders","CUSTOM_HEADERS_INITIAL_VALUE","body","shouldSaveAsTemplate","templateName","SEND_TO_API_FORM_VALIDATION_SCHEMA","yup","object","string","trim","required","t","matches","VALID_URL_REGEX","entity","test","value","isPresent","JSON","parse","_unused","formatCustomHeaders","areHeadersSame","template","arguments","length","undefined","templateHasCustomHeaders","templateHeaders","equals","isBodyAvailable","data","SendToApiPane","props","isOpen","onClose","_jsx","Pane","size","children","paneProps","SendToApiForm","_objectSpread","_ref","ownerId","onSubmit","isSubmitting","templateVariables","_ref$canManageTemplat","canManageTemplates","_ref$helpPopoverProps","helpPopoverProps","setFocusField","_useTranslation","useTranslation","_useFetchTemplates","useFetchTemplates","status","templateType","API_TEMPLATE_TYPE","_useFetchTemplates$da","_useFetchTemplates$da2","_useFetchTemplates$da3","templates","isLoadingTemplates","isLoading","handleTemplateChange","setValues","values","option","findBy","id","modify","handleSubmit","formValues","customHeadersModifiedFormValues","rejectEmptyKeyValuePairs","shouldShowSaveAsTemplate","_ref2","_ref2$customHeaders","hasContent","isContentDifferentFromTemplate","areValuesEqual","isTemplateSelectionEnabled","_buildHelpPopoverProp","buildHelpPopoverProps","sendToApiHelpPopoverProps","sendToApi","customHeadersHelpPopoverProps","bodyHelpPopoverProps","className","Spinner","_jsxs","_Fragment","Header","Typography","style","weight","HelpPopover","NeetoUIForm","formikProps","initialValues","validationSchema","_ref3","Body","Select","innerRef","label","options","renameKeys","name","placeholder","onChange","Input","SAMPLE_URL","ref","CustomHeaders","JsonEditor","initialValue","SaveAsTemplate","Footer","ActionBlock","cancelButtonProps","onClick","submitButtonProps"],"mappings":"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"}
|
package/dist/cjs/ApiTemplates.js
CHANGED
|
@@ -7,7 +7,7 @@ var react = require('react');
|
|
|
7
7
|
var neetoCist = require('@bigbinary/neeto-cist');
|
|
8
8
|
var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
|
|
9
9
|
var FiltersBar = require('@bigbinary/neeto-filters-frontend/Bar');
|
|
10
|
-
var utils
|
|
10
|
+
var utils = require('@bigbinary/neeto-filters-frontend/utils');
|
|
11
11
|
var Container = require('@bigbinary/neeto-molecules/Container');
|
|
12
12
|
var NeetoHeader = require('@bigbinary/neeto-molecules/Header');
|
|
13
13
|
var SubHeader = require('@bigbinary/neeto-molecules/SubHeader');
|
|
@@ -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
|
|
23
|
+
var JsonEditor = require('../JsonEditor-Cz_76w4s.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');
|
|
@@ -31,8 +31,13 @@ var MoreDropdown = require('@bigbinary/neeto-molecules/MoreDropdown');
|
|
|
31
31
|
var jsxRuntime = require('react/jsx-runtime');
|
|
32
32
|
require('yup');
|
|
33
33
|
require('formik');
|
|
34
|
+
require('@bigbinary/neetoui/formik/Switch');
|
|
34
35
|
require('@bigbinary/neeto-icons/Delete');
|
|
36
|
+
require('@monaco-editor/react');
|
|
37
|
+
require('@bigbinary/neeto-icons/Help');
|
|
38
|
+
require('@bigbinary/neeto-molecules/DynamicVariables');
|
|
35
39
|
require('@bigbinary/neetoui/Label');
|
|
40
|
+
require('../inject-css-vQvjPR2x.js');
|
|
36
41
|
require('@bigbinary/neeto-commons-frontend/constants');
|
|
37
42
|
require('@tanstack/react-query');
|
|
38
43
|
require('axios');
|
|
@@ -45,9 +50,11 @@ var buildApiTemplatePayload = function buildApiTemplatePayload(values, templateI
|
|
|
45
50
|
entity: {
|
|
46
51
|
id: templateId,
|
|
47
52
|
endpoint: values.endpoint,
|
|
48
|
-
|
|
53
|
+
enableCustomHeaders: values.enableCustomHeaders,
|
|
54
|
+
customHeaders: JsonEditor.rejectEmptyKeyValuePairs(values.customHeaders || []),
|
|
55
|
+
body: values.body
|
|
49
56
|
},
|
|
50
|
-
templateType:
|
|
57
|
+
templateType: JsonEditor.API_TEMPLATE_TYPE,
|
|
51
58
|
name: values.name
|
|
52
59
|
};
|
|
53
60
|
};
|
|
@@ -85,7 +92,7 @@ var buildTableColumnData = function buildTableColumnData(_ref) {
|
|
|
85
92
|
}
|
|
86
93
|
}, {
|
|
87
94
|
key: "status",
|
|
88
|
-
label: ramda.equals(apiTemplate.status,
|
|
95
|
+
label: ramda.equals(apiTemplate.status, JsonEditor.TEMPLATE_STATUS.ACTIVE) ? i18next.t("neetoMessageTemplate.template.markAsInactive") : i18next.t("neetoMessageTemplate.template.markAsActive"),
|
|
89
96
|
"data-cy": "api-template-button-status-button",
|
|
90
97
|
onClick: function onClick() {
|
|
91
98
|
return handleMarkAsActiveOrInactive(apiTemplate);
|
|
@@ -111,11 +118,13 @@ var buildTableColumnData = function buildTableColumnData(_ref) {
|
|
|
111
118
|
width: "20%"
|
|
112
119
|
}];
|
|
113
120
|
};
|
|
114
|
-
var buildApiTemplateInitialValues = function buildApiTemplateInitialValues(isEdit, apiTemplate) {
|
|
115
|
-
if (!isEdit)
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
121
|
+
var buildApiTemplateInitialValues = function buildApiTemplateInitialValues(isEdit, apiTemplate, initialPayload) {
|
|
122
|
+
if (!isEdit) {
|
|
123
|
+
return ramda.assoc("body", initialPayload, JsonEditor.API_TEMPLATE_INITIAL_VALUES);
|
|
124
|
+
}
|
|
125
|
+
var customHeaders = ramda.isEmpty(apiTemplate.customHeaders) ? [JsonEditor.CUSTOM_HEADERS_INITIAL_VALUE] : apiTemplate.customHeaders;
|
|
126
|
+
return _objectSpread$1(_objectSpread$1({}, ramda.pick(["name", "endpoint", "body", "enableCustomHeaders"], apiTemplate)), {}, {
|
|
127
|
+
customHeaders: customHeaders
|
|
119
128
|
});
|
|
120
129
|
};
|
|
121
130
|
|
|
@@ -124,7 +133,11 @@ var Form = function Form(_ref) {
|
|
|
124
133
|
onClose = _ref.onClose,
|
|
125
134
|
ownerId = _ref.ownerId,
|
|
126
135
|
selectedApiTemplate = _ref.selectedApiTemplate,
|
|
127
|
-
onMutationSuccess = _ref.onMutationSuccess
|
|
136
|
+
onMutationSuccess = _ref.onMutationSuccess,
|
|
137
|
+
initialPayload = _ref.initialPayload,
|
|
138
|
+
templateVariables = _ref.templateVariables,
|
|
139
|
+
bodyHelpPopoverProps = _ref.bodyHelpPopoverProps,
|
|
140
|
+
customHeadersHelpPopoverProps = _ref.customHeadersHelpPopoverProps;
|
|
128
141
|
var _useTranslation = reactI18next.useTranslation(),
|
|
129
142
|
t = _useTranslation.t;
|
|
130
143
|
var _useCreateTemplate = useTemplatesApi.useCreateTemplate(ownerId),
|
|
@@ -156,6 +169,9 @@ var Form = function Form(_ref) {
|
|
|
156
169
|
createApiTemplate(payload, options);
|
|
157
170
|
};
|
|
158
171
|
var isMutating = isUpdating || isCreating;
|
|
172
|
+
var initialValues = react.useMemo(function () {
|
|
173
|
+
return buildApiTemplateInitialValues(isEdit, selectedApiTemplate, initialPayload);
|
|
174
|
+
}, [isEdit, selectedApiTemplate, initialPayload]);
|
|
159
175
|
return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
160
176
|
children: [/*#__PURE__*/jsxRuntime.jsx(Pane.Header, {
|
|
161
177
|
children: /*#__PURE__*/jsxRuntime.jsx(Typography, {
|
|
@@ -165,13 +181,13 @@ var Form = function Form(_ref) {
|
|
|
165
181
|
})
|
|
166
182
|
}), /*#__PURE__*/jsxRuntime.jsxs(NeetoUIForm, {
|
|
167
183
|
formikProps: {
|
|
168
|
-
initialValues:
|
|
169
|
-
validationSchema:
|
|
184
|
+
initialValues: initialValues,
|
|
185
|
+
validationSchema: JsonEditor.API_TEMPLATE_FORM_VALIDATION_SCHEMA,
|
|
170
186
|
onSubmit: handleSubmit
|
|
171
187
|
},
|
|
172
188
|
children: [/*#__PURE__*/jsxRuntime.jsx(Pane.Body, {
|
|
173
189
|
children: /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
174
|
-
className: "w-full space-y-5",
|
|
190
|
+
className: "w-full space-y-5 mb-10",
|
|
175
191
|
children: [/*#__PURE__*/jsxRuntime.jsx(Input, {
|
|
176
192
|
required: true,
|
|
177
193
|
label: t("neetoMessageTemplate.template.name"),
|
|
@@ -181,10 +197,14 @@ var Form = function Form(_ref) {
|
|
|
181
197
|
required: true,
|
|
182
198
|
label: t("neetoMessageTemplate.api.endpoint"),
|
|
183
199
|
name: "endpoint",
|
|
184
|
-
placeholder:
|
|
185
|
-
}), /*#__PURE__*/jsxRuntime.jsx(
|
|
186
|
-
|
|
187
|
-
|
|
200
|
+
placeholder: JsonEditor.SAMPLE_URL
|
|
201
|
+
}), /*#__PURE__*/jsxRuntime.jsx(JsonEditor.CustomHeaders, {
|
|
202
|
+
helpPopoverProps: customHeadersHelpPopoverProps
|
|
203
|
+
}), /*#__PURE__*/jsxRuntime.jsx(JsonEditor.JsonEditor, {
|
|
204
|
+
templateVariables: templateVariables,
|
|
205
|
+
helpPopoverProps: bodyHelpPopoverProps,
|
|
206
|
+
initialValue: initialValues.body,
|
|
207
|
+
name: "body"
|
|
188
208
|
})]
|
|
189
209
|
})
|
|
190
210
|
}), /*#__PURE__*/jsxRuntime.jsx(Pane.Footer, {
|
|
@@ -202,12 +222,16 @@ var Form = function Form(_ref) {
|
|
|
202
222
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
203
223
|
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; }
|
|
204
224
|
var ApiTemplates = function ApiTemplates(_ref) {
|
|
205
|
-
var
|
|
225
|
+
var _apiTemplatesHelpPopo;
|
|
206
226
|
var ownerId = _ref.ownerId,
|
|
207
227
|
_ref$breadcrumbs = _ref.breadcrumbs,
|
|
208
228
|
breadcrumbs = _ref$breadcrumbs === void 0 ? [] : _ref$breadcrumbs,
|
|
209
229
|
_ref$helpPopoverProps = _ref.helpPopoverProps,
|
|
210
230
|
helpPopoverProps = _ref$helpPopoverProps === void 0 ? {} : _ref$helpPopoverProps,
|
|
231
|
+
_ref$initialPayload = _ref.initialPayload,
|
|
232
|
+
initialPayload = _ref$initialPayload === void 0 ? {} : _ref$initialPayload,
|
|
233
|
+
_ref$templateVariable = _ref.templateVariables,
|
|
234
|
+
templateVariables = _ref$templateVariable === void 0 ? [] : _ref$templateVariable,
|
|
211
235
|
_ref$onMutationSucces = _ref.onMutationSuccess,
|
|
212
236
|
onMutationSuccess = _ref$onMutationSucces === void 0 ? neetoCist.noop : _ref$onMutationSucces;
|
|
213
237
|
var _useTranslation = reactI18next.useTranslation(),
|
|
@@ -241,7 +265,7 @@ var ApiTemplates = function ApiTemplates(_ref) {
|
|
|
241
265
|
value: searchTerm
|
|
242
266
|
};
|
|
243
267
|
var _useState11 = react.useState(function () {
|
|
244
|
-
return utils
|
|
268
|
+
return utils.buildFiltersFromURL([].concat(_toConsumableArray(JsonEditor.FILTER_COLUMNS), [searchKeywordProps]));
|
|
245
269
|
}),
|
|
246
270
|
_useState12 = _slicedToArray(_useState11, 2),
|
|
247
271
|
filters = _useState12[0],
|
|
@@ -250,7 +274,7 @@ var ApiTemplates = function ApiTemplates(_ref) {
|
|
|
250
274
|
filters: filters,
|
|
251
275
|
page: pageParams.index,
|
|
252
276
|
pageSize: pageParams.size,
|
|
253
|
-
templateType:
|
|
277
|
+
templateType: JsonEditor.API_TEMPLATE_TYPE,
|
|
254
278
|
ownerId: ramda.isEmpty(ownerId) ? undefined : ownerId
|
|
255
279
|
}),
|
|
256
280
|
_useFetchTemplates$da = _useFetchTemplates.data,
|
|
@@ -286,11 +310,11 @@ var ApiTemplates = function ApiTemplates(_ref) {
|
|
|
286
310
|
var handleMarkAsActiveOrInactive = function handleMarkAsActiveOrInactive(_ref2) {
|
|
287
311
|
var status = _ref2.status,
|
|
288
312
|
id = _ref2.id;
|
|
289
|
-
var newStatus = ramda.equals(status,
|
|
313
|
+
var newStatus = ramda.equals(status, JsonEditor.TEMPLATE_STATUS.ACTIVE) ? JsonEditor.TEMPLATE_STATUS.INACTIVE : JsonEditor.TEMPLATE_STATUS.ACTIVE;
|
|
290
314
|
updateTemplate({
|
|
291
315
|
payload: {
|
|
292
316
|
status: newStatus,
|
|
293
|
-
templateType:
|
|
317
|
+
templateType: JsonEditor.API_TEMPLATE_TYPE
|
|
294
318
|
},
|
|
295
319
|
id: id
|
|
296
320
|
}, {
|
|
@@ -305,7 +329,11 @@ var ApiTemplates = function ApiTemplates(_ref) {
|
|
|
305
329
|
}
|
|
306
330
|
});
|
|
307
331
|
};
|
|
308
|
-
var
|
|
332
|
+
var _buildHelpPopoverProp = JsonEditor.buildHelpPopoverProps(helpPopoverProps),
|
|
333
|
+
apiTemplatesHelpPopoverProps = _buildHelpPopoverProp.apiTemplates,
|
|
334
|
+
customHeadersHelpPopoverProps = _buildHelpPopoverProp.customHeaders,
|
|
335
|
+
bodyHelpPopoverProps = _buildHelpPopoverProp.body;
|
|
336
|
+
var helpDocUrl = (apiTemplatesHelpPopoverProps === null || apiTemplatesHelpPopoverProps === void 0 || (_apiTemplatesHelpPopo = apiTemplatesHelpPopoverProps.helpLinkProps) === null || _apiTemplatesHelpPopo === void 0 ? void 0 : _apiTemplatesHelpPopo.href) || "";
|
|
309
337
|
var noDataProps = _objectSpread(_objectSpread({}, !isFilterApplied && {
|
|
310
338
|
primaryButtonProps: {
|
|
311
339
|
label: t("neetoMessageTemplate.api.addApiTemplate"),
|
|
@@ -350,8 +378,8 @@ var ApiTemplates = function ApiTemplates(_ref) {
|
|
|
350
378
|
placeholder: t("neetoMessageTemplate.template.searchApiTemplates"),
|
|
351
379
|
"data-cy": "api-templates-search-input"
|
|
352
380
|
},
|
|
353
|
-
titleHelpPopoverProps:
|
|
354
|
-
title: (
|
|
381
|
+
titleHelpPopoverProps: apiTemplatesHelpPopoverProps && _objectSpread(_objectSpread({}, apiTemplatesHelpPopoverProps), {}, {
|
|
382
|
+
title: (apiTemplatesHelpPopoverProps === null || apiTemplatesHelpPopoverProps === void 0 ? void 0 : apiTemplatesHelpPopoverProps.title) || title
|
|
355
383
|
})
|
|
356
384
|
}), /*#__PURE__*/jsxRuntime.jsx(SubHeader, {
|
|
357
385
|
className: "mb-4",
|
|
@@ -367,7 +395,7 @@ var ApiTemplates = function ApiTemplates(_ref) {
|
|
|
367
395
|
totalCount: isFilterApplied ? null : totalCount
|
|
368
396
|
},
|
|
369
397
|
filterProps: {
|
|
370
|
-
columns:
|
|
398
|
+
columns: JsonEditor.FILTER_COLUMNS,
|
|
371
399
|
isOpen: isFiltersPaneOpen,
|
|
372
400
|
keyword: searchKeywordProps,
|
|
373
401
|
setIsOpen: setIsFiltersPaneOpen,
|
|
@@ -375,7 +403,7 @@ var ApiTemplates = function ApiTemplates(_ref) {
|
|
|
375
403
|
}
|
|
376
404
|
})
|
|
377
405
|
}), /*#__PURE__*/jsxRuntime.jsx(FiltersBar, {
|
|
378
|
-
columns:
|
|
406
|
+
columns: JsonEditor.FILTER_COLUMNS,
|
|
379
407
|
keyword: searchKeywordProps,
|
|
380
408
|
setIsPaneOpen: setIsFiltersPaneOpen,
|
|
381
409
|
onChange: handleFiltersChange
|
|
@@ -408,14 +436,19 @@ var ApiTemplates = function ApiTemplates(_ref) {
|
|
|
408
436
|
children: /*#__PURE__*/jsxRuntime.jsx(NoData, _objectSpread({}, noDataProps))
|
|
409
437
|
}), /*#__PURE__*/jsxRuntime.jsx(Pane, {
|
|
410
438
|
isOpen: isFormPaneOpen,
|
|
439
|
+
size: "large",
|
|
411
440
|
onClose: handleCloseDeleteAlertAndFormPane,
|
|
412
441
|
children: function children(_ref3) {
|
|
413
442
|
var setFocusField = _ref3.setFocusField;
|
|
414
443
|
return /*#__PURE__*/jsxRuntime.jsx(Form, {
|
|
444
|
+
bodyHelpPopoverProps: bodyHelpPopoverProps,
|
|
445
|
+
customHeadersHelpPopoverProps: customHeadersHelpPopoverProps,
|
|
415
446
|
onMutationSuccess: onMutationSuccess,
|
|
416
447
|
ownerId: ownerId,
|
|
417
448
|
selectedApiTemplate: selectedApiTemplate,
|
|
418
449
|
setFocusField: setFocusField,
|
|
450
|
+
templateVariables: templateVariables,
|
|
451
|
+
initialPayload: JSON.stringify(initialPayload, null, 2),
|
|
419
452
|
onClose: handleCloseDeleteAlertAndFormPane
|
|
420
453
|
});
|
|
421
454
|
}
|