@carbon/ibm-products 1.34.1 → 1.35.0
Sign up to get free protection for your applications and to get access to all the features.
- package/css/index-full-carbon.css +46 -13
- package/css/index-full-carbon.css.map +1 -1
- package/css/index-full-carbon.min.css +2 -8
- package/css/index-full-carbon.min.css.map +1 -1
- package/css/index-without-carbon-released-only.css +2 -9
- package/css/index-without-carbon-released-only.css.map +1 -1
- package/css/index-without-carbon-released-only.min.css +1 -7
- package/css/index-without-carbon-released-only.min.css.map +1 -1
- package/css/index-without-carbon.css +46 -13
- package/css/index-without-carbon.css.map +1 -1
- package/css/index-without-carbon.min.css +2 -8
- package/css/index-without-carbon.min.css.map +1 -1
- package/css/index.css +46 -13
- package/css/index.css.map +1 -1
- package/css/index.min.css +2 -8
- package/css/index.min.css.map +1 -1
- package/es/components/APIKeyModal/APIKeyDownloader.js +8 -18
- package/es/components/APIKeyModal/APIKeyModal.js +58 -140
- package/es/components/APIKeyModal/index.js +1 -0
- package/es/components/AboutModal/AboutModal.js +40 -45
- package/es/components/AboutModal/index.js +1 -0
- package/es/components/ActionBar/ActionBar.js +69 -82
- package/es/components/ActionBar/ActionBarItem.js +19 -20
- package/es/components/ActionBar/ActionBarOverflowItems.js +10 -10
- package/es/components/ActionBar/index.js +1 -0
- package/es/components/ActionSet/ActionSet.js +30 -39
- package/es/components/ActionSet/actions.js +1 -2
- package/es/components/ActionSet/index.js +1 -0
- package/es/components/AddSelect/AddSelect.js +3 -4
- package/es/components/AddSelect/AddSelectBody.js +67 -87
- package/es/components/AddSelect/AddSelectBreadcrumbs.js +3 -4
- package/es/components/AddSelect/AddSelectColumn.js +27 -45
- package/es/components/AddSelect/AddSelectFilter.js +21 -34
- package/es/components/AddSelect/AddSelectList.js +19 -33
- package/es/components/AddSelect/AddSelectMetaPanel.js +3 -5
- package/es/components/AddSelect/AddSelectSidebar.js +14 -21
- package/es/components/AddSelect/AddSelectSort.js +6 -5
- package/es/components/AddSelect/add-select-utils.js +2 -23
- package/es/components/AddSelect/hooks/useItemSort.js +6 -8
- package/es/components/AddSelect/hooks/useParentSelect.js +3 -6
- package/es/components/AddSelect/hooks/usePath.js +6 -20
- package/es/components/AddSelect/index.js +1 -0
- package/es/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +62 -88
- package/es/components/BreadcrumbWithOverflow/index.js +2 -0
- package/es/components/ButtonMenu/ButtonMenu.js +32 -30
- package/es/components/ButtonMenu/ButtonMenuItem.js +10 -6
- package/es/components/ButtonMenu/index.js +1 -0
- package/es/components/ButtonSetWithOverflow/ButtonSetWithOverflow.js +34 -52
- package/es/components/ButtonSetWithOverflow/index.js +1 -0
- package/es/components/Card/Card.js +53 -71
- package/es/components/Card/CardFooter.js +19 -18
- package/es/components/Card/CardHeader.js +13 -13
- package/es/components/Card/index.js +1 -0
- package/es/components/Cascade/Cascade.js +5 -14
- package/es/components/ComboButton/ComboButton.js +24 -35
- package/es/components/ComboButton/ComboButtonItem/index.js +4 -8
- package/es/components/ComboButton/index.js +1 -0
- package/es/components/CreateFullPage/CreateFullPage.js +64 -85
- package/es/components/CreateFullPage/CreateFullPageStep.js +28 -40
- package/es/components/CreateFullPage/index.js +1 -0
- package/es/components/CreateInfluencer/CreateInfluencer.js +14 -15
- package/es/components/CreateInfluencer/index.js +1 -0
- package/es/components/CreateModal/CreateModal.js +19 -31
- package/es/components/CreateModal/index.js +2 -0
- package/es/components/CreateSidePanel/CreateSidePanel.js +24 -37
- package/es/components/CreateSidePanel/index.js +1 -0
- package/es/components/CreateTearsheet/CreateTearsheet.js +65 -88
- package/es/components/CreateTearsheet/CreateTearsheetDivider.js +4 -4
- package/es/components/CreateTearsheet/CreateTearsheetStep.js +31 -42
- package/es/components/CreateTearsheet/index.js +1 -0
- package/es/components/CreateTearsheet/preview-components/MultiStepTearsheet.js +46 -66
- package/es/components/CreateTearsheet/preview-components/MultiStepWithIntro.js +41 -57
- package/es/components/CreateTearsheetNarrow/CreateTearsheetNarrow.js +30 -39
- package/es/components/CreateTearsheetNarrow/index.js +1 -0
- package/es/components/DataSpreadsheet/DataSpreadsheet.js +136 -225
- package/es/components/DataSpreadsheet/DataSpreadsheetBody.js +62 -113
- package/es/components/DataSpreadsheet/DataSpreadsheetHeader.js +25 -56
- package/es/components/DataSpreadsheet/hooks/index.js +1 -0
- package/es/components/DataSpreadsheet/hooks/useMoveActiveCell.js +6 -5
- package/es/components/DataSpreadsheet/hooks/useMultipleKeyTracking.js +23 -44
- package/es/components/DataSpreadsheet/hooks/useResetSpreadsheetFocus.js +5 -5
- package/es/components/DataSpreadsheet/hooks/useSpreadsheetEdit.js +18 -30
- package/es/components/DataSpreadsheet/hooks/useSpreadsheetMouseMove.js +10 -14
- package/es/components/DataSpreadsheet/hooks/useSpreadsheetMouseUp.js +34 -54
- package/es/components/DataSpreadsheet/hooks/useSpreadsheetOutsideClick.js +10 -10
- package/es/components/DataSpreadsheet/index.js +1 -0
- package/es/components/DataSpreadsheet/utils/checkActiveHeaderCell.js +4 -8
- package/es/components/DataSpreadsheet/utils/checkSelectedHeaderCell.js +3 -4
- package/es/components/DataSpreadsheet/utils/createActiveCellFn.js +15 -19
- package/es/components/DataSpreadsheet/utils/createCellSelectionArea.js +15 -17
- package/es/components/DataSpreadsheet/utils/generateData.js +4 -13
- package/es/components/DataSpreadsheet/utils/getCellSize.js +1 -6
- package/es/components/DataSpreadsheet/utils/getSelectionAreaPoints.js +1 -0
- package/es/components/DataSpreadsheet/utils/getSpreadsheetWidth.js +7 -9
- package/es/components/DataSpreadsheet/utils/handleActiveCellInSelectionEnter.js +20 -34
- package/es/components/DataSpreadsheet/utils/handleActiveCellInSelectionTab.js +20 -30
- package/es/components/DataSpreadsheet/utils/handleCellDeletion.js +5 -4
- package/es/components/DataSpreadsheet/utils/handleEditSubmit.js +13 -20
- package/es/components/DataSpreadsheet/utils/handleHeaderCellSelection.js +22 -44
- package/es/components/DataSpreadsheet/utils/handleMultipleKeys.js +40 -75
- package/es/components/DataSpreadsheet/utils/moveColumnIndicatorLine.js +6 -8
- package/es/components/DataSpreadsheet/utils/removeCellSelections.js +6 -8
- package/es/components/DataSpreadsheet/utils/selectAllCells.js +7 -11
- package/es/components/Datagrid/Datagrid/Datagrid.js +12 -12
- package/es/components/Datagrid/Datagrid/DatagridBody.js +4 -10
- package/es/components/Datagrid/Datagrid/DatagridContent.js +30 -40
- package/es/components/Datagrid/Datagrid/DatagridEmptyBody.js +7 -10
- package/es/components/Datagrid/Datagrid/DatagridExpandedRow.js +4 -6
- package/es/components/Datagrid/Datagrid/DatagridHead.js +6 -6
- package/es/components/Datagrid/Datagrid/DatagridHeaderRow.js +2 -9
- package/es/components/Datagrid/Datagrid/DatagridRefBody.js +5 -8
- package/es/components/Datagrid/Datagrid/DatagridRow.js +4 -12
- package/es/components/Datagrid/Datagrid/DatagridSelectAll.js +10 -18
- package/es/components/Datagrid/Datagrid/DatagridSelectAllWithToggle.js +24 -34
- package/es/components/Datagrid/Datagrid/DatagridSimpleBody.js +2 -7
- package/es/components/Datagrid/Datagrid/DatagridToolbar.js +26 -38
- package/es/components/Datagrid/Datagrid/DatagridVirtualBody.js +15 -21
- package/es/components/Datagrid/Datagrid/DraggableElement.js +74 -85
- package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/Actions.js +3 -5
- package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/ButtonWrapper.js +6 -10
- package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +14 -26
- package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsModal.js +54 -71
- package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/ModalWrapper.js +6 -13
- package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/common.js +1 -1
- package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/index.js +1 -0
- package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/InlineEditButton.js +11 -12
- package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +56 -106
- package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/InlineEditContext.js +7 -21
- package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/getCellIdAsObject.js +1 -1
- package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/returnUpdatedActiveCell.js +9 -14
- package/es/components/Datagrid/Datagrid/addons/InlineEdit/handleGridFocus.js +2 -3
- package/es/components/Datagrid/Datagrid/addons/InlineEdit/handleGridKeyPress.js +29 -63
- package/es/components/Datagrid/Datagrid/addons/InlineEdit/handleMultipleKeys.js +14 -21
- package/es/components/Datagrid/Datagrid/addons/RowSize/RowSizeDropdown.js +6 -11
- package/es/components/Datagrid/Datagrid/addons/RowSize/RowSizeRadioGroup.js +21 -34
- package/es/components/Datagrid/Datagrid/addons/RowSize/index.js +1 -0
- package/es/components/Datagrid/Datagrid/index.js +1 -0
- package/es/components/Datagrid/Datagrid.stories/StickyActionsColumnStory.js +10 -0
- package/es/components/Datagrid/Datagrid.stories/common.js +2 -11
- package/es/components/Datagrid/common-column-ids.js +1 -0
- package/es/components/Datagrid/useActionsColumn.js +15 -31
- package/es/components/Datagrid/useColumnCenterAlign.js +0 -8
- package/es/components/Datagrid/useColumnOrder.js +1 -0
- package/es/components/Datagrid/useColumnRightAlign.js +0 -8
- package/es/components/Datagrid/useCustomizeColumns.js +5 -13
- package/es/components/Datagrid/useDatagrid.js +0 -7
- package/es/components/Datagrid/useDefaultStringRenderer.js +0 -9
- package/es/components/Datagrid/useDisableSelectRows.js +2 -10
- package/es/components/Datagrid/useExpandedRow.js +5 -15
- package/es/components/Datagrid/useFlexResize.js +0 -7
- package/es/components/Datagrid/useFloatingScroll.js +9 -22
- package/es/components/Datagrid/useInfiniteScroll.js +10 -16
- package/es/components/Datagrid/useInlineEdit.js +1 -9
- package/es/components/Datagrid/useNestedRowExpander.js +0 -6
- package/es/components/Datagrid/useNestedRows.js +1 -7
- package/es/components/Datagrid/useOnRowClick.js +4 -9
- package/es/components/Datagrid/useParentDimensions.js +6 -16
- package/es/components/Datagrid/useResizeTable.js +1 -7
- package/es/components/Datagrid/useRowExpander.js +0 -5
- package/es/components/Datagrid/useRowIsMouseOver.js +6 -15
- package/es/components/Datagrid/useRowRenderer.js +0 -5
- package/es/components/Datagrid/useRowSize.js +8 -20
- package/es/components/Datagrid/useSelectAllToggle.js +11 -22
- package/es/components/Datagrid/useSelectRows.js +11 -27
- package/es/components/Datagrid/useSkeletonRows.js +1 -6
- package/es/components/Datagrid/useSortableColumns.js +2 -23
- package/es/components/Datagrid/useStickyColumn.js +2 -31
- package/es/components/Datagrid/utils/DatagridActions.js +7 -11
- package/es/components/Datagrid/utils/DatagridPagination.js +5 -6
- package/es/components/Datagrid/utils/Wrapper.js +1 -1
- package/es/components/Datagrid/utils/getArgTypes.js +1 -0
- package/es/components/Datagrid/utils/getInlineEditColumns.js +1 -2
- package/es/components/Datagrid/utils/makeData.js +1 -15
- package/es/components/EditFullPage/EditFullPage.js +27 -20
- package/es/components/EditFullPage/index.js +1 -0
- package/es/components/EditSidePanel/EditSidePanel.js +38 -51
- package/es/components/EditSidePanel/index.js +1 -0
- package/es/components/EditTearsheet/EditTearsheet.js +32 -42
- package/es/components/EditTearsheet/EditTearsheetForm.js +13 -19
- package/es/components/EditTearsheet/index.js +1 -0
- package/es/components/EditTearsheet/preview-components/MultiFormEditTearsheet.js +34 -48
- package/es/components/EditTearsheetNarrow/EditTearsheetNarrow.js +27 -20
- package/es/components/EditTearsheetNarrow/index.js +1 -0
- package/es/components/EditUpdateCards/EditUpdateCards.js +142 -0
- package/es/components/EditUpdateCards/index.js +8 -0
- package/es/components/EmptyStates/EmptyState.js +18 -25
- package/es/components/EmptyStates/EmptyStateContent.js +16 -17
- package/es/components/EmptyStates/ErrorEmptyState/ErrorEmptyState.js +20 -24
- package/es/components/EmptyStates/ErrorEmptyState/index.js +1 -0
- package/es/components/EmptyStates/NoDataEmptyState/NoDataEmptyState.js +20 -24
- package/es/components/EmptyStates/NoDataEmptyState/index.js +1 -0
- package/es/components/EmptyStates/NoTagsEmptyState/NoTagsEmptyState.js +20 -24
- package/es/components/EmptyStates/NoTagsEmptyState/index.js +1 -0
- package/es/components/EmptyStates/NotFoundEmptyState/NotFoundEmptyState.js +20 -24
- package/es/components/EmptyStates/NotFoundEmptyState/index.js +1 -0
- package/es/components/EmptyStates/NotificationsEmptyState/NotificationsEmptyState.js +20 -24
- package/es/components/EmptyStates/NotificationsEmptyState/index.js +1 -0
- package/es/components/EmptyStates/UnauthorizedEmptyState/UnauthorizedEmptyState.js +20 -24
- package/es/components/EmptyStates/UnauthorizedEmptyState/index.js +1 -0
- package/es/components/EmptyStates/assets/ErrorIllustration.js +7 -6
- package/es/components/EmptyStates/assets/NoDataIllustration.js +7 -6
- package/es/components/EmptyStates/assets/NoTagsIllustration.js +7 -6
- package/es/components/EmptyStates/assets/NotFoundIllustration.js +7 -6
- package/es/components/EmptyStates/assets/NotificationsIllustration.js +7 -6
- package/es/components/EmptyStates/assets/UnauthorizedIllustration.js +7 -6
- package/es/components/EmptyStates/index.js +1 -0
- package/es/components/ExampleComponent/ExampleComponent.js +36 -44
- package/es/components/ExampleComponent/index.js +1 -0
- package/es/components/ExportModal/ExportModal.js +41 -80
- package/es/components/ExportModal/index.js +1 -0
- package/es/components/ExpressiveCard/ExpressiveCard.js +3 -20
- package/es/components/ExpressiveCard/index.js +1 -0
- package/es/components/HTTPErrors/HTTPError403/HTTPError403.js +16 -18
- package/es/components/HTTPErrors/HTTPError403/index.js +1 -0
- package/es/components/HTTPErrors/HTTPError404/HTTPError404.js +16 -18
- package/es/components/HTTPErrors/HTTPError404/index.js +1 -0
- package/es/components/HTTPErrors/HTTPErrorContent.js +15 -18
- package/es/components/HTTPErrors/HTTPErrorOther/HTTPErrorOther.js +16 -18
- package/es/components/HTTPErrors/HTTPErrorOther/index.js +1 -0
- package/es/components/HTTPErrors/assets/HTTPErrorSvg403.js +6 -3
- package/es/components/HTTPErrors/assets/HTTPErrorSvg404.js +6 -3
- package/es/components/HTTPErrors/assets/HTTPErrorSvgOther.js +6 -3
- package/es/components/HTTPErrors/index.js +1 -0
- package/es/components/ImportModal/ImportModal.js +40 -92
- package/es/components/ImportModal/index.js +1 -0
- package/es/components/InlineEdit/InlineEdit.js +68 -98
- package/es/components/InlineEdit/index.js +1 -0
- package/es/components/InlineEditV2/InlineEditV2.js +29 -57
- package/es/components/ModifiedTabs/ModifiedTabLabelNew.js +1 -1
- package/es/components/ModifiedTabs/ModifiedTabLabelWithClose.js +6 -9
- package/es/components/ModifiedTabs/ModifiedTabs.js +14 -19
- package/es/components/MultiAddSelect/MultiAddSelect.js +0 -23
- package/es/components/NotificationsPanel/NotificationsPanel.js +85 -126
- package/es/components/NotificationsPanel/NotificationsPanel_data.js +1 -0
- package/es/components/NotificationsPanel/index.js +1 -0
- package/es/components/NotificationsPanel/preview-components/UnreadNotificationBell.js +1 -2
- package/es/components/NotificationsPanel/utils.js +13 -19
- package/es/components/OptionsTile/OptionsTile.js +52 -80
- package/es/components/OptionsTile/index.js +1 -0
- package/es/components/PageHeader/PageHeader.js +119 -186
- package/es/components/PageHeader/PageHeaderDemo.data.js +0 -1
- package/es/components/PageHeader/PageHeaderTitle.js +18 -23
- package/es/components/PageHeader/PageHeaderUtils.js +18 -45
- package/es/components/PageHeader/index.js +1 -0
- package/es/components/ProductiveCard/ProductiveCard.js +7 -23
- package/es/components/ProductiveCard/index.js +1 -0
- package/es/components/RemoveModal/RemoveModal.js +25 -45
- package/es/components/RemoveModal/index.js +1 -0
- package/es/components/Saving/Saving.js +15 -30
- package/es/components/Saving/index.js +1 -0
- package/es/components/SidePanel/SidePanel.js +103 -150
- package/es/components/SidePanel/constants.js +1 -0
- package/es/components/SidePanel/index.js +1 -0
- package/es/components/SingleAddSelect/SingleAddSelect.js +0 -14
- package/es/components/StatusIcon/StatusIcon.js +5 -12
- package/es/components/StatusIcon/index.js +1 -0
- package/es/components/TagSet/TagSet.js +59 -93
- package/es/components/TagSet/TagSetModal.js +19 -30
- package/es/components/TagSet/TagSetOverflow.js +16 -25
- package/es/components/TagSet/index.js +1 -0
- package/es/components/Tearsheet/Tearsheet.js +26 -33
- package/es/components/Tearsheet/TearsheetNarrow.js +22 -25
- package/es/components/Tearsheet/TearsheetShell.js +80 -91
- package/es/components/Tearsheet/index.js +1 -0
- package/es/components/Toolbar/Toolbar.js +13 -27
- package/es/components/Toolbar/ToolbarButton.js +5 -9
- package/es/components/Toolbar/ToolbarGroup.js +4 -6
- package/es/components/Toolbar/index.js +1 -0
- package/es/components/UserProfileImage/UserProfileImage.js +26 -40
- package/es/components/UserProfileImage/index.js +2 -0
- package/es/components/WebTerminal/WebTerminal.js +41 -51
- package/es/components/WebTerminal/WebTerminalContentWrapper.js +14 -11
- package/es/components/WebTerminal/hooks/index.js +8 -7
- package/es/components/WebTerminal/index.js +1 -0
- package/es/components/WebTerminal/preview-components/Navigation.js +2 -4
- package/es/components/WebTerminal/preview-components/documentationLinks.js +1 -0
- package/es/components/_Canary/Canary.js +13 -13
- package/es/components/_Canary/index.js +1 -0
- package/es/components/index.js +2 -0
- package/es/global/js/hooks/index.js +1 -0
- package/es/global/js/hooks/useActiveElement.js +4 -6
- package/es/global/js/hooks/useClickOutside.js +1 -1
- package/es/global/js/hooks/useCreateComponentFocus.js +6 -5
- package/es/global/js/hooks/useCreateComponentStepChange.js +23 -54
- package/es/global/js/hooks/usePreviousValue.js +2 -1
- package/es/global/js/hooks/useResetCreateComponent.js +10 -9
- package/es/global/js/hooks/useRetrieveStepData.js +7 -10
- package/es/global/js/hooks/useValidCreateStepCount.js +2 -1
- package/es/global/js/hooks/useWindowResize.js +8 -16
- package/es/global/js/hooks/useWindowScroll.js +4 -14
- package/es/global/js/package-settings.js +6 -11
- package/es/global/js/utils/ClickListener.js +5 -10
- package/es/global/js/utils/DisplayBox.js +3 -2
- package/es/global/js/utils/Wrap.js +14 -17
- package/es/global/js/utils/deepCloneObject.js +5 -8
- package/es/global/js/utils/devtools.js +1 -4
- package/es/global/js/utils/getBezierValues.js +1 -2
- package/es/global/js/utils/getFocusableElements.js +1 -1
- package/es/global/js/utils/getScrollbarWidth.js +1 -0
- package/es/global/js/utils/keyboardNavigation.js +7 -5
- package/es/global/js/utils/lastIndexInArray.js +0 -2
- package/es/global/js/utils/motionConstants.js +2 -3
- package/es/global/js/utils/pconsole.js +1 -3
- package/es/global/js/utils/props-helper.js +19 -35
- package/es/global/js/utils/rangeWithCallback.js +1 -0
- package/es/global/js/utils/scrollableAncestor.js +5 -8
- package/es/global/js/utils/story-helper.js +9 -8
- package/es/global/js/utils/test-helper.js +25 -42
- package/es/global/js/utils/unwrap-if-fragment.js +8 -16
- package/es/global/js/utils/uuidv4.js +1 -2
- package/es/global/js/utils/uuidv4.spec.js +1 -1
- package/es/global/js/utils/wait.js +1 -1
- package/es/global/js/utils/wrapFocus.js +8 -14
- package/es/index.js +1 -0
- package/es/settings.js +24 -18
- package/lib/components/APIKeyModal/APIKeyDownloader.js +8 -31
- package/lib/components/APIKeyModal/APIKeyModal.js +57 -161
- package/lib/components/APIKeyModal/index.js +0 -1
- package/lib/components/AboutModal/AboutModal.js +33 -60
- package/lib/components/AboutModal/index.js +0 -1
- package/lib/components/ActionBar/ActionBar.js +62 -97
- package/lib/components/ActionBar/ActionBarItem.js +12 -26
- package/lib/components/ActionBar/ActionBarOverflowItems.js +8 -20
- package/lib/components/ActionBar/index.js +0 -2
- package/lib/components/ActionSet/ActionSet.js +26 -49
- package/lib/components/ActionSet/actions.js +1 -5
- package/lib/components/ActionSet/index.js +0 -1
- package/lib/components/AddSelect/AddSelect.js +2 -16
- package/lib/components/AddSelect/AddSelectBody.js +66 -117
- package/lib/components/AddSelect/AddSelectBreadcrumbs.js +3 -14
- package/lib/components/AddSelect/AddSelectColumn.js +26 -67
- package/lib/components/AddSelect/AddSelectFilter.js +20 -48
- package/lib/components/AddSelect/AddSelectList.js +19 -45
- package/lib/components/AddSelect/AddSelectMetaPanel.js +3 -17
- package/lib/components/AddSelect/AddSelectSidebar.js +13 -31
- package/lib/components/AddSelect/AddSelectSort.js +6 -15
- package/lib/components/AddSelect/add-select-utils.js +2 -33
- package/lib/components/AddSelect/hooks/useItemSort.js +6 -13
- package/lib/components/AddSelect/hooks/useParentSelect.js +3 -9
- package/lib/components/AddSelect/hooks/usePath.js +6 -21
- package/lib/components/AddSelect/index.js +0 -1
- package/lib/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +55 -102
- package/lib/components/BreadcrumbWithOverflow/index.js +0 -1
- package/lib/components/ButtonMenu/ButtonMenu.js +25 -35
- package/lib/components/ButtonMenu/ButtonMenuItem.js +9 -10
- package/lib/components/ButtonMenu/index.js +0 -2
- package/lib/components/ButtonSetWithOverflow/ButtonSetWithOverflow.js +33 -71
- package/lib/components/ButtonSetWithOverflow/index.js +0 -1
- package/lib/components/Card/Card.js +52 -84
- package/lib/components/Card/CardFooter.js +19 -28
- package/lib/components/Card/CardHeader.js +13 -23
- package/lib/components/Card/index.js +0 -3
- package/lib/components/Cascade/Cascade.js +4 -30
- package/lib/components/Cascade/index.js +0 -1
- package/lib/components/ComboButton/ComboButton.js +23 -49
- package/lib/components/ComboButton/ComboButtonItem/index.js +2 -10
- package/lib/components/ComboButton/index.js +0 -2
- package/lib/components/CreateFullPage/CreateFullPage.js +59 -103
- package/lib/components/CreateFullPage/CreateFullPageStep.js +27 -56
- package/lib/components/CreateFullPage/index.js +0 -2
- package/lib/components/CreateInfluencer/CreateInfluencer.js +13 -24
- package/lib/components/CreateInfluencer/index.js +0 -1
- package/lib/components/CreateModal/CreateModal.js +16 -39
- package/lib/components/CreateModal/index.js +0 -1
- package/lib/components/CreateSidePanel/CreateSidePanel.js +17 -46
- package/lib/components/CreateSidePanel/index.js +0 -1
- package/lib/components/CreateTearsheet/CreateTearsheet.js +64 -107
- package/lib/components/CreateTearsheet/CreateTearsheetDivider.js +3 -14
- package/lib/components/CreateTearsheet/CreateTearsheetStep.js +30 -58
- package/lib/components/CreateTearsheet/index.js +0 -3
- package/lib/components/CreateTearsheet/preview-components/MultiStepTearsheet.js +45 -79
- package/lib/components/CreateTearsheet/preview-components/MultiStepWithIntro.js +41 -71
- package/lib/components/CreateTearsheetNarrow/CreateTearsheetNarrow.js +25 -47
- package/lib/components/CreateTearsheetNarrow/index.js +0 -1
- package/lib/components/DataSpreadsheet/DataSpreadsheet.js +131 -256
- package/lib/components/DataSpreadsheet/DataSpreadsheetBody.js +61 -135
- package/lib/components/DataSpreadsheet/DataSpreadsheetHeader.js +24 -75
- package/lib/components/DataSpreadsheet/hooks/index.js +0 -7
- package/lib/components/DataSpreadsheet/hooks/useMoveActiveCell.js +4 -7
- package/lib/components/DataSpreadsheet/hooks/useMultipleKeyTracking.js +23 -48
- package/lib/components/DataSpreadsheet/hooks/useResetSpreadsheetFocus.js +5 -9
- package/lib/components/DataSpreadsheet/hooks/useSpreadsheetEdit.js +18 -37
- package/lib/components/DataSpreadsheet/hooks/useSpreadsheetMouseMove.js +7 -18
- package/lib/components/DataSpreadsheet/hooks/useSpreadsheetMouseUp.js +33 -61
- package/lib/components/DataSpreadsheet/hooks/useSpreadsheetOutsideClick.js +8 -14
- package/lib/components/DataSpreadsheet/index.js +0 -1
- package/lib/components/DataSpreadsheet/utils/checkActiveHeaderCell.js +1 -9
- package/lib/components/DataSpreadsheet/utils/checkSelectedHeaderCell.js +3 -7
- package/lib/components/DataSpreadsheet/utils/createActiveCellFn.js +15 -23
- package/lib/components/DataSpreadsheet/utils/createCellSelectionArea.js +15 -22
- package/lib/components/DataSpreadsheet/utils/generateData.js +4 -16
- package/lib/components/DataSpreadsheet/utils/getCellSize.js +1 -8
- package/lib/components/DataSpreadsheet/utils/getSelectionAreaPoints.js +1 -2
- package/lib/components/DataSpreadsheet/utils/getSpreadsheetWidth.js +7 -12
- package/lib/components/DataSpreadsheet/utils/handleActiveCellInSelectionEnter.js +19 -38
- package/lib/components/DataSpreadsheet/utils/handleActiveCellInSelectionTab.js +20 -33
- package/lib/components/DataSpreadsheet/utils/handleCellDeletion.js +5 -8
- package/lib/components/DataSpreadsheet/utils/handleEditSubmit.js +10 -24
- package/lib/components/DataSpreadsheet/utils/handleHeaderCellSelection.js +22 -50
- package/lib/components/DataSpreadsheet/utils/handleMultipleKeys.js +39 -84
- package/lib/components/DataSpreadsheet/utils/moveColumnIndicatorLine.js +6 -12
- package/lib/components/DataSpreadsheet/utils/removeCellSelections.js +4 -10
- package/lib/components/DataSpreadsheet/utils/selectAllCells.js +6 -16
- package/lib/components/Datagrid/Datagrid/Datagrid.js +11 -26
- package/lib/components/Datagrid/Datagrid/DatagridBody.js +5 -16
- package/lib/components/Datagrid/Datagrid/DatagridContent.js +31 -64
- package/lib/components/Datagrid/Datagrid/DatagridEmptyBody.js +8 -16
- package/lib/components/Datagrid/Datagrid/DatagridExpandedRow.js +4 -10
- package/lib/components/Datagrid/Datagrid/DatagridHead.js +6 -10
- package/lib/components/Datagrid/Datagrid/DatagridHeaderRow.js +3 -17
- package/lib/components/Datagrid/Datagrid/DatagridRefBody.js +4 -13
- package/lib/components/Datagrid/Datagrid/DatagridRow.js +4 -26
- package/lib/components/Datagrid/Datagrid/DatagridSelectAll.js +10 -26
- package/lib/components/Datagrid/Datagrid/DatagridSelectAllWithToggle.js +23 -48
- package/lib/components/Datagrid/Datagrid/DatagridSimpleBody.js +2 -14
- package/lib/components/Datagrid/Datagrid/DatagridToolbar.js +26 -51
- package/lib/components/Datagrid/Datagrid/DatagridVirtualBody.js +15 -31
- package/lib/components/Datagrid/Datagrid/DraggableElement.js +75 -98
- package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/Actions.js +3 -14
- package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/ButtonWrapper.js +5 -21
- package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +14 -41
- package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsModal.js +54 -84
- package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/ModalWrapper.js +5 -21
- package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/common.js +1 -5
- package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/index.js +0 -3
- package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/InlineEditButton.js +11 -20
- package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/index.js +0 -1
- package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +55 -125
- package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/index.js +0 -1
- package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/InlineEditContext.js +6 -32
- package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/getCellIdAsObject.js +1 -3
- package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/index.js +0 -1
- package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/returnUpdatedActiveCell.js +8 -18
- package/lib/components/Datagrid/Datagrid/addons/InlineEdit/handleGridFocus.js +2 -5
- package/lib/components/Datagrid/Datagrid/addons/InlineEdit/handleGridKeyPress.js +28 -70
- package/lib/components/Datagrid/Datagrid/addons/InlineEdit/handleMultipleKeys.js +14 -27
- package/lib/components/Datagrid/Datagrid/addons/RowSize/RowSizeDropdown.js +5 -26
- package/lib/components/Datagrid/Datagrid/addons/RowSize/RowSizeRadioGroup.js +21 -44
- package/lib/components/Datagrid/Datagrid/addons/RowSize/index.js +0 -2
- package/lib/components/Datagrid/Datagrid/index.js +0 -1
- package/lib/components/Datagrid/Datagrid.stories/StickyActionsColumnStory.js +10 -0
- package/lib/components/Datagrid/Datagrid.stories/common.js +2 -17
- package/lib/components/Datagrid/Datagrid.stories/index.js +0 -6
- package/lib/components/Datagrid/common-column-ids.js +1 -1
- package/lib/components/Datagrid/index.js +0 -19
- package/lib/components/Datagrid/useActionsColumn.js +15 -37
- package/lib/components/Datagrid/useColumnCenterAlign.js +0 -14
- package/lib/components/Datagrid/useColumnOrder.js +1 -4
- package/lib/components/Datagrid/useColumnRightAlign.js +0 -14
- package/lib/components/Datagrid/useCustomizeColumns.js +4 -20
- package/lib/components/Datagrid/useDatagrid.js +0 -20
- package/lib/components/Datagrid/useDefaultStringRenderer.js +0 -15
- package/lib/components/Datagrid/useDisableSelectRows.js +2 -11
- package/lib/components/Datagrid/useExpandedRow.js +5 -20
- package/lib/components/Datagrid/useFlexResize.js +0 -9
- package/lib/components/Datagrid/useFloatingScroll.js +10 -27
- package/lib/components/Datagrid/useInfiniteScroll.js +11 -21
- package/lib/components/Datagrid/useInlineEdit.js +2 -15
- package/lib/components/Datagrid/useNestedRowExpander.js +1 -13
- package/lib/components/Datagrid/useNestedRows.js +2 -11
- package/lib/components/Datagrid/useOnRowClick.js +4 -10
- package/lib/components/Datagrid/useParentDimensions.js +7 -18
- package/lib/components/Datagrid/useResizeTable.js +2 -8
- package/lib/components/Datagrid/useRowExpander.js +1 -8
- package/lib/components/Datagrid/useRowIsMouseOver.js +5 -19
- package/lib/components/Datagrid/useRowRenderer.js +1 -7
- package/lib/components/Datagrid/useRowSize.js +7 -24
- package/lib/components/Datagrid/useSelectAllToggle.js +12 -29
- package/lib/components/Datagrid/useSelectRows.js +11 -39
- package/lib/components/Datagrid/useSkeletonRows.js +1 -8
- package/lib/components/Datagrid/useSortableColumns.js +2 -29
- package/lib/components/Datagrid/useStickyColumn.js +1 -37
- package/lib/components/Datagrid/utils/DatagridActions.js +7 -21
- package/lib/components/Datagrid/utils/DatagridPagination.js +5 -11
- package/lib/components/Datagrid/utils/Wrapper.js +1 -5
- package/lib/components/Datagrid/utils/getArgTypes.js +1 -1
- package/lib/components/Datagrid/utils/getInlineEditColumns.js +1 -6
- package/lib/components/Datagrid/utils/makeData.js +0 -24
- package/lib/components/EditFullPage/EditFullPage.js +22 -24
- package/lib/components/EditFullPage/index.js +0 -1
- package/lib/components/EditSidePanel/EditSidePanel.js +31 -59
- package/lib/components/EditSidePanel/index.js +0 -1
- package/lib/components/EditTearsheet/EditTearsheet.js +31 -59
- package/lib/components/EditTearsheet/EditTearsheetForm.js +12 -33
- package/lib/components/EditTearsheet/index.js +0 -2
- package/lib/components/EditTearsheet/preview-components/MultiFormEditTearsheet.js +34 -61
- package/lib/components/EditTearsheetNarrow/EditTearsheetNarrow.js +22 -24
- package/lib/components/EditTearsheetNarrow/index.js +0 -1
- package/lib/components/EditUpdateCards/EditUpdateCards.js +140 -0
- package/lib/components/EditUpdateCards/index.js +12 -0
- package/lib/components/EmptyStates/EmptyState.js +13 -38
- package/lib/components/EmptyStates/EmptyStateContent.js +10 -25
- package/lib/components/EmptyStates/ErrorEmptyState/ErrorEmptyState.js +15 -37
- package/lib/components/EmptyStates/ErrorEmptyState/index.js +0 -1
- package/lib/components/EmptyStates/NoDataEmptyState/NoDataEmptyState.js +15 -37
- package/lib/components/EmptyStates/NoDataEmptyState/index.js +0 -1
- package/lib/components/EmptyStates/NoTagsEmptyState/NoTagsEmptyState.js +15 -37
- package/lib/components/EmptyStates/NoTagsEmptyState/index.js +0 -1
- package/lib/components/EmptyStates/NotFoundEmptyState/NotFoundEmptyState.js +15 -37
- package/lib/components/EmptyStates/NotFoundEmptyState/index.js +0 -1
- package/lib/components/EmptyStates/NotificationsEmptyState/NotificationsEmptyState.js +15 -37
- package/lib/components/EmptyStates/NotificationsEmptyState/index.js +0 -1
- package/lib/components/EmptyStates/UnauthorizedEmptyState/UnauthorizedEmptyState.js +15 -37
- package/lib/components/EmptyStates/UnauthorizedEmptyState/index.js +0 -1
- package/lib/components/EmptyStates/assets/ErrorIllustration.js +2 -13
- package/lib/components/EmptyStates/assets/NoDataIllustration.js +2 -13
- package/lib/components/EmptyStates/assets/NoTagsIllustration.js +2 -13
- package/lib/components/EmptyStates/assets/NotFoundIllustration.js +2 -13
- package/lib/components/EmptyStates/assets/NotificationsIllustration.js +2 -13
- package/lib/components/EmptyStates/assets/UnauthorizedIllustration.js +2 -13
- package/lib/components/EmptyStates/index.js +0 -7
- package/lib/components/ExampleComponent/ExampleComponent.js +29 -51
- package/lib/components/ExampleComponent/index.js +0 -1
- package/lib/components/ExportModal/ExportModal.js +40 -95
- package/lib/components/ExportModal/index.js +0 -1
- package/lib/components/ExpressiveCard/ExpressiveCard.js +3 -32
- package/lib/components/ExpressiveCard/index.js +0 -1
- package/lib/components/HTTPErrors/HTTPError403/HTTPError403.js +11 -27
- package/lib/components/HTTPErrors/HTTPError403/index.js +0 -1
- package/lib/components/HTTPErrors/HTTPError404/HTTPError404.js +11 -27
- package/lib/components/HTTPErrors/HTTPError404/index.js +0 -1
- package/lib/components/HTTPErrors/HTTPErrorContent.js +9 -23
- package/lib/components/HTTPErrors/HTTPErrorOther/HTTPErrorOther.js +11 -27
- package/lib/components/HTTPErrors/HTTPErrorOther/index.js +0 -1
- package/lib/components/HTTPErrors/assets/HTTPErrorSvg403.js +6 -7
- package/lib/components/HTTPErrors/assets/HTTPErrorSvg404.js +6 -7
- package/lib/components/HTTPErrors/assets/HTTPErrorSvgOther.js +6 -7
- package/lib/components/HTTPErrors/index.js +0 -3
- package/lib/components/ImportModal/ImportModal.js +39 -110
- package/lib/components/ImportModal/index.js +0 -1
- package/lib/components/InlineEdit/InlineEdit.js +61 -111
- package/lib/components/InlineEdit/index.js +0 -1
- package/lib/components/InlineEditV2/InlineEditV2.js +29 -74
- package/lib/components/InlineEditV2/index.js +0 -1
- package/lib/components/ModifiedTabs/ModifiedTabLabelNew.js +1 -7
- package/lib/components/ModifiedTabs/ModifiedTabLabelWithClose.js +6 -15
- package/lib/components/ModifiedTabs/ModifiedTabs.js +14 -32
- package/lib/components/ModifiedTabs/index.js +0 -1
- package/lib/components/MultiAddSelect/MultiAddSelect.js +0 -34
- package/lib/components/MultiAddSelect/index.js +0 -1
- package/lib/components/NotificationsPanel/NotificationsPanel.js +78 -143
- package/lib/components/NotificationsPanel/NotificationsPanel_data.js +1 -4
- package/lib/components/NotificationsPanel/index.js +0 -1
- package/lib/components/NotificationsPanel/preview-components/UnreadNotificationBell.js +1 -4
- package/lib/components/NotificationsPanel/utils.js +13 -21
- package/lib/components/OptionsTile/OptionsTile.js +45 -96
- package/lib/components/OptionsTile/index.js +0 -1
- package/lib/components/PageHeader/PageHeader.js +116 -212
- package/lib/components/PageHeader/PageHeaderDemo.data.js +0 -3
- package/lib/components/PageHeader/PageHeaderTitle.js +17 -35
- package/lib/components/PageHeader/PageHeaderUtils.js +17 -58
- package/lib/components/PageHeader/index.js +0 -1
- package/lib/components/ProductiveCard/ProductiveCard.js +6 -36
- package/lib/components/ProductiveCard/index.js +0 -1
- package/lib/components/RemoveModal/RemoveModal.js +24 -61
- package/lib/components/RemoveModal/index.js +0 -1
- package/lib/components/Saving/Saving.js +14 -44
- package/lib/components/Saving/index.js +0 -1
- package/lib/components/SidePanel/SidePanel.js +98 -173
- package/lib/components/SidePanel/constants.js +1 -1
- package/lib/components/SidePanel/index.js +0 -1
- package/lib/components/SidePanel/motion/variants.js +0 -2
- package/lib/components/SingleAddSelect/SingleAddSelect.js +0 -26
- package/lib/components/SingleAddSelect/index.js +0 -1
- package/lib/components/StatusIcon/StatusIcon.js +5 -23
- package/lib/components/StatusIcon/index.js +0 -1
- package/lib/components/TagSet/TagSet.js +58 -113
- package/lib/components/TagSet/TagSetModal.js +18 -46
- package/lib/components/TagSet/TagSetOverflow.js +15 -43
- package/lib/components/TagSet/index.js +0 -1
- package/lib/components/Tearsheet/Tearsheet.js +20 -42
- package/lib/components/Tearsheet/TearsheetNarrow.js +16 -34
- package/lib/components/Tearsheet/TearsheetShell.js +73 -114
- package/lib/components/Tearsheet/index.js +0 -2
- package/lib/components/Toolbar/Toolbar.js +12 -40
- package/lib/components/Toolbar/ToolbarButton.js +4 -22
- package/lib/components/Toolbar/ToolbarGroup.js +2 -16
- package/lib/components/Toolbar/index.js +0 -3
- package/lib/components/UserProfileImage/UserProfileImage.js +19 -48
- package/lib/components/UserProfileImage/index.js +0 -1
- package/lib/components/WebTerminal/WebTerminal.js +34 -67
- package/lib/components/WebTerminal/WebTerminalContentWrapper.js +9 -20
- package/lib/components/WebTerminal/hooks/index.js +8 -19
- package/lib/components/WebTerminal/index.js +0 -3
- package/lib/components/WebTerminal/preview-components/Navigation.js +2 -9
- package/lib/components/WebTerminal/preview-components/documentationLinks.js +1 -0
- package/lib/components/WebTerminal/preview-components/index.js +0 -2
- package/lib/components/_Canary/Canary.js +4 -17
- package/lib/components/_Canary/index.js +0 -1
- package/lib/components/index.js +7 -38
- package/lib/global/js/hooks/index.js +0 -10
- package/lib/global/js/hooks/useActiveElement.js +4 -10
- package/lib/global/js/hooks/useClickOutside.js +1 -4
- package/lib/global/js/hooks/useCreateComponentFocus.js +4 -8
- package/lib/global/js/hooks/useCreateComponentStepChange.js +23 -59
- package/lib/global/js/hooks/usePreviousValue.js +0 -3
- package/lib/global/js/hooks/useResetCreateComponent.js +8 -11
- package/lib/global/js/hooks/useRetrieveStepData.js +5 -12
- package/lib/global/js/hooks/useValidCreateStepCount.js +0 -3
- package/lib/global/js/hooks/useWindowResize.js +8 -21
- package/lib/global/js/hooks/useWindowScroll.js +4 -20
- package/lib/global/js/package-settings.js +5 -14
- package/lib/global/js/utils/ClickListener.js +3 -16
- package/lib/global/js/utils/DisplayBox.js +3 -9
- package/lib/global/js/utils/Wrap.js +8 -22
- package/lib/global/js/utils/deepCloneObject.js +5 -11
- package/lib/global/js/utils/devtools.js +1 -6
- package/lib/global/js/utils/getBezierValues.js +1 -5
- package/lib/global/js/utils/getFocusableElements.js +1 -4
- package/lib/global/js/utils/getScrollbarWidth.js +1 -2
- package/lib/global/js/utils/keyboardNavigation.js +7 -6
- package/lib/global/js/utils/lastIndexInArray.js +0 -4
- package/lib/global/js/utils/motionConstants.js +1 -5
- package/lib/global/js/utils/pconsole.js +1 -7
- package/lib/global/js/utils/props-helper.js +15 -57
- package/lib/global/js/utils/rangeWithCallback.js +1 -2
- package/lib/global/js/utils/scrollableAncestor.js +5 -12
- package/lib/global/js/utils/story-helper.js +7 -21
- package/lib/global/js/utils/test-helper.js +25 -69
- package/lib/global/js/utils/unwrap-if-fragment.js +7 -19
- package/lib/global/js/utils/uuidv4.js +1 -3
- package/lib/global/js/utils/uuidv4.spec.js +1 -3
- package/lib/global/js/utils/wait.js +1 -2
- package/lib/global/js/utils/wrapFocus.js +6 -16
- package/lib/index.js +0 -3
- package/lib/settings.js +24 -27
- package/package.json +8 -8
- package/scss/components/EditUpdateCards/_edit-update-cards.scss +87 -0
- package/scss/components/EditUpdateCards/_index.scss +8 -0
- package/scss/components/EditUpdateCards/_storybook-styles.scss +56 -0
- package/scss/components/InlineEditV2/_inline-edit-v2.scss +11 -8
- package/scss/components/InlineEditV2/_storybook-styles.scss +3 -0
- package/scss/components/SidePanel/_side-panel.scss +2 -3
- package/scss/components/_index.scss +1 -1
@@ -4,21 +4,20 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
4
4
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
5
5
|
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
6
6
|
var _excluded = ["cellSize", "className", "columns", "data", "defaultEmptyRowCount", "onDataUpdate", "id", "onActiveCellChange", "onSelectionAreaChange", "selectAllAriaLabel", "spreadsheetAriaLabel", "theme", "totalVisibleColumns"];
|
7
|
-
|
8
7
|
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; }
|
9
|
-
|
10
8
|
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) { _defineProperty(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; }
|
11
|
-
|
12
9
|
/**
|
13
10
|
* Copyright IBM Corp. 2022, 2022
|
14
11
|
*
|
15
12
|
* This source code is licensed under the Apache-2.0 license found in the
|
16
13
|
* LICENSE file in the root directory of this source tree.
|
17
14
|
*/
|
15
|
+
|
18
16
|
// Import portions of React that are needed.
|
19
17
|
import React, { useMemo, useRef, useState, useCallback, useEffect } from 'react';
|
20
|
-
import { useBlockLayout, useTable, useColumnOrder } from 'react-table';
|
18
|
+
import { useBlockLayout, useTable, useColumnOrder } from 'react-table';
|
21
19
|
|
20
|
+
// Other standard imports.
|
22
21
|
import PropTypes from 'prop-types';
|
23
22
|
import cx from 'classnames';
|
24
23
|
import { TextArea } from 'carbon-components-react';
|
@@ -40,12 +39,14 @@ import { selectAllCells } from './utils/selectAllCells';
|
|
40
39
|
import { handleEditSubmit } from './utils/handleEditSubmit';
|
41
40
|
import { handleActiveCellInSelectionEnter } from './utils/handleActiveCellInSelectionEnter';
|
42
41
|
import { handleActiveCellInSelectionTab } from './utils/handleActiveCellInSelectionTab';
|
43
|
-
import { handleCellDeletion } from './utils/handleCellDeletion';
|
44
|
-
//
|
42
|
+
import { handleCellDeletion } from './utils/handleCellDeletion';
|
43
|
+
// cspell:words rowcount colcount
|
45
44
|
|
45
|
+
// The block part of our conventional BEM class names (blockClass__E--M).
|
46
46
|
var blockClass = "".concat(pkg.prefix, "--data-spreadsheet");
|
47
|
-
var componentName = 'DataSpreadsheet';
|
47
|
+
var componentName = 'DataSpreadsheet';
|
48
48
|
|
49
|
+
// Default values for props
|
49
50
|
var defaults = {
|
50
51
|
cellSize: 'sm',
|
51
52
|
columns: Object.freeze([]),
|
@@ -56,102 +57,87 @@ var defaults = {
|
|
56
57
|
onSelectionAreaChange: Object.freeze(function () {}),
|
57
58
|
theme: 'light'
|
58
59
|
};
|
60
|
+
|
59
61
|
/**
|
60
62
|
* DataSpreadsheet: used to organize and display large amounts of structured data, separated by columns and rows in a grid-like format.
|
61
63
|
*/
|
62
|
-
|
63
64
|
export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
64
65
|
var _cx;
|
65
|
-
|
66
66
|
var _ref$cellSize = _ref.cellSize,
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
67
|
+
cellSize = _ref$cellSize === void 0 ? defaults.cellSize : _ref$cellSize,
|
68
|
+
className = _ref.className,
|
69
|
+
_ref$columns = _ref.columns,
|
70
|
+
columns = _ref$columns === void 0 ? defaults.columns : _ref$columns,
|
71
|
+
_ref$data = _ref.data,
|
72
|
+
data = _ref$data === void 0 ? defaults.data : _ref$data,
|
73
|
+
_ref$defaultEmptyRowC = _ref.defaultEmptyRowCount,
|
74
|
+
defaultEmptyRowCount = _ref$defaultEmptyRowC === void 0 ? defaults.defaultEmptyRowCount : _ref$defaultEmptyRowC,
|
75
|
+
_ref$onDataUpdate = _ref.onDataUpdate,
|
76
|
+
onDataUpdate = _ref$onDataUpdate === void 0 ? defaults.onDataUpdate : _ref$onDataUpdate,
|
77
|
+
id = _ref.id,
|
78
|
+
_ref$onActiveCellChan = _ref.onActiveCellChange,
|
79
|
+
onActiveCellChange = _ref$onActiveCellChan === void 0 ? defaults.onActiveCellChange : _ref$onActiveCellChan,
|
80
|
+
_ref$onSelectionAreaC = _ref.onSelectionAreaChange,
|
81
|
+
onSelectionAreaChange = _ref$onSelectionAreaC === void 0 ? defaults.onSelectionAreaChange : _ref$onSelectionAreaC,
|
82
|
+
selectAllAriaLabel = _ref.selectAllAriaLabel,
|
83
|
+
spreadsheetAriaLabel = _ref.spreadsheetAriaLabel,
|
84
|
+
theme = _ref.theme,
|
85
|
+
totalVisibleColumns = _ref.totalVisibleColumns,
|
86
|
+
rest = _objectWithoutProperties(_ref, _excluded);
|
88
87
|
var multiKeyTrackingRef = useRef();
|
89
88
|
var localRef = useRef();
|
90
89
|
var spreadsheetRef = ref || localRef;
|
91
90
|
var focusedElement = useActiveElement();
|
92
|
-
|
93
91
|
var _useState = useState(false),
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
92
|
+
_useState2 = _slicedToArray(_useState, 2),
|
93
|
+
containerHasFocus = _useState2[0],
|
94
|
+
setContainerHasFocus = _useState2[1];
|
98
95
|
var _useState3 = useState(null),
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
96
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
97
|
+
activeCellCoordinates = _useState4[0],
|
98
|
+
setActiveCellCoordinates = _useState4[1];
|
103
99
|
var _useState5 = useState([]),
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
100
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
101
|
+
selectionAreas = _useState6[0],
|
102
|
+
setSelectionAreas = _useState6[1];
|
108
103
|
var _useState7 = useState([]),
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
104
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
105
|
+
selectionAreaData = _useState8[0],
|
106
|
+
setSelectionAreaData = _useState8[1];
|
113
107
|
var _useState9 = useState(false),
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
108
|
+
_useState10 = _slicedToArray(_useState9, 2),
|
109
|
+
clickAndHoldActive = _useState10[0],
|
110
|
+
setClickAndHoldActive = _useState10[1];
|
118
111
|
var _useState11 = useState(''),
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
112
|
+
_useState12 = _slicedToArray(_useState11, 2),
|
113
|
+
currentMatcher = _useState12[0],
|
114
|
+
setCurrentMatcher = _useState12[1];
|
123
115
|
var _useState13 = useState(false),
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
116
|
+
_useState14 = _slicedToArray(_useState13, 2),
|
117
|
+
isEditing = _useState14[0],
|
118
|
+
setIsEditing = _useState14[1];
|
128
119
|
var _useState15 = useState(''),
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
120
|
+
_useState16 = _slicedToArray(_useState15, 2),
|
121
|
+
cellEditorValue = _useState16[0],
|
122
|
+
setCellEditorValue = _useState16[1];
|
133
123
|
var _useState17 = useState(false),
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
124
|
+
_useState18 = _slicedToArray(_useState17, 2),
|
125
|
+
headerCellHoldActive = _useState18[0],
|
126
|
+
setHeaderCellHoldActive = _useState18[1];
|
138
127
|
var _useState19 = useState(false),
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
128
|
+
_useState20 = _slicedToArray(_useState19, 2),
|
129
|
+
activeCellInsideSelectionArea = _useState20[0],
|
130
|
+
setActiveCellInsideSelectionArea = _useState20[1];
|
143
131
|
var previousState = usePreviousValue({
|
144
132
|
activeCellCoordinates: activeCellCoordinates,
|
145
133
|
isEditing: isEditing
|
146
134
|
});
|
147
135
|
var cellSizeValue = getCellSize(cellSize);
|
148
136
|
var cellEditorRef = useRef();
|
149
|
-
|
150
137
|
var _useState21 = useState(),
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
138
|
+
_useState22 = _slicedToArray(_useState21, 2),
|
139
|
+
activeCellContent = _useState22[0],
|
140
|
+
setActiveCellContent = _useState22[1];
|
155
141
|
var activeCellRef = useRef();
|
156
142
|
var cellEditorRulerRef = useRef();
|
157
143
|
var defaultColumn = useMemo(function () {
|
@@ -161,49 +147,45 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
|
|
161
147
|
rowHeight: cellSizeValue
|
162
148
|
};
|
163
149
|
}, [cellSizeValue]);
|
164
|
-
|
165
150
|
var _useMultipleKeyTracki = useMultipleKeyTracking({
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
151
|
+
ref: multiKeyTrackingRef,
|
152
|
+
containerHasFocus: containerHasFocus,
|
153
|
+
isEditing: isEditing
|
154
|
+
}),
|
155
|
+
keysPressedList = _useMultipleKeyTracki.keysPressedList,
|
156
|
+
usingMac = _useMultipleKeyTracki.usingMac;
|
173
157
|
var scrollBarSize = useMemo(function () {
|
174
158
|
return getScrollbarWidth();
|
175
159
|
}, []);
|
176
|
-
|
177
160
|
var _useTable = useTable({
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
161
|
+
columns: columns,
|
162
|
+
data: data,
|
163
|
+
defaultColumn: defaultColumn
|
164
|
+
}, useBlockLayout, useColumnOrder),
|
165
|
+
getTableProps = _useTable.getTableProps,
|
166
|
+
getTableBodyProps = _useTable.getTableBodyProps,
|
167
|
+
headerGroups = _useTable.headerGroups,
|
168
|
+
rows = _useTable.rows,
|
169
|
+
totalColumnsWidth = _useTable.totalColumnsWidth,
|
170
|
+
prepareRow = _useTable.prepareRow,
|
171
|
+
setColumnOrder = _useTable.setColumnOrder,
|
172
|
+
visibleColumns = _useTable.visibleColumns;
|
173
|
+
|
174
|
+
// Update the spreadsheet data after editing a cell
|
192
175
|
var updateData = useCallback(function (rowIndex, columnId, newValue) {
|
193
176
|
onDataUpdate(function (prev) {
|
194
177
|
return prev.map(function (row, index) {
|
195
178
|
if (index === rowIndex) {
|
196
179
|
return _objectSpread(_objectSpread({}, prev[rowIndex]), {}, _defineProperty({}, columnId, cellEditorValue || newValue));
|
197
180
|
}
|
198
|
-
|
199
181
|
return row;
|
200
182
|
});
|
201
183
|
});
|
202
|
-
}, [cellEditorValue, onDataUpdate]);
|
184
|
+
}, [cellEditorValue, onDataUpdate]);
|
203
185
|
|
186
|
+
// Removes the active cell element
|
204
187
|
var removeActiveCell = useCallback(function () {
|
205
188
|
var activeCellHighlight = spreadsheetRef.current.querySelector(".".concat(blockClass, "__active-cell--highlight"));
|
206
|
-
|
207
189
|
if (activeCellHighlight) {
|
208
190
|
activeCellHighlight.style.display = 'none';
|
209
191
|
}
|
@@ -212,25 +194,23 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
|
|
212
194
|
setCellEditorValue('');
|
213
195
|
setIsEditing(false);
|
214
196
|
cellEditorRef.current.style.display = 'none';
|
215
|
-
}, []);
|
216
|
-
// happen if you click on another cell while isEditing is true
|
197
|
+
}, []);
|
217
198
|
|
199
|
+
// Remove cell editor if the active cell coordinates change and save with new cell data, this will
|
200
|
+
// happen if you click on another cell while isEditing is true
|
218
201
|
useEffect(function () {
|
219
202
|
var prevCoords = previousState === null || previousState === void 0 ? void 0 : previousState.activeCellCoordinates;
|
220
|
-
|
221
203
|
if (((prevCoords === null || prevCoords === void 0 ? void 0 : prevCoords.row) !== (activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.row) || (prevCoords === null || prevCoords === void 0 ? void 0 : prevCoords.column) !== (activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.column)) && isEditing) {
|
222
204
|
var cellProps = rows[prevCoords === null || prevCoords === void 0 ? void 0 : prevCoords.row].cells[prevCoords === null || prevCoords === void 0 ? void 0 : prevCoords.column];
|
223
205
|
removeCellEditor();
|
224
206
|
updateData(prevCoords === null || prevCoords === void 0 ? void 0 : prevCoords.row, cellProps.column.id);
|
225
207
|
cellEditorRulerRef.current.textContent = '';
|
226
208
|
}
|
227
|
-
|
228
209
|
if ((prevCoords === null || prevCoords === void 0 ? void 0 : prevCoords.row) !== (activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.row) || (prevCoords === null || prevCoords === void 0 ? void 0 : prevCoords.column) !== (activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.column)) {
|
229
210
|
if (activeCellCoordinates && (activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.row) !== 'header' && (activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.column) !== 'header') {
|
230
211
|
var activeCellFullData = typeof (activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.column) === 'number' && typeof (activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.row) === 'number' ? rows[activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.row].cells[activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.column] : null;
|
231
212
|
setActiveCellContent(activeCellFullData.render('Cell'));
|
232
213
|
}
|
233
|
-
|
234
214
|
if (activeCellCoordinates && (activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.row) === 'header' || (activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.column) === 'header') {
|
235
215
|
setActiveCellContent(null);
|
236
216
|
}
|
@@ -238,13 +218,13 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
|
|
238
218
|
}, [activeCellCoordinates, previousState === null || previousState === void 0 ? void 0 : previousState.activeCellCoordinates, updateData, rows, isEditing, removeCellEditor, activeCellContent]);
|
239
219
|
var createActiveCell = useCallback(function (_ref2) {
|
240
220
|
var placementElement = _ref2.placementElement,
|
241
|
-
|
242
|
-
|
243
|
-
|
221
|
+
coords = _ref2.coords,
|
222
|
+
_ref2$addToHeader = _ref2.addToHeader,
|
223
|
+
addToHeader = _ref2$addToHeader === void 0 ? false : _ref2$addToHeader;
|
244
224
|
var activeCellFullData = typeof (coords === null || coords === void 0 ? void 0 : coords.column) === 'number' && typeof (coords === null || coords === void 0 ? void 0 : coords.row) === 'number' ? rows[coords === null || coords === void 0 ? void 0 : coords.row].cells[coords === null || coords === void 0 ? void 0 : coords.column] : null;
|
245
225
|
var activeCellValue = activeCellFullData ? Object.values(activeCellFullData.row.values)[coords === null || coords === void 0 ? void 0 : coords.column] : null;
|
246
|
-
var prevCoords = previousState === null || previousState === void 0 ? void 0 : previousState.activeCellCoordinates;
|
247
|
-
|
226
|
+
var prevCoords = previousState === null || previousState === void 0 ? void 0 : previousState.activeCellCoordinates;
|
227
|
+
// Only create an active cell if the activeCellCoordinates have changed
|
248
228
|
if ((prevCoords === null || prevCoords === void 0 ? void 0 : prevCoords.row) !== (coords === null || coords === void 0 ? void 0 : coords.row) || (prevCoords === null || prevCoords === void 0 ? void 0 : prevCoords.column) !== (coords === null || coords === void 0 ? void 0 : coords.column)) {
|
249
229
|
createActiveCellFn({
|
250
230
|
placementElement: placementElement,
|
@@ -284,30 +264,26 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
|
|
284
264
|
// If activeCellCoordinates is null then we need to set an initial value
|
285
265
|
// which will place the activeCell on the select all cell/button
|
286
266
|
setActiveCellInsideSelectionArea(false);
|
287
|
-
|
288
267
|
if (!activeCellCoordinates) {
|
289
268
|
setActiveCellCoordinates({
|
290
269
|
column: 'header',
|
291
270
|
row: 'header'
|
292
271
|
});
|
293
272
|
}
|
294
|
-
|
295
273
|
return;
|
296
274
|
}, [activeCellCoordinates]);
|
297
275
|
var updateActiveCellCoordinates = useCallback(function (_ref3) {
|
298
276
|
var _ref3$coords = _ref3.coords,
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
277
|
+
coords = _ref3$coords === void 0 ? _objectSpread({}, activeCellCoordinates) : _ref3$coords,
|
278
|
+
updatedValue = _ref3.updatedValue,
|
279
|
+
_ref3$optOutOfSelecti = _ref3.optOutOfSelectionAreaUpdate,
|
280
|
+
optOutOfSelectionAreaUpdate = _ref3$optOutOfSelecti === void 0 ? false : _ref3$optOutOfSelecti;
|
304
281
|
var newActiveCell = _objectSpread(_objectSpread({}, coords), updatedValue);
|
305
|
-
|
306
|
-
|
282
|
+
setActiveCellCoordinates(newActiveCell);
|
283
|
+
// Only run if the active cell is _not_ a header cell. This will add a point1 object
|
307
284
|
// to selectionAreas every time the active cell changes, allowing us to create cell
|
308
285
|
// selections using keyboard. Opting out of the selection area updates here means
|
309
286
|
// that the active cell is being moved within a selection area
|
310
|
-
|
311
287
|
if (newActiveCell.row !== 'header' && newActiveCell.column !== 'header' && !optOutOfSelectionAreaUpdate) {
|
312
288
|
var tempMatcher = uuidv4();
|
313
289
|
setSelectionAreas([{
|
@@ -319,9 +295,7 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
|
|
319
295
|
}, [activeCellCoordinates]);
|
320
296
|
var handleHomeEndKey = useCallback(function (_ref4) {
|
321
297
|
var type = _ref4.type;
|
322
|
-
|
323
298
|
var coordinatesClone = _objectSpread({}, activeCellCoordinates);
|
324
|
-
|
325
299
|
updateActiveCellCoordinates({
|
326
300
|
coords: coordinatesClone,
|
327
301
|
updatedValue: {
|
@@ -334,26 +308,21 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
|
|
334
308
|
}, [activeCellCoordinates, updateActiveCellCoordinates, spreadsheetRef, columns.length]);
|
335
309
|
var handleKeyPress = useCallback(function (event) {
|
336
310
|
var key = event.key;
|
337
|
-
|
338
311
|
if (isEditing) {
|
339
312
|
return;
|
340
|
-
}
|
341
|
-
|
342
|
-
|
313
|
+
}
|
314
|
+
// Command keys need to be returned as there is default browser behavior with these keys
|
343
315
|
if (key === 'Meta' || key === 'Control') {
|
344
316
|
return;
|
345
|
-
}
|
346
|
-
|
347
|
-
|
317
|
+
}
|
318
|
+
// Prevent arrow keys, home key, and end key from scrolling the page when the data spreadsheet container has focus
|
348
319
|
if (['End', 'Home', 'ArrowLeft', 'ArrowUp', 'ArrowRight', 'ArrowDown'].indexOf(key) > -1 && !isEditing) {
|
349
320
|
event.preventDefault();
|
350
321
|
}
|
351
|
-
|
352
322
|
if (['Tab'].indexOf(key) > -1 && isEditing) {
|
353
323
|
return;
|
354
|
-
}
|
355
|
-
|
356
|
-
|
324
|
+
}
|
325
|
+
// Clear out all cell selection areas if user uses any arrow key, except if the shift key is being held
|
357
326
|
if (['ArrowLeft', 'ArrowUp', 'ArrowRight', 'ArrowDown'].indexOf(key) > -1) {
|
358
327
|
if (selectionAreas !== null && selectionAreas !== void 0 && selectionAreas.length && keysPressedList.length < 2 && !includesShift(keysPressedList)) {
|
359
328
|
setSelectionAreas([]);
|
@@ -363,7 +332,6 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
|
|
363
332
|
});
|
364
333
|
}
|
365
334
|
}
|
366
|
-
|
367
335
|
if (!isEditing && (keysPressedList === null || keysPressedList === void 0 ? void 0 : keysPressedList.length) > 1) {
|
368
336
|
handleMultipleKeys({
|
369
337
|
activeCellCoordinates: activeCellCoordinates,
|
@@ -382,16 +350,15 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
|
|
382
350
|
usingMac: usingMac
|
383
351
|
});
|
384
352
|
}
|
385
|
-
|
386
353
|
var deleteParams = {
|
387
354
|
selectionAreas: selectionAreas,
|
388
355
|
currentMatcher: currentMatcher,
|
389
356
|
rows: rows,
|
390
357
|
setActiveCellContent: setActiveCellContent,
|
391
358
|
updateData: updateData
|
392
|
-
};
|
359
|
+
};
|
360
|
+
// Allow arrow key navigation if there are less than two activeKeys OR
|
393
361
|
// if one of the activeCellCoordinates is in a header position
|
394
|
-
|
395
362
|
if (keysPressedList.length < 2 && !includesShift(keysPressedList) || activeCellCoordinates.row === 'header' || activeCellCoordinates.column === 'header') {
|
396
363
|
switch (key) {
|
397
364
|
// Backspace
|
@@ -401,14 +368,12 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
|
|
401
368
|
break;
|
402
369
|
}
|
403
370
|
// Delete
|
404
|
-
|
405
371
|
case 'Delete':
|
406
372
|
{
|
407
373
|
handleCellDeletion(deleteParams);
|
408
374
|
break;
|
409
375
|
}
|
410
376
|
// Enter
|
411
|
-
|
412
377
|
case 'Enter':
|
413
378
|
{
|
414
379
|
handleActiveCellInSelectionEnter({
|
@@ -421,32 +386,27 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
|
|
421
386
|
break;
|
422
387
|
}
|
423
388
|
// HOME
|
424
|
-
|
425
389
|
case 'Home':
|
426
390
|
{
|
427
391
|
if (includesResourceKey(keysPressedList, usingMac)) {
|
428
392
|
return;
|
429
393
|
}
|
430
|
-
|
431
394
|
handleHomeEndKey({
|
432
395
|
type: 'home'
|
433
396
|
});
|
434
397
|
break;
|
435
398
|
}
|
436
|
-
|
437
399
|
case 'End':
|
438
400
|
{
|
439
401
|
if (includesResourceKey(keysPressedList, usingMac)) {
|
440
402
|
return;
|
441
403
|
}
|
442
|
-
|
443
404
|
handleHomeEndKey({
|
444
405
|
type: 'end'
|
445
406
|
});
|
446
407
|
break;
|
447
408
|
}
|
448
409
|
// Tab
|
449
|
-
|
450
410
|
case 'Tab':
|
451
411
|
{
|
452
412
|
if (activeCellInsideSelectionArea) {
|
@@ -459,7 +419,6 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
|
|
459
419
|
updateActiveCellCoordinates: updateActiveCellCoordinates
|
460
420
|
});
|
461
421
|
}
|
462
|
-
|
463
422
|
setSelectionAreas([]);
|
464
423
|
removeActiveCell();
|
465
424
|
removeCellEditor();
|
@@ -468,17 +427,13 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
|
|
468
427
|
break;
|
469
428
|
}
|
470
429
|
// Left
|
471
|
-
|
472
430
|
case 'ArrowLeft':
|
473
431
|
{
|
474
432
|
handleInitialArrowPress();
|
475
|
-
|
476
433
|
var coordinatesClone = _objectSpread({}, activeCellCoordinates);
|
477
|
-
|
478
434
|
if (coordinatesClone.column === 'header') {
|
479
435
|
return;
|
480
436
|
}
|
481
|
-
|
482
437
|
if (typeof coordinatesClone.column === 'number') {
|
483
438
|
if (coordinatesClone.column === 0) {
|
484
439
|
updateActiveCellCoordinates({
|
@@ -489,7 +444,6 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
|
|
489
444
|
});
|
490
445
|
return;
|
491
446
|
}
|
492
|
-
|
493
447
|
updateActiveCellCoordinates({
|
494
448
|
coords: coordinatesClone,
|
495
449
|
updatedValue: {
|
@@ -497,21 +451,16 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
|
|
497
451
|
}
|
498
452
|
});
|
499
453
|
}
|
500
|
-
|
501
454
|
break;
|
502
455
|
}
|
503
456
|
// Up
|
504
|
-
|
505
457
|
case 'ArrowUp':
|
506
458
|
{
|
507
459
|
handleInitialArrowPress();
|
508
|
-
|
509
460
|
var _coordinatesClone = _objectSpread({}, activeCellCoordinates);
|
510
|
-
|
511
461
|
if (_coordinatesClone.row === 'header') {
|
512
462
|
return;
|
513
463
|
}
|
514
|
-
|
515
464
|
if (typeof _coordinatesClone.row === 'number') {
|
516
465
|
// set row back to header if we are at index 0
|
517
466
|
if (_coordinatesClone.row === 0) {
|
@@ -522,9 +471,8 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
|
|
522
471
|
}
|
523
472
|
});
|
524
473
|
return;
|
525
|
-
}
|
526
|
-
|
527
|
-
|
474
|
+
}
|
475
|
+
// if we are at any other index than 0, subtract 1 from current row index
|
528
476
|
updateActiveCellCoordinates({
|
529
477
|
coords: _coordinatesClone,
|
530
478
|
updatedValue: {
|
@@ -532,17 +480,13 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
|
|
532
480
|
}
|
533
481
|
});
|
534
482
|
}
|
535
|
-
|
536
483
|
break;
|
537
484
|
}
|
538
485
|
// Right
|
539
|
-
|
540
486
|
case 'ArrowRight':
|
541
487
|
{
|
542
488
|
handleInitialArrowPress();
|
543
|
-
|
544
489
|
var _coordinatesClone2 = _objectSpread({}, activeCellCoordinates);
|
545
|
-
|
546
490
|
if (_coordinatesClone2.column === 'header') {
|
547
491
|
updateActiveCellCoordinates({
|
548
492
|
coords: _coordinatesClone2,
|
@@ -551,14 +495,12 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
|
|
551
495
|
}
|
552
496
|
});
|
553
497
|
}
|
554
|
-
|
555
498
|
if (typeof _coordinatesClone2.column === 'number') {
|
556
499
|
// Prevent active cell coordinates from updating if the active
|
557
500
|
// cell is in the last column, ie we can't go any further to the right
|
558
501
|
if (columns.length - 1 === _coordinatesClone2.column) {
|
559
502
|
return;
|
560
503
|
}
|
561
|
-
|
562
504
|
updateActiveCellCoordinates({
|
563
505
|
coords: _coordinatesClone2,
|
564
506
|
updatedValue: {
|
@@ -566,17 +508,13 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
|
|
566
508
|
}
|
567
509
|
});
|
568
510
|
}
|
569
|
-
|
570
511
|
break;
|
571
512
|
}
|
572
513
|
// Down
|
573
|
-
|
574
514
|
case 'ArrowDown':
|
575
515
|
{
|
576
516
|
handleInitialArrowPress();
|
577
|
-
|
578
517
|
var _coordinatesClone3 = _objectSpread({}, activeCellCoordinates);
|
579
|
-
|
580
518
|
if (_coordinatesClone3.row === 'header') {
|
581
519
|
updateActiveCellCoordinates({
|
582
520
|
coords: _coordinatesClone3,
|
@@ -585,7 +523,6 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
|
|
585
523
|
}
|
586
524
|
});
|
587
525
|
}
|
588
|
-
|
589
526
|
if (typeof _coordinatesClone3.row === 'number') {
|
590
527
|
// Prevent active cell coordinates from updating if the active
|
591
528
|
// cell is in the last row, ie we can't go any further down since
|
@@ -593,7 +530,6 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
|
|
593
530
|
if (rows.length - 1 === _coordinatesClone3.row) {
|
594
531
|
return;
|
595
532
|
}
|
596
|
-
|
597
533
|
updateActiveCellCoordinates({
|
598
534
|
coords: _coordinatesClone3,
|
599
535
|
updatedValue: {
|
@@ -601,13 +537,11 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
|
|
601
537
|
}
|
602
538
|
});
|
603
539
|
}
|
604
|
-
|
605
540
|
break;
|
606
541
|
}
|
607
542
|
}
|
608
543
|
}
|
609
544
|
}, [activeCellInsideSelectionArea, updateActiveCellCoordinates, handleInitialArrowPress, activeCellCoordinates, removeActiveCell, columns, rows, spreadsheetRef, currentMatcher, isEditing, removeCellEditor, selectionAreas, handleHomeEndKey, keysPressedList, usingMac, updateData]);
|
610
|
-
|
611
545
|
var startEditMode = function startEditMode() {
|
612
546
|
setIsEditing(true);
|
613
547
|
setClickAndHoldActive(false);
|
@@ -616,40 +550,36 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
|
|
616
550
|
setCellEditorValue(activeCellValue);
|
617
551
|
cellEditorRulerRef.current.textContent = activeCellValue;
|
618
552
|
cellEditorRef.current.style.width = activeCellRef === null || activeCellRef === void 0 ? void 0 : activeCellRef.current.style.width;
|
619
|
-
};
|
620
|
-
// this is not done for us by default in Safari
|
621
|
-
|
553
|
+
};
|
622
554
|
|
555
|
+
// Sets the initial placement of the cell editor cursor at the end of the text area
|
556
|
+
// this is not done for us by default in Safari
|
623
557
|
useEffect(function () {
|
624
558
|
if (isEditing && !(previousState !== null && previousState !== void 0 && previousState.isEditing)) {
|
625
559
|
cellEditorRef.current.setSelectionRange(cellEditorRulerRef.current.textContent.length, cellEditorRulerRef.current.textContent.length);
|
626
560
|
cellEditorRef.current.focus();
|
627
561
|
}
|
628
562
|
}, [isEditing, previousState === null || previousState === void 0 ? void 0 : previousState.isEditing]);
|
629
|
-
|
630
563
|
var handleActiveCellClick = function handleActiveCellClick() {
|
631
564
|
if ((activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.row) === 'header' || (activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.column) === 'header') {
|
632
565
|
var indexValue = (activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.row) === 'header' ? activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.column : activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.row;
|
633
|
-
|
634
566
|
if ((activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.row) === 'header' && (activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.column) === 'header') {
|
635
567
|
return;
|
636
568
|
}
|
637
|
-
|
638
569
|
handleRowColumnHeaderClick({
|
639
570
|
isKeyboard: false,
|
640
571
|
index: indexValue
|
641
572
|
});
|
642
573
|
}
|
643
|
-
|
644
574
|
return;
|
645
|
-
};
|
646
|
-
|
575
|
+
};
|
647
576
|
|
577
|
+
// Mouse up on active cell
|
648
578
|
var handleActiveCellMouseUp = function handleActiveCellMouseUp() {
|
649
579
|
setClickAndHoldActive(false);
|
650
|
-
};
|
651
|
-
|
580
|
+
};
|
652
581
|
|
582
|
+
// Mouse down on active cell
|
653
583
|
var handleActiveCellMouseDown = function handleActiveCellMouseDown() {
|
654
584
|
if ((activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.row) !== 'header' || (activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.column) !== 'header') {
|
655
585
|
var tempMatcher = uuidv4();
|
@@ -665,19 +595,16 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
|
|
665
595
|
setSelectionAreaData([]);
|
666
596
|
setActiveCellInsideSelectionArea(false);
|
667
597
|
}
|
668
|
-
|
669
598
|
return;
|
670
|
-
};
|
671
|
-
|
599
|
+
};
|
672
600
|
|
601
|
+
// Go into edit mode if 'Enter' key is pressed on activeCellRef
|
673
602
|
var handleActiveCellKeyDown = function handleActiveCellKeyDown(event) {
|
674
603
|
var key = event.key;
|
675
|
-
|
676
604
|
if (key === 'Enter' && !activeCellInsideSelectionArea) {
|
677
605
|
if ((activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.column) !== 'header' && (activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.row) !== 'header') {
|
678
606
|
startEditMode();
|
679
607
|
}
|
680
|
-
|
681
608
|
if ((activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.row) === 'header' || (activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.column) === 'header') {
|
682
609
|
handleRowColumnHeaderClick({
|
683
610
|
isKeyboard: true
|
@@ -685,11 +612,10 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
|
|
685
612
|
}
|
686
613
|
}
|
687
614
|
};
|
688
|
-
|
689
615
|
var handleRowColumnHeaderClick = function handleRowColumnHeaderClick(_ref5) {
|
690
616
|
var isKeyboard = _ref5.isKeyboard,
|
691
|
-
|
692
|
-
|
617
|
+
_ref5$index = _ref5.index,
|
618
|
+
index = _ref5$index === void 0 ? null : _ref5$index;
|
693
619
|
var handleHeaderCellProps = {
|
694
620
|
activeCellCoordinates: activeCellCoordinates,
|
695
621
|
rows: rows,
|
@@ -702,21 +628,19 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
|
|
702
628
|
setSelectionAreaData: setSelectionAreaData,
|
703
629
|
index: index,
|
704
630
|
currentMatcher: currentMatcher
|
705
|
-
};
|
706
|
-
|
631
|
+
};
|
632
|
+
// Select an entire column
|
707
633
|
if ((activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.row) === 'header' && (activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.column) !== 'header') {
|
708
634
|
handleHeaderCellSelection(_objectSpread({
|
709
635
|
type: 'column'
|
710
636
|
}, handleHeaderCellProps));
|
711
|
-
}
|
712
|
-
|
713
|
-
|
637
|
+
}
|
638
|
+
// Select an entire row
|
714
639
|
if ((activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.column) === 'header' && (activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.row) !== 'header') {
|
715
640
|
handleHeaderCellSelection(_objectSpread({
|
716
641
|
type: 'row'
|
717
642
|
}, handleHeaderCellProps));
|
718
643
|
}
|
719
|
-
|
720
644
|
if ((activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.column) === 'header' && (activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.row) === 'header') {
|
721
645
|
selectAllCells({
|
722
646
|
ref: spreadsheetRef,
|
@@ -728,13 +652,12 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
|
|
728
652
|
updateActiveCellCoordinates: updateActiveCellCoordinates
|
729
653
|
});
|
730
654
|
}
|
731
|
-
};
|
732
|
-
|
655
|
+
};
|
733
656
|
|
657
|
+
// Go into edit mode if double click is detected on activeCellRef
|
734
658
|
var handleActiveCellDoubleClick = function handleActiveCellDoubleClick() {
|
735
659
|
startEditMode();
|
736
660
|
};
|
737
|
-
|
738
661
|
useSpreadsheetEdit({
|
739
662
|
isEditing: isEditing,
|
740
663
|
rows: rows,
|
@@ -748,27 +671,25 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
|
|
748
671
|
});
|
749
672
|
var handleActiveCellMouseEnter = useCallback(function () {
|
750
673
|
handleActiveCellMouseEnterCallback(selectionAreas, clickAndHoldActive);
|
751
|
-
}, [clickAndHoldActive, selectionAreas, handleActiveCellMouseEnterCallback]);
|
674
|
+
}, [clickAndHoldActive, selectionAreas, handleActiveCellMouseEnterCallback]);
|
675
|
+
|
676
|
+
// Only update if there are cell selection areas
|
752
677
|
// Find point object that matches currentMatcher and remove the second point
|
753
678
|
// because hovering over the active cell while clicking and holding should
|
754
679
|
// remove the previously existing selection area
|
755
|
-
|
756
680
|
var handleActiveCellMouseEnterCallback = useCallback(function (areas, clickHold) {
|
757
681
|
if (!currentMatcher) {
|
758
682
|
return;
|
759
683
|
}
|
760
|
-
|
761
684
|
if (areas && areas.length && clickHold && currentMatcher) {
|
762
685
|
setSelectionAreas(function (prev) {
|
763
686
|
var selectionAreaClone = deepCloneObject(prev);
|
764
687
|
var indexOfItemToUpdate = selectionAreaClone.findIndex(function (item) {
|
765
688
|
return item.matcher === currentMatcher;
|
766
689
|
});
|
767
|
-
|
768
690
|
if (indexOfItemToUpdate === -1) {
|
769
691
|
return prev;
|
770
692
|
}
|
771
|
-
|
772
693
|
if (_typeof(selectionAreaClone[indexOfItemToUpdate].point2) === 'object' && selectionAreaClone[indexOfItemToUpdate].areaCreated) {
|
773
694
|
selectionAreaClone[indexOfItemToUpdate].point2 = selectionAreaClone[indexOfItemToUpdate].point1;
|
774
695
|
selectionAreaClone[indexOfItemToUpdate].areaCreated = false;
|
@@ -779,7 +700,6 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
|
|
779
700
|
});
|
780
701
|
return selectionAreaClone;
|
781
702
|
}
|
782
|
-
|
783
703
|
return prev;
|
784
704
|
});
|
785
705
|
}
|
@@ -890,26 +810,27 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
|
|
890
810
|
ref: cellEditorRulerRef,
|
891
811
|
className: "".concat(blockClass, "__cell-editor-ruler")
|
892
812
|
})));
|
893
|
-
});
|
813
|
+
});
|
814
|
+
|
815
|
+
// Return a placeholder if not released and not enabled by feature flag
|
816
|
+
DataSpreadsheet = pkg.checkComponentEnabled(DataSpreadsheet, componentName);
|
894
817
|
|
895
|
-
|
818
|
+
// The display name of the component, used by React. Note that displayName
|
896
819
|
// is used in preference to relying on function.name.
|
820
|
+
DataSpreadsheet.displayName = componentName;
|
897
821
|
|
898
|
-
|
822
|
+
// The types and DocGen commentary for the component props,
|
899
823
|
// in alphabetical order (for consistency).
|
900
824
|
// See https://www.npmjs.com/package/prop-types#usage.
|
901
|
-
|
902
825
|
DataSpreadsheet.propTypes = {
|
903
826
|
/**
|
904
827
|
* Specifies the cell height
|
905
828
|
*/
|
906
829
|
cellSize: PropTypes.oneOf(['xs', 'sm', 'md', 'lg']),
|
907
|
-
|
908
830
|
/**
|
909
831
|
* Provide an optional class to be applied to the containing node.
|
910
832
|
*/
|
911
833
|
className: PropTypes.string,
|
912
|
-
|
913
834
|
/**
|
914
835
|
* The data that will build the column headers
|
915
836
|
*/
|
@@ -917,59 +838,49 @@ DataSpreadsheet.propTypes = {
|
|
917
838
|
Header: PropTypes.string,
|
918
839
|
accessor: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),
|
919
840
|
Cell: PropTypes.func // optional cell formatter
|
920
|
-
|
921
841
|
})),
|
922
842
|
|
923
843
|
/**
|
924
844
|
* The spreadsheet data that will be rendered in the body of the spreadsheet component
|
925
845
|
*/
|
926
846
|
data: PropTypes.arrayOf(PropTypes.shape),
|
927
|
-
|
928
847
|
/**
|
929
848
|
* Sets the number of empty rows to be created when there is no data provided
|
930
849
|
*/
|
931
850
|
defaultEmptyRowCount: PropTypes.number,
|
932
|
-
|
933
851
|
/**
|
934
852
|
* The spreadsheet id
|
935
853
|
*/
|
936
854
|
id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
|
937
|
-
|
938
855
|
/**
|
939
856
|
* The event handler that is called when the active cell changes
|
940
857
|
*/
|
941
858
|
onActiveCellChange: PropTypes.func,
|
942
|
-
|
943
859
|
/**
|
944
860
|
* The setter fn for the data prop
|
945
861
|
*/
|
946
862
|
onDataUpdate: PropTypes.func,
|
947
|
-
|
948
863
|
/**
|
949
864
|
* The event handler that is called when the selection area values change
|
950
865
|
*/
|
951
866
|
onSelectionAreaChange: PropTypes.func,
|
952
|
-
|
953
867
|
/**
|
954
868
|
* The aria label applied to the Select all button
|
955
869
|
*/
|
956
870
|
selectAllAriaLabel: PropTypes.string.isRequired,
|
957
|
-
|
958
871
|
/**
|
959
872
|
* The aria label applied to the Data spreadsheet component
|
960
873
|
*/
|
961
874
|
spreadsheetAriaLabel: PropTypes.string.isRequired,
|
962
|
-
|
963
875
|
/**
|
964
876
|
* The theme the DataSpreadsheet should use (only used to render active cell/selection area colors on dark theme)
|
965
877
|
*/
|
966
878
|
theme: PropTypes.oneOf(['light', 'dark']),
|
967
|
-
|
968
879
|
/**
|
969
880
|
* The total number of columns to be initially visible, additional columns will be rendered and
|
970
881
|
* visible via horizontal scrollbar
|
971
882
|
*/
|
972
883
|
totalVisibleColumns: PropTypes.number
|
973
|
-
/* TODO: add types and DocGen for all props. */
|
974
884
|
|
885
|
+
/* TODO: add types and DocGen for all props. */
|
975
886
|
};
|