@bigbinary/neeto-message-templates-frontend 2.0.2 → 2.0.3-beta

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.
@@ -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 { isNotPresent } 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(\"is-valid-json-and-not-empty\", (value, context) => {\n if (!value) return true;\n\n try {\n const parsedValue = JSON.parse(value);\n\n if (isNotPresent(parsedValue)) {\n return context.createError({\n message: t(\"neetoMessageTemplate.validations.requiredEntity\", {\n entity: t(\"neetoMessageTemplate.template.body\"),\n }),\n });\n }\n\n return true;\n } catch {\n return context.createError({\n message: t(\"neetoMessageTemplate.api.validation.invalidJsonBody\"),\n });\n }\n }),\n});\n","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","context","parsedValue","JSON","parse","isNotPresent","createError","message","_unused","formatCustomHeaders","isPresent","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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"}
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 { isNotPresent } 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(\"is-valid-json-and-not-empty\", (value, context) => {\n if (!value) return true;\n\n try {\n const parsedValue = JSON.parse(value);\n\n if (isNotPresent(parsedValue)) {\n return context.createError({\n message: t(\"neetoMessageTemplate.validations.requiredEntity\", {\n entity: t(\"neetoMessageTemplate.template.body\"),\n }),\n });\n }\n\n return true;\n } catch {\n return context.createError({\n message: t(\"neetoMessageTemplate.api.validation.invalidJsonBody\"),\n });\n }\n }),\n});\n","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=\"ms-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","context","parsedValue","JSON","parse","isNotPresent","createError","message","_unused","formatCustomHeaders","isPresent","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/index.js CHANGED
@@ -52,7 +52,7 @@ require('../utils-3fvk3PIJ.js');
52
52
  require('@bigbinary/neetoui/formik/Switch');
53
53
  require('@bigbinary/neetoui/Textarea');
54
54
  require('@bigbinary/neetoui/formik/Select');
55
- require('../JsonEditor-BVwgCzxk.js');
55
+ require('../JsonEditor-Dtua-Y6w.js');
56
56
  require('@bigbinary/neeto-icons/Delete');
57
57
  require('@monaco-editor/react');
58
58
  require('@bigbinary/neeto-icons/Help');
package/dist/index.js CHANGED
@@ -50,7 +50,7 @@ import './utils-o_45ksFf.js';
50
50
  import '@bigbinary/neetoui/formik/Switch';
51
51
  import '@bigbinary/neetoui/Textarea';
52
52
  import '@bigbinary/neetoui/formik/Select';
53
- import './JsonEditor-LW2g8wjb.js';
53
+ import './JsonEditor-BheiZ87J.js';
54
54
  import '@bigbinary/neeto-icons/Delete';
55
55
  import '@monaco-editor/react';
56
56
  import '@bigbinary/neeto-icons/Help';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bigbinary/neeto-message-templates-frontend",
3
- "version": "2.0.2",
3
+ "version": "2.0.3-beta",
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",
@@ -63,13 +63,13 @@
63
63
  "@bigbinary/babel-preset-neeto": "^1.0.3",
64
64
  "@bigbinary/eslint-plugin-neeto": "1.8.0",
65
65
  "@bigbinary/neeto-cist": "1.0.17",
66
- "@bigbinary/neeto-commons-frontend": "4.13.85",
67
- "@bigbinary/neeto-editor": "1.47.71",
68
- "@bigbinary/neeto-filters-frontend": "4.3.25",
69
- "@bigbinary/neeto-icons": "1.20.64",
70
- "@bigbinary/neeto-molecules": "4.0.101",
71
- "@bigbinary/neeto-team-members-frontend": "4.6.12",
72
- "@bigbinary/neetoui": "8.3.45",
66
+ "@bigbinary/neeto-commons-frontend": "4.13.87",
67
+ "@bigbinary/neeto-editor": "1.47.72",
68
+ "@bigbinary/neeto-filters-frontend": "4.3.26",
69
+ "@bigbinary/neeto-icons": "1.20.67",
70
+ "@bigbinary/neeto-molecules": "4.0.109",
71
+ "@bigbinary/neeto-team-members-frontend": "5.0.3",
72
+ "@bigbinary/neetoui": "8.3.46",
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",
@@ -83,6 +83,7 @@
83
83
  "@rollup/plugin-replace": "5.0.4",
84
84
  "@svgr/rollup": "8.1.0",
85
85
  "@tailwindcss/container-queries": "^0.1.1",
86
+ "@tailwindcss/postcss": "^4.1.17",
86
87
  "@tanstack/react-query": "5.59.20",
87
88
  "@tanstack/react-query-devtools": "5.59.20",
88
89
  "antd": "5.22.0",
@@ -137,7 +138,7 @@
137
138
  "postcss-loader": "^7.0.1",
138
139
  "postcss-preset-env": "7.8.2",
139
140
  "prettier": "3",
140
- "prettier-plugin-tailwindcss": "0.6.14",
141
+ "prettier-plugin-tailwindcss": "^0.7.1",
141
142
  "process": "^0.11.10",
142
143
  "qs": "^6.11.2",
143
144
  "ramda": "0.29.0",
@@ -161,7 +162,7 @@
161
162
  "stream-browserify": "^3.0.0",
162
163
  "stream-http": "3.2.0",
163
164
  "style-loader": "^3.3.1",
164
- "tailwindcss": "3.4.14",
165
+ "tailwindcss": "^4.1.17",
165
166
  "tty-browserify": "0.0.1",
166
167
  "url": "^0.11.0",
167
168
  "util": "^0.12.5",
@@ -177,13 +178,13 @@
177
178
  "@babel/plugin-syntax-dynamic-import": "^7.8.3",
178
179
  "@babel/runtime": "7.26.10",
179
180
  "@bigbinary/neeto-cist": "1.0.17",
180
- "@bigbinary/neeto-commons-frontend": "4.13.85",
181
- "@bigbinary/neeto-editor": "1.47.71",
182
- "@bigbinary/neeto-filters-frontend": "4.3.25",
183
- "@bigbinary/neeto-icons": "1.20.64",
184
- "@bigbinary/neeto-molecules": "4.0.101",
185
- "@bigbinary/neeto-team-members-frontend": "4.6.12",
186
- "@bigbinary/neetoui": "8.3.45",
181
+ "@bigbinary/neeto-commons-frontend": "4.13.87",
182
+ "@bigbinary/neeto-editor": "1.47.72",
183
+ "@bigbinary/neeto-filters-frontend": "4.3.26",
184
+ "@bigbinary/neeto-icons": "1.20.67",
185
+ "@bigbinary/neeto-molecules": "4.0.109",
186
+ "@bigbinary/neeto-team-members-frontend": "5.0.3",
187
+ "@bigbinary/neetoui": "8.3.46",
187
188
  "@honeybadger-io/js": "6.10.1",
188
189
  "@honeybadger-io/react": "6.1.25",
189
190
  "@monaco-editor/react": "^4.7.0",
@@ -214,7 +215,7 @@
214
215
  "source-map-loader": "4.0.1",
215
216
  "stream-browserify": "^3.0.0",
216
217
  "stream-http": "3.2.0",
217
- "tailwindcss": "3.4.14",
218
+ "tailwindcss": "^4.1.17",
218
219
  "tty-browserify": "0.0.1",
219
220
  "url": "^0.11.0",
220
221
  "util": "^0.12.5",
package/CHANGELOG.md DELETED
@@ -1,23 +0,0 @@
1
- <!---
2
-
3
- ------- FOLLOW THESE WHILE ADDING AN ENTRY -------
4
-
5
- ** Add BREAKING keyword in bold for changes which could potentially break the component, eg: **BREAKING**.
6
- ** Enclose a prop name in double backticks, eg: `menuType`.
7
- ** Represent a version as second level heading and write the version number inside a square bracket, eg: ## [3.3.2].
8
-
9
- --->
10
- # Changelog
11
-
12
- All notable changes to this project will be documented in this file.
13
-
14
- The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
15
-
16
- Prefix the change with one of these keywords:
17
-
18
- - *Added*: for new features.
19
- - *Changed*: for changes in existing functionality.
20
- - *Deprecated*: for soon-to-be removed features.
21
- - *Removed*: for now removed features.
22
- - *Fixed*: for any bug fixes.
23
- - *Security*: in case of vulnerabilities.
@@ -1 +0,0 @@
1
- {"version":3,"file":"JsonEditor-BVwgCzxk.js","sources":["../app/javascript/src/components/Api/constants.js","../app/javascript/src/components/Api/ApiTemplates/constants.js","../app/javascript/src/components/Api/utils.js","../app/javascript/src/components/commons/KeyValuePairs/utils.js","../app/javascript/src/components/commons/KeyValuePairs/index.jsx","../app/javascript/src/components/Api/CustomHeaders.jsx","../app/javascript/src/components/Api/JsonEditor.jsx"],"sourcesContent":["import { t } from \"i18next\";\n\nexport const VALID_URL_REGEX =\n /^(https?):\\/\\/([a-zA-Z0-9-]+\\.){1,}[a-zA-Z]{2,}\\/?[^\\s]*$/;\n\nexport const CUSTOM_HEADERS_INITIAL_VALUE = { key: \"\", value: \"\" };\n\nexport const API_TEMPLATE_TYPE = \"api_template\";\n\nexport const API_TEMPLATES_HELP_POPOVER_PROPS = {\n apiTemplates: {\n description: t(\n \"neetoMessageTemplate.api.helpPopovers.apiTemplates.description\"\n ),\n helpLinkProps: { \"data-cy\": \"help-popover-link-button\" },\n popoverProps: { position: \"top\" },\n },\n sendToApi: {\n description: t(\n \"neetoMessageTemplate.api.helpPopovers.sendToApi.description\"\n ),\n helpLinkProps: { \"data-cy\": \"send-to-api-action-help-link\" },\n popoverProps: { position: \"top\" },\n },\n customHeaders: {\n description: t(\n \"neetoMessageTemplate.api.helpPopovers.customHeaders.description\"\n ),\n helpLinkProps: {\n label: t(\"neetoMessageTemplate.template.viewHelpArticle\"),\n \"data-cy\": \"api-templates-custom-headers-help-link\",\n },\n position: \"top\",\n },\n body: {\n description: t(\"neetoMessageTemplate.api.helpPopovers.body.description\"),\n helpLinkProps: {\n label: t(\"neetoMessageTemplate.template.viewHelpArticle\"),\n \"data-cy\": \"api-templates-body-help-link\",\n },\n position: \"top\",\n },\n};\n\nexport const JSON_LANGUAGE = \"json\";\n\nexport const EDITOR_CONFIG = {\n formatOnType: true,\n formatOnPaste: true,\n automaticLayout: true,\n tabSize: 2,\n minimap: { enabled: false },\n scrollBeyondLastLine: false,\n autoIndent: \"full\",\n};\n","import { t } from \"i18next\";\nimport { isNotPresent } from \"neetocist\";\nimport * as yup from \"yup\";\n\nimport {\n CUSTOM_HEADERS_INITIAL_VALUE,\n VALID_URL_REGEX,\n} from \"components/Api/constants\";\n\nexport const TABLE_COLUMN_DATA = [\n {\n dataIndex: \"name\",\n key: \"name\",\n title: t(\"neetoMessageTemplate.template.name\"),\n },\n {\n dataIndex: \"status\",\n key: \"status\",\n title: t(\"neetoMessageTemplate.template.active\"),\n render: status =>\n status === \"active\"\n ? t(\"neetoMessageTemplate.yes\")\n : t(\"neetoMessageTemplate.no\"),\n width: \"20%\",\n },\n];\n\nexport const FILTER_COLUMNS = [\n {\n key: \"name\",\n node: \"name\",\n label: t(\"neetoMessageTemplate.template.name\"),\n type: \"text\",\n },\n {\n key: \"status\",\n node: \"status\",\n label: t(\"neetoMessageTemplate.template.active\"),\n type: \"single_option\",\n values: [\n { label: t(\"neetoMessageTemplate.yes\"), value: \"active\" },\n { label: t(\"neetoMessageTemplate.no\"), value: \"inactive\" },\n ],\n },\n];\n\nexport const API_TEMPLATE_INITIAL_VALUES = {\n name: \"\",\n endpoint: \"\",\n enableCustomHeaders: false,\n customHeaders: [CUSTOM_HEADERS_INITIAL_VALUE],\n body: \"{}\",\n};\n\nexport const SAMPLE_URL = \"https://example.com\";\n\nexport const API_TEMPLATE_FORM_VALIDATION_SCHEMA = yup.object({\n name: yup\n .string()\n .trim()\n .required(\n t(\"neetoMessageTemplate.validations.requiredEntity\", {\n entity: t(\"neetoMessageTemplate.template.name\"),\n })\n ),\n endpoint: yup\n .string()\n .trim()\n .required(\n t(\"neetoMessageTemplate.validations.requiredEntity\", {\n entity: t(\"neetoMessageTemplate.api.endpoint\"),\n })\n )\n .matches(\n VALID_URL_REGEX,\n t(\"neetoMessageTemplate.api.validation.validEndpoint\")\n ),\n body: yup\n .string()\n .trim()\n .required(\n t(\"neetoMessageTemplate.validations.requiredEntity\", {\n entity: t(\"neetoMessageTemplate.template.body\"),\n })\n )\n .test(\"is-valid-json-and-not-empty\", (value, context) => {\n if (!value) return true;\n\n try {\n const parsedValue = JSON.parse(value);\n\n if (isNotPresent(parsedValue)) {\n return context.createError({\n message: t(\"neetoMessageTemplate.validations.requiredEntity\", {\n entity: t(\"neetoMessageTemplate.template.body\"),\n }),\n });\n }\n\n return true;\n } catch {\n return context.createError({\n message: t(\"neetoMessageTemplate.api.validation.invalidJsonBody\"),\n });\n }\n }),\n});\n\nexport const TEMPLATE_STATUS = { ACTIVE: \"active\", INACTIVE: \"inactive\" };\n","import {\n isEmpty,\n reject,\n whereAny,\n map,\n mergeDeepLeft,\n omit,\n path,\n unless,\n} from \"ramda\";\n\nimport { API_TEMPLATES_HELP_POPOVER_PROPS } from \"./constants\";\n\nconst sanitizeHelpPopoverProps = map(\n unless(path([\"helpLinkProps\", \"href\"]), omit([\"helpLinkProps\"]))\n);\n\nexport const buildHelpPopoverProps = popoverProps => {\n const combinedProps = mergeDeepLeft(\n popoverProps,\n API_TEMPLATES_HELP_POPOVER_PROPS\n );\n\n return sanitizeHelpPopoverProps(combinedProps);\n};\n\nexport const rejectEmptyKeyValuePairs = reject(\n whereAny({ key: isEmpty, value: isEmpty })\n);\n","import { isNotEmpty } from \"neetocist\";\nimport { whereAny } from \"ramda\";\n\nimport { CUSTOM_HEADERS_INITIAL_VALUE } from \"components/Api/constants\";\n\nexport const removeOption = ({ arrayHelpers, index, data }) => {\n if (data.length === 1) {\n arrayHelpers.remove(index);\n arrayHelpers.push(CUSTOM_HEADERS_INITIAL_VALUE);\n\n return;\n }\n\n arrayHelpers.remove(index);\n};\n\nexport const addOption = arrayHelpers =>\n arrayHelpers.push(CUSTOM_HEADERS_INITIAL_VALUE);\n\nexport const isKeyOrValueNotEmpty = whereAny({\n key: isNotEmpty,\n value: isNotEmpty,\n});\n","import { FieldArray } from \"formik\";\nimport { withT } from \"neetocommons/react-utils\";\nimport { Delete } from \"neetoicons\";\nimport { Button } from \"neetoui\";\nimport { Input } from \"neetoui/formik\";\n\nimport { CUSTOM_HEADERS_INITIAL_VALUE } from \"components/Api/constants\";\n\nimport { addOption, isKeyOrValueNotEmpty, removeOption } from \"./utils\";\n\nconst KeyValuePairs = withT(({ t, name, entity }) => (\n <FieldArray {...{ name }}>\n {arrayHelpers => {\n const data = arrayHelpers.form.values[name] || [\n CUSTOM_HEADERS_INITIAL_VALUE,\n ];\n\n const showDeleteButton = data.length > 1 || isKeyOrValueNotEmpty(data[0]);\n\n return (\n <div className=\"flex flex-col space-y-2\">\n {data.map((_, index) => (\n <div className=\"flex h-8 space-x-3\" key={index}>\n <Input\n className=\"w-1/3\"\n data-cy={`key-input-${index}`}\n name={`${name}.${index}.key`}\n placeholder={t(\"neetoMessageTemplate.api.key\")}\n />\n <Input\n className=\"w-2/3\"\n data-cy={`value-input-${index}`}\n name={`${name}.${index}.value`}\n placeholder={t(\"neetoMessageTemplate.api.value\")}\n suffix={\n showDeleteButton && (\n <Button\n data-cy={`delete-key-value-pair-${index}`}\n icon={Delete}\n size=\"small\"\n style=\"text\"\n onClick={() =>\n removeOption({ arrayHelpers, index, data })\n }\n />\n )\n }\n />\n </div>\n ))}\n <Button\n className=\"w-30 ml-auto\"\n data-cy=\"add-key-value-pair-button\"\n label={t(\"neetoMessageTemplate.api.addEntity\", { entity })}\n style=\"secondary\"\n onClick={() => addOption(arrayHelpers)}\n />\n </div>\n );\n }}\n </FieldArray>\n));\n\nexport default KeyValuePairs;\n","import { useEffect } from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport { hyphenate } from \"neetocist\";\nimport { Switch } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport KeyValuePairs from \"components/commons/KeyValuePairs\";\n\nimport { CUSTOM_HEADERS_INITIAL_VALUE } from \"./constants\";\n\nconst CustomHeaders = ({ helpPopoverProps = {} }) => {\n const {\n values: { enableCustomHeaders },\n setFieldValue,\n } = useFormikContext();\n\n const { t } = useTranslation();\n\n useEffect(\n () => () => {\n setFieldValue(\"enableCustomHeaders\", false);\n setFieldValue(\"customHeaders\", [CUSTOM_HEADERS_INITIAL_VALUE]);\n },\n []\n );\n\n const handleChange = ({ target: { checked } }) => {\n if (!checked) {\n setFieldValue(\"customHeaders\", [CUSTOM_HEADERS_INITIAL_VALUE]);\n }\n\n setFieldValue(\"enableCustomHeaders\", checked);\n };\n\n const label = t(\"neetoMessageTemplate.api.includeHeaders\");\n\n return (\n <div className=\"flex flex-col space-y-4\">\n <Switch\n {...{ label }}\n data-cy={`neeto-message-template-${hyphenate(label)}-switch`}\n name=\"enableCustomHeaders\"\n labelProps={{\n className: \"ml-2\",\n helpIconProps: { popoverProps: helpPopoverProps },\n }}\n onChange={handleChange}\n />\n {enableCustomHeaders && (\n <KeyValuePairs\n entity={t(\"neetoMessageTemplate.api.headers\")}\n name=\"customHeaders\"\n />\n )}\n </div>\n );\n};\n\nexport default CustomHeaders;\n","import { useEffect, useRef } from \"react\";\n\nimport Editor from \"@monaco-editor/react\";\nimport { useField } from \"formik\";\nimport { Help } from \"neetoicons\";\nimport DynamicVariables from \"neetomolecules/DynamicVariables\";\nimport { Label } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\n// eslint-disable-next-line import/extensions\nimport \"stylesheets/components/_json_editor.scss\";\n\nimport { EDITOR_CONFIG, JSON_LANGUAGE } from \"./constants\";\n\nconst JsonEditor = ({\n name,\n helpPopoverProps = {},\n initialValue = \"{}\",\n templateVariables = [],\n}) => {\n const editorRef = useRef(null);\n const completionProviderRef = useRef(null);\n\n const [_, { touched, error }, { setValue, setTouched }] = useField(name);\n\n const { t } = useTranslation();\n\n const handleEditorDidMount = (editor, monaco) => {\n editorRef.current = editor;\n\n completionProviderRef.current =\n monaco.languages.registerCompletionItemProvider(JSON_LANGUAGE, {\n triggerCharacters: [\"{\"],\n provideCompletionItems: (model, position) => {\n const lineContent = model.getLineContent(position.lineNumber);\n const beforeCursor = lineContent.slice(0, position.column - 1);\n\n if (!beforeCursor.endsWith('\"{')) {\n return { suggestions: [] };\n }\n\n const suggestions = templateVariables.map(({ key, label }) => ({\n label,\n kind: monaco.languages.CompletionItemKind.Variable,\n insertText: `{${key}}}`,\n insertTextRules:\n monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,\n detail: t(\"neetoMessageTemplate.api.insertPlaceholder\", {\n label,\n }),\n }));\n\n return { suggestions };\n },\n });\n };\n\n const insertVariable = ({ key }) => {\n const editor = editorRef.current;\n if (!editor) return;\n\n const selection = editor.getSelection();\n const range = {\n startLineNumber: selection.startLineNumber,\n startColumn: selection.startColumn,\n endLineNumber: selection.endLineNumber,\n endColumn: selection.endColumn,\n };\n const text = `\"{{${key}}}\"`;\n\n editor.executeEdits(\"\", [{ range, text, forceMoveMarkers: true }]);\n\n const position = editor.getPosition();\n editor.setPosition({\n lineNumber: position.lineNumber,\n column: position.column + text.length,\n });\n\n editor.focus();\n };\n\n const handleChange = value => {\n setTouched(true);\n setValue(value);\n };\n\n useEffect(() => {\n const editor = editorRef.current;\n if (!editor) return;\n\n const currentValue = editor.getValue();\n if (currentValue !== initialValue) {\n editor.setValue(initialValue);\n }\n }, [initialValue]);\n\n useEffect(\n () => () => {\n completionProviderRef.current?.dispose();\n completionProviderRef.current = null;\n },\n []\n );\n\n return (\n <div className=\"space-y-2\">\n <Label\n required\n data-cy=\"message-template-body\"\n helpIconProps={{ icon: Help, popoverProps: helpPopoverProps }}\n >\n {t(\"neetoMessageTemplate.template.body\")}\n </Label>\n <div className=\"neeto-message-template-json-editor__wrapper\">\n <div className=\"neeto-message-template-json-editor__dynamic-variables\">\n <DynamicVariables\n variables={templateVariables}\n onVariableClick={insertVariable}\n />\n </div>\n <Editor\n className=\"neeto-message-template-json-editor__editor\"\n defaultLanguage={JSON_LANGUAGE}\n defaultValue={initialValue}\n height=\"100%\"\n options={EDITOR_CONFIG}\n theme=\"vs-dark\"\n onChange={handleChange}\n onMount={handleEditorDidMount}\n />\n {touched && error && (\n <div className=\"neeto-ui-input__error\">{error}</div>\n )}\n </div>\n </div>\n );\n};\n\nexport default JsonEditor;\n"],"names":["VALID_URL_REGEX","CUSTOM_HEADERS_INITIAL_VALUE","key","value","API_TEMPLATE_TYPE","API_TEMPLATES_HELP_POPOVER_PROPS","apiTemplates","description","t","helpLinkProps","popoverProps","position","sendToApi","customHeaders","label","body","JSON_LANGUAGE","EDITOR_CONFIG","formatOnType","formatOnPaste","automaticLayout","tabSize","minimap","enabled","scrollBeyondLastLine","autoIndent","dataIndex","title","render","status","width","FILTER_COLUMNS","node","type","values","API_TEMPLATE_INITIAL_VALUES","name","endpoint","enableCustomHeaders","SAMPLE_URL","API_TEMPLATE_FORM_VALIDATION_SCHEMA","yup","object","string","trim","required","entity","matches","test","context","parsedValue","JSON","parse","isNotPresent","createError","message","_unused","TEMPLATE_STATUS","ACTIVE","INACTIVE","sanitizeHelpPopoverProps","map","unless","path","omit","buildHelpPopoverProps","combinedProps","mergeDeepLeft","rejectEmptyKeyValuePairs","reject","whereAny","isEmpty","removeOption","_ref","arrayHelpers","index","data","length","remove","push","addOption","isKeyOrValueNotEmpty","isNotEmpty","KeyValuePairs","withT","_jsx","FieldArray","children","form","showDeleteButton","_jsxs","className","_","Input","concat","placeholder","suffix","Button","icon","Delete","size","style","onClick","CustomHeaders","_ref$helpPopoverProps","helpPopoverProps","_useFormikContext","useFormikContext","setFieldValue","_useTranslation","useTranslation","useEffect","handleChange","_ref2","checked","target","Switch","hyphenate","labelProps","helpIconProps","onChange","JsonEditor","_ref$initialValue","initialValue","_ref$templateVariable","templateVariables","editorRef","useRef","completionProviderRef","_useField","useField","_useField2","_slicedToArray","_useField2$","touched","error","_useField2$2","setValue","setTouched","handleEditorDidMount","editor","monaco","current","languages","registerCompletionItemProvider","triggerCharacters","provideCompletionItems","model","lineContent","getLineContent","lineNumber","beforeCursor","slice","column","endsWith","suggestions","kind","CompletionItemKind","Variable","insertText","insertTextRules","CompletionItemInsertTextRule","InsertAsSnippet","detail","insertVariable","_ref3","selection","getSelection","range","startLineNumber","startColumn","endLineNumber","endColumn","text","executeEdits","forceMoveMarkers","getPosition","setPosition","focus","currentValue","getValue","_completionProviderRe","dispose","Label","Help","DynamicVariables","variables","onVariableClick","Editor","defaultLanguage","defaultValue","height","options","theme","onMount"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"JsonEditor-LW2g8wjb.js","sources":["../app/javascript/src/components/Api/constants.js","../app/javascript/src/components/Api/ApiTemplates/constants.js","../app/javascript/src/components/Api/utils.js","../app/javascript/src/components/commons/KeyValuePairs/utils.js","../app/javascript/src/components/commons/KeyValuePairs/index.jsx","../app/javascript/src/components/Api/CustomHeaders.jsx","../app/javascript/src/components/Api/JsonEditor.jsx"],"sourcesContent":["import { t } from \"i18next\";\n\nexport const VALID_URL_REGEX =\n /^(https?):\\/\\/([a-zA-Z0-9-]+\\.){1,}[a-zA-Z]{2,}\\/?[^\\s]*$/;\n\nexport const CUSTOM_HEADERS_INITIAL_VALUE = { key: \"\", value: \"\" };\n\nexport const API_TEMPLATE_TYPE = \"api_template\";\n\nexport const API_TEMPLATES_HELP_POPOVER_PROPS = {\n apiTemplates: {\n description: t(\n \"neetoMessageTemplate.api.helpPopovers.apiTemplates.description\"\n ),\n helpLinkProps: { \"data-cy\": \"help-popover-link-button\" },\n popoverProps: { position: \"top\" },\n },\n sendToApi: {\n description: t(\n \"neetoMessageTemplate.api.helpPopovers.sendToApi.description\"\n ),\n helpLinkProps: { \"data-cy\": \"send-to-api-action-help-link\" },\n popoverProps: { position: \"top\" },\n },\n customHeaders: {\n description: t(\n \"neetoMessageTemplate.api.helpPopovers.customHeaders.description\"\n ),\n helpLinkProps: {\n label: t(\"neetoMessageTemplate.template.viewHelpArticle\"),\n \"data-cy\": \"api-templates-custom-headers-help-link\",\n },\n position: \"top\",\n },\n body: {\n description: t(\"neetoMessageTemplate.api.helpPopovers.body.description\"),\n helpLinkProps: {\n label: t(\"neetoMessageTemplate.template.viewHelpArticle\"),\n \"data-cy\": \"api-templates-body-help-link\",\n },\n position: \"top\",\n },\n};\n\nexport const JSON_LANGUAGE = \"json\";\n\nexport const EDITOR_CONFIG = {\n formatOnType: true,\n formatOnPaste: true,\n automaticLayout: true,\n tabSize: 2,\n minimap: { enabled: false },\n scrollBeyondLastLine: false,\n autoIndent: \"full\",\n};\n","import { t } from \"i18next\";\nimport { isNotPresent } from \"neetocist\";\nimport * as yup from \"yup\";\n\nimport {\n CUSTOM_HEADERS_INITIAL_VALUE,\n VALID_URL_REGEX,\n} from \"components/Api/constants\";\n\nexport const TABLE_COLUMN_DATA = [\n {\n dataIndex: \"name\",\n key: \"name\",\n title: t(\"neetoMessageTemplate.template.name\"),\n },\n {\n dataIndex: \"status\",\n key: \"status\",\n title: t(\"neetoMessageTemplate.template.active\"),\n render: status =>\n status === \"active\"\n ? t(\"neetoMessageTemplate.yes\")\n : t(\"neetoMessageTemplate.no\"),\n width: \"20%\",\n },\n];\n\nexport const FILTER_COLUMNS = [\n {\n key: \"name\",\n node: \"name\",\n label: t(\"neetoMessageTemplate.template.name\"),\n type: \"text\",\n },\n {\n key: \"status\",\n node: \"status\",\n label: t(\"neetoMessageTemplate.template.active\"),\n type: \"single_option\",\n values: [\n { label: t(\"neetoMessageTemplate.yes\"), value: \"active\" },\n { label: t(\"neetoMessageTemplate.no\"), value: \"inactive\" },\n ],\n },\n];\n\nexport const API_TEMPLATE_INITIAL_VALUES = {\n name: \"\",\n endpoint: \"\",\n enableCustomHeaders: false,\n customHeaders: [CUSTOM_HEADERS_INITIAL_VALUE],\n body: \"{}\",\n};\n\nexport const SAMPLE_URL = \"https://example.com\";\n\nexport const API_TEMPLATE_FORM_VALIDATION_SCHEMA = yup.object({\n name: yup\n .string()\n .trim()\n .required(\n t(\"neetoMessageTemplate.validations.requiredEntity\", {\n entity: t(\"neetoMessageTemplate.template.name\"),\n })\n ),\n endpoint: yup\n .string()\n .trim()\n .required(\n t(\"neetoMessageTemplate.validations.requiredEntity\", {\n entity: t(\"neetoMessageTemplate.api.endpoint\"),\n })\n )\n .matches(\n VALID_URL_REGEX,\n t(\"neetoMessageTemplate.api.validation.validEndpoint\")\n ),\n body: yup\n .string()\n .trim()\n .required(\n t(\"neetoMessageTemplate.validations.requiredEntity\", {\n entity: t(\"neetoMessageTemplate.template.body\"),\n })\n )\n .test(\"is-valid-json-and-not-empty\", (value, context) => {\n if (!value) return true;\n\n try {\n const parsedValue = JSON.parse(value);\n\n if (isNotPresent(parsedValue)) {\n return context.createError({\n message: t(\"neetoMessageTemplate.validations.requiredEntity\", {\n entity: t(\"neetoMessageTemplate.template.body\"),\n }),\n });\n }\n\n return true;\n } catch {\n return context.createError({\n message: t(\"neetoMessageTemplate.api.validation.invalidJsonBody\"),\n });\n }\n }),\n});\n\nexport const TEMPLATE_STATUS = { ACTIVE: \"active\", INACTIVE: \"inactive\" };\n","import {\n isEmpty,\n reject,\n whereAny,\n map,\n mergeDeepLeft,\n omit,\n path,\n unless,\n} from \"ramda\";\n\nimport { API_TEMPLATES_HELP_POPOVER_PROPS } from \"./constants\";\n\nconst sanitizeHelpPopoverProps = map(\n unless(path([\"helpLinkProps\", \"href\"]), omit([\"helpLinkProps\"]))\n);\n\nexport const buildHelpPopoverProps = popoverProps => {\n const combinedProps = mergeDeepLeft(\n popoverProps,\n API_TEMPLATES_HELP_POPOVER_PROPS\n );\n\n return sanitizeHelpPopoverProps(combinedProps);\n};\n\nexport const rejectEmptyKeyValuePairs = reject(\n whereAny({ key: isEmpty, value: isEmpty })\n);\n","import { isNotEmpty } from \"neetocist\";\nimport { whereAny } from \"ramda\";\n\nimport { CUSTOM_HEADERS_INITIAL_VALUE } from \"components/Api/constants\";\n\nexport const removeOption = ({ arrayHelpers, index, data }) => {\n if (data.length === 1) {\n arrayHelpers.remove(index);\n arrayHelpers.push(CUSTOM_HEADERS_INITIAL_VALUE);\n\n return;\n }\n\n arrayHelpers.remove(index);\n};\n\nexport const addOption = arrayHelpers =>\n arrayHelpers.push(CUSTOM_HEADERS_INITIAL_VALUE);\n\nexport const isKeyOrValueNotEmpty = whereAny({\n key: isNotEmpty,\n value: isNotEmpty,\n});\n","import { FieldArray } from \"formik\";\nimport { withT } from \"neetocommons/react-utils\";\nimport { Delete } from \"neetoicons\";\nimport { Button } from \"neetoui\";\nimport { Input } from \"neetoui/formik\";\n\nimport { CUSTOM_HEADERS_INITIAL_VALUE } from \"components/Api/constants\";\n\nimport { addOption, isKeyOrValueNotEmpty, removeOption } from \"./utils\";\n\nconst KeyValuePairs = withT(({ t, name, entity }) => (\n <FieldArray {...{ name }}>\n {arrayHelpers => {\n const data = arrayHelpers.form.values[name] || [\n CUSTOM_HEADERS_INITIAL_VALUE,\n ];\n\n const showDeleteButton = data.length > 1 || isKeyOrValueNotEmpty(data[0]);\n\n return (\n <div className=\"flex flex-col space-y-2\">\n {data.map((_, index) => (\n <div className=\"flex h-8 space-x-3\" key={index}>\n <Input\n className=\"w-1/3\"\n data-cy={`key-input-${index}`}\n name={`${name}.${index}.key`}\n placeholder={t(\"neetoMessageTemplate.api.key\")}\n />\n <Input\n className=\"w-2/3\"\n data-cy={`value-input-${index}`}\n name={`${name}.${index}.value`}\n placeholder={t(\"neetoMessageTemplate.api.value\")}\n suffix={\n showDeleteButton && (\n <Button\n data-cy={`delete-key-value-pair-${index}`}\n icon={Delete}\n size=\"small\"\n style=\"text\"\n onClick={() =>\n removeOption({ arrayHelpers, index, data })\n }\n />\n )\n }\n />\n </div>\n ))}\n <Button\n className=\"w-30 ml-auto\"\n data-cy=\"add-key-value-pair-button\"\n label={t(\"neetoMessageTemplate.api.addEntity\", { entity })}\n style=\"secondary\"\n onClick={() => addOption(arrayHelpers)}\n />\n </div>\n );\n }}\n </FieldArray>\n));\n\nexport default KeyValuePairs;\n","import { useEffect } from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport { hyphenate } from \"neetocist\";\nimport { Switch } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport KeyValuePairs from \"components/commons/KeyValuePairs\";\n\nimport { CUSTOM_HEADERS_INITIAL_VALUE } from \"./constants\";\n\nconst CustomHeaders = ({ helpPopoverProps = {} }) => {\n const {\n values: { enableCustomHeaders },\n setFieldValue,\n } = useFormikContext();\n\n const { t } = useTranslation();\n\n useEffect(\n () => () => {\n setFieldValue(\"enableCustomHeaders\", false);\n setFieldValue(\"customHeaders\", [CUSTOM_HEADERS_INITIAL_VALUE]);\n },\n []\n );\n\n const handleChange = ({ target: { checked } }) => {\n if (!checked) {\n setFieldValue(\"customHeaders\", [CUSTOM_HEADERS_INITIAL_VALUE]);\n }\n\n setFieldValue(\"enableCustomHeaders\", checked);\n };\n\n const label = t(\"neetoMessageTemplate.api.includeHeaders\");\n\n return (\n <div className=\"flex flex-col space-y-4\">\n <Switch\n {...{ label }}\n data-cy={`neeto-message-template-${hyphenate(label)}-switch`}\n name=\"enableCustomHeaders\"\n labelProps={{\n className: \"ml-2\",\n helpIconProps: { popoverProps: helpPopoverProps },\n }}\n onChange={handleChange}\n />\n {enableCustomHeaders && (\n <KeyValuePairs\n entity={t(\"neetoMessageTemplate.api.headers\")}\n name=\"customHeaders\"\n />\n )}\n </div>\n );\n};\n\nexport default CustomHeaders;\n","import { useEffect, useRef } from \"react\";\n\nimport Editor from \"@monaco-editor/react\";\nimport { useField } from \"formik\";\nimport { Help } from \"neetoicons\";\nimport DynamicVariables from \"neetomolecules/DynamicVariables\";\nimport { Label } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\n// eslint-disable-next-line import/extensions\nimport \"stylesheets/components/_json_editor.scss\";\n\nimport { EDITOR_CONFIG, JSON_LANGUAGE } from \"./constants\";\n\nconst JsonEditor = ({\n name,\n helpPopoverProps = {},\n initialValue = \"{}\",\n templateVariables = [],\n}) => {\n const editorRef = useRef(null);\n const completionProviderRef = useRef(null);\n\n const [_, { touched, error }, { setValue, setTouched }] = useField(name);\n\n const { t } = useTranslation();\n\n const handleEditorDidMount = (editor, monaco) => {\n editorRef.current = editor;\n\n completionProviderRef.current =\n monaco.languages.registerCompletionItemProvider(JSON_LANGUAGE, {\n triggerCharacters: [\"{\"],\n provideCompletionItems: (model, position) => {\n const lineContent = model.getLineContent(position.lineNumber);\n const beforeCursor = lineContent.slice(0, position.column - 1);\n\n if (!beforeCursor.endsWith('\"{')) {\n return { suggestions: [] };\n }\n\n const suggestions = templateVariables.map(({ key, label }) => ({\n label,\n kind: monaco.languages.CompletionItemKind.Variable,\n insertText: `{${key}}}`,\n insertTextRules:\n monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,\n detail: t(\"neetoMessageTemplate.api.insertPlaceholder\", {\n label,\n }),\n }));\n\n return { suggestions };\n },\n });\n };\n\n const insertVariable = ({ key }) => {\n const editor = editorRef.current;\n if (!editor) return;\n\n const selection = editor.getSelection();\n const range = {\n startLineNumber: selection.startLineNumber,\n startColumn: selection.startColumn,\n endLineNumber: selection.endLineNumber,\n endColumn: selection.endColumn,\n };\n const text = `\"{{${key}}}\"`;\n\n editor.executeEdits(\"\", [{ range, text, forceMoveMarkers: true }]);\n\n const position = editor.getPosition();\n editor.setPosition({\n lineNumber: position.lineNumber,\n column: position.column + text.length,\n });\n\n editor.focus();\n };\n\n const handleChange = value => {\n setTouched(true);\n setValue(value);\n };\n\n useEffect(() => {\n const editor = editorRef.current;\n if (!editor) return;\n\n const currentValue = editor.getValue();\n if (currentValue !== initialValue) {\n editor.setValue(initialValue);\n }\n }, [initialValue]);\n\n useEffect(\n () => () => {\n completionProviderRef.current?.dispose();\n completionProviderRef.current = null;\n },\n []\n );\n\n return (\n <div className=\"space-y-2\">\n <Label\n required\n data-cy=\"message-template-body\"\n helpIconProps={{ icon: Help, popoverProps: helpPopoverProps }}\n >\n {t(\"neetoMessageTemplate.template.body\")}\n </Label>\n <div className=\"neeto-message-template-json-editor__wrapper\">\n <div className=\"neeto-message-template-json-editor__dynamic-variables\">\n <DynamicVariables\n variables={templateVariables}\n onVariableClick={insertVariable}\n />\n </div>\n <Editor\n className=\"neeto-message-template-json-editor__editor\"\n defaultLanguage={JSON_LANGUAGE}\n defaultValue={initialValue}\n height=\"100%\"\n options={EDITOR_CONFIG}\n theme=\"vs-dark\"\n onChange={handleChange}\n onMount={handleEditorDidMount}\n />\n {touched && error && (\n <div className=\"neeto-ui-input__error\">{error}</div>\n )}\n </div>\n </div>\n );\n};\n\nexport default JsonEditor;\n"],"names":["VALID_URL_REGEX","CUSTOM_HEADERS_INITIAL_VALUE","key","value","API_TEMPLATE_TYPE","API_TEMPLATES_HELP_POPOVER_PROPS","apiTemplates","description","t","helpLinkProps","popoverProps","position","sendToApi","customHeaders","label","body","JSON_LANGUAGE","EDITOR_CONFIG","formatOnType","formatOnPaste","automaticLayout","tabSize","minimap","enabled","scrollBeyondLastLine","autoIndent","dataIndex","title","render","status","width","FILTER_COLUMNS","node","type","values","API_TEMPLATE_INITIAL_VALUES","name","endpoint","enableCustomHeaders","SAMPLE_URL","API_TEMPLATE_FORM_VALIDATION_SCHEMA","yup","object","string","trim","required","entity","matches","test","context","parsedValue","JSON","parse","isNotPresent","createError","message","_unused","TEMPLATE_STATUS","ACTIVE","INACTIVE","sanitizeHelpPopoverProps","map","unless","path","omit","buildHelpPopoverProps","combinedProps","mergeDeepLeft","rejectEmptyKeyValuePairs","reject","whereAny","isEmpty","removeOption","_ref","arrayHelpers","index","data","length","remove","push","addOption","isKeyOrValueNotEmpty","isNotEmpty","KeyValuePairs","withT","_jsx","FieldArray","children","form","showDeleteButton","_jsxs","className","_","Input","concat","placeholder","suffix","Button","icon","Delete","size","style","onClick","CustomHeaders","_ref$helpPopoverProps","helpPopoverProps","_useFormikContext","useFormikContext","setFieldValue","_useTranslation","useTranslation","useEffect","handleChange","_ref2","checked","target","Switch","hyphenate","labelProps","helpIconProps","onChange","JsonEditor","_ref$initialValue","initialValue","_ref$templateVariable","templateVariables","editorRef","useRef","completionProviderRef","_useField","useField","_useField2","_slicedToArray","_useField2$","touched","error","_useField2$2","setValue","setTouched","handleEditorDidMount","editor","monaco","current","languages","registerCompletionItemProvider","triggerCharacters","provideCompletionItems","model","lineContent","getLineContent","lineNumber","beforeCursor","slice","column","endsWith","suggestions","kind","CompletionItemKind","Variable","insertText","insertTextRules","CompletionItemInsertTextRule","InsertAsSnippet","detail","insertVariable","_ref3","selection","getSelection","range","startLineNumber","startColumn","endLineNumber","endColumn","text","executeEdits","forceMoveMarkers","getPosition","setPosition","focus","currentValue","getValue","_completionProviderRe","dispose","Label","Help","DynamicVariables","variables","onVariableClick","Editor","defaultLanguage","defaultValue","height","options","theme","onMount"],"mappings":"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"}