@carbon/ibm-products 2.0.0-rc.1 → 2.0.0-rc.10
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +2 -2
- package/css/index-full-carbon.css +1187 -325
- package/css/index-full-carbon.css.map +1 -1
- package/css/index-full-carbon.min.css +6 -8
- package/css/index-full-carbon.min.css.map +1 -1
- package/css/index-without-carbon-released-only.css +789 -171
- package/css/index-without-carbon-released-only.css.map +1 -1
- package/css/index-without-carbon-released-only.min.css +4 -8
- package/css/index-without-carbon-released-only.min.css.map +1 -1
- package/css/index-without-carbon.css +1068 -414
- package/css/index-without-carbon.css.map +1 -1
- package/css/index-without-carbon.min.css +6 -8
- package/css/index-without-carbon.min.css.map +1 -1
- package/css/index.css +981 -267
- package/css/index.css.map +1 -1
- package/css/index.min.css +6 -8
- package/css/index.min.css.map +1 -1
- package/es/components/APIKeyModal/APIKeyModal.js +1 -1
- package/es/components/ActionBar/ActionBarOverflowItems.js +1 -0
- package/es/components/ActionSet/ActionSet.js +7 -3
- package/es/components/AddSelect/AddSelect.js +6 -6
- package/es/components/AddSelect/AddSelectBody.js +72 -31
- package/es/components/AddSelect/AddSelectBreadcrumbs.js +12 -4
- package/es/components/AddSelect/AddSelectColumn.js +8 -8
- package/es/components/AddSelect/AddSelectFilter.js +10 -7
- package/es/components/AddSelect/AddSelectList.js +64 -29
- package/es/components/AddSelect/AddSelectMetaPanel.js +7 -1
- package/es/components/AddSelect/AddSelectSidebar.js +5 -2
- package/es/components/AddSelect/AddSelectSort.js +2 -2
- package/es/components/AddSelect/add-select-utils.js +9 -2
- package/es/components/AddSelect/hooks/useItemSort.js +6 -0
- package/es/components/AddSelect/hooks/useParentSelect.js +6 -0
- package/es/components/AddSelect/hooks/usePath.js +15 -1
- package/es/components/AddSelect/index.js +1 -1
- package/es/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +4 -6
- package/es/components/Card/Card.js +16 -6
- package/es/components/Card/CardFooter.js +3 -1
- package/es/components/Card/CardHeader.js +20 -1
- package/es/components/ComboButton/ComboButton.js +1 -1
- package/es/components/CreateFullPage/CreateFullPage.js +4 -1
- package/es/components/CreateTearsheet/CreateTearsheet.js +8 -1
- package/es/components/CreateTearsheetNarrow/CreateTearsheetNarrow.js +2 -2
- package/es/components/DataSpreadsheet/DataSpreadsheet.js +64 -11
- package/es/components/DataSpreadsheet/DataSpreadsheetBody.js +2 -1
- package/es/components/DataSpreadsheet/DataSpreadsheetHeader.js +7 -0
- package/es/components/DataSpreadsheet/hooks/useMultipleKeyTracking.js +6 -5
- package/es/components/DataSpreadsheet/utils/handleCellDeletion.js +40 -0
- package/es/components/DataSpreadsheet/utils/handleMultipleKeys.js +1 -1
- package/es/components/Datagrid/Datagrid/Datagrid.js +10 -38
- package/es/components/Datagrid/Datagrid/DatagridContent.js +154 -0
- package/es/components/Datagrid/Datagrid/DatagridExpandedRow.js +9 -1
- package/es/components/Datagrid/Datagrid/DatagridRow.js +53 -6
- package/es/components/Datagrid/Datagrid/DatagridSelectAll.js +10 -3
- package/es/components/Datagrid/Datagrid/DatagridSelectAllWithToggle.js +13 -4
- package/es/components/Datagrid/Datagrid/DatagridToolbar.js +9 -6
- package/es/components/Datagrid/Datagrid/DatagridVirtualBody.js +2 -1
- package/es/components/Datagrid/Datagrid/DraggableElement.js +6 -2
- package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/Actions.js +5 -45
- package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/ButtonWrapper.js +4 -1
- package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +36 -10
- package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsModal.js +62 -26
- package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/ModalWrapper.js +3 -2
- package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/InlineEditButton.js +60 -0
- package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/index.js +1 -0
- package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +537 -0
- package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/index.js +1 -0
- package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/InlineEditContext.js +112 -0
- package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/getCellIdAsObject.js +27 -0
- package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/index.js +1 -0
- package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/returnUpdatedActiveCell.js +39 -0
- package/es/components/Datagrid/Datagrid/addons/InlineEdit/handleGridFocus.js +19 -0
- package/es/components/Datagrid/Datagrid/addons/InlineEdit/handleGridKeyPress.js +263 -0
- package/es/components/Datagrid/Datagrid/addons/InlineEdit/handleMultipleKeys.js +87 -0
- package/es/components/Datagrid/Datagrid/addons/RowSize/RowSizeDropdown.js +17 -14
- package/es/components/Datagrid/Datagrid/addons/RowSize/RowSizeRadioGroup.js +13 -36
- package/es/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/CustomizeColumnStory.js +0 -0
- package/es/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/LeftPanelStory.js +0 -0
- package/es/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/RowSizeDropdownStory.js +0 -0
- package/es/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/SelectAllWithToggleStory.js +0 -0
- package/es/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/StickyActionsColumnStory.js +0 -0
- package/es/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/common.js +0 -0
- package/es/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/index.js +0 -0
- package/es/components/Datagrid/index.js +3 -1
- package/es/components/Datagrid/useActionsColumn.js +28 -12
- package/es/components/Datagrid/useColumnOrder.js +8 -0
- package/es/components/Datagrid/useCustomizeColumns.js +5 -0
- package/es/components/Datagrid/useDefaultStringRenderer.js +4 -1
- package/es/components/Datagrid/useDisableSelectRows.js +6 -2
- package/es/components/Datagrid/useExpandedRow.js +0 -1
- package/es/components/Datagrid/useInfiniteScroll.js +5 -2
- package/es/components/Datagrid/useInlineEdit.js +71 -0
- package/es/components/Datagrid/useNestedRowExpander.js +47 -0
- package/es/components/Datagrid/useNestedRows.js +16 -4
- package/es/components/Datagrid/useRowExpander.js +12 -4
- package/es/components/Datagrid/useRowSize.js +17 -6
- package/es/components/Datagrid/useSelectAllToggle.js +17 -4
- package/es/components/Datagrid/useSelectRows.js +12 -2
- package/es/components/Datagrid/useSortableColumns.js +1 -1
- package/es/components/Datagrid/useStickyColumn.js +11 -0
- package/es/components/Datagrid/utils/DatagridActions.js +236 -0
- package/es/components/Datagrid/utils/DatagridPagination.js +33 -0
- package/es/components/Datagrid/utils/Wrapper.js +21 -0
- package/es/components/Datagrid/utils/getArgTypes.js +89 -0
- package/es/components/Datagrid/utils/getInlineEditColumns.js +153 -0
- package/es/components/Datagrid/utils/makeData.js +47 -2
- package/es/components/EditUpdateCards/EditUpdateCards.js +144 -0
- package/es/components/EditUpdateCards/index.js +7 -0
- package/es/components/ExportModal/ExportModal.js +1 -1
- package/es/components/ImportModal/ImportModal.js +3 -3
- package/es/components/InlineEdit/InlineEdit.js +28 -426
- package/es/components/InlineEditV1/InlineEditV1.js +447 -0
- package/es/components/InlineEditV1/index.js +7 -0
- package/es/components/InlineEditV2/InlineEditV2.js +289 -0
- package/es/components/InlineEditV2/index.js +7 -0
- package/es/components/ModifiedTabs/ModifiedTabLabelNew.js +1 -1
- package/es/components/ModifiedTabs/ModifiedTabLabelWithClose.js +1 -1
- package/es/components/MultiAddSelect/MultiAddSelect.js +14 -7
- package/es/components/MultiAddSelect/index.js +6 -0
- package/es/components/NotificationsPanel/NotificationsPanel.js +1 -1
- package/es/components/OptionsTile/OptionsTile.js +29 -13
- package/es/components/PageHeader/PageHeader.js +4 -4
- package/es/components/PageHeader/PageHeaderTitle.js +1 -1
- package/es/components/ProductiveCard/ProductiveCard.js +5 -0
- package/es/components/RemoveModal/RemoveModal.js +20 -3
- package/es/components/Saving/Saving.js +1 -1
- package/es/components/SidePanel/SidePanel.js +45 -52
- package/es/components/SidePanel/motion/variants.js +45 -0
- package/es/components/SingleAddSelect/SingleAddSelect.js +6 -0
- package/es/components/SingleAddSelect/index.js +6 -0
- package/es/components/StatusIcon/StatusIcon.js +1 -1
- package/es/components/UserProfileImage/UserProfileImage.js +1 -1
- package/es/components/WebTerminal/WebTerminal.js +2 -2
- package/es/components/WebTerminal/WebTerminalContentWrapper.js +1 -1
- package/es/components/WebTerminal/hooks/index.js +6 -0
- package/es/components/WebTerminal/index.js +6 -0
- package/es/components/WebTerminal/preview-components/Navigation.js +7 -1
- package/es/components/WebTerminal/preview-components/documentationLinks.js +6 -0
- package/es/components/WebTerminal/preview-components/index.js +7 -0
- package/es/components/index.js +3 -2
- package/es/global/js/hooks/index.js +2 -1
- package/es/global/js/hooks/useClickOutside.js +1 -1
- package/es/global/js/hooks/useControllableState.js +83 -0
- package/es/global/js/hooks/useResetCreateComponent.js +6 -2
- package/es/global/js/package-settings.js +7 -4
- package/es/global/js/utils/getBezierValues.js +20 -0
- package/es/global/js/utils/getNumberOfHiddenSteps.js +19 -0
- package/es/global/js/utils/motionConstants.js +45 -0
- package/es/global/js/utils/rangeWithCallback.js +13 -0
- package/es/global/js/utils/story-helper.js +5 -1
- package/es/global/js/utils/uuidv4.spec.js +4 -0
- package/lib/components/APIKeyModal/APIKeyModal.js +4 -4
- package/lib/components/ActionBar/ActionBarOverflowItems.js +1 -0
- package/lib/components/ActionSet/ActionSet.js +7 -3
- package/lib/components/AddSelect/AddSelect.js +5 -6
- package/lib/components/AddSelect/AddSelectBody.js +67 -30
- package/lib/components/AddSelect/AddSelectBreadcrumbs.js +15 -4
- package/lib/components/AddSelect/AddSelectColumn.js +7 -7
- package/lib/components/AddSelect/AddSelectFilter.js +9 -6
- package/lib/components/AddSelect/AddSelectList.js +65 -30
- package/lib/components/AddSelect/AddSelectMetaPanel.js +8 -2
- package/lib/components/AddSelect/AddSelectSidebar.js +4 -1
- package/lib/components/AddSelect/AddSelectSort.js +5 -5
- package/lib/components/AddSelect/add-select-utils.js +9 -2
- package/lib/components/AddSelect/hooks/useItemSort.js +6 -0
- package/lib/components/AddSelect/hooks/useParentSelect.js +6 -0
- package/lib/components/AddSelect/hooks/usePath.js +9 -1
- package/lib/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +6 -6
- package/lib/components/Card/Card.js +16 -6
- package/lib/components/Card/CardFooter.js +3 -1
- package/lib/components/Card/CardHeader.js +21 -1
- package/lib/components/ComboButton/ComboButton.js +3 -3
- package/lib/components/CreateFullPage/CreateFullPage.js +4 -1
- package/lib/components/CreateTearsheet/CreateTearsheet.js +9 -1
- package/lib/components/CreateTearsheetNarrow/CreateTearsheetNarrow.js +2 -2
- package/lib/components/DataSpreadsheet/DataSpreadsheet.js +64 -10
- package/lib/components/DataSpreadsheet/DataSpreadsheetBody.js +2 -1
- package/lib/components/DataSpreadsheet/DataSpreadsheetHeader.js +7 -0
- package/lib/components/DataSpreadsheet/hooks/useMultipleKeyTracking.js +6 -5
- package/lib/components/DataSpreadsheet/utils/handleCellDeletion.js +51 -0
- package/lib/components/DataSpreadsheet/utils/handleMultipleKeys.js +1 -1
- package/lib/components/Datagrid/Datagrid/Datagrid.js +12 -45
- package/lib/components/Datagrid/Datagrid/DatagridContent.js +188 -0
- package/lib/components/Datagrid/Datagrid/DatagridExpandedRow.js +9 -1
- package/lib/components/Datagrid/Datagrid/DatagridRow.js +63 -6
- package/lib/components/Datagrid/Datagrid/DatagridSelectAll.js +12 -3
- package/lib/components/Datagrid/Datagrid/DatagridSelectAllWithToggle.js +16 -5
- package/lib/components/Datagrid/Datagrid/DatagridToolbar.js +10 -7
- package/lib/components/Datagrid/Datagrid/DatagridVirtualBody.js +2 -1
- package/lib/components/Datagrid/Datagrid/DraggableElement.js +7 -3
- package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/Actions.js +12 -47
- package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/ButtonWrapper.js +5 -2
- package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +48 -25
- package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsModal.js +60 -25
- package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/ModalWrapper.js +3 -2
- package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/InlineEditButton.js +76 -0
- package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/index.js +13 -0
- package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +562 -0
- package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/index.js +13 -0
- package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/InlineEditContext.js +129 -0
- package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/getCellIdAsObject.js +36 -0
- package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/index.js +19 -0
- package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/returnUpdatedActiveCell.js +45 -0
- package/lib/components/Datagrid/Datagrid/addons/InlineEdit/handleGridFocus.js +28 -0
- package/lib/components/Datagrid/Datagrid/addons/InlineEdit/handleGridKeyPress.js +272 -0
- package/lib/components/Datagrid/Datagrid/addons/InlineEdit/handleMultipleKeys.js +100 -0
- package/lib/components/Datagrid/Datagrid/addons/RowSize/RowSizeDropdown.js +17 -13
- package/lib/components/Datagrid/Datagrid/addons/RowSize/RowSizeRadioGroup.js +13 -35
- package/lib/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/CustomizeColumnStory.js +0 -0
- package/lib/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/LeftPanelStory.js +0 -0
- package/lib/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/RowSizeDropdownStory.js +0 -0
- package/lib/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/SelectAllWithToggleStory.js +0 -0
- package/lib/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/StickyActionsColumnStory.js +0 -0
- package/lib/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/common.js +0 -0
- package/lib/components/Datagrid/{Datagrid.stories-helpers → Datagrid.stories}/index.js +0 -0
- package/lib/components/Datagrid/index.js +17 -1
- package/lib/components/Datagrid/useActionsColumn.js +28 -13
- package/lib/components/Datagrid/useColumnOrder.js +17 -0
- package/lib/components/Datagrid/useCustomizeColumns.js +5 -0
- package/lib/components/Datagrid/useDefaultStringRenderer.js +5 -1
- package/lib/components/Datagrid/useDisableSelectRows.js +6 -2
- package/lib/components/Datagrid/useExpandedRow.js +0 -1
- package/lib/components/Datagrid/useInfiniteScroll.js +5 -2
- package/lib/components/Datagrid/useInlineEdit.js +85 -0
- package/lib/components/Datagrid/useNestedRowExpander.js +63 -0
- package/lib/components/Datagrid/useNestedRows.js +17 -4
- package/lib/components/Datagrid/useRowExpander.js +17 -5
- package/lib/components/Datagrid/useRowSize.js +18 -13
- package/lib/components/Datagrid/useSelectAllToggle.js +18 -4
- package/lib/components/Datagrid/useSelectRows.js +12 -2
- package/lib/components/Datagrid/useSortableColumns.js +5 -5
- package/lib/components/Datagrid/useStickyColumn.js +11 -0
- package/lib/components/Datagrid/utils/DatagridActions.js +260 -0
- package/lib/components/Datagrid/utils/DatagridPagination.js +46 -0
- package/lib/components/Datagrid/utils/Wrapper.js +33 -0
- package/lib/components/Datagrid/utils/getArgTypes.js +97 -0
- package/lib/components/Datagrid/utils/getInlineEditColumns.js +168 -0
- package/lib/components/Datagrid/utils/makeData.js +48 -2
- package/lib/components/EditUpdateCards/EditUpdateCards.js +152 -0
- package/lib/components/EditUpdateCards/index.js +13 -0
- package/lib/components/ExportModal/ExportModal.js +3 -3
- package/lib/components/ImportModal/ImportModal.js +4 -4
- package/lib/components/InlineEdit/InlineEdit.js +27 -426
- package/lib/components/InlineEditV1/InlineEditV1.js +464 -0
- package/lib/components/InlineEditV1/index.js +13 -0
- package/lib/components/InlineEditV2/InlineEditV2.js +309 -0
- package/lib/components/InlineEditV2/index.js +13 -0
- package/lib/components/ModifiedTabs/ModifiedTabLabelNew.js +2 -2
- package/lib/components/ModifiedTabs/ModifiedTabLabelWithClose.js +3 -3
- package/lib/components/MultiAddSelect/MultiAddSelect.js +14 -7
- package/lib/components/NotificationsPanel/NotificationsPanel.js +8 -8
- package/lib/components/OptionsTile/OptionsTile.js +34 -17
- package/lib/components/PageHeader/PageHeader.js +5 -5
- package/lib/components/PageHeader/PageHeaderTitle.js +1 -1
- package/lib/components/ProductiveCard/ProductiveCard.js +5 -0
- package/lib/components/RemoveModal/RemoveModal.js +20 -3
- package/lib/components/Saving/Saving.js +5 -5
- package/lib/components/SidePanel/SidePanel.js +48 -53
- package/lib/components/SidePanel/motion/variants.js +55 -0
- package/lib/components/SingleAddSelect/SingleAddSelect.js +6 -0
- package/lib/components/StatusIcon/StatusIcon.js +45 -45
- package/lib/components/UserProfileImage/UserProfileImage.js +7 -7
- package/lib/components/WebTerminal/WebTerminal.js +3 -3
- package/lib/components/WebTerminal/hooks/index.js +6 -0
- package/lib/components/WebTerminal/preview-components/Navigation.js +10 -4
- package/lib/components/WebTerminal/preview-components/documentationLinks.js +6 -0
- package/lib/components/index.js +21 -1
- package/lib/global/js/hooks/index.js +9 -1
- package/lib/global/js/hooks/useClickOutside.js +1 -1
- package/lib/global/js/hooks/useControllableState.js +94 -0
- package/lib/global/js/hooks/useResetCreateComponent.js +7 -2
- package/lib/global/js/package-settings.js +7 -4
- package/lib/global/js/utils/getBezierValues.js +29 -0
- package/lib/global/js/utils/getNumberOfHiddenSteps.js +28 -0
- package/lib/global/js/utils/motionConstants.js +55 -0
- package/lib/global/js/utils/rangeWithCallback.js +22 -0
- package/lib/global/js/utils/story-helper.js +5 -1
- package/lib/global/js/utils/uuidv4.spec.js +4 -0
- package/package.json +18 -16
- package/scss/components/ActionSet/_action-set.scss +9 -4
- package/scss/components/AddSelect/_add-select.scss +132 -34
- package/scss/components/AddSelect/_index.scss +1 -1
- package/scss/components/AddSelect/_storybook-styles.scss +1 -1
- package/scss/components/Card/_card.scss +1 -0
- package/scss/components/Cascade/_cascade.scss +1 -1
- package/scss/components/CreateTearsheet/_create-tearsheet.scss +2 -0
- package/scss/components/Datagrid/_datagrid.scss +7 -0
- package/scss/components/Datagrid/_storybook-styles.scss +17 -5
- package/scss/components/Datagrid/styles/_datagrid.scss +87 -18
- package/scss/components/Datagrid/styles/_draggableElement.scss +26 -9
- package/scss/components/Datagrid/styles/_index.scss +1 -0
- package/scss/components/Datagrid/styles/_useActionsColumn.scss +14 -0
- package/scss/components/Datagrid/styles/_useExpandedRow.scss +57 -11
- package/scss/components/Datagrid/styles/_useInlineEdit.scss +419 -0
- package/scss/components/Datagrid/styles/_useNestedRows.scss +33 -1
- package/scss/components/Datagrid/styles/_useStickyColumn.scss +31 -2
- package/scss/components/Datagrid/styles/addons/_CustomizeColumnsModal.scss +47 -6
- package/scss/components/Datagrid/styles/addons/_RowSizeDropdown.scss +9 -1
- package/scss/components/EditUpdateCards/_carbon-imports.scss +9 -0
- package/scss/components/EditUpdateCards/_edit-update-cards.scss +85 -0
- package/scss/components/EditUpdateCards/_index-with-carbon.scss +9 -0
- package/scss/components/EditUpdateCards/_index.scss +8 -0
- package/scss/components/EditUpdateCards/_storybook-styles.scss +55 -0
- package/scss/components/{InlineEdit → InlineEditV1}/_carbon-imports.scss +0 -0
- package/scss/components/{InlineEdit → InlineEditV1}/_index-with-carbon.scss +1 -1
- package/scss/components/{InlineEdit → InlineEditV1}/_index.scss +1 -1
- package/scss/components/{InlineEdit/_inline-edit.scss → InlineEditV1/_inline-edit-v1.scss} +4 -2
- package/scss/components/{InlineEdit → InlineEditV1}/_storybook-styles.scss +0 -0
- package/scss/components/InlineEditV2/_carbon-imports.scss +9 -0
- package/scss/components/InlineEditV2/_index-with-carbon.scss +9 -0
- package/scss/components/InlineEditV2/_index.scss +10 -0
- package/scss/components/InlineEditV2/_inline-edit-v2.scss +83 -0
- package/scss/components/InlineEditV2/_storybook-styles.scss +9 -0
- package/scss/components/MultiAddSelect/_multi-add-select.scss +7 -0
- package/scss/components/MultiAddSelect/_storybook-styles.scss +1 -1
- package/scss/components/NotificationsPanel/_notifications-panel.scss +3 -6
- package/scss/components/RemoveModal/_remove-modal.scss +0 -4
- package/scss/components/SidePanel/_side-panel.scss +3 -82
- package/scss/components/SidePanel/_storybook-styles.scss +6 -1
- package/scss/components/SingleAddSelect/_carbon-imports.scss +1 -1
- package/scss/components/SingleAddSelect/_index-with-carbon.scss +1 -1
- package/scss/components/SingleAddSelect/_index.scss +7 -0
- package/scss/components/SingleAddSelect/_single-add-select.scss +7 -0
- package/scss/components/SingleAddSelect/_storybook-styles.scss +1 -1
- package/scss/components/Tearsheet/_tearsheet.scss +2 -2
- package/scss/components/WebTerminal/_carbon-imports.scss +6 -0
- package/scss/components/WebTerminal/_index.scss +7 -0
- package/scss/components/WebTerminal/_storybook-styles.scss +7 -0
- package/scss/components/_index-released-only-with-carbon.scss +1 -1
- package/scss/components/_index-released-only.scss +2 -1
- package/scss/components/_index-with-carbon.scss +3 -1
- package/scss/components/_index.scss +3 -1
package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/InlineEditContext.js
ADDED
@@ -0,0 +1,129 @@
|
|
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.InlineEditProvider = exports.InlineEditContext = void 0;
|
11
|
+
|
12
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
13
|
+
|
14
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
15
|
+
|
16
|
+
var _react = _interopRequireWildcard(require("react"));
|
17
|
+
|
18
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
19
|
+
|
20
|
+
var _returnUpdatedActiveCell = require("./returnUpdatedActiveCell");
|
21
|
+
|
22
|
+
var _getCellIdAsObject = require("./getCellIdAsObject");
|
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
|
+
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; }
|
29
|
+
|
30
|
+
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; }
|
31
|
+
|
32
|
+
var InlineEditContext = /*#__PURE__*/(0, _react.createContext)();
|
33
|
+
exports.InlineEditContext = InlineEditContext;
|
34
|
+
|
35
|
+
var inlineEditReducer = function inlineEditReducer(state, action) {
|
36
|
+
switch (action.type) {
|
37
|
+
case 'ADD_GRID_ACTIVE_FOCUS':
|
38
|
+
{
|
39
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
40
|
+
gridActive: true,
|
41
|
+
activeCellId: action.payload,
|
42
|
+
// set default active cell when grid receives focus
|
43
|
+
previousActiveCellId: null
|
44
|
+
});
|
45
|
+
}
|
46
|
+
|
47
|
+
case 'REMOVE_GRID_ACTIVE_FOCUS':
|
48
|
+
{
|
49
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
50
|
+
gridActive: false,
|
51
|
+
editId: null,
|
52
|
+
activeCellId: null,
|
53
|
+
previousActiveCellId: action.payload
|
54
|
+
});
|
55
|
+
}
|
56
|
+
|
57
|
+
case 'ENTER_EDIT_MODE':
|
58
|
+
{
|
59
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
60
|
+
activeCellId: action.payload.activeCellId,
|
61
|
+
editId: action.payload.editId
|
62
|
+
});
|
63
|
+
}
|
64
|
+
|
65
|
+
case 'EXIT_EDIT_MODE':
|
66
|
+
{
|
67
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
68
|
+
activeCellId: action.payload,
|
69
|
+
editId: null
|
70
|
+
});
|
71
|
+
}
|
72
|
+
|
73
|
+
case 'UPDATE_ACTIVE_CELL_ID':
|
74
|
+
{
|
75
|
+
var _action$payload = action.payload,
|
76
|
+
direction = _action$payload.direction,
|
77
|
+
oldId = _action$payload.oldId,
|
78
|
+
instance = _action$payload.instance;
|
79
|
+
|
80
|
+
if (!action.payload.direction) {
|
81
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
82
|
+
activeCellId: action.payload,
|
83
|
+
editId: null
|
84
|
+
});
|
85
|
+
}
|
86
|
+
|
87
|
+
if (direction && typeof direction === 'string') {
|
88
|
+
var activeCellCoords = (0, _getCellIdAsObject.getCellIdAsObject)(oldId);
|
89
|
+
var totalVisibleColumns = instance.visibleColumns.filter(function (item) {
|
90
|
+
return item.id !== 'spacer';
|
91
|
+
});
|
92
|
+
return (0, _returnUpdatedActiveCell.returnUpdatedActiveCell)({
|
93
|
+
activeCellCoords: activeCellCoords,
|
94
|
+
direction: direction,
|
95
|
+
totalVisibleColumns: totalVisibleColumns,
|
96
|
+
state: state,
|
97
|
+
instance: instance
|
98
|
+
});
|
99
|
+
}
|
100
|
+
|
101
|
+
break;
|
102
|
+
}
|
103
|
+
|
104
|
+
default:
|
105
|
+
return state;
|
106
|
+
}
|
107
|
+
};
|
108
|
+
|
109
|
+
var InlineEditProvider = function InlineEditProvider(_ref) {
|
110
|
+
var children = _ref.children;
|
111
|
+
var initialState = {};
|
112
|
+
|
113
|
+
var _useReducer = (0, _react.useReducer)(inlineEditReducer, initialState),
|
114
|
+
_useReducer2 = (0, _slicedToArray2.default)(_useReducer, 2),
|
115
|
+
state = _useReducer2[0],
|
116
|
+
dispatch = _useReducer2[1];
|
117
|
+
|
118
|
+
return /*#__PURE__*/_react.default.createElement(InlineEditContext.Provider, {
|
119
|
+
value: {
|
120
|
+
state: state,
|
121
|
+
dispatch: dispatch
|
122
|
+
}
|
123
|
+
}, children);
|
124
|
+
};
|
125
|
+
|
126
|
+
exports.InlineEditProvider = InlineEditProvider;
|
127
|
+
InlineEditProvider.propTypes = {
|
128
|
+
children: _propTypes.default.element
|
129
|
+
};
|
package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/getCellIdAsObject.js
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.getCellIdAsObject = void 0;
|
7
|
+
|
8
|
+
/**
|
9
|
+
* Copyright IBM Corp. 2022, 2022
|
10
|
+
*
|
11
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
12
|
+
* LICENSE file in the root directory of this source tree.
|
13
|
+
*/
|
14
|
+
// Turns activeCellId into an object to be able to
|
15
|
+
// update cell coordinates more easily
|
16
|
+
var getCellIdAsObject = function getCellIdAsObject(oldId) {
|
17
|
+
var oldIdArr = oldId.split('-');
|
18
|
+
var updatedOldValuesArray = oldIdArr.map(function (item) {
|
19
|
+
if (isNaN(item)) {
|
20
|
+
return item;
|
21
|
+
}
|
22
|
+
|
23
|
+
return Number(item);
|
24
|
+
});
|
25
|
+
var indexArray = updatedOldValuesArray.filter(Number.isFinite);
|
26
|
+
var keyArray = updatedOldValuesArray.filter(function (item) {
|
27
|
+
return typeof item === 'string';
|
28
|
+
});
|
29
|
+
var activeCellCoords = {};
|
30
|
+
keyArray.forEach(function (element, index) {
|
31
|
+
activeCellCoords[element] = indexArray[index];
|
32
|
+
});
|
33
|
+
return activeCellCoords;
|
34
|
+
};
|
35
|
+
|
36
|
+
exports.getCellIdAsObject = getCellIdAsObject;
|
@@ -0,0 +1,19 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
Object.defineProperty(exports, "InlineEditContext", {
|
7
|
+
enumerable: true,
|
8
|
+
get: function get() {
|
9
|
+
return _InlineEditContext.InlineEditContext;
|
10
|
+
}
|
11
|
+
});
|
12
|
+
Object.defineProperty(exports, "InlineEditProvider", {
|
13
|
+
enumerable: true,
|
14
|
+
get: function get() {
|
15
|
+
return _InlineEditContext.InlineEditProvider;
|
16
|
+
}
|
17
|
+
});
|
18
|
+
|
19
|
+
var _InlineEditContext = require("./InlineEditContext");
|
@@ -0,0 +1,45 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
6
|
+
value: true
|
7
|
+
});
|
8
|
+
exports.returnUpdatedActiveCell = void 0;
|
9
|
+
|
10
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
11
|
+
|
12
|
+
var _settings = require("../../../../../../settings");
|
13
|
+
|
14
|
+
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; }
|
15
|
+
|
16
|
+
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; }
|
17
|
+
|
18
|
+
var blockClass = "".concat(_settings.pkg.prefix, "--datagrid"); // This function returns the state back to the reducer after
|
19
|
+
// determining the new active cell value
|
20
|
+
|
21
|
+
var returnUpdatedActiveCell = function returnUpdatedActiveCell(_ref) {
|
22
|
+
var activeCellCoords = _ref.activeCellCoords,
|
23
|
+
direction = _ref.direction,
|
24
|
+
totalVisibleColumns = _ref.totalVisibleColumns,
|
25
|
+
state = _ref.state,
|
26
|
+
instance = _ref.instance;
|
27
|
+
|
28
|
+
var newActiveCoords = _objectSpread(_objectSpread({}, activeCellCoords), {}, {
|
29
|
+
column: direction === 'right' ? activeCellCoords.column < totalVisibleColumns.length - 1 ? activeCellCoords.column + 1 : activeCellCoords.column : direction === 'left' ? activeCellCoords.column === 0 ? 0 : activeCellCoords.column - 1 : activeCellCoords.column,
|
30
|
+
row: direction === 'up' ? activeCellCoords.row === 0 ? 0 : activeCellCoords.row - 1 : direction === 'down' ? activeCellCoords.row < instance.rows.length - 1 ? activeCellCoords.row + 1 : activeCellCoords.row : activeCellCoords.row
|
31
|
+
});
|
32
|
+
|
33
|
+
var newActiveCellId = "column-".concat(newActiveCoords.column, "-row-").concat(newActiveCoords.row);
|
34
|
+
var newCellIdButton = document.querySelector("#".concat(instance.tableId, " .").concat(blockClass, "__table-with-inline-edit [data-cell-id=\"").concat(newActiveCellId, "\"] .").concat(blockClass, "__inline-edit-button")); // Allows scrollable area to keep focused/active cell id visible
|
35
|
+
|
36
|
+
if (newCellIdButton) {
|
37
|
+
newCellIdButton === null || newCellIdButton === void 0 ? void 0 : newCellIdButton.focus();
|
38
|
+
}
|
39
|
+
|
40
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
41
|
+
activeCellId: newActiveCellId
|
42
|
+
});
|
43
|
+
};
|
44
|
+
|
45
|
+
exports.returnUpdatedActiveCell = returnUpdatedActiveCell;
|
@@ -0,0 +1,28 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.handleGridFocus = void 0;
|
7
|
+
|
8
|
+
/**
|
9
|
+
* Copyright IBM Corp. 2022, 2022
|
10
|
+
*
|
11
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
12
|
+
* LICENSE file in the root directory of this source tree.
|
13
|
+
*/
|
14
|
+
var handleGridFocus = function handleGridFocus(state, dispatch) {
|
15
|
+
var gridActive = state.gridActive,
|
16
|
+
previousActiveCellId = state.previousActiveCellId;
|
17
|
+
|
18
|
+
if (!gridActive) {
|
19
|
+
// Initialize grid active state
|
20
|
+
dispatch({
|
21
|
+
type: 'ADD_GRID_ACTIVE_FOCUS',
|
22
|
+
payload: previousActiveCellId || 'column-0-row-0' // If there is a previous active cell id that is found use that, otherwise use the first cell in the grid area
|
23
|
+
|
24
|
+
});
|
25
|
+
}
|
26
|
+
};
|
27
|
+
|
28
|
+
exports.handleGridFocus = handleGridFocus;
|
@@ -0,0 +1,272 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
6
|
+
value: true
|
7
|
+
});
|
8
|
+
exports.handleGridKeyPress = void 0;
|
9
|
+
|
10
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
11
|
+
|
12
|
+
var _settings = require("../../../../../settings");
|
13
|
+
|
14
|
+
var _handleMultipleKeys = require("./handleMultipleKeys");
|
15
|
+
|
16
|
+
var _getCellIdAsObject = require("./InlineEditContext/getCellIdAsObject");
|
17
|
+
|
18
|
+
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; }
|
19
|
+
|
20
|
+
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; }
|
21
|
+
|
22
|
+
var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
|
23
|
+
|
24
|
+
var handleGridKeyPress = function handleGridKeyPress(_ref) {
|
25
|
+
var event = _ref.event,
|
26
|
+
dispatch = _ref.dispatch,
|
27
|
+
state = _ref.state,
|
28
|
+
instance = _ref.instance,
|
29
|
+
keysPressedList = _ref.keysPressedList,
|
30
|
+
usingMac = _ref.usingMac;
|
31
|
+
var key = event.key;
|
32
|
+
var gridActive = state.gridActive,
|
33
|
+
activeCellId = state.activeCellId,
|
34
|
+
editId = state.editId;
|
35
|
+
var focusedCell = document.querySelector("#".concat(instance.tableId, " .").concat(blockClass, "__table-with-inline-edit [data-cell-id=\"").concat(activeCellId, "\"]")); // If we reach this it means that tab was pressed while in
|
36
|
+
// edit mode which should not remove the focus from the grid
|
37
|
+
|
38
|
+
if (activeCellId === editId && key === 'Tab') {
|
39
|
+
// Attempting to exit date picker
|
40
|
+
if (focusedCell.getAttribute('data-inline-type') === 'date') {
|
41
|
+
dispatch({
|
42
|
+
type: 'EXIT_EDIT_MODE',
|
43
|
+
payload: activeCellId
|
44
|
+
});
|
45
|
+
var inlineEditArea = document.querySelector("#".concat(instance.tableId, " .").concat(blockClass, "__table-with-inline-edit"));
|
46
|
+
inlineEditArea.focus();
|
47
|
+
}
|
48
|
+
|
49
|
+
event.preventDefault();
|
50
|
+
return;
|
51
|
+
}
|
52
|
+
|
53
|
+
if (activeCellId === editId && key === 'Escape') {
|
54
|
+
if (focusedCell.getAttribute('data-inline-type') === 'date') {
|
55
|
+
dispatch({
|
56
|
+
type: 'EXIT_EDIT_MODE',
|
57
|
+
payload: activeCellId
|
58
|
+
});
|
59
|
+
event.preventDefault();
|
60
|
+
|
61
|
+
var _inlineEditArea = document.querySelector("#".concat(instance.tableId, " .").concat(blockClass, "__table-with-inline-edit"));
|
62
|
+
|
63
|
+
_inlineEditArea.focus();
|
64
|
+
|
65
|
+
return;
|
66
|
+
}
|
67
|
+
} // Checks if the dropdown menu is open
|
68
|
+
|
69
|
+
|
70
|
+
var dropdownIsActive = function dropdownIsActive() {
|
71
|
+
var focusedElementRole = document.activeElement.getAttribute('role');
|
72
|
+
|
73
|
+
if (focusedElementRole === 'listbox' && document.activeElement.classList.contains("".concat(_settings.carbon.prefix, "--list-box__menu"))) {
|
74
|
+
// Prevents arrow keys from scrolling any other content when dropdown menu is open
|
75
|
+
event.preventDefault();
|
76
|
+
return true;
|
77
|
+
}
|
78
|
+
|
79
|
+
return false;
|
80
|
+
}; // Checks if the date picker is open
|
81
|
+
|
82
|
+
|
83
|
+
var datePickerIsActive = function datePickerIsActive() {
|
84
|
+
var focusedCalendarElement = document.querySelector(".".concat(_settings.carbon.prefix, "--date-picker__input.flatpickr-input.active"));
|
85
|
+
|
86
|
+
if (focusedCalendarElement || document.activeElement.classList.contains("flatpickr-day")) {
|
87
|
+
event.preventDefault();
|
88
|
+
return true;
|
89
|
+
}
|
90
|
+
|
91
|
+
return false;
|
92
|
+
}; // Stop grid key listener when in edit mode
|
93
|
+
|
94
|
+
|
95
|
+
var isEditing = document.activeElement.id === activeCellId && document.activeElement.id === editId || dropdownIsActive() || datePickerIsActive();
|
96
|
+
|
97
|
+
if (isEditing || !gridActive) {
|
98
|
+
return;
|
99
|
+
} // Command keys need to be returned as there is default browser behavior with these keys
|
100
|
+
|
101
|
+
|
102
|
+
if (key === 'Meta' || key === 'Control') {
|
103
|
+
return;
|
104
|
+
} // Prevent arrow keys, home key, and end key from scrolling the page when the data spreadsheet container has focus
|
105
|
+
|
106
|
+
|
107
|
+
if (['End', 'Home', 'ArrowLeft', 'ArrowUp', 'ArrowRight', 'ArrowDown'].indexOf(key) > -1 && !isEditing && keysPressedList.length < 2) {
|
108
|
+
event.preventDefault();
|
109
|
+
}
|
110
|
+
|
111
|
+
var isDisabledCell = !!focusedCell.getAttribute('data-disabled');
|
112
|
+
var sharedUpdateParams = {
|
113
|
+
oldId: activeCellId,
|
114
|
+
instance: instance
|
115
|
+
};
|
116
|
+
|
117
|
+
if (keysPressedList.length > 1) {
|
118
|
+
(0, _handleMultipleKeys.handleMultipleKeys)({
|
119
|
+
usingMac: usingMac,
|
120
|
+
keysPressedList: keysPressedList,
|
121
|
+
dispatch: dispatch,
|
122
|
+
activeCellId: activeCellId,
|
123
|
+
instance: instance
|
124
|
+
});
|
125
|
+
}
|
126
|
+
|
127
|
+
if (keysPressedList.length < 2) {
|
128
|
+
switch (key) {
|
129
|
+
case 'Tab':
|
130
|
+
{
|
131
|
+
if (!editId) {
|
132
|
+
dispatch({
|
133
|
+
type: 'REMOVE_GRID_ACTIVE_FOCUS',
|
134
|
+
payload: activeCellId
|
135
|
+
});
|
136
|
+
}
|
137
|
+
|
138
|
+
break;
|
139
|
+
}
|
140
|
+
|
141
|
+
case 'ArrowRight':
|
142
|
+
{
|
143
|
+
dispatch({
|
144
|
+
type: 'UPDATE_ACTIVE_CELL_ID',
|
145
|
+
payload: _objectSpread({
|
146
|
+
direction: 'right'
|
147
|
+
}, sharedUpdateParams)
|
148
|
+
});
|
149
|
+
break;
|
150
|
+
}
|
151
|
+
|
152
|
+
case 'ArrowLeft':
|
153
|
+
{
|
154
|
+
dispatch({
|
155
|
+
type: 'UPDATE_ACTIVE_CELL_ID',
|
156
|
+
payload: _objectSpread({
|
157
|
+
direction: 'left'
|
158
|
+
}, sharedUpdateParams)
|
159
|
+
});
|
160
|
+
break;
|
161
|
+
}
|
162
|
+
|
163
|
+
case 'ArrowUp':
|
164
|
+
{
|
165
|
+
dispatch({
|
166
|
+
type: 'UPDATE_ACTIVE_CELL_ID',
|
167
|
+
payload: _objectSpread({
|
168
|
+
direction: 'up'
|
169
|
+
}, sharedUpdateParams)
|
170
|
+
});
|
171
|
+
break;
|
172
|
+
}
|
173
|
+
|
174
|
+
case 'ArrowDown':
|
175
|
+
{
|
176
|
+
dispatch({
|
177
|
+
type: 'UPDATE_ACTIVE_CELL_ID',
|
178
|
+
payload: _objectSpread({
|
179
|
+
direction: 'down'
|
180
|
+
}, sharedUpdateParams)
|
181
|
+
});
|
182
|
+
break;
|
183
|
+
}
|
184
|
+
// Move active cell to first column in current row
|
185
|
+
|
186
|
+
case 'Home':
|
187
|
+
{
|
188
|
+
var activeCellObject = (0, _getCellIdAsObject.getCellIdAsObject)(activeCellId);
|
189
|
+
|
190
|
+
var newActiveCellCoords = _objectSpread(_objectSpread({}, activeCellObject), {}, {
|
191
|
+
column: 0
|
192
|
+
});
|
193
|
+
|
194
|
+
var newActiveCellId = "column-".concat(newActiveCellCoords.column, "-row-").concat(newActiveCellCoords.row);
|
195
|
+
var scrollElement = document.querySelector("#".concat(instance.tableId, " .").concat(_settings.pkg.prefix, "--datagrid__table-container")); // Scroll table container to the furthest left position
|
196
|
+
|
197
|
+
scrollElement.scrollLeft = 0;
|
198
|
+
dispatch({
|
199
|
+
type: 'UPDATE_ACTIVE_CELL_ID',
|
200
|
+
payload: newActiveCellId
|
201
|
+
});
|
202
|
+
break;
|
203
|
+
}
|
204
|
+
// Move active cell to last column in current row
|
205
|
+
|
206
|
+
case 'End':
|
207
|
+
{
|
208
|
+
var _activeCellObject = (0, _getCellIdAsObject.getCellIdAsObject)(activeCellId);
|
209
|
+
|
210
|
+
var totalVisibleColumns = instance.visibleColumns.filter(function (item) {
|
211
|
+
return item.id !== 'spacer';
|
212
|
+
});
|
213
|
+
|
214
|
+
var _newActiveCellCoords = _objectSpread(_objectSpread({}, _activeCellObject), {}, {
|
215
|
+
column: totalVisibleColumns.length - 1
|
216
|
+
});
|
217
|
+
|
218
|
+
var _newActiveCellId = "column-".concat(_newActiveCellCoords.column, "-row-").concat(_newActiveCellCoords.row);
|
219
|
+
|
220
|
+
var _scrollElement = document.querySelector("#".concat(instance.tableId, " .").concat(_settings.pkg.prefix, "--datagrid__table-container")); // Scroll table container to the furthest right position
|
221
|
+
|
222
|
+
|
223
|
+
_scrollElement.scrollLeft = _scrollElement.scrollWidth;
|
224
|
+
dispatch({
|
225
|
+
type: 'UPDATE_ACTIVE_CELL_ID',
|
226
|
+
payload: _newActiveCellId
|
227
|
+
});
|
228
|
+
break;
|
229
|
+
}
|
230
|
+
|
231
|
+
case ' ':
|
232
|
+
case 'F2':
|
233
|
+
case 'Enter':
|
234
|
+
{
|
235
|
+
// Disabled cells are not allowed to go into edit mode
|
236
|
+
if (isDisabledCell) {
|
237
|
+
return;
|
238
|
+
} // Only go into edit mode if there is no editId, meaning that we're not already in edit mode
|
239
|
+
|
240
|
+
|
241
|
+
if (!editId) {
|
242
|
+
var focusedType = focusedCell.getAttribute('data-inline-type'); // Open dropdown immediately after entering edit mode for selection type
|
243
|
+
|
244
|
+
if (focusedType === 'selection') {
|
245
|
+
setTimeout(function () {
|
246
|
+
var dropdownTrigger = focusedCell.querySelector('button');
|
247
|
+
dropdownTrigger === null || dropdownTrigger === void 0 ? void 0 : dropdownTrigger.click();
|
248
|
+
}, 1);
|
249
|
+
}
|
250
|
+
|
251
|
+
if (focusedType === 'date') {
|
252
|
+
setTimeout(function () {
|
253
|
+
var dateInputTrigger = focusedCell.querySelector('input');
|
254
|
+
dateInputTrigger === null || dateInputTrigger === void 0 ? void 0 : dateInputTrigger.click();
|
255
|
+
dateInputTrigger === null || dateInputTrigger === void 0 ? void 0 : dateInputTrigger.focus();
|
256
|
+
}, 1);
|
257
|
+
}
|
258
|
+
|
259
|
+
dispatch({
|
260
|
+
type: 'ENTER_EDIT_MODE',
|
261
|
+
payload: {
|
262
|
+
activeCellId: activeCellId,
|
263
|
+
editId: activeCellId
|
264
|
+
}
|
265
|
+
});
|
266
|
+
}
|
267
|
+
}
|
268
|
+
}
|
269
|
+
}
|
270
|
+
};
|
271
|
+
|
272
|
+
exports.handleGridKeyPress = handleGridKeyPress;
|
@@ -0,0 +1,100 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.handleMultipleKeys = void 0;
|
7
|
+
|
8
|
+
var _handleMultipleKeys = require("../../../../DataSpreadsheet/utils/handleMultipleKeys");
|
9
|
+
|
10
|
+
var _settings = require("../../../../../settings");
|
11
|
+
|
12
|
+
var _getFocusableElements = require("../../../../../global/js/utils/getFocusableElements");
|
13
|
+
|
14
|
+
/**
|
15
|
+
* Copyright IBM Corp. 2022, 2022
|
16
|
+
*
|
17
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
18
|
+
* LICENSE file in the root directory of this source tree.
|
19
|
+
*/
|
20
|
+
var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
|
21
|
+
|
22
|
+
var handleMultipleKeys = function handleMultipleKeys(_ref) {
|
23
|
+
var usingMac = _ref.usingMac,
|
24
|
+
keysPressedList = _ref.keysPressedList,
|
25
|
+
dispatch = _ref.dispatch,
|
26
|
+
activeCellId = _ref.activeCellId,
|
27
|
+
instance = _ref.instance;
|
28
|
+
|
29
|
+
// Resource key and Home
|
30
|
+
// Move active cell to first cell in first row and column
|
31
|
+
if ((0, _handleMultipleKeys.includesResourceKey)(keysPressedList, usingMac) && keysPressedList.includes('Home')) {
|
32
|
+
var scrollElement = document.querySelector("#".concat(instance.tableId, " .").concat(_settings.pkg.prefix, "--datagrid__table-container")); // Scroll table container to the furthest top left position
|
33
|
+
|
34
|
+
scrollElement.scrollTop = 0;
|
35
|
+
scrollElement.scrollLeft = 0;
|
36
|
+
dispatch({
|
37
|
+
type: 'UPDATE_ACTIVE_CELL_ID',
|
38
|
+
payload: 'column-0-row-0'
|
39
|
+
});
|
40
|
+
} // Resource key and End
|
41
|
+
// Move active cell to last cell in in the last row and column
|
42
|
+
|
43
|
+
|
44
|
+
if ((0, _handleMultipleKeys.includesResourceKey)(keysPressedList, usingMac) && keysPressedList.includes('End')) {
|
45
|
+
var _instance$rows;
|
46
|
+
|
47
|
+
var totalVisibleColumns = instance.visibleColumns.filter(function (item) {
|
48
|
+
return item.id !== 'spacer';
|
49
|
+
}).length;
|
50
|
+
var totalRows = (_instance$rows = instance.rows) === null || _instance$rows === void 0 ? void 0 : _instance$rows.length;
|
51
|
+
var lastCellDataId = "column-".concat(totalVisibleColumns - 1, "-row-").concat(totalRows - 1);
|
52
|
+
var lastCellElement = document.querySelector("#".concat(instance.tableId, " .").concat(blockClass, "__table-with-inline-edit [data-cell-id=\"").concat(activeCellId, "\"]"));
|
53
|
+
|
54
|
+
var _scrollElement = document.querySelector("#".concat(instance.tableId, " .").concat(_settings.pkg.prefix, "--datagrid__table-container")); // Scroll table container to the furthest bottom right position
|
55
|
+
|
56
|
+
|
57
|
+
_scrollElement.scrollTop = _scrollElement.scrollHeight;
|
58
|
+
_scrollElement.scrollLeft = _scrollElement.scrollWidth;
|
59
|
+
|
60
|
+
if (lastCellElement) {
|
61
|
+
dispatch({
|
62
|
+
type: 'UPDATE_ACTIVE_CELL_ID',
|
63
|
+
payload: lastCellDataId
|
64
|
+
});
|
65
|
+
} else {
|
66
|
+
// If a Datagrid component is using virtualized data, it's possible that the last cell
|
67
|
+
// has not yet been rendered. In this case, we simply need to wait until the scrollable
|
68
|
+
// container has scrolled to the bottom/right most position, then we can dispatch the
|
69
|
+
// update active cell id action
|
70
|
+
setTimeout(function () {
|
71
|
+
dispatch({
|
72
|
+
type: 'UPDATE_ACTIVE_CELL_ID',
|
73
|
+
payload: lastCellDataId
|
74
|
+
});
|
75
|
+
}, 250);
|
76
|
+
}
|
77
|
+
} // Shift + Tab
|
78
|
+
// This should remove the active grid state
|
79
|
+
|
80
|
+
|
81
|
+
if ((keysPressedList.includes('ShiftLeft') || keysPressedList.includes('ShiftRight')) && keysPressedList.includes('Tab')) {
|
82
|
+
dispatch({
|
83
|
+
type: 'REMOVE_GRID_ACTIVE_FOCUS',
|
84
|
+
payload: activeCellId
|
85
|
+
});
|
86
|
+
var tableElement = document.querySelector("#".concat(instance.tableId));
|
87
|
+
var datagridFocusableElements = (0, _getFocusableElements.getFocusableElements)(tableElement);
|
88
|
+
var indexOfTable = datagridFocusableElements.findIndex(function (item) {
|
89
|
+
return item instanceof HTMLTableElement;
|
90
|
+
});
|
91
|
+
|
92
|
+
if (indexOfTable && Number.isFinite(indexOfTable)) {
|
93
|
+
var _datagridFocusableEle;
|
94
|
+
|
95
|
+
(_datagridFocusableEle = datagridFocusableElements[indexOfTable]) === null || _datagridFocusableEle === void 0 ? void 0 : _datagridFocusableEle.focus();
|
96
|
+
}
|
97
|
+
}
|
98
|
+
};
|
99
|
+
|
100
|
+
exports.handleMultipleKeys = handleMultipleKeys;
|