@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 CHANGED
@@ -5359,6 +5359,7 @@ var validations = {
5359
5359
  fieldOptionIsRequired: "Field option is required",
5360
5360
  kindIsRequired: "Kind is required",
5361
5361
  invalidRegexPattern: "Invalid regex pattern",
5362
+ advancedRegexAssertionsNotSupported: "Advanced regex assertions are not supported",
5362
5363
  notAValidNumber: "Entered number is not valid",
5363
5364
  notAValidInteger: "Entered number is not a valid integer",
5364
5365
  notAValid: "Entered number is not valid",
@@ -6668,8 +6669,31 @@ var renderFormFooter = function renderFormFooter(_ref3) {
6668
6669
  }));
6669
6670
  };
6670
6671
 
6672
+ var PERMITTED_REGEX_PATTERN = /^\/.*\/[igmsyu]*$/;
6673
+ var ADVANCED_REGEX_ASSERTION_PATTERN = /\(\?=[^)]*\)|\(\?![^)]*\)|\(\?<=[^)]*\)|\(\?<![^)]*\)/;
6671
6674
  var regexValidationSchema = yup__namespace.object().shape({
6672
- condition: yup__namespace.string().required(t$1("validations.regexConditionIsRequired")).matches(/^\/.*\/[igmsyu]*$/, t$1("validations.invalidRegexPattern")),
6675
+ condition: yup__namespace.string().required(t$1("validations.regexConditionIsRequired")).matches(PERMITTED_REGEX_PATTERN, t$1("validations.invalidRegexPattern")).test({
6676
+ name: "test-regex-is-advanced",
6677
+ message: t$1("validations.advancedRegexAssertionsNotSupported") || "",
6678
+ test: function test(value) {
6679
+ return !ADVANCED_REGEX_ASSERTION_PATTERN.test(value);
6680
+ }
6681
+ }).test({
6682
+ name: "test-regex-condition-pattern",
6683
+ message: t$1("validations.invalidRegexPattern") || "",
6684
+ test: function test(value) {
6685
+ try {
6686
+ var lastIndex = value.lastIndexOf("/");
6687
+ var condition = value.substring(1, lastIndex);
6688
+ // Evaluating the regex to check if it is valid
6689
+ new RegExp(condition);
6690
+ "".search(condition);
6691
+ return true;
6692
+ } catch (_unused) {
6693
+ return false;
6694
+ }
6695
+ }
6696
+ }),
6673
6697
  helpMessage: yup__namespace.string().required(t$1("validations.regexHelpMessageIsRequired"))
6674
6698
  });
6675
6699
  var dropDownOptionsValidationSchema = yup__namespace.array().of(yup__namespace.object().shape({
@@ -7677,34 +7701,27 @@ var renderMenuBarItems = function renderMenuBarItems(_ref2) {
7677
7701
  });
7678
7702
  });
7679
7703
  };
7680
- var renderMenuBarFilters = function renderMenuBarFilters(_ref3) {
7704
+ var renderStateFilterTabs = function renderStateFilterTabs(_ref3) {
7681
7705
  var selectedState = _ref3.selectedState,
7682
7706
  fieldStatesTaxonomy = _ref3.fieldStatesTaxonomy,
7683
7707
  activeFieldsCount = _ref3.activeFieldsCount,
7684
7708
  inactiveFieldsCount = _ref3.inactiveFieldsCount,
7685
7709
  handleBlockClick = _ref3.handleBlockClick;
7686
- return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(MenuBar__default["default"].SubTitle, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
7687
- "data-cy": "menubar-subtitle",
7688
- style: "h5",
7689
- textTransform: "uppercase",
7690
- weight: "bold"
7691
- }, t$1("titles.filters"))), /*#__PURE__*/React__default["default"].createElement(MenuBar__default["default"].Block, {
7710
+ return /*#__PURE__*/React__default["default"].createElement(neetoui.Tab, {
7711
+ className: "mb-4"
7712
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Tab.Item, {
7692
7713
  active: selectedState === FIELD_STATES.active,
7693
- count: activeFieldsCount,
7694
7714
  "data-cy": "menubar-active-block",
7695
- label: fieldStatesTaxonomy.active,
7696
7715
  onClick: handleBlockClick({
7697
7716
  state: FIELD_STATES.active
7698
7717
  })
7699
- }), /*#__PURE__*/React__default["default"].createElement(MenuBar__default["default"].Block, {
7718
+ }, fieldStatesTaxonomy.active, "(", activeFieldsCount, ")"), /*#__PURE__*/React__default["default"].createElement(neetoui.Tab.Item, {
7700
7719
  active: selectedState === FIELD_STATES.inactive,
7701
- count: inactiveFieldsCount,
7702
7720
  "data-cy": "menubar-inactive-block",
7703
- label: fieldStatesTaxonomy.inactive,
7704
7721
  onClick: handleBlockClick({
7705
7722
  state: FIELD_STATES.inactive
7706
7723
  })
7707
- }));
7724
+ }, fieldStatesTaxonomy.inactive, "(", inactiveFieldsCount, ")"));
7708
7725
  };
7709
7726
  var getResourceName = function getResourceName(_ref4) {
7710
7727
  var isOwnerBased = _ref4.isOwnerBased,
@@ -7722,24 +7739,11 @@ var getResourceName = function getResourceName(_ref4) {
7722
7739
  var getDashBoardTitle = function getDashBoardTitle(_ref5) {
7723
7740
  var resourceName = _ref5.resourceName,
7724
7741
  isSingleResource = _ref5.isSingleResource,
7725
- showStateFilter = _ref5.showStateFilter,
7726
- selectedState = _ref5.selectedState,
7727
7742
  title = _ref5.title;
7728
- var displayTitle = title;
7729
- if (showStateFilter && !isSingleResource) {
7730
- displayTitle = t$1("messages.stateTitleForResource", {
7731
- state: selectedState,
7732
- title: title,
7733
- resource: resourceName
7734
- });
7735
- } else if (showStateFilter && isSingleResource) {
7736
- displayTitle = "".concat(selectedState, " ").concat(title);
7737
- } else if (!showStateFilter && !isSingleResource) {
7738
- displayTitle = t$1("messages.titleForResource", {
7739
- title: title,
7740
- resource: resourceName
7741
- });
7742
- }
7743
+ var displayTitle = isSingleResource ? title : t$1("messages.titleForResource", {
7744
+ title: title,
7745
+ resource: resourceName
7746
+ });
7743
7747
  return pure.humanize(displayTitle);
7744
7748
  };
7745
7749
  var renderNoDataHelpText = function renderNoDataHelpText(title, url) {
@@ -7941,7 +7945,7 @@ var useFieldsDashboard = function useFieldsDashboard(_ref) {
7941
7945
  }
7942
7946
  };
7943
7947
  var isScreenLoading = isFieldsLoading || isConfigsLoading;
7944
- var showCountSubheader = count > 0;
7948
+ var showCountSubheader = count > 0 && !showStateFilter;
7945
7949
  var searchProps = {
7946
7950
  onChange: function onChange(e) {
7947
7951
  return setSearchTerm(e.target.value);
@@ -7951,7 +7955,7 @@ var useFieldsDashboard = function useFieldsDashboard(_ref) {
7951
7955
  className: "w-44"
7952
7956
  };
7953
7957
  var isSingleResource = menuItems.length === 1;
7954
- var isMenuBarNeeded = showStateFilter || !isSingleResource;
7958
+ var isMenuBarNeeded = !isSingleResource && !isConfigsLoading;
7955
7959
  var resourceName = React.useMemo(function () {
7956
7960
  return getResourceName({
7957
7961
  isOwnerBased: isOwnerBased,
@@ -7963,14 +7967,12 @@ var useFieldsDashboard = function useFieldsDashboard(_ref) {
7963
7967
  var headerDisplayTitle = React.useMemo(function () {
7964
7968
  return getDashBoardTitle({
7965
7969
  resourceName: resourceName,
7966
- showStateFilter: showStateFilter,
7967
- selectedState: state,
7968
7970
  isSingleResource: isSingleResource,
7969
7971
  title: title
7970
7972
  });
7971
7973
  }, [state, isSingleResource, resourceName]);
7972
- var menuBarFilters = React.useMemo(function () {
7973
- return renderMenuBarFilters({
7974
+ var stateFilterTabs = React.useMemo(function () {
7975
+ return renderStateFilterTabs({
7974
7976
  selectedState: state,
7975
7977
  fieldStatesTaxonomy: fieldStatesTaxonomy,
7976
7978
  activeFieldsCount: activeFieldsCount,
@@ -8019,7 +8021,7 @@ var useFieldsDashboard = function useFieldsDashboard(_ref) {
8019
8021
  handleClosePane: handleClosePane,
8020
8022
  handleReorderPaneClose: handleReorderPaneClose,
8021
8023
  searchProps: searchProps,
8022
- menuBarFilters: menuBarFilters,
8024
+ stateFilterTabs: stateFilterTabs,
8023
8025
  menuBarItems: menuBarItems,
8024
8026
  allFields: allFields,
8025
8027
  headerDisplayTitle: headerDisplayTitle
@@ -12523,7 +12525,7 @@ var FieldsDashboard = function FieldsDashboard(_ref) {
12523
12525
  handleClosePane = _useFieldsDashboard.handleClosePane,
12524
12526
  handleReorderPaneClose = _useFieldsDashboard.handleReorderPaneClose,
12525
12527
  searchProps = _useFieldsDashboard.searchProps,
12526
- menuBarFilters = _useFieldsDashboard.menuBarFilters,
12528
+ stateFilterTabs = _useFieldsDashboard.stateFilterTabs,
12527
12529
  menuBarItems = _useFieldsDashboard.menuBarItems,
12528
12530
  allFields = _useFieldsDashboard.allFields,
12529
12531
  headerDisplayTitle = _useFieldsDashboard.headerDisplayTitle;
@@ -12532,8 +12534,8 @@ var FieldsDashboard = function FieldsDashboard(_ref) {
12532
12534
  title: title
12533
12535
  }, isConfigsLoading ? /*#__PURE__*/React__default["default"].createElement("div", {
12534
12536
  className: "flex items-center justify-center"
12535
- }, /*#__PURE__*/React__default["default"].createElement(neetoui.Spinner, null)) : menuBarItems, showStateFilter && menuBarFilters), isScreenLoading && ramda.isEmpty(fields) ? /*#__PURE__*/React__default["default"].createElement("div", {
12536
- className: "flex w-full flex-grow items-center justify-center"
12537
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Spinner, null)) : menuBarItems), isScreenLoading && ramda.isEmpty(fields) ? /*#__PURE__*/React__default["default"].createElement("div", {
12538
+ className: "flex h-screen w-full flex-grow items-center justify-center"
12537
12539
  }, /*#__PURE__*/React__default["default"].createElement(PageLoader__default["default"], null)) : /*#__PURE__*/React__default["default"].createElement(Container__default["default"], null, /*#__PURE__*/React__default["default"].createElement(Header__default["default"], _extends({}, _objectSpread$2(_objectSpread$2({
12538
12540
  breadcrumbs: breadcrumbs
12539
12541
  }, isMenuBarNeeded && {
@@ -12571,7 +12573,7 @@ var FieldsDashboard = function FieldsDashboard(_ref) {
12571
12573
  "data-cy": "neeto-fields-subheader-text",
12572
12574
  style: "h4"
12573
12575
  }, "".concat(count, " "), t("titles.field", count > 1 ? PLURAL : SINGULAR).toLocaleLowerCase())
12574
- }), /*#__PURE__*/React__default["default"].createElement(FieldsTable, {
12576
+ }), showStateFilter && stateFilterTabs, /*#__PURE__*/React__default["default"].createElement(FieldsTable, {
12575
12577
  isLoading: isFieldsFetching || isFieldsLoading,
12576
12578
  rowData: ramda.isEmpty(rowData) ? fields : rowData,
12577
12579
  totalCount: count,