@itwin/itwinui-react 1.48.1 → 2.0.0-dev.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -22
- package/cjs/core/Alert/Alert.d.ts +7 -6
- package/cjs/core/Alert/Alert.js +12 -7
- package/cjs/core/Avatar/Avatar.d.ts +69 -0
- package/cjs/core/{UserIcon/UserIcon.js → Avatar/Avatar.js} +15 -11
- package/cjs/core/Avatar/index.d.ts +4 -0
- package/cjs/core/{UserIcon → Avatar}/index.js +5 -4
- package/cjs/core/AvatarGroup/AvatarGroup.d.ts +70 -0
- package/cjs/core/{UserIconGroup/UserIconGroup.js → AvatarGroup/AvatarGroup.js} +23 -19
- package/cjs/core/AvatarGroup/index.d.ts +4 -0
- package/cjs/core/{UserIconGroup → AvatarGroup}/index.js +5 -4
- package/cjs/core/Badge/Badge.js +2 -4
- package/cjs/core/ButtonGroup/ButtonGroup.d.ts +1 -1
- package/cjs/core/Buttons/Button/Button.js +5 -14
- package/cjs/core/Buttons/DropdownButton/DropdownButton.js +1 -1
- package/cjs/core/Buttons/IconButton/IconButton.js +3 -9
- package/cjs/core/Buttons/IdeasButton/IdeasButton.js +1 -1
- package/cjs/core/Buttons/SplitButton/SplitButton.js +4 -6
- package/cjs/core/Checkbox/Checkbox.d.ts +1 -29
- package/cjs/core/Checkbox/Checkbox.js +3 -3
- package/cjs/core/ColorPicker/ColorBuilder.js +16 -27
- package/cjs/core/ColorPicker/ColorSwatch.d.ts +1 -1
- package/cjs/core/ColorPicker/ColorSwatch.js +1 -6
- package/cjs/core/ComboBox/ComboBoxDropdown.d.ts +1 -1
- package/cjs/core/ComboBox/ComboBoxMenu.js +2 -4
- package/cjs/core/Dialog/Dialog.d.ts +4 -4
- package/cjs/core/Dialog/Dialog.js +1 -1
- package/cjs/core/Dialog/DialogBackdrop.d.ts +1 -1
- package/cjs/core/Dialog/DialogBackdrop.js +5 -2
- package/cjs/core/Dialog/DialogMain.d.ts +1 -1
- package/cjs/core/Dialog/DialogMain.js +7 -1
- package/cjs/core/Dialog/DialogTitleBar.d.ts +1 -1
- package/cjs/core/ExpandableBlock/ExpandableBlock.js +4 -4
- package/cjs/core/Header/Header.d.ts +16 -6
- package/cjs/core/Header/Header.js +7 -9
- package/cjs/core/Header/HeaderBasicButton.d.ts +6 -0
- package/cjs/core/Header/HeaderBasicButton.js +52 -0
- package/cjs/core/Header/HeaderBreadcrumbs.js +6 -4
- package/cjs/core/Header/HeaderButton.d.ts +3 -2
- package/cjs/core/Header/HeaderButton.js +10 -18
- package/cjs/core/Header/HeaderDropdownButton.d.ts +6 -0
- package/cjs/core/Header/HeaderDropdownButton.js +56 -0
- package/cjs/core/Header/HeaderLogo.js +3 -3
- package/cjs/core/Header/HeaderSplitButton.d.ts +6 -0
- package/cjs/core/Header/HeaderSplitButton.js +56 -0
- package/cjs/core/Input/Input.d.ts +1 -1
- package/cjs/core/Input/Input.js +3 -4
- package/cjs/core/InputGroup/InputGroup.d.ts +1 -1
- package/cjs/core/InputGroup/InputGroup.js +1 -1
- package/cjs/core/Label/Label.d.ts +1 -1
- package/cjs/core/Label/Label.js +1 -1
- package/cjs/core/LabeledInput/LabeledInput.d.ts +2 -2
- package/cjs/core/LabeledInput/LabeledInput.js +1 -1
- package/cjs/core/LabeledSelect/LabeledSelect.d.ts +1 -1
- package/cjs/core/LabeledSelect/LabeledSelect.js +1 -1
- package/cjs/core/LabeledTextarea/LabeledTextarea.d.ts +1 -1
- package/cjs/core/LabeledTextarea/LabeledTextarea.js +1 -1
- package/cjs/core/Radio/Radio.d.ts +1 -29
- package/cjs/core/Radio/Radio.js +3 -3
- package/cjs/core/RadioTiles/RadioTileGroup.d.ts +1 -1
- package/cjs/core/RadioTiles/RadioTileGroup.js +1 -1
- package/cjs/core/Select/Select.d.ts +1 -1
- package/cjs/core/Select/Select.js +9 -12
- package/cjs/core/Select/SelectTag.d.ts +1 -1
- package/cjs/core/Select/SelectTag.js +1 -1
- package/cjs/core/SideNavigation/SidenavButton.js +1 -2
- package/cjs/core/Stepper/Stepper.d.ts +40 -0
- package/cjs/core/{Wizard/Wizard.js → Stepper/Stepper.js} +11 -28
- package/cjs/core/{Wizard/Step.d.ts → Stepper/StepperStep.d.ts} +6 -7
- package/cjs/core/{Wizard/Step.js → Stepper/StepperStep.js} +10 -10
- package/cjs/core/Stepper/Wizard.d.ts +46 -0
- package/cjs/core/Stepper/Wizard.js +55 -0
- package/cjs/core/Stepper/WorkflowDiagram.d.ts +6 -0
- package/cjs/core/Stepper/WorkflowDiagram.js +43 -0
- package/cjs/core/Stepper/WorkflowDiagramStep.d.ts +5 -0
- package/cjs/core/Stepper/WorkflowDiagramStep.js +42 -0
- package/cjs/core/Stepper/index.d.ts +8 -0
- package/cjs/core/{Wizard → Stepper}/index.js +5 -1
- package/cjs/core/Surface/Surface.js +2 -4
- package/cjs/core/Table/SubRowExpander.js +1 -1
- package/cjs/core/Table/Table.d.ts +5 -4
- package/cjs/core/Table/Table.js +30 -21
- package/cjs/core/Table/TableCell.js +4 -4
- package/cjs/core/Table/TablePaginator.js +14 -15
- package/cjs/core/Table/TableRowMemoized.d.ts +2 -0
- package/cjs/core/Table/TableRowMemoized.js +10 -13
- package/cjs/core/Table/cells/DefaultCell.js +4 -9
- package/cjs/core/Table/columns/actionColumn.js +1 -1
- package/cjs/core/Table/columns/expanderColumn.js +1 -1
- package/cjs/core/Table/filters/BaseFilter.js +1 -1
- package/cjs/core/Table/filters/FilterToggle.js +1 -1
- package/cjs/core/Table/hooks/useColumnDragAndDrop.js +4 -4
- package/cjs/core/Table/hooks/useResizeColumns.js +110 -106
- package/cjs/core/Tabs/Tab.d.ts +0 -8
- package/cjs/core/Tabs/Tab.js +1 -5
- package/cjs/core/Tabs/Tabs.js +8 -11
- package/cjs/core/Tabs/index.d.ts +2 -2
- package/cjs/core/Tabs/index.js +1 -2
- package/cjs/core/Textarea/Textarea.d.ts +1 -1
- package/cjs/core/Textarea/Textarea.js +2 -2
- package/cjs/core/ThemeProvider/ThemeProvider.d.ts +27 -17
- package/cjs/core/ThemeProvider/ThemeProvider.js +64 -7
- package/cjs/core/Tile/Tile.d.ts +19 -1
- package/cjs/core/Tile/Tile.js +35 -12
- package/cjs/core/Toast/Toast.d.ts +3 -3
- package/cjs/core/Toast/Toast.js +3 -3
- package/cjs/core/Toast/ToastWrapper.d.ts +1 -1
- package/cjs/core/Toast/ToastWrapper.js +1 -1
- package/cjs/core/Tree/TreeNode.js +1 -7
- package/cjs/core/index.d.ts +8 -8
- package/cjs/core/index.js +13 -10
- package/cjs/core/utils/components/Popover.d.ts +2 -2
- package/cjs/core/utils/components/Popover.js +1 -1
- package/cjs/core/utils/components/Resizer.d.ts +5 -0
- package/cjs/core/utils/components/Resizer.js +7 -1
- package/cjs/core/utils/components/VisuallyHidden.d.ts +1 -0
- package/cjs/core/utils/components/VisuallyHidden.js +1 -0
- package/cjs/core/utils/functions/colors.d.ts +1 -1
- package/cjs/core/utils/functions/colors.js +1 -1
- package/cjs/core/utils/hooks/index.d.ts +1 -0
- package/cjs/core/utils/hooks/index.js +1 -0
- package/cjs/core/utils/hooks/useIsomorphicLayoutEffect.d.ts +7 -0
- package/cjs/core/utils/hooks/useIsomorphicLayoutEffect.js +17 -0
- package/cjs/core/utils/hooks/useMediaQuery.js +2 -1
- package/cjs/core/utils/hooks/useTheme.d.ts +20 -3
- package/cjs/core/utils/hooks/useTheme.js +57 -58
- package/esm/core/Alert/Alert.d.ts +7 -6
- package/esm/core/Alert/Alert.js +12 -7
- package/esm/core/Avatar/Avatar.d.ts +69 -0
- package/esm/core/{UserIcon/UserIcon.js → Avatar/Avatar.js} +13 -9
- package/esm/core/Avatar/index.d.ts +4 -0
- package/esm/core/{UserIcon → Avatar}/index.js +2 -2
- package/esm/core/AvatarGroup/AvatarGroup.d.ts +70 -0
- package/esm/core/{UserIconGroup/UserIconGroup.js → AvatarGroup/AvatarGroup.js} +21 -17
- package/esm/core/AvatarGroup/index.d.ts +4 -0
- package/esm/core/{UserIconGroup → AvatarGroup}/index.js +2 -2
- package/esm/core/Badge/Badge.js +3 -5
- package/esm/core/ButtonGroup/ButtonGroup.d.ts +1 -1
- package/esm/core/Buttons/Button/Button.js +5 -14
- package/esm/core/Buttons/DropdownButton/DropdownButton.js +1 -1
- package/esm/core/Buttons/IconButton/IconButton.js +3 -9
- package/esm/core/Buttons/IdeasButton/IdeasButton.js +1 -1
- package/esm/core/Buttons/SplitButton/SplitButton.js +4 -6
- package/esm/core/Checkbox/Checkbox.d.ts +1 -29
- package/esm/core/Checkbox/Checkbox.js +3 -3
- package/esm/core/ColorPicker/ColorBuilder.js +17 -28
- package/esm/core/ColorPicker/ColorSwatch.d.ts +1 -1
- package/esm/core/ColorPicker/ColorSwatch.js +2 -7
- package/esm/core/ComboBox/ComboBoxDropdown.d.ts +1 -1
- package/esm/core/ComboBox/ComboBoxMenu.js +2 -4
- package/esm/core/Dialog/Dialog.d.ts +4 -4
- package/esm/core/Dialog/Dialog.js +1 -1
- package/esm/core/Dialog/DialogBackdrop.d.ts +1 -1
- package/esm/core/Dialog/DialogBackdrop.js +5 -2
- package/esm/core/Dialog/DialogMain.d.ts +1 -1
- package/esm/core/Dialog/DialogMain.js +7 -1
- package/esm/core/Dialog/DialogTitleBar.d.ts +1 -1
- package/esm/core/ExpandableBlock/ExpandableBlock.js +4 -4
- package/esm/core/Header/Header.d.ts +16 -6
- package/esm/core/Header/Header.js +7 -9
- package/esm/core/Header/HeaderBasicButton.d.ts +6 -0
- package/esm/core/Header/HeaderBasicButton.js +46 -0
- package/esm/core/Header/HeaderBreadcrumbs.js +6 -4
- package/esm/core/Header/HeaderButton.d.ts +3 -2
- package/esm/core/Header/HeaderButton.js +10 -18
- package/esm/core/Header/HeaderDropdownButton.d.ts +6 -0
- package/esm/core/Header/HeaderDropdownButton.js +50 -0
- package/esm/core/Header/HeaderLogo.js +3 -3
- package/esm/core/Header/HeaderSplitButton.d.ts +6 -0
- package/esm/core/Header/HeaderSplitButton.js +50 -0
- package/esm/core/Input/Input.d.ts +1 -1
- package/esm/core/Input/Input.js +3 -4
- package/esm/core/InputGroup/InputGroup.d.ts +1 -1
- package/esm/core/InputGroup/InputGroup.js +1 -1
- package/esm/core/Label/Label.d.ts +1 -1
- package/esm/core/Label/Label.js +1 -1
- package/esm/core/LabeledInput/LabeledInput.d.ts +2 -2
- package/esm/core/LabeledInput/LabeledInput.js +1 -1
- package/esm/core/LabeledSelect/LabeledSelect.d.ts +1 -1
- package/esm/core/LabeledSelect/LabeledSelect.js +1 -1
- package/esm/core/LabeledTextarea/LabeledTextarea.d.ts +1 -1
- package/esm/core/LabeledTextarea/LabeledTextarea.js +1 -1
- package/esm/core/Radio/Radio.d.ts +1 -29
- package/esm/core/Radio/Radio.js +3 -3
- package/esm/core/RadioTiles/RadioTileGroup.d.ts +1 -1
- package/esm/core/RadioTiles/RadioTileGroup.js +1 -1
- package/esm/core/Select/Select.d.ts +1 -1
- package/esm/core/Select/Select.js +9 -12
- package/esm/core/Select/SelectTag.d.ts +1 -1
- package/esm/core/Select/SelectTag.js +1 -1
- package/esm/core/SideNavigation/SidenavButton.js +1 -2
- package/esm/core/Stepper/Stepper.d.ts +40 -0
- package/esm/core/{Wizard/Wizard.js → Stepper/Stepper.js} +10 -27
- package/esm/core/{Wizard/Step.d.ts → Stepper/StepperStep.d.ts} +6 -7
- package/esm/core/{Wizard/Step.js → Stepper/StepperStep.js} +8 -8
- package/esm/core/Stepper/Wizard.d.ts +46 -0
- package/esm/core/Stepper/Wizard.js +49 -0
- package/esm/core/Stepper/WorkflowDiagram.d.ts +6 -0
- package/esm/core/Stepper/WorkflowDiagram.js +37 -0
- package/esm/core/Stepper/WorkflowDiagramStep.d.ts +5 -0
- package/esm/core/Stepper/WorkflowDiagramStep.js +35 -0
- package/esm/core/Stepper/index.d.ts +8 -0
- package/esm/core/{Wizard → Stepper}/index.js +2 -0
- package/esm/core/Surface/Surface.js +3 -5
- package/esm/core/Table/SubRowExpander.js +1 -1
- package/esm/core/Table/Table.d.ts +5 -4
- package/esm/core/Table/Table.js +30 -21
- package/esm/core/Table/TableCell.js +4 -4
- package/esm/core/Table/TablePaginator.js +14 -15
- package/esm/core/Table/TableRowMemoized.d.ts +2 -0
- package/esm/core/Table/TableRowMemoized.js +10 -13
- package/esm/core/Table/cells/DefaultCell.js +4 -9
- package/esm/core/Table/columns/actionColumn.js +1 -1
- package/esm/core/Table/columns/expanderColumn.js +1 -1
- package/esm/core/Table/filters/BaseFilter.js +1 -1
- package/esm/core/Table/filters/FilterToggle.js +1 -1
- package/esm/core/Table/hooks/useColumnDragAndDrop.js +4 -4
- package/esm/core/Table/hooks/useResizeColumns.js +110 -106
- package/esm/core/Tabs/Tab.d.ts +0 -8
- package/esm/core/Tabs/Tab.js +0 -4
- package/esm/core/Tabs/Tabs.js +9 -12
- package/esm/core/Tabs/index.d.ts +2 -2
- package/esm/core/Tabs/index.js +1 -1
- package/esm/core/Textarea/Textarea.d.ts +1 -1
- package/esm/core/Textarea/Textarea.js +2 -2
- package/esm/core/ThemeProvider/ThemeProvider.d.ts +27 -17
- package/esm/core/ThemeProvider/ThemeProvider.js +64 -6
- package/esm/core/Tile/Tile.d.ts +19 -1
- package/esm/core/Tile/Tile.js +36 -13
- package/esm/core/Toast/Toast.d.ts +3 -3
- package/esm/core/Toast/Toast.js +3 -3
- package/esm/core/Toast/ToastWrapper.d.ts +1 -1
- package/esm/core/Toast/ToastWrapper.js +1 -1
- package/esm/core/Tree/TreeNode.js +2 -8
- package/esm/core/index.d.ts +8 -8
- package/esm/core/index.js +4 -4
- package/esm/core/utils/components/Popover.d.ts +2 -2
- package/esm/core/utils/components/Popover.js +1 -1
- package/esm/core/utils/components/Resizer.d.ts +5 -0
- package/esm/core/utils/components/Resizer.js +7 -1
- package/esm/core/utils/components/VisuallyHidden.d.ts +1 -0
- package/esm/core/utils/components/VisuallyHidden.js +1 -0
- package/esm/core/utils/functions/colors.d.ts +1 -1
- package/esm/core/utils/functions/colors.js +1 -1
- package/esm/core/utils/hooks/index.d.ts +1 -0
- package/esm/core/utils/hooks/index.js +1 -0
- package/esm/core/utils/hooks/useIsomorphicLayoutEffect.d.ts +7 -0
- package/esm/core/utils/hooks/useIsomorphicLayoutEffect.js +11 -0
- package/esm/core/utils/hooks/useMediaQuery.js +2 -1
- package/esm/core/utils/hooks/useTheme.d.ts +20 -3
- package/esm/core/utils/hooks/useTheme.js +56 -57
- package/package.json +3 -2
- package/cjs/core/UserIcon/UserIcon.d.ts +0 -57
- package/cjs/core/UserIcon/index.d.ts +0 -4
- package/cjs/core/UserIconGroup/UserIconGroup.d.ts +0 -62
- package/cjs/core/UserIconGroup/index.d.ts +0 -4
- package/cjs/core/Wizard/Wizard.d.ts +0 -54
- package/cjs/core/Wizard/index.d.ts +0 -4
- package/esm/core/UserIcon/UserIcon.d.ts +0 -57
- package/esm/core/UserIcon/index.d.ts +0 -4
- package/esm/core/UserIconGroup/UserIconGroup.d.ts +0 -62
- package/esm/core/UserIconGroup/index.d.ts +0 -4
- package/esm/core/Wizard/Wizard.d.ts +0 -54
- package/esm/core/Wizard/index.d.ts +0 -4
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import '@itwin/itwinui-css/css/stepper.css';
|
|
3
|
+
export declare type StepperLocalization = {
|
|
4
|
+
stepsCountLabel: (currentStep: number, totalSteps: number) => string;
|
|
5
|
+
};
|
|
6
|
+
export declare type StepProperties = {
|
|
7
|
+
/**
|
|
8
|
+
* The title/label of the step.
|
|
9
|
+
*/
|
|
10
|
+
name: string;
|
|
11
|
+
/**
|
|
12
|
+
* A tooltip giving detailed description to this step.
|
|
13
|
+
*/
|
|
14
|
+
description?: string;
|
|
15
|
+
};
|
|
16
|
+
export declare type StepperProps = {
|
|
17
|
+
/**
|
|
18
|
+
* Current step index, 0 - based.
|
|
19
|
+
*/
|
|
20
|
+
currentStep?: number;
|
|
21
|
+
/**
|
|
22
|
+
* An array of step objects.
|
|
23
|
+
*/
|
|
24
|
+
steps: StepProperties[];
|
|
25
|
+
/**
|
|
26
|
+
* The type of Stepper to display.
|
|
27
|
+
* @default 'default'
|
|
28
|
+
*/
|
|
29
|
+
type?: 'default' | 'long';
|
|
30
|
+
/**
|
|
31
|
+
* Option to provide localized strings.
|
|
32
|
+
*/
|
|
33
|
+
localization?: StepperLocalization;
|
|
34
|
+
/**
|
|
35
|
+
* Click handler on completed step.
|
|
36
|
+
*/
|
|
37
|
+
onStepClick?: (clickedIndex: number) => void;
|
|
38
|
+
};
|
|
39
|
+
export declare const Stepper: React.ForwardRefExoticComponent<StepperProps & React.RefAttributes<HTMLDivElement>>;
|
|
40
|
+
export default Stepper;
|
|
@@ -24,40 +24,23 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
24
24
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
25
25
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
26
26
|
*--------------------------------------------------------------------------------------------*/
|
|
27
|
-
import cx from 'classnames';
|
|
28
27
|
import React from 'react';
|
|
29
28
|
import { useTheme } from '../utils';
|
|
30
|
-
import '@itwin/itwinui-css/css/
|
|
31
|
-
import {
|
|
32
|
-
var
|
|
29
|
+
import '@itwin/itwinui-css/css/stepper.css';
|
|
30
|
+
import { StepperStep } from './StepperStep';
|
|
31
|
+
var defaultStepperLocalization = {
|
|
33
32
|
stepsCountLabel: function (currentStep, totalSteps) {
|
|
34
33
|
return "Step ".concat(currentStep, " of ").concat(totalSteps, ":");
|
|
35
34
|
},
|
|
36
35
|
};
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
* It may also be used for navigation.
|
|
40
|
-
*
|
|
41
|
-
* The `type` can be set to 'long' to show labels under steps.
|
|
42
|
-
*
|
|
43
|
-
* @example
|
|
44
|
-
* <Wizard
|
|
45
|
-
* steps=[{name: "Step One"}, {name: "Step Two"}, {name: "Step Three"}]
|
|
46
|
-
* currentStep={0}
|
|
47
|
-
* type='long'
|
|
48
|
-
* />
|
|
49
|
-
*/
|
|
50
|
-
export var Wizard = React.forwardRef(function (props, ref) {
|
|
51
|
-
var currentStep = props.currentStep, steps = props.steps, _a = props.type, type = _a === void 0 ? 'default' : _a, _b = props.localization, localization = _b === void 0 ? defaultWizardLocalization : _b, onStepClick = props.onStepClick, rest = __rest(props, ["currentStep", "steps", "type", "localization", "onStepClick"]);
|
|
36
|
+
export var Stepper = React.forwardRef(function (props, ref) {
|
|
37
|
+
var currentStep = props.currentStep, steps = props.steps, _a = props.type, type = _a === void 0 ? 'default' : _a, _b = props.localization, localization = _b === void 0 ? defaultStepperLocalization : _b, onStepClick = props.onStepClick, rest = __rest(props, ["currentStep", "steps", "type", "localization", "onStepClick"]);
|
|
52
38
|
var boundedCurrentStep = Math.min(Math.max(0, currentStep !== null && currentStep !== void 0 ? currentStep : 0), steps.length - 1);
|
|
53
39
|
useTheme();
|
|
54
|
-
return (React.createElement("div", __assign({ className:
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
React.createElement("ol", null, steps.map(function (s, index) { return (React.createElement(Step, { key: index, index: index, title: type === 'long' ? '' : s.name, currentStepNumber: boundedCurrentStep, totalSteps: steps.length, type: type, onClick: onStepClick, description: s.description })); })),
|
|
59
|
-
type === 'long' && (React.createElement("div", { className: 'iui-wizard-steps-label' },
|
|
60
|
-
React.createElement("span", { className: 'iui-steps-count' }, localization.stepsCountLabel(boundedCurrentStep + 1, steps.length)),
|
|
40
|
+
return (React.createElement("div", __assign({ className: 'iui-stepper', ref: ref }, rest),
|
|
41
|
+
React.createElement("ol", null, steps.map(function (s, index) { return (React.createElement(StepperStep, { key: index, index: index, title: type === 'long' ? '' : s.name, currentStepNumber: boundedCurrentStep, totalSteps: steps.length, type: type, onClick: onStepClick, description: s.description })); })),
|
|
42
|
+
type === 'long' && (React.createElement("div", { className: 'iui-stepper-steps-label' },
|
|
43
|
+
React.createElement("span", { className: 'iui-stepper-steps-label-count' }, localization.stepsCountLabel(boundedCurrentStep + 1, steps.length)),
|
|
61
44
|
steps[boundedCurrentStep].name))));
|
|
62
45
|
});
|
|
63
|
-
export default
|
|
46
|
+
export default Stepper;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { StylingProps } from '../utils';
|
|
3
|
-
|
|
4
|
-
export declare type StepProps = {
|
|
3
|
+
export declare type StepperStepProps = {
|
|
5
4
|
/**
|
|
6
5
|
* The title/label of the step.
|
|
7
6
|
*/
|
|
@@ -11,17 +10,17 @@ export declare type StepProps = {
|
|
|
11
10
|
*/
|
|
12
11
|
index: number;
|
|
13
12
|
/**
|
|
14
|
-
* the
|
|
13
|
+
* the Stepper's current step number, 0-based.
|
|
15
14
|
*/
|
|
16
15
|
currentStepNumber: number;
|
|
17
16
|
/**
|
|
18
|
-
* number of total steps in the
|
|
17
|
+
* number of total steps in the stepper.
|
|
19
18
|
*/
|
|
20
19
|
totalSteps: number;
|
|
21
20
|
/**
|
|
22
|
-
*
|
|
21
|
+
* Stepper type.
|
|
23
22
|
*/
|
|
24
|
-
type:
|
|
23
|
+
type: 'default' | 'long';
|
|
25
24
|
/**
|
|
26
25
|
* Click handler on completed step.
|
|
27
26
|
*/
|
|
@@ -31,4 +30,4 @@ export declare type StepProps = {
|
|
|
31
30
|
*/
|
|
32
31
|
description?: string;
|
|
33
32
|
} & StylingProps;
|
|
34
|
-
export declare const
|
|
33
|
+
export declare const StepperStep: (props: StepperStepProps) => JSX.Element;
|
|
@@ -27,11 +27,11 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
27
27
|
import cx from 'classnames';
|
|
28
28
|
import React from 'react';
|
|
29
29
|
import { Tooltip } from '../Tooltip';
|
|
30
|
-
export var
|
|
30
|
+
export var StepperStep = function (props) {
|
|
31
31
|
var title = props.title, index = props.index, currentStepNumber = props.currentStepNumber, totalSteps = props.totalSteps, type = props.type, onClick = props.onClick, description = props.description, className = props.className, style = props.style, rest = __rest(props, ["title", "index", "currentStepNumber", "totalSteps", "type", "onClick", "description", "className", "style"]);
|
|
32
|
-
var isPast =
|
|
33
|
-
var isActive =
|
|
34
|
-
var isClickable =
|
|
32
|
+
var isPast = currentStepNumber > index;
|
|
33
|
+
var isActive = currentStepNumber === index;
|
|
34
|
+
var isClickable = isPast && !!onClick;
|
|
35
35
|
var onCompletedClick = function () {
|
|
36
36
|
if (isClickable) {
|
|
37
37
|
onClick === null || onClick === void 0 ? void 0 : onClick(index);
|
|
@@ -45,12 +45,12 @@ export var Step = function (props) {
|
|
|
45
45
|
onCompletedClick();
|
|
46
46
|
}
|
|
47
47
|
};
|
|
48
|
-
var stepShape = (React.createElement("li", __assign({ className: cx('iui-
|
|
48
|
+
var stepShape = (React.createElement("li", __assign({ className: cx('iui-stepper-step', {
|
|
49
49
|
'iui-current': isActive,
|
|
50
50
|
'iui-clickable': isClickable,
|
|
51
51
|
}, className), style: __assign({ width: type === 'default' ? "".concat(100 / totalSteps, "%") : undefined }, style), onClick: onCompletedClick, onKeyDown: onKeyDown, "aria-current": isActive ? 'step' : undefined, tabIndex: isClickable ? 0 : undefined }, rest),
|
|
52
|
-
React.createElement("div", { className: 'iui-
|
|
53
|
-
React.createElement("span", { className: 'iui-
|
|
54
|
-
type === 'default' && (React.createElement("span", { className: 'iui-
|
|
52
|
+
React.createElement("div", { className: 'iui-stepper-track-content' },
|
|
53
|
+
React.createElement("span", { className: 'iui-stepper-circle' }, index + 1)),
|
|
54
|
+
type === 'default' && (React.createElement("span", { className: 'iui-stepper-step-name' }, title))));
|
|
55
55
|
return description ? (React.createElement(Tooltip, { content: description }, stepShape)) : (stepShape);
|
|
56
56
|
};
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { StepperProps, StepperLocalization } from './Stepper';
|
|
3
|
+
/**
|
|
4
|
+
* @deprecated Since v2:
|
|
5
|
+
*
|
|
6
|
+
* - For `default` | `long`, use `StepperType` with `Stepper` instead
|
|
7
|
+
* - For `workflow`, use `WorkflowDiagram` instead
|
|
8
|
+
*/
|
|
9
|
+
export declare type WizardType = 'default' | 'long' | 'workflow';
|
|
10
|
+
/**
|
|
11
|
+
* @deprecated Since v2, use `StepperLocalization` with `Stepper`
|
|
12
|
+
*/
|
|
13
|
+
export declare type WizardLocalization = StepperLocalization;
|
|
14
|
+
/**
|
|
15
|
+
* @deprecated Since v2, use `StepperProps` with `Stepper` or `WorkflowDiagramProps` with `WorkflowDiagram`
|
|
16
|
+
*/
|
|
17
|
+
export declare type WizardProps = {
|
|
18
|
+
/**
|
|
19
|
+
* The type of Wizard to display.
|
|
20
|
+
* @default 'default'
|
|
21
|
+
*/
|
|
22
|
+
type?: WizardType;
|
|
23
|
+
} & Omit<StepperProps, 'type'>;
|
|
24
|
+
/**
|
|
25
|
+
* @deprecated Since v2, use `Stepper` (type = `default` | `long`) or WorkflowDiagram (type = `workflow`)
|
|
26
|
+
*
|
|
27
|
+
* A wizard displays progress through a sequence of logical and numbered steps.
|
|
28
|
+
* It may also be used for navigation.
|
|
29
|
+
*
|
|
30
|
+
* The `type` can be set to 'long' to show labels under steps.
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* <Wizard
|
|
34
|
+
* steps=[{name: "Step One"}, {name: "Step Two"}, {name: "Step Three"}]
|
|
35
|
+
* currentStep={0}
|
|
36
|
+
* type='long'
|
|
37
|
+
* />
|
|
38
|
+
*/
|
|
39
|
+
export declare const Wizard: React.ForwardRefExoticComponent<{
|
|
40
|
+
/**
|
|
41
|
+
* The type of Wizard to display.
|
|
42
|
+
* @default 'default'
|
|
43
|
+
*/
|
|
44
|
+
type?: WizardType | undefined;
|
|
45
|
+
} & Omit<StepperProps, "type"> & React.RefAttributes<HTMLDivElement>>;
|
|
46
|
+
export default Wizard;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
13
|
+
var t = {};
|
|
14
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
15
|
+
t[p] = s[p];
|
|
16
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
17
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
18
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
19
|
+
t[p[i]] = s[p[i]];
|
|
20
|
+
}
|
|
21
|
+
return t;
|
|
22
|
+
};
|
|
23
|
+
/*---------------------------------------------------------------------------------------------
|
|
24
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
25
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
26
|
+
*--------------------------------------------------------------------------------------------*/
|
|
27
|
+
import React from 'react';
|
|
28
|
+
import { Stepper } from './Stepper';
|
|
29
|
+
import { WorkflowDiagram } from './WorkflowDiagram';
|
|
30
|
+
/**
|
|
31
|
+
* @deprecated Since v2, use `Stepper` (type = `default` | `long`) or WorkflowDiagram (type = `workflow`)
|
|
32
|
+
*
|
|
33
|
+
* A wizard displays progress through a sequence of logical and numbered steps.
|
|
34
|
+
* It may also be used for navigation.
|
|
35
|
+
*
|
|
36
|
+
* The `type` can be set to 'long' to show labels under steps.
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* <Wizard
|
|
40
|
+
* steps=[{name: "Step One"}, {name: "Step Two"}, {name: "Step Three"}]
|
|
41
|
+
* currentStep={0}
|
|
42
|
+
* type='long'
|
|
43
|
+
* />
|
|
44
|
+
*/
|
|
45
|
+
export var Wizard = React.forwardRef(function (props, ref) {
|
|
46
|
+
var currentStep = props.currentStep, steps = props.steps, _a = props.type, type = _a === void 0 ? 'default' : _a, localization = props.localization, onStepClick = props.onStepClick, rest = __rest(props, ["currentStep", "steps", "type", "localization", "onStepClick"]);
|
|
47
|
+
return type !== 'workflow' ? (React.createElement(Stepper, __assign({ type: type, currentStep: currentStep, steps: steps, localization: localization, onStepClick: onStepClick, ref: ref }, rest))) : (React.createElement(WorkflowDiagram, __assign({ steps: steps, ref: ref }, rest)));
|
|
48
|
+
});
|
|
49
|
+
export default Wizard;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import '@itwin/itwinui-css/css/workflow-diagram.css';
|
|
3
|
+
import { StepperProps } from './Stepper';
|
|
4
|
+
export declare type WorkflowDiagramProps = Pick<StepperProps, 'steps'>;
|
|
5
|
+
export declare const WorkflowDiagram: React.ForwardRefExoticComponent<WorkflowDiagramProps & React.RefAttributes<HTMLDivElement>>;
|
|
6
|
+
export default WorkflowDiagram;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
13
|
+
var t = {};
|
|
14
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
15
|
+
t[p] = s[p];
|
|
16
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
17
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
18
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
19
|
+
t[p[i]] = s[p[i]];
|
|
20
|
+
}
|
|
21
|
+
return t;
|
|
22
|
+
};
|
|
23
|
+
/*---------------------------------------------------------------------------------------------
|
|
24
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
25
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
26
|
+
*--------------------------------------------------------------------------------------------*/
|
|
27
|
+
import React from 'react';
|
|
28
|
+
import { useTheme } from '../utils';
|
|
29
|
+
import '@itwin/itwinui-css/css/workflow-diagram.css';
|
|
30
|
+
import { WorkflowDiagramStep } from './WorkflowDiagramStep';
|
|
31
|
+
export var WorkflowDiagram = React.forwardRef(function (props, ref) {
|
|
32
|
+
var steps = props.steps, rest = __rest(props, ["steps"]);
|
|
33
|
+
useTheme();
|
|
34
|
+
return (React.createElement("div", { ref: ref },
|
|
35
|
+
React.createElement("ol", __assign({ className: 'iui-workflow-diagram' }, rest), steps.map(function (s, index) { return (React.createElement(WorkflowDiagramStep, { key: index, title: s.name, description: s.description })); }))));
|
|
36
|
+
});
|
|
37
|
+
export default WorkflowDiagram;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { StylingProps } from '../utils';
|
|
3
|
+
import { StepperStepProps } from './StepperStep';
|
|
4
|
+
export declare type WorkflowDiagramStepProps = Pick<StepperStepProps, 'title' | 'description'> & StylingProps;
|
|
5
|
+
export declare const WorkflowDiagramStep: (props: WorkflowDiagramStepProps) => JSX.Element;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
13
|
+
var t = {};
|
|
14
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
15
|
+
t[p] = s[p];
|
|
16
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
17
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
18
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
19
|
+
t[p[i]] = s[p[i]];
|
|
20
|
+
}
|
|
21
|
+
return t;
|
|
22
|
+
};
|
|
23
|
+
/*---------------------------------------------------------------------------------------------
|
|
24
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
25
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
26
|
+
*--------------------------------------------------------------------------------------------*/
|
|
27
|
+
import cx from 'classnames';
|
|
28
|
+
import React from 'react';
|
|
29
|
+
import { Tooltip } from '../Tooltip';
|
|
30
|
+
export var WorkflowDiagramStep = function (props) {
|
|
31
|
+
var title = props.title, description = props.description, className = props.className, style = props.style, rest = __rest(props, ["title", "description", "className", "style"]);
|
|
32
|
+
var stepShape = (React.createElement("li", __assign({ className: cx('iui-workflow-diagram-step', className), style: style }, rest),
|
|
33
|
+
React.createElement("span", { className: 'iui-workflow-diagram-content' }, title)));
|
|
34
|
+
return description ? (React.createElement(Tooltip, { content: description }, stepShape)) : (stepShape);
|
|
35
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { Wizard } from './Wizard';
|
|
2
|
+
export { Stepper } from './Stepper';
|
|
3
|
+
export { WorkflowDiagram } from './WorkflowDiagram';
|
|
4
|
+
export type { WizardProps, WizardType, WizardLocalization } from './Wizard';
|
|
5
|
+
export type { StepperProps, StepProperties, StepperLocalization, } from './Stepper';
|
|
6
|
+
export type { WorkflowDiagramProps } from './WorkflowDiagram';
|
|
7
|
+
declare const _default: "./Wizard";
|
|
8
|
+
export default _default;
|
|
@@ -3,4 +3,6 @@
|
|
|
3
3
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
4
|
*--------------------------------------------------------------------------------------------*/
|
|
5
5
|
export { Wizard } from './Wizard';
|
|
6
|
+
export { Stepper } from './Stepper';
|
|
7
|
+
export { WorkflowDiagram } from './WorkflowDiagram';
|
|
6
8
|
export default './Wizard';
|
|
@@ -26,7 +26,7 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
26
26
|
*--------------------------------------------------------------------------------------------*/
|
|
27
27
|
import React from 'react';
|
|
28
28
|
import cx from 'classnames';
|
|
29
|
-
import { useTheme
|
|
29
|
+
import { useTheme } from '../utils';
|
|
30
30
|
import '@itwin/itwinui-css/css/surface.css';
|
|
31
31
|
/**
|
|
32
32
|
* Helper function that returns one of the preset surface elevation values.
|
|
@@ -54,11 +54,9 @@ var getSurfaceElevationValue = function (elevation) {
|
|
|
54
54
|
* <Surface elevation={2}>Surface Content</Surface>
|
|
55
55
|
*/
|
|
56
56
|
export var Surface = React.forwardRef(function (props, ref) {
|
|
57
|
-
var _a,
|
|
58
|
-
var _d = props.elevation, elevation = _d === void 0 ? 0 : _d, className = props.className, style = props.style, children = props.children, rest = __rest(props, ["elevation", "className", "style", "children"]);
|
|
57
|
+
var _a = props.elevation, elevation = _a === void 0 ? 0 : _a, className = props.className, style = props.style, children = props.children, rest = __rest(props, ["elevation", "className", "style", "children"]);
|
|
59
58
|
useTheme();
|
|
60
|
-
var _style = (
|
|
61
|
-
? __assign({ '--iui-surface-elevation': getSurfaceElevationValue(elevation) }, style) : __assign({ boxShadow: getSurfaceElevationValue(elevation) }, style);
|
|
59
|
+
var _style = __assign({ '--iui-surface-elevation': getSurfaceElevationValue(elevation) }, style);
|
|
62
60
|
return (React.createElement("div", __assign({ className: cx('iui-surface', className), style: _style, ref: ref }, rest), children));
|
|
63
61
|
});
|
|
64
62
|
export default Surface;
|
|
@@ -7,7 +7,7 @@ import SvgChevronRight from '@itwin/itwinui-icons-react/cjs/icons/ChevronRight';
|
|
|
7
7
|
import { IconButton } from '../Buttons';
|
|
8
8
|
export var SubRowExpander = function (props) {
|
|
9
9
|
var cell = props.cell, isDisabled = props.isDisabled, cellProps = props.cellProps, expanderCell = props.expanderCell;
|
|
10
|
-
return (React.createElement(React.Fragment, null, expanderCell ? (expanderCell(cellProps)) : (React.createElement(IconButton, { style: { marginRight: 8 }, className: 'iui-row-expander', styleType: 'borderless', size: 'small', onClick: function (e) {
|
|
10
|
+
return (React.createElement(React.Fragment, null, expanderCell ? (expanderCell(cellProps)) : (React.createElement(IconButton, { style: { marginRight: 8 }, className: 'iui-table-row-expander', styleType: 'borderless', size: 'small', onClick: function (e) {
|
|
11
11
|
e.stopPropagation();
|
|
12
12
|
cell.row.toggleRowExpanded();
|
|
13
13
|
}, disabled: isDisabled }, React.createElement(SvgChevronRight, { style: {
|
|
@@ -35,6 +35,10 @@ export declare type TablePaginatorRendererProps = {
|
|
|
35
35
|
* @default false
|
|
36
36
|
*/
|
|
37
37
|
isLoading?: boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Total number of rows selected (for mutli-selection mode only)
|
|
40
|
+
*/
|
|
41
|
+
totalSelectedRowsCount?: number;
|
|
38
42
|
};
|
|
39
43
|
/**
|
|
40
44
|
* Table props.
|
|
@@ -83,12 +87,10 @@ export declare type TableProps<T extends Record<string, unknown> = Record<string
|
|
|
83
87
|
onSort?: (state: TableState<T>) => void;
|
|
84
88
|
/**
|
|
85
89
|
* Callback function when scroll reaches bottom. Can be used for lazy-loading the data.
|
|
86
|
-
* If you want to use it in older browsers e.g. IE, then you need to have IntersectionObserver polyfill.
|
|
87
90
|
*/
|
|
88
91
|
onBottomReached?: () => void;
|
|
89
92
|
/**
|
|
90
93
|
* Callback function when row is in viewport.
|
|
91
|
-
* If you want to use it in older browsers e.g. IE, then you need to have IntersectionObserver polyfill.
|
|
92
94
|
*/
|
|
93
95
|
onRowInViewport?: (rowData: T) => void;
|
|
94
96
|
/**
|
|
@@ -137,6 +139,7 @@ export declare type TableProps<T extends Record<string, unknown> = Record<string
|
|
|
137
139
|
*/
|
|
138
140
|
rowProps?: (row: Row<T>) => React.ComponentPropsWithRef<'div'> & {
|
|
139
141
|
status?: 'positive' | 'warning' | 'negative';
|
|
142
|
+
isLoading?: boolean;
|
|
140
143
|
};
|
|
141
144
|
/**
|
|
142
145
|
* Modify the density of the table (adjusts the row height).
|
|
@@ -166,8 +169,6 @@ export declare type TableProps<T extends Record<string, unknown> = Record<string
|
|
|
166
169
|
/**
|
|
167
170
|
* Flag whether columns are resizable.
|
|
168
171
|
* In order to disable resizing for specific column, set `disableResizing: true` for that column.
|
|
169
|
-
*
|
|
170
|
-
* If you want to use it in older browsers e.g. IE, then you need to have `ResizeObserver` polyfill.
|
|
171
172
|
* @default false
|
|
172
173
|
*/
|
|
173
174
|
isResizable?: boolean;
|
package/esm/core/Table/Table.js
CHANGED
|
@@ -97,8 +97,7 @@ var flattenColumns = function (columns) {
|
|
|
97
97
|
* />
|
|
98
98
|
*/
|
|
99
99
|
export var Table = function (props) {
|
|
100
|
-
var _a;
|
|
101
|
-
var data = props.data, columns = props.columns, _b = props.isLoading, isLoading = _b === void 0 ? false : _b, emptyTableContent = props.emptyTableContent, className = props.className, style = props.style, id = props.id, _c = props.isSelectable, isSelectable = _c === void 0 ? false : _c, onSelect = props.onSelect, onRowClick = props.onRowClick, _d = props.selectionMode, selectionMode = _d === void 0 ? 'multi' : _d, _e = props.isSortable, isSortable = _e === void 0 ? false : _e, onSort = props.onSort, stateReducer = props.stateReducer, onBottomReached = props.onBottomReached, onRowInViewport = props.onRowInViewport, _f = props.intersectionMargin, intersectionMargin = _f === void 0 ? 300 : _f, subComponent = props.subComponent, onExpand = props.onExpand, onFilter = props.onFilter, globalFilterValue = props.globalFilterValue, emptyFilteredTableContent = props.emptyFilteredTableContent, filterFunctions = props.filterTypes, expanderCell = props.expanderCell, isRowDisabled = props.isRowDisabled, rowProps = props.rowProps, _g = props.density, density = _g === void 0 ? 'default' : _g, _h = props.selectSubRows, selectSubRows = _h === void 0 ? true : _h, getSubRows = props.getSubRows, _j = props.selectRowOnClick, selectRowOnClick = _j === void 0 ? true : _j, paginatorRenderer = props.paginatorRenderer, _k = props.pageSize, pageSize = _k === void 0 ? 25 : _k, _l = props.isResizable, isResizable = _l === void 0 ? false : _l, _m = props.columnResizeMode, columnResizeMode = _m === void 0 ? 'fit' : _m, _o = props.styleType, styleType = _o === void 0 ? 'default' : _o, _p = props.enableVirtualization, enableVirtualization = _p === void 0 ? false : _p, _q = props.enableColumnReordering, enableColumnReordering = _q === void 0 ? false : _q, rest = __rest(props, ["data", "columns", "isLoading", "emptyTableContent", "className", "style", "id", "isSelectable", "onSelect", "onRowClick", "selectionMode", "isSortable", "onSort", "stateReducer", "onBottomReached", "onRowInViewport", "intersectionMargin", "subComponent", "onExpand", "onFilter", "globalFilterValue", "emptyFilteredTableContent", "filterTypes", "expanderCell", "isRowDisabled", "rowProps", "density", "selectSubRows", "getSubRows", "selectRowOnClick", "paginatorRenderer", "pageSize", "isResizable", "columnResizeMode", "styleType", "enableVirtualization", "enableColumnReordering"]);
|
|
100
|
+
var data = props.data, columns = props.columns, _a = props.isLoading, isLoading = _a === void 0 ? false : _a, emptyTableContent = props.emptyTableContent, className = props.className, style = props.style, id = props.id, _b = props.isSelectable, isSelectable = _b === void 0 ? false : _b, onSelect = props.onSelect, onRowClick = props.onRowClick, _c = props.selectionMode, selectionMode = _c === void 0 ? 'multi' : _c, _d = props.isSortable, isSortable = _d === void 0 ? false : _d, onSort = props.onSort, stateReducer = props.stateReducer, onBottomReached = props.onBottomReached, onRowInViewport = props.onRowInViewport, _e = props.intersectionMargin, intersectionMargin = _e === void 0 ? 300 : _e, subComponent = props.subComponent, onExpand = props.onExpand, onFilter = props.onFilter, globalFilterValue = props.globalFilterValue, emptyFilteredTableContent = props.emptyFilteredTableContent, filterFunctions = props.filterTypes, expanderCell = props.expanderCell, isRowDisabled = props.isRowDisabled, rowProps = props.rowProps, _f = props.density, density = _f === void 0 ? 'default' : _f, _g = props.selectSubRows, selectSubRows = _g === void 0 ? true : _g, getSubRows = props.getSubRows, _h = props.selectRowOnClick, selectRowOnClick = _h === void 0 ? true : _h, paginatorRenderer = props.paginatorRenderer, _j = props.pageSize, pageSize = _j === void 0 ? 25 : _j, _k = props.isResizable, isResizable = _k === void 0 ? false : _k, _l = props.columnResizeMode, columnResizeMode = _l === void 0 ? 'fit' : _l, _m = props.styleType, styleType = _m === void 0 ? 'default' : _m, _o = props.enableVirtualization, enableVirtualization = _o === void 0 ? false : _o, _p = props.enableColumnReordering, enableColumnReordering = _p === void 0 ? false : _p, rest = __rest(props, ["data", "columns", "isLoading", "emptyTableContent", "className", "style", "id", "isSelectable", "onSelect", "onRowClick", "selectionMode", "isSortable", "onSort", "stateReducer", "onBottomReached", "onRowInViewport", "intersectionMargin", "subComponent", "onExpand", "onFilter", "globalFilterValue", "emptyFilteredTableContent", "filterTypes", "expanderCell", "isRowDisabled", "rowProps", "density", "selectSubRows", "getSubRows", "selectRowOnClick", "paginatorRenderer", "pageSize", "isResizable", "columnResizeMode", "styleType", "enableVirtualization", "enableColumnReordering"]);
|
|
102
101
|
useTheme();
|
|
103
102
|
var ownerDocument = React.useRef();
|
|
104
103
|
var defaultColumn = React.useMemo(function () { return ({
|
|
@@ -272,6 +271,7 @@ export var Table = function (props) {
|
|
|
272
271
|
isLoading: isLoading,
|
|
273
272
|
onPageChange: gotoPage,
|
|
274
273
|
onPageSizeChange: setPageSize,
|
|
274
|
+
totalSelectedRowsCount: selectionMode === 'single' ? 0 : instance.selectedFlatRows.length, // 0 when selectionMode = 'single' since totalSelectedRowCount is for multi-selection mode only
|
|
275
275
|
}); }, [
|
|
276
276
|
density,
|
|
277
277
|
gotoPage,
|
|
@@ -280,8 +280,10 @@ export var Table = function (props) {
|
|
|
280
280
|
setPageSize,
|
|
281
281
|
state.pageIndex,
|
|
282
282
|
state.pageSize,
|
|
283
|
+
instance.selectedFlatRows,
|
|
284
|
+
selectionMode,
|
|
283
285
|
]);
|
|
284
|
-
var
|
|
286
|
+
var _q = useScrollToRow(__assign(__assign({}, props), { page: page })), scrollToIndex = _q.scrollToIndex, tableRowRef = _q.tableRowRef;
|
|
285
287
|
var columnRefs = React.useRef({});
|
|
286
288
|
var previousTableWidth = React.useRef(0);
|
|
287
289
|
var onTableResize = React.useCallback(function (_a) {
|
|
@@ -294,7 +296,8 @@ export var Table = function (props) {
|
|
|
294
296
|
// Update column widths when table was resized
|
|
295
297
|
flatHeaders.forEach(function (header) {
|
|
296
298
|
if (columnRefs.current[header.id]) {
|
|
297
|
-
header.resizeWidth =
|
|
299
|
+
header.resizeWidth =
|
|
300
|
+
columnRefs.current[header.id].getBoundingClientRect().width;
|
|
298
301
|
}
|
|
299
302
|
});
|
|
300
303
|
// If no column was resized then leave table resize handling to the flexbox
|
|
@@ -310,7 +313,8 @@ export var Table = function (props) {
|
|
|
310
313
|
var newColumnWidths_1 = {};
|
|
311
314
|
flatHeaders.forEach(function (column) {
|
|
312
315
|
if (columnRefs.current[column.id]) {
|
|
313
|
-
newColumnWidths_1[column.id] =
|
|
316
|
+
newColumnWidths_1[column.id] =
|
|
317
|
+
columnRefs.current[column.id].getBoundingClientRect().width;
|
|
314
318
|
}
|
|
315
319
|
});
|
|
316
320
|
dispatch({ type: tableResizeEndAction, columnWidths: newColumnWidths_1 });
|
|
@@ -370,9 +374,9 @@ export var Table = function (props) {
|
|
|
370
374
|
resizeRef(element);
|
|
371
375
|
}
|
|
372
376
|
}, id: id }, getTableProps({
|
|
373
|
-
className: cx('iui-table',
|
|
377
|
+
className: cx('iui-table', className),
|
|
374
378
|
style: __assign({ minWidth: 0 }, style),
|
|
375
|
-
}), ariaDataAttributes),
|
|
379
|
+
}), { "data-iui-size": density === 'default' ? undefined : density }, ariaDataAttributes),
|
|
376
380
|
React.createElement("div", { className: 'iui-table-header-wrapper', ref: headerRef, onScroll: function () {
|
|
377
381
|
if (headerRef.current && bodyRef.current) {
|
|
378
382
|
bodyRef.current.scrollLeft = headerRef.current.scrollLeft;
|
|
@@ -381,19 +385,20 @@ export var Table = function (props) {
|
|
|
381
385
|
} },
|
|
382
386
|
React.createElement("div", { className: 'iui-table-header' }, headerGroups.slice(1).map(function (headerGroup) {
|
|
383
387
|
var headerGroupProps = headerGroup.getHeaderGroupProps({
|
|
384
|
-
className: 'iui-row',
|
|
388
|
+
className: 'iui-table-row',
|
|
385
389
|
});
|
|
386
390
|
return (React.createElement("div", __assign({}, headerGroupProps, { key: headerGroupProps.key }), headerGroup.headers.map(function (column, index) {
|
|
387
391
|
var _a = column.getSortByToggleProps(), onClick = _a.onClick, restSortProps = __rest(_a, ["onClick"]);
|
|
388
|
-
var columnProps = column.getHeaderProps(__assign(__assign({}, restSortProps), { className: cx('iui-cell', {
|
|
392
|
+
var columnProps = column.getHeaderProps(__assign(__assign({}, restSortProps), { className: cx('iui-table-cell', {
|
|
389
393
|
'iui-actionable': column.canSort,
|
|
390
394
|
'iui-sorted': column.isSorted,
|
|
391
|
-
'iui-cell-sticky': !!column.sticky,
|
|
395
|
+
'iui-table-cell-sticky': !!column.sticky,
|
|
392
396
|
}, column.columnClassName), style: __assign(__assign(__assign({}, getCellStyle(column, !!state.isTableResizing)), getStickyStyle(column, visibleColumns)), { flexWrap: 'unset' }) }));
|
|
393
397
|
return (React.createElement("div", __assign({}, columnProps, column.getDragAndDropProps(), { key: columnProps.key, title: undefined, ref: function (el) {
|
|
394
398
|
if (el) {
|
|
395
399
|
columnRefs.current[column.id] = el;
|
|
396
|
-
column.resizeWidth =
|
|
400
|
+
column.resizeWidth =
|
|
401
|
+
el.getBoundingClientRect().width;
|
|
397
402
|
}
|
|
398
403
|
}, onMouseDown: function () {
|
|
399
404
|
isHeaderDirectClick.current = true;
|
|
@@ -403,24 +408,28 @@ export var Table = function (props) {
|
|
|
403
408
|
onClick === null || onClick === void 0 ? void 0 : onClick(e);
|
|
404
409
|
isHeaderDirectClick.current = false;
|
|
405
410
|
}
|
|
411
|
+
}, tabIndex: showSortButton(column) ? 0 : undefined, onKeyDown: function (e) {
|
|
412
|
+
if (e.key == 'Enter' && showSortButton(column)) {
|
|
413
|
+
column.toggleSortBy();
|
|
414
|
+
}
|
|
406
415
|
} }),
|
|
407
416
|
column.render('Header'),
|
|
408
417
|
(showFilterButton(column) ||
|
|
409
418
|
showSortButton(column)) && (React.createElement("div", { className: 'iui-table-header-actions-container' },
|
|
410
419
|
showFilterButton(column) && (React.createElement(FilterToggle, { column: column })),
|
|
411
|
-
showSortButton(column) && (React.createElement("div", { className: 'iui-cell-end-icon' }, column.isSortedDesc ||
|
|
412
|
-
(!column.isSorted && column.sortDescFirst) ? (React.createElement(SvgSortDown, { className: 'iui-icon iui-sort', "aria-hidden": true })) : (React.createElement(SvgSortUp, { className: 'iui-icon iui-sort', "aria-hidden": true })))))),
|
|
420
|
+
showSortButton(column) && (React.createElement("div", { className: 'iui-table-cell-end-icon' }, column.isSortedDesc ||
|
|
421
|
+
(!column.isSorted && column.sortDescFirst) ? (React.createElement(SvgSortDown, { className: 'iui-icon iui-table-sort', "aria-hidden": true })) : (React.createElement(SvgSortUp, { className: 'iui-icon iui-table-sort', "aria-hidden": true })))))),
|
|
413
422
|
isResizable &&
|
|
414
423
|
column.isResizerVisible &&
|
|
415
424
|
(index !== headerGroup.headers.length - 1 ||
|
|
416
|
-
columnResizeMode === 'expand') && (React.createElement("div", __assign({}, column.getResizerProps(), { className: 'iui-resizer' }),
|
|
417
|
-
React.createElement("div", { className: 'iui-resizer-bar' }))),
|
|
425
|
+
columnResizeMode === 'expand') && (React.createElement("div", __assign({}, column.getResizerProps(), { className: 'iui-table-resizer' }),
|
|
426
|
+
React.createElement("div", { className: 'iui-table-resizer-bar' }))),
|
|
418
427
|
enableColumnReordering &&
|
|
419
|
-
!column.disableReordering && (React.createElement("div", { className: 'iui-reorder-bar' })),
|
|
428
|
+
!column.disableReordering && (React.createElement("div", { className: 'iui-table-reorder-bar' })),
|
|
420
429
|
column.sticky === 'left' &&
|
|
421
|
-
state.sticky.isScrolledToRight && (React.createElement("div", { className: 'iui-cell-shadow-right' })),
|
|
430
|
+
state.sticky.isScrolledToRight && (React.createElement("div", { className: 'iui-table-cell-shadow-right' })),
|
|
422
431
|
column.sticky === 'right' &&
|
|
423
|
-
state.sticky.isScrolledToLeft && (React.createElement("div", { className: 'iui-cell-shadow-left' }))));
|
|
432
|
+
state.sticky.isScrolledToLeft && (React.createElement("div", { className: 'iui-table-cell-shadow-left' }))));
|
|
424
433
|
})));
|
|
425
434
|
}))),
|
|
426
435
|
React.createElement("div", __assign({}, getTableBodyProps({
|
|
@@ -433,12 +442,12 @@ export var Table = function (props) {
|
|
|
433
442
|
headerRef.current.scrollLeft = bodyRef.current.scrollLeft;
|
|
434
443
|
updateStickyState();
|
|
435
444
|
}
|
|
436
|
-
}, tabIndex: -1 }),
|
|
445
|
+
}, tabIndex: -1, "aria-multiselectable": (isSelectable && selectionMode === 'multi') || undefined }),
|
|
437
446
|
data.length !== 0 && (React.createElement(React.Fragment, null, enableVirtualization ? (React.createElement(VirtualScroll, { itemsLength: page.length, itemRenderer: virtualizedItemRenderer, scrollToIndex: scrollToIndex })) : (page.map(function (_, index) { return getPreparedRow(index); })))),
|
|
438
447
|
isLoading && data.length === 0 && (React.createElement("div", { className: 'iui-table-empty' },
|
|
439
448
|
React.createElement(ProgressRadial, { indeterminate: true }))),
|
|
440
|
-
isLoading && data.length !== 0 && (React.createElement("div", { className: 'iui-row' },
|
|
441
|
-
React.createElement("div", { className: 'iui-cell', style: { justifyContent: 'center' } },
|
|
449
|
+
isLoading && data.length !== 0 && (React.createElement("div", { className: 'iui-table-row' },
|
|
450
|
+
React.createElement("div", { className: 'iui-table-cell', style: { justifyContent: 'center' } },
|
|
442
451
|
React.createElement(ProgressRadial, { indeterminate: true, size: 'small', style: { float: 'none', marginLeft: 0 } })))),
|
|
443
452
|
!isLoading && data.length === 0 && !areFiltersSet && (React.createElement("div", { className: 'iui-table-empty' },
|
|
444
453
|
React.createElement("div", null, emptyTableContent))),
|
|
@@ -34,8 +34,8 @@ export var TableCell = function (props) {
|
|
|
34
34
|
};
|
|
35
35
|
};
|
|
36
36
|
var cellElementProps = cell.getCellProps({
|
|
37
|
-
className: cx('iui-cell', cell.column.cellClassName, {
|
|
38
|
-
'iui-cell-sticky': !!cell.column.sticky,
|
|
37
|
+
className: cx('iui-table-cell', cell.column.cellClassName, {
|
|
38
|
+
'iui-table-cell-sticky': !!cell.column.sticky,
|
|
39
39
|
}),
|
|
40
40
|
style: __assign(__assign(__assign({}, getCellStyle(cell.column, !!tableInstance.state.isTableResizing)), getSubRowStyle()), getStickyStyle(cell.column, tableInstance.visibleColumns)),
|
|
41
41
|
});
|
|
@@ -49,9 +49,9 @@ export var TableCell = function (props) {
|
|
|
49
49
|
children: (React.createElement(React.Fragment, null,
|
|
50
50
|
cellContent,
|
|
51
51
|
cell.column.sticky === 'left' &&
|
|
52
|
-
tableInstance.state.sticky.isScrolledToRight && (React.createElement("div", { className: 'iui-cell-shadow-right' })),
|
|
52
|
+
tableInstance.state.sticky.isScrolledToRight && (React.createElement("div", { className: 'iui-table-cell-shadow-right' })),
|
|
53
53
|
cell.column.sticky === 'right' &&
|
|
54
|
-
tableInstance.state.sticky.isScrolledToLeft && (React.createElement("div", { className: 'iui-cell-shadow-left' })))),
|
|
54
|
+
tableInstance.state.sticky.isScrolledToLeft && (React.createElement("div", { className: 'iui-table-cell-shadow-left' })))),
|
|
55
55
|
};
|
|
56
56
|
return (React.createElement(React.Fragment, null, cell.column.cellRenderer ? (cell.column.cellRenderer(__assign(__assign({}, cellRendererProps), { isDisabled: function () { return isDisabled; } }))) : (React.createElement(DefaultCell, __assign({}, cellRendererProps, { isDisabled: function () { return isDisabled; } })))));
|
|
57
57
|
};
|