@bigbinary/neeto-fields-frontend 1.1.3 → 1.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -0
- package/dist/index.cjs.js +265 -120
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.js +268 -123
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/types.d.ts +2 -0
package/dist/index.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import React, { useContext, useState, useRef, useEffect, useMemo, useLayoutEffect, useCallback, createContext, memo, useReducer } from 'react';
|
|
2
2
|
import { Switch, TimePicker, DatePicker, Select, Input, Textarea, Typography, Pane, Label, Button as Button$1, Dropdown, NoData, Table, Spinner, Alert } from '@bigbinary/neetoui';
|
|
3
|
-
import { toLabelAndValue, isNotEmpty, capitalize as capitalize$1, filterBy, findBy, humanize, countBy, existsBy, noop as noop$2 } from '@bigbinary/neeto-commons-frontend/pure';
|
|
4
|
-
import { values, map, isNotNil, isNil, pluck, clone as clone$1, pipe, mergeAll, omit, prop, pick,
|
|
3
|
+
import { toLabelAndValue, isNotEmpty, capitalize as capitalize$1, filterBy, findBy, slugify, humanize, countBy, existsBy, noop as noop$2 } from '@bigbinary/neeto-commons-frontend/pure';
|
|
4
|
+
import { values, map, isNotNil, isEmpty, isNil, pluck, clone as clone$1, pipe, mergeAll, omit, prop, pick, assoc, any, not, head } from 'ramda';
|
|
5
5
|
import { useFormikContext, useField, FieldArray } from 'formik';
|
|
6
|
+
import { useFuncDebounce, useDebounce, handleMetaClick } from '@bigbinary/neeto-commons-frontend/react-utils';
|
|
6
7
|
import * as yup from 'yup';
|
|
7
|
-
import { Check, Delete, MenuHorizontal, Reorder } from '@bigbinary/neeto-icons';
|
|
8
|
+
import { Check, Info, Delete, MenuHorizontal, Reorder } from '@bigbinary/neeto-icons';
|
|
8
9
|
import { Button, ActionBlock, Input as Input$1, Select as Select$1, Switch as Switch$1, Form } from '@bigbinary/neetoui/formik';
|
|
9
10
|
import Container from '@bigbinary/neeto-molecules/Container';
|
|
10
11
|
import Header from '@bigbinary/neeto-molecules/Header';
|
|
@@ -14,7 +15,6 @@ import SubHeader from '@bigbinary/neeto-molecules/SubHeader';
|
|
|
14
15
|
import { useQuery, useQueryClient, useMutation } from 'react-query';
|
|
15
16
|
import axios from 'axios';
|
|
16
17
|
import { buildUrl, getQueryParams } from '@bigbinary/neeto-commons-frontend/utils';
|
|
17
|
-
import { useDebounce, handleMetaClick } from '@bigbinary/neeto-commons-frontend/react-utils';
|
|
18
18
|
import { Link, useHistory } from 'react-router-dom';
|
|
19
19
|
import TableWrapper from '@bigbinary/neeto-molecules/TableWrapper';
|
|
20
20
|
import { unstable_batchedUpdates, createPortal } from 'react-dom';
|
|
@@ -5306,9 +5306,12 @@ var fields = {
|
|
|
5306
5306
|
}
|
|
5307
5307
|
};
|
|
5308
5308
|
var messages = {
|
|
5309
|
-
noFields: "There are no
|
|
5309
|
+
noFields: "There are no {{title}} to show",
|
|
5310
5310
|
confirmDelete: "Are you sure want to delete the field? This action cannot be undone.",
|
|
5311
5311
|
manageFieldFor: "Manage fields for {{resource}}",
|
|
5312
|
+
manageTitleForResource: "Manage {{title}} for {{resource}}",
|
|
5313
|
+
titleForResource: "{{title}} for {{resource}}",
|
|
5314
|
+
stateTitleForResource: "{{state}} {{title}} for {{resource}}",
|
|
5312
5315
|
invalidKind: "Invalid kind",
|
|
5313
5316
|
reorderFields: "Fields are displayed from top to bottom."
|
|
5314
5317
|
};
|
|
@@ -5329,7 +5332,7 @@ var tooltips = {
|
|
|
5329
5332
|
reorder: "Fields a are displayed from top to bottom. Re-order them"
|
|
5330
5333
|
};
|
|
5331
5334
|
var helpTexts = {
|
|
5332
|
-
noData: "Here is how you can use <a>
|
|
5335
|
+
noData: "Here is how you can use <a>{{title}}.</a>"
|
|
5333
5336
|
};
|
|
5334
5337
|
var en = {
|
|
5335
5338
|
common: common,
|
|
@@ -5844,57 +5847,60 @@ var buildSchemaAllowingEmptyValue = function buildSchemaAllowingEmptyValue(schem
|
|
|
5844
5847
|
name: "validate-if-not-empty",
|
|
5845
5848
|
test: function test(value) {
|
|
5846
5849
|
if (isNotEmpty(value) && isNotNil(value)) {
|
|
5847
|
-
|
|
5848
|
-
schema.validateSync(value);
|
|
5849
|
-
return true;
|
|
5850
|
-
} catch (_unused) {
|
|
5851
|
-
return false;
|
|
5852
|
-
}
|
|
5850
|
+
schema.validateSync(value);
|
|
5853
5851
|
}
|
|
5854
5852
|
return true;
|
|
5855
5853
|
}
|
|
5856
5854
|
});
|
|
5857
5855
|
};
|
|
5858
|
-
var
|
|
5859
|
-
|
|
5860
|
-
|
|
5861
|
-
|
|
5856
|
+
var buildSchemaForRequiredInputs = function buildSchemaForRequiredInputs(schema) {
|
|
5857
|
+
return yup.mixed().test({
|
|
5858
|
+
name: "validate-required-inputs",
|
|
5859
|
+
test: function test(value) {
|
|
5860
|
+
if (isEmpty(value) || isNil(value)) {
|
|
5861
|
+
throw new yup.ValidationError(t$1("validations.thisIsRequired"));
|
|
5862
|
+
}
|
|
5863
|
+
schema.validateSync(value);
|
|
5864
|
+
return true;
|
|
5865
|
+
}
|
|
5866
|
+
});
|
|
5867
|
+
};
|
|
5868
|
+
var buildSchema = function buildSchema(_ref) {
|
|
5869
|
+
var schema = _ref.schema,
|
|
5870
|
+
isRequired = _ref.isRequired;
|
|
5871
|
+
return isRequired ? buildSchemaForRequiredInputs(schema) : buildSchemaAllowingEmptyValue(schema);
|
|
5872
|
+
};
|
|
5873
|
+
var getBasicValidationSchema = function getBasicValidationSchema(_ref2) {
|
|
5874
|
+
var kind = _ref2.kind,
|
|
5875
|
+
fieldData = _ref2.fieldData;
|
|
5862
5876
|
switch (kind) {
|
|
5863
5877
|
case KINDS.singleOption:
|
|
5864
5878
|
case KINDS.text:
|
|
5865
5879
|
{
|
|
5866
|
-
|
|
5867
|
-
return isRequired ? schema.required(t$1("validations.thisIsRequired")) : schema;
|
|
5880
|
+
return yup.string().trim().nullable();
|
|
5868
5881
|
}
|
|
5869
5882
|
case KINDS.number:
|
|
5870
5883
|
case KINDS.monetary:
|
|
5871
5884
|
case KINDS.decimal:
|
|
5872
5885
|
{
|
|
5873
|
-
|
|
5874
|
-
return isRequired ? _schema.required(t$1("validations.thisIsRequired")) : _schema;
|
|
5886
|
+
return yup.number(t$1("validations.notAValidNumber")).nullable();
|
|
5875
5887
|
}
|
|
5876
5888
|
case KINDS.integer:
|
|
5877
5889
|
{
|
|
5878
|
-
|
|
5879
|
-
return isRequired ? _schema2.required(t$1("validations.thisIsRequired")) : _schema2;
|
|
5890
|
+
return yup.number().nullable().integer(t$1("validations.notAValidInteger"));
|
|
5880
5891
|
}
|
|
5881
5892
|
case KINDS.date:
|
|
5882
5893
|
case KINDS.time:
|
|
5883
5894
|
{
|
|
5884
|
-
|
|
5885
|
-
return isRequired ? _schema3.required(t$1("validations.thisIsRequired")) : _schema3;
|
|
5895
|
+
return dateSchema;
|
|
5886
5896
|
}
|
|
5887
5897
|
case KINDS.multiOption:
|
|
5888
5898
|
{
|
|
5889
|
-
|
|
5890
|
-
return isRequired ? _schema4.min(1, t$1("validations.minOneItem")).required(t$1("validations.thisIsRequired")) : _schema4;
|
|
5899
|
+
return yup.array().of(yup.string()).nullable();
|
|
5891
5900
|
}
|
|
5892
5901
|
case KINDS.dateRange:
|
|
5893
5902
|
case KINDS.timeRange:
|
|
5894
5903
|
{
|
|
5895
|
-
if (isRequired) {
|
|
5896
|
-
return yup.array().of(dateSchema).required(t$1("validations.thisIsRequired"));
|
|
5897
|
-
}
|
|
5898
5904
|
return yup.array().of(dateSchema).nullable();
|
|
5899
5905
|
}
|
|
5900
5906
|
case KINDS.checkbox:
|
|
@@ -5902,13 +5908,25 @@ var buildFieldValidationSchema = function buildFieldValidationSchema(_ref) {
|
|
|
5902
5908
|
case KINDS.regex:
|
|
5903
5909
|
{
|
|
5904
5910
|
var regexPattern = fieldData === null || fieldData === void 0 ? void 0 : fieldData.condition;
|
|
5905
|
-
|
|
5906
|
-
return isRequired ? _schema5.required(t$1("validations.thisIsRequired")) : _schema5;
|
|
5911
|
+
return yup.string().nullable().matches(cleanedRegex(regexPattern), fieldData === null || fieldData === void 0 ? void 0 : fieldData.helpMessage);
|
|
5907
5912
|
}
|
|
5908
5913
|
default:
|
|
5909
5914
|
return yup.mixed();
|
|
5910
5915
|
}
|
|
5911
5916
|
};
|
|
5917
|
+
var buildFieldValidationSchema = function buildFieldValidationSchema(_ref3) {
|
|
5918
|
+
var kind = _ref3.kind,
|
|
5919
|
+
isRequired = _ref3.isRequired,
|
|
5920
|
+
fieldData = _ref3.fieldData;
|
|
5921
|
+
var schema = getBasicValidationSchema({
|
|
5922
|
+
kind: kind,
|
|
5923
|
+
fieldData: fieldData
|
|
5924
|
+
});
|
|
5925
|
+
return buildSchema({
|
|
5926
|
+
schema: schema,
|
|
5927
|
+
isRequired: isRequired
|
|
5928
|
+
});
|
|
5929
|
+
};
|
|
5912
5930
|
var cleanedRegex = function cleanedRegex(expression) {
|
|
5913
5931
|
if (expression.startsWith("/") && expression.endsWith("/")) {
|
|
5914
5932
|
return expression.slice(1, -1);
|
|
@@ -5917,9 +5935,9 @@ var cleanedRegex = function cleanedRegex(expression) {
|
|
|
5917
5935
|
};
|
|
5918
5936
|
var buildOptionsToLabelAndValue = function buildOptionsToLabelAndValue() {
|
|
5919
5937
|
var optionObjects = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
5920
|
-
return optionObjects.map(function (
|
|
5921
|
-
var label =
|
|
5922
|
-
value =
|
|
5938
|
+
return optionObjects.map(function (_ref4) {
|
|
5939
|
+
var label = _ref4.label,
|
|
5940
|
+
value = _ref4.value;
|
|
5923
5941
|
return {
|
|
5924
5942
|
label: label,
|
|
5925
5943
|
value: value || label
|
|
@@ -5930,12 +5948,12 @@ var buildArrayToLabelAndValues = function buildArrayToLabelAndValues(value) {
|
|
|
5930
5948
|
return map(toLabelAndValue, value || []);
|
|
5931
5949
|
};
|
|
5932
5950
|
var validateField = /*#__PURE__*/function () {
|
|
5933
|
-
var
|
|
5951
|
+
var _ref6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref5) {
|
|
5934
5952
|
var fieldValue, fieldName, isRequired, kind, fieldData;
|
|
5935
5953
|
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
5936
5954
|
while (1) switch (_context.prev = _context.next) {
|
|
5937
5955
|
case 0:
|
|
5938
|
-
fieldValue =
|
|
5956
|
+
fieldValue = _ref5.fieldValue, fieldName = _ref5.fieldName, isRequired = _ref5.isRequired, kind = _ref5.kind, fieldData = _ref5.fieldData;
|
|
5939
5957
|
_context.prev = 1;
|
|
5940
5958
|
_context.next = 4;
|
|
5941
5959
|
return yup.object().shape(_defineProperty({}, fieldName, buildFieldValidationSchema({
|
|
@@ -5956,7 +5974,7 @@ var validateField = /*#__PURE__*/function () {
|
|
|
5956
5974
|
}, _callee, null, [[1, 7]]);
|
|
5957
5975
|
}));
|
|
5958
5976
|
return function validateField(_x) {
|
|
5959
|
-
return
|
|
5977
|
+
return _ref6.apply(this, arguments);
|
|
5960
5978
|
};
|
|
5961
5979
|
}();
|
|
5962
5980
|
var dateTimeToString = function dateTimeToString(dateTime) {
|
|
@@ -5979,8 +5997,7 @@ var useFormikFields = function useFormikFields(_ref) {
|
|
|
5979
5997
|
isRequiredColumnName = _ref$isRequiredColumn === void 0 ? "isRequired" : _ref$isRequiredColumn,
|
|
5980
5998
|
props = _objectWithoutProperties(_ref, _excluded$3);
|
|
5981
5999
|
var formikContext = useFormikContext();
|
|
5982
|
-
var
|
|
5983
|
-
submitForm = formikContext.submitForm,
|
|
6000
|
+
var submitForm = formikContext.submitForm,
|
|
5984
6001
|
dirty = formikContext.dirty,
|
|
5985
6002
|
isSubmitting = formikContext.isSubmitting;
|
|
5986
6003
|
var fieldPath = escapeString("".concat(name, "-").concat(fieldId));
|
|
@@ -6007,9 +6024,10 @@ var useFormikFields = function useFormikFields(_ref) {
|
|
|
6007
6024
|
formikFieldProps = _useField2[0],
|
|
6008
6025
|
meta = _useField2[1],
|
|
6009
6026
|
helpers = _useField2[2];
|
|
6027
|
+
var debouncedSubmitForm = useFuncDebounce(submitForm, 100);
|
|
6010
6028
|
var handleSubmit = function handleSubmit(value) {
|
|
6011
|
-
isNotNil(value) &&
|
|
6012
|
-
individualSubmit &&
|
|
6029
|
+
isNotNil(value) && helpers.setValue(value);
|
|
6030
|
+
individualSubmit && debouncedSubmitForm();
|
|
6013
6031
|
};
|
|
6014
6032
|
var getValueForField = function getValueForField(value) {
|
|
6015
6033
|
if (kind === KINDS.singleOption) {
|
|
@@ -6020,17 +6038,19 @@ var useFormikFields = function useFormikFields(_ref) {
|
|
|
6020
6038
|
return value || "";
|
|
6021
6039
|
};
|
|
6022
6040
|
var isDropdown = ["single_option", "multi_option"].includes(kind);
|
|
6023
|
-
|
|
6024
|
-
|
|
6025
|
-
|
|
6041
|
+
useEffect(function () {
|
|
6042
|
+
if (isSubmitting && !meta.touched) {
|
|
6043
|
+
helpers.setTouched(true);
|
|
6044
|
+
}
|
|
6045
|
+
}, [isSubmitting]);
|
|
6026
6046
|
return {
|
|
6047
|
+
dirty: dirty,
|
|
6027
6048
|
handleSubmit: handleSubmit,
|
|
6028
6049
|
fieldProps: _objectSpread$a(_objectSpread$a({}, formikFieldProps), {}, {
|
|
6029
6050
|
required: props[isRequiredColumnName],
|
|
6030
6051
|
error: individualSubmit ? meta.error : meta.touched && meta.error,
|
|
6031
6052
|
options: isDropdown ? buildOptionsToLabelAndValue(fieldData) : undefined,
|
|
6032
6053
|
value: getValueForField(formikFieldProps.value),
|
|
6033
|
-
dirty: dirty,
|
|
6034
6054
|
label: !individualSubmit && capitalize$1(name),
|
|
6035
6055
|
disabled: disabled
|
|
6036
6056
|
})
|
|
@@ -6096,8 +6116,9 @@ var MultiOption = function MultiOption(props) {
|
|
|
6096
6116
|
var Number$1 = function Number(props) {
|
|
6097
6117
|
var _useFormikFields = useFormikFields(props),
|
|
6098
6118
|
handleSubmit = _useFormikFields.handleSubmit,
|
|
6099
|
-
fieldProps = _useFormikFields.fieldProps
|
|
6100
|
-
|
|
6119
|
+
fieldProps = _useFormikFields.fieldProps,
|
|
6120
|
+
dirty = _useFormikFields.dirty;
|
|
6121
|
+
var showSubmitButton = props.individualSubmit && dirty;
|
|
6101
6122
|
return /*#__PURE__*/React.createElement(Input, _extends({}, fieldProps, {
|
|
6102
6123
|
type: "number",
|
|
6103
6124
|
suffix: showSubmitButton && /*#__PURE__*/React.createElement(Button, {
|
|
@@ -6118,7 +6139,11 @@ var RangePicker = function RangePicker(props) {
|
|
|
6118
6139
|
var _ref2 = _slicedToArray(_ref, 2),
|
|
6119
6140
|
begin = _ref2[0],
|
|
6120
6141
|
end = _ref2[1];
|
|
6121
|
-
|
|
6142
|
+
if (begin && end) {
|
|
6143
|
+
handleSubmit([dateTimeToString(begin), dateTimeToString(end)]);
|
|
6144
|
+
} else {
|
|
6145
|
+
handleSubmit([]);
|
|
6146
|
+
}
|
|
6122
6147
|
};
|
|
6123
6148
|
if (props.kind === KINDS.dateRange) {
|
|
6124
6149
|
return /*#__PURE__*/React.createElement(DatePicker, _extends({}, fieldProps, {
|
|
@@ -6141,11 +6166,11 @@ var SingleOption = function SingleOption(props) {
|
|
|
6141
6166
|
handleSubmit = _useFormikFields.handleSubmit,
|
|
6142
6167
|
fieldProps = _useFormikFields.fieldProps;
|
|
6143
6168
|
return /*#__PURE__*/React.createElement(Select, _extends({
|
|
6169
|
+
isClearable: true,
|
|
6144
6170
|
isSearchable: true
|
|
6145
6171
|
}, fieldProps, {
|
|
6146
|
-
onChange: function onChange(
|
|
6147
|
-
|
|
6148
|
-
return handleSubmit(value);
|
|
6172
|
+
onChange: function onChange(option) {
|
|
6173
|
+
return handleSubmit((option === null || option === void 0 ? void 0 : option.value) || "");
|
|
6149
6174
|
}
|
|
6150
6175
|
}));
|
|
6151
6176
|
};
|
|
@@ -6153,8 +6178,9 @@ var SingleOption = function SingleOption(props) {
|
|
|
6153
6178
|
var Text = function Text(props) {
|
|
6154
6179
|
var _useFormikFields = useFormikFields(props),
|
|
6155
6180
|
handleSubmit = _useFormikFields.handleSubmit,
|
|
6156
|
-
fieldProps = _useFormikFields.fieldProps
|
|
6157
|
-
|
|
6181
|
+
fieldProps = _useFormikFields.fieldProps,
|
|
6182
|
+
dirty = _useFormikFields.dirty;
|
|
6183
|
+
var showSubmitButton = props.individualSubmit && dirty;
|
|
6158
6184
|
return /*#__PURE__*/React.createElement(Input, _extends({}, fieldProps, {
|
|
6159
6185
|
suffix: showSubmitButton && /*#__PURE__*/React.createElement(Button, {
|
|
6160
6186
|
icon: Check,
|
|
@@ -6171,8 +6197,9 @@ var TextArea = function TextArea(props) {
|
|
|
6171
6197
|
t = _useTranslation.t;
|
|
6172
6198
|
var _useFormikFields = useFormikFields(props),
|
|
6173
6199
|
handleSubmit = _useFormikFields.handleSubmit,
|
|
6174
|
-
fieldProps = _useFormikFields.fieldProps
|
|
6175
|
-
|
|
6200
|
+
fieldProps = _useFormikFields.fieldProps,
|
|
6201
|
+
dirty = _useFormikFields.dirty;
|
|
6202
|
+
var showSubmitButton = props.individualSubmit && dirty;
|
|
6176
6203
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Textarea, fieldProps), showSubmitButton && /*#__PURE__*/React.createElement(Button, {
|
|
6177
6204
|
className: "m-auto mt-2",
|
|
6178
6205
|
label: t("labels.submit"),
|
|
@@ -6239,26 +6266,46 @@ var transformValues = function transformValues(_ref2) {
|
|
|
6239
6266
|
fieldValuesAttributes: cleanedFieldValues
|
|
6240
6267
|
});
|
|
6241
6268
|
};
|
|
6242
|
-
var
|
|
6243
|
-
|
|
6269
|
+
var getDefaultInitialValue = function getDefaultInitialValue(kind) {
|
|
6270
|
+
switch (kind) {
|
|
6271
|
+
case KINDS.checkbox:
|
|
6272
|
+
return false;
|
|
6273
|
+
case KINDS.multiOption:
|
|
6274
|
+
case KINDS.dateRange:
|
|
6275
|
+
case KINDS.timeRange:
|
|
6276
|
+
return [];
|
|
6277
|
+
default:
|
|
6278
|
+
return "";
|
|
6279
|
+
}
|
|
6280
|
+
};
|
|
6281
|
+
var getInitialFieldValue = function getInitialFieldValue(_ref4) {
|
|
6282
|
+
var field = _ref4.field,
|
|
6283
|
+
_ref4$fieldValues = _ref4.fieldValues,
|
|
6284
|
+
fieldValues = _ref4$fieldValues === void 0 ? [] : _ref4$fieldValues,
|
|
6285
|
+
_ref4$isIndividualFie = _ref4.isIndividualFieldForm,
|
|
6286
|
+
isIndividualFieldForm = _ref4$isIndividualFie === void 0 ? false : _ref4$isIndividualFie;
|
|
6244
6287
|
var existingFieldValueData = findBy({
|
|
6245
6288
|
fieldId: field.id
|
|
6246
6289
|
}, fieldValues);
|
|
6290
|
+
var keyInData = field.kind === KINDS.multiOption ? "values" : "value";
|
|
6247
6291
|
var newFieldValueData = {
|
|
6248
6292
|
fieldId: field.id,
|
|
6249
|
-
data: null
|
|
6293
|
+
data: isIndividualFieldForm ? _defineProperty({}, keyInData, getDefaultInitialValue(field.kind)) : null
|
|
6250
6294
|
};
|
|
6251
6295
|
return _defineProperty({}, escapeString("".concat(field.name, "-").concat(field.id)), existingFieldValueData || newFieldValueData);
|
|
6252
6296
|
};
|
|
6253
6297
|
var getAllInitialFieldValues = function getAllInitialFieldValues(fields) {
|
|
6254
6298
|
var fieldValues = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
6255
6299
|
return getNonSystemFields(fields).map(function (field) {
|
|
6256
|
-
return getInitialFieldValue(
|
|
6300
|
+
return getInitialFieldValue({
|
|
6301
|
+
field: field,
|
|
6302
|
+
fieldValues: fieldValues
|
|
6303
|
+
});
|
|
6257
6304
|
});
|
|
6258
6305
|
};
|
|
6259
|
-
var mergeInitialValues = function mergeInitialValues(
|
|
6260
|
-
var initialValues =
|
|
6261
|
-
fields =
|
|
6306
|
+
var mergeInitialValues = function mergeInitialValues(_ref7) {
|
|
6307
|
+
var initialValues = _ref7.initialValues,
|
|
6308
|
+
fields = _ref7.fields;
|
|
6262
6309
|
var initialValue = mergeAll([initialValues].concat(_toConsumableArray(getAllInitialFieldValues(fields, initialValues === null || initialValues === void 0 ? void 0 : initialValues.fieldValues))));
|
|
6263
6310
|
return omit(["fieldValues"], initialValue);
|
|
6264
6311
|
};
|
|
@@ -6323,6 +6370,21 @@ var SINGULAR = {
|
|
|
6323
6370
|
var PLURAL = {
|
|
6324
6371
|
count: 2
|
|
6325
6372
|
};
|
|
6373
|
+
var INFO_ICON_SIZE = 16;
|
|
6374
|
+
|
|
6375
|
+
var TitleWithHelpLink = function TitleWithHelpLink(_ref) {
|
|
6376
|
+
var title = _ref.title,
|
|
6377
|
+
helpUrl = _ref.helpUrl;
|
|
6378
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
6379
|
+
className: "flex items-center gap-x-1"
|
|
6380
|
+
}, title, helpUrl && /*#__PURE__*/React.createElement("a", {
|
|
6381
|
+
href: helpUrl,
|
|
6382
|
+
rel: "noreferrer",
|
|
6383
|
+
target: "_blank"
|
|
6384
|
+
}, /*#__PURE__*/React.createElement(Info, {
|
|
6385
|
+
size: INFO_ICON_SIZE
|
|
6386
|
+
})));
|
|
6387
|
+
};
|
|
6326
6388
|
|
|
6327
6389
|
var fieldUrl = function fieldUrl(fieldId) {
|
|
6328
6390
|
return buildUrl(FIELD_URL, {
|
|
@@ -6564,7 +6626,7 @@ var FIELD_KINDS = {
|
|
|
6564
6626
|
single_option: {
|
|
6565
6627
|
value: "single_option",
|
|
6566
6628
|
label: t$1("fields.kinds.singleOption"),
|
|
6567
|
-
group:
|
|
6629
|
+
group: 12
|
|
6568
6630
|
},
|
|
6569
6631
|
multi_option: {
|
|
6570
6632
|
value: "multi_option",
|
|
@@ -6764,6 +6826,7 @@ var FieldForm = function FieldForm(_ref) {
|
|
|
6764
6826
|
className: "w-full space-y-4"
|
|
6765
6827
|
}, /*#__PURE__*/React.createElement(Input$1, {
|
|
6766
6828
|
required: true,
|
|
6829
|
+
"data-cy": "name-text-field",
|
|
6767
6830
|
disabled: isSystem,
|
|
6768
6831
|
label: t("labels.fieldName"),
|
|
6769
6832
|
name: "name",
|
|
@@ -6776,12 +6839,15 @@ var FieldForm = function FieldForm(_ref) {
|
|
|
6776
6839
|
options: kindSelectOptions,
|
|
6777
6840
|
onChange: handleKindChange
|
|
6778
6841
|
}), isAdditionalDataNeeded(chosenKind) && /*#__PURE__*/React.createElement(AdditionalInputs, null), !hideRequiredSwitch && /*#__PURE__*/React.createElement(Label, {
|
|
6779
|
-
className: "flex items-center gap-2"
|
|
6842
|
+
className: "flex items-center gap-2",
|
|
6843
|
+
"data-cy": "is-required-switch-container"
|
|
6780
6844
|
}, /*#__PURE__*/React.createElement(Switch$1, {
|
|
6845
|
+
"data-cy": "is-required-switch",
|
|
6781
6846
|
name: "isRequired"
|
|
6782
6847
|
}), /*#__PURE__*/React.createElement(Typography, {
|
|
6783
6848
|
className: "leading-4",
|
|
6784
6849
|
component: "span",
|
|
6850
|
+
"data-cy": "is-required-switch-label",
|
|
6785
6851
|
style: "body2"
|
|
6786
6852
|
}, t("labels.isRequired"))), children));
|
|
6787
6853
|
};
|
|
@@ -6821,6 +6887,7 @@ var Add = function Add(_ref) {
|
|
|
6821
6887
|
});
|
|
6822
6888
|
};
|
|
6823
6889
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Pane.Header, null, /*#__PURE__*/React.createElement(Typography, {
|
|
6890
|
+
"data-cy": "add-pane-header",
|
|
6824
6891
|
style: "h2"
|
|
6825
6892
|
}, t("titles.addField"))), /*#__PURE__*/React.createElement(Form, {
|
|
6826
6893
|
formikProps: {
|
|
@@ -6893,6 +6960,7 @@ var Edit = function Edit(_ref) {
|
|
|
6893
6960
|
});
|
|
6894
6961
|
};
|
|
6895
6962
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Pane.Header, null, /*#__PURE__*/React.createElement(Typography, {
|
|
6963
|
+
"data-cy": "edit-pane-header",
|
|
6896
6964
|
style: "h2"
|
|
6897
6965
|
}, t("titles.editField"))), isLoading ? /*#__PURE__*/React.createElement(PageLoader, null) : /*#__PURE__*/React.createElement(Form, {
|
|
6898
6966
|
formikProps: {
|
|
@@ -6952,17 +7020,20 @@ var buildDefaultColumns = function buildDefaultColumns(_ref) {
|
|
|
6952
7020
|
}, /*#__PURE__*/React.createElement(Typography, {
|
|
6953
7021
|
style: "body2"
|
|
6954
7022
|
}, name), /*#__PURE__*/React.createElement(Dropdown, {
|
|
6955
|
-
buttonProps: {
|
|
6956
|
-
className: "flex-shrink-0"
|
|
6957
|
-
},
|
|
6958
7023
|
buttonStyle: "text",
|
|
6959
7024
|
icon: MenuHorizontal,
|
|
6960
|
-
strategy: "fixed"
|
|
7025
|
+
strategy: "fixed",
|
|
7026
|
+
buttonProps: {
|
|
7027
|
+
className: "flex-shrink-0",
|
|
7028
|
+
"data-cy": "neeto-fields-options-dropdown"
|
|
7029
|
+
}
|
|
6961
7030
|
}, /*#__PURE__*/React.createElement(Menu, null, /*#__PURE__*/React.createElement(MenuItem.Button, {
|
|
7031
|
+
"data-cy": "edit-menu-item-button",
|
|
6962
7032
|
onClick: function onClick() {
|
|
6963
7033
|
return onEditClick(field);
|
|
6964
7034
|
}
|
|
6965
7035
|
}, t$1("labels.edit")), !field.isSystem && /*#__PURE__*/React.createElement(MenuItem.Button, {
|
|
7036
|
+
"data-cy": "delete-menu-item-button",
|
|
6966
7037
|
onClick: function onClick() {
|
|
6967
7038
|
return onDeleteClick(field);
|
|
6968
7039
|
}
|
|
@@ -6989,14 +7060,18 @@ var renderMenuBarItems = function renderMenuBarItems(_ref2) {
|
|
|
6989
7060
|
isOwnerBased = _ref2.isOwnerBased,
|
|
6990
7061
|
selectedMenu = _ref2.selectedMenu,
|
|
6991
7062
|
handleBlockClick = _ref2.handleBlockClick,
|
|
6992
|
-
nameAliases = _ref2.nameAliases
|
|
7063
|
+
nameAliases = _ref2.nameAliases,
|
|
7064
|
+
title = _ref2.title;
|
|
7065
|
+
title = title.toLocaleLowerCase();
|
|
6993
7066
|
if (isOwnerBased) {
|
|
6994
7067
|
return items.map(function (item) {
|
|
6995
7068
|
return /*#__PURE__*/React.createElement(MenuBar.Item, {
|
|
6996
7069
|
active: selectedMenu === item.id,
|
|
7070
|
+
"data-cy": "menubar-".concat(slugify(item.name), "-menu-item"),
|
|
6997
7071
|
key: item.id,
|
|
6998
7072
|
label: humanize(item.name),
|
|
6999
|
-
description: t$1("messages.
|
|
7073
|
+
description: t$1("messages.manageTitleForResource", {
|
|
7074
|
+
title: title,
|
|
7000
7075
|
resource: humanize(item.name).toLocaleLowerCase()
|
|
7001
7076
|
}),
|
|
7002
7077
|
onClick: handleBlockClick({
|
|
@@ -7006,11 +7081,14 @@ var renderMenuBarItems = function renderMenuBarItems(_ref2) {
|
|
|
7006
7081
|
});
|
|
7007
7082
|
}
|
|
7008
7083
|
return items.length > 1 && items.map(function (item) {
|
|
7084
|
+
var label = nameAliases[item] || humanize(item);
|
|
7009
7085
|
return /*#__PURE__*/React.createElement(MenuBar.Item, {
|
|
7010
7086
|
active: selectedMenu === item,
|
|
7087
|
+
"data-cy": "neeto-fields-".concat(slugify(label), "-menu-item"),
|
|
7011
7088
|
key: item,
|
|
7012
|
-
label:
|
|
7013
|
-
description: t$1("messages.
|
|
7089
|
+
label: label,
|
|
7090
|
+
description: t$1("messages.manageTitleForResource", {
|
|
7091
|
+
title: title,
|
|
7014
7092
|
resource: humanize(item).toLocaleLowerCase()
|
|
7015
7093
|
}),
|
|
7016
7094
|
onClick: handleBlockClick({
|
|
@@ -7026,12 +7104,14 @@ var renderMenuBarFilters = function renderMenuBarFilters(_ref3) {
|
|
|
7026
7104
|
inactiveFieldsCount = _ref3.inactiveFieldsCount,
|
|
7027
7105
|
handleBlockClick = _ref3.handleBlockClick;
|
|
7028
7106
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(MenuBar.SubTitle, null, /*#__PURE__*/React.createElement(Typography, {
|
|
7107
|
+
"data-cy": "menubar-subtitle",
|
|
7029
7108
|
style: "h5",
|
|
7030
7109
|
textTransform: "uppercase",
|
|
7031
7110
|
weight: "bold"
|
|
7032
7111
|
}, t$1("titles.filters"))), /*#__PURE__*/React.createElement(MenuBar.Block, {
|
|
7033
7112
|
active: selectedState === FIELD_STATES.active,
|
|
7034
7113
|
count: activeFieldsCount,
|
|
7114
|
+
"data-cy": "menubar-active-block",
|
|
7035
7115
|
label: fieldStatesTaxonomy.active,
|
|
7036
7116
|
onClick: handleBlockClick({
|
|
7037
7117
|
state: FIELD_STATES.active
|
|
@@ -7039,6 +7119,7 @@ var renderMenuBarFilters = function renderMenuBarFilters(_ref3) {
|
|
|
7039
7119
|
}), /*#__PURE__*/React.createElement(MenuBar.Block, {
|
|
7040
7120
|
active: selectedState === FIELD_STATES.inactive,
|
|
7041
7121
|
count: inactiveFieldsCount,
|
|
7122
|
+
"data-cy": "menubar-inactive-block",
|
|
7042
7123
|
label: fieldStatesTaxonomy.inactive,
|
|
7043
7124
|
onClick: handleBlockClick({
|
|
7044
7125
|
state: FIELD_STATES.inactive
|
|
@@ -7050,19 +7131,41 @@ var getDashBoardTitle = function getDashBoardTitle(_ref4) {
|
|
|
7050
7131
|
var isOwnerBased = _ref4.isOwnerBased,
|
|
7051
7132
|
owners = _ref4.owners,
|
|
7052
7133
|
selectedVal = _ref4.selectedVal,
|
|
7053
|
-
nameAliases = _ref4.nameAliases
|
|
7054
|
-
|
|
7055
|
-
|
|
7056
|
-
|
|
7057
|
-
|
|
7058
|
-
|
|
7134
|
+
nameAliases = _ref4.nameAliases,
|
|
7135
|
+
isSingleResource = _ref4.isSingleResource,
|
|
7136
|
+
showStateFilter = _ref4.showStateFilter,
|
|
7137
|
+
selectedState = _ref4.selectedState,
|
|
7138
|
+
title = _ref4.title;
|
|
7139
|
+
var resource = isOwnerBased ? (_findBy = findBy({
|
|
7140
|
+
id: selectedVal
|
|
7141
|
+
}, owners)) === null || _findBy === void 0 ? void 0 : _findBy.name : nameAliases[selectedVal] || selectedVal;
|
|
7142
|
+
var displayTitle = title;
|
|
7143
|
+
if (showStateFilter && !isSingleResource) {
|
|
7144
|
+
displayTitle = t$1("messages.stateTitleForResource", {
|
|
7145
|
+
state: selectedState,
|
|
7146
|
+
title: title,
|
|
7147
|
+
resource: resource
|
|
7148
|
+
});
|
|
7149
|
+
} else if (showStateFilter && isSingleResource) {
|
|
7150
|
+
displayTitle = "".concat(selectedState, " ").concat(title);
|
|
7151
|
+
} else if (!showStateFilter && !isSingleResource) {
|
|
7152
|
+
displayTitle = t$1("messages.titleForResource", {
|
|
7153
|
+
title: title,
|
|
7154
|
+
resource: resource
|
|
7155
|
+
});
|
|
7156
|
+
}
|
|
7157
|
+
return humanize(displayTitle);
|
|
7059
7158
|
};
|
|
7060
|
-
var renderNoDataHelpText = function renderNoDataHelpText(url) {
|
|
7159
|
+
var renderNoDataHelpText = function renderNoDataHelpText(title, url) {
|
|
7061
7160
|
return /*#__PURE__*/React.createElement(Trans, {
|
|
7062
7161
|
i18nKey: "helpTexts.noData",
|
|
7162
|
+
values: {
|
|
7163
|
+
title: title
|
|
7164
|
+
},
|
|
7063
7165
|
components: {
|
|
7064
7166
|
a: /*#__PURE__*/React.createElement(Link, {
|
|
7065
7167
|
className: "neeto-ui-text-primary-600 underline",
|
|
7168
|
+
"data-cy": "no-data-help-text-link",
|
|
7066
7169
|
target: "_blank",
|
|
7067
7170
|
to: {
|
|
7068
7171
|
pathname: url
|
|
@@ -7091,9 +7194,12 @@ function ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if
|
|
|
7091
7194
|
function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$2(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
7092
7195
|
var useFieldsDashboard = function useFieldsDashboard(_ref) {
|
|
7093
7196
|
var buildColumnData = _ref.buildColumnData,
|
|
7094
|
-
|
|
7197
|
+
isOwnerBased = _ref.isOwnerBased,
|
|
7095
7198
|
fieldStatesTaxonomy = _ref.fieldStatesTaxonomy,
|
|
7096
|
-
nameAliases = _ref.nameAliases
|
|
7199
|
+
nameAliases = _ref.nameAliases,
|
|
7200
|
+
title = _ref.title,
|
|
7201
|
+
resources = _ref.resources,
|
|
7202
|
+
showStateFilter = _ref.showStateFilter;
|
|
7097
7203
|
var _useState = useState(false),
|
|
7098
7204
|
_useState2 = _slicedToArray(_useState, 2),
|
|
7099
7205
|
isPaneOpen = _useState2[0],
|
|
@@ -7118,15 +7224,17 @@ var useFieldsDashboard = function useFieldsDashboard(_ref) {
|
|
|
7118
7224
|
_useState12 = _slicedToArray(_useState11, 2),
|
|
7119
7225
|
searchTerm = _useState12[0],
|
|
7120
7226
|
setSearchTerm = _useState12[1];
|
|
7121
|
-
var _getQueryParams = getQueryParams(),
|
|
7122
|
-
resource = _getQueryParams.resource,
|
|
7123
|
-
state = _getQueryParams.state;
|
|
7124
|
-
var ownerId = showOwnersInMenu ? resource : undefined;
|
|
7125
7227
|
var debouncedSearchTerm = useDebounce(searchTerm.trim());
|
|
7126
7228
|
var history = useHistory();
|
|
7127
7229
|
var _useTranslation = useTranslation(),
|
|
7128
7230
|
t = _useTranslation.t;
|
|
7129
|
-
var
|
|
7231
|
+
var _getQueryParams = getQueryParams(),
|
|
7232
|
+
resource = _getQueryParams.resource,
|
|
7233
|
+
state = _getQueryParams.state;
|
|
7234
|
+
var ownerId = isOwnerBased ? resource : undefined;
|
|
7235
|
+
var _useFetchConfigs = useFetchConfigs({
|
|
7236
|
+
enabled: !resources
|
|
7237
|
+
}),
|
|
7130
7238
|
_useFetchConfigs$data = _useFetchConfigs.data,
|
|
7131
7239
|
_useFetchConfigs$data2 = _useFetchConfigs$data === void 0 ? {} : _useFetchConfigs$data,
|
|
7132
7240
|
_useFetchConfigs$data3 = _useFetchConfigs$data2.owners,
|
|
@@ -7135,7 +7243,7 @@ var useFieldsDashboard = function useFieldsDashboard(_ref) {
|
|
|
7135
7243
|
resourceTypes = _useFetchConfigs$data4 === void 0 ? [] : _useFetchConfigs$data4,
|
|
7136
7244
|
isConfigsLoading = _useFetchConfigs.isLoading;
|
|
7137
7245
|
var fieldParams = {
|
|
7138
|
-
resourceType: !
|
|
7246
|
+
resourceType: !isOwnerBased ? resource : undefined,
|
|
7139
7247
|
ownerId: ownerId,
|
|
7140
7248
|
state: state || FIELD_STATES.active,
|
|
7141
7249
|
searchTerm: debouncedSearchTerm
|
|
@@ -7211,14 +7319,15 @@ var useFieldsDashboard = function useFieldsDashboard(_ref) {
|
|
|
7211
7319
|
state: state
|
|
7212
7320
|
}, params)));
|
|
7213
7321
|
};
|
|
7322
|
+
var menuItems = resources || (isOwnerBased ? owners : resourceTypes);
|
|
7214
7323
|
var handleURLWithDefaultValues = function handleURLWithDefaultValues() {
|
|
7215
7324
|
var queryParams = {
|
|
7216
7325
|
resource: resource,
|
|
7217
7326
|
state: state
|
|
7218
7327
|
};
|
|
7219
7328
|
if (!isConfigsLoading && isNil(resource)) {
|
|
7220
|
-
var
|
|
7221
|
-
queryParams.resource =
|
|
7329
|
+
var _menuItems$;
|
|
7330
|
+
queryParams.resource = isOwnerBased ? menuItems === null || menuItems === void 0 ? void 0 : (_menuItems$ = menuItems[0]) === null || _menuItems$ === void 0 ? void 0 : _menuItems$.id : menuItems === null || menuItems === void 0 ? void 0 : menuItems[0];
|
|
7222
7331
|
}
|
|
7223
7332
|
if (!isConfigsLoading && isNil(state)) {
|
|
7224
7333
|
queryParams.state = FIELD_STATES.active;
|
|
@@ -7227,7 +7336,6 @@ var useFieldsDashboard = function useFieldsDashboard(_ref) {
|
|
|
7227
7336
|
history.replace(buildUrl("", queryParams));
|
|
7228
7337
|
}
|
|
7229
7338
|
};
|
|
7230
|
-
var menuItems = showOwnersInMenu ? owners : resourceTypes;
|
|
7231
7339
|
var isScreenLoading = isFieldsLoading || isConfigsLoading;
|
|
7232
7340
|
var showCountSubheader = count > 0;
|
|
7233
7341
|
var searchProps = {
|
|
@@ -7237,6 +7345,20 @@ var useFieldsDashboard = function useFieldsDashboard(_ref) {
|
|
|
7237
7345
|
value: searchTerm,
|
|
7238
7346
|
placeholder: t("placeholders.searchFields")
|
|
7239
7347
|
};
|
|
7348
|
+
var isSingleResource = menuItems.length === 1;
|
|
7349
|
+
var isMenuBarNeeded = showStateFilter || !isSingleResource;
|
|
7350
|
+
var headerDisplayTitle = useMemo(function () {
|
|
7351
|
+
return getDashBoardTitle({
|
|
7352
|
+
isOwnerBased: isOwnerBased,
|
|
7353
|
+
owners: menuItems,
|
|
7354
|
+
selectedVal: resource,
|
|
7355
|
+
nameAliases: nameAliases,
|
|
7356
|
+
showStateFilter: showStateFilter,
|
|
7357
|
+
selectedState: state,
|
|
7358
|
+
isSingleResource: isSingleResource,
|
|
7359
|
+
title: title
|
|
7360
|
+
});
|
|
7361
|
+
}, [resource, state, isSingleResource, menuItems]);
|
|
7240
7362
|
var menuBarFilters = useMemo(function () {
|
|
7241
7363
|
return renderMenuBarFilters({
|
|
7242
7364
|
selectedState: state,
|
|
@@ -7245,19 +7367,20 @@ var useFieldsDashboard = function useFieldsDashboard(_ref) {
|
|
|
7245
7367
|
inactiveFieldsCount: inactiveFieldsCount,
|
|
7246
7368
|
handleBlockClick: handleBlockClick
|
|
7247
7369
|
});
|
|
7248
|
-
}, [activeFieldsCount, inactiveFieldsCount
|
|
7370
|
+
}, [activeFieldsCount, inactiveFieldsCount]);
|
|
7249
7371
|
var menuBarItems = useMemo(function () {
|
|
7250
7372
|
return renderMenuBarItems({
|
|
7251
|
-
isOwnerBased:
|
|
7373
|
+
isOwnerBased: isOwnerBased,
|
|
7252
7374
|
items: menuItems,
|
|
7253
7375
|
selectedMenu: resource,
|
|
7254
7376
|
handleBlockClick: handleBlockClick,
|
|
7255
|
-
nameAliases: nameAliases
|
|
7377
|
+
nameAliases: nameAliases,
|
|
7378
|
+
title: title
|
|
7256
7379
|
});
|
|
7257
7380
|
}, [menuItems, resource]);
|
|
7258
7381
|
useEffect(function () {
|
|
7259
7382
|
handleURLWithDefaultValues();
|
|
7260
|
-
}, [isConfigsLoading]);
|
|
7383
|
+
}, [isConfigsLoading, resources]);
|
|
7261
7384
|
return {
|
|
7262
7385
|
isPaneOpen: isPaneOpen,
|
|
7263
7386
|
setIsPaneOpen: setIsPaneOpen,
|
|
@@ -7267,9 +7390,7 @@ var useFieldsDashboard = function useFieldsDashboard(_ref) {
|
|
|
7267
7390
|
isReorderPaneOpen: isReorderPaneOpen,
|
|
7268
7391
|
setIsReorderPaneOpen: setIsReorderPaneOpen,
|
|
7269
7392
|
fields: fields,
|
|
7270
|
-
owners: owners,
|
|
7271
7393
|
count: count,
|
|
7272
|
-
menuItems: menuItems,
|
|
7273
7394
|
columnData: columnData,
|
|
7274
7395
|
selectedField: selectedField,
|
|
7275
7396
|
selectedState: state,
|
|
@@ -7280,6 +7401,7 @@ var useFieldsDashboard = function useFieldsDashboard(_ref) {
|
|
|
7280
7401
|
isDeleting: isDeleting,
|
|
7281
7402
|
isScreenLoading: isScreenLoading,
|
|
7282
7403
|
isConfigsLoading: isConfigsLoading,
|
|
7404
|
+
isMenuBarNeeded: isMenuBarNeeded,
|
|
7283
7405
|
showCountSubheader: showCountSubheader,
|
|
7284
7406
|
handleDelete: handleDelete,
|
|
7285
7407
|
handleAlertClose: handleAlertClose,
|
|
@@ -7288,7 +7410,8 @@ var useFieldsDashboard = function useFieldsDashboard(_ref) {
|
|
|
7288
7410
|
searchProps: searchProps,
|
|
7289
7411
|
menuBarFilters: menuBarFilters,
|
|
7290
7412
|
menuBarItems: menuBarItems,
|
|
7291
|
-
allFields: allFields
|
|
7413
|
+
allFields: allFields,
|
|
7414
|
+
headerDisplayTitle: headerDisplayTitle
|
|
7292
7415
|
};
|
|
7293
7416
|
};
|
|
7294
7417
|
|
|
@@ -7298,16 +7421,20 @@ var FieldsTable = function FieldsTable(_ref) {
|
|
|
7298
7421
|
rowData = _ref.rowData,
|
|
7299
7422
|
columnData = _ref.columnData,
|
|
7300
7423
|
setIsPaneOpen = _ref.setIsPaneOpen,
|
|
7301
|
-
helpDocUrl = _ref.helpDocUrl
|
|
7424
|
+
helpDocUrl = _ref.helpDocUrl,
|
|
7425
|
+
title = _ref.title;
|
|
7302
7426
|
var _useTranslation = useTranslation(),
|
|
7303
7427
|
t = _useTranslation.t;
|
|
7304
7428
|
var showNoDataScreen = !isLoading && isEmpty(rowData);
|
|
7429
|
+
title = title.toLocaleLowerCase();
|
|
7305
7430
|
return /*#__PURE__*/React.createElement(TableWrapper, null, showNoDataScreen ? /*#__PURE__*/React.createElement("div", {
|
|
7306
7431
|
className: "flex h-full w-full items-center justify-center"
|
|
7307
7432
|
}, /*#__PURE__*/React.createElement(NoData, _extends({}, helpDocUrl && {
|
|
7308
|
-
helpText: renderNoDataHelpText(helpDocUrl)
|
|
7433
|
+
helpText: renderNoDataHelpText(title, helpDocUrl)
|
|
7309
7434
|
}, {
|
|
7310
|
-
title: t("messages.noFields"
|
|
7435
|
+
title: t("messages.noFields", {
|
|
7436
|
+
title: title
|
|
7437
|
+
}),
|
|
7311
7438
|
primaryButtonProps: {
|
|
7312
7439
|
label: t("labels.addField"),
|
|
7313
7440
|
onClick: function onClick() {
|
|
@@ -11582,12 +11709,15 @@ var FieldBlock = function FieldBlock(_ref) {
|
|
|
11582
11709
|
ref: setNodeRef,
|
|
11583
11710
|
style: style
|
|
11584
11711
|
}, attributes, listeners, {
|
|
11585
|
-
className: "neeto-ui-text-gray-800 mb-3 flex items-center space-x-4 font-medium"
|
|
11712
|
+
className: "neeto-ui-text-gray-800 mb-3 flex items-center space-x-4 font-medium",
|
|
11713
|
+
"data-cy": "reorder-field-block"
|
|
11586
11714
|
}), /*#__PURE__*/React.createElement("div", {
|
|
11587
11715
|
className: "neeto-ui-bg-gray-100 neeto-ui-text-gray-700 neeto-ui-rounded-sm flex h-6 w-6 flex-shrink-0 items-center justify-center p-1"
|
|
11588
11716
|
}, index - systemFieldsCount + 1), /*#__PURE__*/React.createElement("div", {
|
|
11589
11717
|
className: "neeto-ui-border-gray-400 neeto-ui-bg-white neeto-ui-rounded neeto-ui-shadow-xs flex w-96 items-center space-x-4 border border-solid p-3"
|
|
11590
|
-
}, /*#__PURE__*/React.createElement(Reorder, null), /*#__PURE__*/React.createElement("div",
|
|
11718
|
+
}, /*#__PURE__*/React.createElement(Reorder, null), /*#__PURE__*/React.createElement("div", {
|
|
11719
|
+
"data-cy": "reorder-field-block-name"
|
|
11720
|
+
}, field.name)));
|
|
11591
11721
|
};
|
|
11592
11722
|
var FieldBlock$1 = /*#__PURE__*/React.memo(FieldBlock);
|
|
11593
11723
|
|
|
@@ -11638,10 +11768,12 @@ var ReorderPane = function ReorderPane(_ref) {
|
|
|
11638
11768
|
isOpen: isOpen,
|
|
11639
11769
|
onClose: onClose
|
|
11640
11770
|
}, /*#__PURE__*/React.createElement(Pane.Header, null, /*#__PURE__*/React.createElement(Typography, {
|
|
11771
|
+
"data-cy": "reorder-pane-header",
|
|
11641
11772
|
style: "h2",
|
|
11642
11773
|
weight: "semibold"
|
|
11643
11774
|
}, t("titles.reorderFields"))), /*#__PURE__*/React.createElement(Pane.Body, null, /*#__PURE__*/React.createElement(Typography, {
|
|
11644
11775
|
className: "mb-3",
|
|
11776
|
+
"data-cy": "reorder-pane-message",
|
|
11645
11777
|
style: "body2"
|
|
11646
11778
|
}, t("messages.reorderFields")), /*#__PURE__*/React.createElement("div", {
|
|
11647
11779
|
className: "flex flex-col items-center"
|
|
@@ -11662,11 +11794,13 @@ var ReorderPane = function ReorderPane(_ref) {
|
|
|
11662
11794
|
}))))), /*#__PURE__*/React.createElement(Pane.Footer, {
|
|
11663
11795
|
className: "flex items-center space-x-2"
|
|
11664
11796
|
}, /*#__PURE__*/React.createElement(Button$1, {
|
|
11797
|
+
"data-cy": "save-changes-button",
|
|
11665
11798
|
disabled: initialStateRef.current === fields,
|
|
11666
11799
|
label: t("labels.saveChanges"),
|
|
11667
11800
|
loading: isSubmitting,
|
|
11668
11801
|
onClick: handleReorderSave
|
|
11669
11802
|
}), /*#__PURE__*/React.createElement(Button$1, {
|
|
11803
|
+
"data-cy": "cancel-button",
|
|
11670
11804
|
label: t("labels.cancel"),
|
|
11671
11805
|
style: "text",
|
|
11672
11806
|
onClick: onClose
|
|
@@ -11679,7 +11813,7 @@ var FieldsDashboard = function FieldsDashboard(_ref) {
|
|
|
11679
11813
|
var _ref$rowData = _ref.rowData,
|
|
11680
11814
|
rowData = _ref$rowData === void 0 ? [] : _ref$rowData,
|
|
11681
11815
|
_ref$showOwnersInMenu = _ref.showOwnersInMenu,
|
|
11682
|
-
|
|
11816
|
+
isOwnerBased = _ref$showOwnersInMenu === void 0 ? false : _ref$showOwnersInMenu,
|
|
11683
11817
|
_ref$resourceType = _ref.resourceType,
|
|
11684
11818
|
resourceType = _ref$resourceType === void 0 ? "" : _ref$resourceType,
|
|
11685
11819
|
_ref$allowedKinds = _ref.allowedKinds,
|
|
@@ -11699,14 +11833,20 @@ var FieldsDashboard = function FieldsDashboard(_ref) {
|
|
|
11699
11833
|
fieldStatesTaxonomy = _ref$fieldStatesTaxon === void 0 ? DEFAULT_FIELD_STATE_TAXONOMY : _ref$fieldStatesTaxon,
|
|
11700
11834
|
helpDocUrl = _ref.helpDocUrl,
|
|
11701
11835
|
_ref$nameAliases = _ref.nameAliases,
|
|
11702
|
-
nameAliases = _ref$nameAliases === void 0 ? {} : _ref$nameAliases
|
|
11836
|
+
nameAliases = _ref$nameAliases === void 0 ? {} : _ref$nameAliases,
|
|
11837
|
+
headerTitle = _ref.headerTitle,
|
|
11838
|
+
resources = _ref.resources;
|
|
11703
11839
|
var _useTranslation = useTranslation(),
|
|
11704
11840
|
t = _useTranslation.t;
|
|
11841
|
+
var title = capitalize$1(headerTitle || t("titles.field", PLURAL));
|
|
11705
11842
|
var _useFieldsDashboard = useFieldsDashboard({
|
|
11706
11843
|
buildColumnData: buildColumnData,
|
|
11707
|
-
|
|
11844
|
+
isOwnerBased: isOwnerBased,
|
|
11708
11845
|
fieldStatesTaxonomy: fieldStatesTaxonomy,
|
|
11709
|
-
nameAliases: nameAliases
|
|
11846
|
+
nameAliases: nameAliases,
|
|
11847
|
+
title: title,
|
|
11848
|
+
resources: resources,
|
|
11849
|
+
showStateFilter: showStateFilter
|
|
11710
11850
|
}),
|
|
11711
11851
|
isPaneOpen = _useFieldsDashboard.isPaneOpen,
|
|
11712
11852
|
setIsPaneOpen = _useFieldsDashboard.setIsPaneOpen,
|
|
@@ -11716,9 +11856,7 @@ var FieldsDashboard = function FieldsDashboard(_ref) {
|
|
|
11716
11856
|
isReorderPaneOpen = _useFieldsDashboard.isReorderPaneOpen,
|
|
11717
11857
|
setIsReorderPaneOpen = _useFieldsDashboard.setIsReorderPaneOpen,
|
|
11718
11858
|
fields = _useFieldsDashboard.fields,
|
|
11719
|
-
owners = _useFieldsDashboard.owners,
|
|
11720
11859
|
count = _useFieldsDashboard.count,
|
|
11721
|
-
menuItems = _useFieldsDashboard.menuItems,
|
|
11722
11860
|
columnData = _useFieldsDashboard.columnData,
|
|
11723
11861
|
selectedField = _useFieldsDashboard.selectedField,
|
|
11724
11862
|
selectedState = _useFieldsDashboard.selectedState,
|
|
@@ -11728,6 +11866,7 @@ var FieldsDashboard = function FieldsDashboard(_ref) {
|
|
|
11728
11866
|
isDeleting = _useFieldsDashboard.isDeleting,
|
|
11729
11867
|
isScreenLoading = _useFieldsDashboard.isScreenLoading,
|
|
11730
11868
|
isConfigsLoading = _useFieldsDashboard.isConfigsLoading,
|
|
11869
|
+
isMenuBarNeeded = _useFieldsDashboard.isMenuBarNeeded,
|
|
11731
11870
|
showCountSubheader = _useFieldsDashboard.showCountSubheader,
|
|
11732
11871
|
handleDelete = _useFieldsDashboard.handleDelete,
|
|
11733
11872
|
handleAlertClose = _useFieldsDashboard.handleAlertClose,
|
|
@@ -11736,11 +11875,11 @@ var FieldsDashboard = function FieldsDashboard(_ref) {
|
|
|
11736
11875
|
searchProps = _useFieldsDashboard.searchProps,
|
|
11737
11876
|
menuBarFilters = _useFieldsDashboard.menuBarFilters,
|
|
11738
11877
|
menuBarItems = _useFieldsDashboard.menuBarItems,
|
|
11739
|
-
allFields = _useFieldsDashboard.allFields
|
|
11740
|
-
|
|
11878
|
+
allFields = _useFieldsDashboard.allFields,
|
|
11879
|
+
headerDisplayTitle = _useFieldsDashboard.headerDisplayTitle;
|
|
11741
11880
|
return /*#__PURE__*/React.createElement(React.Fragment, null, isMenuBarNeeded && /*#__PURE__*/React.createElement(MenuBar, {
|
|
11742
11881
|
showMenu: isMenuBarOpen,
|
|
11743
|
-
title:
|
|
11882
|
+
title: title
|
|
11744
11883
|
}, isConfigsLoading ? /*#__PURE__*/React.createElement("div", {
|
|
11745
11884
|
className: "flex items-center justify-center"
|
|
11746
11885
|
}, /*#__PURE__*/React.createElement(Spinner, null)) : menuBarItems, showStateFilter && menuBarFilters), isScreenLoading && isEmpty(fields) ? /*#__PURE__*/React.createElement("div", {
|
|
@@ -11753,6 +11892,7 @@ var FieldsDashboard = function FieldsDashboard(_ref) {
|
|
|
11753
11892
|
}
|
|
11754
11893
|
}, {
|
|
11755
11894
|
actionBlock: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Button$1, {
|
|
11895
|
+
"data-cy": "neeto-fields-reorder-button",
|
|
11756
11896
|
label: t("labels.reorder"),
|
|
11757
11897
|
style: "secondary",
|
|
11758
11898
|
disabled: selectedState === FIELD_STATES.inactive || !existsBy({
|
|
@@ -11763,45 +11903,46 @@ var FieldsDashboard = function FieldsDashboard(_ref) {
|
|
|
11763
11903
|
return setIsReorderPaneOpen(true);
|
|
11764
11904
|
}
|
|
11765
11905
|
}), /*#__PURE__*/React.createElement(Button$1, {
|
|
11906
|
+
"data-cy": "neeto-fields-add-button",
|
|
11766
11907
|
label: t("labels.addField"),
|
|
11767
11908
|
onClick: function onClick() {
|
|
11768
11909
|
return setIsPaneOpen(true);
|
|
11769
11910
|
}
|
|
11770
11911
|
})),
|
|
11771
11912
|
searchProps: searchProps,
|
|
11772
|
-
title:
|
|
11773
|
-
|
|
11774
|
-
|
|
11775
|
-
|
|
11776
|
-
nameAliases: nameAliases
|
|
11777
|
-
}))
|
|
11913
|
+
title: /*#__PURE__*/React.createElement(TitleWithHelpLink, {
|
|
11914
|
+
helpUrl: helpDocUrl,
|
|
11915
|
+
title: headerDisplayTitle
|
|
11916
|
+
})
|
|
11778
11917
|
})), showCountSubheader && /*#__PURE__*/React.createElement(SubHeader, {
|
|
11779
11918
|
leftActionBlock: /*#__PURE__*/React.createElement(Typography, {
|
|
11780
11919
|
className: "mr-4 font-semibold",
|
|
11920
|
+
"data-cy": "neeto-fields-subheader-text",
|
|
11781
11921
|
style: "h4"
|
|
11782
|
-
},
|
|
11922
|
+
}, "".concat(count, " "), t("titles.field", count > 1 ? PLURAL : SINGULAR).toLocaleLowerCase())
|
|
11783
11923
|
}), /*#__PURE__*/React.createElement(FieldsTable, {
|
|
11784
11924
|
columnData: columnData,
|
|
11785
11925
|
helpDocUrl: helpDocUrl,
|
|
11786
11926
|
isLoading: isFieldsFetching || isFieldsLoading,
|
|
11787
11927
|
rowData: isEmpty(rowData) ? fields : rowData,
|
|
11788
11928
|
setIsPaneOpen: setIsPaneOpen,
|
|
11789
|
-
totalCount: count
|
|
11929
|
+
totalCount: count,
|
|
11930
|
+
title: title
|
|
11790
11931
|
}), /*#__PURE__*/React.createElement(FieldsPane, {
|
|
11791
11932
|
additionalValidations: paneProps === null || paneProps === void 0 ? void 0 : paneProps.validations,
|
|
11792
11933
|
allowedKinds: allowedKinds,
|
|
11793
11934
|
hideRequiredSwitch: paneProps === null || paneProps === void 0 ? void 0 : paneProps.hideRequiredSwitch,
|
|
11794
11935
|
initialValues: paneProps === null || paneProps === void 0 ? void 0 : paneProps.initialValues,
|
|
11795
11936
|
isOpen: isPaneOpen,
|
|
11796
|
-
ownerId:
|
|
11797
|
-
resourceType:
|
|
11937
|
+
ownerId: isOwnerBased ? selectedMenu : "",
|
|
11938
|
+
resourceType: isOwnerBased ? resourceType : selectedMenu //Currently we support only one resource type when fields are classified based on owners
|
|
11798
11939
|
,
|
|
11799
11940
|
selectedField: selectedField,
|
|
11800
11941
|
onClose: handleClosePane,
|
|
11801
11942
|
onMutationSuccess: paneProps === null || paneProps === void 0 ? void 0 : paneProps.onMutationSuccess
|
|
11802
11943
|
}, paneProps === null || paneProps === void 0 ? void 0 : paneProps.children)), /*#__PURE__*/React.createElement(ReorderPane, {
|
|
11803
11944
|
isOpen: isReorderPaneOpen,
|
|
11804
|
-
ownerId:
|
|
11945
|
+
ownerId: isOwnerBased ? selectedMenu : "",
|
|
11805
11946
|
onClose: handleReorderPaneClose,
|
|
11806
11947
|
allFields: allFields
|
|
11807
11948
|
}), /*#__PURE__*/React.createElement(Alert, {
|
|
@@ -11894,7 +12035,11 @@ var FieldValueInputWrapper = function FieldValueInputWrapper(_ref) {
|
|
|
11894
12035
|
scrollToErrorField: true,
|
|
11895
12036
|
className: classnames("flex w-full", className),
|
|
11896
12037
|
formikProps: {
|
|
11897
|
-
initialValues: getInitialFieldValue(
|
|
12038
|
+
initialValues: getInitialFieldValue({
|
|
12039
|
+
field: field,
|
|
12040
|
+
fieldValues: fieldValues,
|
|
12041
|
+
isIndividualFieldForm: true
|
|
12042
|
+
}),
|
|
11898
12043
|
onSubmit: onSubmit,
|
|
11899
12044
|
enableReinitialize: true
|
|
11900
12045
|
}
|