@bigbinary/neeto-fields-frontend 1.3.15 → 1.3.17

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,14 +1,14 @@
1
1
  import React, { useEffect, useRef, useState, useMemo, useLayoutEffect, useCallback, createContext, memo, useReducer, useContext } from 'react';
2
2
  import { useFuncDebounce, useOnClickOutside, withT, useMutationWithInvalidation, useQueryParams, handleMetaClick } from '@bigbinary/neeto-commons-frontend/react-utils';
3
- 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
+ import { Checkbox as Checkbox$1, TimePicker, DatePicker, Select, Input, Textarea, Typography, Pane, Label, Button as Button$1, Tab, Alert, NoData, Table, Spinner } from '@bigbinary/neetoui';
4
4
  import { isNotEmpty, renameKeys, capitalize, findBy, noop as noop$1, filterBy, toLabelAndValue, slugify, humanize, countBy } from '@bigbinary/neeto-cist';
5
- import { values, isNotNil, isNil, isEmpty, prop, pluck, clone, pipe, mergeAll, omit, map, pick, assoc, any, head } from 'ramda';
5
+ import { values, isNotNil, isNil, isEmpty, prop, pluck, clone, pipe, mergeAll, omit, map, pick, assoc, not, any, head } from 'ramda';
6
6
  import classnames from 'classnames';
7
7
  import { useFormikContext, useField, FieldArray } from 'formik';
8
8
  import { t } from 'i18next';
9
9
  import * as yup from 'yup';
10
10
  import { joinHyphenCase, buildUrl, getQueryParams, dateFormat } from '@bigbinary/neeto-commons-frontend/utils';
11
- import { Check, Delete, MenuHorizontal, Info, Reorder } from '@bigbinary/neeto-icons';
11
+ import { Check, Delete, Info, Reorder } from '@bigbinary/neeto-icons';
12
12
  import { Button, ActionBlock as ActionBlock$1, Input as Input$1, Select as Select$1, Switch, Form } from '@bigbinary/neetoui/formik';
13
13
  import { useTranslation, Trans } from 'react-i18next';
14
14
  import { DEFAULT_PAGE_INDEX, DEFAULT_PAGE_SIZE, PLURAL } from '@bigbinary/neeto-commons-frontend/constants';
@@ -19,6 +19,7 @@ import axios from 'axios';
19
19
  import { v4 } from 'uuid';
20
20
  import { Link, useHistory } from 'react-router-dom';
21
21
  import MenuBar from '@bigbinary/neeto-molecules/MenuBar';
22
+ import MoreDropdown from '@bigbinary/neeto-molecules/MoreDropdown';
22
23
  import TableWrapper from '@bigbinary/neeto-molecules/TableWrapper';
23
24
  import NeetoUIHeader from '@bigbinary/neeto-molecules/Header';
24
25
  import { unstable_batchedUpdates, createPortal } from 'react-dom';
@@ -613,6 +614,10 @@ var DEFAULT_FIELD_STATE_TAXONOMY = {
613
614
  inactive: "Inactive"
614
615
  };
615
616
  var ALL_KINDS = values(KINDS);
617
+ var MENU_ITEMS = {
618
+ EDIT: "edit",
619
+ DELETE: "delete"
620
+ };
616
621
 
617
622
  var DIRECT_EDIT_INPUT_FIELDS = [KINDS.checkbox];
618
623
 
@@ -1657,6 +1662,7 @@ var AdditionalInputs = function AdditionalInputs() {
1657
1662
  }), /*#__PURE__*/React.createElement(Button$1, {
1658
1663
  fullWidth: true,
1659
1664
  className: "mb-6 border-dashed text-xs uppercase",
1665
+ "data-cy": "neeto-fields-add-more-option-button",
1660
1666
  label: t("neetoFields.labels.addMoreOption"),
1661
1667
  style: "secondary",
1662
1668
  onClick: function onClick() {
@@ -2412,11 +2418,30 @@ pluralize$1.exports;
2412
2418
  var pluralizeExports = pluralize$1.exports;
2413
2419
  var pluralize = /*@__PURE__*/getDefaultExportFromCjs(pluralizeExports);
2414
2420
 
2415
- var Menu = Dropdown.Menu,
2416
- MenuItem = Dropdown.MenuItem;
2417
- var buildDefaultColumns = function buildDefaultColumns(_ref) {
2418
- var onDeleteClick = _ref.onDeleteClick,
2421
+ var getMenuItems = function getMenuItems(_ref) {
2422
+ var field = _ref.field,
2423
+ onDeleteClick = _ref.onDeleteClick,
2419
2424
  onEditClick = _ref.onEditClick;
2425
+ return [{
2426
+ key: MENU_ITEMS.EDIT,
2427
+ "data-cy": "edit-menu-item-button",
2428
+ label: t("neetoFields.labels.edit"),
2429
+ onClick: function onClick() {
2430
+ return onEditClick(field);
2431
+ }
2432
+ }, {
2433
+ key: MENU_ITEMS.DELETE,
2434
+ "data-cy": "delete-menu-item-button",
2435
+ label: t("neetoFields.labels.delete"),
2436
+ isVisible: not(field.isSystem),
2437
+ onClick: function onClick() {
2438
+ return onDeleteClick(field);
2439
+ }
2440
+ }];
2441
+ };
2442
+ var buildDefaultColumns = function buildDefaultColumns(_ref2) {
2443
+ var onDeleteClick = _ref2.onDeleteClick,
2444
+ onEditClick = _ref2.onEditClick;
2420
2445
  return [{
2421
2446
  key: "name",
2422
2447
  dataIndex: "name",
@@ -2427,25 +2452,20 @@ var buildDefaultColumns = function buildDefaultColumns(_ref) {
2427
2452
  className: "flex items-center justify-between gap-x-3"
2428
2453
  }, /*#__PURE__*/React.createElement(Typography, {
2429
2454
  style: "body2"
2430
- }, name), /*#__PURE__*/React.createElement(Dropdown, {
2431
- buttonStyle: "text",
2432
- icon: MenuHorizontal,
2433
- strategy: "fixed",
2434
- buttonProps: {
2455
+ }, name), /*#__PURE__*/React.createElement(MoreDropdown, {
2456
+ dropdownProps: {
2457
+ strategy: "fixed"
2458
+ },
2459
+ menuItems: getMenuItems({
2460
+ field: field,
2461
+ onDeleteClick: onDeleteClick,
2462
+ onEditClick: onEditClick
2463
+ }),
2464
+ dropdownButtonProps: {
2435
2465
  className: "flex-shrink-0",
2436
2466
  "data-cy": "neeto-fields-options-dropdown"
2437
2467
  }
2438
- }, /*#__PURE__*/React.createElement(Menu, null, /*#__PURE__*/React.createElement(MenuItem.Button, {
2439
- "data-cy": "edit-menu-item-button",
2440
- onClick: function onClick() {
2441
- return onEditClick(field);
2442
- }
2443
- }, t("neetoFields.labels.edit")), !field.isSystem && /*#__PURE__*/React.createElement(MenuItem.Button, {
2444
- "data-cy": "delete-menu-item-button",
2445
- onClick: function onClick() {
2446
- return onDeleteClick(field);
2447
- }
2448
- }, t("neetoFields.labels.delete")))));
2468
+ }));
2449
2469
  }
2450
2470
  }, {
2451
2471
  key: "kind",
@@ -2464,13 +2484,13 @@ var buildDefaultColumns = function buildDefaultColumns(_ref) {
2464
2484
  }
2465
2485
  }];
2466
2486
  };
2467
- var renderMenuBarItems = function renderMenuBarItems(_ref2) {
2468
- var items = _ref2.items,
2469
- isOwnerBased = _ref2.isOwnerBased,
2470
- selectedMenu = _ref2.selectedMenu,
2471
- handleBlockClick = _ref2.handleBlockClick,
2472
- nameAliases = _ref2.nameAliases,
2473
- title = _ref2.title;
2487
+ var renderMenuBarItems = function renderMenuBarItems(_ref3) {
2488
+ var items = _ref3.items,
2489
+ isOwnerBased = _ref3.isOwnerBased,
2490
+ selectedMenu = _ref3.selectedMenu,
2491
+ handleBlockClick = _ref3.handleBlockClick,
2492
+ nameAliases = _ref3.nameAliases,
2493
+ title = _ref3.title;
2474
2494
  title = title.toLocaleLowerCase();
2475
2495
  if (isOwnerBased) {
2476
2496
  return items.map(function (item) {
@@ -2506,12 +2526,12 @@ var renderMenuBarItems = function renderMenuBarItems(_ref2) {
2506
2526
  });
2507
2527
  });
2508
2528
  };
2509
- var renderStateFilterTabs = function renderStateFilterTabs(_ref3) {
2510
- var selectedState = _ref3.selectedState,
2511
- fieldStatesTaxonomy = _ref3.fieldStatesTaxonomy,
2512
- activeFieldsCount = _ref3.activeFieldsCount,
2513
- inactiveFieldsCount = _ref3.inactiveFieldsCount,
2514
- handleBlockClick = _ref3.handleBlockClick;
2529
+ var renderStateFilterTabs = function renderStateFilterTabs(_ref4) {
2530
+ var selectedState = _ref4.selectedState,
2531
+ fieldStatesTaxonomy = _ref4.fieldStatesTaxonomy,
2532
+ activeFieldsCount = _ref4.activeFieldsCount,
2533
+ inactiveFieldsCount = _ref4.inactiveFieldsCount,
2534
+ handleBlockClick = _ref4.handleBlockClick;
2515
2535
  return /*#__PURE__*/React.createElement(Tab, {
2516
2536
  className: "mb-4"
2517
2537
  }, /*#__PURE__*/React.createElement(Tab.Item, {
@@ -2528,11 +2548,11 @@ var renderStateFilterTabs = function renderStateFilterTabs(_ref3) {
2528
2548
  })
2529
2549
  }, fieldStatesTaxonomy.inactive, "(", inactiveFieldsCount, ")"));
2530
2550
  };
2531
- var getResourceName = function getResourceName(_ref4) {
2532
- var isOwnerBased = _ref4.isOwnerBased,
2533
- owners = _ref4.owners,
2534
- selectedVal = _ref4.selectedVal,
2535
- nameAliases = _ref4.nameAliases;
2551
+ var getResourceName = function getResourceName(_ref5) {
2552
+ var isOwnerBased = _ref5.isOwnerBased,
2553
+ owners = _ref5.owners,
2554
+ selectedVal = _ref5.selectedVal,
2555
+ nameAliases = _ref5.nameAliases;
2536
2556
  if (isOwnerBased) {
2537
2557
  var _findBy;
2538
2558
  return (_findBy = findBy({
@@ -2541,10 +2561,10 @@ var getResourceName = function getResourceName(_ref4) {
2541
2561
  }
2542
2562
  return nameAliases[selectedVal] || selectedVal;
2543
2563
  };
2544
- var getDashBoardTitle = function getDashBoardTitle(_ref5) {
2545
- var resourceName = _ref5.resourceName,
2546
- isSingleResource = _ref5.isSingleResource,
2547
- title = _ref5.title;
2564
+ var getDashBoardTitle = function getDashBoardTitle(_ref6) {
2565
+ var resourceName = _ref6.resourceName,
2566
+ isSingleResource = _ref6.isSingleResource,
2567
+ title = _ref6.title;
2548
2568
  var displayTitle = isSingleResource ? title : t("neetoFields.messages.titleForResource", {
2549
2569
  title: title,
2550
2570
  resource: resourceName
@@ -2569,10 +2589,10 @@ var renderNoDataHelpText = function renderNoDataHelpText(title, url) {
2569
2589
  }
2570
2590
  });
2571
2591
  };
2572
- var getDeletionConfirmationMessage = function getDeletionConfirmationMessage(_ref6) {
2573
- var resource = _ref6.resource,
2574
- fieldName = _ref6.fieldName,
2575
- affectedResourcesCount = _ref6.affectedResourcesCount;
2592
+ var getDeletionConfirmationMessage = function getDeletionConfirmationMessage(_ref7) {
2593
+ var resource = _ref7.resource,
2594
+ fieldName = _ref7.fieldName,
2595
+ affectedResourcesCount = _ref7.affectedResourcesCount;
2576
2596
  return affectedResourcesCount > 0 ? /*#__PURE__*/React.createElement(Trans, {
2577
2597
  i18nKey: "neetoFields.messages.confirmDeleteWithCount",
2578
2598
  values: {