@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
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var react = require('react');
|
|
4
|
+
var formik = require('formik');
|
|
5
|
+
var neetoCist = require('@bigbinary/neeto-cist');
|
|
6
|
+
var Input = require('@bigbinary/neetoui/formik/Input');
|
|
7
|
+
var Switch = require('@bigbinary/neetoui/formik/Switch');
|
|
8
|
+
var reactI18next = require('react-i18next');
|
|
9
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
10
|
+
var ramda = require('ramda');
|
|
11
|
+
|
|
12
|
+
var SaveAsTemplate = function SaveAsTemplate() {
|
|
13
|
+
var _useFormikContext = formik.useFormikContext(),
|
|
14
|
+
shouldSaveAsTemplate = _useFormikContext.values.shouldSaveAsTemplate,
|
|
15
|
+
setFieldValue = _useFormikContext.setFieldValue;
|
|
16
|
+
var _useTranslation = reactI18next.useTranslation(),
|
|
17
|
+
t = _useTranslation.t;
|
|
18
|
+
react.useEffect(function () {
|
|
19
|
+
return function () {
|
|
20
|
+
setFieldValue("shouldSaveAsTemplate", false);
|
|
21
|
+
setFieldValue("templateName", "");
|
|
22
|
+
};
|
|
23
|
+
}, []);
|
|
24
|
+
var handleChange = function handleChange(_ref) {
|
|
25
|
+
var checked = _ref.target.checked;
|
|
26
|
+
if (!checked) {
|
|
27
|
+
setFieldValue("templateName", "");
|
|
28
|
+
}
|
|
29
|
+
setFieldValue("shouldSaveAsTemplate", checked);
|
|
30
|
+
};
|
|
31
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
32
|
+
className: "flex flex-col space-y-4",
|
|
33
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(Switch, {
|
|
34
|
+
"data-cy": "neeto-message-template-".concat(neetoCist.hyphenate(t("neetoMessageTemplate.sendMessage.saveAsTemplate")), "-switch"),
|
|
35
|
+
label: t("neetoMessageTemplate.sendMessage.saveAsTemplate"),
|
|
36
|
+
name: "shouldSaveAsTemplate",
|
|
37
|
+
onChange: handleChange
|
|
38
|
+
}), shouldSaveAsTemplate && /*#__PURE__*/jsxRuntime.jsx(Input, {
|
|
39
|
+
autoFocus: true,
|
|
40
|
+
required: true,
|
|
41
|
+
label: t("neetoMessageTemplate.template.templateName"),
|
|
42
|
+
name: "templateName"
|
|
43
|
+
})]
|
|
44
|
+
});
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
var areValuesEqual = function areValuesEqual(value1, value2) {
|
|
48
|
+
var normalize = ramda.when(ramda.is(String), ramda.trim);
|
|
49
|
+
return ramda.eqBy(normalize, value1, value2);
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
exports.SaveAsTemplate = SaveAsTemplate;
|
|
53
|
+
exports.areValuesEqual = areValuesEqual;
|
|
54
|
+
//# sourceMappingURL=utils-3fvk3PIJ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils-3fvk3PIJ.js","sources":["../app/javascript/src/components/commons/SaveAsTemplate.jsx","../app/javascript/src/components/utils.js"],"sourcesContent":["import { useEffect } from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport { hyphenate } from \"neetocist\";\nimport { Input, Switch } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nconst SaveAsTemplate = () => {\n const {\n values: { shouldSaveAsTemplate },\n setFieldValue,\n } = useFormikContext();\n\n const { t } = useTranslation();\n\n useEffect(\n () => () => {\n setFieldValue(\"shouldSaveAsTemplate\", false);\n setFieldValue(\"templateName\", \"\");\n },\n []\n );\n\n const handleChange = ({ target: { checked } }) => {\n if (!checked) {\n setFieldValue(\"templateName\", \"\");\n }\n\n setFieldValue(\"shouldSaveAsTemplate\", checked);\n };\n\n return (\n <div className=\"flex flex-col space-y-4\">\n <Switch\n data-cy={`neeto-message-template-${hyphenate(t(\"neetoMessageTemplate.sendMessage.saveAsTemplate\"))}-switch`}\n label={t(\"neetoMessageTemplate.sendMessage.saveAsTemplate\")}\n name=\"shouldSaveAsTemplate\"\n onChange={handleChange}\n />\n {shouldSaveAsTemplate && (\n <Input\n autoFocus\n required\n label={t(\"neetoMessageTemplate.template.templateName\")}\n name=\"templateName\"\n />\n )}\n </div>\n );\n};\n\nexport default SaveAsTemplate;\n","import { eqBy, is, trim, when } from \"ramda\";\n\nexport const areValuesEqual = (value1, value2) => {\n const normalize = when(is(String), trim);\n\n return eqBy(normalize, value1, value2);\n};\n"],"names":["SaveAsTemplate","_useFormikContext","useFormikContext","shouldSaveAsTemplate","values","setFieldValue","_useTranslation","useTranslation","t","useEffect","handleChange","_ref","checked","target","_jsxs","className","children","_jsx","Switch","concat","hyphenate","label","name","onChange","Input","autoFocus","required","areValuesEqual","value1","value2","normalize","when","is","String","trim","eqBy"],"mappings":";;;;;;;;;;;AAOA,IAAMA,cAAc,GAAG,SAAjBA,cAAcA,GAAS;AAC3B,EAAA,IAAAC,iBAAA,GAGIC,uBAAgB,EAAE;AAFVC,IAAAA,oBAAoB,GAAAF,iBAAA,CAA9BG,MAAM,CAAID,oBAAoB;IAC9BE,aAAa,GAAAJ,iBAAA,CAAbI,aAAa;AAGf,EAAA,IAAAC,eAAA,GAAcC,2BAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;AAETC,EAAAA,eAAS,CACP,YAAA;AAAA,IAAA,OAAM,YAAM;AACVJ,MAAAA,aAAa,CAAC,sBAAsB,EAAE,KAAK,CAAC;AAC5CA,MAAAA,aAAa,CAAC,cAAc,EAAE,EAAE,CAAC;KAClC;AAAA,GAAA,EACD,EACF,CAAC;AAED,EAAA,IAAMK,YAAY,GAAG,SAAfA,YAAYA,CAAAC,IAAA,EAAgC;AAAA,IAAA,IAAhBC,OAAO,GAAAD,IAAA,CAAjBE,MAAM,CAAID,OAAO;IACvC,IAAI,CAACA,OAAO,EAAE;AACZP,MAAAA,aAAa,CAAC,cAAc,EAAE,EAAE,CAAC;AACnC;AAEAA,IAAAA,aAAa,CAAC,sBAAsB,EAAEO,OAAO,CAAC;GAC/C;AAED,EAAA,oBACEE,eAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,yBAAyB;IAAAC,QAAA,EAAA,cACtCC,cAAA,CAACC,MAAM,EAAA;MACL,SAAAC,EAAAA,yBAAAA,CAAAA,MAAA,CAAmCC,mBAAS,CAACZ,CAAC,CAAC,iDAAiD,CAAC,CAAC,EAAU,SAAA,CAAA;AAC5Ga,MAAAA,KAAK,EAAEb,CAAC,CAAC,iDAAiD,CAAE;AAC5Dc,MAAAA,IAAI,EAAC,sBAAsB;AAC3BC,MAAAA,QAAQ,EAAEb;AAAa,KACxB,CAAC,EACDP,oBAAoB,iBACnBc,cAAA,CAACO,KAAK,EAAA;MACJC,SAAS,EAAA,IAAA;MACTC,QAAQ,EAAA,IAAA;AACRL,MAAAA,KAAK,EAAEb,CAAC,CAAC,4CAA4C,CAAE;AACvDc,MAAAA,IAAI,EAAC;AAAc,KACpB,CACF;AAAA,GACE,CAAC;AAEV;;AC/CO,IAAMK,cAAc,GAAG,SAAjBA,cAAcA,CAAIC,MAAM,EAAEC,MAAM,EAAK;EAChD,IAAMC,SAAS,GAAGC,UAAI,CAACC,QAAE,CAACC,MAAM,CAAC,EAAEC,UAAI,CAAC;AAExC,EAAA,OAAOC,UAAI,CAACL,SAAS,EAAEF,MAAM,EAAEC,MAAM,CAAC;AACxC;;;;;"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { useEffect } from 'react';
|
|
2
|
+
import { useFormikContext } from 'formik';
|
|
3
|
+
import { hyphenate } from '@bigbinary/neeto-cist';
|
|
4
|
+
import Input from '@bigbinary/neetoui/formik/Input';
|
|
5
|
+
import Switch from '@bigbinary/neetoui/formik/Switch';
|
|
6
|
+
import { useTranslation } from 'react-i18next';
|
|
7
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
8
|
+
import { when, is, trim, eqBy } from 'ramda';
|
|
9
|
+
|
|
10
|
+
var SaveAsTemplate = function SaveAsTemplate() {
|
|
11
|
+
var _useFormikContext = useFormikContext(),
|
|
12
|
+
shouldSaveAsTemplate = _useFormikContext.values.shouldSaveAsTemplate,
|
|
13
|
+
setFieldValue = _useFormikContext.setFieldValue;
|
|
14
|
+
var _useTranslation = useTranslation(),
|
|
15
|
+
t = _useTranslation.t;
|
|
16
|
+
useEffect(function () {
|
|
17
|
+
return function () {
|
|
18
|
+
setFieldValue("shouldSaveAsTemplate", false);
|
|
19
|
+
setFieldValue("templateName", "");
|
|
20
|
+
};
|
|
21
|
+
}, []);
|
|
22
|
+
var handleChange = function handleChange(_ref) {
|
|
23
|
+
var checked = _ref.target.checked;
|
|
24
|
+
if (!checked) {
|
|
25
|
+
setFieldValue("templateName", "");
|
|
26
|
+
}
|
|
27
|
+
setFieldValue("shouldSaveAsTemplate", checked);
|
|
28
|
+
};
|
|
29
|
+
return /*#__PURE__*/jsxs("div", {
|
|
30
|
+
className: "flex flex-col space-y-4",
|
|
31
|
+
children: [/*#__PURE__*/jsx(Switch, {
|
|
32
|
+
"data-cy": "neeto-message-template-".concat(hyphenate(t("neetoMessageTemplate.sendMessage.saveAsTemplate")), "-switch"),
|
|
33
|
+
label: t("neetoMessageTemplate.sendMessage.saveAsTemplate"),
|
|
34
|
+
name: "shouldSaveAsTemplate",
|
|
35
|
+
onChange: handleChange
|
|
36
|
+
}), shouldSaveAsTemplate && /*#__PURE__*/jsx(Input, {
|
|
37
|
+
autoFocus: true,
|
|
38
|
+
required: true,
|
|
39
|
+
label: t("neetoMessageTemplate.template.templateName"),
|
|
40
|
+
name: "templateName"
|
|
41
|
+
})]
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
var areValuesEqual = function areValuesEqual(value1, value2) {
|
|
46
|
+
var normalize = when(is(String), trim);
|
|
47
|
+
return eqBy(normalize, value1, value2);
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
export { SaveAsTemplate as S, areValuesEqual as a };
|
|
51
|
+
//# sourceMappingURL=utils-o_45ksFf.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils-o_45ksFf.js","sources":["../app/javascript/src/components/commons/SaveAsTemplate.jsx","../app/javascript/src/components/utils.js"],"sourcesContent":["import { useEffect } from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport { hyphenate } from \"neetocist\";\nimport { Input, Switch } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nconst SaveAsTemplate = () => {\n const {\n values: { shouldSaveAsTemplate },\n setFieldValue,\n } = useFormikContext();\n\n const { t } = useTranslation();\n\n useEffect(\n () => () => {\n setFieldValue(\"shouldSaveAsTemplate\", false);\n setFieldValue(\"templateName\", \"\");\n },\n []\n );\n\n const handleChange = ({ target: { checked } }) => {\n if (!checked) {\n setFieldValue(\"templateName\", \"\");\n }\n\n setFieldValue(\"shouldSaveAsTemplate\", checked);\n };\n\n return (\n <div className=\"flex flex-col space-y-4\">\n <Switch\n data-cy={`neeto-message-template-${hyphenate(t(\"neetoMessageTemplate.sendMessage.saveAsTemplate\"))}-switch`}\n label={t(\"neetoMessageTemplate.sendMessage.saveAsTemplate\")}\n name=\"shouldSaveAsTemplate\"\n onChange={handleChange}\n />\n {shouldSaveAsTemplate && (\n <Input\n autoFocus\n required\n label={t(\"neetoMessageTemplate.template.templateName\")}\n name=\"templateName\"\n />\n )}\n </div>\n );\n};\n\nexport default SaveAsTemplate;\n","import { eqBy, is, trim, when } from \"ramda\";\n\nexport const areValuesEqual = (value1, value2) => {\n const normalize = when(is(String), trim);\n\n return eqBy(normalize, value1, value2);\n};\n"],"names":["SaveAsTemplate","_useFormikContext","useFormikContext","shouldSaveAsTemplate","values","setFieldValue","_useTranslation","useTranslation","t","useEffect","handleChange","_ref","checked","target","_jsxs","className","children","_jsx","Switch","concat","hyphenate","label","name","onChange","Input","autoFocus","required","areValuesEqual","value1","value2","normalize","when","is","String","trim","eqBy"],"mappings":";;;;;;;;;AAOA,IAAMA,cAAc,GAAG,SAAjBA,cAAcA,GAAS;AAC3B,EAAA,IAAAC,iBAAA,GAGIC,gBAAgB,EAAE;AAFVC,IAAAA,oBAAoB,GAAAF,iBAAA,CAA9BG,MAAM,CAAID,oBAAoB;IAC9BE,aAAa,GAAAJ,iBAAA,CAAbI,aAAa;AAGf,EAAA,IAAAC,eAAA,GAAcC,cAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;AAETC,EAAAA,SAAS,CACP,YAAA;AAAA,IAAA,OAAM,YAAM;AACVJ,MAAAA,aAAa,CAAC,sBAAsB,EAAE,KAAK,CAAC;AAC5CA,MAAAA,aAAa,CAAC,cAAc,EAAE,EAAE,CAAC;KAClC;AAAA,GAAA,EACD,EACF,CAAC;AAED,EAAA,IAAMK,YAAY,GAAG,SAAfA,YAAYA,CAAAC,IAAA,EAAgC;AAAA,IAAA,IAAhBC,OAAO,GAAAD,IAAA,CAAjBE,MAAM,CAAID,OAAO;IACvC,IAAI,CAACA,OAAO,EAAE;AACZP,MAAAA,aAAa,CAAC,cAAc,EAAE,EAAE,CAAC;AACnC;AAEAA,IAAAA,aAAa,CAAC,sBAAsB,EAAEO,OAAO,CAAC;GAC/C;AAED,EAAA,oBACEE,IAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,yBAAyB;IAAAC,QAAA,EAAA,cACtCC,GAAA,CAACC,MAAM,EAAA;MACL,SAAAC,EAAAA,yBAAAA,CAAAA,MAAA,CAAmCC,SAAS,CAACZ,CAAC,CAAC,iDAAiD,CAAC,CAAC,EAAU,SAAA,CAAA;AAC5Ga,MAAAA,KAAK,EAAEb,CAAC,CAAC,iDAAiD,CAAE;AAC5Dc,MAAAA,IAAI,EAAC,sBAAsB;AAC3BC,MAAAA,QAAQ,EAAEb;AAAa,KACxB,CAAC,EACDP,oBAAoB,iBACnBc,GAAA,CAACO,KAAK,EAAA;MACJC,SAAS,EAAA,IAAA;MACTC,QAAQ,EAAA,IAAA;AACRL,MAAAA,KAAK,EAAEb,CAAC,CAAC,4CAA4C,CAAE;AACvDc,MAAAA,IAAI,EAAC;AAAc,KACpB,CACF;AAAA,GACE,CAAC;AAEV;;AC/CO,IAAMK,cAAc,GAAG,SAAjBA,cAAcA,CAAIC,MAAM,EAAEC,MAAM,EAAK;EAChD,IAAMC,SAAS,GAAGC,IAAI,CAACC,EAAE,CAACC,MAAM,CAAC,EAAEC,IAAI,CAAC;AAExC,EAAA,OAAOC,IAAI,CAACL,SAAS,EAAEF,MAAM,EAAEC,MAAM,CAAC;AACxC;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bigbinary/neeto-message-templates-frontend",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
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,17 +63,18 @@
|
|
|
63
63
|
"@bigbinary/babel-preset-neeto": "^1.0.3",
|
|
64
64
|
"@bigbinary/eslint-plugin-neeto": "1.6.2",
|
|
65
65
|
"@bigbinary/neeto-cist": "1.0.17",
|
|
66
|
-
"@bigbinary/neeto-commons-frontend": "4.13.
|
|
67
|
-
"@bigbinary/neeto-editor": "1.47.
|
|
66
|
+
"@bigbinary/neeto-commons-frontend": "4.13.40",
|
|
67
|
+
"@bigbinary/neeto-editor": "1.47.10",
|
|
68
68
|
"@bigbinary/neeto-filters-frontend": "4.3.19",
|
|
69
69
|
"@bigbinary/neeto-icons": "1.20.47",
|
|
70
|
-
"@bigbinary/neeto-molecules": "3.16.
|
|
71
|
-
"@bigbinary/neeto-team-members-frontend": "4.5.
|
|
72
|
-
"@bigbinary/neetoui": "8.3.
|
|
70
|
+
"@bigbinary/neeto-molecules": "3.16.55",
|
|
71
|
+
"@bigbinary/neeto-team-members-frontend": "4.5.9",
|
|
72
|
+
"@bigbinary/neetoui": "8.3.7",
|
|
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",
|
|
76
76
|
"@honeybadger-io/react": "6.1.25",
|
|
77
|
+
"@monaco-editor/react": "^4.7.0",
|
|
77
78
|
"@rollup/plugin-alias": "5.1.1",
|
|
78
79
|
"@rollup/plugin-babel": "6.0.4",
|
|
79
80
|
"@rollup/plugin-commonjs": "25.0.7",
|
|
@@ -139,8 +140,8 @@
|
|
|
139
140
|
"process": "^0.11.10",
|
|
140
141
|
"qs": "^6.11.2",
|
|
141
142
|
"ramda": "0.29.0",
|
|
142
|
-
"react": "18.
|
|
143
|
-
"react-dom": "18.
|
|
143
|
+
"react": "18.3.1",
|
|
144
|
+
"react-dom": "18.3.1",
|
|
144
145
|
"react-helmet": "^6.1.0",
|
|
145
146
|
"react-i18next": "12.3.1",
|
|
146
147
|
"react-router-dom": "5.3.3",
|
|
@@ -167,7 +168,7 @@
|
|
|
167
168
|
"webpack": "5.76.0",
|
|
168
169
|
"webpack-assets-manifest": "^5.1.0",
|
|
169
170
|
"webpack-cli": "4.10.0",
|
|
170
|
-
"webpack-dev-server": "^
|
|
171
|
+
"webpack-dev-server": "^5.2.1",
|
|
171
172
|
"yup": "0.32.11",
|
|
172
173
|
"zustand": "4.4.2"
|
|
173
174
|
},
|
|
@@ -175,15 +176,16 @@
|
|
|
175
176
|
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
|
|
176
177
|
"@babel/runtime": "7.26.10",
|
|
177
178
|
"@bigbinary/neeto-cist": "1.0.17",
|
|
178
|
-
"@bigbinary/neeto-commons-frontend": "4.13.
|
|
179
|
-
"@bigbinary/neeto-editor": "1.47.
|
|
179
|
+
"@bigbinary/neeto-commons-frontend": "4.13.40",
|
|
180
|
+
"@bigbinary/neeto-editor": "1.47.10",
|
|
180
181
|
"@bigbinary/neeto-filters-frontend": "4.3.19",
|
|
181
182
|
"@bigbinary/neeto-icons": "1.20.47",
|
|
182
|
-
"@bigbinary/neeto-molecules": "3.16.
|
|
183
|
-
"@bigbinary/neeto-team-members-frontend": "4.5.
|
|
184
|
-
"@bigbinary/neetoui": "8.3.
|
|
183
|
+
"@bigbinary/neeto-molecules": "3.16.55",
|
|
184
|
+
"@bigbinary/neeto-team-members-frontend": "4.5.9",
|
|
185
|
+
"@bigbinary/neetoui": "8.3.7",
|
|
185
186
|
"@honeybadger-io/js": "6.10.1",
|
|
186
187
|
"@honeybadger-io/react": "6.1.25",
|
|
188
|
+
"@monaco-editor/react": "^4.7.0",
|
|
187
189
|
"@tailwindcss/container-queries": "^0.1.1",
|
|
188
190
|
"@tanstack/react-query": "5.59.20",
|
|
189
191
|
"@tanstack/react-query-devtools": "5.59.20",
|
|
@@ -202,8 +204,8 @@
|
|
|
202
204
|
"path-browserify": "^1.0.1",
|
|
203
205
|
"qs": "^6.11.2",
|
|
204
206
|
"ramda": "0.29.0",
|
|
205
|
-
"react": "18.
|
|
206
|
-
"react-dom": "18.
|
|
207
|
+
"react": "18.3.1",
|
|
208
|
+
"react-dom": "18.3.1",
|
|
207
209
|
"react-helmet": "^6.1.0",
|
|
208
210
|
"react-i18next": "12.3.1",
|
|
209
211
|
"react-router-dom": "5.3.3",
|
|
@@ -222,7 +224,9 @@
|
|
|
222
224
|
"resolutions": {
|
|
223
225
|
"postcss": "^8",
|
|
224
226
|
"wrap-ansi": "7.0.0",
|
|
225
|
-
"string-width": "4.1.0"
|
|
227
|
+
"string-width": "4.1.0",
|
|
228
|
+
"react": "18.3.1",
|
|
229
|
+
"react-dom": "18.3.1"
|
|
226
230
|
},
|
|
227
231
|
"engines": {
|
|
228
232
|
"node": ">=22.13",
|
package/types.d.ts
CHANGED
|
@@ -18,8 +18,32 @@ interface SendToApiHelpPopoverProps {
|
|
|
18
18
|
description?: React.ReactNode;
|
|
19
19
|
helpLinkProps?: ButtonProps;
|
|
20
20
|
popoverProps?: PopoverProps;
|
|
21
|
-
}
|
|
22
|
-
|
|
21
|
+
};
|
|
22
|
+
customHeaders?: {
|
|
23
|
+
title?: string;
|
|
24
|
+
description?: React.ReactNode;
|
|
25
|
+
helpLinkProps?: ButtonProps;
|
|
26
|
+
} & PopoverProps;
|
|
27
|
+
body?: {
|
|
28
|
+
title?: string;
|
|
29
|
+
description?: React.ReactNode;
|
|
30
|
+
helpLinkProps?: ButtonProps;
|
|
31
|
+
} & PopoverProps;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
interface ApiTemplatesHelpPopoverProps {
|
|
35
|
+
apiTemplates?: {
|
|
36
|
+
title?: string;
|
|
37
|
+
description?: React.ReactNode;
|
|
38
|
+
helpLinkProps?: ButtonProps;
|
|
39
|
+
popoverProps?: PopoverProps;
|
|
40
|
+
};
|
|
41
|
+
customHeaders?: {
|
|
42
|
+
title?: string;
|
|
43
|
+
description?: React.ReactNode;
|
|
44
|
+
helpLinkProps?: ButtonProps;
|
|
45
|
+
} & PopoverProps;
|
|
46
|
+
body?: {
|
|
23
47
|
title?: string;
|
|
24
48
|
description?: React.ReactNode;
|
|
25
49
|
helpLinkProps?: ButtonProps;
|
|
@@ -58,7 +82,9 @@ interface ApiTemplatesProps {
|
|
|
58
82
|
ownerId?: string;
|
|
59
83
|
breadcrumbs?: Breadcrumb[];
|
|
60
84
|
onMutationSuccess?: (...args: any[]) => void;
|
|
61
|
-
|
|
85
|
+
initialPayload?: object;
|
|
86
|
+
templateVariables?: TemplateVariables[];
|
|
87
|
+
helpPopoverProps?: ApiTemplatesHelpPopoverProps;
|
|
62
88
|
}
|
|
63
89
|
|
|
64
90
|
interface SendToApiPaneProps {
|
|
@@ -68,6 +94,7 @@ interface SendToApiPaneProps {
|
|
|
68
94
|
onSubmit?: (values: { [key: string]: any }) => void;
|
|
69
95
|
isSubmitting?: boolean;
|
|
70
96
|
canManageTemplates?: boolean;
|
|
97
|
+
templateVariables?: TemplateVariables[];
|
|
71
98
|
helpPopoverProps?: SendToApiHelpPopoverProps;
|
|
72
99
|
}
|
|
73
100
|
|
package/dist/utils-CdkVjz8p.js
DELETED
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import { useEffect } from 'react';
|
|
2
|
-
import { useFormikContext } from 'formik';
|
|
3
|
-
import Input from '@bigbinary/neetoui/formik/Input';
|
|
4
|
-
import { useTranslation } from 'react-i18next';
|
|
5
|
-
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
6
|
-
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
7
|
-
import classnames from 'classnames';
|
|
8
|
-
import { hyphenate } from '@bigbinary/neeto-cist';
|
|
9
|
-
import Label from '@bigbinary/neetoui/Label';
|
|
10
|
-
import Typography from '@bigbinary/neetoui/Typography';
|
|
11
|
-
import Switch from '@bigbinary/neetoui/formik/Switch';
|
|
12
|
-
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
13
|
-
import { when, is, trim, eqBy } from 'ramda';
|
|
14
|
-
|
|
15
|
-
var _excluded = ["name", "title", "className"];
|
|
16
|
-
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; }
|
|
17
|
-
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; }
|
|
18
|
-
var SwitchBlock = function SwitchBlock(_ref) {
|
|
19
|
-
var name = _ref.name,
|
|
20
|
-
title = _ref.title,
|
|
21
|
-
_ref$className = _ref.className,
|
|
22
|
-
className = _ref$className === void 0 ? "" : _ref$className,
|
|
23
|
-
otherProps = _objectWithoutProperties(_ref, _excluded);
|
|
24
|
-
return /*#__PURE__*/jsxs(Label, {
|
|
25
|
-
className: classnames("flex items-center justify-start gap-2 ", className),
|
|
26
|
-
"data-cy": "neeto-message-template-".concat(hyphenate(title), "-toggle-label"),
|
|
27
|
-
children: [/*#__PURE__*/jsx(Switch, _objectSpread(_objectSpread({}, _objectSpread(_objectSpread({}, otherProps), {}, {
|
|
28
|
-
name: name
|
|
29
|
-
})), {}, {
|
|
30
|
-
"data-cy": "neeto-message-template-".concat(hyphenate(title), "-switch")
|
|
31
|
-
})), /*#__PURE__*/jsx(Typography, {
|
|
32
|
-
component: "span",
|
|
33
|
-
style: "body1",
|
|
34
|
-
children: title
|
|
35
|
-
})]
|
|
36
|
-
});
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
var SaveAsTemplate = function SaveAsTemplate() {
|
|
40
|
-
var _useFormikContext = useFormikContext(),
|
|
41
|
-
shouldSaveAsTemplate = _useFormikContext.values.shouldSaveAsTemplate,
|
|
42
|
-
setFieldValue = _useFormikContext.setFieldValue;
|
|
43
|
-
var _useTranslation = useTranslation(),
|
|
44
|
-
t = _useTranslation.t;
|
|
45
|
-
useEffect(function () {
|
|
46
|
-
return function () {
|
|
47
|
-
setFieldValue("shouldSaveAsTemplate", false);
|
|
48
|
-
setFieldValue("templateName", "");
|
|
49
|
-
};
|
|
50
|
-
}, []);
|
|
51
|
-
var handleChange = function handleChange(_ref) {
|
|
52
|
-
var checked = _ref.target.checked;
|
|
53
|
-
if (!checked) {
|
|
54
|
-
setFieldValue("templateName", "");
|
|
55
|
-
}
|
|
56
|
-
setFieldValue("shouldSaveAsTemplate", checked);
|
|
57
|
-
};
|
|
58
|
-
return /*#__PURE__*/jsxs("div", {
|
|
59
|
-
className: "flex flex-col space-y-4",
|
|
60
|
-
children: [/*#__PURE__*/jsx(SwitchBlock, {
|
|
61
|
-
className: "mt-4",
|
|
62
|
-
name: "shouldSaveAsTemplate",
|
|
63
|
-
title: t("neetoMessageTemplate.sendMessage.saveAsTemplate"),
|
|
64
|
-
onChange: handleChange
|
|
65
|
-
}), shouldSaveAsTemplate && /*#__PURE__*/jsx(Input, {
|
|
66
|
-
autoFocus: true,
|
|
67
|
-
required: true,
|
|
68
|
-
label: t("neetoMessageTemplate.template.templateName"),
|
|
69
|
-
name: "templateName"
|
|
70
|
-
})]
|
|
71
|
-
});
|
|
72
|
-
};
|
|
73
|
-
|
|
74
|
-
var areValuesEqual = function areValuesEqual(value1, value2) {
|
|
75
|
-
var normalize = when(is(String), trim);
|
|
76
|
-
return eqBy(normalize, value1, value2);
|
|
77
|
-
};
|
|
78
|
-
|
|
79
|
-
export { SaveAsTemplate as S, areValuesEqual as a };
|
|
80
|
-
//# sourceMappingURL=utils-CdkVjz8p.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils-CdkVjz8p.js","sources":["../app/javascript/src/components/commons/SwitchBlock.jsx","../app/javascript/src/components/commons/SaveAsTemplate.jsx","../app/javascript/src/components/utils.js"],"sourcesContent":["import classnames from \"classnames\";\nimport { hyphenate } from \"neetocist\";\nimport { Label, Typography } from \"neetoui\";\nimport { Switch } from \"neetoui/formik\";\n\nconst SwitchBlock = ({ name, title, className = \"\", ...otherProps }) => (\n <Label\n className={classnames(\"flex items-center justify-start gap-2 \", className)}\n data-cy={`neeto-message-template-${hyphenate(title)}-toggle-label`}\n >\n <Switch\n {...{ ...otherProps, name }}\n data-cy={`neeto-message-template-${hyphenate(title)}-switch`}\n />\n <Typography component=\"span\" style=\"body1\">\n {title}\n </Typography>\n </Label>\n);\n\nexport default SwitchBlock;\n","import { useEffect } from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport { Input } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport SwitchBlock from \"./SwitchBlock\";\n\nconst SaveAsTemplate = () => {\n const {\n values: { shouldSaveAsTemplate },\n setFieldValue,\n } = useFormikContext();\n\n const { t } = useTranslation();\n\n useEffect(\n () => () => {\n setFieldValue(\"shouldSaveAsTemplate\", false);\n setFieldValue(\"templateName\", \"\");\n },\n []\n );\n\n const handleChange = ({ target: { checked } }) => {\n if (!checked) {\n setFieldValue(\"templateName\", \"\");\n }\n\n setFieldValue(\"shouldSaveAsTemplate\", checked);\n };\n\n return (\n <div className=\"flex flex-col space-y-4\">\n <SwitchBlock\n className=\"mt-4\"\n name=\"shouldSaveAsTemplate\"\n title={t(\"neetoMessageTemplate.sendMessage.saveAsTemplate\")}\n onChange={handleChange}\n />\n {shouldSaveAsTemplate && (\n <Input\n autoFocus\n required\n label={t(\"neetoMessageTemplate.template.templateName\")}\n name=\"templateName\"\n />\n )}\n </div>\n );\n};\n\nexport default SaveAsTemplate;\n","import { eqBy, is, trim, when } from \"ramda\";\n\nexport const areValuesEqual = (value1, value2) => {\n const normalize = when(is(String), trim);\n\n return eqBy(normalize, value1, value2);\n};\n"],"names":["SwitchBlock","_ref","name","title","_ref$className","className","otherProps","_objectWithoutProperties","_excluded","_jsxs","Label","classnames","concat","hyphenate","children","_jsx","Switch","_objectSpread","Typography","component","style","SaveAsTemplate","_useFormikContext","useFormikContext","shouldSaveAsTemplate","values","setFieldValue","_useTranslation","useTranslation","t","useEffect","handleChange","checked","target","onChange","Input","autoFocus","required","label","areValuesEqual","value1","value2","normalize","when","is","String","trim","eqBy"],"mappings":";;;;;;;;;;;;;;;;;AAKA,IAAMA,WAAW,GAAG,SAAdA,WAAWA,CAAAC,IAAA,EAAA;AAAA,EAAA,IAAMC,IAAI,GAAAD,IAAA,CAAJC,IAAI;IAAEC,KAAK,GAAAF,IAAA,CAALE,KAAK;IAAAC,cAAA,GAAAH,IAAA,CAAEI,SAAS;AAATA,IAAAA,SAAS,GAAAD,cAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,cAAA;AAAKE,IAAAA,UAAU,GAAAC,wBAAA,CAAAN,IAAA,EAAAO,SAAA,CAAA;EAAA,oBAC/DC,IAAA,CAACC,KAAK,EAAA;AACJL,IAAAA,SAAS,EAAEM,UAAU,CAAC,wCAAwC,EAAEN,SAAS,CAAE;AAC3E,IAAA,SAAA,EAAA,yBAAA,CAAAO,MAAA,CAAmCC,SAAS,CAACV,KAAK,CAAC,EAAgB,eAAA,CAAA;AAAAW,IAAAA,QAAA,EAEnEC,cAAAA,GAAA,CAACC,MAAM,EAAAC,aAAA,CAAAA,aAAA,CAAAA,EAAAA,EAAAA,aAAA,CAAAA,aAAA,KACIX,UAAU,CAAA,EAAA,EAAA,EAAA;AAAEJ,MAAAA,IAAI,EAAJA;AAAI,KAAA,CAAA,CAAA,EAAA,EAAA,EAAA;AACzB,MAAA,SAAA,EAAA,yBAAA,CAAAU,MAAA,CAAmCC,SAAS,CAACV,KAAK,CAAC,EAAA,SAAA;AAAU,KAAA,CAC9D,CAAC,eACFY,GAAA,CAACG,UAAU,EAAA;AAACC,MAAAA,SAAS,EAAC,MAAM;AAACC,MAAAA,KAAK,EAAC,OAAO;AAAAN,MAAAA,QAAA,EACvCX;AAAK,KACI,CAAC;AAAA,GACR,CAAC;AAAA,CACT;;ACVD,IAAMkB,cAAc,GAAG,SAAjBA,cAAcA,GAAS;AAC3B,EAAA,IAAAC,iBAAA,GAGIC,gBAAgB,EAAE;AAFVC,IAAAA,oBAAoB,GAAAF,iBAAA,CAA9BG,MAAM,CAAID,oBAAoB;IAC9BE,aAAa,GAAAJ,iBAAA,CAAbI,aAAa;AAGf,EAAA,IAAAC,eAAA,GAAcC,cAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;AAETC,EAAAA,SAAS,CACP,YAAA;AAAA,IAAA,OAAM,YAAM;AACVJ,MAAAA,aAAa,CAAC,sBAAsB,EAAE,KAAK,CAAC;AAC5CA,MAAAA,aAAa,CAAC,cAAc,EAAE,EAAE,CAAC;KAClC;AAAA,GAAA,EACD,EACF,CAAC;AAED,EAAA,IAAMK,YAAY,GAAG,SAAfA,YAAYA,CAAA9B,IAAA,EAAgC;AAAA,IAAA,IAAhB+B,OAAO,GAAA/B,IAAA,CAAjBgC,MAAM,CAAID,OAAO;IACvC,IAAI,CAACA,OAAO,EAAE;AACZN,MAAAA,aAAa,CAAC,cAAc,EAAE,EAAE,CAAC;AACnC;AAEAA,IAAAA,aAAa,CAAC,sBAAsB,EAAEM,OAAO,CAAC;GAC/C;AAED,EAAA,oBACEvB,IAAA,CAAA,KAAA,EAAA;AAAKJ,IAAAA,SAAS,EAAC,yBAAyB;IAAAS,QAAA,EAAA,cACtCC,GAAA,CAACf,WAAW,EAAA;AACVK,MAAAA,SAAS,EAAC,MAAM;AAChBH,MAAAA,IAAI,EAAC,sBAAsB;AAC3BC,MAAAA,KAAK,EAAE0B,CAAC,CAAC,iDAAiD,CAAE;AAC5DK,MAAAA,QAAQ,EAAEH;AAAa,KACxB,CAAC,EACDP,oBAAoB,iBACnBT,GAAA,CAACoB,KAAK,EAAA;MACJC,SAAS,EAAA,IAAA;MACTC,QAAQ,EAAA,IAAA;AACRC,MAAAA,KAAK,EAAET,CAAC,CAAC,4CAA4C,CAAE;AACvD3B,MAAAA,IAAI,EAAC;AAAc,KACpB,CACF;AAAA,GACE,CAAC;AAEV;;AChDO,IAAMqC,cAAc,GAAG,SAAjBA,cAAcA,CAAIC,MAAM,EAAEC,MAAM,EAAK;EAChD,IAAMC,SAAS,GAAGC,IAAI,CAACC,EAAE,CAACC,MAAM,CAAC,EAAEC,IAAI,CAAC;AAExC,EAAA,OAAOC,IAAI,CAACL,SAAS,EAAEF,MAAM,EAAEC,MAAM,CAAC;AACxC;;;;"}
|
package/dist/utils-D7y24q1q.js
DELETED
|
@@ -1,186 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var i18next = require('i18next');
|
|
4
|
-
var yup = require('yup');
|
|
5
|
-
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
6
|
-
var formik = require('formik');
|
|
7
|
-
var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
|
|
8
|
-
var Delete = require('@bigbinary/neeto-icons/Delete');
|
|
9
|
-
var Button = require('@bigbinary/neetoui/Button');
|
|
10
|
-
var Label = require('@bigbinary/neetoui/Label');
|
|
11
|
-
var Input = require('@bigbinary/neetoui/formik/Input');
|
|
12
|
-
var neetoCist = require('@bigbinary/neeto-cist');
|
|
13
|
-
var ramda = require('ramda');
|
|
14
|
-
var jsxRuntime = require('react/jsx-runtime');
|
|
15
|
-
|
|
16
|
-
function _interopNamespaceDefault(e) {
|
|
17
|
-
var n = Object.create(null);
|
|
18
|
-
if (e) {
|
|
19
|
-
Object.keys(e).forEach(function (k) {
|
|
20
|
-
if (k !== 'default') {
|
|
21
|
-
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
22
|
-
Object.defineProperty(n, k, d.get ? d : {
|
|
23
|
-
enumerable: true,
|
|
24
|
-
get: function () { return e[k]; }
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
n.default = e;
|
|
30
|
-
return Object.freeze(n);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
var yup__namespace = /*#__PURE__*/_interopNamespaceDefault(yup);
|
|
34
|
-
|
|
35
|
-
var VALID_URL_REGEX = /^(https?):\/\/([a-zA-Z0-9-]+\.){1,}[a-zA-Z]{2,}\/?[^\s]*$/;
|
|
36
|
-
var ADDITIONAL_DATA_INITIAL_VALUE = {
|
|
37
|
-
key: "",
|
|
38
|
-
value: ""
|
|
39
|
-
};
|
|
40
|
-
var API_TEMPLATE_TYPE = "api_template";
|
|
41
|
-
|
|
42
|
-
[{
|
|
43
|
-
dataIndex: "name",
|
|
44
|
-
key: "name",
|
|
45
|
-
title: i18next.t("neetoMessageTemplate.template.name")
|
|
46
|
-
}, {
|
|
47
|
-
dataIndex: "status",
|
|
48
|
-
key: "status",
|
|
49
|
-
title: i18next.t("neetoMessageTemplate.template.active"),
|
|
50
|
-
render: function render(status) {
|
|
51
|
-
return status === "active" ? i18next.t("neetoMessageTemplate.yes") : i18next.t("neetoMessageTemplate.no");
|
|
52
|
-
},
|
|
53
|
-
width: "20%"
|
|
54
|
-
}];
|
|
55
|
-
var FILTER_COLUMNS = [{
|
|
56
|
-
key: "name",
|
|
57
|
-
node: "name",
|
|
58
|
-
label: i18next.t("neetoMessageTemplate.template.name"),
|
|
59
|
-
type: "text"
|
|
60
|
-
}, {
|
|
61
|
-
key: "status",
|
|
62
|
-
node: "status",
|
|
63
|
-
label: i18next.t("neetoMessageTemplate.template.active"),
|
|
64
|
-
type: "single_option",
|
|
65
|
-
values: [{
|
|
66
|
-
label: i18next.t("neetoMessageTemplate.yes"),
|
|
67
|
-
value: "active"
|
|
68
|
-
}, {
|
|
69
|
-
label: i18next.t("neetoMessageTemplate.no"),
|
|
70
|
-
value: "inactive"
|
|
71
|
-
}]
|
|
72
|
-
}];
|
|
73
|
-
var API_TEMPLATE_INITIAL_VALUES = {
|
|
74
|
-
name: "",
|
|
75
|
-
endpoint: "",
|
|
76
|
-
additionalData: [ADDITIONAL_DATA_INITIAL_VALUE]
|
|
77
|
-
};
|
|
78
|
-
var SAMPLE_URL = "https://example.com";
|
|
79
|
-
var API_TEMPLATE_FORM_VALIDATION_SCHEMA = yup__namespace.object({
|
|
80
|
-
name: yup__namespace.string().trim().required(i18next.t("neetoMessageTemplate.template.validation.namePresence")),
|
|
81
|
-
endpoint: yup__namespace.string().required(i18next.t("neetoMessageTemplate.api.validation.endpointPresence")).matches(VALID_URL_REGEX, i18next.t("neetoMessageTemplate.api.validation.validEndpoint")),
|
|
82
|
-
additionalData: yup__namespace.array().of(yup__namespace.object({
|
|
83
|
-
key: yup__namespace.string(),
|
|
84
|
-
value: yup__namespace.string()
|
|
85
|
-
}))
|
|
86
|
-
});
|
|
87
|
-
var TEMPLATE_STATUS = {
|
|
88
|
-
ACTIVE: "active",
|
|
89
|
-
INACTIVE: "inactive"
|
|
90
|
-
};
|
|
91
|
-
|
|
92
|
-
var removeOption = function removeOption(_ref) {
|
|
93
|
-
var arrayHelpers = _ref.arrayHelpers,
|
|
94
|
-
index = _ref.index,
|
|
95
|
-
data = _ref.data;
|
|
96
|
-
if (data.length === 1) {
|
|
97
|
-
arrayHelpers.remove(index);
|
|
98
|
-
arrayHelpers.push(ADDITIONAL_DATA_INITIAL_VALUE);
|
|
99
|
-
return;
|
|
100
|
-
}
|
|
101
|
-
arrayHelpers.remove(index);
|
|
102
|
-
};
|
|
103
|
-
var addOption = function addOption(arrayHelpers) {
|
|
104
|
-
return arrayHelpers.push(ADDITIONAL_DATA_INITIAL_VALUE);
|
|
105
|
-
};
|
|
106
|
-
var isKeyOrValueNotEmpty = ramda.whereAny({
|
|
107
|
-
key: neetoCist.isNotEmpty,
|
|
108
|
-
value: neetoCist.isNotEmpty
|
|
109
|
-
});
|
|
110
|
-
|
|
111
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
112
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
113
|
-
var KeyValuePairs = reactUtils.withT(function (_ref) {
|
|
114
|
-
var t = _ref.t,
|
|
115
|
-
name = _ref.name,
|
|
116
|
-
_ref$label = _ref.label,
|
|
117
|
-
label = _ref$label === void 0 ? "" : _ref$label,
|
|
118
|
-
_ref$labelProps = _ref.labelProps,
|
|
119
|
-
labelProps = _ref$labelProps === void 0 ? {} : _ref$labelProps;
|
|
120
|
-
return /*#__PURE__*/jsxRuntime.jsx(formik.FieldArray, {
|
|
121
|
-
name: name,
|
|
122
|
-
children: function children(arrayHelpers) {
|
|
123
|
-
var data = arrayHelpers.form.values[name];
|
|
124
|
-
var showDeleteButton = data.length > 1 || isKeyOrValueNotEmpty(data[0]);
|
|
125
|
-
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
126
|
-
className: "space-y-2",
|
|
127
|
-
children: [/*#__PURE__*/jsxRuntime.jsx(Label, _objectSpread(_objectSpread({}, labelProps), {}, {
|
|
128
|
-
children: label
|
|
129
|
-
})), data.map(function (_, index) {
|
|
130
|
-
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
131
|
-
className: "flex h-8 space-x-3",
|
|
132
|
-
children: [/*#__PURE__*/jsxRuntime.jsx(Input, {
|
|
133
|
-
className: "w-2/5",
|
|
134
|
-
"data-cy": "key-input-".concat(index),
|
|
135
|
-
name: "".concat(name, ".").concat(index, ".key"),
|
|
136
|
-
placeholder: t("neetoMessageTemplate.api.key")
|
|
137
|
-
}), /*#__PURE__*/jsxRuntime.jsx(Input, {
|
|
138
|
-
className: "w-3/5",
|
|
139
|
-
"data-cy": "value-input-".concat(index),
|
|
140
|
-
name: "".concat(name, ".").concat(index, ".value"),
|
|
141
|
-
placeholder: t("neetoMessageTemplate.api.value"),
|
|
142
|
-
suffix: showDeleteButton && /*#__PURE__*/jsxRuntime.jsx(Button, {
|
|
143
|
-
"data-cy": "delete-key-value-pair-".concat(index),
|
|
144
|
-
icon: Delete,
|
|
145
|
-
size: "small",
|
|
146
|
-
style: "text",
|
|
147
|
-
onClick: function onClick() {
|
|
148
|
-
return removeOption({
|
|
149
|
-
arrayHelpers: arrayHelpers,
|
|
150
|
-
index: index,
|
|
151
|
-
data: data
|
|
152
|
-
});
|
|
153
|
-
}
|
|
154
|
-
})
|
|
155
|
-
})]
|
|
156
|
-
}, index);
|
|
157
|
-
}), /*#__PURE__*/jsxRuntime.jsx(Button, {
|
|
158
|
-
className: "w-full justify-center",
|
|
159
|
-
"data-cy": "add-key-value-pair-button",
|
|
160
|
-
label: t("neetoMessageTemplate.api.addKeyValuePair"),
|
|
161
|
-
style: "secondary",
|
|
162
|
-
onClick: function onClick() {
|
|
163
|
-
return addOption(arrayHelpers);
|
|
164
|
-
}
|
|
165
|
-
})]
|
|
166
|
-
});
|
|
167
|
-
}
|
|
168
|
-
});
|
|
169
|
-
});
|
|
170
|
-
|
|
171
|
-
var rejectEmptyKeyValuePairs = ramda.reject(ramda.whereAny({
|
|
172
|
-
key: ramda.isEmpty,
|
|
173
|
-
value: ramda.isEmpty
|
|
174
|
-
}));
|
|
175
|
-
|
|
176
|
-
exports.ADDITIONAL_DATA_INITIAL_VALUE = ADDITIONAL_DATA_INITIAL_VALUE;
|
|
177
|
-
exports.API_TEMPLATE_FORM_VALIDATION_SCHEMA = API_TEMPLATE_FORM_VALIDATION_SCHEMA;
|
|
178
|
-
exports.API_TEMPLATE_INITIAL_VALUES = API_TEMPLATE_INITIAL_VALUES;
|
|
179
|
-
exports.API_TEMPLATE_TYPE = API_TEMPLATE_TYPE;
|
|
180
|
-
exports.FILTER_COLUMNS = FILTER_COLUMNS;
|
|
181
|
-
exports.KeyValuePairs = KeyValuePairs;
|
|
182
|
-
exports.SAMPLE_URL = SAMPLE_URL;
|
|
183
|
-
exports.TEMPLATE_STATUS = TEMPLATE_STATUS;
|
|
184
|
-
exports.VALID_URL_REGEX = VALID_URL_REGEX;
|
|
185
|
-
exports.rejectEmptyKeyValuePairs = rejectEmptyKeyValuePairs;
|
|
186
|
-
//# sourceMappingURL=utils-D7y24q1q.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils-D7y24q1q.js","sources":["../app/javascript/src/components/Api/constants.js","../app/javascript/src/components/Api/ApiTemplates/constants.js","../app/javascript/src/components/commons/KeyValuePairs/utils.js","../app/javascript/src/components/commons/KeyValuePairs/index.jsx","../app/javascript/src/components/Api/utils.js"],"sourcesContent":["export const VALID_URL_REGEX =\n /^(https?):\\/\\/([a-zA-Z0-9-]+\\.){1,}[a-zA-Z]{2,}\\/?[^\\s]*$/;\n\nexport const ADDITIONAL_DATA_INITIAL_VALUE = { key: \"\", value: \"\" };\n\nexport const API_TEMPLATE_TYPE = \"api_template\";\n","import { t } from \"i18next\";\nimport * as yup from \"yup\";\n\nimport {\n ADDITIONAL_DATA_INITIAL_VALUE,\n VALID_URL_REGEX,\n} from \"components/Api/constants\";\n\nexport const TABLE_COLUMN_DATA = [\n {\n dataIndex: \"name\",\n key: \"name\",\n title: t(\"neetoMessageTemplate.template.name\"),\n },\n {\n dataIndex: \"status\",\n key: \"status\",\n title: t(\"neetoMessageTemplate.template.active\"),\n render: status =>\n status === \"active\"\n ? t(\"neetoMessageTemplate.yes\")\n : t(\"neetoMessageTemplate.no\"),\n width: \"20%\",\n },\n];\n\nexport const FILTER_COLUMNS = [\n {\n key: \"name\",\n node: \"name\",\n label: t(\"neetoMessageTemplate.template.name\"),\n type: \"text\",\n },\n {\n key: \"status\",\n node: \"status\",\n label: t(\"neetoMessageTemplate.template.active\"),\n type: \"single_option\",\n values: [\n { label: t(\"neetoMessageTemplate.yes\"), value: \"active\" },\n { label: t(\"neetoMessageTemplate.no\"), value: \"inactive\" },\n ],\n },\n];\n\nexport const API_TEMPLATE_INITIAL_VALUES = {\n name: \"\",\n endpoint: \"\",\n additionalData: [ADDITIONAL_DATA_INITIAL_VALUE],\n};\n\nexport const SAMPLE_URL = \"https://example.com\";\n\nexport const API_TEMPLATE_FORM_VALIDATION_SCHEMA = yup.object({\n name: yup\n .string()\n .trim()\n .required(t(\"neetoMessageTemplate.template.validation.namePresence\")),\n endpoint: yup\n .string()\n .required(t(\"neetoMessageTemplate.api.validation.endpointPresence\"))\n .matches(\n VALID_URL_REGEX,\n t(\"neetoMessageTemplate.api.validation.validEndpoint\")\n ),\n additionalData: yup\n .array()\n .of(yup.object({ key: yup.string(), value: yup.string() })),\n});\n\nexport const TEMPLATE_STATUS = { ACTIVE: \"active\", INACTIVE: \"inactive\" };\n","import { isNotEmpty } from \"neetocist\";\nimport { whereAny } from \"ramda\";\n\nimport { ADDITIONAL_DATA_INITIAL_VALUE } from \"components/Api/constants\";\n\nexport const removeOption = ({ arrayHelpers, index, data }) => {\n if (data.length === 1) {\n arrayHelpers.remove(index);\n arrayHelpers.push(ADDITIONAL_DATA_INITIAL_VALUE);\n\n return;\n }\n\n arrayHelpers.remove(index);\n};\n\nexport const addOption = arrayHelpers =>\n arrayHelpers.push(ADDITIONAL_DATA_INITIAL_VALUE);\n\nexport const isKeyOrValueNotEmpty = whereAny({\n key: isNotEmpty,\n value: isNotEmpty,\n});\n","import { FieldArray } from \"formik\";\nimport { withT } from \"neetocommons/react-utils\";\nimport { Delete } from \"neetoicons\";\nimport { Button, Label } from \"neetoui\";\nimport { Input } from \"neetoui/formik\";\n\nimport { addOption, isKeyOrValueNotEmpty, removeOption } from \"./utils\";\n\nconst KeyValuePairs = withT(({ t, name, label = \"\", labelProps = {} }) => (\n <FieldArray {...{ name }}>\n {arrayHelpers => {\n const data = arrayHelpers.form.values[name];\n\n const showDeleteButton = data.length > 1 || isKeyOrValueNotEmpty(data[0]);\n\n return (\n <div className=\"space-y-2\">\n <Label {...labelProps}>{label}</Label>\n {data.map((_, index) => (\n <div className=\"flex h-8 space-x-3\" key={index}>\n <Input\n className=\"w-2/5\"\n data-cy={`key-input-${index}`}\n name={`${name}.${index}.key`}\n placeholder={t(\"neetoMessageTemplate.api.key\")}\n />\n <Input\n className=\"w-3/5\"\n data-cy={`value-input-${index}`}\n name={`${name}.${index}.value`}\n placeholder={t(\"neetoMessageTemplate.api.value\")}\n suffix={\n showDeleteButton && (\n <Button\n data-cy={`delete-key-value-pair-${index}`}\n icon={Delete}\n size=\"small\"\n style=\"text\"\n onClick={() =>\n removeOption({ arrayHelpers, index, data })\n }\n />\n )\n }\n />\n </div>\n ))}\n <Button\n className=\"w-full justify-center\"\n data-cy=\"add-key-value-pair-button\"\n label={t(\"neetoMessageTemplate.api.addKeyValuePair\")}\n style=\"secondary\"\n onClick={() => addOption(arrayHelpers)}\n />\n </div>\n );\n }}\n </FieldArray>\n));\n\nexport default KeyValuePairs;\n","import { isEmpty, reject, whereAny } from \"ramda\";\n\nexport const rejectEmptyKeyValuePairs = reject(\n whereAny({ key: isEmpty, value: isEmpty })\n);\n"],"names":["VALID_URL_REGEX","ADDITIONAL_DATA_INITIAL_VALUE","key","value","API_TEMPLATE_TYPE","dataIndex","title","t","render","status","width","FILTER_COLUMNS","node","label","type","values","API_TEMPLATE_INITIAL_VALUES","name","endpoint","additionalData","SAMPLE_URL","API_TEMPLATE_FORM_VALIDATION_SCHEMA","yup","object","string","trim","required","matches","array","of","TEMPLATE_STATUS","ACTIVE","INACTIVE","removeOption","_ref","arrayHelpers","index","data","length","remove","push","addOption","isKeyOrValueNotEmpty","whereAny","isNotEmpty","KeyValuePairs","withT","_ref$label","_ref$labelProps","labelProps","_jsx","FieldArray","children","form","showDeleteButton","_jsxs","className","Label","_objectSpread","map","_","Input","concat","placeholder","suffix","Button","icon","Delete","size","style","onClick","rejectEmptyKeyValuePairs","reject","isEmpty"],"mappings":"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"}
|