@carbon/ibm-products 1.11.2 → 1.14.0
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/README.md +0 -3
- package/css/components/Datagrid/styles/addons/CustomizeColumnsModal.css +47 -0
- package/css/components/Datagrid/styles/addons/CustomizeColumnsModal.css.map +1 -0
- package/css/components/Datagrid/styles/addons/RowSizeDropdown.css +20 -0
- package/css/components/Datagrid/styles/addons/RowSizeDropdown.css.map +1 -0
- package/css/components/Datagrid/styles/datagrid.css +264 -0
- package/css/components/Datagrid/styles/datagrid.css.map +1 -0
- package/css/components/Datagrid/styles/index.css +509 -0
- package/css/components/Datagrid/styles/index.css.map +1 -0
- package/css/components/Datagrid/styles/useActionsColumn.css +23 -0
- package/css/components/Datagrid/styles/useActionsColumn.css.map +1 -0
- package/css/components/Datagrid/styles/useColumnRightAlign.css +28 -0
- package/css/components/Datagrid/styles/useColumnRightAlign.css.map +1 -0
- package/css/components/Datagrid/styles/useNestedRows.css +15 -0
- package/css/components/Datagrid/styles/useNestedRows.css.map +1 -0
- package/css/components/Datagrid/styles/useNestedTable.css +25 -0
- package/css/components/Datagrid/styles/useNestedTable.css.map +1 -0
- package/css/components/Datagrid/styles/useSelectAllToggle.css +28 -0
- package/css/components/Datagrid/styles/useSelectAllToggle.css.map +1 -0
- package/css/components/Datagrid/styles/useSortableColumns.css +50 -0
- package/css/components/Datagrid/styles/useSortableColumns.css.map +1 -0
- package/css/components/Datagrid/styles/useStickyColumn.css +35 -0
- package/css/components/Datagrid/styles/useStickyColumn.css.map +1 -0
- package/css/index-full-carbon.css +2019 -376
- package/css/index-full-carbon.css.map +1 -1
- package/css/index-full-carbon.min.css +6 -6
- package/css/index-full-carbon.min.css.map +1 -1
- package/css/index-without-carbon-released-only.css +18 -6
- package/css/index-without-carbon-released-only.css.map +1 -1
- package/css/index-without-carbon-released-only.min.css +2 -2
- package/css/index-without-carbon-released-only.min.css.map +1 -1
- package/css/index-without-carbon.css +679 -19
- package/css/index-without-carbon.css.map +1 -1
- package/css/index-without-carbon.min.css +5 -5
- package/css/index-without-carbon.min.css.map +1 -1
- package/css/index.css +679 -19
- package/css/index.css.map +1 -1
- package/css/index.min.css +6 -6
- package/css/index.min.css.map +1 -1
- package/es/components/ActionBar/ActionBar.js +3 -1
- package/es/components/ActionBar/ActionBarOverflowItems.js +5 -3
- package/es/components/AddSelect/AddSelect.js +133 -30
- package/es/components/AddSelect/AddSelectColumn.js +0 -1
- package/es/components/AddSelect/AddSelectFilter.js +129 -0
- package/es/components/AddSelect/AddSelectList.js +59 -13
- package/es/components/AddSelect/AddSelectSidebar.js +15 -5
- package/es/components/AddSelect/add-select-utils.js +30 -0
- package/es/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +2 -0
- package/es/components/DataSpreadsheet/DataSpreadsheet.js +262 -164
- package/es/components/DataSpreadsheet/DataSpreadsheetBody.js +191 -51
- package/es/components/DataSpreadsheet/DataSpreadsheetHeader.js +65 -13
- package/es/components/DataSpreadsheet/hooks/index.js +10 -0
- package/es/components/DataSpreadsheet/hooks/useMultipleKeyTracking.js +111 -0
- package/es/components/DataSpreadsheet/hooks/useResetSpreadsheetFocus.js +2 -4
- package/es/components/DataSpreadsheet/hooks/useSpreadsheetOutsideClick.js +6 -6
- package/es/components/DataSpreadsheet/utils/handleHeaderCellSelection.js +3 -1
- package/es/components/DataSpreadsheet/utils/handleMultipleKeys.js +80 -6
- package/es/components/Datagrid/Datagrid/Datagrid.js +70 -0
- package/es/components/Datagrid/Datagrid/DatagridBody.js +36 -0
- package/es/components/Datagrid/Datagrid/DatagridEmptyBody.js +19 -0
- package/es/components/Datagrid/Datagrid/DatagridExpandedRow.js +26 -0
- package/es/components/Datagrid/Datagrid/DatagridHead.js +31 -0
- package/es/components/Datagrid/Datagrid/DatagridHeaderRow.js +57 -0
- package/es/components/Datagrid/Datagrid/DatagridRefBody.js +37 -0
- package/es/components/Datagrid/Datagrid/DatagridRow.js +50 -0
- package/es/components/Datagrid/Datagrid/DatagridSelectAll.js +50 -0
- package/es/components/Datagrid/Datagrid/DatagridSelectAllWithToggle.js +122 -0
- package/es/components/Datagrid/Datagrid/DatagridSimpleBody.js +36 -0
- package/es/components/Datagrid/Datagrid/DatagridToolbar.js +22 -0
- package/es/components/Datagrid/Datagrid/DatagridVirtualBody.js +87 -0
- package/es/components/Datagrid/Datagrid/DraggableElement.js +188 -0
- package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/Actions.js +78 -0
- package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/ButtonWrapper.js +51 -0
- package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +140 -0
- package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsModal.js +157 -0
- package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/ModalWrapper.js +62 -0
- package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/common.js +13 -0
- package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/index.js +9 -0
- package/es/components/Datagrid/Datagrid/addons/RowSize/RowSizeDropdown.js +62 -0
- package/es/components/Datagrid/Datagrid/addons/RowSize/RowSizeRadioGroup.js +139 -0
- package/es/components/Datagrid/Datagrid/addons/RowSize/index.js +8 -0
- package/es/components/Datagrid/Datagrid/index.js +8 -0
- package/es/components/Datagrid/Datagrid.stories/CustomizeColumnStory.js +6 -0
- package/es/components/Datagrid/Datagrid.stories/LeftPanelStory.js +6 -0
- package/es/components/Datagrid/Datagrid.stories/RowSizeDropdownStory.js +6 -0
- package/es/components/Datagrid/Datagrid.stories/SelectAllWithToggleStory.js +6 -0
- package/es/components/Datagrid/Datagrid.stories/StickyActionsColumnStory.js +92 -0
- package/es/components/Datagrid/Datagrid.stories/common.js +199 -0
- package/es/components/Datagrid/Datagrid.stories/index.js +5 -0
- package/es/components/Datagrid/common-column-ids.js +8 -0
- package/es/components/Datagrid/index.js +22 -0
- package/es/components/Datagrid/useActionsColumn.js +86 -0
- package/es/components/Datagrid/useColumnRightAlign.js +52 -0
- package/es/components/Datagrid/useCustomizeColumns.js +45 -0
- package/es/components/Datagrid/useDatagrid.js +44 -0
- package/es/components/Datagrid/useDefaultStringRenderer.js +48 -0
- package/es/components/Datagrid/useDisableSelectRows.js +84 -0
- package/es/components/Datagrid/useExpandedRow.js +52 -0
- package/es/components/Datagrid/useFlexResize.js +51 -0
- package/es/components/Datagrid/useFloatingScroll.js +88 -0
- package/es/components/Datagrid/useInfiniteScroll.js +54 -0
- package/es/components/Datagrid/useNestedRows.js +53 -0
- package/es/components/Datagrid/useOnRowClick.js +37 -0
- package/es/components/Datagrid/useParentDimensions.js +65 -0
- package/es/components/Datagrid/useResizeTable.js +40 -0
- package/es/components/Datagrid/useRowExpander.js +34 -0
- package/es/components/Datagrid/useRowIsMouseOver.js +61 -0
- package/es/components/Datagrid/useRowRenderer.js +30 -0
- package/es/components/Datagrid/useRowSize.js +56 -0
- package/es/components/Datagrid/useSelectAllToggle.js +74 -0
- package/es/components/Datagrid/useSelectRows.js +107 -0
- package/es/components/Datagrid/useSkeletonRows.js +32 -0
- package/es/components/Datagrid/useSortableColumns.js +110 -0
- package/es/components/Datagrid/useStickyColumn.js +183 -0
- package/es/components/HTTPErrors/assets/HTTPErrorSvg403.js +2 -3
- package/es/components/HTTPErrors/assets/HTTPErrorSvg404.js +2 -3
- package/es/components/HTTPErrors/assets/HTTPErrorSvgOther.js +2 -3
- package/es/components/ImportModal/ImportModal.js +2 -2
- package/es/components/TagSet/TagSet.js +12 -3
- package/es/components/UserProfileImage/UserProfileImage.js +38 -10
- package/es/components/index.js +2 -1
- package/es/global/js/package-settings.js +2 -1
- package/lib/components/ActionBar/ActionBar.js +3 -1
- package/lib/components/ActionBar/ActionBarOverflowItems.js +5 -3
- package/lib/components/AddSelect/AddSelect.js +132 -28
- package/lib/components/AddSelect/AddSelectColumn.js +0 -1
- package/lib/components/AddSelect/AddSelectFilter.js +147 -0
- package/lib/components/AddSelect/AddSelectList.js +61 -12
- package/lib/components/AddSelect/AddSelectSidebar.js +15 -11
- package/lib/components/AddSelect/add-select-utils.js +35 -2
- package/lib/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +2 -0
- package/lib/components/DataSpreadsheet/DataSpreadsheet.js +267 -168
- package/lib/components/DataSpreadsheet/DataSpreadsheetBody.js +191 -57
- package/lib/components/DataSpreadsheet/DataSpreadsheetHeader.js +67 -18
- package/lib/components/DataSpreadsheet/hooks/index.js +37 -0
- package/lib/components/DataSpreadsheet/hooks/useMultipleKeyTracking.js +123 -0
- package/lib/components/DataSpreadsheet/hooks/useResetSpreadsheetFocus.js +2 -4
- package/lib/components/DataSpreadsheet/hooks/useSpreadsheetOutsideClick.js +6 -5
- package/lib/components/DataSpreadsheet/utils/handleHeaderCellSelection.js +3 -1
- package/lib/components/DataSpreadsheet/utils/handleMultipleKeys.js +83 -7
- package/lib/components/Datagrid/Datagrid/Datagrid.js +86 -0
- package/lib/components/Datagrid/Datagrid/DatagridBody.js +50 -0
- package/lib/components/Datagrid/Datagrid/DatagridEmptyBody.js +31 -0
- package/lib/components/Datagrid/Datagrid/DatagridExpandedRow.js +38 -0
- package/lib/components/Datagrid/Datagrid/DatagridHead.js +43 -0
- package/lib/components/Datagrid/Datagrid/DatagridHeaderRow.js +73 -0
- package/lib/components/Datagrid/Datagrid/DatagridRefBody.js +44 -0
- package/lib/components/Datagrid/Datagrid/DatagridRow.js +56 -0
- package/lib/components/Datagrid/Datagrid/DatagridSelectAll.js +55 -0
- package/lib/components/Datagrid/Datagrid/DatagridSelectAllWithToggle.js +139 -0
- package/lib/components/Datagrid/Datagrid/DatagridSimpleBody.js +44 -0
- package/lib/components/Datagrid/Datagrid/DatagridToolbar.js +35 -0
- package/lib/components/Datagrid/Datagrid/DatagridVirtualBody.js +101 -0
- package/lib/components/Datagrid/Datagrid/DraggableElement.js +210 -0
- package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/Actions.js +92 -0
- package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/ButtonWrapper.js +65 -0
- package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +166 -0
- package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsModal.js +173 -0
- package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/ModalWrapper.js +73 -0
- package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/common.js +25 -0
- package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/index.js +23 -0
- package/lib/components/Datagrid/Datagrid/addons/RowSize/RowSizeDropdown.js +80 -0
- package/lib/components/Datagrid/Datagrid/addons/RowSize/RowSizeRadioGroup.js +160 -0
- package/lib/components/Datagrid/Datagrid/addons/RowSize/index.js +15 -0
- package/lib/components/Datagrid/Datagrid/index.js +15 -0
- package/lib/components/Datagrid/Datagrid.stories/CustomizeColumnStory.js +13 -0
- package/lib/components/Datagrid/Datagrid.stories/LeftPanelStory.js +13 -0
- package/lib/components/Datagrid/Datagrid.stories/RowSizeDropdownStory.js +13 -0
- package/lib/components/Datagrid/Datagrid.stories/SelectAllWithToggleStory.js +13 -0
- package/lib/components/Datagrid/Datagrid.stories/StickyActionsColumnStory.js +112 -0
- package/lib/components/Datagrid/Datagrid.stories/common.js +215 -0
- package/lib/components/Datagrid/Datagrid.stories/index.js +47 -0
- package/lib/components/Datagrid/common-column-ids.js +16 -0
- package/lib/components/Datagrid/index.js +127 -0
- package/lib/components/Datagrid/useActionsColumn.js +94 -0
- package/lib/components/Datagrid/useColumnRightAlign.js +59 -0
- package/lib/components/Datagrid/useCustomizeColumns.js +55 -0
- package/lib/components/Datagrid/useDatagrid.js +58 -0
- package/lib/components/Datagrid/useDefaultStringRenderer.js +54 -0
- package/lib/components/Datagrid/useDisableSelectRows.js +92 -0
- package/lib/components/Datagrid/useExpandedRow.js +58 -0
- package/lib/components/Datagrid/useFlexResize.js +61 -0
- package/lib/components/Datagrid/useFloatingScroll.js +101 -0
- package/lib/components/Datagrid/useInfiniteScroll.js +67 -0
- package/lib/components/Datagrid/useNestedRows.js +65 -0
- package/lib/components/Datagrid/useOnRowClick.js +45 -0
- package/lib/components/Datagrid/useParentDimensions.js +75 -0
- package/lib/components/Datagrid/useResizeTable.js +48 -0
- package/lib/components/Datagrid/useRowExpander.js +45 -0
- package/lib/components/Datagrid/useRowIsMouseOver.js +66 -0
- package/lib/components/Datagrid/useRowRenderer.js +40 -0
- package/lib/components/Datagrid/useRowSize.js +67 -0
- package/lib/components/Datagrid/useSelectAllToggle.js +88 -0
- package/lib/components/Datagrid/useSelectRows.js +119 -0
- package/lib/components/Datagrid/useSkeletonRows.js +42 -0
- package/lib/components/Datagrid/useSortableColumns.js +117 -0
- package/lib/components/Datagrid/useStickyColumn.js +190 -0
- package/lib/components/HTTPErrors/assets/HTTPErrorSvg403.js +2 -3
- package/lib/components/HTTPErrors/assets/HTTPErrorSvg404.js +2 -3
- package/lib/components/HTTPErrors/assets/HTTPErrorSvgOther.js +2 -3
- package/lib/components/ImportModal/ImportModal.js +1 -1
- package/lib/components/TagSet/TagSet.js +12 -3
- package/lib/components/UserProfileImage/UserProfileImage.js +38 -10
- package/lib/components/index.js +9 -1
- package/lib/global/js/package-settings.js +2 -1
- package/package.json +19 -15
- package/scss/components/AboutModal/_about-modal.scss +2 -2
- package/scss/components/ActionSet/_action-set.scss +3 -1
- package/scss/components/AddSelect/_add-select.scss +87 -3
- package/scss/components/CreateModal/_create-modal.scss +7 -5
- package/scss/components/CreateModal/_storybook-styles.scss +8 -7
- package/scss/components/DataSpreadsheet/_data-spreadsheet.scss +70 -10
- package/scss/components/Datagrid/_datagrid.scss +66 -0
- package/scss/components/Datagrid/_index.scss +8 -0
- package/scss/components/Datagrid/_storybook-styles.scss +26 -0
- package/scss/components/Datagrid/styles/_variables.scss +9 -0
- package/scss/components/Datagrid/styles/addons/CustomizeColumnsModal.scss +48 -0
- package/scss/components/Datagrid/styles/addons/RowSizeDropdown.scss +23 -0
- package/scss/components/Datagrid/styles/datagrid.scss +318 -0
- package/scss/components/Datagrid/styles/index.scss +17 -0
- package/scss/components/Datagrid/styles/useActionsColumn.scss +24 -0
- package/scss/components/Datagrid/styles/useColumnRightAlign.scss +29 -0
- package/scss/components/Datagrid/styles/useNestedRows.scss +17 -0
- package/scss/components/Datagrid/styles/useNestedTable.scss +28 -0
- package/scss/components/Datagrid/styles/useSelectAllToggle.scss +28 -0
- package/scss/components/Datagrid/styles/useSortableColumns.scss +55 -0
- package/scss/components/Datagrid/styles/useStickyColumn.scss +38 -0
- package/scss/components/ExportModal/_export-modal.scss +3 -3
- package/scss/components/HTTPErrors/_http-errors.scss +16 -16
- package/scss/components/InlineEdit/_inline-edit.scss +0 -1
- package/scss/components/ModifiedTabs/_modified-tabs.scss +0 -10
- package/scss/components/NotificationsPanel/_notifications-panel.scss +3 -3
- package/scss/components/OptionsTile/_options-tile.scss +0 -1
- package/scss/components/PageHeader/_page-header.scss +4 -0
- package/scss/components/RemoveModal/_remove-modal.scss +3 -3
- package/scss/components/TagSet/_tag-set.scss +2 -1
- package/scss/components/Tearsheet/_tearsheet.scss +5 -2
- package/scss/components/_index.scss +1 -0
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.default = void 0;
|
|
11
|
+
|
|
12
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
|
+
|
|
14
|
+
var React = _interopRequireWildcard(require("react"));
|
|
15
|
+
|
|
16
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
17
|
+
|
|
18
|
+
var _iconsReact = require("@carbon/icons-react");
|
|
19
|
+
|
|
20
|
+
var _reactDnd = require("react-dnd");
|
|
21
|
+
|
|
22
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
23
|
+
|
|
24
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
25
|
+
|
|
26
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
27
|
+
|
|
28
|
+
// @flow
|
|
29
|
+
|
|
30
|
+
/*
|
|
31
|
+
* Licensed Materials - Property of IBM
|
|
32
|
+
* 5724-Q36
|
|
33
|
+
* (c) Copyright IBM Corp. 2021
|
|
34
|
+
* US Government Users Restricted Rights - Use, duplication or disclosure
|
|
35
|
+
* restricted by GSA ADP Schedule Contract with IBM Corp.
|
|
36
|
+
*/
|
|
37
|
+
var useEffect = React.useEffect,
|
|
38
|
+
useRef = React.useRef,
|
|
39
|
+
useState = React.useState;
|
|
40
|
+
var DRAG_TYPE = 'wkc-shared-ui-draggable-element';
|
|
41
|
+
|
|
42
|
+
var DraggableElement = function DraggableElement(_ref) {
|
|
43
|
+
var id = _ref.id,
|
|
44
|
+
index = _ref.index,
|
|
45
|
+
listData = _ref.listData,
|
|
46
|
+
children = _ref.children,
|
|
47
|
+
type = _ref.type,
|
|
48
|
+
disabled = _ref.disabled,
|
|
49
|
+
ariaLabel = _ref.ariaLabel,
|
|
50
|
+
onGrab = _ref.onGrab,
|
|
51
|
+
onArrowKeyDown = _ref.onArrowKeyDown,
|
|
52
|
+
isFocused = _ref.isFocused,
|
|
53
|
+
moveElement = _ref.moveElement,
|
|
54
|
+
_ref$positionLabel = _ref.positionLabel,
|
|
55
|
+
positionLabel = _ref$positionLabel === void 0 ? 'Current position {index} of {total}' : _ref$positionLabel,
|
|
56
|
+
_ref$grabbedLabel = _ref.grabbedLabel,
|
|
57
|
+
grabbedLabel = _ref$grabbedLabel === void 0 ? '{itemName} grabbed.' : _ref$grabbedLabel,
|
|
58
|
+
_ref$droppedLabel = _ref.droppedLabel,
|
|
59
|
+
droppedLabel = _ref$droppedLabel === void 0 ? '{itemName} dropped.' : _ref$droppedLabel;
|
|
60
|
+
var ref = useRef();
|
|
61
|
+
|
|
62
|
+
var _useDrop = (0, _reactDnd.useDrop)({
|
|
63
|
+
accept: DRAG_TYPE + type,
|
|
64
|
+
collect: function collect(monitor) {
|
|
65
|
+
return {
|
|
66
|
+
isOver: !!monitor.isOver()
|
|
67
|
+
};
|
|
68
|
+
},
|
|
69
|
+
drop: function drop(item) {
|
|
70
|
+
moveElement(item.index, index);
|
|
71
|
+
},
|
|
72
|
+
canDrop: function canDrop() {
|
|
73
|
+
return !disabled;
|
|
74
|
+
},
|
|
75
|
+
hover: function hover(item) {
|
|
76
|
+
var dragIndex = item.index;
|
|
77
|
+
var hoverIndex = index; // Don't replace items with themselves
|
|
78
|
+
|
|
79
|
+
// Don't replace items with themselves
|
|
80
|
+
if (dragIndex === hoverIndex || disabled) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
moveElement(dragIndex, hoverIndex); // Time to actually perform the action
|
|
85
|
+
// Note: we're mutating the monitor item here!
|
|
86
|
+
// Generally it's better to avoid mutations,
|
|
87
|
+
// but it's good here for the sake of performance
|
|
88
|
+
// to avoid expensive index searches.
|
|
89
|
+
// eslint-disable-next-line no-param-reassign
|
|
90
|
+
|
|
91
|
+
// Time to actually perform the action
|
|
92
|
+
// Note: we're mutating the monitor item here!
|
|
93
|
+
// Generally it's better to avoid mutations,
|
|
94
|
+
// but it's good here for the sake of performance
|
|
95
|
+
// to avoid expensive index searches.
|
|
96
|
+
// eslint-disable-next-line no-param-reassign
|
|
97
|
+
item.index = hoverIndex;
|
|
98
|
+
}
|
|
99
|
+
}),
|
|
100
|
+
_useDrop2 = (0, _slicedToArray2.default)(_useDrop, 2),
|
|
101
|
+
isOver = _useDrop2[0].isOver,
|
|
102
|
+
drop = _useDrop2[1];
|
|
103
|
+
|
|
104
|
+
var _useDrag = (0, _reactDnd.useDrag)({
|
|
105
|
+
type: DRAG_TYPE + type,
|
|
106
|
+
item: {
|
|
107
|
+
id: id,
|
|
108
|
+
index: index
|
|
109
|
+
},
|
|
110
|
+
canDrag: function canDrag() {
|
|
111
|
+
return !disabled;
|
|
112
|
+
},
|
|
113
|
+
collect: function collect(monitor) {
|
|
114
|
+
return {
|
|
115
|
+
isDragging: monitor.isDragging()
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
}),
|
|
119
|
+
_useDrag2 = (0, _slicedToArray2.default)(_useDrag, 3),
|
|
120
|
+
isDragging = _useDrag2[0].isDragging,
|
|
121
|
+
drag = _useDrag2[1],
|
|
122
|
+
preview = _useDrag2[2];
|
|
123
|
+
|
|
124
|
+
useEffect(function () {
|
|
125
|
+
if (isFocused && ref && ref.current) {
|
|
126
|
+
ref.current.focus();
|
|
127
|
+
}
|
|
128
|
+
}, [isFocused]);
|
|
129
|
+
|
|
130
|
+
var _useState = useState(false),
|
|
131
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
132
|
+
isGrabbed = _useState2[0],
|
|
133
|
+
setIsGrabbed = _useState2[1];
|
|
134
|
+
|
|
135
|
+
var _useState3 = useState(isFocused),
|
|
136
|
+
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
137
|
+
isFocusedOnItem = _useState4[0],
|
|
138
|
+
setIsFocusedOnItem = _useState4[1];
|
|
139
|
+
|
|
140
|
+
drop(ref);
|
|
141
|
+
var content = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
|
142
|
+
className: (0, _classnames.default)({
|
|
143
|
+
disabled: disabled
|
|
144
|
+
}, 'wkc-draggable-handleStyle')
|
|
145
|
+
}, /*#__PURE__*/React.createElement(_iconsReact.Draggable16, null)), children);
|
|
146
|
+
return /*#__PURE__*/React.createElement("li", {
|
|
147
|
+
className: (0, _classnames.default)({
|
|
148
|
+
'wkc-draggable-handleHolder-isOver': isOver && !disabled
|
|
149
|
+
}, {
|
|
150
|
+
'wkc-draggable-handleHolder--grabbed': isGrabbed
|
|
151
|
+
}, 'wkc-draggable-handleHolder'),
|
|
152
|
+
ref: ref,
|
|
153
|
+
"aria-selected": isFocused,
|
|
154
|
+
role: "option",
|
|
155
|
+
tabIndex: isFocused ? 0 : -1,
|
|
156
|
+
onKeyPress: function onKeyPress(e) {
|
|
157
|
+
if (e.key === ' ' && e.target === e.currentTarget && !disabled) {
|
|
158
|
+
var positionText = positionLabel.replace('{index}', index + 1).replace('{total}', listData.length);
|
|
159
|
+
var grabAriaText = (isGrabbed ? droppedLabel : grabbedLabel).replace('{itemName}', ariaLabel);
|
|
160
|
+
onGrab(grabAriaText + positionText);
|
|
161
|
+
setIsGrabbed(!isGrabbed);
|
|
162
|
+
e.preventDefault();
|
|
163
|
+
}
|
|
164
|
+
},
|
|
165
|
+
onKeyDown: function onKeyDown(e) {
|
|
166
|
+
if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {
|
|
167
|
+
onArrowKeyDown(e, isGrabbed, index);
|
|
168
|
+
}
|
|
169
|
+
},
|
|
170
|
+
onBlur: function onBlur(e) {
|
|
171
|
+
// handle when focus move to inner elements
|
|
172
|
+
setIsFocusedOnItem(e.currentTarget === e.target);
|
|
173
|
+
},
|
|
174
|
+
onFocus: function onFocus(e) {
|
|
175
|
+
// handle when focus move to li element
|
|
176
|
+
setIsFocusedOnItem(e.currentTarget === e.target);
|
|
177
|
+
}
|
|
178
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
179
|
+
className: "wkc-shared-ui--assistive-text"
|
|
180
|
+
}, ariaLabel), isDragging && !isOver ? /*#__PURE__*/React.createElement("div", {
|
|
181
|
+
ref: preview,
|
|
182
|
+
className: "wkc-draggable-handleHolder-droppable"
|
|
183
|
+
}, content) : /*#__PURE__*/React.createElement("div", {
|
|
184
|
+
ref: drag,
|
|
185
|
+
"aria-hidden": isFocused && isFocusedOnItem // if focus on li, hide the children from aria
|
|
186
|
+
,
|
|
187
|
+
className: (0, _classnames.default)({
|
|
188
|
+
'wkc-draggable-handleStyle': !disabled
|
|
189
|
+
}, 'wkc-draggable-handleHolder-droppable')
|
|
190
|
+
}, (!isOver || disabled) && content));
|
|
191
|
+
};
|
|
192
|
+
|
|
193
|
+
DraggableElement.propTypes = {
|
|
194
|
+
ariaLabel: _propTypes.default.string.isRequired,
|
|
195
|
+
children: _propTypes.default.element.isRequired,
|
|
196
|
+
disabled: _propTypes.default.bool,
|
|
197
|
+
droppedLabel: _propTypes.default.string,
|
|
198
|
+
grabbedLabel: _propTypes.default.string,
|
|
199
|
+
id: _propTypes.default.string.isRequired,
|
|
200
|
+
index: _propTypes.default.number.isRequired,
|
|
201
|
+
isFocused: _propTypes.default.bool.isRequired,
|
|
202
|
+
listData: _propTypes.default.array.isRequired,
|
|
203
|
+
moveElement: _propTypes.default.func.isRequired,
|
|
204
|
+
onArrowKeyDown: _propTypes.default.func.isRequired,
|
|
205
|
+
onGrab: _propTypes.default.func.isRequired,
|
|
206
|
+
positionLabel: _propTypes.default.string,
|
|
207
|
+
type: _propTypes.default.string.isRequired
|
|
208
|
+
};
|
|
209
|
+
var _default = DraggableElement;
|
|
210
|
+
exports.default = _default;
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.default = void 0;
|
|
11
|
+
|
|
12
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
|
+
|
|
14
|
+
var _iconsReact = require("@carbon/icons-react");
|
|
15
|
+
|
|
16
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
17
|
+
|
|
18
|
+
var _carbonComponentsReact = require("carbon-components-react");
|
|
19
|
+
|
|
20
|
+
var React = _interopRequireWildcard(require("react"));
|
|
21
|
+
|
|
22
|
+
var _keyBy = _interopRequireDefault(require("lodash/keyBy"));
|
|
23
|
+
|
|
24
|
+
var _settings = require("../../../../../settings");
|
|
25
|
+
|
|
26
|
+
var _common = require("./common");
|
|
27
|
+
|
|
28
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
29
|
+
|
|
30
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
31
|
+
|
|
32
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
33
|
+
|
|
34
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
35
|
+
|
|
36
|
+
var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
|
|
37
|
+
|
|
38
|
+
var Actions = function Actions(_ref) {
|
|
39
|
+
var searchText = _ref.searchText,
|
|
40
|
+
columns = _ref.columns,
|
|
41
|
+
originalColumnDefinitions = _ref.originalColumnDefinitions,
|
|
42
|
+
setColumnsObject = _ref.setColumnsObject,
|
|
43
|
+
setSearchText = _ref.setSearchText,
|
|
44
|
+
_ref$findColumnPlaceh = _ref.findColumnPlaceholderLabel,
|
|
45
|
+
findColumnPlaceholderLabel = _ref$findColumnPlaceh === void 0 ? 'Find column' : _ref$findColumnPlaceh,
|
|
46
|
+
_ref$resetToDefaultLa = _ref.resetToDefaultLabel,
|
|
47
|
+
resetToDefaultLabel = _ref$resetToDefaultLa === void 0 ? 'Reset to default' : _ref$resetToDefaultLa;
|
|
48
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
49
|
+
className: "".concat(blockClass, "__customize-columns-modal--actions"),
|
|
50
|
+
"test-id": "".concat(blockClass, "__customize-columns-modal--actions")
|
|
51
|
+
}, /*#__PURE__*/React.createElement(_carbonComponentsReact.Search, {
|
|
52
|
+
placeholder: findColumnPlaceholderLabel,
|
|
53
|
+
value: searchText,
|
|
54
|
+
size: "sm",
|
|
55
|
+
labelText: findColumnPlaceholderLabel,
|
|
56
|
+
onChange: function onChange(e) {
|
|
57
|
+
// TODO: is it performant?
|
|
58
|
+
setSearchText(e.target.value);
|
|
59
|
+
},
|
|
60
|
+
"test-id": "".concat(blockClass, "__customize-columns-modal--search")
|
|
61
|
+
}), /*#__PURE__*/React.createElement(_carbonComponentsReact.Button, {
|
|
62
|
+
onClick: function onClick() {
|
|
63
|
+
var reset = resetToOriginal(columns, originalColumnDefinitions);
|
|
64
|
+
setColumnsObject(reset);
|
|
65
|
+
},
|
|
66
|
+
size: "sm",
|
|
67
|
+
kind: "ghost",
|
|
68
|
+
renderIcon: _iconsReact.Reset16,
|
|
69
|
+
"test-id": "".concat(blockClass, "__customize-columns-modal--reset")
|
|
70
|
+
}, resetToDefaultLabel));
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
var resetToOriginal = function resetToOriginal(columnDefinitions, originalColumnDefinitions) {
|
|
74
|
+
var keyedDefs = (0, _keyBy.default)(columnDefinitions, 'id');
|
|
75
|
+
return originalColumnDefinitions.map(function (colDef) {
|
|
76
|
+
return _objectSpread(_objectSpread({}, keyedDefs[colDef.id]), {}, {
|
|
77
|
+
isVisible: (0, _common.isColumnVisible)(colDef)
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
Actions.propTypes = {
|
|
83
|
+
columns: _propTypes.default.array.isRequired,
|
|
84
|
+
findColumnPlaceholderLabel: _propTypes.default.string,
|
|
85
|
+
originalColumnDefinitions: _propTypes.default.array.isRequired,
|
|
86
|
+
resetToDefaultLabel: _propTypes.default.string,
|
|
87
|
+
searchText: _propTypes.default.string.isRequired,
|
|
88
|
+
setColumnsObject: _propTypes.default.func.isRequired,
|
|
89
|
+
setSearchText: _propTypes.default.func.isRequired
|
|
90
|
+
};
|
|
91
|
+
var _default = Actions;
|
|
92
|
+
exports.default = _default;
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.default = void 0;
|
|
11
|
+
|
|
12
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
13
|
+
|
|
14
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
15
|
+
|
|
16
|
+
var React = _interopRequireWildcard(require("react"));
|
|
17
|
+
|
|
18
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
19
|
+
|
|
20
|
+
var _iconsReact = require("@carbon/icons-react");
|
|
21
|
+
|
|
22
|
+
var _carbonComponentsReact = require("carbon-components-react");
|
|
23
|
+
|
|
24
|
+
var _settings = require("../../../../../settings");
|
|
25
|
+
|
|
26
|
+
var _excluded = ["onClick", "setIsModalOpen", "isModalOpen", "iconTooltipLabel"];
|
|
27
|
+
|
|
28
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
29
|
+
|
|
30
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
31
|
+
|
|
32
|
+
var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
|
|
33
|
+
|
|
34
|
+
var ButtonWrapper = function ButtonWrapper(_ref) {
|
|
35
|
+
var _onClick = _ref.onClick,
|
|
36
|
+
setIsModalOpen = _ref.setIsModalOpen,
|
|
37
|
+
isModalOpen = _ref.isModalOpen,
|
|
38
|
+
_ref$iconTooltipLabel = _ref.iconTooltipLabel,
|
|
39
|
+
iconTooltipLabel = _ref$iconTooltipLabel === void 0 ? 'Customize columns' : _ref$iconTooltipLabel,
|
|
40
|
+
rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
41
|
+
return /*#__PURE__*/React.createElement(_carbonComponentsReact.Button, (0, _extends2.default)({}, rest, {
|
|
42
|
+
renderIcon: _iconsReact.Column16,
|
|
43
|
+
iconDescription: iconTooltipLabel,
|
|
44
|
+
tooltipPosition: "left",
|
|
45
|
+
kind: "ghost",
|
|
46
|
+
hasIconOnly: true,
|
|
47
|
+
"test-id": "".concat(blockClass, "__customize-columns-trigger"),
|
|
48
|
+
onClick: function onClick() {
|
|
49
|
+
setIsModalOpen(!isModalOpen);
|
|
50
|
+
|
|
51
|
+
if (typeof _onClick === 'function') {
|
|
52
|
+
_onClick();
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}));
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
ButtonWrapper.propTypes = {
|
|
59
|
+
iconTooltipLabel: _propTypes.default.string,
|
|
60
|
+
isModalOpen: _propTypes.default.bool.isRequired,
|
|
61
|
+
onClick: _propTypes.default.func.isRequired,
|
|
62
|
+
setIsModalOpen: _propTypes.default.func.isRequired
|
|
63
|
+
};
|
|
64
|
+
var _default = ButtonWrapper;
|
|
65
|
+
exports.default = _default;
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.default = void 0;
|
|
11
|
+
|
|
12
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
|
+
|
|
14
|
+
var React = _interopRequireWildcard(require("react"));
|
|
15
|
+
|
|
16
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
17
|
+
|
|
18
|
+
var _reactDnd = require("react-dnd");
|
|
19
|
+
|
|
20
|
+
var _reactDndHtml5Backend = require("react-dnd-html5-backend");
|
|
21
|
+
|
|
22
|
+
var _carbonComponentsReact = require("carbon-components-react");
|
|
23
|
+
|
|
24
|
+
var _immutabilityHelper = _interopRequireDefault(require("immutability-helper"));
|
|
25
|
+
|
|
26
|
+
var _settings = require("../../../../../settings");
|
|
27
|
+
|
|
28
|
+
var _DraggableElement = _interopRequireDefault(require("../../DraggableElement"));
|
|
29
|
+
|
|
30
|
+
var _common = require("./common");
|
|
31
|
+
|
|
32
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
33
|
+
|
|
34
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
35
|
+
|
|
36
|
+
// @flow
|
|
37
|
+
|
|
38
|
+
/*
|
|
39
|
+
* Licensed Materials - Property of IBM
|
|
40
|
+
* 5724-Q36
|
|
41
|
+
* (c) Copyright IBM Corp. 2021
|
|
42
|
+
* US Government Users Restricted Rights - Use, duplication or disclosure
|
|
43
|
+
* restricted by GSA ADP Schedule Contract with IBM Corp.
|
|
44
|
+
*/
|
|
45
|
+
var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
|
|
46
|
+
|
|
47
|
+
var getNextIndex = function getNextIndex(array, currentIndex, key) {
|
|
48
|
+
var newIndex = -1;
|
|
49
|
+
|
|
50
|
+
if (key === 'ArrowUp') {
|
|
51
|
+
newIndex = currentIndex - 1 >= 0 ? currentIndex - 1 : array.length - 1;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
if (key === 'ArrowDown') {
|
|
55
|
+
newIndex = currentIndex + 1 < array.length ? currentIndex + 1 : 0;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
return newIndex;
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
var Columns = function Columns(_ref) {
|
|
62
|
+
var filterString = _ref.filterString,
|
|
63
|
+
columns = _ref.columns,
|
|
64
|
+
setColumnsObject = _ref.setColumnsObject,
|
|
65
|
+
onSelectColumn = _ref.onSelectColumn,
|
|
66
|
+
_ref$instructionsLabe = _ref.instructionsLabel,
|
|
67
|
+
instructionsLabel = _ref$instructionsLabe === void 0 ? 'Press space bar to toggle drag drop mode, use arrow keys to move selected elements.' : _ref$instructionsLabe,
|
|
68
|
+
_ref$disabledInstruct = _ref.disabledInstructionsLabel,
|
|
69
|
+
disabledInstructionsLabel = _ref$disabledInstruct === void 0 ? 'Reordering columns are disabled because they are filtered currently.' : _ref$disabledInstruct;
|
|
70
|
+
|
|
71
|
+
var _React$useState = React.useState(''),
|
|
72
|
+
_React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
|
|
73
|
+
ariaRegionText = _React$useState2[0],
|
|
74
|
+
setAriaRegionText = _React$useState2[1];
|
|
75
|
+
|
|
76
|
+
var _React$useState3 = React.useState(-1),
|
|
77
|
+
_React$useState4 = (0, _slicedToArray2.default)(_React$useState3, 2),
|
|
78
|
+
focusIndex = _React$useState4[0],
|
|
79
|
+
setFocusIndex = _React$useState4[1];
|
|
80
|
+
|
|
81
|
+
var moveElement = React.useCallback(function (dragIndex, hoverIndex) {
|
|
82
|
+
var dragCard = columns[dragIndex];
|
|
83
|
+
setColumnsObject((0, _immutabilityHelper.default)(columns, {
|
|
84
|
+
$splice: [[dragIndex, 1], [hoverIndex, 0, dragCard]]
|
|
85
|
+
}));
|
|
86
|
+
}, [columns, setColumnsObject]);
|
|
87
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
88
|
+
className: "".concat(blockClass, "__customize-columns-column-list")
|
|
89
|
+
}, /*#__PURE__*/React.createElement(_reactDnd.DndProvider, {
|
|
90
|
+
backend: _reactDndHtml5Backend.HTML5Backend
|
|
91
|
+
}, /*#__PURE__*/React.createElement("ol", {
|
|
92
|
+
className: "".concat(blockClass, "__customize-columns-column-list--focus"),
|
|
93
|
+
role: "listbox",
|
|
94
|
+
"aria-describedby": "".concat(blockClass, "__customize-columns--instructions"),
|
|
95
|
+
onKeyDown: function onKeyDown(e) {
|
|
96
|
+
var nextIndex = getNextIndex(columns, focusIndex, e.key);
|
|
97
|
+
|
|
98
|
+
if (nextIndex >= 0) {
|
|
99
|
+
setFocusIndex(nextIndex);
|
|
100
|
+
e.preventDefault();
|
|
101
|
+
e.stopPropagation();
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
tabIndex: 0,
|
|
105
|
+
onFocus: function onFocus(e) {
|
|
106
|
+
if (e.target === e.currentTarget) {
|
|
107
|
+
setFocusIndex(0);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
111
|
+
"aria-live": "assertive",
|
|
112
|
+
className: "".concat(blockClass, "__shared-ui--assistive-text")
|
|
113
|
+
}, ariaRegionText), /*#__PURE__*/React.createElement("span", {
|
|
114
|
+
id: "".concat(blockClass, "__customize-columns--instructions"),
|
|
115
|
+
className: "".concat(blockClass, "__shared-ui--assistive-text")
|
|
116
|
+
}, filterString.length === 0 ? instructionsLabel : disabledInstructionsLabel), columns.filter(function (colDef) {
|
|
117
|
+
return filterString.length === 0 || colDef.Header.props.title.toLowerCase().includes(filterString);
|
|
118
|
+
}).map(function (colDef, i) {
|
|
119
|
+
return /*#__PURE__*/React.createElement(_DraggableElement.default, {
|
|
120
|
+
key: colDef.id,
|
|
121
|
+
index: i,
|
|
122
|
+
listData: columns,
|
|
123
|
+
setListData: setColumnsObject,
|
|
124
|
+
id: "dnd-datagrid-columns-".concat(colDef.id),
|
|
125
|
+
type: "column-customization",
|
|
126
|
+
disabled: filterString.length > 0,
|
|
127
|
+
ariaLabel: colDef.Header.props.title,
|
|
128
|
+
onGrab: setAriaRegionText,
|
|
129
|
+
isFocused: focusIndex === i,
|
|
130
|
+
moveElement: moveElement,
|
|
131
|
+
onArrowKeyDown: function onArrowKeyDown(e, isGrabbed, currentIndex) {
|
|
132
|
+
if (isGrabbed) {
|
|
133
|
+
var nextIndex = getNextIndex(columns, currentIndex, e.key);
|
|
134
|
+
e.preventDefault();
|
|
135
|
+
e.stopPropagation();
|
|
136
|
+
|
|
137
|
+
if (nextIndex >= 0) {
|
|
138
|
+
setFocusIndex(nextIndex);
|
|
139
|
+
moveElement(currentIndex, nextIndex);
|
|
140
|
+
e.target.scrollIntoView({
|
|
141
|
+
block: 'center'
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}, /*#__PURE__*/React.createElement(_carbonComponentsReact.Checkbox, {
|
|
147
|
+
wrapperClassName: "".concat(blockClass, "__customize-columns-checkbox"),
|
|
148
|
+
checked: (0, _common.isColumnVisible)(colDef),
|
|
149
|
+
onChange: onSelectColumn.bind(null, colDef),
|
|
150
|
+
id: "".concat(blockClass, "__customization-column-").concat(colDef.id),
|
|
151
|
+
labelText: colDef.Header.props.title,
|
|
152
|
+
title: colDef.Header.props.title
|
|
153
|
+
}));
|
|
154
|
+
}))));
|
|
155
|
+
};
|
|
156
|
+
|
|
157
|
+
Columns.propTypes = {
|
|
158
|
+
columns: _propTypes.default.array.isRequired,
|
|
159
|
+
disabledInstructionsLabel: _propTypes.default.string,
|
|
160
|
+
filterString: _propTypes.default.string.isRequired,
|
|
161
|
+
instructionsLabel: _propTypes.default.string,
|
|
162
|
+
onSelectColumn: _propTypes.default.func.isRequired,
|
|
163
|
+
setColumnsObject: _propTypes.default.func.isRequired
|
|
164
|
+
};
|
|
165
|
+
var _default = Columns;
|
|
166
|
+
exports.default = _default;
|