@bigbinary/neeto-fields-frontend 1.1.8 → 1.1.10
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/index.cjs.js +44 -42
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.js +45 -43
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { useContext, useState, useRef, useEffect, useMemo, useLayoutEffect, useCallback, createContext, memo, useReducer } from 'react';
|
|
2
|
-
import { Checkbox as Checkbox$1, TimePicker, DatePicker, Select, Input, Textarea, Typography, Pane, Label, Button as Button$1, Dropdown, Alert, NoData, Table, Spinner } from '@bigbinary/neetoui';
|
|
2
|
+
import { Checkbox as Checkbox$1, TimePicker, DatePicker, Select, Input, Textarea, Typography, Pane, Label, Button as Button$1, Dropdown, Tab, Alert, NoData, Table, Spinner } from '@bigbinary/neetoui';
|
|
3
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, 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';
|
|
@@ -5324,6 +5324,7 @@ var validations = {
|
|
|
5324
5324
|
fieldOptionIsRequired: "Field option is required",
|
|
5325
5325
|
kindIsRequired: "Kind is required",
|
|
5326
5326
|
invalidRegexPattern: "Invalid regex pattern",
|
|
5327
|
+
advancedRegexAssertionsNotSupported: "Advanced regex assertions are not supported",
|
|
5327
5328
|
notAValidNumber: "Entered number is not valid",
|
|
5328
5329
|
notAValidInteger: "Entered number is not a valid integer",
|
|
5329
5330
|
notAValid: "Entered number is not valid",
|
|
@@ -6633,8 +6634,31 @@ var renderFormFooter = function renderFormFooter(_ref3) {
|
|
|
6633
6634
|
}));
|
|
6634
6635
|
};
|
|
6635
6636
|
|
|
6637
|
+
var PERMITTED_REGEX_PATTERN = /^\/.*\/[igmsyu]*$/;
|
|
6638
|
+
var ADVANCED_REGEX_ASSERTION_PATTERN = /\(\?=[^)]*\)|\(\?![^)]*\)|\(\?<=[^)]*\)|\(\?<![^)]*\)/;
|
|
6636
6639
|
var regexValidationSchema = yup.object().shape({
|
|
6637
|
-
condition: yup.string().required(t$1("validations.regexConditionIsRequired")).matches(
|
|
6640
|
+
condition: yup.string().required(t$1("validations.regexConditionIsRequired")).matches(PERMITTED_REGEX_PATTERN, t$1("validations.invalidRegexPattern")).test({
|
|
6641
|
+
name: "test-regex-is-advanced",
|
|
6642
|
+
message: t$1("validations.advancedRegexAssertionsNotSupported") || "",
|
|
6643
|
+
test: function test(value) {
|
|
6644
|
+
return !ADVANCED_REGEX_ASSERTION_PATTERN.test(value);
|
|
6645
|
+
}
|
|
6646
|
+
}).test({
|
|
6647
|
+
name: "test-regex-condition-pattern",
|
|
6648
|
+
message: t$1("validations.invalidRegexPattern") || "",
|
|
6649
|
+
test: function test(value) {
|
|
6650
|
+
try {
|
|
6651
|
+
var lastIndex = value.lastIndexOf("/");
|
|
6652
|
+
var condition = value.substring(1, lastIndex);
|
|
6653
|
+
// Evaluating the regex to check if it is valid
|
|
6654
|
+
new RegExp(condition);
|
|
6655
|
+
"".search(condition);
|
|
6656
|
+
return true;
|
|
6657
|
+
} catch (_unused) {
|
|
6658
|
+
return false;
|
|
6659
|
+
}
|
|
6660
|
+
}
|
|
6661
|
+
}),
|
|
6638
6662
|
helpMessage: yup.string().required(t$1("validations.regexHelpMessageIsRequired"))
|
|
6639
6663
|
});
|
|
6640
6664
|
var dropDownOptionsValidationSchema = yup.array().of(yup.object().shape({
|
|
@@ -7642,34 +7666,27 @@ var renderMenuBarItems = function renderMenuBarItems(_ref2) {
|
|
|
7642
7666
|
});
|
|
7643
7667
|
});
|
|
7644
7668
|
};
|
|
7645
|
-
var
|
|
7669
|
+
var renderStateFilterTabs = function renderStateFilterTabs(_ref3) {
|
|
7646
7670
|
var selectedState = _ref3.selectedState,
|
|
7647
7671
|
fieldStatesTaxonomy = _ref3.fieldStatesTaxonomy,
|
|
7648
7672
|
activeFieldsCount = _ref3.activeFieldsCount,
|
|
7649
7673
|
inactiveFieldsCount = _ref3.inactiveFieldsCount,
|
|
7650
7674
|
handleBlockClick = _ref3.handleBlockClick;
|
|
7651
|
-
return /*#__PURE__*/React.createElement(
|
|
7652
|
-
|
|
7653
|
-
|
|
7654
|
-
textTransform: "uppercase",
|
|
7655
|
-
weight: "bold"
|
|
7656
|
-
}, t$1("titles.filters"))), /*#__PURE__*/React.createElement(MenuBar.Block, {
|
|
7675
|
+
return /*#__PURE__*/React.createElement(Tab, {
|
|
7676
|
+
className: "mb-4"
|
|
7677
|
+
}, /*#__PURE__*/React.createElement(Tab.Item, {
|
|
7657
7678
|
active: selectedState === FIELD_STATES.active,
|
|
7658
|
-
count: activeFieldsCount,
|
|
7659
7679
|
"data-cy": "menubar-active-block",
|
|
7660
|
-
label: fieldStatesTaxonomy.active,
|
|
7661
7680
|
onClick: handleBlockClick({
|
|
7662
7681
|
state: FIELD_STATES.active
|
|
7663
7682
|
})
|
|
7664
|
-
}), /*#__PURE__*/React.createElement(
|
|
7683
|
+
}, fieldStatesTaxonomy.active, "(", activeFieldsCount, ")"), /*#__PURE__*/React.createElement(Tab.Item, {
|
|
7665
7684
|
active: selectedState === FIELD_STATES.inactive,
|
|
7666
|
-
count: inactiveFieldsCount,
|
|
7667
7685
|
"data-cy": "menubar-inactive-block",
|
|
7668
|
-
label: fieldStatesTaxonomy.inactive,
|
|
7669
7686
|
onClick: handleBlockClick({
|
|
7670
7687
|
state: FIELD_STATES.inactive
|
|
7671
7688
|
})
|
|
7672
|
-
}));
|
|
7689
|
+
}, fieldStatesTaxonomy.inactive, "(", inactiveFieldsCount, ")"));
|
|
7673
7690
|
};
|
|
7674
7691
|
var getResourceName = function getResourceName(_ref4) {
|
|
7675
7692
|
var isOwnerBased = _ref4.isOwnerBased,
|
|
@@ -7687,24 +7704,11 @@ var getResourceName = function getResourceName(_ref4) {
|
|
|
7687
7704
|
var getDashBoardTitle = function getDashBoardTitle(_ref5) {
|
|
7688
7705
|
var resourceName = _ref5.resourceName,
|
|
7689
7706
|
isSingleResource = _ref5.isSingleResource,
|
|
7690
|
-
showStateFilter = _ref5.showStateFilter,
|
|
7691
|
-
selectedState = _ref5.selectedState,
|
|
7692
7707
|
title = _ref5.title;
|
|
7693
|
-
var displayTitle = title
|
|
7694
|
-
|
|
7695
|
-
|
|
7696
|
-
|
|
7697
|
-
title: title,
|
|
7698
|
-
resource: resourceName
|
|
7699
|
-
});
|
|
7700
|
-
} else if (showStateFilter && isSingleResource) {
|
|
7701
|
-
displayTitle = "".concat(selectedState, " ").concat(title);
|
|
7702
|
-
} else if (!showStateFilter && !isSingleResource) {
|
|
7703
|
-
displayTitle = t$1("messages.titleForResource", {
|
|
7704
|
-
title: title,
|
|
7705
|
-
resource: resourceName
|
|
7706
|
-
});
|
|
7707
|
-
}
|
|
7708
|
+
var displayTitle = isSingleResource ? title : t$1("messages.titleForResource", {
|
|
7709
|
+
title: title,
|
|
7710
|
+
resource: resourceName
|
|
7711
|
+
});
|
|
7708
7712
|
return humanize(displayTitle);
|
|
7709
7713
|
};
|
|
7710
7714
|
var renderNoDataHelpText = function renderNoDataHelpText(title, url) {
|
|
@@ -7906,7 +7910,7 @@ var useFieldsDashboard = function useFieldsDashboard(_ref) {
|
|
|
7906
7910
|
}
|
|
7907
7911
|
};
|
|
7908
7912
|
var isScreenLoading = isFieldsLoading || isConfigsLoading;
|
|
7909
|
-
var showCountSubheader = count > 0;
|
|
7913
|
+
var showCountSubheader = count > 0 && !showStateFilter;
|
|
7910
7914
|
var searchProps = {
|
|
7911
7915
|
onChange: function onChange(e) {
|
|
7912
7916
|
return setSearchTerm(e.target.value);
|
|
@@ -7916,7 +7920,7 @@ var useFieldsDashboard = function useFieldsDashboard(_ref) {
|
|
|
7916
7920
|
className: "w-44"
|
|
7917
7921
|
};
|
|
7918
7922
|
var isSingleResource = menuItems.length === 1;
|
|
7919
|
-
var isMenuBarNeeded =
|
|
7923
|
+
var isMenuBarNeeded = !isSingleResource && !isConfigsLoading;
|
|
7920
7924
|
var resourceName = useMemo(function () {
|
|
7921
7925
|
return getResourceName({
|
|
7922
7926
|
isOwnerBased: isOwnerBased,
|
|
@@ -7928,14 +7932,12 @@ var useFieldsDashboard = function useFieldsDashboard(_ref) {
|
|
|
7928
7932
|
var headerDisplayTitle = useMemo(function () {
|
|
7929
7933
|
return getDashBoardTitle({
|
|
7930
7934
|
resourceName: resourceName,
|
|
7931
|
-
showStateFilter: showStateFilter,
|
|
7932
|
-
selectedState: state,
|
|
7933
7935
|
isSingleResource: isSingleResource,
|
|
7934
7936
|
title: title
|
|
7935
7937
|
});
|
|
7936
7938
|
}, [state, isSingleResource, resourceName]);
|
|
7937
|
-
var
|
|
7938
|
-
return
|
|
7939
|
+
var stateFilterTabs = useMemo(function () {
|
|
7940
|
+
return renderStateFilterTabs({
|
|
7939
7941
|
selectedState: state,
|
|
7940
7942
|
fieldStatesTaxonomy: fieldStatesTaxonomy,
|
|
7941
7943
|
activeFieldsCount: activeFieldsCount,
|
|
@@ -7984,7 +7986,7 @@ var useFieldsDashboard = function useFieldsDashboard(_ref) {
|
|
|
7984
7986
|
handleClosePane: handleClosePane,
|
|
7985
7987
|
handleReorderPaneClose: handleReorderPaneClose,
|
|
7986
7988
|
searchProps: searchProps,
|
|
7987
|
-
|
|
7989
|
+
stateFilterTabs: stateFilterTabs,
|
|
7988
7990
|
menuBarItems: menuBarItems,
|
|
7989
7991
|
allFields: allFields,
|
|
7990
7992
|
headerDisplayTitle: headerDisplayTitle
|
|
@@ -12488,7 +12490,7 @@ var FieldsDashboard = function FieldsDashboard(_ref) {
|
|
|
12488
12490
|
handleClosePane = _useFieldsDashboard.handleClosePane,
|
|
12489
12491
|
handleReorderPaneClose = _useFieldsDashboard.handleReorderPaneClose,
|
|
12490
12492
|
searchProps = _useFieldsDashboard.searchProps,
|
|
12491
|
-
|
|
12493
|
+
stateFilterTabs = _useFieldsDashboard.stateFilterTabs,
|
|
12492
12494
|
menuBarItems = _useFieldsDashboard.menuBarItems,
|
|
12493
12495
|
allFields = _useFieldsDashboard.allFields,
|
|
12494
12496
|
headerDisplayTitle = _useFieldsDashboard.headerDisplayTitle;
|
|
@@ -12497,8 +12499,8 @@ var FieldsDashboard = function FieldsDashboard(_ref) {
|
|
|
12497
12499
|
title: title
|
|
12498
12500
|
}, isConfigsLoading ? /*#__PURE__*/React.createElement("div", {
|
|
12499
12501
|
className: "flex items-center justify-center"
|
|
12500
|
-
}, /*#__PURE__*/React.createElement(Spinner, null)) : menuBarItems
|
|
12501
|
-
className: "flex w-full flex-grow items-center justify-center"
|
|
12502
|
+
}, /*#__PURE__*/React.createElement(Spinner, null)) : menuBarItems), isScreenLoading && isEmpty(fields) ? /*#__PURE__*/React.createElement("div", {
|
|
12503
|
+
className: "flex h-screen w-full flex-grow items-center justify-center"
|
|
12502
12504
|
}, /*#__PURE__*/React.createElement(PageLoader, null)) : /*#__PURE__*/React.createElement(Container, null, /*#__PURE__*/React.createElement(Header, _extends({}, _objectSpread$2(_objectSpread$2({
|
|
12503
12505
|
breadcrumbs: breadcrumbs
|
|
12504
12506
|
}, isMenuBarNeeded && {
|
|
@@ -12536,7 +12538,7 @@ var FieldsDashboard = function FieldsDashboard(_ref) {
|
|
|
12536
12538
|
"data-cy": "neeto-fields-subheader-text",
|
|
12537
12539
|
style: "h4"
|
|
12538
12540
|
}, "".concat(count, " "), t("titles.field", count > 1 ? PLURAL : SINGULAR).toLocaleLowerCase())
|
|
12539
|
-
}), /*#__PURE__*/React.createElement(FieldsTable, {
|
|
12541
|
+
}), showStateFilter && stateFilterTabs, /*#__PURE__*/React.createElement(FieldsTable, {
|
|
12540
12542
|
isLoading: isFieldsFetching || isFieldsLoading,
|
|
12541
12543
|
rowData: isEmpty(rowData) ? fields : rowData,
|
|
12542
12544
|
totalCount: count,
|