@bigbinary/neeto-fields-frontend 1.1.3 → 1.1.4
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 +158 -61
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.js +160 -63
- 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,10 @@
|
|
|
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';
|
|
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
4
|
import { values, map, isNotNil, isNil, pluck, clone as clone$1, pipe, mergeAll, omit, prop, pick, isEmpty, assoc, any, not, head } from 'ramda';
|
|
5
5
|
import { useFormikContext, useField, FieldArray } from 'formik';
|
|
6
6
|
import * as yup from 'yup';
|
|
7
|
-
import { Check, Delete, MenuHorizontal, Reorder } from '@bigbinary/neeto-icons';
|
|
7
|
+
import { Check, Info, Delete, MenuHorizontal, Reorder } from '@bigbinary/neeto-icons';
|
|
8
8
|
import { Button, ActionBlock, Input as Input$1, Select as Select$1, Switch as Switch$1, Form } from '@bigbinary/neetoui/formik';
|
|
9
9
|
import Container from '@bigbinary/neeto-molecules/Container';
|
|
10
10
|
import Header from '@bigbinary/neeto-molecules/Header';
|
|
@@ -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,
|
|
@@ -6323,6 +6326,21 @@ var SINGULAR = {
|
|
|
6323
6326
|
var PLURAL = {
|
|
6324
6327
|
count: 2
|
|
6325
6328
|
};
|
|
6329
|
+
var INFO_ICON_SIZE = 16;
|
|
6330
|
+
|
|
6331
|
+
var TitleWithHelpLink = function TitleWithHelpLink(_ref) {
|
|
6332
|
+
var title = _ref.title,
|
|
6333
|
+
helpUrl = _ref.helpUrl;
|
|
6334
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
6335
|
+
className: "flex items-center gap-x-1"
|
|
6336
|
+
}, title, helpUrl && /*#__PURE__*/React.createElement("a", {
|
|
6337
|
+
href: helpUrl,
|
|
6338
|
+
rel: "noreferrer",
|
|
6339
|
+
target: "_blank"
|
|
6340
|
+
}, /*#__PURE__*/React.createElement(Info, {
|
|
6341
|
+
size: INFO_ICON_SIZE
|
|
6342
|
+
})));
|
|
6343
|
+
};
|
|
6326
6344
|
|
|
6327
6345
|
var fieldUrl = function fieldUrl(fieldId) {
|
|
6328
6346
|
return buildUrl(FIELD_URL, {
|
|
@@ -6764,6 +6782,7 @@ var FieldForm = function FieldForm(_ref) {
|
|
|
6764
6782
|
className: "w-full space-y-4"
|
|
6765
6783
|
}, /*#__PURE__*/React.createElement(Input$1, {
|
|
6766
6784
|
required: true,
|
|
6785
|
+
"data-cy": "name-text-field",
|
|
6767
6786
|
disabled: isSystem,
|
|
6768
6787
|
label: t("labels.fieldName"),
|
|
6769
6788
|
name: "name",
|
|
@@ -6776,12 +6795,15 @@ var FieldForm = function FieldForm(_ref) {
|
|
|
6776
6795
|
options: kindSelectOptions,
|
|
6777
6796
|
onChange: handleKindChange
|
|
6778
6797
|
}), isAdditionalDataNeeded(chosenKind) && /*#__PURE__*/React.createElement(AdditionalInputs, null), !hideRequiredSwitch && /*#__PURE__*/React.createElement(Label, {
|
|
6779
|
-
className: "flex items-center gap-2"
|
|
6798
|
+
className: "flex items-center gap-2",
|
|
6799
|
+
"data-cy": "is-required-switch-container"
|
|
6780
6800
|
}, /*#__PURE__*/React.createElement(Switch$1, {
|
|
6801
|
+
"data-cy": "is-required-switch",
|
|
6781
6802
|
name: "isRequired"
|
|
6782
6803
|
}), /*#__PURE__*/React.createElement(Typography, {
|
|
6783
6804
|
className: "leading-4",
|
|
6784
6805
|
component: "span",
|
|
6806
|
+
"data-cy": "is-required-switch-label",
|
|
6785
6807
|
style: "body2"
|
|
6786
6808
|
}, t("labels.isRequired"))), children));
|
|
6787
6809
|
};
|
|
@@ -6821,6 +6843,7 @@ var Add = function Add(_ref) {
|
|
|
6821
6843
|
});
|
|
6822
6844
|
};
|
|
6823
6845
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Pane.Header, null, /*#__PURE__*/React.createElement(Typography, {
|
|
6846
|
+
"data-cy": "add-pane-header",
|
|
6824
6847
|
style: "h2"
|
|
6825
6848
|
}, t("titles.addField"))), /*#__PURE__*/React.createElement(Form, {
|
|
6826
6849
|
formikProps: {
|
|
@@ -6893,6 +6916,7 @@ var Edit = function Edit(_ref) {
|
|
|
6893
6916
|
});
|
|
6894
6917
|
};
|
|
6895
6918
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Pane.Header, null, /*#__PURE__*/React.createElement(Typography, {
|
|
6919
|
+
"data-cy": "edit-pane-header",
|
|
6896
6920
|
style: "h2"
|
|
6897
6921
|
}, t("titles.editField"))), isLoading ? /*#__PURE__*/React.createElement(PageLoader, null) : /*#__PURE__*/React.createElement(Form, {
|
|
6898
6922
|
formikProps: {
|
|
@@ -6952,17 +6976,20 @@ var buildDefaultColumns = function buildDefaultColumns(_ref) {
|
|
|
6952
6976
|
}, /*#__PURE__*/React.createElement(Typography, {
|
|
6953
6977
|
style: "body2"
|
|
6954
6978
|
}, name), /*#__PURE__*/React.createElement(Dropdown, {
|
|
6955
|
-
buttonProps: {
|
|
6956
|
-
className: "flex-shrink-0"
|
|
6957
|
-
},
|
|
6958
6979
|
buttonStyle: "text",
|
|
6959
6980
|
icon: MenuHorizontal,
|
|
6960
|
-
strategy: "fixed"
|
|
6981
|
+
strategy: "fixed",
|
|
6982
|
+
buttonProps: {
|
|
6983
|
+
className: "flex-shrink-0",
|
|
6984
|
+
"data-cy": "neeto-fields-options-dropdown"
|
|
6985
|
+
}
|
|
6961
6986
|
}, /*#__PURE__*/React.createElement(Menu, null, /*#__PURE__*/React.createElement(MenuItem.Button, {
|
|
6987
|
+
"data-cy": "edit-menu-item-button",
|
|
6962
6988
|
onClick: function onClick() {
|
|
6963
6989
|
return onEditClick(field);
|
|
6964
6990
|
}
|
|
6965
6991
|
}, t$1("labels.edit")), !field.isSystem && /*#__PURE__*/React.createElement(MenuItem.Button, {
|
|
6992
|
+
"data-cy": "delete-menu-item-button",
|
|
6966
6993
|
onClick: function onClick() {
|
|
6967
6994
|
return onDeleteClick(field);
|
|
6968
6995
|
}
|
|
@@ -6989,14 +7016,18 @@ var renderMenuBarItems = function renderMenuBarItems(_ref2) {
|
|
|
6989
7016
|
isOwnerBased = _ref2.isOwnerBased,
|
|
6990
7017
|
selectedMenu = _ref2.selectedMenu,
|
|
6991
7018
|
handleBlockClick = _ref2.handleBlockClick,
|
|
6992
|
-
nameAliases = _ref2.nameAliases
|
|
7019
|
+
nameAliases = _ref2.nameAliases,
|
|
7020
|
+
title = _ref2.title;
|
|
7021
|
+
title = title.toLocaleLowerCase();
|
|
6993
7022
|
if (isOwnerBased) {
|
|
6994
7023
|
return items.map(function (item) {
|
|
6995
7024
|
return /*#__PURE__*/React.createElement(MenuBar.Item, {
|
|
6996
7025
|
active: selectedMenu === item.id,
|
|
7026
|
+
"data-cy": "menubar-".concat(slugify(item.name), "-menu-item"),
|
|
6997
7027
|
key: item.id,
|
|
6998
7028
|
label: humanize(item.name),
|
|
6999
|
-
description: t$1("messages.
|
|
7029
|
+
description: t$1("messages.manageTitleForResource", {
|
|
7030
|
+
title: title,
|
|
7000
7031
|
resource: humanize(item.name).toLocaleLowerCase()
|
|
7001
7032
|
}),
|
|
7002
7033
|
onClick: handleBlockClick({
|
|
@@ -7006,11 +7037,14 @@ var renderMenuBarItems = function renderMenuBarItems(_ref2) {
|
|
|
7006
7037
|
});
|
|
7007
7038
|
}
|
|
7008
7039
|
return items.length > 1 && items.map(function (item) {
|
|
7040
|
+
var label = nameAliases[item] || humanize(item);
|
|
7009
7041
|
return /*#__PURE__*/React.createElement(MenuBar.Item, {
|
|
7010
7042
|
active: selectedMenu === item,
|
|
7043
|
+
"data-cy": "neeto-fields-".concat(slugify(label), "-menu-item"),
|
|
7011
7044
|
key: item,
|
|
7012
|
-
label:
|
|
7013
|
-
description: t$1("messages.
|
|
7045
|
+
label: label,
|
|
7046
|
+
description: t$1("messages.manageTitleForResource", {
|
|
7047
|
+
title: title,
|
|
7014
7048
|
resource: humanize(item).toLocaleLowerCase()
|
|
7015
7049
|
}),
|
|
7016
7050
|
onClick: handleBlockClick({
|
|
@@ -7026,12 +7060,14 @@ var renderMenuBarFilters = function renderMenuBarFilters(_ref3) {
|
|
|
7026
7060
|
inactiveFieldsCount = _ref3.inactiveFieldsCount,
|
|
7027
7061
|
handleBlockClick = _ref3.handleBlockClick;
|
|
7028
7062
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(MenuBar.SubTitle, null, /*#__PURE__*/React.createElement(Typography, {
|
|
7063
|
+
"data-cy": "menubar-subtitle",
|
|
7029
7064
|
style: "h5",
|
|
7030
7065
|
textTransform: "uppercase",
|
|
7031
7066
|
weight: "bold"
|
|
7032
7067
|
}, t$1("titles.filters"))), /*#__PURE__*/React.createElement(MenuBar.Block, {
|
|
7033
7068
|
active: selectedState === FIELD_STATES.active,
|
|
7034
7069
|
count: activeFieldsCount,
|
|
7070
|
+
"data-cy": "menubar-active-block",
|
|
7035
7071
|
label: fieldStatesTaxonomy.active,
|
|
7036
7072
|
onClick: handleBlockClick({
|
|
7037
7073
|
state: FIELD_STATES.active
|
|
@@ -7039,6 +7075,7 @@ var renderMenuBarFilters = function renderMenuBarFilters(_ref3) {
|
|
|
7039
7075
|
}), /*#__PURE__*/React.createElement(MenuBar.Block, {
|
|
7040
7076
|
active: selectedState === FIELD_STATES.inactive,
|
|
7041
7077
|
count: inactiveFieldsCount,
|
|
7078
|
+
"data-cy": "menubar-inactive-block",
|
|
7042
7079
|
label: fieldStatesTaxonomy.inactive,
|
|
7043
7080
|
onClick: handleBlockClick({
|
|
7044
7081
|
state: FIELD_STATES.inactive
|
|
@@ -7050,19 +7087,41 @@ var getDashBoardTitle = function getDashBoardTitle(_ref4) {
|
|
|
7050
7087
|
var isOwnerBased = _ref4.isOwnerBased,
|
|
7051
7088
|
owners = _ref4.owners,
|
|
7052
7089
|
selectedVal = _ref4.selectedVal,
|
|
7053
|
-
nameAliases = _ref4.nameAliases
|
|
7054
|
-
|
|
7055
|
-
|
|
7056
|
-
|
|
7057
|
-
|
|
7058
|
-
|
|
7090
|
+
nameAliases = _ref4.nameAliases,
|
|
7091
|
+
isSingleResource = _ref4.isSingleResource,
|
|
7092
|
+
showStateFilter = _ref4.showStateFilter,
|
|
7093
|
+
selectedState = _ref4.selectedState,
|
|
7094
|
+
title = _ref4.title;
|
|
7095
|
+
var resource = isOwnerBased ? (_findBy = findBy({
|
|
7096
|
+
id: selectedVal
|
|
7097
|
+
}, owners)) === null || _findBy === void 0 ? void 0 : _findBy.name : nameAliases[selectedVal] || selectedVal;
|
|
7098
|
+
var displayTitle = title;
|
|
7099
|
+
if (showStateFilter && !isSingleResource) {
|
|
7100
|
+
displayTitle = t$1("messages.stateTitleForResource", {
|
|
7101
|
+
state: selectedState,
|
|
7102
|
+
title: title,
|
|
7103
|
+
resource: resource
|
|
7104
|
+
});
|
|
7105
|
+
} else if (showStateFilter && isSingleResource) {
|
|
7106
|
+
displayTitle = "".concat(selectedState, " ").concat(title);
|
|
7107
|
+
} else if (!showStateFilter && !isSingleResource) {
|
|
7108
|
+
displayTitle = t$1("messages.titleForResource", {
|
|
7109
|
+
title: title,
|
|
7110
|
+
resource: resource
|
|
7111
|
+
});
|
|
7112
|
+
}
|
|
7113
|
+
return humanize(displayTitle);
|
|
7059
7114
|
};
|
|
7060
|
-
var renderNoDataHelpText = function renderNoDataHelpText(url) {
|
|
7115
|
+
var renderNoDataHelpText = function renderNoDataHelpText(title, url) {
|
|
7061
7116
|
return /*#__PURE__*/React.createElement(Trans, {
|
|
7062
7117
|
i18nKey: "helpTexts.noData",
|
|
7118
|
+
values: {
|
|
7119
|
+
title: title
|
|
7120
|
+
},
|
|
7063
7121
|
components: {
|
|
7064
7122
|
a: /*#__PURE__*/React.createElement(Link, {
|
|
7065
7123
|
className: "neeto-ui-text-primary-600 underline",
|
|
7124
|
+
"data-cy": "no-data-help-text-link",
|
|
7066
7125
|
target: "_blank",
|
|
7067
7126
|
to: {
|
|
7068
7127
|
pathname: url
|
|
@@ -7091,9 +7150,12 @@ function ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if
|
|
|
7091
7150
|
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
7151
|
var useFieldsDashboard = function useFieldsDashboard(_ref) {
|
|
7093
7152
|
var buildColumnData = _ref.buildColumnData,
|
|
7094
|
-
|
|
7153
|
+
isOwnerBased = _ref.isOwnerBased,
|
|
7095
7154
|
fieldStatesTaxonomy = _ref.fieldStatesTaxonomy,
|
|
7096
|
-
nameAliases = _ref.nameAliases
|
|
7155
|
+
nameAliases = _ref.nameAliases,
|
|
7156
|
+
title = _ref.title,
|
|
7157
|
+
resources = _ref.resources,
|
|
7158
|
+
showStateFilter = _ref.showStateFilter;
|
|
7097
7159
|
var _useState = useState(false),
|
|
7098
7160
|
_useState2 = _slicedToArray(_useState, 2),
|
|
7099
7161
|
isPaneOpen = _useState2[0],
|
|
@@ -7118,15 +7180,17 @@ var useFieldsDashboard = function useFieldsDashboard(_ref) {
|
|
|
7118
7180
|
_useState12 = _slicedToArray(_useState11, 2),
|
|
7119
7181
|
searchTerm = _useState12[0],
|
|
7120
7182
|
setSearchTerm = _useState12[1];
|
|
7121
|
-
var _getQueryParams = getQueryParams(),
|
|
7122
|
-
resource = _getQueryParams.resource,
|
|
7123
|
-
state = _getQueryParams.state;
|
|
7124
|
-
var ownerId = showOwnersInMenu ? resource : undefined;
|
|
7125
7183
|
var debouncedSearchTerm = useDebounce(searchTerm.trim());
|
|
7126
7184
|
var history = useHistory();
|
|
7127
7185
|
var _useTranslation = useTranslation(),
|
|
7128
7186
|
t = _useTranslation.t;
|
|
7129
|
-
var
|
|
7187
|
+
var _getQueryParams = getQueryParams(),
|
|
7188
|
+
resource = _getQueryParams.resource,
|
|
7189
|
+
state = _getQueryParams.state;
|
|
7190
|
+
var ownerId = isOwnerBased ? resource : undefined;
|
|
7191
|
+
var _useFetchConfigs = useFetchConfigs({
|
|
7192
|
+
enabled: !resources
|
|
7193
|
+
}),
|
|
7130
7194
|
_useFetchConfigs$data = _useFetchConfigs.data,
|
|
7131
7195
|
_useFetchConfigs$data2 = _useFetchConfigs$data === void 0 ? {} : _useFetchConfigs$data,
|
|
7132
7196
|
_useFetchConfigs$data3 = _useFetchConfigs$data2.owners,
|
|
@@ -7135,7 +7199,7 @@ var useFieldsDashboard = function useFieldsDashboard(_ref) {
|
|
|
7135
7199
|
resourceTypes = _useFetchConfigs$data4 === void 0 ? [] : _useFetchConfigs$data4,
|
|
7136
7200
|
isConfigsLoading = _useFetchConfigs.isLoading;
|
|
7137
7201
|
var fieldParams = {
|
|
7138
|
-
resourceType: !
|
|
7202
|
+
resourceType: !isOwnerBased ? resource : undefined,
|
|
7139
7203
|
ownerId: ownerId,
|
|
7140
7204
|
state: state || FIELD_STATES.active,
|
|
7141
7205
|
searchTerm: debouncedSearchTerm
|
|
@@ -7211,14 +7275,15 @@ var useFieldsDashboard = function useFieldsDashboard(_ref) {
|
|
|
7211
7275
|
state: state
|
|
7212
7276
|
}, params)));
|
|
7213
7277
|
};
|
|
7278
|
+
var menuItems = resources || (isOwnerBased ? owners : resourceTypes);
|
|
7214
7279
|
var handleURLWithDefaultValues = function handleURLWithDefaultValues() {
|
|
7215
7280
|
var queryParams = {
|
|
7216
7281
|
resource: resource,
|
|
7217
7282
|
state: state
|
|
7218
7283
|
};
|
|
7219
7284
|
if (!isConfigsLoading && isNil(resource)) {
|
|
7220
|
-
var
|
|
7221
|
-
queryParams.resource =
|
|
7285
|
+
var _menuItems$;
|
|
7286
|
+
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
7287
|
}
|
|
7223
7288
|
if (!isConfigsLoading && isNil(state)) {
|
|
7224
7289
|
queryParams.state = FIELD_STATES.active;
|
|
@@ -7227,7 +7292,6 @@ var useFieldsDashboard = function useFieldsDashboard(_ref) {
|
|
|
7227
7292
|
history.replace(buildUrl("", queryParams));
|
|
7228
7293
|
}
|
|
7229
7294
|
};
|
|
7230
|
-
var menuItems = showOwnersInMenu ? owners : resourceTypes;
|
|
7231
7295
|
var isScreenLoading = isFieldsLoading || isConfigsLoading;
|
|
7232
7296
|
var showCountSubheader = count > 0;
|
|
7233
7297
|
var searchProps = {
|
|
@@ -7237,6 +7301,20 @@ var useFieldsDashboard = function useFieldsDashboard(_ref) {
|
|
|
7237
7301
|
value: searchTerm,
|
|
7238
7302
|
placeholder: t("placeholders.searchFields")
|
|
7239
7303
|
};
|
|
7304
|
+
var isSingleResource = menuItems.length === 1;
|
|
7305
|
+
var isMenuBarNeeded = showStateFilter || !isSingleResource;
|
|
7306
|
+
var headerDisplayTitle = useMemo(function () {
|
|
7307
|
+
return getDashBoardTitle({
|
|
7308
|
+
isOwnerBased: isOwnerBased,
|
|
7309
|
+
owners: menuItems,
|
|
7310
|
+
selectedVal: resource,
|
|
7311
|
+
nameAliases: nameAliases,
|
|
7312
|
+
showStateFilter: showStateFilter,
|
|
7313
|
+
selectedState: state,
|
|
7314
|
+
isSingleResource: isSingleResource,
|
|
7315
|
+
title: title
|
|
7316
|
+
});
|
|
7317
|
+
}, [resource, state, isSingleResource, menuItems]);
|
|
7240
7318
|
var menuBarFilters = useMemo(function () {
|
|
7241
7319
|
return renderMenuBarFilters({
|
|
7242
7320
|
selectedState: state,
|
|
@@ -7245,19 +7323,20 @@ var useFieldsDashboard = function useFieldsDashboard(_ref) {
|
|
|
7245
7323
|
inactiveFieldsCount: inactiveFieldsCount,
|
|
7246
7324
|
handleBlockClick: handleBlockClick
|
|
7247
7325
|
});
|
|
7248
|
-
}, [activeFieldsCount, inactiveFieldsCount
|
|
7326
|
+
}, [activeFieldsCount, inactiveFieldsCount]);
|
|
7249
7327
|
var menuBarItems = useMemo(function () {
|
|
7250
7328
|
return renderMenuBarItems({
|
|
7251
|
-
isOwnerBased:
|
|
7329
|
+
isOwnerBased: isOwnerBased,
|
|
7252
7330
|
items: menuItems,
|
|
7253
7331
|
selectedMenu: resource,
|
|
7254
7332
|
handleBlockClick: handleBlockClick,
|
|
7255
|
-
nameAliases: nameAliases
|
|
7333
|
+
nameAliases: nameAliases,
|
|
7334
|
+
title: title
|
|
7256
7335
|
});
|
|
7257
7336
|
}, [menuItems, resource]);
|
|
7258
7337
|
useEffect(function () {
|
|
7259
7338
|
handleURLWithDefaultValues();
|
|
7260
|
-
}, [isConfigsLoading]);
|
|
7339
|
+
}, [isConfigsLoading, resources]);
|
|
7261
7340
|
return {
|
|
7262
7341
|
isPaneOpen: isPaneOpen,
|
|
7263
7342
|
setIsPaneOpen: setIsPaneOpen,
|
|
@@ -7267,9 +7346,7 @@ var useFieldsDashboard = function useFieldsDashboard(_ref) {
|
|
|
7267
7346
|
isReorderPaneOpen: isReorderPaneOpen,
|
|
7268
7347
|
setIsReorderPaneOpen: setIsReorderPaneOpen,
|
|
7269
7348
|
fields: fields,
|
|
7270
|
-
owners: owners,
|
|
7271
7349
|
count: count,
|
|
7272
|
-
menuItems: menuItems,
|
|
7273
7350
|
columnData: columnData,
|
|
7274
7351
|
selectedField: selectedField,
|
|
7275
7352
|
selectedState: state,
|
|
@@ -7280,6 +7357,7 @@ var useFieldsDashboard = function useFieldsDashboard(_ref) {
|
|
|
7280
7357
|
isDeleting: isDeleting,
|
|
7281
7358
|
isScreenLoading: isScreenLoading,
|
|
7282
7359
|
isConfigsLoading: isConfigsLoading,
|
|
7360
|
+
isMenuBarNeeded: isMenuBarNeeded,
|
|
7283
7361
|
showCountSubheader: showCountSubheader,
|
|
7284
7362
|
handleDelete: handleDelete,
|
|
7285
7363
|
handleAlertClose: handleAlertClose,
|
|
@@ -7288,7 +7366,8 @@ var useFieldsDashboard = function useFieldsDashboard(_ref) {
|
|
|
7288
7366
|
searchProps: searchProps,
|
|
7289
7367
|
menuBarFilters: menuBarFilters,
|
|
7290
7368
|
menuBarItems: menuBarItems,
|
|
7291
|
-
allFields: allFields
|
|
7369
|
+
allFields: allFields,
|
|
7370
|
+
headerDisplayTitle: headerDisplayTitle
|
|
7292
7371
|
};
|
|
7293
7372
|
};
|
|
7294
7373
|
|
|
@@ -7298,16 +7377,20 @@ var FieldsTable = function FieldsTable(_ref) {
|
|
|
7298
7377
|
rowData = _ref.rowData,
|
|
7299
7378
|
columnData = _ref.columnData,
|
|
7300
7379
|
setIsPaneOpen = _ref.setIsPaneOpen,
|
|
7301
|
-
helpDocUrl = _ref.helpDocUrl
|
|
7380
|
+
helpDocUrl = _ref.helpDocUrl,
|
|
7381
|
+
title = _ref.title;
|
|
7302
7382
|
var _useTranslation = useTranslation(),
|
|
7303
7383
|
t = _useTranslation.t;
|
|
7304
7384
|
var showNoDataScreen = !isLoading && isEmpty(rowData);
|
|
7385
|
+
title = title.toLocaleLowerCase();
|
|
7305
7386
|
return /*#__PURE__*/React.createElement(TableWrapper, null, showNoDataScreen ? /*#__PURE__*/React.createElement("div", {
|
|
7306
7387
|
className: "flex h-full w-full items-center justify-center"
|
|
7307
7388
|
}, /*#__PURE__*/React.createElement(NoData, _extends({}, helpDocUrl && {
|
|
7308
|
-
helpText: renderNoDataHelpText(helpDocUrl)
|
|
7389
|
+
helpText: renderNoDataHelpText(title, helpDocUrl)
|
|
7309
7390
|
}, {
|
|
7310
|
-
title: t("messages.noFields"
|
|
7391
|
+
title: t("messages.noFields", {
|
|
7392
|
+
title: title
|
|
7393
|
+
}),
|
|
7311
7394
|
primaryButtonProps: {
|
|
7312
7395
|
label: t("labels.addField"),
|
|
7313
7396
|
onClick: function onClick() {
|
|
@@ -11582,12 +11665,15 @@ var FieldBlock = function FieldBlock(_ref) {
|
|
|
11582
11665
|
ref: setNodeRef,
|
|
11583
11666
|
style: style
|
|
11584
11667
|
}, attributes, listeners, {
|
|
11585
|
-
className: "neeto-ui-text-gray-800 mb-3 flex items-center space-x-4 font-medium"
|
|
11668
|
+
className: "neeto-ui-text-gray-800 mb-3 flex items-center space-x-4 font-medium",
|
|
11669
|
+
"data-cy": "reorder-field-block"
|
|
11586
11670
|
}), /*#__PURE__*/React.createElement("div", {
|
|
11587
11671
|
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
11672
|
}, index - systemFieldsCount + 1), /*#__PURE__*/React.createElement("div", {
|
|
11589
11673
|
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",
|
|
11674
|
+
}, /*#__PURE__*/React.createElement(Reorder, null), /*#__PURE__*/React.createElement("div", {
|
|
11675
|
+
"data-cy": "reorder-field-block-name"
|
|
11676
|
+
}, field.name)));
|
|
11591
11677
|
};
|
|
11592
11678
|
var FieldBlock$1 = /*#__PURE__*/React.memo(FieldBlock);
|
|
11593
11679
|
|
|
@@ -11638,10 +11724,12 @@ var ReorderPane = function ReorderPane(_ref) {
|
|
|
11638
11724
|
isOpen: isOpen,
|
|
11639
11725
|
onClose: onClose
|
|
11640
11726
|
}, /*#__PURE__*/React.createElement(Pane.Header, null, /*#__PURE__*/React.createElement(Typography, {
|
|
11727
|
+
"data-cy": "reorder-pane-header",
|
|
11641
11728
|
style: "h2",
|
|
11642
11729
|
weight: "semibold"
|
|
11643
11730
|
}, t("titles.reorderFields"))), /*#__PURE__*/React.createElement(Pane.Body, null, /*#__PURE__*/React.createElement(Typography, {
|
|
11644
11731
|
className: "mb-3",
|
|
11732
|
+
"data-cy": "reorder-pane-message",
|
|
11645
11733
|
style: "body2"
|
|
11646
11734
|
}, t("messages.reorderFields")), /*#__PURE__*/React.createElement("div", {
|
|
11647
11735
|
className: "flex flex-col items-center"
|
|
@@ -11662,11 +11750,13 @@ var ReorderPane = function ReorderPane(_ref) {
|
|
|
11662
11750
|
}))))), /*#__PURE__*/React.createElement(Pane.Footer, {
|
|
11663
11751
|
className: "flex items-center space-x-2"
|
|
11664
11752
|
}, /*#__PURE__*/React.createElement(Button$1, {
|
|
11753
|
+
"data-cy": "save-changes-button",
|
|
11665
11754
|
disabled: initialStateRef.current === fields,
|
|
11666
11755
|
label: t("labels.saveChanges"),
|
|
11667
11756
|
loading: isSubmitting,
|
|
11668
11757
|
onClick: handleReorderSave
|
|
11669
11758
|
}), /*#__PURE__*/React.createElement(Button$1, {
|
|
11759
|
+
"data-cy": "cancel-button",
|
|
11670
11760
|
label: t("labels.cancel"),
|
|
11671
11761
|
style: "text",
|
|
11672
11762
|
onClick: onClose
|
|
@@ -11679,7 +11769,7 @@ var FieldsDashboard = function FieldsDashboard(_ref) {
|
|
|
11679
11769
|
var _ref$rowData = _ref.rowData,
|
|
11680
11770
|
rowData = _ref$rowData === void 0 ? [] : _ref$rowData,
|
|
11681
11771
|
_ref$showOwnersInMenu = _ref.showOwnersInMenu,
|
|
11682
|
-
|
|
11772
|
+
isOwnerBased = _ref$showOwnersInMenu === void 0 ? false : _ref$showOwnersInMenu,
|
|
11683
11773
|
_ref$resourceType = _ref.resourceType,
|
|
11684
11774
|
resourceType = _ref$resourceType === void 0 ? "" : _ref$resourceType,
|
|
11685
11775
|
_ref$allowedKinds = _ref.allowedKinds,
|
|
@@ -11699,14 +11789,20 @@ var FieldsDashboard = function FieldsDashboard(_ref) {
|
|
|
11699
11789
|
fieldStatesTaxonomy = _ref$fieldStatesTaxon === void 0 ? DEFAULT_FIELD_STATE_TAXONOMY : _ref$fieldStatesTaxon,
|
|
11700
11790
|
helpDocUrl = _ref.helpDocUrl,
|
|
11701
11791
|
_ref$nameAliases = _ref.nameAliases,
|
|
11702
|
-
nameAliases = _ref$nameAliases === void 0 ? {} : _ref$nameAliases
|
|
11792
|
+
nameAliases = _ref$nameAliases === void 0 ? {} : _ref$nameAliases,
|
|
11793
|
+
headerTitle = _ref.headerTitle,
|
|
11794
|
+
resources = _ref.resources;
|
|
11703
11795
|
var _useTranslation = useTranslation(),
|
|
11704
11796
|
t = _useTranslation.t;
|
|
11797
|
+
var title = capitalize$1(headerTitle || t("titles.field", PLURAL));
|
|
11705
11798
|
var _useFieldsDashboard = useFieldsDashboard({
|
|
11706
11799
|
buildColumnData: buildColumnData,
|
|
11707
|
-
|
|
11800
|
+
isOwnerBased: isOwnerBased,
|
|
11708
11801
|
fieldStatesTaxonomy: fieldStatesTaxonomy,
|
|
11709
|
-
nameAliases: nameAliases
|
|
11802
|
+
nameAliases: nameAliases,
|
|
11803
|
+
title: title,
|
|
11804
|
+
resources: resources,
|
|
11805
|
+
showStateFilter: showStateFilter
|
|
11710
11806
|
}),
|
|
11711
11807
|
isPaneOpen = _useFieldsDashboard.isPaneOpen,
|
|
11712
11808
|
setIsPaneOpen = _useFieldsDashboard.setIsPaneOpen,
|
|
@@ -11716,9 +11812,7 @@ var FieldsDashboard = function FieldsDashboard(_ref) {
|
|
|
11716
11812
|
isReorderPaneOpen = _useFieldsDashboard.isReorderPaneOpen,
|
|
11717
11813
|
setIsReorderPaneOpen = _useFieldsDashboard.setIsReorderPaneOpen,
|
|
11718
11814
|
fields = _useFieldsDashboard.fields,
|
|
11719
|
-
owners = _useFieldsDashboard.owners,
|
|
11720
11815
|
count = _useFieldsDashboard.count,
|
|
11721
|
-
menuItems = _useFieldsDashboard.menuItems,
|
|
11722
11816
|
columnData = _useFieldsDashboard.columnData,
|
|
11723
11817
|
selectedField = _useFieldsDashboard.selectedField,
|
|
11724
11818
|
selectedState = _useFieldsDashboard.selectedState,
|
|
@@ -11728,6 +11822,7 @@ var FieldsDashboard = function FieldsDashboard(_ref) {
|
|
|
11728
11822
|
isDeleting = _useFieldsDashboard.isDeleting,
|
|
11729
11823
|
isScreenLoading = _useFieldsDashboard.isScreenLoading,
|
|
11730
11824
|
isConfigsLoading = _useFieldsDashboard.isConfigsLoading,
|
|
11825
|
+
isMenuBarNeeded = _useFieldsDashboard.isMenuBarNeeded,
|
|
11731
11826
|
showCountSubheader = _useFieldsDashboard.showCountSubheader,
|
|
11732
11827
|
handleDelete = _useFieldsDashboard.handleDelete,
|
|
11733
11828
|
handleAlertClose = _useFieldsDashboard.handleAlertClose,
|
|
@@ -11736,11 +11831,11 @@ var FieldsDashboard = function FieldsDashboard(_ref) {
|
|
|
11736
11831
|
searchProps = _useFieldsDashboard.searchProps,
|
|
11737
11832
|
menuBarFilters = _useFieldsDashboard.menuBarFilters,
|
|
11738
11833
|
menuBarItems = _useFieldsDashboard.menuBarItems,
|
|
11739
|
-
allFields = _useFieldsDashboard.allFields
|
|
11740
|
-
|
|
11834
|
+
allFields = _useFieldsDashboard.allFields,
|
|
11835
|
+
headerDisplayTitle = _useFieldsDashboard.headerDisplayTitle;
|
|
11741
11836
|
return /*#__PURE__*/React.createElement(React.Fragment, null, isMenuBarNeeded && /*#__PURE__*/React.createElement(MenuBar, {
|
|
11742
11837
|
showMenu: isMenuBarOpen,
|
|
11743
|
-
title:
|
|
11838
|
+
title: title
|
|
11744
11839
|
}, isConfigsLoading ? /*#__PURE__*/React.createElement("div", {
|
|
11745
11840
|
className: "flex items-center justify-center"
|
|
11746
11841
|
}, /*#__PURE__*/React.createElement(Spinner, null)) : menuBarItems, showStateFilter && menuBarFilters), isScreenLoading && isEmpty(fields) ? /*#__PURE__*/React.createElement("div", {
|
|
@@ -11753,6 +11848,7 @@ var FieldsDashboard = function FieldsDashboard(_ref) {
|
|
|
11753
11848
|
}
|
|
11754
11849
|
}, {
|
|
11755
11850
|
actionBlock: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Button$1, {
|
|
11851
|
+
"data-cy": "neeto-fields-reorder-button",
|
|
11756
11852
|
label: t("labels.reorder"),
|
|
11757
11853
|
style: "secondary",
|
|
11758
11854
|
disabled: selectedState === FIELD_STATES.inactive || !existsBy({
|
|
@@ -11763,45 +11859,46 @@ var FieldsDashboard = function FieldsDashboard(_ref) {
|
|
|
11763
11859
|
return setIsReorderPaneOpen(true);
|
|
11764
11860
|
}
|
|
11765
11861
|
}), /*#__PURE__*/React.createElement(Button$1, {
|
|
11862
|
+
"data-cy": "neeto-fields-add-button",
|
|
11766
11863
|
label: t("labels.addField"),
|
|
11767
11864
|
onClick: function onClick() {
|
|
11768
11865
|
return setIsPaneOpen(true);
|
|
11769
11866
|
}
|
|
11770
11867
|
})),
|
|
11771
11868
|
searchProps: searchProps,
|
|
11772
|
-
title:
|
|
11773
|
-
|
|
11774
|
-
|
|
11775
|
-
|
|
11776
|
-
nameAliases: nameAliases
|
|
11777
|
-
}))
|
|
11869
|
+
title: /*#__PURE__*/React.createElement(TitleWithHelpLink, {
|
|
11870
|
+
helpUrl: helpDocUrl,
|
|
11871
|
+
title: headerDisplayTitle
|
|
11872
|
+
})
|
|
11778
11873
|
})), showCountSubheader && /*#__PURE__*/React.createElement(SubHeader, {
|
|
11779
11874
|
leftActionBlock: /*#__PURE__*/React.createElement(Typography, {
|
|
11780
11875
|
className: "mr-4 font-semibold",
|
|
11876
|
+
"data-cy": "neeto-fields-subheader-text",
|
|
11781
11877
|
style: "h4"
|
|
11782
|
-
},
|
|
11878
|
+
}, "".concat(count, " "), t("titles.field", count > 1 ? PLURAL : SINGULAR).toLocaleLowerCase())
|
|
11783
11879
|
}), /*#__PURE__*/React.createElement(FieldsTable, {
|
|
11784
11880
|
columnData: columnData,
|
|
11785
11881
|
helpDocUrl: helpDocUrl,
|
|
11786
11882
|
isLoading: isFieldsFetching || isFieldsLoading,
|
|
11787
11883
|
rowData: isEmpty(rowData) ? fields : rowData,
|
|
11788
11884
|
setIsPaneOpen: setIsPaneOpen,
|
|
11789
|
-
totalCount: count
|
|
11885
|
+
totalCount: count,
|
|
11886
|
+
title: title
|
|
11790
11887
|
}), /*#__PURE__*/React.createElement(FieldsPane, {
|
|
11791
11888
|
additionalValidations: paneProps === null || paneProps === void 0 ? void 0 : paneProps.validations,
|
|
11792
11889
|
allowedKinds: allowedKinds,
|
|
11793
11890
|
hideRequiredSwitch: paneProps === null || paneProps === void 0 ? void 0 : paneProps.hideRequiredSwitch,
|
|
11794
11891
|
initialValues: paneProps === null || paneProps === void 0 ? void 0 : paneProps.initialValues,
|
|
11795
11892
|
isOpen: isPaneOpen,
|
|
11796
|
-
ownerId:
|
|
11797
|
-
resourceType:
|
|
11893
|
+
ownerId: isOwnerBased ? selectedMenu : "",
|
|
11894
|
+
resourceType: isOwnerBased ? resourceType : selectedMenu //Currently we support only one resource type when fields are classified based on owners
|
|
11798
11895
|
,
|
|
11799
11896
|
selectedField: selectedField,
|
|
11800
11897
|
onClose: handleClosePane,
|
|
11801
11898
|
onMutationSuccess: paneProps === null || paneProps === void 0 ? void 0 : paneProps.onMutationSuccess
|
|
11802
11899
|
}, paneProps === null || paneProps === void 0 ? void 0 : paneProps.children)), /*#__PURE__*/React.createElement(ReorderPane, {
|
|
11803
11900
|
isOpen: isReorderPaneOpen,
|
|
11804
|
-
ownerId:
|
|
11901
|
+
ownerId: isOwnerBased ? selectedMenu : "",
|
|
11805
11902
|
onClose: handleReorderPaneClose,
|
|
11806
11903
|
allFields: allFields
|
|
11807
11904
|
}), /*#__PURE__*/React.createElement(Alert, {
|