@itwin/itwinui-react 1.38.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 +30 -0
- package/cjs/core/Carousel/Carousel.js +21 -12
- package/cjs/core/Carousel/CarouselContext.d.ts +4 -2
- package/cjs/core/Carousel/CarouselDotsList.js +1 -0
- package/cjs/core/Carousel/CarouselNavigation.js +8 -10
- package/cjs/core/Carousel/CarouselSlide.js +3 -7
- package/cjs/core/Carousel/CarouselSlider.js +23 -28
- package/cjs/core/ColorPicker/ColorPickerContext.d.ts +2 -2
- package/cjs/core/ComboBox/ComboBox.d.ts +17 -1
- package/cjs/core/ComboBox/ComboBox.js +50 -24
- package/cjs/core/ComboBox/ComboBoxDropdown.d.ts +5 -6
- package/cjs/core/ComboBox/ComboBoxInput.js +28 -9
- package/cjs/core/ComboBox/ComboBoxMenu.js +46 -2
- package/cjs/core/ComboBox/ComboBoxMenuItem.js +2 -3
- package/cjs/core/ComboBox/helpers.d.ts +8 -3
- package/cjs/core/ComboBox/helpers.js +1 -1
- package/cjs/core/DatePicker/DatePicker.d.ts +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/Select/Select.js +1 -1
- package/cjs/core/Table/Table.js +68 -25
- package/cjs/core/Table/TableCell.js +10 -3
- package/cjs/core/Table/TablePaginator.js +1 -1
- 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/filters/tableFilters.d.ts +3 -3
- package/cjs/core/Table/hooks/index.d.ts +1 -0
- package/cjs/core/Table/hooks/index.js +3 -1
- package/cjs/core/Table/hooks/useExpanderCell.js +11 -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/Toast/Toaster.d.ts +1 -1
- package/cjs/core/Toast/Toaster.js +72 -29
- package/cjs/core/index.d.ts +2 -2
- package/cjs/core/index.js +4 -3
- package/cjs/core/utils/components/Popover.d.ts +1 -18
- package/cjs/core/utils/components/VirtualScroll.d.ts +35 -1
- package/cjs/core/utils/components/VirtualScroll.js +159 -26
- package/cjs/core/utils/components/VisuallyHidden.d.ts +9 -0
- package/cjs/core/utils/components/VisuallyHidden.js +44 -0
- package/cjs/core/utils/components/WithCSSTransition.d.ts +1 -2
- package/cjs/core/utils/components/icons.d.ts +4 -4
- package/cjs/core/utils/components/index.d.ts +1 -0
- package/cjs/core/utils/components/index.js +1 -0
- package/cjs/core/utils/hooks/useOverflow.js +4 -2
- package/cjs/core/utils/hooks/useTheme.d.ts +1 -1
- package/cjs/types/react-table-config.d.ts +9 -0
- package/esm/core/Carousel/Carousel.js +21 -12
- package/esm/core/Carousel/CarouselContext.d.ts +4 -2
- package/esm/core/Carousel/CarouselDotsList.js +1 -0
- package/esm/core/Carousel/CarouselNavigation.js +8 -10
- package/esm/core/Carousel/CarouselSlide.js +3 -7
- package/esm/core/Carousel/CarouselSlider.js +24 -29
- package/esm/core/ColorPicker/ColorPickerContext.d.ts +2 -2
- package/esm/core/ComboBox/ComboBox.d.ts +17 -1
- package/esm/core/ComboBox/ComboBox.js +50 -24
- package/esm/core/ComboBox/ComboBoxDropdown.d.ts +5 -6
- package/esm/core/ComboBox/ComboBoxInput.js +28 -9
- package/esm/core/ComboBox/ComboBoxMenu.js +47 -3
- package/esm/core/ComboBox/ComboBoxMenuItem.js +2 -3
- package/esm/core/ComboBox/helpers.d.ts +8 -3
- package/esm/core/ComboBox/helpers.js +1 -1
- package/esm/core/DatePicker/DatePicker.d.ts +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/Select/Select.js +1 -1
- package/esm/core/Table/Table.js +70 -27
- package/esm/core/Table/TableCell.js +11 -4
- package/esm/core/Table/TablePaginator.js +1 -1
- 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/filters/tableFilters.d.ts +3 -3
- package/esm/core/Table/hooks/index.d.ts +1 -0
- package/esm/core/Table/hooks/index.js +1 -0
- package/esm/core/Table/hooks/useExpanderCell.js +8 -1
- 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/Toast/Toaster.d.ts +1 -1
- package/esm/core/Toast/Toaster.js +50 -30
- package/esm/core/index.d.ts +2 -2
- package/esm/core/index.js +1 -1
- package/esm/core/utils/components/Popover.d.ts +1 -18
- package/esm/core/utils/components/VirtualScroll.d.ts +35 -1
- package/esm/core/utils/components/VirtualScroll.js +157 -25
- package/esm/core/utils/components/VisuallyHidden.d.ts +9 -0
- package/esm/core/utils/components/VisuallyHidden.js +38 -0
- package/esm/core/utils/components/WithCSSTransition.d.ts +1 -2
- package/esm/core/utils/components/icons.d.ts +4 -4
- package/esm/core/utils/components/index.d.ts +1 -0
- package/esm/core/utils/components/index.js +1 -0
- package/esm/core/utils/hooks/useOverflow.js +4 -2
- package/esm/core/utils/hooks/useTheme.d.ts +1 -1
- package/esm/types/react-table-config.d.ts +9 -0
- package/package.json +24 -39
|
@@ -33,13 +33,57 @@ exports.ComboBoxMenu = void 0;
|
|
|
33
33
|
var classnames_1 = __importDefault(require("classnames"));
|
|
34
34
|
var react_1 = __importDefault(require("react"));
|
|
35
35
|
var Menu_1 = require("../Menu");
|
|
36
|
+
var Surface_1 = require("../Surface");
|
|
36
37
|
var utils_1 = require("../utils");
|
|
37
38
|
var helpers_1 = require("./helpers");
|
|
39
|
+
var VirtualizedComboBoxMenu = react_1.default.forwardRef(function (_a, forwardedRef) {
|
|
40
|
+
var _b, _c, _d;
|
|
41
|
+
var children = _a.children, style = _a.style, rest = __rest(_a, ["children", "style"]);
|
|
42
|
+
var _e = (0, utils_1.useSafeContext)(helpers_1.ComboBoxStateContext), minWidth = _e.minWidth, id = _e.id, filteredOptions = _e.filteredOptions, getMenuItem = _e.getMenuItem, focusedIndex = _e.focusedIndex;
|
|
43
|
+
var menuRef = (0, utils_1.useSafeContext)(helpers_1.ComboBoxRefsContext).menuRef;
|
|
44
|
+
var virtualItemRenderer = react_1.default.useCallback(function (index) {
|
|
45
|
+
return filteredOptions.length > 0
|
|
46
|
+
? getMenuItem(filteredOptions[index], index)
|
|
47
|
+
: children;
|
|
48
|
+
}, // Here is expected empty state content
|
|
49
|
+
[filteredOptions, getMenuItem, children]);
|
|
50
|
+
var focusedVisibleIndex = react_1.default.useMemo(function () {
|
|
51
|
+
var _a, _b;
|
|
52
|
+
var currentElement = (_a = menuRef.current) === null || _a === void 0 ? void 0 : _a.querySelector("[data-iui-index=\"".concat(focusedIndex, "\"]"));
|
|
53
|
+
if (!currentElement) {
|
|
54
|
+
return focusedIndex;
|
|
55
|
+
}
|
|
56
|
+
return Number((_b = currentElement.getAttribute('data-iui-filtered-index')) !== null && _b !== void 0 ? _b : focusedIndex);
|
|
57
|
+
}, [focusedIndex, menuRef]);
|
|
58
|
+
var _f = (0, utils_1.useVirtualization)({
|
|
59
|
+
// 'Fool' VirtualScroll by passing length 1
|
|
60
|
+
// whenever there is no elements, to show empty state message
|
|
61
|
+
itemsLength: filteredOptions.length || 1,
|
|
62
|
+
itemRenderer: virtualItemRenderer,
|
|
63
|
+
scrollToIndex: focusedVisibleIndex,
|
|
64
|
+
}), outerProps = _f.outerProps, innerProps = _f.innerProps, visibleChildren = _f.visibleChildren;
|
|
65
|
+
var overflowY = ((_d = (_c = (_b = (0, utils_1.getWindow)()) === null || _b === void 0 ? void 0 : _b.CSS) === null || _c === void 0 ? void 0 : _c.supports) === null || _d === void 0 ? void 0 : _d.call(_c, 'overflow-x: overlay'))
|
|
66
|
+
? { overflowY: 'overlay' }
|
|
67
|
+
: { overflowY: 'auto' };
|
|
68
|
+
var styles = react_1.default.useMemo(function () { return ({
|
|
69
|
+
minWidth: minWidth,
|
|
70
|
+
maxWidth: "min(".concat(minWidth * 2, "px, 90vw)"),
|
|
71
|
+
maxHeight: 315,
|
|
72
|
+
}); }, [minWidth]);
|
|
73
|
+
return (react_1.default.createElement(Surface_1.Surface, __assign({ elevation: 1, style: __assign(__assign(__assign({}, styles), overflowY), style) }, rest),
|
|
74
|
+
react_1.default.createElement("div", __assign({}, outerProps),
|
|
75
|
+
react_1.default.createElement(Menu_1.Menu, { id: "".concat(id, "-list"), setFocus: false, role: 'listbox', ref: (0, utils_1.mergeRefs)(menuRef, innerProps.ref, forwardedRef), style: innerProps.style }, visibleChildren))));
|
|
76
|
+
});
|
|
38
77
|
exports.ComboBoxMenu = react_1.default.forwardRef(function (props, forwardedRef) {
|
|
39
78
|
var className = props.className, style = props.style, rest = __rest(props, ["className", "style"]);
|
|
40
|
-
var _a = (0, utils_1.useSafeContext)(helpers_1.ComboBoxStateContext), minWidth = _a.minWidth, id = _a.id;
|
|
79
|
+
var _a = (0, utils_1.useSafeContext)(helpers_1.ComboBoxStateContext), minWidth = _a.minWidth, id = _a.id, enableVirtualization = _a.enableVirtualization;
|
|
41
80
|
var menuRef = (0, utils_1.useSafeContext)(helpers_1.ComboBoxRefsContext).menuRef;
|
|
42
81
|
var refs = (0, utils_1.useMergedRefs)(menuRef, forwardedRef);
|
|
43
|
-
|
|
82
|
+
var styles = react_1.default.useMemo(function () { return ({
|
|
83
|
+
minWidth: minWidth,
|
|
84
|
+
maxWidth: "min(".concat(minWidth * 2, "px, 90vw)"),
|
|
85
|
+
maxHeight: 315,
|
|
86
|
+
}); }, [minWidth]);
|
|
87
|
+
return (react_1.default.createElement(react_1.default.Fragment, null, !enableVirtualization ? (react_1.default.createElement(Menu_1.Menu, __assign({ id: "".concat(id, "-list"), style: __assign(__assign({}, styles), style), setFocus: false, role: 'listbox', ref: refs, className: (0, classnames_1.default)('iui-scroll', className) }, rest))) : (react_1.default.createElement(VirtualizedComboBoxMenu, __assign({ ref: forwardedRef }, props)))));
|
|
44
88
|
});
|
|
45
89
|
exports.ComboBoxMenu.displayName = 'ComboBoxMenu';
|
|
@@ -36,10 +36,9 @@ var utils_1 = require("../utils");
|
|
|
36
36
|
var helpers_1 = require("./helpers");
|
|
37
37
|
exports.ComboBoxMenuItem = react_1.default.memo(react_1.default.forwardRef(function (props, forwardedRef) {
|
|
38
38
|
var children = props.children, isSelected = props.isSelected, disabled = props.disabled, value = props.value, onClick = props.onClick, sublabel = props.sublabel, _a = props.size, size = _a === void 0 ? !!sublabel ? 'large' : 'default' : _a, icon = props.icon, badge = props.badge, className = props.className, _b = props.role, role = _b === void 0 ? 'menuitem' : _b, index = props.index, rest = __rest(props, ["children", "isSelected", "disabled", "value", "onClick", "sublabel", "size", "icon", "badge", "className", "role", "index"]);
|
|
39
|
-
var
|
|
39
|
+
var _c = (0, utils_1.useSafeContext)(helpers_1.ComboBoxStateContext), focusedIndex = _c.focusedIndex, enableVirtualization = _c.enableVirtualization;
|
|
40
40
|
var focusRef = function (el) {
|
|
41
|
-
|
|
42
|
-
if (focusedIndex === index) {
|
|
41
|
+
if (!enableVirtualization && focusedIndex === index) {
|
|
43
42
|
el === null || el === void 0 ? void 0 : el.scrollIntoView({ block: 'nearest' });
|
|
44
43
|
}
|
|
45
44
|
};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import { SelectOption } from '../Select/Select';
|
|
2
3
|
declare type ComboBoxAction = 'open' | 'close' | 'select' | 'focus';
|
|
3
4
|
export declare const comboBoxReducer: (state: {
|
|
4
5
|
isOpen: boolean;
|
|
@@ -17,11 +18,15 @@ export declare const ComboBoxRefsContext: React.Context<{
|
|
|
17
18
|
__originalIndex: number;
|
|
18
19
|
}>>;
|
|
19
20
|
} | undefined>;
|
|
20
|
-
|
|
21
|
+
declare type ComboBoxStateContextProps<T = unknown> = {
|
|
21
22
|
isOpen: boolean;
|
|
22
23
|
id: string;
|
|
23
24
|
minWidth: number;
|
|
24
|
-
|
|
25
|
-
|
|
25
|
+
enableVirtualization: boolean;
|
|
26
|
+
filteredOptions: SelectOption<T>[];
|
|
27
|
+
getMenuItem: (option: SelectOption<T>, filteredIndex?: number) => JSX.Element;
|
|
28
|
+
focusedIndex?: number;
|
|
29
|
+
};
|
|
30
|
+
export declare const ComboBoxStateContext: React.Context<ComboBoxStateContextProps<unknown> | undefined>;
|
|
26
31
|
export declare const ComboBoxActionContext: React.Context<((x: [ComboBoxAction] | [ComboBoxAction, number]) => void) | undefined>;
|
|
27
32
|
export {};
|
|
@@ -31,7 +31,7 @@ var comboBoxReducer = function (state, _a) {
|
|
|
31
31
|
return __assign(__assign({}, state), { isOpen: false });
|
|
32
32
|
}
|
|
33
33
|
case 'select': {
|
|
34
|
-
return __assign(__assign({}, state), {
|
|
34
|
+
return __assign(__assign({}, state), { selectedIndex: value !== null && value !== void 0 ? value : state.selectedIndex, focusedIndex: value !== null && value !== void 0 ? value : state.focusedIndex });
|
|
35
35
|
}
|
|
36
36
|
case 'focus': {
|
|
37
37
|
return __assign(__assign({}, state), { focusedIndex: (_b = value !== null && value !== void 0 ? value : state.selectedIndex) !== null && _b !== void 0 ? _b : -1 });
|
|
@@ -5,7 +5,7 @@ import { TimePickerProps } from '../TimePicker';
|
|
|
5
5
|
* Generate localized months and days strings using `Intl.DateTimeFormat` for passed locale to use in DatePicker component.
|
|
6
6
|
* If locale is not passed, browser locale will be used.
|
|
7
7
|
*/
|
|
8
|
-
export declare const generateLocalizedStrings: (locale?: string
|
|
8
|
+
export declare const generateLocalizedStrings: (locale?: string) => {
|
|
9
9
|
months: string[];
|
|
10
10
|
shortDays: string[];
|
|
11
11
|
days: string[];
|
|
@@ -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,53 @@
|
|
|
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.MenuItemSkeleton = 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 utils_1 = require("../utils");
|
|
36
|
+
require("@itwin/itwinui-css/css/menu.css");
|
|
37
|
+
/**
|
|
38
|
+
* Menu item that uses skeletons to indicate loading state.
|
|
39
|
+
*/
|
|
40
|
+
var MenuItemSkeleton = function (props) {
|
|
41
|
+
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"]);
|
|
42
|
+
(0, utils_1.useTheme)();
|
|
43
|
+
return (react_1.default.createElement("li", __assign({ className: (0, classnames_1.default)('iui-menu-item', 'iui-menu-item-skeleton', { 'iui-large': hasSublabel }, className), style: __assign({
|
|
44
|
+
'--iui-menu-item-content-skeleton-max-width': contentWidth,
|
|
45
|
+
}, style) }, rest),
|
|
46
|
+
hasIcon && react_1.default.createElement("div", { className: 'iui-icon iui-skeleton', "aria-hidden": true }),
|
|
47
|
+
react_1.default.createElement("span", { className: 'iui-content' },
|
|
48
|
+
react_1.default.createElement("div", { className: 'iui-menu-label iui-skeleton', "aria-hidden": true }),
|
|
49
|
+
hasSublabel && (react_1.default.createElement("div", { className: 'iui-menu-description iui-skeleton', "aria-hidden": true })),
|
|
50
|
+
react_1.default.createElement(utils_1.VisuallyHidden, null, translatedStrings.loading))));
|
|
51
|
+
};
|
|
52
|
+
exports.MenuItemSkeleton = MenuItemSkeleton;
|
|
53
|
+
exports.default = exports.MenuItemSkeleton;
|
package/cjs/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/cjs/core/Menu/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.MenuExtraContent = exports.MenuDivider = exports.MenuItem = exports.Menu = void 0;
|
|
3
|
+
exports.MenuItemSkeleton = exports.MenuExtraContent = exports.MenuDivider = exports.MenuItem = exports.Menu = void 0;
|
|
4
4
|
/*---------------------------------------------------------------------------------------------
|
|
5
5
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
6
6
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
@@ -13,3 +13,5 @@ var MenuDivider_1 = require("./MenuDivider");
|
|
|
13
13
|
Object.defineProperty(exports, "MenuDivider", { enumerable: true, get: function () { return MenuDivider_1.MenuDivider; } });
|
|
14
14
|
var MenuExtraContent_1 = require("./MenuExtraContent");
|
|
15
15
|
Object.defineProperty(exports, "MenuExtraContent", { enumerable: true, get: function () { return MenuExtraContent_1.MenuExtraContent; } });
|
|
16
|
+
var MenuItemSkeleton_1 = require("./MenuItemSkeleton");
|
|
17
|
+
Object.defineProperty(exports, "MenuItemSkeleton", { enumerable: true, get: function () { return MenuItemSkeleton_1.MenuItemSkeleton; } });
|
|
@@ -146,7 +146,7 @@ var Select = function (props) {
|
|
|
146
146
|
return options.find(function (option) { return option.value === value; });
|
|
147
147
|
}, [options, value]);
|
|
148
148
|
return (react_1.default.createElement("div", __assign({ className: (0, classnames_1.default)('iui-input-with-icon', className), "aria-expanded": isOpen, "aria-haspopup": 'listbox', style: style }, rest),
|
|
149
|
-
react_1.default.createElement(DropdownMenu_1.DropdownMenu, __assign({ menuItems: menuItems, placement: 'bottom-start', className: (0, classnames_1.default)('iui-scroll', menuClassName), style: __assign({ minWidth: minWidth, maxWidth: "min(".concat(minWidth * 2, "px, 90vw)"), maxHeight:
|
|
149
|
+
react_1.default.createElement(DropdownMenu_1.DropdownMenu, __assign({ menuItems: menuItems, placement: 'bottom-start', className: (0, classnames_1.default)('iui-scroll', menuClassName), style: __assign({ minWidth: minWidth, maxWidth: "min(".concat(minWidth * 2, "px, 90vw)"), maxHeight: 315 }, menuStyle), role: 'listbox', onShow: onShowHandler, onHide: onHideHandler, disabled: disabled }, popoverProps, { visible: isOpen, onClickOutside: function (_, _a) {
|
|
150
150
|
var _b;
|
|
151
151
|
var target = _a.target;
|
|
152
152
|
if (!((_b = toggleButtonRef.current) === null || _b === void 0 ? void 0 : _b.contains(target))) {
|
package/cjs/core/Table/Table.js
CHANGED
|
@@ -177,8 +177,8 @@ var Table = function (props) {
|
|
|
177
177
|
return getSubRows ? getSubRows(item, index) : item.subRows;
|
|
178
178
|
});
|
|
179
179
|
}, [data, getSubRows]);
|
|
180
|
-
var instance = (0, react_table_1.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) }), react_table_1.useFlexLayout, (0, hooks_1.useResizeColumns)(ownerDocument), react_table_1.useFilters, (0, hooks_1.useSubRowFiltering)(hasAnySubRows), react_table_1.useSortBy, react_table_1.useExpanded, react_table_1.usePagination, react_table_1.useRowSelect, hooks_1.useSubRowSelection, (0, hooks_1.useExpanderCell)(subComponent, expanderCell, isRowDisabled), (0, hooks_1.useSelectionCell)(isSelectable, selectionMode, isRowDisabled), react_table_1.useColumnOrder, (0, hooks_1.useColumnDragAndDrop)(enableColumnReordering));
|
|
181
|
-
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;
|
|
180
|
+
var instance = (0, react_table_1.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) }), react_table_1.useFlexLayout, (0, hooks_1.useResizeColumns)(ownerDocument), react_table_1.useFilters, (0, hooks_1.useSubRowFiltering)(hasAnySubRows), react_table_1.useSortBy, react_table_1.useExpanded, react_table_1.usePagination, react_table_1.useRowSelect, hooks_1.useSubRowSelection, (0, hooks_1.useExpanderCell)(subComponent, expanderCell, isRowDisabled), (0, hooks_1.useSelectionCell)(isSelectable, selectionMode, isRowDisabled), react_table_1.useColumnOrder, (0, hooks_1.useColumnDragAndDrop)(enableColumnReordering), hooks_1.useStickyColumns);
|
|
181
|
+
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;
|
|
182
182
|
var ariaDataAttributes = Object.entries(rest).reduce(function (result, _a) {
|
|
183
183
|
var key = _a[0], value = _a[1];
|
|
184
184
|
if (key.startsWith('data-') || key.startsWith('aria-')) {
|
|
@@ -187,6 +187,12 @@ var Table = function (props) {
|
|
|
187
187
|
return result;
|
|
188
188
|
}, {});
|
|
189
189
|
var areFiltersSet = allColumns.some(function (column) { return column.filterValue != null && column.filterValue !== ''; });
|
|
190
|
+
var showFilterButton = function (column) {
|
|
191
|
+
return (data.length !== 0 || areFiltersSet) && column.canFilter;
|
|
192
|
+
};
|
|
193
|
+
var showSortButton = function (column) {
|
|
194
|
+
return data.length !== 0 && column.canSort;
|
|
195
|
+
};
|
|
190
196
|
var onRowClickHandler = react_1.default.useCallback(function (event, row) {
|
|
191
197
|
var isDisabled = isRowDisabled === null || isRowDisabled === void 0 ? void 0 : isRowDisabled(row.original);
|
|
192
198
|
if (!isDisabled) {
|
|
@@ -287,6 +293,30 @@ var Table = function (props) {
|
|
|
287
293
|
subComponent,
|
|
288
294
|
]);
|
|
289
295
|
var virtualizedItemRenderer = react_1.default.useCallback(function (index) { return getPreparedRow(index); }, [getPreparedRow]);
|
|
296
|
+
var updateStickyState = function () {
|
|
297
|
+
if (!bodyRef.current || flatHeaders.every(function (header) { return !header.sticky; })) {
|
|
298
|
+
return;
|
|
299
|
+
}
|
|
300
|
+
if (bodyRef.current.scrollLeft !== 0) {
|
|
301
|
+
dispatch({ type: react_table_1.actions.setScrolledRight, value: true });
|
|
302
|
+
}
|
|
303
|
+
else {
|
|
304
|
+
dispatch({ type: react_table_1.actions.setScrolledRight, value: false });
|
|
305
|
+
}
|
|
306
|
+
// If scrolled a bit to the left looking from the right side
|
|
307
|
+
if (bodyRef.current.scrollLeft !==
|
|
308
|
+
bodyRef.current.scrollWidth - bodyRef.current.clientWidth) {
|
|
309
|
+
dispatch({ type: react_table_1.actions.setScrolledLeft, value: true });
|
|
310
|
+
}
|
|
311
|
+
else {
|
|
312
|
+
dispatch({ type: react_table_1.actions.setScrolledLeft, value: false });
|
|
313
|
+
}
|
|
314
|
+
};
|
|
315
|
+
react_1.default.useEffect(function () {
|
|
316
|
+
updateStickyState();
|
|
317
|
+
// Call only on init
|
|
318
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
319
|
+
}, []);
|
|
290
320
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
291
321
|
react_1.default.createElement("div", __assign({ ref: function (element) {
|
|
292
322
|
setOwnerDocument(element === null || element === void 0 ? void 0 : element.ownerDocument);
|
|
@@ -295,30 +325,42 @@ var Table = function (props) {
|
|
|
295
325
|
}
|
|
296
326
|
}, id: id }, getTableProps({
|
|
297
327
|
className: (0, classnames_1.default)('iui-table', (_a = {}, _a["iui-".concat(density)] = density !== 'default', _a), className),
|
|
298
|
-
style: style,
|
|
328
|
+
style: __assign({ minWidth: 0 }, style),
|
|
299
329
|
}), ariaDataAttributes),
|
|
300
|
-
react_1.default.createElement("div", { className: 'iui-table-header', ref: headerRef },
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
column.
|
|
310
|
-
}
|
|
311
|
-
}
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
330
|
+
react_1.default.createElement("div", { className: 'iui-table-header-wrapper', ref: headerRef },
|
|
331
|
+
react_1.default.createElement("div", { className: 'iui-table-header' }, headerGroups.slice(1).map(function (headerGroup) {
|
|
332
|
+
var headerGroupProps = headerGroup.getHeaderGroupProps({
|
|
333
|
+
className: 'iui-row',
|
|
334
|
+
});
|
|
335
|
+
return (react_1.default.createElement("div", __assign({}, headerGroupProps, { key: headerGroupProps.key }), headerGroup.headers.map(function (column, index) {
|
|
336
|
+
var columnProps = column.getHeaderProps(__assign(__assign({}, column.getSortByToggleProps()), { className: (0, classnames_1.default)('iui-cell', {
|
|
337
|
+
'iui-actionable': column.canSort,
|
|
338
|
+
'iui-sorted': column.isSorted,
|
|
339
|
+
'iui-cell-sticky': !!column.sticky,
|
|
340
|
+
}, column.columnClassName), style: __assign(__assign(__assign({}, (0, utils_2.getCellStyle)(column, !!state.isTableResizing)), (0, utils_2.getStickyStyle)(column, visibleColumns)), { flexWrap: 'unset' }) }));
|
|
341
|
+
return (react_1.default.createElement("div", __assign({}, columnProps, column.getDragAndDropProps(), { key: columnProps.key, title: undefined, ref: function (el) {
|
|
342
|
+
if (el) {
|
|
343
|
+
columnRefs.current[column.id] = el;
|
|
344
|
+
column.resizeWidth = el.getBoundingClientRect().width;
|
|
345
|
+
}
|
|
346
|
+
} }),
|
|
347
|
+
column.render('Header'),
|
|
348
|
+
(showFilterButton(column) ||
|
|
349
|
+
showSortButton(column)) && (react_1.default.createElement("div", { className: 'iui-table-header-actions-container' },
|
|
350
|
+
showFilterButton(column) && (react_1.default.createElement(filters_1.FilterToggle, { column: column, ownerDocument: ownerDocument })),
|
|
351
|
+
showSortButton(column) && (react_1.default.createElement("div", { className: 'iui-cell-end-icon' }, column.isSorted && column.isSortedDesc ? (react_1.default.createElement(SortDown_1.default, { className: 'iui-icon iui-sort', "aria-hidden": true })) : (react_1.default.createElement(SortUp_1.default, { className: 'iui-icon iui-sort', "aria-hidden": true })))))),
|
|
352
|
+
isResizable &&
|
|
353
|
+
column.isResizerVisible &&
|
|
354
|
+
index !== headerGroup.headers.length - 1 && (react_1.default.createElement("div", __assign({}, column.getResizerProps(), { className: 'iui-resizer' }),
|
|
355
|
+
react_1.default.createElement("div", { className: 'iui-resizer-bar' }))),
|
|
356
|
+
enableColumnReordering &&
|
|
357
|
+
!column.disableReordering && (react_1.default.createElement("div", { className: 'iui-reorder-bar' })),
|
|
358
|
+
column.sticky === 'left' &&
|
|
359
|
+
state.sticky.isScrolledToRight && (react_1.default.createElement("div", { className: 'iui-cell-shadow-right' })),
|
|
360
|
+
column.sticky === 'right' &&
|
|
361
|
+
state.sticky.isScrolledToLeft && (react_1.default.createElement("div", { className: 'iui-cell-shadow-left' }))));
|
|
362
|
+
})));
|
|
363
|
+
}))),
|
|
322
364
|
react_1.default.createElement("div", __assign({}, getTableBodyProps({
|
|
323
365
|
className: (0, classnames_1.default)('iui-table-body', {
|
|
324
366
|
'iui-zebra-striping': styleType === 'zebra-rows',
|
|
@@ -327,6 +369,7 @@ var Table = function (props) {
|
|
|
327
369
|
}), { ref: bodyRef, onScroll: function () {
|
|
328
370
|
if (headerRef.current && bodyRef.current) {
|
|
329
371
|
headerRef.current.scrollLeft = bodyRef.current.scrollLeft;
|
|
372
|
+
updateStickyState();
|
|
330
373
|
}
|
|
331
374
|
}, tabIndex: -1 }),
|
|
332
375
|
data.length !== 0 && (react_1.default.createElement(react_1.default.Fragment, null, enableVirtualization ? (react_1.default.createElement(VirtualScroll_1.default, { itemsLength: page.length, itemRenderer: virtualizedItemRenderer })) : (page.map(function (_, index) { return getPreparedRow(index); })))),
|
|
@@ -40,8 +40,10 @@ var TableCell = function (props) {
|
|
|
40
40
|
};
|
|
41
41
|
};
|
|
42
42
|
var cellElementProps = cell.getCellProps({
|
|
43
|
-
className: (0, classnames_1.default)('iui-cell', cell.column.cellClassName
|
|
44
|
-
|
|
43
|
+
className: (0, classnames_1.default)('iui-cell', cell.column.cellClassName, {
|
|
44
|
+
'iui-cell-sticky': !!cell.column.sticky,
|
|
45
|
+
}),
|
|
46
|
+
style: __assign(__assign(__assign({}, (0, utils_1.getCellStyle)(cell.column, !!tableInstance.state.isTableResizing)), getSubRowStyle()), (0, utils_1.getStickyStyle)(cell.column, tableInstance.visibleColumns)),
|
|
45
47
|
});
|
|
46
48
|
var cellProps = __assign(__assign({}, tableInstance), { cell: cell, row: cell.row, value: cell.value, column: cell.column });
|
|
47
49
|
var cellContent = (react_1.default.createElement(react_1.default.Fragment, null,
|
|
@@ -50,7 +52,12 @@ var TableCell = function (props) {
|
|
|
50
52
|
var cellRendererProps = {
|
|
51
53
|
cellElementProps: cellElementProps,
|
|
52
54
|
cellProps: cellProps,
|
|
53
|
-
children:
|
|
55
|
+
children: (react_1.default.createElement(react_1.default.Fragment, null,
|
|
56
|
+
cellContent,
|
|
57
|
+
cell.column.sticky === 'left' &&
|
|
58
|
+
tableInstance.state.sticky.isScrolledToRight && (react_1.default.createElement("div", { className: 'iui-cell-shadow-right' })),
|
|
59
|
+
cell.column.sticky === 'right' &&
|
|
60
|
+
tableInstance.state.sticky.isScrolledToLeft && (react_1.default.createElement("div", { className: 'iui-cell-shadow-left' })))),
|
|
54
61
|
};
|
|
55
62
|
return (react_1.default.createElement(react_1.default.Fragment, null, cell.column.cellRenderer ? (cell.column.cellRenderer(__assign(__assign({}, cellRendererProps), { isDisabled: function () { return isDisabled; } }))) : (react_1.default.createElement(cells_1.DefaultCell, __assign({}, cellRendererProps, { isDisabled: function () { return isDisabled; } })))));
|
|
56
63
|
};
|
|
@@ -149,7 +149,7 @@ var TablePaginator = function (props) {
|
|
|
149
149
|
}
|
|
150
150
|
var hasNoRows = totalPagesCount === 0;
|
|
151
151
|
var showPagesList = totalPagesCount > 1 || isLoading;
|
|
152
|
-
var showPageSizeList = pageSizeList && onPageSizeChange && !!totalRowsCount;
|
|
152
|
+
var showPageSizeList = pageSizeList && !!onPageSizeChange && !!totalRowsCount;
|
|
153
153
|
var ellipsis = (react_1.default.createElement("span", { className: (0, classnames_1.default)('iui-paginator-ellipsis', {
|
|
154
154
|
'iui-paginator-ellipsis-small': size === 'small',
|
|
155
155
|
}) }, "\u2026"));
|
|
@@ -99,5 +99,9 @@ exports.TableRowMemoized = react_1.default.memo(exports.TableRow, function (prev
|
|
|
99
99
|
prevProp.tableHasSubRows === nextProp.tableHasSubRows &&
|
|
100
100
|
prevProp.state.columnOrder === nextProp.state.columnOrder &&
|
|
101
101
|
!nextProp.state.columnResizing.isResizingColumn &&
|
|
102
|
-
prevProp.state.isTableResizing === nextProp.state.isTableResizing
|
|
102
|
+
prevProp.state.isTableResizing === nextProp.state.isTableResizing &&
|
|
103
|
+
prevProp.state.sticky.isScrolledToLeft ===
|
|
104
|
+
nextProp.state.sticky.isScrolledToLeft &&
|
|
105
|
+
prevProp.state.sticky.isScrolledToRight ===
|
|
106
|
+
nextProp.state.sticky.isScrolledToRight;
|
|
103
107
|
});
|
|
@@ -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>;
|
|
@@ -55,11 +55,13 @@ var SelectionColumn = function (props) {
|
|
|
55
55
|
var getToggleAllRowsSelectedProps = _a.getToggleAllRowsSelectedProps, rows = _a.rows, initialRows = _a.initialRows, state = _a.state;
|
|
56
56
|
var disabled = rows.every(function (row) { return isDisabled === null || isDisabled === void 0 ? void 0 : isDisabled(row.original); });
|
|
57
57
|
var checked = initialRows.every(function (row) { return state.selectedRowIds[row.id] || (isDisabled === null || isDisabled === void 0 ? void 0 : isDisabled(row.original)); });
|
|
58
|
-
return (react_1.default.createElement(Checkbox_1.Checkbox, __assign({}, getToggleAllRowsSelectedProps(), { style: {},
|
|
58
|
+
return (react_1.default.createElement(Checkbox_1.Checkbox, __assign({}, getToggleAllRowsSelectedProps(), { style: {}, title: '' // Removes default title that comes from react-table
|
|
59
|
+
, checked: checked && !disabled, indeterminate: !checked && Object.keys(state.selectedRowIds).length > 0, disabled: disabled })));
|
|
59
60
|
},
|
|
60
61
|
Cell: function (_a) {
|
|
61
62
|
var row = _a.row;
|
|
62
|
-
return (react_1.default.createElement(Checkbox_1.Checkbox, __assign({}, row.getToggleRowSelectedProps(), { style: {},
|
|
63
|
+
return (react_1.default.createElement(Checkbox_1.Checkbox, __assign({}, row.getToggleRowSelectedProps(), { style: {}, title: '' // Removes default title that comes from react-table
|
|
64
|
+
, disabled: isDisabled === null || isDisabled === void 0 ? void 0 : isDisabled(row.original), onClick: function (e) { return e.stopPropagation(); } })));
|
|
63
65
|
},
|
|
64
66
|
cellRenderer: function (props) { return (react_1.default.createElement(cells_1.DefaultCell, __assign({}, props, { isDisabled: function (rowData) { return !!(isDisabled === null || isDisabled === void 0 ? void 0 : isDisabled(rowData)); } }))); },
|
|
65
67
|
};
|
|
@@ -28,7 +28,7 @@ export declare const tableFilters: {
|
|
|
28
28
|
* Basic filter with a single input field.
|
|
29
29
|
* @param translatedLabels Translated filter labels.
|
|
30
30
|
*/
|
|
31
|
-
TextFilter: (translatedLabels?: FilterButtonBarTranslation
|
|
31
|
+
TextFilter: (translatedLabels?: FilterButtonBarTranslation) => <T extends Record<string, unknown>>(props: TableFilterProps<T>) => JSX.Element;
|
|
32
32
|
/**
|
|
33
33
|
* Date range filter.
|
|
34
34
|
*
|
|
@@ -39,7 +39,7 @@ export declare const tableFilters: {
|
|
|
39
39
|
* If your data is different type e.g. `string`, you can use `accessor` property in column description:
|
|
40
40
|
* `accessor: (rowData) => new Date(rowData.date)`.
|
|
41
41
|
*/
|
|
42
|
-
DateRangeFilter: (options?: DateRangeFilterOptions
|
|
42
|
+
DateRangeFilter: (options?: DateRangeFilterOptions) => <T_1 extends Record<string, unknown>>(props: TableFilterProps<T_1>) => JSX.Element;
|
|
43
43
|
/**
|
|
44
44
|
* Number range filter.
|
|
45
45
|
*
|
|
@@ -48,5 +48,5 @@ export declare const tableFilters: {
|
|
|
48
48
|
* `accessor: (rowData) => Number(rowData.numberProp)`.
|
|
49
49
|
* @param translatedLabels Translated filter labels.
|
|
50
50
|
*/
|
|
51
|
-
NumberRangeFilter: (translatedLabels?:
|
|
51
|
+
NumberRangeFilter: (translatedLabels?: NumberRangeTranslation & FilterButtonBarTranslation) => <T_2 extends Record<string, unknown>>(props: NumberRangeFilterProps<T_2>) => JSX.Element;
|
|
52
52
|
};
|
|
@@ -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';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.useColumnDragAndDrop = exports.useResizeColumns = exports.useSubRowSelection = exports.useSubRowFiltering = exports.useSelectionCell = exports.useExpanderCell = void 0;
|
|
3
|
+
exports.useStickyColumns = exports.useColumnDragAndDrop = exports.useResizeColumns = exports.useSubRowSelection = exports.useSubRowFiltering = exports.useSelectionCell = exports.useExpanderCell = void 0;
|
|
4
4
|
/*---------------------------------------------------------------------------------------------
|
|
5
5
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
6
6
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
@@ -17,3 +17,5 @@ var useResizeColumns_1 = require("./useResizeColumns");
|
|
|
17
17
|
Object.defineProperty(exports, "useResizeColumns", { enumerable: true, get: function () { return useResizeColumns_1.useResizeColumns; } });
|
|
18
18
|
var useColumnDragAndDrop_1 = require("./useColumnDragAndDrop");
|
|
19
19
|
Object.defineProperty(exports, "useColumnDragAndDrop", { enumerable: true, get: function () { return useColumnDragAndDrop_1.useColumnDragAndDrop; } });
|
|
20
|
+
var useStickyColumns_1 = require("./useStickyColumns");
|
|
21
|
+
Object.defineProperty(exports, "useStickyColumns", { enumerable: true, get: function () { return useStickyColumns_1.useStickyColumns; } });
|
|
@@ -19,8 +19,16 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
19
19
|
}
|
|
20
20
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
21
21
|
};
|
|
22
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
23
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
24
|
+
};
|
|
22
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
26
|
exports.useExpanderCell = void 0;
|
|
27
|
+
/*---------------------------------------------------------------------------------------------
|
|
28
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
29
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
30
|
+
*--------------------------------------------------------------------------------------------*/
|
|
31
|
+
var react_1 = __importDefault(require("react"));
|
|
24
32
|
var columns_1 = require("../columns");
|
|
25
33
|
var useExpanderCell = function (subComponent, expanderCell, isRowDisabled) { return function (hooks) {
|
|
26
34
|
if (!subComponent) {
|
|
@@ -36,7 +44,9 @@ var useExpanderCell = function (subComponent, expanderCell, isRowDisabled) { ret
|
|
|
36
44
|
isDisabled: isRowDisabled,
|
|
37
45
|
});
|
|
38
46
|
return __spreadArray([
|
|
39
|
-
__assign(__assign({}, expanderColumn), { Cell: expanderCell
|
|
47
|
+
__assign(__assign({}, expanderColumn), { Cell: expanderCell
|
|
48
|
+
? function (cellProps) { return react_1.default.createElement(react_1.default.Fragment, null, expanderCell(cellProps)); }
|
|
49
|
+
: expanderColumn.Cell })
|
|
40
50
|
], columns, true);
|
|
41
51
|
});
|
|
42
52
|
}; };
|