@carbon/ibm-products 2.33.0 → 2.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 +31990 -32061
- package/css/index-full-carbon.css.map +1 -1
- package/css/index-full-carbon.min.css +1 -1
- package/css/index-full-carbon.min.css.map +1 -1
- package/css/index-without-carbon-released-only.css +38 -17
- package/css/index-without-carbon-released-only.css.map +1 -1
- package/css/index-without-carbon-released-only.min.css +1 -1
- package/css/index-without-carbon-released-only.min.css.map +1 -1
- package/css/index-without-carbon.css +636 -24096
- package/css/index-without-carbon.css.map +1 -1
- package/css/index-without-carbon.min.css +1 -1
- package/css/index-without-carbon.min.css.map +1 -1
- package/css/index.css +2342 -17830
- package/css/index.css.map +1 -1
- package/css/index.min.css +1 -1
- package/css/index.min.css.map +1 -1
- package/es/components/ActionSet/ActionSet.d.ts +38 -2
- package/es/components/ActionSet/ActionSet.js +3 -5
- package/es/components/CoachmarkFixed/CoachmarkFixed.js +1 -1
- package/es/components/ConditionBuilder/ConditionBuilder.d.ts +5 -0
- package/es/components/ConditionBuilder/ConditionBuilder.js +125 -0
- package/es/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.d.ts +10 -0
- package/es/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.js +92 -0
- package/es/components/ConditionBuilder/ConditionBuilderContext/DataTreeContext.d.ts +38 -0
- package/es/components/ConditionBuilder/ConditionBuilderContext/DataTreeContext.js +88 -0
- package/es/components/ConditionBuilder/assets/sampleInput.d.ts +58 -0
- package/es/components/ConditionBuilder/index.d.ts +1 -0
- package/es/components/CreateFullPage/CreateFullPage.js +3 -19
- package/es/components/CreateFullPage/CreateFullPageStep.js +22 -7
- package/es/components/CreateSidePanel/CreateSidePanel.d.ts +81 -2
- package/es/components/CreateSidePanel/CreateSidePanel.js +5 -2
- package/es/components/CreateTearsheetNarrow/CreateTearsheetNarrow.d.ts +82 -2
- package/es/components/DataSpreadsheet/DataSpreadsheet.js +5 -117
- package/es/components/DataSpreadsheet/DataSpreadsheetBody.js +12 -111
- package/es/components/DataSpreadsheet/utils/commonEventHandlers.d.ts +4 -0
- package/es/components/DataSpreadsheet/utils/commonEventHandlers.js +304 -0
- package/es/components/Datagrid/Datagrid/DatagridContent.js +2 -1
- package/es/components/Datagrid/Datagrid/DatagridEmptyBody.js +4 -1
- package/es/components/Datagrid/Datagrid/DatagridRefBody.js +3 -1
- package/es/components/Datagrid/Datagrid/DatagridSimpleBody.js +4 -1
- package/es/components/Datagrid/Datagrid/DatagridVirtualBody.js +6 -2
- package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.d.ts +1 -1
- package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +4 -0
- package/es/components/Datagrid/Datagrid/addons/InlineEdit/handleGridKeyPress.d.ts +2 -1
- package/es/components/Datagrid/Datagrid/addons/InlineEdit/handleGridKeyPress.js +4 -3
- package/es/components/Datagrid/Datagrid/addons/stateReducer.js +2 -1
- package/es/components/Datagrid/useEditableCell.js +15 -0
- package/es/components/DelimitedList/DelimitedList.d.ts +27 -2
- package/es/components/DelimitedList/DelimitedList.js +0 -1
- package/es/components/EditInPlace/EditInPlace.d.ts +97 -5
- package/es/components/EditInPlace/EditInPlace.js +10 -6
- package/es/components/EditSidePanel/EditSidePanel.d.ts +92 -2
- package/es/components/EditSidePanel/EditSidePanel.js +8 -10
- package/es/components/EmptyStates/ErrorEmptyState/ErrorEmptyState.d.ts +61 -2
- package/es/components/EmptyStates/ErrorEmptyState/ErrorEmptyState.js +1 -3
- package/es/components/EmptyStates/NoDataEmptyState/NoDataEmptyState.d.ts +61 -2
- package/es/components/EmptyStates/NoDataEmptyState/NoDataEmptyState.js +1 -2
- package/es/components/EmptyStates/NotFoundEmptyState/NotFoundEmptyState.d.ts +61 -2
- package/es/components/EmptyStates/NotFoundEmptyState/NotFoundEmptyState.js +1 -3
- package/es/components/ExportModal/ExportModal.d.ts +110 -2
- package/es/components/ExportModal/ExportModal.js +10 -4
- package/es/components/FilterPanel/FilterPanelAccordion/FilterPanelAccordion.d.ts +5 -0
- package/es/components/FilterPanel/FilterPanelAccordion/FilterPanelAccordion.js +83 -0
- package/es/components/FilterPanel/FilterPanelAccordionItem/FilterPanelAccordionItem.d.ts +5 -0
- package/es/components/FilterPanel/FilterPanelAccordionItem/FilterPanelAccordionItem.js +94 -0
- package/es/components/FilterPanel/FilterPanelCheckbox/FilterPanelCheckbox.d.ts +5 -0
- package/es/components/FilterPanel/FilterPanelCheckbox/FilterPanelCheckbox.js +8 -10
- package/es/components/FilterPanel/FilterPanelCheckbox/index.d.ts +1 -0
- package/es/components/FilterPanel/FilterPanelCheckboxWithOverflow/FilterPanelCheckboxWithOverflow.d.ts +10 -0
- package/es/components/FilterPanel/FilterPanelCheckboxWithOverflow/FilterPanelCheckboxWithOverflow.js +157 -0
- package/es/components/FilterPanel/FilterPanelGroup/FilterPanelGroup.d.ts +5 -0
- package/es/components/FilterPanel/FilterPanelGroup/FilterPanelGroup.js +72 -0
- package/es/components/FilterPanel/FilterPanelLabel/FilterPanelLabel.js +2 -2
- package/es/components/FilterPanel/FilterPanelSearch/FilterPanelSearch.d.ts +5 -0
- package/es/components/FilterPanel/FilterPanelSearch/FilterPanelSearch.js +92 -0
- package/es/components/FilterPanel/index.d.ts +5 -0
- package/es/components/HTTPErrors/HTTPError403/HTTPError403.d.ts +40 -2
- package/es/components/HTTPErrors/HTTPError403/HTTPError403.js +1 -1
- package/es/components/HTTPErrors/HTTPError404/HTTPError404.d.ts +40 -2
- package/es/components/HTTPErrors/HTTPError404/HTTPError404.js +1 -1
- package/es/components/ImportModal/ImportModal.d.ts +136 -2
- package/es/components/ImportModal/ImportModal.js +3 -2
- package/es/components/InlineTip/InlineTip.d.ts +90 -2
- package/es/components/InlineTip/InlineTip.js +3 -2
- package/es/components/Nav/Nav.js +1 -1
- package/es/components/Nav/NavList.js +7 -7
- package/es/components/NotificationsPanel/NotificationsPanel.js +1 -1
- package/es/components/OptionsTile/OptionsTile.d.ts +77 -3
- package/es/components/OptionsTile/OptionsTile.js +9 -20
- package/es/components/PageHeader/PageHeader.js +3 -3
- package/es/components/PageHeader/PageHeaderUtils.d.ts +1 -1
- package/es/components/PageHeader/PageHeaderUtils.js +4 -3
- package/es/components/RemoveModal/RemoveModal.d.ts +81 -7
- package/es/components/RemoveModal/RemoveModal.js +1 -0
- package/es/components/ScrollGradient/ScrollGradient.d.ts +5 -0
- package/es/components/ScrollGradient/ScrollGradient.js +156 -0
- package/es/components/ScrollGradient/constants.d.ts +15 -0
- package/es/components/ScrollGradient/constants.js +121 -0
- package/es/components/ScrollGradient/index.d.ts +1 -0
- package/es/components/SidePanel/SidePanel.d.ts +144 -2
- package/es/components/SidePanel/SidePanel.js +100 -75
- package/es/components/StatusIcon/StatusIcon.d.ts +34 -2
- package/es/components/StatusIcon/StatusIcon.js +97 -95
- package/es/components/SteppedAnimatedMedia/SteppedAnimatedMedia.d.ts +23 -2
- package/es/components/SteppedAnimatedMedia/SteppedAnimatedMedia.js +6 -5
- package/es/components/TagOverflow/TagOverflow.d.ts +5 -0
- package/es/components/TagOverflow/TagOverflow.js +209 -0
- package/es/components/TagOverflow/constants.d.ts +14 -0
- package/es/components/TagOverflow/constants.js +30 -0
- package/es/components/TagOverflow/index.d.ts +1 -0
- package/es/components/Tearsheet/TearsheetNarrow.d.ts +105 -6
- package/es/components/Tearsheet/TearsheetNarrow.js +6 -1
- package/es/components/Toolbar/Toolbar.d.ts +23 -5
- package/es/components/Toolbar/Toolbar.js +30 -26
- package/es/components/TruncatedList/TruncatedList.js +5 -3
- package/es/components/UserAvatar/UserAvatar.js +7 -4
- package/es/components/index.d.ts +5 -2
- package/es/global/js/package-settings.d.ts +8 -0
- package/es/global/js/package-settings.js +8 -0
- package/es/index.js +9 -0
- package/es/settings.d.ts +8 -0
- package/lib/components/ActionSet/ActionSet.d.ts +38 -2
- package/lib/components/ActionSet/ActionSet.js +3 -5
- package/lib/components/CoachmarkFixed/CoachmarkFixed.js +1 -1
- package/lib/components/ConditionBuilder/ConditionBuilder.d.ts +5 -0
- package/lib/components/ConditionBuilder/ConditionBuilder.js +132 -0
- package/lib/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.d.ts +10 -0
- package/lib/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.js +100 -0
- package/lib/components/ConditionBuilder/ConditionBuilderContext/DataTreeContext.d.ts +38 -0
- package/lib/components/ConditionBuilder/ConditionBuilderContext/DataTreeContext.js +98 -0
- package/lib/components/ConditionBuilder/assets/sampleInput.d.ts +58 -0
- package/lib/components/ConditionBuilder/index.d.ts +1 -0
- package/lib/components/CreateFullPage/CreateFullPage.js +2 -18
- package/lib/components/CreateFullPage/CreateFullPageStep.js +20 -5
- package/lib/components/CreateSidePanel/CreateSidePanel.d.ts +81 -2
- package/lib/components/CreateSidePanel/CreateSidePanel.js +5 -2
- package/lib/components/CreateTearsheetNarrow/CreateTearsheetNarrow.d.ts +82 -2
- package/lib/components/DataSpreadsheet/DataSpreadsheet.js +5 -117
- package/lib/components/DataSpreadsheet/DataSpreadsheetBody.js +12 -111
- package/lib/components/DataSpreadsheet/utils/commonEventHandlers.d.ts +4 -0
- package/lib/components/DataSpreadsheet/utils/commonEventHandlers.js +311 -0
- package/lib/components/Datagrid/Datagrid/DatagridContent.js +2 -1
- package/lib/components/Datagrid/Datagrid/DatagridEmptyBody.js +4 -1
- package/lib/components/Datagrid/Datagrid/DatagridRefBody.js +3 -1
- package/lib/components/Datagrid/Datagrid/DatagridSimpleBody.js +4 -1
- package/lib/components/Datagrid/Datagrid/DatagridVirtualBody.js +5 -1
- package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.d.ts +1 -1
- package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +4 -0
- package/lib/components/Datagrid/Datagrid/addons/InlineEdit/handleGridKeyPress.d.ts +2 -1
- package/lib/components/Datagrid/Datagrid/addons/InlineEdit/handleGridKeyPress.js +4 -3
- package/lib/components/Datagrid/Datagrid/addons/stateReducer.js +2 -1
- package/lib/components/Datagrid/useEditableCell.js +19 -0
- package/lib/components/DelimitedList/DelimitedList.d.ts +27 -2
- package/lib/components/DelimitedList/DelimitedList.js +0 -1
- package/lib/components/EditInPlace/EditInPlace.d.ts +97 -5
- package/lib/components/EditInPlace/EditInPlace.js +10 -6
- package/lib/components/EditSidePanel/EditSidePanel.d.ts +92 -2
- package/lib/components/EditSidePanel/EditSidePanel.js +8 -10
- package/lib/components/EmptyStates/ErrorEmptyState/ErrorEmptyState.d.ts +61 -2
- package/lib/components/EmptyStates/ErrorEmptyState/ErrorEmptyState.js +1 -3
- package/lib/components/EmptyStates/NoDataEmptyState/NoDataEmptyState.d.ts +61 -2
- package/lib/components/EmptyStates/NoDataEmptyState/NoDataEmptyState.js +1 -2
- package/lib/components/EmptyStates/NotFoundEmptyState/NotFoundEmptyState.d.ts +61 -2
- package/lib/components/EmptyStates/NotFoundEmptyState/NotFoundEmptyState.js +1 -3
- package/lib/components/ExportModal/ExportModal.d.ts +110 -2
- package/lib/components/ExportModal/ExportModal.js +10 -4
- package/lib/components/FilterPanel/FilterPanelAccordion/FilterPanelAccordion.d.ts +5 -0
- package/lib/components/FilterPanel/FilterPanelAccordion/FilterPanelAccordion.js +90 -0
- package/lib/components/FilterPanel/FilterPanelAccordionItem/FilterPanelAccordionItem.d.ts +5 -0
- package/lib/components/FilterPanel/FilterPanelAccordionItem/FilterPanelAccordionItem.js +101 -0
- package/lib/components/FilterPanel/FilterPanelCheckbox/FilterPanelCheckbox.d.ts +5 -0
- package/lib/components/FilterPanel/FilterPanelCheckbox/FilterPanelCheckbox.js +8 -10
- package/lib/components/FilterPanel/FilterPanelCheckbox/index.d.ts +1 -0
- package/lib/components/FilterPanel/FilterPanelCheckboxWithOverflow/FilterPanelCheckboxWithOverflow.d.ts +10 -0
- package/lib/components/FilterPanel/FilterPanelCheckboxWithOverflow/FilterPanelCheckboxWithOverflow.js +164 -0
- package/lib/components/FilterPanel/FilterPanelGroup/FilterPanelGroup.d.ts +5 -0
- package/lib/components/FilterPanel/FilterPanelGroup/FilterPanelGroup.js +79 -0
- package/lib/components/FilterPanel/FilterPanelLabel/FilterPanelLabel.js +2 -2
- package/lib/components/FilterPanel/FilterPanelSearch/FilterPanelSearch.d.ts +5 -0
- package/lib/components/FilterPanel/FilterPanelSearch/FilterPanelSearch.js +99 -0
- package/lib/components/FilterPanel/index.d.ts +5 -0
- package/lib/components/HTTPErrors/HTTPError403/HTTPError403.d.ts +40 -2
- package/lib/components/HTTPErrors/HTTPError403/HTTPError403.js +1 -1
- package/lib/components/HTTPErrors/HTTPError404/HTTPError404.d.ts +40 -2
- package/lib/components/HTTPErrors/HTTPError404/HTTPError404.js +1 -1
- package/lib/components/ImportModal/ImportModal.d.ts +136 -2
- package/lib/components/ImportModal/ImportModal.js +3 -2
- package/lib/components/InlineTip/InlineTip.d.ts +90 -2
- package/lib/components/InlineTip/InlineTip.js +3 -2
- package/lib/components/Nav/Nav.js +1 -1
- package/lib/components/Nav/NavList.js +7 -7
- package/lib/components/NotificationsPanel/NotificationsPanel.js +1 -1
- package/lib/components/OptionsTile/OptionsTile.d.ts +77 -3
- package/lib/components/OptionsTile/OptionsTile.js +9 -20
- package/lib/components/PageHeader/PageHeader.js +3 -3
- package/lib/components/PageHeader/PageHeaderUtils.d.ts +1 -1
- package/lib/components/PageHeader/PageHeaderUtils.js +4 -3
- package/lib/components/RemoveModal/RemoveModal.d.ts +81 -7
- package/lib/components/RemoveModal/RemoveModal.js +1 -0
- package/lib/components/ScrollGradient/ScrollGradient.d.ts +5 -0
- package/lib/components/ScrollGradient/ScrollGradient.js +163 -0
- package/lib/components/ScrollGradient/constants.d.ts +15 -0
- package/lib/components/ScrollGradient/constants.js +128 -0
- package/lib/components/ScrollGradient/index.d.ts +1 -0
- package/lib/components/SidePanel/SidePanel.d.ts +144 -2
- package/lib/components/SidePanel/SidePanel.js +100 -75
- package/lib/components/StatusIcon/StatusIcon.d.ts +34 -2
- package/lib/components/StatusIcon/StatusIcon.js +97 -95
- package/lib/components/SteppedAnimatedMedia/SteppedAnimatedMedia.d.ts +23 -2
- package/lib/components/SteppedAnimatedMedia/SteppedAnimatedMedia.js +6 -5
- package/lib/components/TagOverflow/TagOverflow.d.ts +5 -0
- package/lib/components/TagOverflow/TagOverflow.js +216 -0
- package/lib/components/TagOverflow/constants.d.ts +14 -0
- package/lib/components/TagOverflow/constants.js +34 -0
- package/lib/components/TagOverflow/index.d.ts +1 -0
- package/lib/components/Tearsheet/TearsheetNarrow.d.ts +105 -6
- package/lib/components/Tearsheet/TearsheetNarrow.js +6 -1
- package/lib/components/Toolbar/Toolbar.d.ts +23 -5
- package/lib/components/Toolbar/Toolbar.js +30 -26
- package/lib/components/TruncatedList/TruncatedList.js +5 -3
- package/lib/components/UserAvatar/UserAvatar.js +7 -4
- package/lib/components/index.d.ts +5 -2
- package/lib/global/js/package-settings.d.ts +8 -0
- package/lib/global/js/package-settings.js +8 -0
- package/lib/index.js +42 -0
- package/lib/settings.d.ts +8 -0
- package/package.json +3 -3
- package/scss/components/Coachmark/_coachmark-dragbar.scss +0 -1
- package/scss/components/Coachmark/_coachmark-tagline.scss +2 -2
- package/scss/components/ConditionBuilder/_carbon-imports.scss +9 -0
- package/scss/components/ConditionBuilder/_condition-builder.scss +25 -0
- package/scss/components/ConditionBuilder/_index-with-carbon.scss +9 -0
- package/scss/components/ConditionBuilder/_index.scss +8 -0
- package/scss/components/CreateFullPage/_create-full-page.scss +10 -10
- package/scss/components/Datagrid/styles/_useNestedRows.scss +5 -1
- package/scss/components/FilterPanel/_carbon-imports.scss +5 -0
- package/scss/components/FilterPanel/_filter-panel-accordion-item.scss +54 -0
- package/scss/components/FilterPanel/_filter-panel-accordion.scss +6 -0
- package/scss/components/FilterPanel/_filter-panel-checkbox-with-overflow.scss +60 -0
- package/scss/components/FilterPanel/_filter-panel-checkbox.scss +24 -3
- package/scss/components/FilterPanel/_filter-panel-group.scss +39 -0
- package/scss/components/FilterPanel/_filter-panel-label.scss +0 -8
- package/scss/components/FilterPanel/_filter-panel-search.scss +38 -0
- package/scss/components/FilterPanel/_filter-panel.scss +2 -0
- package/scss/components/FilterPanel/_index-with-carbon.scss +5 -0
- package/scss/components/FilterPanel/_index.scss +5 -0
- package/scss/components/Guidebanner/_guidebanner.scss +1 -1
- package/scss/components/InlineTip/_inline-tip.scss +1 -1
- package/scss/components/ProductiveCard/_productive-card.scss +13 -0
- package/scss/components/ScrollGradient/_carbon-imports.scss +9 -0
- package/scss/components/ScrollGradient/_index-with-carbon.scss +9 -0
- package/scss/components/ScrollGradient/_index.scss +8 -0
- package/scss/components/ScrollGradient/_scroll-gradient.scss +102 -0
- package/scss/components/SidePanel/_side-panel.scss +9 -9
- package/scss/components/TagOverflow/_carbon-imports.scss +9 -0
- package/scss/components/TagOverflow/_index-with-carbon.scss +9 -0
- package/scss/components/TagOverflow/_index.scss +8 -0
- package/scss/components/TagOverflow/_tag-overflow.scss +55 -0
- package/scss/components/Tearsheet/_tearsheet.scss +10 -0
- package/scss/components/UserAvatar/_user-avatar.scss +38 -4
- package/scss/components/_index-with-carbon.scss +3 -0
- package/scss/components/_index.scss +3 -0
@@ -0,0 +1,304 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright IBM Corp. 2020, 2024
|
3
|
+
*
|
4
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
6
|
+
*/
|
7
|
+
|
8
|
+
import { toConsumableArray as _toConsumableArray } from '../../../_virtual/_rollupPluginBabelHelpers.js';
|
9
|
+
import { pkg } from '../../../settings.js';
|
10
|
+
import { checkForHoldingKey } from './checkForHoldingKey.js';
|
11
|
+
import { deepCloneObject } from '../../../global/js/utils/deepCloneObject.js';
|
12
|
+
import uuidv4 from '../../../global/js/utils/uuidv4.js';
|
13
|
+
import { removeCellSelections } from './removeCellSelections.js';
|
14
|
+
import { handleHeaderCellSelection } from './handleHeaderCellSelection.js';
|
15
|
+
import { includesShift, handleMultipleKeys, includesResourceKey } from './handleMultipleKeys.js';
|
16
|
+
import { handleActiveCellInSelectionEnter } from './handleActiveCellInSelectionEnter.js';
|
17
|
+
import { handleActiveCellInSelectionTab } from './handleActiveCellInSelectionTab.js';
|
18
|
+
import { handleCellDeletion } from './handleCellDeletion.js';
|
19
|
+
|
20
|
+
var blockClass = "".concat(pkg.prefix, "--data-spreadsheet");
|
21
|
+
|
22
|
+
// onClick fn for each cell in the data spreadsheet body,
|
23
|
+
// adds the active cell highlight
|
24
|
+
|
25
|
+
var handleBodyCellClick = function handleBodyCellClick(cell, columnIndex, event) {
|
26
|
+
for (var _len = arguments.length, rest = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {
|
27
|
+
rest[_key - 3] = arguments[_key];
|
28
|
+
}
|
29
|
+
var currentMatcher = rest[0],
|
30
|
+
activeCellCoordinates = rest[1],
|
31
|
+
selectionAreas = rest[2],
|
32
|
+
setActiveCellCoordinates = rest[3],
|
33
|
+
setSelectionAreas = rest[4],
|
34
|
+
setContainerHasFocus = rest[5],
|
35
|
+
setClickAndHoldActive = rest[6],
|
36
|
+
setCurrentMatcher = rest[7],
|
37
|
+
ref = rest[8],
|
38
|
+
setSelectionAreaData = rest[9],
|
39
|
+
setActiveCellInsideSelectionArea = rest[10],
|
40
|
+
activeCellRef = rest[11],
|
41
|
+
setValidStartingPoint = rest[12];
|
42
|
+
event.preventDefault();
|
43
|
+
var closestBodyCell = event.target.closest(".".concat(blockClass, "__body--td"));
|
44
|
+
var isValidSelectionAreaStart = closestBodyCell.classList.contains("".concat(blockClass, "__body--td"));
|
45
|
+
setValidStartingPoint(isValidSelectionAreaStart);
|
46
|
+
var isHoldingCommandKey = checkForHoldingKey(event, 'cmd');
|
47
|
+
var isHoldingShiftKey = checkForHoldingKey(event, 'shiftKey');
|
48
|
+
setContainerHasFocus(true);
|
49
|
+
var activeCoordinates = {
|
50
|
+
row: cell.row.index,
|
51
|
+
column: columnIndex
|
52
|
+
};
|
53
|
+
var tempMatcher = uuidv4();
|
54
|
+
setClickAndHoldActive(true);
|
55
|
+
|
56
|
+
// prevent multiple selections unless cmd key is held
|
57
|
+
// meaning that selectionAreas should only have one item by default
|
58
|
+
if (isHoldingCommandKey) {
|
59
|
+
var activeCellElement = ref.current.querySelector(".".concat(blockClass, "__active-cell--highlight"));
|
60
|
+
activeCellElement.setAttribute('data-selection-id', tempMatcher);
|
61
|
+
setActiveCellInsideSelectionArea(true);
|
62
|
+
setActiveCellCoordinates(activeCoordinates);
|
63
|
+
setCurrentMatcher(tempMatcher);
|
64
|
+
setSelectionAreas(function (prev) {
|
65
|
+
return [].concat(_toConsumableArray(prev), [{
|
66
|
+
point1: activeCoordinates,
|
67
|
+
matcher: tempMatcher
|
68
|
+
}]);
|
69
|
+
});
|
70
|
+
} else if (isHoldingShiftKey) {
|
71
|
+
setContainerHasFocus(true);
|
72
|
+
var selectionAreaClone = deepCloneObject(selectionAreas);
|
73
|
+
var indexOfItemToUpdate = selectionAreaClone.findIndex(function (item) {
|
74
|
+
return item.matcher === currentMatcher;
|
75
|
+
});
|
76
|
+
if (indexOfItemToUpdate === -1) {
|
77
|
+
// There is always a selectionArea with a point1 object that updates
|
78
|
+
// whenever the activeCellCoordinates update, we should always be able
|
79
|
+
// to find an index, but if we do not for some reason we should return
|
80
|
+
// at this point.
|
81
|
+
return;
|
82
|
+
} else {
|
83
|
+
// Update the selectionArea that was found, do not update currentMatcher
|
84
|
+
selectionAreaClone[indexOfItemToUpdate].point1 = activeCellCoordinates;
|
85
|
+
selectionAreaClone[indexOfItemToUpdate].point2 = activeCoordinates;
|
86
|
+
selectionAreaClone[indexOfItemToUpdate].areaCreated = false;
|
87
|
+
selectionAreaClone[indexOfItemToUpdate].matcher = currentMatcher;
|
88
|
+
setSelectionAreas(selectionAreaClone);
|
89
|
+
}
|
90
|
+
} else {
|
91
|
+
activeCellRef.current.style.display = 'none';
|
92
|
+
setActiveCellInsideSelectionArea(false);
|
93
|
+
setActiveCellCoordinates(activeCoordinates);
|
94
|
+
// remove all previous cell selections
|
95
|
+
removeCellSelections({
|
96
|
+
spreadsheetRef: ref
|
97
|
+
});
|
98
|
+
setSelectionAreas([{
|
99
|
+
point1: activeCoordinates,
|
100
|
+
matcher: tempMatcher
|
101
|
+
}]);
|
102
|
+
setCurrentMatcher(tempMatcher);
|
103
|
+
setSelectionAreaData([]);
|
104
|
+
}
|
105
|
+
};
|
106
|
+
var handleBodyCellHover = function handleBodyCellHover(cell, columnIndex) {
|
107
|
+
for (var _len2 = arguments.length, rest = new Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {
|
108
|
+
rest[_key2 - 2] = arguments[_key2];
|
109
|
+
}
|
110
|
+
var clickAndHoldActive = rest[0],
|
111
|
+
currentMatcher = rest[1],
|
112
|
+
setSelectionAreas = rest[2];
|
113
|
+
if (clickAndHoldActive) {
|
114
|
+
var cellCoordinates = {
|
115
|
+
row: cell.row.index,
|
116
|
+
column: columnIndex
|
117
|
+
};
|
118
|
+
setSelectionAreas(function (prev) {
|
119
|
+
var _selectionAreaClone$i, _selectionAreaClone$i2;
|
120
|
+
var selectionAreaClone = deepCloneObject(prev);
|
121
|
+
var indexOfItemToUpdate = selectionAreaClone.findIndex(function (item) {
|
122
|
+
return item.matcher === currentMatcher;
|
123
|
+
});
|
124
|
+
// No items in the array match up with the currentMatcher value
|
125
|
+
if (indexOfItemToUpdate === -1) {
|
126
|
+
return prev;
|
127
|
+
}
|
128
|
+
// Do not update state if you're still hovering on the same cell
|
129
|
+
if (((_selectionAreaClone$i = selectionAreaClone[indexOfItemToUpdate].point2) === null || _selectionAreaClone$i === void 0 ? void 0 : _selectionAreaClone$i.row) === cellCoordinates.row && ((_selectionAreaClone$i2 = selectionAreaClone[indexOfItemToUpdate].point2) === null || _selectionAreaClone$i2 === void 0 ? void 0 : _selectionAreaClone$i2.column) === cellCoordinates.column) {
|
130
|
+
return prev;
|
131
|
+
}
|
132
|
+
selectionAreaClone[indexOfItemToUpdate].point2 = cellCoordinates;
|
133
|
+
selectionAreaClone[indexOfItemToUpdate].areaCreated = false;
|
134
|
+
return selectionAreaClone;
|
135
|
+
});
|
136
|
+
}
|
137
|
+
};
|
138
|
+
var handleRowHeaderClick = function handleRowHeaderClick(index, event) {
|
139
|
+
for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {
|
140
|
+
rest[_key3 - 2] = arguments[_key3];
|
141
|
+
}
|
142
|
+
var columns = rest[0],
|
143
|
+
ref = rest[1],
|
144
|
+
setSelectionAreas = rest[2],
|
145
|
+
setCurrentMatcher = rest[3],
|
146
|
+
setActiveCellCoordinates = rest[4],
|
147
|
+
activeCellCoordinates = rest[5],
|
148
|
+
rows = rest[6],
|
149
|
+
setSelectionAreaData = rest[7];
|
150
|
+
var isHoldingCommandKey = checkForHoldingKey(event, 'cmd');
|
151
|
+
handleHeaderCellSelection({
|
152
|
+
type: 'row',
|
153
|
+
activeCellCoordinates: activeCellCoordinates,
|
154
|
+
rows: rows,
|
155
|
+
columns: columns,
|
156
|
+
setActiveCellCoordinates: setActiveCellCoordinates,
|
157
|
+
setCurrentMatcher: setCurrentMatcher,
|
158
|
+
setSelectionAreas: setSelectionAreas,
|
159
|
+
spreadsheetRef: ref,
|
160
|
+
index: index,
|
161
|
+
setSelectionAreaData: setSelectionAreaData,
|
162
|
+
isHoldingCommandKey: isHoldingCommandKey
|
163
|
+
});
|
164
|
+
};
|
165
|
+
var handleKeyPress = function handleKeyPress(event) {
|
166
|
+
for (var _len4 = arguments.length, rest = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {
|
167
|
+
rest[_key4 - 1] = arguments[_key4];
|
168
|
+
}
|
169
|
+
var activeCellInsideSelectionArea = rest[0],
|
170
|
+
updateActiveCellCoordinates = rest[1],
|
171
|
+
activeCellCoordinates = rest[2],
|
172
|
+
removeActiveCell = rest[3],
|
173
|
+
columns = rest[4],
|
174
|
+
rows = rest[5],
|
175
|
+
spreadsheetRef = rest[6],
|
176
|
+
currentMatcher = rest[7],
|
177
|
+
removeCellEditor = rest[8],
|
178
|
+
selectionAreas = rest[9],
|
179
|
+
handleHomeEndKey = rest[10],
|
180
|
+
keysPressedList = rest[11],
|
181
|
+
usingMac = rest[12],
|
182
|
+
updateData = rest[13],
|
183
|
+
checkForReturnCondition = rest[14],
|
184
|
+
handleArrowKeyPress = rest[15],
|
185
|
+
setSelectionAreas = rest[16],
|
186
|
+
setSelectionAreaData = rest[17],
|
187
|
+
setCurrentMatcher = rest[18],
|
188
|
+
activeCellRef = rest[19],
|
189
|
+
setActiveCellCoordinates = rest[20],
|
190
|
+
setContainerHasFocus = rest[21],
|
191
|
+
setActiveCellContent = rest[22];
|
192
|
+
var key = event.key;
|
193
|
+
// Command keys need to be returned as there is default browser behavior with these keys
|
194
|
+
// Needs to be returned in editing mode
|
195
|
+
if (checkForReturnCondition(key)) {
|
196
|
+
return;
|
197
|
+
}
|
198
|
+
|
199
|
+
// Clear out all cell selection areas if user uses any arrow key, except if the shift key is being held
|
200
|
+
if (['ArrowLeft', 'ArrowUp', 'ArrowRight', 'ArrowDown'].indexOf(key) > -1) {
|
201
|
+
if (selectionAreas !== null && selectionAreas !== void 0 && selectionAreas.length && keysPressedList.length < 2 && !includesShift(keysPressedList)) {
|
202
|
+
setSelectionAreas([]);
|
203
|
+
setSelectionAreaData([]);
|
204
|
+
removeCellSelections({
|
205
|
+
spreadsheetRef: spreadsheetRef
|
206
|
+
});
|
207
|
+
}
|
208
|
+
}
|
209
|
+
if ((keysPressedList === null || keysPressedList === void 0 ? void 0 : keysPressedList.length) > 1) {
|
210
|
+
handleMultipleKeys({
|
211
|
+
activeCellCoordinates: activeCellCoordinates,
|
212
|
+
event: event,
|
213
|
+
keysPressedList: keysPressedList,
|
214
|
+
selectionAreas: selectionAreas,
|
215
|
+
currentMatcher: currentMatcher,
|
216
|
+
rows: rows,
|
217
|
+
setSelectionAreas: setSelectionAreas,
|
218
|
+
columns: columns,
|
219
|
+
updateActiveCellCoordinates: updateActiveCellCoordinates,
|
220
|
+
spreadsheetRef: spreadsheetRef,
|
221
|
+
removeCellSelections: removeCellSelections,
|
222
|
+
blockClass: blockClass,
|
223
|
+
setCurrentMatcher: setCurrentMatcher,
|
224
|
+
usingMac: usingMac
|
225
|
+
});
|
226
|
+
}
|
227
|
+
|
228
|
+
// Allow arrow key navigation if there are less than two activeKeys OR
|
229
|
+
// if one of the activeCellCoordinates is in a header position
|
230
|
+
// Prevent arrow keys, home key, and end key from scrolling the page when the data spreadsheet container has focus
|
231
|
+
|
232
|
+
if (keysPressedList.length < 2 && !includesShift(keysPressedList) || activeCellCoordinates.row === 'header' || activeCellCoordinates.column === 'header') {
|
233
|
+
switch (key) {
|
234
|
+
case 'Backspace':
|
235
|
+
case 'Delete':
|
236
|
+
{
|
237
|
+
var deleteParams = {
|
238
|
+
selectionAreas: selectionAreas,
|
239
|
+
currentMatcher: currentMatcher,
|
240
|
+
rows: rows,
|
241
|
+
setActiveCellContent: setActiveCellContent,
|
242
|
+
updateData: updateData,
|
243
|
+
activeCellCoordinates: activeCellCoordinates
|
244
|
+
};
|
245
|
+
handleCellDeletion(deleteParams);
|
246
|
+
break;
|
247
|
+
}
|
248
|
+
// Enter
|
249
|
+
case 'Enter':
|
250
|
+
{
|
251
|
+
handleActiveCellInSelectionEnter({
|
252
|
+
activeCellInsideSelectionArea: activeCellInsideSelectionArea,
|
253
|
+
activeCellCoordinates: activeCellCoordinates,
|
254
|
+
activeCellRef: activeCellRef,
|
255
|
+
selectionAreas: selectionAreas,
|
256
|
+
updateActiveCellCoordinates: updateActiveCellCoordinates
|
257
|
+
});
|
258
|
+
break;
|
259
|
+
}
|
260
|
+
// HOME
|
261
|
+
case 'Home':
|
262
|
+
case 'End':
|
263
|
+
{
|
264
|
+
event.preventDefault();
|
265
|
+
if (includesResourceKey(keysPressedList, usingMac)) {
|
266
|
+
return;
|
267
|
+
}
|
268
|
+
handleHomeEndKey({
|
269
|
+
type: key
|
270
|
+
});
|
271
|
+
break;
|
272
|
+
}
|
273
|
+
// Tab
|
274
|
+
case 'Tab':
|
275
|
+
{
|
276
|
+
if (activeCellInsideSelectionArea) {
|
277
|
+
event.preventDefault();
|
278
|
+
return handleActiveCellInSelectionTab({
|
279
|
+
activeCellInsideSelectionArea: activeCellInsideSelectionArea,
|
280
|
+
activeCellCoordinates: activeCellCoordinates,
|
281
|
+
activeCellRef: activeCellRef,
|
282
|
+
selectionAreas: selectionAreas,
|
283
|
+
updateActiveCellCoordinates: updateActiveCellCoordinates
|
284
|
+
});
|
285
|
+
}
|
286
|
+
setSelectionAreas([]);
|
287
|
+
removeActiveCell();
|
288
|
+
removeCellEditor();
|
289
|
+
setContainerHasFocus(false);
|
290
|
+
setActiveCellCoordinates(null);
|
291
|
+
break;
|
292
|
+
}
|
293
|
+
case 'ArrowLeft':
|
294
|
+
case 'ArrowUp':
|
295
|
+
case 'ArrowRight':
|
296
|
+
case 'ArrowDown':
|
297
|
+
{
|
298
|
+
handleArrowKeyPress(key);
|
299
|
+
}
|
300
|
+
}
|
301
|
+
}
|
302
|
+
};
|
303
|
+
|
304
|
+
export { handleBodyCellClick, handleBodyCellHover, handleKeyPress, handleRowHeaderClick };
|
@@ -98,7 +98,8 @@ var DatagridContent = function DatagridContent(_ref) {
|
|
98
98
|
instance: datagridState,
|
99
99
|
keysPressedList: keysPressedList,
|
100
100
|
state: inlineEditState,
|
101
|
-
usingMac: usingMac
|
101
|
+
usingMac: usingMac,
|
102
|
+
ref: multiKeyTrackingRef
|
102
103
|
});
|
103
104
|
},
|
104
105
|
onFocus: withInlineEdit && function () {
|
@@ -35,7 +35,10 @@ var DatagridEmptyBody = function DatagridEmptyBody(datagridState) {
|
|
35
35
|
link: emptyStateLink
|
36
36
|
};
|
37
37
|
var validEmptyStates = ['error', 'noData', 'notFound'];
|
38
|
-
return /*#__PURE__*/React__default.createElement(TableBody, _extends({}, getTableBodyProps(
|
38
|
+
return /*#__PURE__*/React__default.createElement(TableBody, _extends({}, getTableBodyProps({
|
39
|
+
role: undefined
|
40
|
+
}), {
|
41
|
+
"aria-live": null,
|
39
42
|
className: "".concat(blockClass, "__empty-state-body")
|
40
43
|
}), /*#__PURE__*/React__default.createElement(TableRow, null, /*#__PURE__*/React__default.createElement(TableCell, {
|
41
44
|
colSpan: headers.length,
|
@@ -20,7 +20,9 @@ var DatagridRefBody = function DatagridRefBody(datagridState) {
|
|
20
20
|
var getTableBodyProps = datagridState.getTableBodyProps,
|
21
21
|
rows = datagridState.rows,
|
22
22
|
prepareRow = datagridState.prepareRow;
|
23
|
-
return /*#__PURE__*/React__default.createElement("tbody", _extends({}, getTableBodyProps(
|
23
|
+
return /*#__PURE__*/React__default.createElement("tbody", _extends({}, getTableBodyProps({
|
24
|
+
role: undefined
|
25
|
+
}), {
|
24
26
|
className: cx("".concat(blockClass, "__simple-body"), getTableBodyProps().className)
|
25
27
|
}), rows.map(function (row) {
|
26
28
|
prepareRow(row);
|
@@ -16,7 +16,10 @@ var DatagridSimpleBody = function DatagridSimpleBody(datagridState) {
|
|
16
16
|
var getTableBodyProps = datagridState.getTableBodyProps,
|
17
17
|
rows = datagridState.rows,
|
18
18
|
prepareRow = datagridState.prepareRow;
|
19
|
-
return /*#__PURE__*/React__default.createElement(TableBody, _extends({}, getTableBodyProps(
|
19
|
+
return /*#__PURE__*/React__default.createElement(TableBody, _extends({}, getTableBodyProps({
|
20
|
+
role: undefined
|
21
|
+
}), {
|
22
|
+
"aria-live": null,
|
20
23
|
className: cx("".concat(blockClass, "__simple-body"), getTableBodyProps().className)
|
21
24
|
}), rows.map(function (row) {
|
22
25
|
prepareRow(row);
|
@@ -5,7 +5,7 @@
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
6
6
|
*/
|
7
7
|
|
8
|
-
import { objectSpread2 as _objectSpread2 } from '../../../_virtual/_rollupPluginBabelHelpers.js';
|
8
|
+
import { extends as _extends, objectSpread2 as _objectSpread2 } from '../../../_virtual/_rollupPluginBabelHelpers.js';
|
9
9
|
import React__default, { useEffect, useRef } from 'react';
|
10
10
|
import { VariableSizeList } from 'react-window';
|
11
11
|
import { TableBody } from '@carbon/react';
|
@@ -77,7 +77,11 @@ var DatagridVirtualBody = function DatagridVirtualBody(datagridState) {
|
|
77
77
|
width: (_gridRef$current = gridRef.current) === null || _gridRef$current === void 0 ? void 0 : _gridRef$current.clientWidth,
|
78
78
|
overflow: 'hidden'
|
79
79
|
}
|
80
|
-
}, /*#__PURE__*/React__default.createElement(DatagridHead, datagridState)), /*#__PURE__*/React__default.createElement(TableBody,
|
80
|
+
}, /*#__PURE__*/React__default.createElement(DatagridHead, datagridState)), /*#__PURE__*/React__default.createElement(TableBody, _extends({}, getTableBodyProps({
|
81
|
+
role: undefined
|
82
|
+
}), {
|
83
|
+
"aria-live": null
|
84
|
+
}), /*#__PURE__*/React__default.createElement(VariableSizeList, {
|
81
85
|
height: virtualHeight || tableHeight,
|
82
86
|
itemCount: visibleRows.length,
|
83
87
|
itemSize: function itemSize(index) {
|
@@ -1,5 +1,5 @@
|
|
1
1
|
export default Columns;
|
2
|
-
declare function Columns({ getVisibleColumnsCount, filterString, columns, setColumnsObject, onSelectColumn, assistiveTextInstructionsLabel, assistiveTextDisabledInstructionsLabel, selectAllLabel, customizeTearsheetHeadingLabel }: {
|
2
|
+
declare function Columns({ getVisibleColumnsCount, filterString, columns, setColumnsObject, onSelectColumn, assistiveTextInstructionsLabel, assistiveTextDisabledInstructionsLabel, selectAllLabel, customizeTearsheetHeadingLabel, }: {
|
3
3
|
getVisibleColumnsCount: any;
|
4
4
|
filterString: any;
|
5
5
|
columns: any;
|
@@ -153,6 +153,10 @@ var InlineEditCell = function InlineEditCell(_ref) {
|
|
153
153
|
if (type === 'number') {
|
154
154
|
numberInputRef.current.focus();
|
155
155
|
}
|
156
|
+
if (type === 'selection') {
|
157
|
+
var _dropdownRef$current;
|
158
|
+
dropdownRef === null || dropdownRef === void 0 || (_dropdownRef$current = dropdownRef.current) === null || _dropdownRef$current === void 0 || _dropdownRef$current.focus();
|
159
|
+
}
|
156
160
|
}
|
157
161
|
}, [inEditMode, type]);
|
158
162
|
|
@@ -1,8 +1,9 @@
|
|
1
|
-
export function handleGridKeyPress({ event, dispatch, state, instance, keysPressedList, usingMac, }: {
|
1
|
+
export function handleGridKeyPress({ event, dispatch, state, instance, keysPressedList, usingMac, ref, }: {
|
2
2
|
event: any;
|
3
3
|
dispatch: any;
|
4
4
|
state: any;
|
5
5
|
instance: any;
|
6
6
|
keysPressedList: any;
|
7
7
|
usingMac: any;
|
8
|
+
ref: any;
|
8
9
|
}): void;
|
@@ -17,7 +17,8 @@ var handleGridKeyPress = function handleGridKeyPress(_ref) {
|
|
17
17
|
state = _ref.state,
|
18
18
|
instance = _ref.instance,
|
19
19
|
keysPressedList = _ref.keysPressedList,
|
20
|
-
usingMac = _ref.usingMac
|
20
|
+
usingMac = _ref.usingMac,
|
21
|
+
ref = _ref.ref;
|
21
22
|
var key = event.key;
|
22
23
|
var gridActive = state.gridActive,
|
23
24
|
activeCellId = state.activeCellId,
|
@@ -54,8 +55,8 @@ var handleGridKeyPress = function handleGridKeyPress(_ref) {
|
|
54
55
|
|
55
56
|
// Checks if the dropdown menu is open
|
56
57
|
var dropdownIsActive = function dropdownIsActive() {
|
57
|
-
var
|
58
|
-
if (
|
58
|
+
var selectedDropdown = ref === null || ref === void 0 ? void 0 : ref.current.querySelector("\n #".concat(instance.tableId, " .").concat(blockClass, "__table-with-inline-edit [data-cell-id=\"").concat(activeCellId, "\"] button[role='combobox']\n "));
|
59
|
+
if (selectedDropdown) {
|
59
60
|
// Prevents arrow keys from scrolling any other content when dropdown menu is open
|
60
61
|
event.preventDefault();
|
61
62
|
return true;
|
@@ -90,7 +90,8 @@ var stateReducer = function stateReducer(newState, action) {
|
|
90
90
|
if (rows) {
|
91
91
|
var newSelectedRowData = {};
|
92
92
|
rows.forEach(function (row) {
|
93
|
-
var
|
93
|
+
var _row$getRowProps;
|
94
|
+
var props = (_row$getRowProps = row.getRowProps) === null || _row$getRowProps === void 0 ? void 0 : _row$getRowProps.call(row);
|
94
95
|
if (props && props.disabled) {
|
95
96
|
return;
|
96
97
|
}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright IBM Corp. 2020, 2024
|
3
|
+
*
|
4
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
6
|
+
*/
|
7
|
+
|
8
|
+
import useInlineEdit from './useInlineEdit.js';
|
9
|
+
|
10
|
+
var useEditableCell = function useEditableCell(hooks) {
|
11
|
+
useInlineEdit(hooks, 'usingEditableCell');
|
12
|
+
};
|
13
|
+
var useEditableCell$1 = useEditableCell;
|
14
|
+
|
15
|
+
export { useEditableCell$1 as default };
|
@@ -1,6 +1,31 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright IBM Corp. 2024, 2024
|
3
|
+
*
|
4
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
6
|
+
*/
|
7
|
+
import React, { PropsWithChildren } from 'react';
|
8
|
+
interface DelimitedListProps extends PropsWithChildren {
|
9
|
+
/**
|
10
|
+
* Provide an optional class to be applied to the containing node.
|
11
|
+
*/
|
12
|
+
className?: string;
|
13
|
+
/**
|
14
|
+
* The character(s) used to separate the items.
|
15
|
+
*/
|
16
|
+
delimiter?: string;
|
17
|
+
/**
|
18
|
+
* Array of items to be listed.
|
19
|
+
*/
|
20
|
+
items?: any[];
|
21
|
+
/**
|
22
|
+
* Toggle the component's ability to truncate or not.
|
23
|
+
*/
|
24
|
+
truncate?: boolean;
|
25
|
+
}
|
1
26
|
/**
|
2
27
|
* `DelimitedList` converts an array of items into a single line of
|
3
28
|
* comma-separated values.
|
4
29
|
*/
|
5
|
-
export let DelimitedList: React.ForwardRefExoticComponent<React.RefAttributes<
|
6
|
-
|
30
|
+
export declare let DelimitedList: React.ForwardRefExoticComponent<DelimitedListProps & React.RefAttributes<HTMLDivElement>>;
|
31
|
+
export {};
|
@@ -1,6 +1,98 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
1
|
+
/**
|
2
|
+
* Copyright IBM Corp. 2022, 2022
|
3
|
+
*
|
4
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
6
|
+
*/
|
7
|
+
import React, { PropsWithChildren } from 'react';
|
6
8
|
import PropTypes from 'prop-types';
|
9
|
+
type Size = 'sm' | 'md' | 'lg';
|
10
|
+
type AlignPropType = 'top' | 'top-left' | 'top-right' | 'bottom' | 'bottom-left' | 'bottom-right' | 'left' | 'right';
|
11
|
+
type Shape = {
|
12
|
+
cancel: AlignPropType;
|
13
|
+
edit: AlignPropType;
|
14
|
+
save: AlignPropType;
|
15
|
+
};
|
16
|
+
interface EditInplaceProps extends PropsWithChildren {
|
17
|
+
/**
|
18
|
+
* label for cancel button
|
19
|
+
*/
|
20
|
+
cancelLabel: string;
|
21
|
+
/**
|
22
|
+
* By default the edit icon is shown on hover only.
|
23
|
+
*/
|
24
|
+
editAlwaysVisible?: boolean;
|
25
|
+
/**
|
26
|
+
* label for edit button
|
27
|
+
*/
|
28
|
+
editLabel: string;
|
29
|
+
/**
|
30
|
+
* Specify a custom id for the input
|
31
|
+
*/
|
32
|
+
id: string;
|
33
|
+
/**
|
34
|
+
* inheritTypography - causes the text entry field to inherit typography settings
|
35
|
+
* assigned to the container. This is useful when editing titles for instance.
|
36
|
+
*
|
37
|
+
* NOTE: The size property limits the vertical size of the input element.
|
38
|
+
* Inherited font's should be selected to fit within the size selected.
|
39
|
+
*/
|
40
|
+
inheritTypography?: boolean;
|
41
|
+
/**
|
42
|
+
* determines if the input is invalid
|
43
|
+
*/
|
44
|
+
invalid?: boolean;
|
45
|
+
/**
|
46
|
+
* text that is displayed if the input is invalid
|
47
|
+
*/
|
48
|
+
invalidText?: string;
|
49
|
+
/**
|
50
|
+
* Provide the text that will be read by a screen reader when visiting this control
|
51
|
+
*/
|
52
|
+
labelText: string;
|
53
|
+
/**
|
54
|
+
* handler that is called when the cancel button is pressed or when the user removes focus from the input and there is no new value
|
55
|
+
*/
|
56
|
+
onCancel: (value: string) => void;
|
57
|
+
/**
|
58
|
+
* handler that is called when the input is updated
|
59
|
+
*/
|
60
|
+
onChange: (value: string) => void;
|
61
|
+
/**
|
62
|
+
* handler that is called when the save button is pressed or when the user removes focus from the input if it has a new value
|
63
|
+
*/
|
64
|
+
onSave: () => void;
|
65
|
+
/**
|
66
|
+
* determines if the input is in readOnly mode
|
67
|
+
*/
|
68
|
+
/**
|
69
|
+
* label for the edit button that displays when in read only mode
|
70
|
+
*/
|
71
|
+
/**
|
72
|
+
* label for save button
|
73
|
+
*/
|
74
|
+
saveLabel: string;
|
75
|
+
/**
|
76
|
+
* vertical size of control
|
77
|
+
*/
|
78
|
+
size?: Size;
|
79
|
+
/**
|
80
|
+
* tooltipAlignment from the standard tooltip. Default center.
|
81
|
+
*
|
82
|
+
* Can be passed either as one of tooltip options or as an object specifying cancel, edit and save separately
|
83
|
+
*/
|
84
|
+
tooltipAlignment?: AlignPropType | Shape;
|
85
|
+
/**
|
86
|
+
* current value of the input
|
87
|
+
*/
|
88
|
+
value: string;
|
89
|
+
}
|
90
|
+
export declare let EditInPlace: React.ForwardRefExoticComponent<EditInplaceProps & React.RefAttributes<HTMLDivElement>>;
|
91
|
+
export declare const deprecatedProps: {
|
92
|
+
/**
|
93
|
+
* **Deprecated**
|
94
|
+
* invalidLabel was misnamed, using invalidText to match Carbon
|
95
|
+
*/
|
96
|
+
invalidText: PropTypes.Requireable<string>;
|
97
|
+
};
|
98
|
+
export {};
|
@@ -29,7 +29,8 @@ var EditInPlace = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
29
29
|
id = _ref.id,
|
30
30
|
inheritTypography = _ref.inheritTypography,
|
31
31
|
invalid = _ref.invalid,
|
32
|
-
|
32
|
+
_ref$invalidLabel = _ref.invalidLabel,
|
33
|
+
deprecated_invalidLabel = _ref$invalidLabel === void 0 ? ' ' : _ref$invalidLabel,
|
33
34
|
invalidText = _ref.invalidText,
|
34
35
|
labelText = _ref.labelText,
|
35
36
|
onCancel = _ref.onCancel,
|
@@ -37,7 +38,7 @@ var EditInPlace = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
37
38
|
onSave = _ref.onSave,
|
38
39
|
saveLabel = _ref.saveLabel,
|
39
40
|
_ref$size = _ref.size,
|
40
|
-
size = _ref$size === void 0 ?
|
41
|
+
size = _ref$size === void 0 ? 'sm' : _ref$size,
|
41
42
|
tooltipAlignment = _ref.tooltipAlignment,
|
42
43
|
value = _ref.value,
|
43
44
|
rest = _objectWithoutProperties(_ref, _excluded);
|
@@ -85,7 +86,8 @@ var EditInPlace = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
85
86
|
// }
|
86
87
|
|
87
88
|
if (!isTargetingChild(e)) {
|
88
|
-
|
89
|
+
var _inputRef$current;
|
90
|
+
(_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 || _inputRef$current.focus();
|
89
91
|
setFocused(true);
|
90
92
|
}
|
91
93
|
};
|
@@ -122,15 +124,16 @@ var EditInPlace = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
122
124
|
onCancelHandler();
|
123
125
|
};
|
124
126
|
var onKeyHandler = function onKeyHandler(e) {
|
127
|
+
var _inputRef$current2, _inputRef$current3;
|
125
128
|
// to prevent blur handler from being called twice add additional state to check if escape is being used
|
126
129
|
escaping.current = true;
|
127
130
|
switch (e.key) {
|
128
131
|
case 'Escape':
|
129
|
-
inputRef.current.blur();
|
132
|
+
(_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 || _inputRef$current2.blur();
|
130
133
|
escapeHandler();
|
131
134
|
break;
|
132
135
|
case 'Enter':
|
133
|
-
inputRef.current.blur();
|
136
|
+
(_inputRef$current3 = inputRef.current) === null || _inputRef$current3 === void 0 || _inputRef$current3.blur();
|
134
137
|
returnHandler();
|
135
138
|
break;
|
136
139
|
}
|
@@ -219,7 +222,6 @@ EditInPlace.propTypes = _objectSpread2({
|
|
219
222
|
* By default the edit icon is shown on hover only.
|
220
223
|
*/
|
221
224
|
editAlwaysVisible: PropTypes.bool,
|
222
|
-
/**
|
223
225
|
/**
|
224
226
|
* label for edit button
|
225
227
|
*/
|
@@ -243,6 +245,7 @@ EditInPlace.propTypes = _objectSpread2({
|
|
243
245
|
/**
|
244
246
|
* text that is displayed if the input is invalid
|
245
247
|
*/
|
248
|
+
/**@ts-ignore*/
|
246
249
|
invalidText: PropTypes.string,
|
247
250
|
/**
|
248
251
|
* Provide the text that will be read by a screen reader when visiting this control
|
@@ -281,6 +284,7 @@ EditInPlace.propTypes = _objectSpread2({
|
|
281
284
|
*
|
282
285
|
* Can be passed either as one of tooltip options or as an object specifying cancel, edit and save separately
|
283
286
|
*/
|
287
|
+
/**@ts-ignore*/
|
284
288
|
tooltipAlignment: PropTypes.oneOfType([alignPropType, PropTypes.shape({
|
285
289
|
cancel: alignPropType,
|
286
290
|
edit: alignPropType,
|