@bigbinary/neeto-fields-frontend 1.4.0-beta2 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/DeleteAlert-063eea87.js +764 -0
- package/dist/DeleteAlert-063eea87.js.map +1 -0
- package/dist/DeleteAlert-f2c5236d.js +781 -0
- package/dist/DeleteAlert-f2c5236d.js.map +1 -0
- package/dist/FieldDeleteAlert.js +23 -0
- package/dist/FieldDeleteAlert.js.map +1 -0
- package/dist/FieldInputs.js +58 -0
- package/dist/FieldInputs.js.map +1 -0
- package/dist/FieldValueInputWrapper-adbbc915.js +198 -0
- package/dist/FieldValueInputWrapper-adbbc915.js.map +1 -0
- package/dist/FieldValueInputWrapper-f1f2e095.js +189 -0
- package/dist/FieldValueInputWrapper-f1f2e095.js.map +1 -0
- package/dist/FieldValuesContainer.js +223 -0
- package/dist/FieldValuesContainer.js.map +1 -0
- package/dist/FieldsDashboard.js +5000 -0
- package/dist/FieldsDashboard.js.map +1 -0
- package/dist/FieldsPane.js +563 -0
- package/dist/FieldsPane.js.map +1 -0
- package/dist/InlineFieldValueInput.js +157 -0
- package/dist/InlineFieldValueInput.js.map +1 -0
- package/dist/_commonjsHelpers-1789f0cf.js +8 -0
- package/dist/_commonjsHelpers-1789f0cf.js.map +1 -0
- package/dist/_commonjsHelpers-b3309d7b.js +11 -0
- package/dist/_commonjsHelpers-b3309d7b.js.map +1 -0
- package/dist/cjs/FieldDeleteAlert.js +29 -0
- package/dist/cjs/FieldDeleteAlert.js.map +1 -0
- package/dist/cjs/FieldInputs.js +64 -0
- package/dist/cjs/FieldInputs.js.map +1 -0
- package/dist/cjs/FieldValuesContainer.js +232 -0
- package/dist/cjs/FieldValuesContainer.js.map +1 -0
- package/dist/cjs/FieldsDashboard.js +5020 -0
- package/dist/cjs/FieldsDashboard.js.map +1 -0
- package/dist/cjs/FieldsPane.js +598 -0
- package/dist/cjs/FieldsPane.js.map +1 -0
- package/dist/cjs/InlineFieldValueInput.js +164 -0
- package/dist/cjs/InlineFieldValueInput.js.map +1 -0
- package/dist/cjs/hooks.js +20 -0
- package/dist/cjs/hooks.js.map +1 -0
- package/dist/cjs/index.js +84 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/utils.js +34 -0
- package/dist/cjs/utils.js.map +1 -0
- package/dist/constants-0e6017ea.js +57 -0
- package/dist/constants-0e6017ea.js.map +1 -0
- package/dist/constants-c71008a3.js +64 -0
- package/dist/constants-c71008a3.js.map +1 -0
- package/dist/hooks.js +8 -0
- package/dist/hooks.js.map +1 -0
- package/dist/index-265f7913.js +117 -0
- package/dist/index-265f7913.js.map +1 -0
- package/dist/index-27e54c2c.js +130 -0
- package/dist/index-27e54c2c.js.map +1 -0
- package/dist/index.js +64 -8236
- package/dist/index.js.map +1 -1
- package/dist/query-0df5b2dd.js +13 -0
- package/dist/query-0df5b2dd.js.map +1 -0
- package/dist/query-1a62b3ac.js +10 -0
- package/dist/query-1a62b3ac.js.map +1 -0
- package/dist/slicedToArray-50f7cc19.js +46 -0
- package/dist/slicedToArray-50f7cc19.js.map +1 -0
- package/dist/slicedToArray-6198349b.js +44 -0
- package/dist/slicedToArray-6198349b.js.map +1 -0
- package/dist/useFieldsApi-14928ecf.js +161 -0
- package/dist/useFieldsApi-14928ecf.js.map +1 -0
- package/dist/useFieldsApi-5c114bac.js +149 -0
- package/dist/useFieldsApi-5c114bac.js.map +1 -0
- package/dist/utils-9f816116.js +1140 -0
- package/dist/utils-9f816116.js.map +1 -0
- package/dist/utils-a0333c9c.js +1180 -0
- package/dist/utils-a0333c9c.js.map +1 -0
- package/dist/utils.js +26 -0
- package/dist/utils.js.map +1 -0
- package/package.json +28 -14
- package/types.d.ts +1 -1
- package/dist/index.cjs.js +0 -8306
- 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
|