@bigbinary/neeto-fields-frontend 1.1.9 → 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.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,9 +6634,17 @@ 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(/^\/.*\/[igmsyu]*$/, t$1("validations.invalidRegexPattern")).test({
6638
- name: "regex",
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",
6639
6648
  message: t$1("validations.invalidRegexPattern") || "",
6640
6649
  test: function test(value) {
6641
6650
  try {
@@ -7657,34 +7666,27 @@ var renderMenuBarItems = function renderMenuBarItems(_ref2) {
7657
7666
  });
7658
7667
  });
7659
7668
  };
7660
- var renderMenuBarFilters = function renderMenuBarFilters(_ref3) {
7669
+ var renderStateFilterTabs = function renderStateFilterTabs(_ref3) {
7661
7670
  var selectedState = _ref3.selectedState,
7662
7671
  fieldStatesTaxonomy = _ref3.fieldStatesTaxonomy,
7663
7672
  activeFieldsCount = _ref3.activeFieldsCount,
7664
7673
  inactiveFieldsCount = _ref3.inactiveFieldsCount,
7665
7674
  handleBlockClick = _ref3.handleBlockClick;
7666
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(MenuBar.SubTitle, null, /*#__PURE__*/React.createElement(Typography, {
7667
- "data-cy": "menubar-subtitle",
7668
- style: "h5",
7669
- textTransform: "uppercase",
7670
- weight: "bold"
7671
- }, 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, {
7672
7678
  active: selectedState === FIELD_STATES.active,
7673
- count: activeFieldsCount,
7674
7679
  "data-cy": "menubar-active-block",
7675
- label: fieldStatesTaxonomy.active,
7676
7680
  onClick: handleBlockClick({
7677
7681
  state: FIELD_STATES.active
7678
7682
  })
7679
- }), /*#__PURE__*/React.createElement(MenuBar.Block, {
7683
+ }, fieldStatesTaxonomy.active, "(", activeFieldsCount, ")"), /*#__PURE__*/React.createElement(Tab.Item, {
7680
7684
  active: selectedState === FIELD_STATES.inactive,
7681
- count: inactiveFieldsCount,
7682
7685
  "data-cy": "menubar-inactive-block",
7683
- label: fieldStatesTaxonomy.inactive,
7684
7686
  onClick: handleBlockClick({
7685
7687
  state: FIELD_STATES.inactive
7686
7688
  })
7687
- }));
7689
+ }, fieldStatesTaxonomy.inactive, "(", inactiveFieldsCount, ")"));
7688
7690
  };
7689
7691
  var getResourceName = function getResourceName(_ref4) {
7690
7692
  var isOwnerBased = _ref4.isOwnerBased,
@@ -7702,24 +7704,11 @@ var getResourceName = function getResourceName(_ref4) {
7702
7704
  var getDashBoardTitle = function getDashBoardTitle(_ref5) {
7703
7705
  var resourceName = _ref5.resourceName,
7704
7706
  isSingleResource = _ref5.isSingleResource,
7705
- showStateFilter = _ref5.showStateFilter,
7706
- selectedState = _ref5.selectedState,
7707
7707
  title = _ref5.title;
7708
- var displayTitle = title;
7709
- if (showStateFilter && !isSingleResource) {
7710
- displayTitle = t$1("messages.stateTitleForResource", {
7711
- state: selectedState,
7712
- title: title,
7713
- resource: resourceName
7714
- });
7715
- } else if (showStateFilter && isSingleResource) {
7716
- displayTitle = "".concat(selectedState, " ").concat(title);
7717
- } else if (!showStateFilter && !isSingleResource) {
7718
- displayTitle = t$1("messages.titleForResource", {
7719
- title: title,
7720
- resource: resourceName
7721
- });
7722
- }
7708
+ var displayTitle = isSingleResource ? title : t$1("messages.titleForResource", {
7709
+ title: title,
7710
+ resource: resourceName
7711
+ });
7723
7712
  return humanize(displayTitle);
7724
7713
  };
7725
7714
  var renderNoDataHelpText = function renderNoDataHelpText(title, url) {
@@ -7921,7 +7910,7 @@ var useFieldsDashboard = function useFieldsDashboard(_ref) {
7921
7910
  }
7922
7911
  };
7923
7912
  var isScreenLoading = isFieldsLoading || isConfigsLoading;
7924
- var showCountSubheader = count > 0;
7913
+ var showCountSubheader = count > 0 && !showStateFilter;
7925
7914
  var searchProps = {
7926
7915
  onChange: function onChange(e) {
7927
7916
  return setSearchTerm(e.target.value);
@@ -7931,7 +7920,7 @@ var useFieldsDashboard = function useFieldsDashboard(_ref) {
7931
7920
  className: "w-44"
7932
7921
  };
7933
7922
  var isSingleResource = menuItems.length === 1;
7934
- var isMenuBarNeeded = showStateFilter || !isSingleResource;
7923
+ var isMenuBarNeeded = !isSingleResource && !isConfigsLoading;
7935
7924
  var resourceName = useMemo(function () {
7936
7925
  return getResourceName({
7937
7926
  isOwnerBased: isOwnerBased,
@@ -7943,14 +7932,12 @@ var useFieldsDashboard = function useFieldsDashboard(_ref) {
7943
7932
  var headerDisplayTitle = useMemo(function () {
7944
7933
  return getDashBoardTitle({
7945
7934
  resourceName: resourceName,
7946
- showStateFilter: showStateFilter,
7947
- selectedState: state,
7948
7935
  isSingleResource: isSingleResource,
7949
7936
  title: title
7950
7937
  });
7951
7938
  }, [state, isSingleResource, resourceName]);
7952
- var menuBarFilters = useMemo(function () {
7953
- return renderMenuBarFilters({
7939
+ var stateFilterTabs = useMemo(function () {
7940
+ return renderStateFilterTabs({
7954
7941
  selectedState: state,
7955
7942
  fieldStatesTaxonomy: fieldStatesTaxonomy,
7956
7943
  activeFieldsCount: activeFieldsCount,
@@ -7999,7 +7986,7 @@ var useFieldsDashboard = function useFieldsDashboard(_ref) {
7999
7986
  handleClosePane: handleClosePane,
8000
7987
  handleReorderPaneClose: handleReorderPaneClose,
8001
7988
  searchProps: searchProps,
8002
- menuBarFilters: menuBarFilters,
7989
+ stateFilterTabs: stateFilterTabs,
8003
7990
  menuBarItems: menuBarItems,
8004
7991
  allFields: allFields,
8005
7992
  headerDisplayTitle: headerDisplayTitle
@@ -12503,7 +12490,7 @@ var FieldsDashboard = function FieldsDashboard(_ref) {
12503
12490
  handleClosePane = _useFieldsDashboard.handleClosePane,
12504
12491
  handleReorderPaneClose = _useFieldsDashboard.handleReorderPaneClose,
12505
12492
  searchProps = _useFieldsDashboard.searchProps,
12506
- menuBarFilters = _useFieldsDashboard.menuBarFilters,
12493
+ stateFilterTabs = _useFieldsDashboard.stateFilterTabs,
12507
12494
  menuBarItems = _useFieldsDashboard.menuBarItems,
12508
12495
  allFields = _useFieldsDashboard.allFields,
12509
12496
  headerDisplayTitle = _useFieldsDashboard.headerDisplayTitle;
@@ -12512,8 +12499,8 @@ var FieldsDashboard = function FieldsDashboard(_ref) {
12512
12499
  title: title
12513
12500
  }, isConfigsLoading ? /*#__PURE__*/React.createElement("div", {
12514
12501
  className: "flex items-center justify-center"
12515
- }, /*#__PURE__*/React.createElement(Spinner, null)) : menuBarItems, showStateFilter && menuBarFilters), isScreenLoading && isEmpty(fields) ? /*#__PURE__*/React.createElement("div", {
12516
- 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"
12517
12504
  }, /*#__PURE__*/React.createElement(PageLoader, null)) : /*#__PURE__*/React.createElement(Container, null, /*#__PURE__*/React.createElement(Header, _extends({}, _objectSpread$2(_objectSpread$2({
12518
12505
  breadcrumbs: breadcrumbs
12519
12506
  }, isMenuBarNeeded && {
@@ -12551,7 +12538,7 @@ var FieldsDashboard = function FieldsDashboard(_ref) {
12551
12538
  "data-cy": "neeto-fields-subheader-text",
12552
12539
  style: "h4"
12553
12540
  }, "".concat(count, " "), t("titles.field", count > 1 ? PLURAL : SINGULAR).toLocaleLowerCase())
12554
- }), /*#__PURE__*/React.createElement(FieldsTable, {
12541
+ }), showStateFilter && stateFilterTabs, /*#__PURE__*/React.createElement(FieldsTable, {
12555
12542
  isLoading: isFieldsFetching || isFieldsLoading,
12556
12543
  rowData: isEmpty(rowData) ? fields : rowData,
12557
12544
  totalCount: count,