@bigbinary/neeto-fields-frontend 2.0.0 → 2.2.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 (74) hide show
  1. package/dist/DeleteAlert-b92f7c05.js +763 -0
  2. package/dist/DeleteAlert-b92f7c05.js.map +1 -0
  3. package/dist/DeleteAlert-fbc41b31.js +780 -0
  4. package/dist/DeleteAlert-fbc41b31.js.map +1 -0
  5. package/dist/FieldDeleteAlert.js +22 -0
  6. package/dist/FieldDeleteAlert.js.map +1 -0
  7. package/dist/FieldInputs.js +58 -0
  8. package/dist/FieldInputs.js.map +1 -0
  9. package/dist/FieldValueInputWrapper-adbbc915.js +198 -0
  10. package/dist/FieldValueInputWrapper-adbbc915.js.map +1 -0
  11. package/dist/FieldValueInputWrapper-f1f2e095.js +189 -0
  12. package/dist/FieldValueInputWrapper-f1f2e095.js.map +1 -0
  13. package/dist/FieldValuesContainer.js +223 -0
  14. package/dist/FieldValuesContainer.js.map +1 -0
  15. package/dist/FieldsDashboard.js +5000 -0
  16. package/dist/FieldsDashboard.js.map +1 -0
  17. package/dist/FieldsPane.js +563 -0
  18. package/dist/FieldsPane.js.map +1 -0
  19. package/dist/InlineFieldValueInput.js +157 -0
  20. package/dist/InlineFieldValueInput.js.map +1 -0
  21. package/dist/_commonjsHelpers-1789f0cf.js +8 -0
  22. package/dist/_commonjsHelpers-1789f0cf.js.map +1 -0
  23. package/dist/_commonjsHelpers-b3309d7b.js +11 -0
  24. package/dist/_commonjsHelpers-b3309d7b.js.map +1 -0
  25. package/dist/cjs/FieldDeleteAlert.js +28 -0
  26. package/dist/cjs/FieldDeleteAlert.js.map +1 -0
  27. package/dist/cjs/FieldInputs.js +64 -0
  28. package/dist/cjs/FieldInputs.js.map +1 -0
  29. package/dist/cjs/FieldValuesContainer.js +232 -0
  30. package/dist/cjs/FieldValuesContainer.js.map +1 -0
  31. package/dist/{index.cjs.js → cjs/FieldsDashboard.js} +120 -3427
  32. package/dist/cjs/FieldsDashboard.js.map +1 -0
  33. package/dist/cjs/FieldsPane.js +598 -0
  34. package/dist/cjs/FieldsPane.js.map +1 -0
  35. package/dist/cjs/InlineFieldValueInput.js +164 -0
  36. package/dist/cjs/InlineFieldValueInput.js.map +1 -0
  37. package/dist/cjs/hooks.js +20 -0
  38. package/dist/cjs/hooks.js.map +1 -0
  39. package/dist/cjs/index.js +84 -0
  40. package/dist/cjs/index.js.map +1 -0
  41. package/dist/cjs/utils.js +34 -0
  42. package/dist/cjs/utils.js.map +1 -0
  43. package/dist/constants-0e6017ea.js +57 -0
  44. package/dist/constants-0e6017ea.js.map +1 -0
  45. package/dist/constants-c71008a3.js +64 -0
  46. package/dist/constants-c71008a3.js.map +1 -0
  47. package/dist/hooks.js +8 -0
  48. package/dist/hooks.js.map +1 -0
  49. package/dist/index-265f7913.js +117 -0
  50. package/dist/index-265f7913.js.map +1 -0
  51. package/dist/index-27e54c2c.js +130 -0
  52. package/dist/index-27e54c2c.js.map +1 -0
  53. package/dist/index.js +64 -8255
  54. package/dist/index.js.map +1 -1
  55. package/dist/query-0df5b2dd.js +13 -0
  56. package/dist/query-0df5b2dd.js.map +1 -0
  57. package/dist/query-1a62b3ac.js +10 -0
  58. package/dist/query-1a62b3ac.js.map +1 -0
  59. package/dist/slicedToArray-50f7cc19.js +46 -0
  60. package/dist/slicedToArray-50f7cc19.js.map +1 -0
  61. package/dist/slicedToArray-6198349b.js +44 -0
  62. package/dist/slicedToArray-6198349b.js.map +1 -0
  63. package/dist/useFieldsApi-14928ecf.js +161 -0
  64. package/dist/useFieldsApi-14928ecf.js.map +1 -0
  65. package/dist/useFieldsApi-5c114bac.js +149 -0
  66. package/dist/useFieldsApi-5c114bac.js.map +1 -0
  67. package/dist/utils-4812fc6c.js +1140 -0
  68. package/dist/utils-4812fc6c.js.map +1 -0
  69. package/dist/utils-85ed1903.js +1180 -0
  70. package/dist/utils-85ed1903.js.map +1 -0
  71. package/dist/utils.js +26 -0
  72. package/dist/utils.js.map +1 -0
  73. package/package.json +27 -13
  74. package/dist/index.cjs.js.map +0 -1
@@ -0,0 +1,563 @@
1
+ import { _ as _defineProperty, b as _toConsumableArray, a as _objectWithoutProperties } from './index-265f7913.js';
2
+ import { useRef } from 'react';
3
+ import Pane from '@bigbinary/neetoui/Pane';
4
+ import { pick, values, isEmpty, omit, assoc } from 'ramda';
5
+ import Typography from '@bigbinary/neetoui/Typography';
6
+ import Form from '@bigbinary/neetoui/formik/Form';
7
+ import { useTranslation } from 'react-i18next';
8
+ import { A as ALL_KINDS } from './constants-0e6017ea.js';
9
+ import { c as useCreateField, d as useShowField, e as useUpdateField } from './useFieldsApi-5c114bac.js';
10
+ import { t } from 'i18next';
11
+ import { filterBy, toLabelAndValue, isNotEmpty } from '@bigbinary/neeto-cist';
12
+ import * as yup from 'yup';
13
+ import ActionBlock from '@bigbinary/neetoui/formik/ActionBlock';
14
+ import { v4 } from 'uuid';
15
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
16
+ import { useFormikContext, FieldArray } from 'formik';
17
+ import Label from '@bigbinary/neetoui/Label';
18
+ import Input from '@bigbinary/neetoui/formik/Input';
19
+ import Select from '@bigbinary/neetoui/formik/Select';
20
+ import Switch from '@bigbinary/neetoui/formik/Switch';
21
+ import { isMetaKeyPressed } from '@bigbinary/neeto-commons-frontend/react-utils';
22
+ import Delete from '@bigbinary/neeto-icons/Delete';
23
+ import Button from '@bigbinary/neetoui/Button';
24
+ import PageLoader from '@bigbinary/neeto-molecules/PageLoader';
25
+ import '@tanstack/react-query';
26
+ import 'axios';
27
+ import '@bigbinary/neeto-commons-frontend/utils';
28
+ import './query-1a62b3ac.js';
29
+
30
+ function ownKeys$3(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; }
31
+ function _objectSpread$3(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$3(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$3(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
32
+ var arrangeOptionsDisplayOrder = function arrangeOptionsDisplayOrder(options) {
33
+ return options.map(function (option, index) {
34
+ return _objectSpread$3(_objectSpread$3({}, option), {}, {
35
+ displayOrder: index
36
+ });
37
+ });
38
+ };
39
+ var buildPayload = function buildPayload(_ref) {
40
+ var formValues = _ref.formValues,
41
+ _ref$resourceType = _ref.resourceType,
42
+ resourceType = _ref$resourceType === void 0 ? "" : _ref$resourceType,
43
+ _ref$ownerId = _ref.ownerId,
44
+ ownerId = _ref$ownerId === void 0 ? "" : _ref$ownerId;
45
+ var kind = formValues.kind.value;
46
+ var name = formValues.name.trim();
47
+ return {
48
+ ownerId: isEmpty(ownerId) ? undefined : ownerId,
49
+ field: _objectSpread$3(_objectSpread$3({}, omit(["createdAt", "id", "ownerId", "ownerType", "updatedAt"], formValues)), {}, {
50
+ kind: kind,
51
+ name: name,
52
+ resourceType: isEmpty(resourceType) ? undefined : resourceType,
53
+ data: isDropdown(kind) ? arrangeOptionsDisplayOrder(formValues.data) : formValues.data
54
+ })
55
+ };
56
+ };
57
+ var isDropdown = function isDropdown(kind) {
58
+ return ["single_option", "multi_option"].includes(kind);
59
+ };
60
+ var isRegex = function isRegex(kind) {
61
+ return kind === "regex";
62
+ };
63
+ var isAdditionalDataNeeded = function isAdditionalDataNeeded(kind) {
64
+ return ADDITIONAL_DATA_NEEDED_FIELD_KINDS.includes(kind);
65
+ };
66
+ var getPermittedKinds = function getPermittedKinds(_ref2) {
67
+ var allowedKinds = _ref2.allowedKinds,
68
+ selectedKind = _ref2.selectedKind;
69
+ var filteredKinds = pick(allowedKinds, FIELD_KINDS);
70
+ return filterBy({
71
+ group: selectedKind === null || selectedKind === void 0 ? void 0 : selectedKind.group
72
+ }, values(filteredKinds));
73
+ };
74
+ var generateValidationSchema = function generateValidationSchema(additionalValidations) {
75
+ return yup.object().shape(_objectSpread$3(_objectSpread$3({}, BASIC_FIELD_FORM_VALIDATIONS), additionalValidations));
76
+ };
77
+ var renderFormFooter = function renderFormFooter(_ref3) {
78
+ var onClose = _ref3.onClose,
79
+ loading = _ref3.loading;
80
+ return /*#__PURE__*/jsx(Pane.Footer, {
81
+ children: /*#__PURE__*/jsx(ActionBlock, {
82
+ cancelButtonProps: {
83
+ onClick: onClose
84
+ },
85
+ isSubmitting: loading
86
+ })
87
+ });
88
+ };
89
+ var getDefaultOption = function getDefaultOption() {
90
+ return {
91
+ id: v4(),
92
+ label: "",
93
+ displayOrder: 0
94
+ };
95
+ };
96
+
97
+ var PERMITTED_REGEX_PATTERN = /^\/.*\/[igmsyu]*$/;
98
+ var ADVANCED_REGEX_ASSERTION_PATTERN = /\(\?=[^)]*\)|\(\?![^)]*\)|\(\?<=[^)]*\)|\(\?<![^)]*\)/;
99
+ var regexValidationSchema = yup.object().shape({
100
+ condition: yup.string().required(t("neetoFields.validations.regexConditionIsRequired")).matches(PERMITTED_REGEX_PATTERN, t("neetoFields.validations.invalidRegexPattern")).test({
101
+ name: "test-regex-is-advanced",
102
+ message: t("neetoFields.validations.advancedRegexAssertionsNotSupported") || "",
103
+ test: function test(value) {
104
+ return !ADVANCED_REGEX_ASSERTION_PATTERN.test(value);
105
+ }
106
+ }).test({
107
+ name: "test-regex-condition-pattern",
108
+ message: t("neetoFields.validations.invalidRegexPattern") || "",
109
+ test: function test(value) {
110
+ try {
111
+ var lastIndex = value.lastIndexOf("/");
112
+ var condition = value.substring(1, lastIndex);
113
+ // Evaluating the regex to check if it is valid
114
+ new RegExp(condition);
115
+ "".search(condition);
116
+ return true;
117
+ } catch (_unused) {
118
+ return false;
119
+ }
120
+ }
121
+ }),
122
+ helpMessage: yup.string().required(t("neetoFields.validations.regexHelpMessageIsRequired"))
123
+ });
124
+ var dropDownOptionsValidationSchema = yup.array().of(yup.object().shape({
125
+ label: yup.string().trim().required(t("neetoFields.validations.fieldOptionIsRequired")),
126
+ displayOrder: yup.number()
127
+ })).min(1, t("neetoFields.validations.atLeastFieldOptionIsRequired"));
128
+ var FIELD_KINDS = {
129
+ text: {
130
+ value: "text",
131
+ label: t("neetoFields.fields.kinds.text"),
132
+ group: 1
133
+ },
134
+ number: {
135
+ value: "number",
136
+ label: t("neetoFields.fields.kinds.number"),
137
+ group: 2
138
+ },
139
+ monetary: {
140
+ value: "monetary",
141
+ label: t("neetoFields.fields.kinds.monetary"),
142
+ group: 2
143
+ },
144
+ single_option: {
145
+ value: "single_option",
146
+ label: t("neetoFields.fields.kinds.singleOption"),
147
+ group: 12
148
+ },
149
+ multi_option: {
150
+ value: "multi_option",
151
+ label: t("neetoFields.fields.kinds.multiOption"),
152
+ group: 3
153
+ },
154
+ date: {
155
+ value: "date",
156
+ label: t("neetoFields.fields.kinds.date"),
157
+ group: 4
158
+ },
159
+ time: {
160
+ value: "time",
161
+ label: t("neetoFields.fields.kinds.time"),
162
+ group: 5
163
+ },
164
+ date_range: {
165
+ value: "date_range",
166
+ label: t("neetoFields.fields.kinds.dateRange"),
167
+ group: 6
168
+ },
169
+ time_range: {
170
+ value: "time_range",
171
+ label: t("neetoFields.fields.kinds.timeRange"),
172
+ group: 7
173
+ },
174
+ text_area: {
175
+ value: "text_area",
176
+ label: t("neetoFields.fields.kinds.textArea"),
177
+ group: 1
178
+ },
179
+ textarea: {
180
+ value: "textarea",
181
+ label: t("neetoFields.fields.kinds.textarea"),
182
+ group: 1
183
+ },
184
+ person: {
185
+ value: "person",
186
+ label: t("neetoFields.fields.kinds.person"),
187
+ group: 8
188
+ },
189
+ checkbox: {
190
+ value: "checkbox",
191
+ label: t("neetoFields.fields.kinds.checkbox"),
192
+ group: 9
193
+ },
194
+ regex: {
195
+ value: "regex",
196
+ label: t("neetoFields.fields.kinds.regex"),
197
+ group: 10
198
+ },
199
+ integer: {
200
+ value: "integer",
201
+ label: t("neetoFields.fields.kinds.integer"),
202
+ group: 2
203
+ },
204
+ decimal: {
205
+ value: "decimal",
206
+ label: t("neetoFields.fields.kinds.decimal"),
207
+ group: 2
208
+ },
209
+ datetime: {
210
+ value: "datetime",
211
+ label: t("neetoFields.fields.kinds.datetime"),
212
+ group: 11
213
+ }
214
+ };
215
+ var ADDITIONAL_DATA_NEEDED_FIELD_KINDS = ["single_option", "multi_option", "regex"];
216
+ var INITIAL_FIELDS = {
217
+ name: "",
218
+ kind: toLabelAndValue("text"),
219
+ isRequired: false
220
+ };
221
+ var DEFAULT_REGEX_DATA = {
222
+ condition: "",
223
+ helpMessage: ""
224
+ };
225
+ var BASIC_FIELD_FORM_VALIDATIONS = {
226
+ name: yup.string().trim().required(t("neetoFields.validations.fieldNameIsRequired")),
227
+ isRequired: yup["boolean"](),
228
+ kind: yup.object().shape({
229
+ value: yup.string().required()
230
+ }).required(t("neetoFields.validations.kindIsRequired")),
231
+ data: yup.mixed().when("kind", {
232
+ is: function is(kind) {
233
+ return isRegex(kind === null || kind === void 0 ? void 0 : kind.value);
234
+ },
235
+ then: regexValidationSchema
236
+ }).when("kind", {
237
+ is: function is(kind) {
238
+ return isDropdown(kind === null || kind === void 0 ? void 0 : kind.value);
239
+ },
240
+ then: dropDownOptionsValidationSchema
241
+ })
242
+ };
243
+
244
+ var AdditionalInputs = function AdditionalInputs() {
245
+ var _useTranslation = useTranslation(),
246
+ t = _useTranslation.t;
247
+ var _useFormikContext = useFormikContext(),
248
+ _useFormikContext$val = _useFormikContext.values,
249
+ kind = _useFormikContext$val.kind,
250
+ options = _useFormikContext$val.data,
251
+ isSystem = _useFormikContext$val.isSystem;
252
+ var removeOption = function removeOption(arrayHelpers, index) {
253
+ return arrayHelpers.remove(index);
254
+ };
255
+ var addOption = function addOption(arrayHelpers) {
256
+ return arrayHelpers.push(getDefaultOption());
257
+ };
258
+ var handleKeyDown = function handleKeyDown(event, arrayHelpers) {
259
+ var _inputs;
260
+ if (event.key !== "Enter" || isMetaKeyPressed(event)) return;
261
+ var form = event.target.form;
262
+ var inputs = _toConsumableArray(form.querySelectorAll("#neeto-fields-dropdown-options-wrapper input"));
263
+ var currentIndex = inputs.indexOf(event.target);
264
+ currentIndex >= inputs.length - 1 ? addOption(arrayHelpers) : (_inputs = inputs[currentIndex + 1]) === null || _inputs === void 0 ? void 0 : _inputs.focus();
265
+ event.preventDefault();
266
+ event.stopPropagation();
267
+ };
268
+ if (isDropdown(kind.value)) {
269
+ return /*#__PURE__*/jsx(FieldArray, {
270
+ name: "data",
271
+ children: function children(arrayHelpers) {
272
+ return /*#__PURE__*/jsxs("div", {
273
+ className: "flex w-full flex-col gap-y-4",
274
+ id: "neeto-fields-dropdown-options-wrapper",
275
+ children: [/*#__PURE__*/jsx(Label, {
276
+ required: true,
277
+ children: t("neetoFields.titles.dropdownOptions")
278
+ }), isNotEmpty(options) && Array.isArray(options) && options.map(function (_, index) {
279
+ return /*#__PURE__*/jsx("div", {
280
+ className: "flex w-full space-x-3",
281
+ children: /*#__PURE__*/jsx("div", {
282
+ className: "w-full",
283
+ children: /*#__PURE__*/jsx(Input, {
284
+ autoFocus: true,
285
+ "data-cy": "neeto-fields-dropdown-option-".concat(index),
286
+ disabled: isSystem,
287
+ name: "data.".concat(index, ".label"),
288
+ placeholder: t("neetoFields.placeholders.enterAnOption"),
289
+ suffix: options.length > 1 && /*#__PURE__*/jsx(Button, {
290
+ "data-cy": "neeto-fields-dropdown-option-delete-".concat(index),
291
+ icon: Delete,
292
+ style: "text",
293
+ onClick: function onClick() {
294
+ return removeOption(arrayHelpers, index);
295
+ }
296
+ }),
297
+ onKeyDown: function onKeyDown(event) {
298
+ return handleKeyDown(event, arrayHelpers);
299
+ }
300
+ })
301
+ })
302
+ }, index);
303
+ }), /*#__PURE__*/jsx(Button, {
304
+ fullWidth: true,
305
+ className: "mb-6 border-dashed text-xs uppercase",
306
+ "data-cy": "neeto-fields-add-more-option-button",
307
+ label: t("neetoFields.labels.addAnotherOption"),
308
+ style: "secondary",
309
+ onClick: function onClick() {
310
+ return addOption(arrayHelpers);
311
+ }
312
+ })]
313
+ });
314
+ }
315
+ });
316
+ } else if (isRegex(kind.value)) {
317
+ return /*#__PURE__*/jsxs("div", {
318
+ className: "flex w-full flex-col gap-y-4",
319
+ children: [/*#__PURE__*/jsx(Label, {
320
+ required: true,
321
+ children: t("neetoFields.titles.regexOptions")
322
+ }), /*#__PURE__*/jsx(Input, {
323
+ disabled: isSystem,
324
+ label: t("neetoFields.labels.regexCondition"),
325
+ name: "data.condition",
326
+ placeholder: t("neetoFields.placeholders.regexExample")
327
+ }), /*#__PURE__*/jsx(Input, {
328
+ disabled: isSystem,
329
+ label: t("neetoFields.labels.helpMessage"),
330
+ name: "data.helpMessage",
331
+ placeholder: t("neetoFields.placeholders.enterErrorMessage")
332
+ })]
333
+ });
334
+ }
335
+ return null;
336
+ };
337
+
338
+ var FieldForm = function FieldForm(_ref) {
339
+ var chosenKind = _ref.chosenKind,
340
+ _ref$kindSelectOption = _ref.kindSelectOptions,
341
+ kindSelectOptions = _ref$kindSelectOption === void 0 ? [] : _ref$kindSelectOption,
342
+ _ref$isSystem = _ref.isSystem,
343
+ isSystem = _ref$isSystem === void 0 ? false : _ref$isSystem,
344
+ _ref$hideRequiredSwit = _ref.hideRequiredSwitch,
345
+ hideRequiredSwitch = _ref$hideRequiredSwit === void 0 ? false : _ref$hideRequiredSwit,
346
+ children = _ref.children,
347
+ initialFocusField = _ref.initialFocusField;
348
+ var _useTranslation = useTranslation(),
349
+ t = _useTranslation.t;
350
+ var _useFormikContext = useFormikContext(),
351
+ options = _useFormikContext.values.data,
352
+ setFieldValue = _useFormikContext.setFieldValue;
353
+ var handleKindChange = function handleKindChange(kind) {
354
+ setFieldValue("kind", kind);
355
+ if (isDropdown(kind.value)) {
356
+ setFieldValue("data", options !== null && options !== void 0 ? options : [getDefaultOption()]);
357
+ } else if (isRegex(kind.value)) {
358
+ setFieldValue("data", options !== null && options !== void 0 ? options : DEFAULT_REGEX_DATA);
359
+ }
360
+ };
361
+ return /*#__PURE__*/jsx(Pane.Body, {
362
+ children: /*#__PURE__*/jsxs("div", {
363
+ className: "w-full space-y-4",
364
+ children: [/*#__PURE__*/jsx(Input, {
365
+ required: true,
366
+ "data-cy": "name-text-field",
367
+ disabled: isSystem,
368
+ label: t("neetoFields.labels.fieldName"),
369
+ name: "name",
370
+ placeholder: t("neetoFields.placeholders.enterFieldName"),
371
+ ref: initialFocusField
372
+ }), /*#__PURE__*/jsx(Select, {
373
+ isSearchable: true,
374
+ isDisabled: isSystem,
375
+ label: t("neetoFields.labels.fieldKind"),
376
+ name: "kind",
377
+ options: kindSelectOptions,
378
+ onChange: handleKindChange
379
+ }), isAdditionalDataNeeded(chosenKind) && /*#__PURE__*/jsx(AdditionalInputs, {}), !hideRequiredSwitch && /*#__PURE__*/jsxs(Label, {
380
+ className: "flex items-center gap-2",
381
+ "data-cy": "is-required-switch-container",
382
+ children: [/*#__PURE__*/jsx(Switch, {
383
+ "data-cy": "is-required-switch",
384
+ name: "isRequired"
385
+ }), /*#__PURE__*/jsx(Typography, {
386
+ className: "leading-4",
387
+ component: "span",
388
+ "data-cy": "is-required-switch-label",
389
+ style: "body2",
390
+ children: t("neetoFields.labels.isRequired")
391
+ })]
392
+ }), children]
393
+ })
394
+ });
395
+ };
396
+
397
+ var _excluded$2 = ["resourceType", "allowedKinds", "ownerId", "additionalValidations", "initialValues", "onClose", "onMutationSuccess"];
398
+ function ownKeys$2(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; }
399
+ function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
400
+ var Add = function Add(_ref) {
401
+ var resourceType = _ref.resourceType,
402
+ _ref$allowedKinds = _ref.allowedKinds,
403
+ allowedKinds = _ref$allowedKinds === void 0 ? ALL_KINDS : _ref$allowedKinds,
404
+ ownerId = _ref.ownerId,
405
+ additionalValidations = _ref.additionalValidations,
406
+ initialValues = _ref.initialValues,
407
+ onClose = _ref.onClose,
408
+ onMutationSuccess = _ref.onMutationSuccess,
409
+ props = _objectWithoutProperties(_ref, _excluded$2);
410
+ var _useTranslation = useTranslation(),
411
+ t = _useTranslation.t;
412
+ var _useCreateField = useCreateField({
413
+ onSuccess: onMutationSuccess
414
+ }),
415
+ createField = _useCreateField.mutate,
416
+ isSubmitting = _useCreateField.isPending;
417
+ var filteredKinds = values(pick(allowedKinds, FIELD_KINDS));
418
+ var handleSubmit = function handleSubmit(formValues) {
419
+ var payload = buildPayload({
420
+ formValues: formValues,
421
+ resourceType: resourceType,
422
+ ownerId: ownerId
423
+ });
424
+ createField(payload, {
425
+ onSuccess: onClose
426
+ });
427
+ };
428
+ return /*#__PURE__*/jsxs(Fragment, {
429
+ children: [/*#__PURE__*/jsx(Pane.Header, {
430
+ children: /*#__PURE__*/jsx(Typography, {
431
+ "data-cy": "add-pane-header",
432
+ style: "h2",
433
+ children: t("neetoFields.titles.addField")
434
+ })
435
+ }), /*#__PURE__*/jsx(Form, {
436
+ formikProps: {
437
+ initialValues: _objectSpread$2(_objectSpread$2({}, initialValues), INITIAL_FIELDS),
438
+ validationSchema: generateValidationSchema(additionalValidations),
439
+ onSubmit: handleSubmit
440
+ },
441
+ children: function children(_ref2) {
442
+ var kind = _ref2.values.kind;
443
+ return /*#__PURE__*/jsxs(Fragment, {
444
+ children: [/*#__PURE__*/jsx(FieldForm, _objectSpread$2({
445
+ chosenKind: kind.value,
446
+ kindSelectOptions: filteredKinds
447
+ }, props)), renderFormFooter({
448
+ onClose: onClose,
449
+ loading: isSubmitting
450
+ })]
451
+ });
452
+ }
453
+ })]
454
+ });
455
+ };
456
+
457
+ var _excluded$1 = ["fieldId", "allowedKinds", "ownerId", "additionalValidations", "initialValues", "onClose", "onMutationSuccess"];
458
+ function ownKeys$1(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; }
459
+ function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
460
+ var Edit = function Edit(_ref) {
461
+ var fieldId = _ref.fieldId,
462
+ _ref$allowedKinds = _ref.allowedKinds,
463
+ allowedKinds = _ref$allowedKinds === void 0 ? ALL_KINDS : _ref$allowedKinds,
464
+ ownerId = _ref.ownerId,
465
+ _ref$additionalValida = _ref.additionalValidations,
466
+ additionalValidations = _ref$additionalValida === void 0 ? {} : _ref$additionalValida,
467
+ _ref$initialValues = _ref.initialValues,
468
+ initialValues = _ref$initialValues === void 0 ? {} : _ref$initialValues,
469
+ onClose = _ref.onClose,
470
+ onMutationSuccess = _ref.onMutationSuccess,
471
+ props = _objectWithoutProperties(_ref, _excluded$1);
472
+ var _useTranslation = useTranslation(),
473
+ t = _useTranslation.t;
474
+ var _useShowField = useShowField({
475
+ fieldId: fieldId,
476
+ ownerId: ownerId
477
+ }),
478
+ _useShowField$data = _useShowField.data,
479
+ _useShowField$data2 = _useShowField$data === void 0 ? {} : _useShowField$data,
480
+ _useShowField$data2$f = _useShowField$data2.field,
481
+ field = _useShowField$data2$f === void 0 ? {} : _useShowField$data2$f,
482
+ isLoading = _useShowField.isLoading;
483
+ var _useUpdateField = useUpdateField({
484
+ onSuccess: function onSuccess() {
485
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
486
+ args[_key] = arguments[_key];
487
+ }
488
+ onMutationSuccess === null || onMutationSuccess === void 0 || onMutationSuccess.apply(void 0, args);
489
+ onClose();
490
+ }
491
+ }),
492
+ updateField = _useUpdateField.mutate,
493
+ isSubmitting = _useUpdateField.isPending;
494
+ var handleSubmit = function handleSubmit(formValues) {
495
+ var payload = buildPayload({
496
+ formValues: formValues,
497
+ ownerId: ownerId
498
+ });
499
+ updateField({
500
+ fieldId: fieldId,
501
+ payload: payload
502
+ });
503
+ };
504
+ return /*#__PURE__*/jsxs(Fragment, {
505
+ children: [/*#__PURE__*/jsx(Pane.Header, {
506
+ children: /*#__PURE__*/jsx(Typography, {
507
+ "data-cy": "edit-pane-header",
508
+ style: "h2",
509
+ children: t("neetoFields.titles.editField")
510
+ })
511
+ }), isLoading ? /*#__PURE__*/jsx(PageLoader, {}) : /*#__PURE__*/jsx(Form, {
512
+ formikProps: {
513
+ initialValues: _objectSpread$1(_objectSpread$1({}, initialValues), assoc("kind", FIELD_KINDS[field.kind], field)),
514
+ validationSchema: generateValidationSchema(additionalValidations),
515
+ enableReinitialize: true,
516
+ onSubmit: handleSubmit
517
+ },
518
+ children: function children(_ref2) {
519
+ var kind = _ref2.values.kind;
520
+ var permittedKinds = getPermittedKinds({
521
+ allowedKinds: allowedKinds,
522
+ selectedKind: kind
523
+ });
524
+ return /*#__PURE__*/jsxs(Fragment, {
525
+ children: [/*#__PURE__*/jsx(FieldForm, _objectSpread$1({
526
+ chosenKind: kind === null || kind === void 0 ? void 0 : kind.value,
527
+ isSystem: field.isSystem,
528
+ kindSelectOptions: permittedKinds
529
+ }, props)), renderFormFooter({
530
+ onClose: onClose,
531
+ loading: isSubmitting
532
+ })]
533
+ });
534
+ }
535
+ })]
536
+ });
537
+ };
538
+
539
+ var _excluded = ["isOpen", "selectedField"];
540
+ 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; }
541
+ 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; }
542
+ var FieldsPane = function FieldsPane(_ref) {
543
+ var isOpen = _ref.isOpen,
544
+ _ref$selectedField = _ref.selectedField,
545
+ selectedField = _ref$selectedField === void 0 ? {} : _ref$selectedField,
546
+ props = _objectWithoutProperties(_ref, _excluded);
547
+ var initialFocusField = useRef(null);
548
+ return /*#__PURE__*/jsx(Pane, {
549
+ isOpen: isOpen,
550
+ initialFocusRef: initialFocusField,
551
+ onClose: props.onClose,
552
+ children: isEmpty(selectedField) ? /*#__PURE__*/jsx(Add, _objectSpread({}, _objectSpread(_objectSpread({}, props), {}, {
553
+ initialFocusField: initialFocusField
554
+ }))) : /*#__PURE__*/jsx(Edit, _objectSpread({
555
+ fieldId: selectedField === null || selectedField === void 0 ? void 0 : selectedField.id
556
+ }, _objectSpread(_objectSpread({}, props), {}, {
557
+ initialFocusField: initialFocusField
558
+ })))
559
+ });
560
+ };
561
+
562
+ export { FieldsPane as default };
563
+ //# sourceMappingURL=FieldsPane.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FieldsPane.js","sources":["../app/javascript/src/components/FieldsPane/utils.jsx","../app/javascript/src/components/FieldsPane/constants.js","../app/javascript/src/components/FieldsPane/AdditionalInputs.jsx","../app/javascript/src/components/FieldsPane/FieldForm.jsx","../app/javascript/src/components/FieldsPane/Add.jsx","../app/javascript/src/components/FieldsPane/Edit.jsx","../app/javascript/src/components/FieldsPane/index.jsx"],"sourcesContent":["import { filterBy } from \"neetocist\";\nimport { Pane } from \"neetoui\";\nimport { ActionBlock } from \"neetoui/formik\";\nimport { isEmpty, omit, pick, values } from \"ramda\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport * as yup from \"yup\";\n\nimport {\n ADDITIONAL_DATA_NEEDED_FIELD_KINDS,\n FIELD_KINDS,\n BASIC_FIELD_FORM_VALIDATIONS,\n} from \"./constants\";\n\nconst arrangeOptionsDisplayOrder = options =>\n options.map((option, index) => ({ ...option, displayOrder: index }));\n\nexport const buildPayload = ({\n formValues,\n resourceType = \"\",\n ownerId = \"\",\n}) => {\n const kind = formValues.kind.value;\n const name = formValues.name.trim();\n\n return {\n ownerId: isEmpty(ownerId) ? undefined : ownerId,\n field: {\n ...omit(\n [\"createdAt\", \"id\", \"ownerId\", \"ownerType\", \"updatedAt\"],\n formValues\n ),\n kind,\n name,\n resourceType: isEmpty(resourceType) ? undefined : resourceType,\n data: isDropdown(kind)\n ? arrangeOptionsDisplayOrder(formValues.data)\n : formValues.data,\n },\n };\n};\n\nexport const isDropdown = kind =>\n [\"single_option\", \"multi_option\"].includes(kind);\n\nexport const isRegex = kind => kind === \"regex\";\n\nexport const isAdditionalDataNeeded = kind =>\n ADDITIONAL_DATA_NEEDED_FIELD_KINDS.includes(kind);\n\nexport const getPermittedKinds = ({ allowedKinds, selectedKind }) => {\n const filteredKinds = pick(allowedKinds, FIELD_KINDS);\n\n return filterBy({ group: selectedKind?.group }, values(filteredKinds));\n};\n\nexport const generateValidationSchema = additionalValidations =>\n yup\n .object()\n .shape({ ...BASIC_FIELD_FORM_VALIDATIONS, ...additionalValidations });\n\nexport const renderFormFooter = ({ onClose, loading }) => (\n <Pane.Footer>\n <ActionBlock\n cancelButtonProps={{ onClick: onClose }}\n isSubmitting={loading}\n />\n </Pane.Footer>\n);\n\nexport const getDefaultOption = () => ({\n id: uuidv4(),\n label: \"\",\n displayOrder: 0,\n});\n","import { t } from \"i18next\";\nimport { toLabelAndValue } from \"neetocist\";\nimport * as yup from \"yup\";\n\nimport { isDropdown, isRegex } from \"./utils\";\n\nconst PERMITTED_REGEX_PATTERN = /^\\/.*\\/[igmsyu]*$/;\nconst ADVANCED_REGEX_ASSERTION_PATTERN =\n /\\(\\?=[^)]*\\)|\\(\\?![^)]*\\)|\\(\\?<=[^)]*\\)|\\(\\?<![^)]*\\)/;\n\nconst regexValidationSchema = yup.object().shape({\n condition: yup\n .string()\n .required(t(\"neetoFields.validations.regexConditionIsRequired\"))\n .matches(\n PERMITTED_REGEX_PATTERN,\n t(\"neetoFields.validations.invalidRegexPattern\")\n )\n .test({\n name: \"test-regex-is-advanced\",\n message:\n t(\"neetoFields.validations.advancedRegexAssertionsNotSupported\") || \"\",\n test: value => !ADVANCED_REGEX_ASSERTION_PATTERN.test(value),\n })\n .test({\n name: \"test-regex-condition-pattern\",\n message: t(\"neetoFields.validations.invalidRegexPattern\") || \"\",\n test: value => {\n try {\n const lastIndex = value.lastIndexOf(\"/\");\n const condition = value.substring(1, lastIndex);\n // Evaluating the regex to check if it is valid\n new RegExp(condition);\n \"\".search(condition);\n\n return true;\n } catch {\n return false;\n }\n },\n }),\n helpMessage: yup\n .string()\n .required(t(\"neetoFields.validations.regexHelpMessageIsRequired\")),\n});\n\nconst dropDownOptionsValidationSchema = yup\n .array()\n .of(\n yup.object().shape({\n label: yup\n .string()\n .trim()\n .required(t(\"neetoFields.validations.fieldOptionIsRequired\")),\n displayOrder: yup.number(),\n })\n )\n .min(1, t(\"neetoFields.validations.atLeastFieldOptionIsRequired\"));\n\nexport const FIELD_KINDS = {\n text: { value: \"text\", label: t(\"neetoFields.fields.kinds.text\"), group: 1 },\n number: {\n value: \"number\",\n label: t(\"neetoFields.fields.kinds.number\"),\n group: 2,\n },\n monetary: {\n value: \"monetary\",\n label: t(\"neetoFields.fields.kinds.monetary\"),\n group: 2,\n },\n single_option: {\n value: \"single_option\",\n label: t(\"neetoFields.fields.kinds.singleOption\"),\n group: 12,\n },\n multi_option: {\n value: \"multi_option\",\n label: t(\"neetoFields.fields.kinds.multiOption\"),\n group: 3,\n },\n date: { value: \"date\", label: t(\"neetoFields.fields.kinds.date\"), group: 4 },\n time: { value: \"time\", label: t(\"neetoFields.fields.kinds.time\"), group: 5 },\n date_range: {\n value: \"date_range\",\n label: t(\"neetoFields.fields.kinds.dateRange\"),\n group: 6,\n },\n time_range: {\n value: \"time_range\",\n label: t(\"neetoFields.fields.kinds.timeRange\"),\n group: 7,\n },\n text_area: {\n value: \"text_area\",\n label: t(\"neetoFields.fields.kinds.textArea\"),\n group: 1,\n },\n textarea: {\n value: \"textarea\",\n label: t(\"neetoFields.fields.kinds.textarea\"),\n group: 1,\n },\n person: {\n value: \"person\",\n label: t(\"neetoFields.fields.kinds.person\"),\n group: 8,\n },\n checkbox: {\n value: \"checkbox\",\n label: t(\"neetoFields.fields.kinds.checkbox\"),\n group: 9,\n },\n regex: {\n value: \"regex\",\n label: t(\"neetoFields.fields.kinds.regex\"),\n group: 10,\n },\n integer: {\n value: \"integer\",\n label: t(\"neetoFields.fields.kinds.integer\"),\n group: 2,\n },\n decimal: {\n value: \"decimal\",\n label: t(\"neetoFields.fields.kinds.decimal\"),\n group: 2,\n },\n datetime: {\n value: \"datetime\",\n label: t(\"neetoFields.fields.kinds.datetime\"),\n group: 11,\n },\n};\n\nexport const ADDITIONAL_DATA_NEEDED_FIELD_KINDS = [\n \"single_option\",\n \"multi_option\",\n \"regex\",\n];\n\nexport const INITIAL_FIELDS = {\n name: \"\",\n kind: toLabelAndValue(\"text\"),\n isRequired: false,\n};\n\nexport const DEFAULT_REGEX_DATA = { condition: \"\", helpMessage: \"\" };\n\nexport const BASIC_FIELD_FORM_VALIDATIONS = {\n name: yup\n .string()\n .trim()\n .required(t(\"neetoFields.validations.fieldNameIsRequired\")),\n isRequired: yup.boolean(),\n kind: yup\n .object()\n .shape({ value: yup.string().required() })\n .required(t(\"neetoFields.validations.kindIsRequired\")),\n data: yup\n .mixed()\n .when(\"kind\", {\n is: kind => isRegex(kind?.value),\n then: regexValidationSchema,\n })\n .when(\"kind\", {\n is: kind => isDropdown(kind?.value),\n then: dropDownOptionsValidationSchema,\n }),\n};\n","import { FieldArray, useFormikContext } from \"formik\";\nimport { isNotEmpty } from \"neetocist\";\nimport { isMetaKeyPressed } from \"neetocommons/react-utils\";\nimport { Delete } from \"neetoicons\";\nimport { Label, Button } from \"neetoui\";\nimport { Input } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { getDefaultOption, isDropdown, isRegex } from \"./utils\";\n\nconst AdditionalInputs = () => {\n const { t } = useTranslation();\n\n const {\n values: { kind, data: options, isSystem },\n } = useFormikContext();\n\n const removeOption = (arrayHelpers, index) => arrayHelpers.remove(index);\n\n const addOption = arrayHelpers => arrayHelpers.push(getDefaultOption());\n\n const handleKeyDown = (event, arrayHelpers) => {\n if (event.key !== \"Enter\" || isMetaKeyPressed(event)) return;\n\n const form = event.target.form;\n const inputs = [\n ...form.querySelectorAll(\"#neeto-fields-dropdown-options-wrapper input\"),\n ];\n\n const currentIndex = inputs.indexOf(event.target);\n\n currentIndex >= inputs.length - 1\n ? addOption(arrayHelpers)\n : inputs[currentIndex + 1]?.focus();\n\n event.preventDefault();\n event.stopPropagation();\n };\n\n if (isDropdown(kind.value)) {\n return (\n <FieldArray name=\"data\">\n {arrayHelpers => (\n <div\n className=\"flex w-full flex-col gap-y-4\"\n id=\"neeto-fields-dropdown-options-wrapper\"\n >\n <Label required>{t(\"neetoFields.titles.dropdownOptions\")}</Label>\n {isNotEmpty(options) &&\n Array.isArray(options) &&\n options.map((_, index) => (\n <div className=\"flex w-full space-x-3\" key={index}>\n <div className=\"w-full\">\n <Input\n autoFocus\n data-cy={`neeto-fields-dropdown-option-${index}`}\n disabled={isSystem}\n name={`data.${index}.label`}\n placeholder={t(\"neetoFields.placeholders.enterAnOption\")}\n suffix={\n options.length > 1 && (\n <Button\n data-cy={`neeto-fields-dropdown-option-delete-${index}`}\n icon={Delete}\n style=\"text\"\n onClick={() => removeOption(arrayHelpers, index)}\n />\n )\n }\n onKeyDown={event => handleKeyDown(event, arrayHelpers)}\n />\n </div>\n </div>\n ))}\n <Button\n fullWidth\n className=\"mb-6 border-dashed text-xs uppercase\"\n data-cy=\"neeto-fields-add-more-option-button\"\n label={t(\"neetoFields.labels.addAnotherOption\")}\n style=\"secondary\"\n onClick={() => addOption(arrayHelpers)}\n />\n </div>\n )}\n </FieldArray>\n );\n } else if (isRegex(kind.value)) {\n return (\n <div className=\"flex w-full flex-col gap-y-4\">\n <Label required>{t(\"neetoFields.titles.regexOptions\")}</Label>\n <Input\n disabled={isSystem}\n label={t(\"neetoFields.labels.regexCondition\")}\n name=\"data.condition\"\n placeholder={t(\"neetoFields.placeholders.regexExample\")}\n />\n <Input\n disabled={isSystem}\n label={t(\"neetoFields.labels.helpMessage\")}\n name=\"data.helpMessage\"\n placeholder={t(\"neetoFields.placeholders.enterErrorMessage\")}\n />\n </div>\n );\n }\n\n return null;\n};\n\nexport default AdditionalInputs;\n","import { useFormikContext } from \"formik\";\nimport { Label, Pane, Typography } from \"neetoui\";\nimport { Input, Select, Switch } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport AdditionalInputs from \"./AdditionalInputs\";\nimport { DEFAULT_REGEX_DATA } from \"./constants\";\nimport {\n getDefaultOption,\n isAdditionalDataNeeded,\n isDropdown,\n isRegex,\n} from \"./utils\";\n\n/** @type {React.FC<import(\"types\").FieldFormProps>} */\n\nconst FieldForm = ({\n chosenKind,\n kindSelectOptions = [],\n isSystem = false,\n hideRequiredSwitch = false,\n children,\n initialFocusField,\n}) => {\n const { t } = useTranslation();\n\n const {\n values: { data: options },\n setFieldValue,\n } = useFormikContext();\n\n const handleKindChange = kind => {\n setFieldValue(\"kind\", kind);\n if (isDropdown(kind.value)) {\n setFieldValue(\"data\", options ?? [getDefaultOption()]);\n } else if (isRegex(kind.value)) {\n setFieldValue(\"data\", options ?? DEFAULT_REGEX_DATA);\n }\n };\n\n return (\n <Pane.Body>\n <div className=\"w-full space-y-4\">\n <Input\n required\n data-cy=\"name-text-field\"\n disabled={isSystem}\n label={t(\"neetoFields.labels.fieldName\")}\n name=\"name\"\n placeholder={t(\"neetoFields.placeholders.enterFieldName\")}\n ref={initialFocusField}\n />\n <Select\n isSearchable\n isDisabled={isSystem}\n label={t(\"neetoFields.labels.fieldKind\")}\n name=\"kind\"\n options={kindSelectOptions}\n onChange={handleKindChange}\n />\n {isAdditionalDataNeeded(chosenKind) && <AdditionalInputs />}\n {!hideRequiredSwitch && (\n <Label\n className=\"flex items-center gap-2\"\n data-cy=\"is-required-switch-container\"\n >\n <Switch data-cy=\"is-required-switch\" name=\"isRequired\" />\n <Typography\n className=\"leading-4\"\n component=\"span\"\n data-cy=\"is-required-switch-label\"\n style=\"body2\"\n >\n {t(\"neetoFields.labels.isRequired\")}\n </Typography>\n </Label>\n )}\n {children}\n </div>\n </Pane.Body>\n );\n};\n\nexport default FieldForm;\n","import { Pane, Typography } from \"neetoui\";\nimport { Form } from \"neetoui/formik\";\nimport { pick, values } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { ALL_KINDS } from \"components/FieldsDashBoard/constants\";\nimport { useCreateField } from \"hooks/reactQuery/useFieldsApi\";\n\nimport { FIELD_KINDS, INITIAL_FIELDS } from \"./constants\";\nimport FieldForm from \"./FieldForm\";\nimport {\n buildPayload,\n generateValidationSchema,\n renderFormFooter,\n} from \"./utils\";\n\n/** @type {React.FC<import(\"types\").AddProps>} */\n\nconst Add = ({\n resourceType,\n allowedKinds = ALL_KINDS,\n ownerId,\n additionalValidations,\n initialValues,\n onClose,\n onMutationSuccess,\n ...props\n}) => {\n const { t } = useTranslation();\n\n const { mutate: createField, isPending: isSubmitting } = useCreateField({\n onSuccess: onMutationSuccess,\n });\n\n const filteredKinds = values(pick(allowedKinds, FIELD_KINDS));\n\n const handleSubmit = formValues => {\n const payload = buildPayload({ formValues, resourceType, ownerId });\n createField(payload, { onSuccess: onClose });\n };\n\n return (\n <>\n <Pane.Header>\n <Typography data-cy=\"add-pane-header\" style=\"h2\">\n {t(\"neetoFields.titles.addField\")}\n </Typography>\n </Pane.Header>\n <Form\n formikProps={{\n initialValues: { ...initialValues, ...INITIAL_FIELDS },\n validationSchema: generateValidationSchema(additionalValidations),\n onSubmit: handleSubmit,\n }}\n >\n {({ values: { kind } }) => (\n <>\n <FieldForm\n chosenKind={kind.value}\n kindSelectOptions={filteredKinds}\n {...props}\n />\n {renderFormFooter({ onClose, loading: isSubmitting })}\n </>\n )}\n </Form>\n </>\n );\n};\n\nexport default Add;\n","import PageLoader from \"neetomolecules/PageLoader\";\nimport { Pane, Typography } from \"neetoui\";\nimport { Form } from \"neetoui/formik\";\nimport { assoc } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { ALL_KINDS } from \"components/FieldsDashBoard/constants\";\nimport { useShowField, useUpdateField } from \"hooks/reactQuery/useFieldsApi\";\n\nimport { FIELD_KINDS } from \"./constants\";\nimport FieldForm from \"./FieldForm\";\nimport {\n buildPayload,\n generateValidationSchema,\n getPermittedKinds,\n renderFormFooter,\n} from \"./utils\";\n\n/** @type {React.FC<import(\"types\").EditProps>} */\n\nconst Edit = ({\n fieldId,\n allowedKinds = ALL_KINDS,\n ownerId,\n additionalValidations = {},\n initialValues = {},\n onClose,\n onMutationSuccess,\n ...props\n}) => {\n const { t } = useTranslation();\n\n const { data: { field = {} } = {}, isLoading } = useShowField({\n fieldId,\n ownerId,\n });\n\n const { mutate: updateField, isPending: isSubmitting } = useUpdateField({\n onSuccess: (...args) => {\n onMutationSuccess?.(...args);\n onClose();\n },\n });\n\n const handleSubmit = formValues => {\n const payload = buildPayload({ formValues, ownerId });\n updateField({ fieldId, payload });\n };\n\n return (\n <>\n <Pane.Header>\n <Typography data-cy=\"edit-pane-header\" style=\"h2\">\n {t(\"neetoFields.titles.editField\")}\n </Typography>\n </Pane.Header>\n {isLoading ? (\n <PageLoader />\n ) : (\n <Form\n formikProps={{\n initialValues: {\n ...initialValues,\n ...assoc(\"kind\", FIELD_KINDS[field.kind], field),\n },\n validationSchema: generateValidationSchema(additionalValidations),\n enableReinitialize: true,\n onSubmit: handleSubmit,\n }}\n >\n {({ values: { kind } }) => {\n const permittedKinds = getPermittedKinds({\n allowedKinds,\n selectedKind: kind,\n });\n\n return (\n <>\n <FieldForm\n chosenKind={kind?.value}\n isSystem={field.isSystem}\n kindSelectOptions={permittedKinds}\n {...props}\n />\n {renderFormFooter({ onClose, loading: isSubmitting })}\n </>\n );\n }}\n </Form>\n )}\n </>\n );\n};\n\nexport default Edit;\n","import { useRef } from \"react\";\n\nimport { Pane } from \"neetoui\";\nimport { isEmpty } from \"ramda\";\n\nimport Add from \"./Add\";\nimport Edit from \"./Edit\";\n\n/** @type {React.FC<import(\"types\").FieldsPaneProps>} */\n\nconst FieldsPane = ({ isOpen, selectedField = {}, ...props }) => {\n const initialFocusField = useRef(null);\n\n return (\n <Pane\n {...{ isOpen }}\n initialFocusRef={initialFocusField}\n onClose={props.onClose}\n >\n {isEmpty(selectedField) ? (\n <Add {...{ ...props, initialFocusField }} />\n ) : (\n <Edit\n fieldId={selectedField?.id}\n {...{ ...props, initialFocusField }}\n />\n )}\n </Pane>\n );\n};\n\nexport default FieldsPane;\n"],"names":["arrangeOptionsDisplayOrder","options","map","option","index","_objectSpread","displayOrder","buildPayload","_ref","formValues","_ref$resourceType","resourceType","_ref$ownerId","ownerId","kind","value","name","trim","isEmpty","undefined","field","omit","data","isDropdown","includes","isRegex","isAdditionalDataNeeded","ADDITIONAL_DATA_NEEDED_FIELD_KINDS","getPermittedKinds","_ref2","allowedKinds","selectedKind","filteredKinds","pick","FIELD_KINDS","filterBy","group","values","generateValidationSchema","additionalValidations","yup","object","shape","BASIC_FIELD_FORM_VALIDATIONS","renderFormFooter","_ref3","onClose","loading","_jsx","Pane","Footer","children","ActionBlock","cancelButtonProps","onClick","isSubmitting","getDefaultOption","id","uuidv4","label","PERMITTED_REGEX_PATTERN","ADVANCED_REGEX_ASSERTION_PATTERN","regexValidationSchema","condition","string","required","t","matches","test","message","lastIndex","lastIndexOf","substring","RegExp","search","_unused","helpMessage","dropDownOptionsValidationSchema","array","of","number","min","text","monetary","single_option","multi_option","date","time","date_range","time_range","text_area","textarea","person","checkbox","regex","integer","decimal","datetime","INITIAL_FIELDS","toLabelAndValue","isRequired","DEFAULT_REGEX_DATA","mixed","when","is","then","AdditionalInputs","_useTranslation","useTranslation","_useFormikContext","useFormikContext","_useFormikContext$val","isSystem","removeOption","arrayHelpers","remove","addOption","push","handleKeyDown","event","_inputs","key","isMetaKeyPressed","form","target","inputs","_toConsumableArray","querySelectorAll","currentIndex","indexOf","length","focus","preventDefault","stopPropagation","FieldArray","_jsxs","className","Label","isNotEmpty","Array","isArray","_","Input","autoFocus","concat","disabled","placeholder","suffix","Button","icon","Delete","style","onKeyDown","fullWidth","FieldForm","chosenKind","_ref$kindSelectOption","kindSelectOptions","_ref$isSystem","_ref$hideRequiredSwit","hideRequiredSwitch","initialFocusField","setFieldValue","handleKindChange","Body","ref","Select","isSearchable","isDisabled","onChange","Switch","Typography","component","Add","_ref$allowedKinds","ALL_KINDS","initialValues","onMutationSuccess","props","_objectWithoutProperties","_excluded","_useCreateField","useCreateField","onSuccess","createField","mutate","isPending","handleSubmit","payload","_Fragment","Header","Form","formikProps","validationSchema","onSubmit","Edit","fieldId","_ref$additionalValida","_ref$initialValues","_useShowField","useShowField","_useShowField$data","_useShowField$data2","_useShowField$data2$f","isLoading","_useUpdateField","useUpdateField","_len","arguments","args","_key","apply","updateField","PageLoader","assoc","enableReinitialize","permittedKinds","FieldsPane","isOpen","_ref$selectedField","selectedField","useRef","initialFocusRef"],"mappings":"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"}