@bigbinary/neeto-fields-frontend 1.3.16 → 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
 
@@ -2413,11 +2418,30 @@ pluralize$1.exports;
2413
2418
  var pluralizeExports = pluralize$1.exports;
2414
2419
  var pluralize = /*@__PURE__*/getDefaultExportFromCjs(pluralizeExports);
2415
2420
 
2416
- var Menu = Dropdown.Menu,
2417
- MenuItem = Dropdown.MenuItem;
2418
- var buildDefaultColumns = function buildDefaultColumns(_ref) {
2419
- var onDeleteClick = _ref.onDeleteClick,
2421
+ var getMenuItems = function getMenuItems(_ref) {
2422
+ var field = _ref.field,
2423
+ onDeleteClick = _ref.onDeleteClick,
2420
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;
2421
2445
  return [{
2422
2446
  key: "name",
2423
2447
  dataIndex: "name",
@@ -2428,25 +2452,20 @@ var buildDefaultColumns = function buildDefaultColumns(_ref) {
2428
2452
  className: "flex items-center justify-between gap-x-3"
2429
2453
  }, /*#__PURE__*/React.createElement(Typography, {
2430
2454
  style: "body2"
2431
- }, name), /*#__PURE__*/React.createElement(Dropdown, {
2432
- buttonStyle: "text",
2433
- icon: MenuHorizontal,
2434
- strategy: "fixed",
2435
- 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: {
2436
2465
  className: "flex-shrink-0",
2437
2466
  "data-cy": "neeto-fields-options-dropdown"
2438
2467
  }
2439
- }, /*#__PURE__*/React.createElement(Menu, null, /*#__PURE__*/React.createElement(MenuItem.Button, {
2440
- "data-cy": "edit-menu-item-button",
2441
- onClick: function onClick() {
2442
- return onEditClick(field);
2443
- }
2444
- }, t("neetoFields.labels.edit")), !field.isSystem && /*#__PURE__*/React.createElement(MenuItem.Button, {
2445
- "data-cy": "delete-menu-item-button",
2446
- onClick: function onClick() {
2447
- return onDeleteClick(field);
2448
- }
2449
- }, t("neetoFields.labels.delete")))));
2468
+ }));
2450
2469
  }
2451
2470
  }, {
2452
2471
  key: "kind",
@@ -2465,13 +2484,13 @@ var buildDefaultColumns = function buildDefaultColumns(_ref) {
2465
2484
  }
2466
2485
  }];
2467
2486
  };
2468
- var renderMenuBarItems = function renderMenuBarItems(_ref2) {
2469
- var items = _ref2.items,
2470
- isOwnerBased = _ref2.isOwnerBased,
2471
- selectedMenu = _ref2.selectedMenu,
2472
- handleBlockClick = _ref2.handleBlockClick,
2473
- nameAliases = _ref2.nameAliases,
2474
- 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;
2475
2494
  title = title.toLocaleLowerCase();
2476
2495
  if (isOwnerBased) {
2477
2496
  return items.map(function (item) {
@@ -2507,12 +2526,12 @@ var renderMenuBarItems = function renderMenuBarItems(_ref2) {
2507
2526
  });
2508
2527
  });
2509
2528
  };
2510
- var renderStateFilterTabs = function renderStateFilterTabs(_ref3) {
2511
- var selectedState = _ref3.selectedState,
2512
- fieldStatesTaxonomy = _ref3.fieldStatesTaxonomy,
2513
- activeFieldsCount = _ref3.activeFieldsCount,
2514
- inactiveFieldsCount = _ref3.inactiveFieldsCount,
2515
- 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;
2516
2535
  return /*#__PURE__*/React.createElement(Tab, {
2517
2536
  className: "mb-4"
2518
2537
  }, /*#__PURE__*/React.createElement(Tab.Item, {
@@ -2529,11 +2548,11 @@ var renderStateFilterTabs = function renderStateFilterTabs(_ref3) {
2529
2548
  })
2530
2549
  }, fieldStatesTaxonomy.inactive, "(", inactiveFieldsCount, ")"));
2531
2550
  };
2532
- var getResourceName = function getResourceName(_ref4) {
2533
- var isOwnerBased = _ref4.isOwnerBased,
2534
- owners = _ref4.owners,
2535
- selectedVal = _ref4.selectedVal,
2536
- 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;
2537
2556
  if (isOwnerBased) {
2538
2557
  var _findBy;
2539
2558
  return (_findBy = findBy({
@@ -2542,10 +2561,10 @@ var getResourceName = function getResourceName(_ref4) {
2542
2561
  }
2543
2562
  return nameAliases[selectedVal] || selectedVal;
2544
2563
  };
2545
- var getDashBoardTitle = function getDashBoardTitle(_ref5) {
2546
- var resourceName = _ref5.resourceName,
2547
- isSingleResource = _ref5.isSingleResource,
2548
- title = _ref5.title;
2564
+ var getDashBoardTitle = function getDashBoardTitle(_ref6) {
2565
+ var resourceName = _ref6.resourceName,
2566
+ isSingleResource = _ref6.isSingleResource,
2567
+ title = _ref6.title;
2549
2568
  var displayTitle = isSingleResource ? title : t("neetoFields.messages.titleForResource", {
2550
2569
  title: title,
2551
2570
  resource: resourceName
@@ -2570,10 +2589,10 @@ var renderNoDataHelpText = function renderNoDataHelpText(title, url) {
2570
2589
  }
2571
2590
  });
2572
2591
  };
2573
- var getDeletionConfirmationMessage = function getDeletionConfirmationMessage(_ref6) {
2574
- var resource = _ref6.resource,
2575
- fieldName = _ref6.fieldName,
2576
- affectedResourcesCount = _ref6.affectedResourcesCount;
2592
+ var getDeletionConfirmationMessage = function getDeletionConfirmationMessage(_ref7) {
2593
+ var resource = _ref7.resource,
2594
+ fieldName = _ref7.fieldName,
2595
+ affectedResourcesCount = _ref7.affectedResourcesCount;
2577
2596
  return affectedResourcesCount > 0 ? /*#__PURE__*/React.createElement(Trans, {
2578
2597
  i18nKey: "neetoFields.messages.confirmDeleteWithCount",
2579
2598
  values: {