@itwin/itwinui-react 1.39.0 → 1.40.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/CHANGELOG.md +12 -0
- package/cjs/core/ComboBox/ComboBox.d.ts +10 -1
- package/cjs/core/ComboBox/ComboBox.js +31 -14
- package/cjs/core/ComboBox/ComboBoxInput.js +1 -0
- package/cjs/core/ComboBox/helpers.js +1 -1
- package/cjs/core/Menu/MenuItemSkeleton.d.ts +32 -0
- package/cjs/core/Menu/MenuItemSkeleton.js +53 -0
- package/cjs/core/Menu/index.d.ts +2 -0
- package/cjs/core/Menu/index.js +3 -1
- package/cjs/core/Table/Table.js +39 -6
- package/cjs/core/Table/TableCell.js +10 -3
- package/cjs/core/Table/TableRowMemoized.js +5 -1
- package/cjs/core/Table/actionHandlers/resizeHandler.d.ts +8 -0
- package/cjs/core/Table/actionHandlers/selectHandler.d.ts +4 -0
- package/cjs/core/Table/columns/selectionColumn.js +4 -2
- package/cjs/core/Table/hooks/index.d.ts +1 -0
- package/cjs/core/Table/hooks/index.js +3 -1
- package/cjs/core/Table/hooks/useStickyColumns.d.ts +2 -0
- package/cjs/core/Table/hooks/useStickyColumns.js +84 -0
- package/cjs/core/Table/utils.d.ts +1 -0
- package/cjs/core/Table/utils.js +36 -1
- package/cjs/core/index.d.ts +2 -2
- package/cjs/core/index.js +4 -3
- package/cjs/core/utils/components/VisuallyHidden.d.ts +9 -0
- package/cjs/core/utils/components/VisuallyHidden.js +44 -0
- package/cjs/core/utils/components/index.d.ts +1 -0
- package/cjs/core/utils/components/index.js +1 -0
- package/cjs/types/react-table-config.d.ts +9 -0
- package/esm/core/ComboBox/ComboBox.d.ts +10 -1
- package/esm/core/ComboBox/ComboBox.js +31 -14
- package/esm/core/ComboBox/ComboBoxInput.js +1 -0
- package/esm/core/ComboBox/helpers.js +1 -1
- package/esm/core/Menu/MenuItemSkeleton.d.ts +32 -0
- package/esm/core/Menu/MenuItemSkeleton.js +46 -0
- package/esm/core/Menu/index.d.ts +2 -0
- package/esm/core/Menu/index.js +1 -0
- package/esm/core/Table/Table.js +41 -8
- package/esm/core/Table/TableCell.js +11 -4
- package/esm/core/Table/TableRowMemoized.js +5 -1
- package/esm/core/Table/actionHandlers/resizeHandler.d.ts +8 -0
- package/esm/core/Table/actionHandlers/selectHandler.d.ts +4 -0
- package/esm/core/Table/columns/selectionColumn.js +4 -2
- package/esm/core/Table/hooks/index.d.ts +1 -0
- package/esm/core/Table/hooks/index.js +1 -0
- package/esm/core/Table/hooks/useStickyColumns.d.ts +2 -0
- package/esm/core/Table/hooks/useStickyColumns.js +80 -0
- package/esm/core/Table/utils.d.ts +1 -0
- package/esm/core/Table/utils.js +34 -0
- package/esm/core/index.d.ts +2 -2
- package/esm/core/index.js +1 -1
- package/esm/core/utils/components/VisuallyHidden.d.ts +9 -0
- package/esm/core/utils/components/VisuallyHidden.js +38 -0
- package/esm/core/utils/components/index.d.ts +1 -0
- package/esm/core/utils/components/index.js +1 -0
- package/esm/types/react-table-config.d.ts +9 -0
- package/package.json +2 -2
package/cjs/core/index.d.ts
CHANGED
|
@@ -48,8 +48,8 @@ export { LabeledSelect } from './LabeledSelect';
|
|
|
48
48
|
export type { LabeledSelectProps } from './LabeledSelect';
|
|
49
49
|
export { LabeledTextarea } from './LabeledTextarea';
|
|
50
50
|
export type { LabeledTextareaProps } from './LabeledTextarea';
|
|
51
|
-
export { Menu, MenuItem, MenuDivider, MenuExtraContent } from './Menu';
|
|
52
|
-
export type { MenuProps, MenuItemProps, MenuDividerProps, MenuExtraContentProps, } from './Menu';
|
|
51
|
+
export { Menu, MenuItem, MenuDivider, MenuExtraContent, MenuItemSkeleton, } from './Menu';
|
|
52
|
+
export type { MenuProps, MenuItemProps, MenuDividerProps, MenuExtraContentProps, MenuItemSkeletonProps, } from './Menu';
|
|
53
53
|
export { Modal, ModalButtonBar, ModalContent } from './Modal';
|
|
54
54
|
export type { ModalProps, ModalButtonBarProps, ModalContentProps, } from './Modal';
|
|
55
55
|
export { ProgressLinear, ProgressRadial } from './ProgressIndicators';
|
package/cjs/core/index.js
CHANGED
|
@@ -3,9 +3,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
7
|
-
exports.
|
|
8
|
-
exports.MiddleTextTruncation = exports.ColorValue = exports.useTheme = exports.getUserColor = exports.Wizard = exports.UserIconGroup = void 0;
|
|
6
|
+
exports.MenuItemSkeleton = exports.MenuExtraContent = exports.MenuDivider = exports.MenuItem = exports.Menu = exports.LabeledTextarea = exports.LabeledSelect = exports.InputGroup = exports.LabeledInput = exports.Label = exports.Input = exports.InformationPanelContent = exports.InformationPanelBody = exports.InformationPanelHeader = exports.InformationPanelWrapper = exports.InformationPanel = exports.HorizontalTab = exports.HorizontalTabs = exports.Tab = exports.VerticalTabs = exports.HeaderLogo = exports.HeaderButton = exports.HeaderBreadcrumbs = exports.Header = exports.Footer = exports.FileUploadTemplate = exports.FileUpload = exports.Fieldset = exports.ExpandableBlock = exports.ErrorPage = exports.DropdownMenu = exports.generateLocalizedStrings = exports.DatePicker = exports.ComboBox = exports.ColorPalette = exports.ColorInputPanel = exports.ColorBuilder = exports.ColorSwatch = exports.ColorPicker = exports.Checkbox = exports.Carousel = exports.ButtonGroup = exports.SplitButton = exports.IdeasButton = exports.IconButton = exports.DropdownButton = exports.Button = exports.Breadcrumbs = exports.Badge = exports.Alert = void 0;
|
|
7
|
+
exports.Text = exports.KbdKeys = exports.Kbd = exports.Code = exports.Blockquote = exports.Title = exports.Subheading = exports.Small = exports.Leading = exports.Headline = exports.Body = exports.Anchor = exports.TreeNodeExpander = exports.TreeNode = exports.Tree = exports.Tooltip = exports.ToggleSwitch = exports.ThemeProvider = exports.toaster = exports.TimePicker = exports.Tile = exports.Textarea = exports.TagContainer = exports.Tag = exports.SelectionColumn = exports.ExpanderColumn = exports.ActionColumn = exports.TablePaginator = exports.EditableCell = exports.DefaultCell = exports.FilterButtonBar = exports.tableFilters = exports.Table = exports.Surface = exports.StatusMessage = exports.Slider = exports.SkipToContentLink = exports.SidenavSubmenuHeader = exports.SidenavSubmenu = exports.SidenavButton = exports.SideNavigation = exports.Select = exports.RadioTileGroup = exports.RadioTile = exports.Radio = exports.ProgressRadial = exports.ProgressLinear = exports.ModalContent = exports.ModalButtonBar = exports.Modal = void 0;
|
|
8
|
+
exports.MiddleTextTruncation = exports.ColorValue = exports.useTheme = exports.getUserColor = exports.Wizard = exports.UserIconGroup = exports.UserIcon = void 0;
|
|
9
9
|
/*---------------------------------------------------------------------------------------------
|
|
10
10
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
11
11
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
@@ -85,6 +85,7 @@ Object.defineProperty(exports, "Menu", { enumerable: true, get: function () { re
|
|
|
85
85
|
Object.defineProperty(exports, "MenuItem", { enumerable: true, get: function () { return Menu_1.MenuItem; } });
|
|
86
86
|
Object.defineProperty(exports, "MenuDivider", { enumerable: true, get: function () { return Menu_1.MenuDivider; } });
|
|
87
87
|
Object.defineProperty(exports, "MenuExtraContent", { enumerable: true, get: function () { return Menu_1.MenuExtraContent; } });
|
|
88
|
+
Object.defineProperty(exports, "MenuItemSkeleton", { enumerable: true, get: function () { return Menu_1.MenuItemSkeleton; } });
|
|
88
89
|
var Modal_1 = require("./Modal");
|
|
89
90
|
Object.defineProperty(exports, "Modal", { enumerable: true, get: function () { return Modal_1.Modal; } });
|
|
90
91
|
Object.defineProperty(exports, "ModalButtonBar", { enumerable: true, get: function () { return Modal_1.ModalButtonBar; } });
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export declare type VisuallyHiddenProps = React.ComponentPropsWithRef<'div'>;
|
|
3
|
+
/**
|
|
4
|
+
* Hides content visually but is still accessible to screen readers.
|
|
5
|
+
*/
|
|
6
|
+
export declare const VisuallyHidden: React.ForwardRefExoticComponent<Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
|
|
7
|
+
ref?: ((instance: HTMLDivElement | null) => void) | React.RefObject<HTMLDivElement> | null | undefined;
|
|
8
|
+
}, "key" | keyof React.HTMLAttributes<HTMLDivElement>> & React.RefAttributes<HTMLDivElement>>;
|
|
9
|
+
export default VisuallyHidden;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
14
|
+
var t = {};
|
|
15
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
16
|
+
t[p] = s[p];
|
|
17
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
18
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
19
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
20
|
+
t[p[i]] = s[p[i]];
|
|
21
|
+
}
|
|
22
|
+
return t;
|
|
23
|
+
};
|
|
24
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
25
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
26
|
+
};
|
|
27
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28
|
+
exports.VisuallyHidden = void 0;
|
|
29
|
+
/*---------------------------------------------------------------------------------------------
|
|
30
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
31
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
32
|
+
*--------------------------------------------------------------------------------------------*/
|
|
33
|
+
var react_1 = __importDefault(require("react"));
|
|
34
|
+
var classnames_1 = __importDefault(require("classnames"));
|
|
35
|
+
var hooks_1 = require("../hooks");
|
|
36
|
+
/**
|
|
37
|
+
* Hides content visually but is still accessible to screen readers.
|
|
38
|
+
*/
|
|
39
|
+
exports.VisuallyHidden = react_1.default.forwardRef(function (props, ref) {
|
|
40
|
+
var className = props.className, rest = __rest(props, ["className"]);
|
|
41
|
+
(0, hooks_1.useTheme)();
|
|
42
|
+
return (react_1.default.createElement("div", __assign({ className: (0, classnames_1.default)('iui-visually-hidden', className), ref: ref }, rest)));
|
|
43
|
+
});
|
|
44
|
+
exports.default = exports.VisuallyHidden;
|
|
@@ -46,6 +46,10 @@ declare module 'react-table' {
|
|
|
46
46
|
};
|
|
47
47
|
isTableResizing?: boolean;
|
|
48
48
|
columnReorderStartIndex: number;
|
|
49
|
+
sticky: {
|
|
50
|
+
isScrolledToRight?: boolean;
|
|
51
|
+
isScrolledToLeft?: boolean;
|
|
52
|
+
};
|
|
49
53
|
}
|
|
50
54
|
interface ColumnInterface<D extends object = {}> extends UseSortByColumnOptions<D>, UseFiltersColumnOptions<D>, UseResizeColumnsColumnOptions<D> {
|
|
51
55
|
/**
|
|
@@ -91,12 +95,17 @@ declare module 'react-table' {
|
|
|
91
95
|
* @default false
|
|
92
96
|
*/
|
|
93
97
|
disableToggleVisibility?: boolean;
|
|
98
|
+
/**
|
|
99
|
+
* Side on which column should be sticked to.
|
|
100
|
+
*/
|
|
101
|
+
sticky?: 'left' | 'right';
|
|
94
102
|
}
|
|
95
103
|
interface ColumnInstance<D extends object = {}> extends UseFiltersColumnProps<D>, UseGroupByColumnProps<D>, UseResizeColumnsColumnProps<D>, UseSortByColumnProps<D> {
|
|
96
104
|
originalWidth: number;
|
|
97
105
|
resizeWidth?: number;
|
|
98
106
|
isResizerVisible?: boolean;
|
|
99
107
|
getDragAndDropProps: () => TableKeyedProps;
|
|
108
|
+
originalSticky?: 'left' | 'right' | 'none';
|
|
100
109
|
}
|
|
101
110
|
interface Cell<D extends object = {}> extends UseGroupByCellProps<D>, UseRowStateCellProps<D> {
|
|
102
111
|
}
|
|
@@ -35,9 +35,10 @@ export declare type ComboBoxProps<T> = {
|
|
|
35
35
|
dropdownMenuProps?: PopoverProps;
|
|
36
36
|
/**
|
|
37
37
|
* Message shown when no options are available.
|
|
38
|
+
* If `JSX.Element` is provided, it will be rendered as is and won't be wrapped with `MenuExtraContent`.
|
|
38
39
|
* @default 'No options found'
|
|
39
40
|
*/
|
|
40
|
-
emptyStateMessage?:
|
|
41
|
+
emptyStateMessage?: React.ReactNode;
|
|
41
42
|
/**
|
|
42
43
|
* A custom item renderer can be specified to control the rendering.
|
|
43
44
|
*
|
|
@@ -58,6 +59,14 @@ export declare type ComboBoxProps<T> = {
|
|
|
58
59
|
* @beta
|
|
59
60
|
*/
|
|
60
61
|
enableVirtualization?: boolean;
|
|
62
|
+
/**
|
|
63
|
+
* Callback fired when dropdown menu is opened.
|
|
64
|
+
*/
|
|
65
|
+
onShow?: () => void;
|
|
66
|
+
/**
|
|
67
|
+
* Callback fired when dropdown menu is closed.
|
|
68
|
+
*/
|
|
69
|
+
onHide?: () => void;
|
|
61
70
|
} & Pick<InputContainerProps, 'status'> & Omit<CommonProps, 'title'>;
|
|
62
71
|
/**
|
|
63
72
|
* ComboBox component that allows typing a value to filter the options in dropdown list.
|
|
@@ -56,8 +56,8 @@ var getOptionId = function (option, idPrefix) {
|
|
|
56
56
|
* />
|
|
57
57
|
*/
|
|
58
58
|
export var ComboBox = function (props) {
|
|
59
|
-
var _a;
|
|
60
|
-
var options = props.options, valueProp = props.value, onChange = props.onChange, filterFunction = props.filterFunction, inputProps = props.inputProps, dropdownMenuProps = props.dropdownMenuProps,
|
|
59
|
+
var _a, _b;
|
|
60
|
+
var options = props.options, valueProp = props.value, onChange = props.onChange, filterFunction = props.filterFunction, inputProps = props.inputProps, dropdownMenuProps = props.dropdownMenuProps, _c = props.emptyStateMessage, emptyStateMessage = _c === void 0 ? 'No options found' : _c, itemRenderer = props.itemRenderer, _d = props.enableVirtualization, enableVirtualization = _d === void 0 ? false : _d, onShow = props.onShow, onHide = props.onHide, rest = __rest(props, ["options", "value", "onChange", "filterFunction", "inputProps", "dropdownMenuProps", "emptyStateMessage", "itemRenderer", "enableVirtualization", "onShow", "onHide"]);
|
|
61
61
|
// Generate a stateful random id if not specified
|
|
62
62
|
var id = React.useState(function () {
|
|
63
63
|
var _a, _b;
|
|
@@ -89,12 +89,12 @@ export var ComboBox = function (props) {
|
|
|
89
89
|
});
|
|
90
90
|
}
|
|
91
91
|
// Reducer where all the component-wide state is stored
|
|
92
|
-
var
|
|
92
|
+
var _e = React.useReducer(comboBoxReducer, {
|
|
93
93
|
isOpen: false,
|
|
94
94
|
selectedIndex: -1,
|
|
95
95
|
focusedIndex: -1,
|
|
96
|
-
}),
|
|
97
|
-
React.
|
|
96
|
+
}), _f = _e[0], isOpen = _f.isOpen, selectedIndex = _f.selectedIndex, focusedIndex = _f.focusedIndex, dispatch = _e[1];
|
|
97
|
+
React.useLayoutEffect(function () {
|
|
98
98
|
var _a, _b;
|
|
99
99
|
// When the dropdown opens
|
|
100
100
|
if (isOpen) {
|
|
@@ -113,20 +113,30 @@ export var ComboBox = function (props) {
|
|
|
113
113
|
}
|
|
114
114
|
}, [isOpen, options, selectedIndex]);
|
|
115
115
|
// Set min-width of menu to be same as input
|
|
116
|
-
var
|
|
116
|
+
var _g = React.useState(0), minWidth = _g[0], setMinWidth = _g[1];
|
|
117
117
|
React.useEffect(function () {
|
|
118
118
|
if (inputRef.current) {
|
|
119
119
|
setMinWidth(inputRef.current.offsetWidth);
|
|
120
120
|
}
|
|
121
121
|
}, [isOpen]);
|
|
122
|
-
//
|
|
123
|
-
var
|
|
122
|
+
// Update filtered options to the latest value options according to input value
|
|
123
|
+
var _h = React.useState(options), filteredOptions = _h[0], setFilteredOptions = _h[1];
|
|
124
124
|
React.useEffect(function () {
|
|
125
|
-
|
|
125
|
+
var _a;
|
|
126
|
+
if (inputValue) {
|
|
127
|
+
setFilteredOptions((_a = filterFunction === null || filterFunction === void 0 ? void 0 : filterFunction(options, inputValue)) !== null && _a !== void 0 ? _a : options.filter(function (option) {
|
|
128
|
+
return option.label.toLowerCase().includes(inputValue.toLowerCase());
|
|
129
|
+
}));
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
setFilteredOptions(options);
|
|
133
|
+
}
|
|
126
134
|
dispatch(['focus']);
|
|
135
|
+
// Only need to call on options update
|
|
136
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
127
137
|
}, [options]);
|
|
128
138
|
// Filter options based on input value
|
|
129
|
-
var
|
|
139
|
+
var _j = React.useState((_b = (_a = inputProps === null || inputProps === void 0 ? void 0 : inputProps.value) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : ''), inputValue = _j[0], setInputValue = _j[1];
|
|
130
140
|
var handleOnInput = React.useCallback(function (event) {
|
|
131
141
|
var _a, _b;
|
|
132
142
|
var value = event.currentTarget.value;
|
|
@@ -173,6 +183,7 @@ export var ComboBox = function (props) {
|
|
|
173
183
|
onClick: function (e) {
|
|
174
184
|
var _a, _b;
|
|
175
185
|
dispatch(['select', __originalIndex]);
|
|
186
|
+
dispatch(['close']);
|
|
176
187
|
(_b = (_a = customItem.props).onClick) === null || _b === void 0 ? void 0 : _b.call(_a, e);
|
|
177
188
|
},
|
|
178
189
|
// ComboBox.MenuItem handles scrollIntoView, data-iui-index and iui-focused through context
|
|
@@ -187,8 +198,13 @@ export var ComboBox = function (props) {
|
|
|
187
198
|
el === null || el === void 0 ? void 0 : el.scrollIntoView({ block: 'nearest' });
|
|
188
199
|
}
|
|
189
200
|
}),
|
|
190
|
-
})) : (React.createElement(ComboBoxMenuItem, __assign({ key: optionId, id: optionId }, option, { isSelected: selectedIndex === __originalIndex, onClick: function () {
|
|
201
|
+
})) : (React.createElement(ComboBoxMenuItem, __assign({ key: optionId, id: optionId }, option, { isSelected: selectedIndex === __originalIndex, onClick: function () {
|
|
202
|
+
dispatch(['select', __originalIndex]);
|
|
203
|
+
dispatch(['close']);
|
|
204
|
+
}, index: __originalIndex, "data-iui-filtered-index": filteredIndex }), option.label));
|
|
191
205
|
}, [enableVirtualization, focusedIndex, id, itemRenderer, selectedIndex]);
|
|
206
|
+
var emptyContent = React.useMemo(function () { return (React.createElement(React.Fragment, null, React.isValidElement(emptyStateMessage) ? (emptyStateMessage) : (React.createElement(MenuExtraContent, null,
|
|
207
|
+
React.createElement(Text, { isMuted: true }, emptyStateMessage))))); }, [emptyStateMessage]);
|
|
192
208
|
return (React.createElement(ComboBoxRefsContext.Provider, { value: { inputRef: inputRef, menuRef: menuRef, toggleButtonRef: toggleButtonRef, optionsExtraInfoRef: optionsExtraInfoRef } },
|
|
193
209
|
React.createElement(ComboBoxActionContext.Provider, { value: dispatch },
|
|
194
210
|
React.createElement(ComboBoxStateContext.Provider, { value: {
|
|
@@ -203,8 +219,9 @@ export var ComboBox = function (props) {
|
|
|
203
219
|
React.createElement(ComboBoxInputContainer, __assign({ disabled: inputProps === null || inputProps === void 0 ? void 0 : inputProps.disabled }, rest),
|
|
204
220
|
React.createElement(ComboBoxInput, __assign({ value: inputValue }, inputProps, { onChange: handleOnInput })),
|
|
205
221
|
React.createElement(ComboBoxEndIcon, { disabled: inputProps === null || inputProps === void 0 ? void 0 : inputProps.disabled, isOpen: isOpen })),
|
|
206
|
-
React.createElement(ComboBoxDropdown, __assign({}, dropdownMenuProps),
|
|
207
|
-
React.createElement(ComboBoxMenu, null, filteredOptions.length > 0 && !enableVirtualization
|
|
208
|
-
|
|
222
|
+
React.createElement(ComboBoxDropdown, __assign({}, dropdownMenuProps, { onShow: onShow, onHide: onHide }),
|
|
223
|
+
React.createElement(ComboBoxMenu, null, filteredOptions.length > 0 && !enableVirtualization
|
|
224
|
+
? filteredOptions.map(getMenuItem)
|
|
225
|
+
: emptyContent))))));
|
|
209
226
|
};
|
|
210
227
|
export default ComboBox;
|
|
@@ -25,7 +25,7 @@ export var comboBoxReducer = function (state, _a) {
|
|
|
25
25
|
return __assign(__assign({}, state), { isOpen: false });
|
|
26
26
|
}
|
|
27
27
|
case 'select': {
|
|
28
|
-
return __assign(__assign({}, state), {
|
|
28
|
+
return __assign(__assign({}, state), { selectedIndex: value !== null && value !== void 0 ? value : state.selectedIndex, focusedIndex: value !== null && value !== void 0 ? value : state.focusedIndex });
|
|
29
29
|
}
|
|
30
30
|
case 'focus': {
|
|
31
31
|
return __assign(__assign({}, state), { focusedIndex: (_b = value !== null && value !== void 0 ? value : state.selectedIndex) !== null && _b !== void 0 ? _b : -1 });
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { CommonProps } from '../utils';
|
|
3
|
+
import '@itwin/itwinui-css/css/menu.css';
|
|
4
|
+
export declare type MenuItemSkeletonProps = {
|
|
5
|
+
/**
|
|
6
|
+
* Flag whether to show skeleton for sub-label.
|
|
7
|
+
*/
|
|
8
|
+
hasSublabel?: boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Flag whether to show skeleton for icon.
|
|
11
|
+
*/
|
|
12
|
+
hasIcon?: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Skeleton content width.
|
|
15
|
+
*/
|
|
16
|
+
contentWidth?: string;
|
|
17
|
+
/**
|
|
18
|
+
* Translated strings used for accessibility.
|
|
19
|
+
*/
|
|
20
|
+
translatedStrings?: {
|
|
21
|
+
/**
|
|
22
|
+
* Label for loading state. Defaults to "Loading…".
|
|
23
|
+
* It is only visible for the screen readers.
|
|
24
|
+
*/
|
|
25
|
+
loading: string;
|
|
26
|
+
};
|
|
27
|
+
} & CommonProps;
|
|
28
|
+
/**
|
|
29
|
+
* Menu item that uses skeletons to indicate loading state.
|
|
30
|
+
*/
|
|
31
|
+
export declare const MenuItemSkeleton: (props: MenuItemSkeletonProps) => JSX.Element;
|
|
32
|
+
export default MenuItemSkeleton;
|
|
@@ -0,0 +1,46 @@
|
|
|
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 cx from 'classnames';
|
|
29
|
+
import { useTheme, VisuallyHidden } from '../utils';
|
|
30
|
+
import '@itwin/itwinui-css/css/menu.css';
|
|
31
|
+
/**
|
|
32
|
+
* Menu item that uses skeletons to indicate loading state.
|
|
33
|
+
*/
|
|
34
|
+
export var MenuItemSkeleton = function (props) {
|
|
35
|
+
var hasSublabel = props.hasSublabel, hasIcon = props.hasIcon, contentWidth = props.contentWidth, _a = props.translatedStrings, translatedStrings = _a === void 0 ? { loading: 'Loading…' } : _a, className = props.className, style = props.style, rest = __rest(props, ["hasSublabel", "hasIcon", "contentWidth", "translatedStrings", "className", "style"]);
|
|
36
|
+
useTheme();
|
|
37
|
+
return (React.createElement("li", __assign({ className: cx('iui-menu-item', 'iui-menu-item-skeleton', { 'iui-large': hasSublabel }, className), style: __assign({
|
|
38
|
+
'--iui-menu-item-content-skeleton-max-width': contentWidth,
|
|
39
|
+
}, style) }, rest),
|
|
40
|
+
hasIcon && React.createElement("div", { className: 'iui-icon iui-skeleton', "aria-hidden": true }),
|
|
41
|
+
React.createElement("span", { className: 'iui-content' },
|
|
42
|
+
React.createElement("div", { className: 'iui-menu-label iui-skeleton', "aria-hidden": true }),
|
|
43
|
+
hasSublabel && (React.createElement("div", { className: 'iui-menu-description iui-skeleton', "aria-hidden": true })),
|
|
44
|
+
React.createElement(VisuallyHidden, null, translatedStrings.loading))));
|
|
45
|
+
};
|
|
46
|
+
export default MenuItemSkeleton;
|
package/esm/core/Menu/index.d.ts
CHANGED
|
@@ -6,3 +6,5 @@ export { MenuDivider } from './MenuDivider';
|
|
|
6
6
|
export type { MenuDividerProps } from './MenuDivider';
|
|
7
7
|
export { MenuExtraContent } from './MenuExtraContent';
|
|
8
8
|
export type { MenuExtraContentProps } from './MenuExtraContent';
|
|
9
|
+
export { MenuItemSkeleton } from './MenuItemSkeleton';
|
|
10
|
+
export type { MenuItemSkeletonProps } from './MenuItemSkeleton';
|
package/esm/core/Menu/index.js
CHANGED
package/esm/core/Table/Table.js
CHANGED
|
@@ -32,11 +32,11 @@ import { useTheme, useResizeObserver } from '../utils';
|
|
|
32
32
|
import '@itwin/itwinui-css/css/table.css';
|
|
33
33
|
import SvgSortDown from '@itwin/itwinui-icons-react/cjs/icons/SortDown';
|
|
34
34
|
import SvgSortUp from '@itwin/itwinui-icons-react/cjs/icons/SortUp';
|
|
35
|
-
import { getCellStyle } from './utils';
|
|
35
|
+
import { getCellStyle, getStickyStyle } from './utils';
|
|
36
36
|
import { TableRowMemoized } from './TableRowMemoized';
|
|
37
37
|
import { FilterToggle } from './filters';
|
|
38
38
|
import { customFilterFunctions } from './filters/customFilterFunctions';
|
|
39
|
-
import { useExpanderCell, useSelectionCell, useSubRowFiltering, useSubRowSelection, useResizeColumns, useColumnDragAndDrop, } from './hooks';
|
|
39
|
+
import { useExpanderCell, useSelectionCell, useSubRowFiltering, useSubRowSelection, useResizeColumns, useColumnDragAndDrop, useStickyColumns, } from './hooks';
|
|
40
40
|
import { onExpandHandler, onFilterHandler, onSelectHandler, onSingleSelectHandler, onTableResizeEnd, onTableResizeStart, } from './actionHandlers';
|
|
41
41
|
import VirtualScroll from '../utils/components/VirtualScroll';
|
|
42
42
|
import { SELECTION_CELL_ID } from './columns';
|
|
@@ -171,8 +171,8 @@ export var Table = function (props) {
|
|
|
171
171
|
return getSubRows ? getSubRows(item, index) : item.subRows;
|
|
172
172
|
});
|
|
173
173
|
}, [data, getSubRows]);
|
|
174
|
-
var instance = useTable(__assign(__assign({ manualPagination: !paginatorRenderer, paginateExpandedRows: false }, props), { columns: columns, defaultColumn: defaultColumn, disableSortBy: !isSortable, stateReducer: tableStateReducer, filterTypes: filterTypes, selectSubRows: selectSubRows, data: data, getSubRows: getSubRows, initialState: __assign({ pageSize: pageSize }, props.initialState) }), useFlexLayout, useResizeColumns(ownerDocument), useFilters, useSubRowFiltering(hasAnySubRows), useSortBy, useExpanded, usePagination, useRowSelect, useSubRowSelection, useExpanderCell(subComponent, expanderCell, isRowDisabled), useSelectionCell(isSelectable, selectionMode, isRowDisabled), useColumnOrder, useColumnDragAndDrop(enableColumnReordering));
|
|
175
|
-
var getTableProps = instance.getTableProps, rows = instance.rows, headerGroups = instance.headerGroups, getTableBodyProps = instance.getTableBodyProps, prepareRow = instance.prepareRow, state = instance.state, allColumns = instance.allColumns, filteredFlatRows = instance.filteredFlatRows, dispatch = instance.dispatch, page = instance.page, gotoPage = instance.gotoPage, setPageSize = instance.setPageSize, flatHeaders = instance.flatHeaders;
|
|
174
|
+
var instance = useTable(__assign(__assign({ manualPagination: !paginatorRenderer, paginateExpandedRows: false }, props), { columns: columns, defaultColumn: defaultColumn, disableSortBy: !isSortable, stateReducer: tableStateReducer, filterTypes: filterTypes, selectSubRows: selectSubRows, data: data, getSubRows: getSubRows, initialState: __assign({ pageSize: pageSize }, props.initialState) }), useFlexLayout, useResizeColumns(ownerDocument), useFilters, useSubRowFiltering(hasAnySubRows), useSortBy, useExpanded, usePagination, useRowSelect, useSubRowSelection, useExpanderCell(subComponent, expanderCell, isRowDisabled), useSelectionCell(isSelectable, selectionMode, isRowDisabled), useColumnOrder, useColumnDragAndDrop(enableColumnReordering), useStickyColumns);
|
|
175
|
+
var getTableProps = instance.getTableProps, rows = instance.rows, headerGroups = instance.headerGroups, getTableBodyProps = instance.getTableBodyProps, prepareRow = instance.prepareRow, state = instance.state, allColumns = instance.allColumns, filteredFlatRows = instance.filteredFlatRows, dispatch = instance.dispatch, page = instance.page, gotoPage = instance.gotoPage, setPageSize = instance.setPageSize, flatHeaders = instance.flatHeaders, visibleColumns = instance.visibleColumns;
|
|
176
176
|
var ariaDataAttributes = Object.entries(rest).reduce(function (result, _a) {
|
|
177
177
|
var key = _a[0], value = _a[1];
|
|
178
178
|
if (key.startsWith('data-') || key.startsWith('aria-')) {
|
|
@@ -287,6 +287,30 @@ export var Table = function (props) {
|
|
|
287
287
|
subComponent,
|
|
288
288
|
]);
|
|
289
289
|
var virtualizedItemRenderer = React.useCallback(function (index) { return getPreparedRow(index); }, [getPreparedRow]);
|
|
290
|
+
var updateStickyState = function () {
|
|
291
|
+
if (!bodyRef.current || flatHeaders.every(function (header) { return !header.sticky; })) {
|
|
292
|
+
return;
|
|
293
|
+
}
|
|
294
|
+
if (bodyRef.current.scrollLeft !== 0) {
|
|
295
|
+
dispatch({ type: TableActions.setScrolledRight, value: true });
|
|
296
|
+
}
|
|
297
|
+
else {
|
|
298
|
+
dispatch({ type: TableActions.setScrolledRight, value: false });
|
|
299
|
+
}
|
|
300
|
+
// If scrolled a bit to the left looking from the right side
|
|
301
|
+
if (bodyRef.current.scrollLeft !==
|
|
302
|
+
bodyRef.current.scrollWidth - bodyRef.current.clientWidth) {
|
|
303
|
+
dispatch({ type: TableActions.setScrolledLeft, value: true });
|
|
304
|
+
}
|
|
305
|
+
else {
|
|
306
|
+
dispatch({ type: TableActions.setScrolledLeft, value: false });
|
|
307
|
+
}
|
|
308
|
+
};
|
|
309
|
+
React.useEffect(function () {
|
|
310
|
+
updateStickyState();
|
|
311
|
+
// Call only on init
|
|
312
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
313
|
+
}, []);
|
|
290
314
|
return (React.createElement(React.Fragment, null,
|
|
291
315
|
React.createElement("div", __assign({ ref: function (element) {
|
|
292
316
|
setOwnerDocument(element === null || element === void 0 ? void 0 : element.ownerDocument);
|
|
@@ -295,7 +319,7 @@ export var Table = function (props) {
|
|
|
295
319
|
}
|
|
296
320
|
}, id: id }, getTableProps({
|
|
297
321
|
className: cx('iui-table', (_a = {}, _a["iui-".concat(density)] = density !== 'default', _a), className),
|
|
298
|
-
style: style,
|
|
322
|
+
style: __assign({ minWidth: 0 }, style),
|
|
299
323
|
}), ariaDataAttributes),
|
|
300
324
|
React.createElement("div", { className: 'iui-table-header-wrapper', ref: headerRef },
|
|
301
325
|
React.createElement("div", { className: 'iui-table-header' }, headerGroups.slice(1).map(function (headerGroup) {
|
|
@@ -303,9 +327,13 @@ export var Table = function (props) {
|
|
|
303
327
|
className: 'iui-row',
|
|
304
328
|
});
|
|
305
329
|
return (React.createElement("div", __assign({}, headerGroupProps, { key: headerGroupProps.key }), headerGroup.headers.map(function (column, index) {
|
|
306
|
-
var columnProps = column.getHeaderProps(__assign(__assign({}, column.getSortByToggleProps()), { className: cx('iui-cell', {
|
|
330
|
+
var columnProps = column.getHeaderProps(__assign(__assign({}, column.getSortByToggleProps()), { className: cx('iui-cell', {
|
|
331
|
+
'iui-actionable': column.canSort,
|
|
332
|
+
'iui-sorted': column.isSorted,
|
|
333
|
+
'iui-cell-sticky': !!column.sticky,
|
|
334
|
+
}, column.columnClassName), style: __assign(__assign(__assign({}, getCellStyle(column, !!state.isTableResizing)), getStickyStyle(column, visibleColumns)), { flexWrap: 'unset' }) }));
|
|
307
335
|
return (React.createElement("div", __assign({}, columnProps, column.getDragAndDropProps(), { key: columnProps.key, title: undefined, ref: function (el) {
|
|
308
|
-
if (el
|
|
336
|
+
if (el) {
|
|
309
337
|
columnRefs.current[column.id] = el;
|
|
310
338
|
column.resizeWidth = el.getBoundingClientRect().width;
|
|
311
339
|
}
|
|
@@ -320,7 +348,11 @@ export var Table = function (props) {
|
|
|
320
348
|
index !== headerGroup.headers.length - 1 && (React.createElement("div", __assign({}, column.getResizerProps(), { className: 'iui-resizer' }),
|
|
321
349
|
React.createElement("div", { className: 'iui-resizer-bar' }))),
|
|
322
350
|
enableColumnReordering &&
|
|
323
|
-
!column.disableReordering && (React.createElement("div", { className: 'iui-reorder-bar' }))
|
|
351
|
+
!column.disableReordering && (React.createElement("div", { className: 'iui-reorder-bar' })),
|
|
352
|
+
column.sticky === 'left' &&
|
|
353
|
+
state.sticky.isScrolledToRight && (React.createElement("div", { className: 'iui-cell-shadow-right' })),
|
|
354
|
+
column.sticky === 'right' &&
|
|
355
|
+
state.sticky.isScrolledToLeft && (React.createElement("div", { className: 'iui-cell-shadow-left' }))));
|
|
324
356
|
})));
|
|
325
357
|
}))),
|
|
326
358
|
React.createElement("div", __assign({}, getTableBodyProps({
|
|
@@ -331,6 +363,7 @@ export var Table = function (props) {
|
|
|
331
363
|
}), { ref: bodyRef, onScroll: function () {
|
|
332
364
|
if (headerRef.current && bodyRef.current) {
|
|
333
365
|
headerRef.current.scrollLeft = bodyRef.current.scrollLeft;
|
|
366
|
+
updateStickyState();
|
|
334
367
|
}
|
|
335
368
|
}, tabIndex: -1 }),
|
|
336
369
|
data.length !== 0 && (React.createElement(React.Fragment, null, enableVirtualization ? (React.createElement(VirtualScroll, { itemsLength: page.length, itemRenderer: virtualizedItemRenderer })) : (page.map(function (_, index) { return getPreparedRow(index); })))),
|
|
@@ -15,7 +15,7 @@ var __assign = (this && this.__assign) || function () {
|
|
|
15
15
|
*--------------------------------------------------------------------------------------------*/
|
|
16
16
|
import React from 'react';
|
|
17
17
|
import cx from 'classnames';
|
|
18
|
-
import { getCellStyle } from './utils';
|
|
18
|
+
import { getCellStyle, getStickyStyle } from './utils';
|
|
19
19
|
import { SubRowExpander } from './SubRowExpander';
|
|
20
20
|
import { SELECTION_CELL_ID } from './columns';
|
|
21
21
|
import { DefaultCell } from './cells';
|
|
@@ -34,8 +34,10 @@ export var TableCell = function (props) {
|
|
|
34
34
|
};
|
|
35
35
|
};
|
|
36
36
|
var cellElementProps = cell.getCellProps({
|
|
37
|
-
className: cx('iui-cell', cell.column.cellClassName
|
|
38
|
-
|
|
37
|
+
className: cx('iui-cell', cell.column.cellClassName, {
|
|
38
|
+
'iui-cell-sticky': !!cell.column.sticky,
|
|
39
|
+
}),
|
|
40
|
+
style: __assign(__assign(__assign({}, getCellStyle(cell.column, !!tableInstance.state.isTableResizing)), getSubRowStyle()), getStickyStyle(cell.column, tableInstance.visibleColumns)),
|
|
39
41
|
});
|
|
40
42
|
var cellProps = __assign(__assign({}, tableInstance), { cell: cell, row: cell.row, value: cell.value, column: cell.column });
|
|
41
43
|
var cellContent = (React.createElement(React.Fragment, null,
|
|
@@ -44,7 +46,12 @@ export var TableCell = function (props) {
|
|
|
44
46
|
var cellRendererProps = {
|
|
45
47
|
cellElementProps: cellElementProps,
|
|
46
48
|
cellProps: cellProps,
|
|
47
|
-
children:
|
|
49
|
+
children: (React.createElement(React.Fragment, null,
|
|
50
|
+
cellContent,
|
|
51
|
+
cell.column.sticky === 'left' &&
|
|
52
|
+
tableInstance.state.sticky.isScrolledToRight && (React.createElement("div", { className: 'iui-cell-shadow-right' })),
|
|
53
|
+
cell.column.sticky === 'right' &&
|
|
54
|
+
tableInstance.state.sticky.isScrolledToLeft && (React.createElement("div", { className: 'iui-cell-shadow-left' })))),
|
|
48
55
|
};
|
|
49
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; } })))));
|
|
50
57
|
};
|
|
@@ -92,5 +92,9 @@ export var TableRowMemoized = React.memo(TableRow, function (prevProp, nextProp)
|
|
|
92
92
|
prevProp.tableHasSubRows === nextProp.tableHasSubRows &&
|
|
93
93
|
prevProp.state.columnOrder === nextProp.state.columnOrder &&
|
|
94
94
|
!nextProp.state.columnResizing.isResizingColumn &&
|
|
95
|
-
prevProp.state.isTableResizing === nextProp.state.isTableResizing
|
|
95
|
+
prevProp.state.isTableResizing === nextProp.state.isTableResizing &&
|
|
96
|
+
prevProp.state.sticky.isScrolledToLeft ===
|
|
97
|
+
nextProp.state.sticky.isScrolledToLeft &&
|
|
98
|
+
prevProp.state.sticky.isScrolledToRight ===
|
|
99
|
+
nextProp.state.sticky.isScrolledToRight;
|
|
96
100
|
});
|
|
@@ -12,6 +12,10 @@ export declare const onTableResizeStart: <T extends Record<string, unknown>>(sta
|
|
|
12
12
|
isResizingColumn?: string | undefined;
|
|
13
13
|
};
|
|
14
14
|
columnReorderStartIndex: number;
|
|
15
|
+
sticky: {
|
|
16
|
+
isScrolledToRight?: boolean | undefined;
|
|
17
|
+
isScrolledToLeft?: boolean | undefined;
|
|
18
|
+
};
|
|
15
19
|
columnOrder: import("react-table").IdType<T>[];
|
|
16
20
|
expanded: Record<import("react-table").IdType<T>, boolean>;
|
|
17
21
|
filters: import("react-table").Filters<T>;
|
|
@@ -38,6 +42,10 @@ export declare const onTableResizeEnd: <T extends Record<string, unknown>>(state
|
|
|
38
42
|
};
|
|
39
43
|
hiddenColumns?: import("react-table").IdType<T>[] | undefined;
|
|
40
44
|
columnReorderStartIndex: number;
|
|
45
|
+
sticky: {
|
|
46
|
+
isScrolledToRight?: boolean | undefined;
|
|
47
|
+
isScrolledToLeft?: boolean | undefined;
|
|
48
|
+
};
|
|
41
49
|
columnOrder: import("react-table").IdType<T>[];
|
|
42
50
|
expanded: Record<import("react-table").IdType<T>, boolean>;
|
|
43
51
|
filters: import("react-table").Filters<T>;
|
|
@@ -20,6 +20,10 @@ export declare const onSingleSelectHandler: <T extends Record<string, unknown>>(
|
|
|
20
20
|
};
|
|
21
21
|
isTableResizing?: boolean | undefined;
|
|
22
22
|
columnReorderStartIndex: number;
|
|
23
|
+
sticky: {
|
|
24
|
+
isScrolledToRight?: boolean | undefined;
|
|
25
|
+
isScrolledToLeft?: boolean | undefined;
|
|
26
|
+
};
|
|
23
27
|
columnOrder: import("react-table").IdType<T>[];
|
|
24
28
|
expanded: Record<import("react-table").IdType<T>, boolean>;
|
|
25
29
|
filters: import("react-table").Filters<T>;
|
|
@@ -49,11 +49,13 @@ export var SelectionColumn = function (props) {
|
|
|
49
49
|
var getToggleAllRowsSelectedProps = _a.getToggleAllRowsSelectedProps, rows = _a.rows, initialRows = _a.initialRows, state = _a.state;
|
|
50
50
|
var disabled = rows.every(function (row) { return isDisabled === null || isDisabled === void 0 ? void 0 : isDisabled(row.original); });
|
|
51
51
|
var checked = initialRows.every(function (row) { return state.selectedRowIds[row.id] || (isDisabled === null || isDisabled === void 0 ? void 0 : isDisabled(row.original)); });
|
|
52
|
-
return (React.createElement(Checkbox, __assign({}, getToggleAllRowsSelectedProps(), { style: {},
|
|
52
|
+
return (React.createElement(Checkbox, __assign({}, getToggleAllRowsSelectedProps(), { style: {}, title: '' // Removes default title that comes from react-table
|
|
53
|
+
, checked: checked && !disabled, indeterminate: !checked && Object.keys(state.selectedRowIds).length > 0, disabled: disabled })));
|
|
53
54
|
},
|
|
54
55
|
Cell: function (_a) {
|
|
55
56
|
var row = _a.row;
|
|
56
|
-
return (React.createElement(Checkbox, __assign({}, row.getToggleRowSelectedProps(), { style: {},
|
|
57
|
+
return (React.createElement(Checkbox, __assign({}, row.getToggleRowSelectedProps(), { style: {}, title: '' // Removes default title that comes from react-table
|
|
58
|
+
, disabled: isDisabled === null || isDisabled === void 0 ? void 0 : isDisabled(row.original), onClick: function (e) { return e.stopPropagation(); } })));
|
|
57
59
|
},
|
|
58
60
|
cellRenderer: function (props) { return (React.createElement(DefaultCell, __assign({}, props, { isDisabled: function (rowData) { return !!(isDisabled === null || isDisabled === void 0 ? void 0 : isDisabled(rowData)); } }))); },
|
|
59
61
|
};
|
|
@@ -4,3 +4,4 @@ export { useSubRowFiltering } from './useSubRowFiltering';
|
|
|
4
4
|
export { useSubRowSelection } from './useSubRowSelection';
|
|
5
5
|
export { useResizeColumns } from './useResizeColumns';
|
|
6
6
|
export { useColumnDragAndDrop } from './useColumnDragAndDrop';
|
|
7
|
+
export { useStickyColumns } from './useStickyColumns';
|
|
@@ -8,3 +8,4 @@ export { useSubRowFiltering } from './useSubRowFiltering';
|
|
|
8
8
|
export { useSubRowSelection } from './useSubRowSelection';
|
|
9
9
|
export { useResizeColumns } from './useResizeColumns';
|
|
10
10
|
export { useColumnDragAndDrop } from './useColumnDragAndDrop';
|
|
11
|
+
export { useStickyColumns } from './useStickyColumns';
|