@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.
Files changed (44) hide show
  1. package/README.md +69 -17
  2. package/app/javascript/src/translations/en.json +18 -6
  3. package/dist/ApiTemplates.js +52 -19
  4. package/dist/ApiTemplates.js.map +1 -1
  5. package/dist/JsonEditor-ChlZYDDV.js +404 -0
  6. package/dist/JsonEditor-ChlZYDDV.js.map +1 -0
  7. package/dist/JsonEditor-Cz_76w4s.js +436 -0
  8. package/dist/JsonEditor-Cz_76w4s.js.map +1 -0
  9. package/dist/MessageTemplates.js +4 -1
  10. package/dist/MessageTemplates.js.map +1 -1
  11. package/dist/SendMessagePane.js +1 -4
  12. package/dist/SendMessagePane.js.map +1 -1
  13. package/dist/SendToApiPane.js +65 -60
  14. package/dist/SendToApiPane.js.map +1 -1
  15. package/dist/cjs/ApiTemplates.js +61 -28
  16. package/dist/cjs/ApiTemplates.js.map +1 -1
  17. package/dist/cjs/MessageTemplates.js +4 -1
  18. package/dist/cjs/MessageTemplates.js.map +1 -1
  19. package/dist/cjs/SendMessagePane.js +1 -4
  20. package/dist/cjs/SendMessagePane.js.map +1 -1
  21. package/dist/cjs/SendToApiPane.js +68 -63
  22. package/dist/cjs/SendToApiPane.js.map +1 -1
  23. package/dist/cjs/index.js +7 -5
  24. package/dist/cjs/index.js.map +1 -1
  25. package/dist/index.js +7 -5
  26. package/dist/index.js.map +1 -1
  27. package/dist/inject-css-DmrvuTKK.js +4 -0
  28. package/dist/inject-css-DmrvuTKK.js.map +1 -0
  29. package/dist/inject-css-vQvjPR2x.js +6 -0
  30. package/dist/inject-css-vQvjPR2x.js.map +1 -0
  31. package/dist/utils-3fvk3PIJ.js +54 -0
  32. package/dist/utils-3fvk3PIJ.js.map +1 -0
  33. package/dist/utils-o_45ksFf.js +51 -0
  34. package/dist/utils-o_45ksFf.js.map +1 -0
  35. package/package.json +21 -17
  36. package/types.d.ts +30 -3
  37. package/dist/utils-CdkVjz8p.js +0 -80
  38. package/dist/utils-CdkVjz8p.js.map +0 -1
  39. package/dist/utils-D7y24q1q.js +0 -186
  40. package/dist/utils-D7y24q1q.js.map +0 -1
  41. package/dist/utils-DCNzEjAw.js +0 -83
  42. package/dist/utils-DCNzEjAw.js.map +0 -1
  43. package/dist/utils-oljkG5EG.js +0 -156
  44. package/dist/utils-oljkG5EG.js.map +0 -1
@@ -0,0 +1,436 @@
1
+ 'use strict';
2
+
3
+ var i18next = require('i18next');
4
+ var neetoCist = require('@bigbinary/neeto-cist');
5
+ var yup = require('yup');
6
+ var ramda = require('ramda');
7
+ var react = require('react');
8
+ var formik = require('formik');
9
+ var Switch = require('@bigbinary/neetoui/formik/Switch');
10
+ var reactI18next = require('react-i18next');
11
+ var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
12
+ var Delete = require('@bigbinary/neeto-icons/Delete');
13
+ var Button = require('@bigbinary/neetoui/Button');
14
+ var Input = require('@bigbinary/neetoui/formik/Input');
15
+ var jsxRuntime = require('react/jsx-runtime');
16
+ var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
17
+ var Editor = require('@monaco-editor/react');
18
+ var Help = require('@bigbinary/neeto-icons/Help');
19
+ var DynamicVariables = require('@bigbinary/neeto-molecules/DynamicVariables');
20
+ var Label = require('@bigbinary/neetoui/Label');
21
+ var injectCss = require('./inject-css-vQvjPR2x.js');
22
+
23
+ function _interopNamespaceDefault(e) {
24
+ var n = Object.create(null);
25
+ if (e) {
26
+ Object.keys(e).forEach(function (k) {
27
+ if (k !== 'default') {
28
+ var d = Object.getOwnPropertyDescriptor(e, k);
29
+ Object.defineProperty(n, k, d.get ? d : {
30
+ enumerable: true,
31
+ get: function () { return e[k]; }
32
+ });
33
+ }
34
+ });
35
+ }
36
+ n.default = e;
37
+ return Object.freeze(n);
38
+ }
39
+
40
+ var yup__namespace = /*#__PURE__*/_interopNamespaceDefault(yup);
41
+
42
+ var VALID_URL_REGEX = /^(https?):\/\/([a-zA-Z0-9-]+\.){1,}[a-zA-Z]{2,}\/?[^\s]*$/;
43
+ var CUSTOM_HEADERS_INITIAL_VALUE = {
44
+ key: "",
45
+ value: ""
46
+ };
47
+ var API_TEMPLATE_TYPE = "api_template";
48
+ var API_TEMPLATES_HELP_POPOVER_PROPS = {
49
+ apiTemplates: {
50
+ description: i18next.t("neetoMessageTemplate.api.helpPopovers.apiTemplates.description"),
51
+ helpLinkProps: {
52
+ "data-cy": "api-templates-header-help-link"
53
+ },
54
+ popoverProps: {
55
+ position: "top"
56
+ }
57
+ },
58
+ sendToApi: {
59
+ description: i18next.t("neetoMessageTemplate.api.helpPopovers.sendToApi.description"),
60
+ helpLinkProps: {
61
+ "data-cy": "send-to-api-action-help-link"
62
+ },
63
+ popoverProps: {
64
+ position: "top"
65
+ }
66
+ },
67
+ customHeaders: {
68
+ description: i18next.t("neetoMessageTemplate.api.helpPopovers.customHeaders.description"),
69
+ helpLinkProps: {
70
+ label: i18next.t("neetoMessageTemplate.template.viewHelpArticle"),
71
+ "data-cy": "api-templates-custom-headers-help-link"
72
+ },
73
+ position: "top"
74
+ },
75
+ body: {
76
+ description: i18next.t("neetoMessageTemplate.api.helpPopovers.body.description"),
77
+ helpLinkProps: {
78
+ label: i18next.t("neetoMessageTemplate.template.viewHelpArticle"),
79
+ "data-cy": "api-templates-body-help-link"
80
+ },
81
+ position: "top"
82
+ }
83
+ };
84
+
85
+ [{
86
+ dataIndex: "name",
87
+ key: "name",
88
+ title: i18next.t("neetoMessageTemplate.template.name")
89
+ }, {
90
+ dataIndex: "status",
91
+ key: "status",
92
+ title: i18next.t("neetoMessageTemplate.template.active"),
93
+ render: function render(status) {
94
+ return status === "active" ? i18next.t("neetoMessageTemplate.yes") : i18next.t("neetoMessageTemplate.no");
95
+ },
96
+ width: "20%"
97
+ }];
98
+ var FILTER_COLUMNS = [{
99
+ key: "name",
100
+ node: "name",
101
+ label: i18next.t("neetoMessageTemplate.template.name"),
102
+ type: "text"
103
+ }, {
104
+ key: "status",
105
+ node: "status",
106
+ label: i18next.t("neetoMessageTemplate.template.active"),
107
+ type: "single_option",
108
+ values: [{
109
+ label: i18next.t("neetoMessageTemplate.yes"),
110
+ value: "active"
111
+ }, {
112
+ label: i18next.t("neetoMessageTemplate.no"),
113
+ value: "inactive"
114
+ }]
115
+ }];
116
+ var API_TEMPLATE_INITIAL_VALUES = {
117
+ name: "",
118
+ endpoint: "",
119
+ enableCustomHeaders: false,
120
+ customHeaders: [CUSTOM_HEADERS_INITIAL_VALUE],
121
+ body: "{}"
122
+ };
123
+ var SAMPLE_URL = "https://example.com";
124
+ var API_TEMPLATE_FORM_VALIDATION_SCHEMA = yup__namespace.object({
125
+ name: yup__namespace.string().trim().required(i18next.t("neetoMessageTemplate.validations.requiredEntity", {
126
+ entity: i18next.t("neetoMessageTemplate.template.name")
127
+ })),
128
+ endpoint: yup__namespace.string().trim().required(i18next.t("neetoMessageTemplate.validations.requiredEntity", {
129
+ entity: i18next.t("neetoMessageTemplate.api.endpoint")
130
+ })).matches(VALID_URL_REGEX, i18next.t("neetoMessageTemplate.api.validation.validEndpoint")),
131
+ body: yup__namespace.string().trim().required(i18next.t("neetoMessageTemplate.validations.requiredEntity", {
132
+ entity: i18next.t("neetoMessageTemplate.template.body")
133
+ })).test("is-not-empty", i18next.t("neetoMessageTemplate.validations.requiredEntity", {
134
+ entity: i18next.t("neetoMessageTemplate.template.body")
135
+ }), function (value) {
136
+ return neetoCist.isPresent(value);
137
+ }).test("is-valid-json", i18next.t("neetoMessageTemplate.api.validation.invalidJsonBody"), function (value) {
138
+ try {
139
+ JSON.parse(value);
140
+ return true;
141
+ } catch (_unused) {
142
+ return false;
143
+ }
144
+ })
145
+ });
146
+ var TEMPLATE_STATUS = {
147
+ ACTIVE: "active",
148
+ INACTIVE: "inactive"
149
+ };
150
+
151
+ var sanitizeHelpPopoverProps = ramda.map(ramda.unless(ramda.path(["helpLinkProps", "href"]), ramda.omit(["helpLinkProps"])));
152
+ var buildHelpPopoverProps = function buildHelpPopoverProps(popoverProps) {
153
+ var combinedProps = ramda.mergeDeepLeft(popoverProps, API_TEMPLATES_HELP_POPOVER_PROPS);
154
+ return sanitizeHelpPopoverProps(combinedProps);
155
+ };
156
+ var rejectEmptyKeyValuePairs = ramda.reject(ramda.whereAny({
157
+ key: ramda.isEmpty,
158
+ value: ramda.isEmpty
159
+ }));
160
+
161
+ var removeOption = function removeOption(_ref) {
162
+ var arrayHelpers = _ref.arrayHelpers,
163
+ index = _ref.index,
164
+ data = _ref.data;
165
+ if (data.length === 1) {
166
+ arrayHelpers.remove(index);
167
+ arrayHelpers.push(CUSTOM_HEADERS_INITIAL_VALUE);
168
+ return;
169
+ }
170
+ arrayHelpers.remove(index);
171
+ };
172
+ var addOption = function addOption(arrayHelpers) {
173
+ return arrayHelpers.push(CUSTOM_HEADERS_INITIAL_VALUE);
174
+ };
175
+ var isKeyOrValueNotEmpty = ramda.whereAny({
176
+ key: neetoCist.isNotEmpty,
177
+ value: neetoCist.isNotEmpty
178
+ });
179
+
180
+ var KeyValuePairs = reactUtils.withT(function (_ref) {
181
+ var t = _ref.t,
182
+ name = _ref.name,
183
+ entity = _ref.entity;
184
+ return /*#__PURE__*/jsxRuntime.jsx(formik.FieldArray, {
185
+ name: name,
186
+ children: function children(arrayHelpers) {
187
+ var data = arrayHelpers.form.values[name] || [CUSTOM_HEADERS_INITIAL_VALUE];
188
+ var showDeleteButton = data.length > 1 || isKeyOrValueNotEmpty(data[0]);
189
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
190
+ className: "flex flex-col space-y-2",
191
+ children: [data.map(function (_, index) {
192
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
193
+ className: "flex h-8 space-x-3",
194
+ children: [/*#__PURE__*/jsxRuntime.jsx(Input, {
195
+ className: "w-1/3",
196
+ "data-cy": "key-input-".concat(index),
197
+ name: "".concat(name, ".").concat(index, ".key"),
198
+ placeholder: t("neetoMessageTemplate.api.key")
199
+ }), /*#__PURE__*/jsxRuntime.jsx(Input, {
200
+ className: "w-2/3",
201
+ "data-cy": "value-input-".concat(index),
202
+ name: "".concat(name, ".").concat(index, ".value"),
203
+ placeholder: t("neetoMessageTemplate.api.value"),
204
+ suffix: showDeleteButton && /*#__PURE__*/jsxRuntime.jsx(Button, {
205
+ "data-cy": "delete-key-value-pair-".concat(index),
206
+ icon: Delete,
207
+ size: "small",
208
+ style: "text",
209
+ onClick: function onClick() {
210
+ return removeOption({
211
+ arrayHelpers: arrayHelpers,
212
+ index: index,
213
+ data: data
214
+ });
215
+ }
216
+ })
217
+ })]
218
+ }, index);
219
+ }), /*#__PURE__*/jsxRuntime.jsx(Button, {
220
+ className: "w-30 ml-auto",
221
+ "data-cy": "add-key-value-pair-button",
222
+ label: t("neetoMessageTemplate.api.addEntity", {
223
+ entity: entity
224
+ }),
225
+ style: "secondary",
226
+ onClick: function onClick() {
227
+ return addOption(arrayHelpers);
228
+ }
229
+ })]
230
+ });
231
+ }
232
+ });
233
+ });
234
+
235
+ var CustomHeaders = function CustomHeaders(_ref) {
236
+ var _ref$helpPopoverProps = _ref.helpPopoverProps,
237
+ helpPopoverProps = _ref$helpPopoverProps === void 0 ? {} : _ref$helpPopoverProps;
238
+ var _useFormikContext = formik.useFormikContext(),
239
+ enableCustomHeaders = _useFormikContext.values.enableCustomHeaders,
240
+ setFieldValue = _useFormikContext.setFieldValue;
241
+ var _useTranslation = reactI18next.useTranslation(),
242
+ t = _useTranslation.t;
243
+ react.useEffect(function () {
244
+ return function () {
245
+ setFieldValue("enableCustomHeaders", false);
246
+ setFieldValue("customHeaders", [CUSTOM_HEADERS_INITIAL_VALUE]);
247
+ };
248
+ }, []);
249
+ var handleChange = function handleChange(_ref2) {
250
+ var checked = _ref2.target.checked;
251
+ if (!checked) {
252
+ setFieldValue("customHeaders", [CUSTOM_HEADERS_INITIAL_VALUE]);
253
+ }
254
+ setFieldValue("enableCustomHeaders", checked);
255
+ };
256
+ var label = t("neetoMessageTemplate.api.includeHeaders");
257
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
258
+ className: "flex flex-col space-y-4",
259
+ children: [/*#__PURE__*/jsxRuntime.jsx(Switch, {
260
+ label: label,
261
+ "data-cy": "neeto-message-template-".concat(neetoCist.hyphenate(label), "-switch"),
262
+ name: "enableCustomHeaders",
263
+ labelProps: {
264
+ className: "ml-2",
265
+ helpIconProps: {
266
+ popoverProps: helpPopoverProps
267
+ }
268
+ },
269
+ onChange: handleChange
270
+ }), enableCustomHeaders && /*#__PURE__*/jsxRuntime.jsx(KeyValuePairs, {
271
+ entity: t("neetoMessageTemplate.api.headers"),
272
+ name: "customHeaders"
273
+ })]
274
+ });
275
+ };
276
+
277
+ var css = ".neeto-message-template-json-editor__wrapper{height:40vh;position:relative}.neeto-message-template-json-editor__editor{height:100%}.neeto-message-template-json-editor__dynamic-variables{position:absolute;right:1rem;top:1rem;z-index:10}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC9qYXZhc2NyaXB0L3N0eWxlc2hlZXRzL2NvbXBvbmVudHMvX2pzb25fZWRpdG9yLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0UsNkNBRUUsV0FBQSxDQURBLGlCQUNKLENBR0UsNENBQ0UsV0FESixDQUlFLHVEQUNFLGlCQUFBLENBRUEsVUFBQSxDQURBLFFBQUEsQ0FFQSxVQUZKIiwic291cmNlc0NvbnRlbnQiOlsiLm5lZXRvLW1lc3NhZ2UtdGVtcGxhdGUtanNvbi1lZGl0b3Ige1xuICAmX193cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiA0MHZoO1xuICB9XG5cbiAgJl9fZWRpdG9yIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cblxuICAmX19keW5hbWljLXZhcmlhYmxlcyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMXJlbTtcbiAgICByaWdodDogMXJlbTtcbiAgICB6LWluZGV4OiAxMDtcbiAgfVxufVxuIl19 */";
278
+ injectCss.n(css,{});
279
+
280
+ var JsonEditor = function JsonEditor(_ref) {
281
+ var name = _ref.name,
282
+ _ref$helpPopoverProps = _ref.helpPopoverProps,
283
+ helpPopoverProps = _ref$helpPopoverProps === void 0 ? {} : _ref$helpPopoverProps,
284
+ _ref$initialValue = _ref.initialValue,
285
+ initialValue = _ref$initialValue === void 0 ? {} : _ref$initialValue,
286
+ _ref$templateVariable = _ref.templateVariables,
287
+ templateVariables = _ref$templateVariable === void 0 ? [] : _ref$templateVariable;
288
+ var editorRef = react.useRef(null);
289
+ var completionProviderRef = react.useRef(null);
290
+ var _useField = formik.useField(name),
291
+ _useField2 = _slicedToArray(_useField, 3);
292
+ _useField2[0];
293
+ var _useField2$ = _useField2[1],
294
+ touched = _useField2$.touched,
295
+ error = _useField2$.error,
296
+ _useField2$2 = _useField2[2],
297
+ setValue = _useField2$2.setValue,
298
+ setTouched = _useField2$2.setTouched;
299
+ var _useTranslation = reactI18next.useTranslation(),
300
+ t = _useTranslation.t;
301
+ var handleEditorDidMount = function handleEditorDidMount(editor, monaco) {
302
+ editorRef.current = editor;
303
+ completionProviderRef.current = monaco.languages.registerCompletionItemProvider("json", {
304
+ triggerCharacters: ["{"],
305
+ provideCompletionItems: function provideCompletionItems(model, position) {
306
+ var lineContent = model.getLineContent(position.lineNumber);
307
+ var beforeCursor = lineContent.slice(0, position.column - 1);
308
+ if (!beforeCursor.endsWith('"{')) {
309
+ return {
310
+ suggestions: []
311
+ };
312
+ }
313
+ var suggestions = templateVariables.map(function (_ref2) {
314
+ var key = _ref2.key,
315
+ label = _ref2.label;
316
+ return {
317
+ label: label,
318
+ kind: monaco.languages.CompletionItemKind.Variable,
319
+ insertText: "{".concat(key, "}}"),
320
+ insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
321
+ detail: t("neetoMessageTemplate.api.insertPlaceholder", {
322
+ label: label
323
+ })
324
+ };
325
+ });
326
+ return {
327
+ suggestions: suggestions
328
+ };
329
+ }
330
+ });
331
+ };
332
+ var insertVariable = function insertVariable(_ref3) {
333
+ var key = _ref3.key;
334
+ var editor = editorRef.current;
335
+ if (!editor) return;
336
+ var selection = editor.getSelection();
337
+ var range = {
338
+ startLineNumber: selection.startLineNumber,
339
+ startColumn: selection.startColumn,
340
+ endLineNumber: selection.endLineNumber,
341
+ endColumn: selection.endColumn
342
+ };
343
+ var text = "\"{{".concat(key, "}}\"");
344
+ editor.executeEdits("", [{
345
+ range: range,
346
+ text: text,
347
+ forceMoveMarkers: true
348
+ }]);
349
+ var position = editor.getPosition();
350
+ editor.setPosition({
351
+ lineNumber: position.lineNumber,
352
+ column: position.column + text.length
353
+ });
354
+ editor.focus();
355
+ };
356
+ var handleChange = function handleChange(value) {
357
+ setTouched(true);
358
+ setValue(value);
359
+ };
360
+ react.useEffect(function () {
361
+ var editor = editorRef.current;
362
+ if (!editor) return;
363
+ var currentValue = editor.getValue();
364
+ if (currentValue !== initialValue) {
365
+ editor.setValue(initialValue);
366
+ }
367
+ }, [initialValue]);
368
+ react.useEffect(function () {
369
+ return function () {
370
+ var _completionProviderRe;
371
+ (_completionProviderRe = completionProviderRef.current) === null || _completionProviderRe === void 0 || _completionProviderRe.dispose();
372
+ completionProviderRef.current = null;
373
+ };
374
+ }, []);
375
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
376
+ className: "space-y-2 mb-2",
377
+ children: [/*#__PURE__*/jsxRuntime.jsx(Label, {
378
+ required: true,
379
+ "data-cy": "message-template-body",
380
+ helpIconProps: {
381
+ icon: Help,
382
+ popoverProps: helpPopoverProps
383
+ },
384
+ children: t("neetoMessageTemplate.template.body")
385
+ }), /*#__PURE__*/jsxRuntime.jsxs("div", {
386
+ className: "neeto-message-template-json-editor__wrapper",
387
+ children: [/*#__PURE__*/jsxRuntime.jsx("div", {
388
+ className: "neeto-message-template-json-editor__dynamic-variables",
389
+ children: /*#__PURE__*/jsxRuntime.jsx(DynamicVariables, {
390
+ variables: templateVariables,
391
+ onVariableClick: insertVariable
392
+ })
393
+ }), /*#__PURE__*/jsxRuntime.jsx(Editor, {
394
+ className: "neeto-message-template-json-editor__editor",
395
+ defaultLanguage: "json",
396
+ defaultValue: initialValue,
397
+ height: "100%",
398
+ theme: "vs-dark",
399
+ options: {
400
+ formatOnType: true,
401
+ formatOnPaste: true,
402
+ automaticLayout: true,
403
+ tabSize: 2,
404
+ minimap: {
405
+ enabled: false
406
+ },
407
+ scrollBeyondLastLine: false,
408
+ autoIndent: "full"
409
+ },
410
+ onChange: handleChange,
411
+ onMount: handleEditorDidMount
412
+ }), touched && error && /*#__PURE__*/jsxRuntime.jsx("p", {
413
+ className: "neeto-form-input__error-text",
414
+ "data-cy": "api-template-body-error-message",
415
+ children: /*#__PURE__*/jsxRuntime.jsx("span", {
416
+ className: "neeto-ui-input__error",
417
+ children: error
418
+ })
419
+ })]
420
+ })]
421
+ });
422
+ };
423
+
424
+ exports.API_TEMPLATE_FORM_VALIDATION_SCHEMA = API_TEMPLATE_FORM_VALIDATION_SCHEMA;
425
+ exports.API_TEMPLATE_INITIAL_VALUES = API_TEMPLATE_INITIAL_VALUES;
426
+ exports.API_TEMPLATE_TYPE = API_TEMPLATE_TYPE;
427
+ exports.CUSTOM_HEADERS_INITIAL_VALUE = CUSTOM_HEADERS_INITIAL_VALUE;
428
+ exports.CustomHeaders = CustomHeaders;
429
+ exports.FILTER_COLUMNS = FILTER_COLUMNS;
430
+ exports.JsonEditor = JsonEditor;
431
+ exports.SAMPLE_URL = SAMPLE_URL;
432
+ exports.TEMPLATE_STATUS = TEMPLATE_STATUS;
433
+ exports.VALID_URL_REGEX = VALID_URL_REGEX;
434
+ exports.buildHelpPopoverProps = buildHelpPopoverProps;
435
+ exports.rejectEmptyKeyValuePairs = rejectEmptyKeyValuePairs;
436
+ //# sourceMappingURL=JsonEditor-Cz_76w4s.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JsonEditor-Cz_76w4s.js","sources":["../app/javascript/src/components/Api/constants.js","../app/javascript/src/components/Api/ApiTemplates/constants.js","../app/javascript/src/components/Api/utils.js","../app/javascript/src/components/commons/KeyValuePairs/utils.js","../app/javascript/src/components/commons/KeyValuePairs/index.jsx","../app/javascript/src/components/Api/CustomHeaders.jsx","../app/javascript/src/components/Api/JsonEditor.jsx"],"sourcesContent":["import { t } from \"i18next\";\n\nexport const VALID_URL_REGEX =\n /^(https?):\\/\\/([a-zA-Z0-9-]+\\.){1,}[a-zA-Z]{2,}\\/?[^\\s]*$/;\n\nexport const CUSTOM_HEADERS_INITIAL_VALUE = { key: \"\", value: \"\" };\n\nexport const API_TEMPLATE_TYPE = \"api_template\";\n\nexport const API_TEMPLATES_HELP_POPOVER_PROPS = {\n apiTemplates: {\n description: t(\n \"neetoMessageTemplate.api.helpPopovers.apiTemplates.description\"\n ),\n helpLinkProps: { \"data-cy\": \"api-templates-header-help-link\" },\n popoverProps: { position: \"top\" },\n },\n sendToApi: {\n description: t(\n \"neetoMessageTemplate.api.helpPopovers.sendToApi.description\"\n ),\n helpLinkProps: { \"data-cy\": \"send-to-api-action-help-link\" },\n popoverProps: { position: \"top\" },\n },\n customHeaders: {\n description: t(\n \"neetoMessageTemplate.api.helpPopovers.customHeaders.description\"\n ),\n helpLinkProps: {\n label: t(\"neetoMessageTemplate.template.viewHelpArticle\"),\n \"data-cy\": \"api-templates-custom-headers-help-link\",\n },\n position: \"top\",\n },\n body: {\n description: t(\"neetoMessageTemplate.api.helpPopovers.body.description\"),\n helpLinkProps: {\n label: t(\"neetoMessageTemplate.template.viewHelpArticle\"),\n \"data-cy\": \"api-templates-body-help-link\",\n },\n position: \"top\",\n },\n};\n","import { t } from \"i18next\";\nimport { isPresent } 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(\n \"is-not-empty\",\n t(\"neetoMessageTemplate.validations.requiredEntity\", {\n entity: t(\"neetoMessageTemplate.template.body\"),\n }),\n value => isPresent(value)\n )\n .test(\n \"is-valid-json\",\n t(\"neetoMessageTemplate.api.validation.invalidJsonBody\"),\n value => {\n try {\n JSON.parse(value);\n\n return true;\n } catch {\n return false;\n }\n }\n ),\n});\n\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\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\", {\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 mb-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\"\n defaultValue={initialValue}\n height=\"100%\"\n theme=\"vs-dark\"\n options={{\n formatOnType: true,\n formatOnPaste: true,\n automaticLayout: true,\n tabSize: 2,\n minimap: { enabled: false },\n scrollBeyondLastLine: false,\n autoIndent: \"full\",\n }}\n onChange={handleChange}\n onMount={handleEditorDidMount}\n />\n {touched && error && (\n <p\n className=\"neeto-form-input__error-text\"\n data-cy=\"api-template-body-error-message\"\n >\n <span className=\"neeto-ui-input__error\">{error}</span>\n </p>\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","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","isPresent","JSON","parse","_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","theme","options","formatOnType","formatOnPaste","automaticLayout","tabSize","minimap","enabled","scrollBeyondLastLine","autoIndent","onMount"],"mappings":"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"}
@@ -25,7 +25,7 @@ import ActionBlock from '@bigbinary/neetoui/formik/ActionBlock';
25
25
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
26
26
  import { useFormikContext } from 'formik';
27
27
  import Textarea from '@bigbinary/neetoui/formik/Textarea';
28
- import 'stylesheets/application.scss';
28
+ import { n } from './inject-css-DmrvuTKK.js';
29
29
  import { isPhoneNumberValid } from '@bigbinary/neeto-molecules/PhoneNumber';
30
30
  import * as yup from 'yup';
31
31
  import _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';
@@ -204,6 +204,9 @@ var buildTableColumnData = function buildTableColumnData(setManageTemplatePane,
204
204
  }];
205
205
  };
206
206
 
207
+ var css = ".neeto-message-templates-nano-adaptive-input textarea{--neeto-ui-input-line-height:1.5}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC9qYXZhc2NyaXB0L3N0eWxlc2hlZXRzL2NvbXBvbmVudHMvX2FkYXB0aXZlX2lucHV0LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0Usc0RBQ0UsZ0NBQUoiLCJzb3VyY2VzQ29udGVudCI6WyIubmVldG8tbWVzc2FnZS10ZW1wbGF0ZXMtbmFuby1hZGFwdGl2ZS1pbnB1dCB7XG4gIHRleHRhcmVhIHtcbiAgICAtLW5lZXRvLXVpLWlucHV0LWxpbmUtaGVpZ2h0OiAxLjU7XG4gIH1cbn1cbiJdfQ== */";
208
+ n(css,{});
209
+
207
210
  var _excluded = ["label", "name"];
208
211
  function ownKeys$4(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; }
209
212
  function _objectSpread$4(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$4(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$4(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }