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