@itwin/itwinui-react 1.34.1 → 1.36.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 +35 -0
- package/cjs/core/ButtonGroup/ButtonGroup.js +1 -0
- package/cjs/core/Carousel/Carousel.d.ts +68 -0
- package/cjs/core/Carousel/Carousel.js +130 -0
- package/cjs/core/Carousel/CarouselContext.d.ts +37 -0
- package/cjs/core/Carousel/CarouselContext.js +12 -0
- package/cjs/core/Carousel/CarouselDot.d.ts +13 -0
- package/cjs/core/Carousel/CarouselDot.js +46 -0
- package/cjs/core/Carousel/CarouselDotsList.d.ts +32 -0
- package/cjs/core/Carousel/CarouselDotsList.js +132 -0
- package/cjs/core/Carousel/CarouselNavigation.d.ts +15 -0
- package/cjs/core/Carousel/CarouselNavigation.js +88 -0
- package/cjs/core/Carousel/CarouselSlide.d.ts +14 -0
- package/cjs/core/Carousel/CarouselSlide.js +63 -0
- package/cjs/core/Carousel/CarouselSlider.d.ts +5 -0
- package/cjs/core/Carousel/CarouselSlider.js +94 -0
- package/cjs/core/Carousel/index.d.ts +4 -0
- package/cjs/core/Carousel/index.js +10 -0
- package/cjs/core/ColorPicker/ColorSwatch.d.ts +1 -1
- package/cjs/core/DatePicker/DatePicker.d.ts +5 -0
- package/cjs/core/DatePicker/DatePicker.js +38 -13
- package/cjs/core/Menu/Menu.js +8 -3
- package/cjs/core/Modal/Modal.d.ts +5 -0
- package/cjs/core/Modal/Modal.js +11 -9
- package/cjs/core/Modal/ModalContent.d.ts +14 -0
- package/cjs/core/Modal/ModalContent.js +46 -0
- package/cjs/core/Modal/index.d.ts +2 -0
- package/cjs/core/Modal/index.js +3 -1
- package/cjs/core/Table/Table.d.ts +1 -0
- package/cjs/core/Table/Table.js +34 -20
- package/cjs/core/Table/TableCell.js +3 -3
- package/cjs/core/Table/TableRowMemoized.js +12 -7
- package/cjs/core/Table/actionHandlers/index.d.ts +2 -1
- package/cjs/core/Table/actionHandlers/index.js +5 -1
- package/cjs/core/Table/cells/DefaultCell.d.ts +1 -1
- package/cjs/core/Table/cells/DefaultCell.js +5 -2
- package/cjs/core/Table/columns/actionColumn.d.ts +35 -0
- package/cjs/core/Table/columns/actionColumn.js +91 -0
- package/cjs/core/Table/columns/expanderColumn.d.ts +47 -0
- package/cjs/core/Table/columns/expanderColumn.js +81 -0
- package/cjs/core/Table/columns/index.d.ts +3 -0
- package/cjs/core/Table/columns/index.js +15 -0
- package/cjs/core/Table/columns/selectionColumn.d.ts +35 -0
- package/cjs/core/Table/columns/selectionColumn.js +67 -0
- package/cjs/core/Table/filters/DateRangeFilter/DateRangeFilter.js +18 -2
- package/cjs/core/Table/hooks/index.d.ts +2 -2
- package/cjs/core/Table/hooks/index.js +1 -3
- package/cjs/core/Table/hooks/useExpanderCell.d.ts +0 -1
- package/cjs/core/Table/hooks/useExpanderCell.js +25 -39
- package/cjs/core/Table/hooks/useResizeColumns.js +8 -2
- package/cjs/core/Table/hooks/useSelectionCell.d.ts +0 -1
- package/cjs/core/Table/hooks/useSelectionCell.js +6 -52
- package/cjs/core/Table/index.d.ts +1 -0
- package/cjs/core/Table/index.js +5 -1
- package/cjs/core/Table/utils.js +1 -1
- package/cjs/core/Toast/Toast.js +1 -1
- package/cjs/core/Typography/Anchor/Anchor.d.ts +1 -0
- package/cjs/core/Typography/Anchor/Anchor.js +1 -0
- package/cjs/core/index.d.ts +5 -3
- package/cjs/core/index.js +9 -2
- package/cjs/core/utils/components/Popover.js +13 -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/useMediaQuery.d.ts +2 -0
- package/cjs/core/utils/hooks/useMediaQuery.js +46 -0
- package/cjs/core/utils/hooks/useTheme.d.ts +5 -0
- package/cjs/core/utils/hooks/useTheme.js +20 -14
- package/cjs/types/react-table-config.d.ts +18 -0
- package/esm/core/ButtonGroup/ButtonGroup.js +1 -0
- package/esm/core/Carousel/Carousel.d.ts +68 -0
- package/esm/core/Carousel/Carousel.js +124 -0
- package/esm/core/Carousel/CarouselContext.d.ts +37 -0
- package/esm/core/Carousel/CarouselContext.js +6 -0
- package/esm/core/Carousel/CarouselDot.d.ts +13 -0
- package/esm/core/Carousel/CarouselDot.js +40 -0
- package/esm/core/Carousel/CarouselDotsList.d.ts +32 -0
- package/esm/core/Carousel/CarouselDotsList.js +126 -0
- package/esm/core/Carousel/CarouselNavigation.d.ts +15 -0
- package/esm/core/Carousel/CarouselNavigation.js +82 -0
- package/esm/core/Carousel/CarouselSlide.d.ts +14 -0
- package/esm/core/Carousel/CarouselSlide.js +57 -0
- package/esm/core/Carousel/CarouselSlider.d.ts +5 -0
- package/esm/core/Carousel/CarouselSlider.js +88 -0
- package/esm/core/Carousel/index.d.ts +4 -0
- package/esm/core/Carousel/index.js +6 -0
- package/esm/core/ColorPicker/ColorSwatch.d.ts +1 -1
- package/esm/core/DatePicker/DatePicker.d.ts +5 -0
- package/esm/core/DatePicker/DatePicker.js +38 -13
- package/esm/core/Menu/Menu.js +8 -3
- package/esm/core/Modal/Modal.d.ts +5 -0
- package/esm/core/Modal/Modal.js +11 -9
- package/esm/core/Modal/ModalContent.d.ts +14 -0
- package/esm/core/Modal/ModalContent.js +39 -0
- package/esm/core/Modal/index.d.ts +2 -0
- package/esm/core/Modal/index.js +1 -0
- package/esm/core/Table/Table.d.ts +1 -0
- package/esm/core/Table/Table.js +30 -16
- package/esm/core/Table/TableCell.js +2 -2
- package/esm/core/Table/TableRowMemoized.js +12 -7
- package/esm/core/Table/actionHandlers/index.d.ts +2 -1
- package/esm/core/Table/actionHandlers/index.js +2 -1
- package/esm/core/Table/cells/DefaultCell.d.ts +1 -1
- package/esm/core/Table/cells/DefaultCell.js +5 -2
- package/esm/core/Table/columns/actionColumn.d.ts +35 -0
- package/esm/core/Table/columns/actionColumn.js +84 -0
- package/esm/core/Table/columns/expanderColumn.d.ts +47 -0
- package/esm/core/Table/columns/expanderColumn.js +74 -0
- package/esm/core/Table/columns/index.d.ts +3 -0
- package/esm/core/Table/columns/index.js +7 -0
- package/esm/core/Table/columns/selectionColumn.d.ts +35 -0
- package/esm/core/Table/columns/selectionColumn.js +60 -0
- package/esm/core/Table/filters/DateRangeFilter/DateRangeFilter.js +18 -2
- package/esm/core/Table/hooks/index.d.ts +2 -2
- package/esm/core/Table/hooks/index.js +2 -2
- package/esm/core/Table/hooks/useExpanderCell.d.ts +0 -1
- package/esm/core/Table/hooks/useExpanderCell.js +24 -35
- package/esm/core/Table/hooks/useResizeColumns.js +8 -2
- package/esm/core/Table/hooks/useSelectionCell.d.ts +0 -1
- package/esm/core/Table/hooks/useSelectionCell.js +5 -48
- package/esm/core/Table/index.d.ts +1 -0
- package/esm/core/Table/index.js +1 -0
- package/esm/core/Table/utils.js +1 -1
- package/esm/core/Toast/Toast.js +1 -1
- package/esm/core/Typography/Anchor/Anchor.d.ts +1 -0
- package/esm/core/Typography/Anchor/Anchor.js +1 -0
- package/esm/core/index.d.ts +5 -3
- package/esm/core/index.js +3 -2
- package/esm/core/utils/components/Popover.js +13 -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/useMediaQuery.d.ts +2 -0
- package/esm/core/utils/hooks/useMediaQuery.js +39 -0
- package/esm/core/utils/hooks/useTheme.d.ts +5 -0
- package/esm/core/utils/hooks/useTheme.js +20 -14
- package/esm/types/react-table-config.d.ts +18 -0
- package/package.json +3 -2
|
@@ -0,0 +1,67 @@
|
|
|
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 __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.SelectionColumn = exports.SELECTION_CELL_ID = void 0;
|
|
18
|
+
/*---------------------------------------------------------------------------------------------
|
|
19
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
20
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
21
|
+
*--------------------------------------------------------------------------------------------*/
|
|
22
|
+
var react_1 = __importDefault(require("react"));
|
|
23
|
+
var Checkbox_1 = require("../../Checkbox");
|
|
24
|
+
var cells_1 = require("../cells");
|
|
25
|
+
exports.SELECTION_CELL_ID = 'iui-table-checkbox-selector';
|
|
26
|
+
/**
|
|
27
|
+
* Selection column that adds selection checkbox column to the Table.
|
|
28
|
+
* It is recommended to use it as the first column.
|
|
29
|
+
* @example
|
|
30
|
+
* const isCheckboxDisabled = useCallback((rowData) => {
|
|
31
|
+
* return rowData.name === 'Name1';
|
|
32
|
+
* }, []);
|
|
33
|
+
* const columns = useMemo(() => [
|
|
34
|
+
* Header: 'Table',
|
|
35
|
+
* columns: [
|
|
36
|
+
* SelectionColumn({ isDisabled: isCheckboxDisabled }),
|
|
37
|
+
* // Rest of your columns
|
|
38
|
+
* ],
|
|
39
|
+
* ], [isCheckboxDisabled]);
|
|
40
|
+
*/
|
|
41
|
+
var SelectionColumn = function (props) {
|
|
42
|
+
if (props === void 0) { props = {}; }
|
|
43
|
+
var isDisabled = props.isDisabled;
|
|
44
|
+
return {
|
|
45
|
+
id: exports.SELECTION_CELL_ID,
|
|
46
|
+
disableResizing: true,
|
|
47
|
+
disableGroupBy: true,
|
|
48
|
+
disableReordering: true,
|
|
49
|
+
minWidth: 48,
|
|
50
|
+
width: 48,
|
|
51
|
+
maxWidth: 48,
|
|
52
|
+
columnClassName: 'iui-slot',
|
|
53
|
+
cellClassName: 'iui-slot',
|
|
54
|
+
Header: function (_a) {
|
|
55
|
+
var getToggleAllRowsSelectedProps = _a.getToggleAllRowsSelectedProps, rows = _a.rows, initialRows = _a.initialRows, state = _a.state;
|
|
56
|
+
var disabled = rows.every(function (row) { return isDisabled === null || isDisabled === void 0 ? void 0 : isDisabled(row.original); });
|
|
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: {}, checked: checked && !disabled, indeterminate: !checked && Object.keys(state.selectedRowIds).length > 0, disabled: disabled })));
|
|
59
|
+
},
|
|
60
|
+
Cell: function (_a) {
|
|
61
|
+
var row = _a.row;
|
|
62
|
+
return (react_1.default.createElement(Checkbox_1.Checkbox, __assign({}, row.getToggleRowSelectedProps(), { style: {}, disabled: isDisabled === null || isDisabled === void 0 ? void 0 : isDisabled(row.original), onClick: function (e) { return e.stopPropagation(); } })));
|
|
63
|
+
},
|
|
64
|
+
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
|
+
};
|
|
66
|
+
};
|
|
67
|
+
exports.SelectionColumn = SelectionColumn;
|
|
@@ -50,15 +50,31 @@ var DateRangeFilter = function (props) {
|
|
|
50
50
|
(0, utils_1.useTheme)();
|
|
51
51
|
var translatedStrings = __assign(__assign({}, defaultStrings), translatedLabels);
|
|
52
52
|
var _h = react_1.default.useState(((_a = column.filterValue) === null || _a === void 0 ? void 0 : _a[0]) ? new Date((_b = column.filterValue) === null || _b === void 0 ? void 0 : _b[0]) : undefined), from = _h[0], setFrom = _h[1];
|
|
53
|
+
var onFromChange = react_1.default.useCallback(function (date) {
|
|
54
|
+
setFrom(function (prevDate) {
|
|
55
|
+
if (prevDate || !date) {
|
|
56
|
+
return date;
|
|
57
|
+
}
|
|
58
|
+
return new Date(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0, 0);
|
|
59
|
+
});
|
|
60
|
+
}, []);
|
|
53
61
|
var _j = react_1.default.useState(((_c = column.filterValue) === null || _c === void 0 ? void 0 : _c[1]) ? new Date((_d = column.filterValue) === null || _d === void 0 ? void 0 : _d[1]) : undefined), to = _j[0], setTo = _j[1];
|
|
62
|
+
var onToChange = react_1.default.useCallback(function (date) {
|
|
63
|
+
setTo(function (prevDate) {
|
|
64
|
+
if (prevDate || !date) {
|
|
65
|
+
return date;
|
|
66
|
+
}
|
|
67
|
+
return new Date(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59, 999);
|
|
68
|
+
});
|
|
69
|
+
}, []);
|
|
54
70
|
var onKeyDown = function (event) {
|
|
55
71
|
if (event.key === 'Enter') {
|
|
56
72
|
setFilter([from, to]);
|
|
57
73
|
}
|
|
58
74
|
};
|
|
59
75
|
return (react_1.default.createElement(BaseFilter_1.BaseFilter, null,
|
|
60
|
-
react_1.default.createElement(DatePickerInput_1.default, { label: translatedStrings.from, date: from, onChange:
|
|
61
|
-
react_1.default.createElement(DatePickerInput_1.default, { label: translatedStrings.to, date: to, onChange:
|
|
76
|
+
react_1.default.createElement(DatePickerInput_1.default, { label: translatedStrings.from, date: from, onChange: onFromChange, formatDate: formatDate, parseInput: parseInput, onKeyDown: onKeyDown, placeholder: placeholder, setFocus: true }),
|
|
77
|
+
react_1.default.createElement(DatePickerInput_1.default, { label: translatedStrings.to, date: to, onChange: onToChange, formatDate: formatDate, parseInput: parseInput, onKeyDown: onKeyDown, placeholder: placeholder }),
|
|
62
78
|
react_1.default.createElement(FilterButtonBar_1.FilterButtonBar, { setFilter: function () { return setFilter([from, to]); }, clearFilter: clearFilter, translatedLabels: translatedLabels })));
|
|
63
79
|
};
|
|
64
80
|
exports.DateRangeFilter = DateRangeFilter;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
1
|
+
export { useExpanderCell } from './useExpanderCell';
|
|
2
|
+
export { useSelectionCell } from './useSelectionCell';
|
|
3
3
|
export { useSubRowFiltering } from './useSubRowFiltering';
|
|
4
4
|
export { useSubRowSelection } from './useSubRowSelection';
|
|
5
5
|
export { useResizeColumns } from './useResizeColumns';
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.useColumnDragAndDrop = exports.useResizeColumns = exports.useSubRowSelection = exports.useSubRowFiltering = exports.useSelectionCell = exports.
|
|
3
|
+
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.
|
|
7
7
|
*--------------------------------------------------------------------------------------------*/
|
|
8
8
|
var useExpanderCell_1 = require("./useExpanderCell");
|
|
9
|
-
Object.defineProperty(exports, "EXPANDER_CELL_ID", { enumerable: true, get: function () { return useExpanderCell_1.EXPANDER_CELL_ID; } });
|
|
10
9
|
Object.defineProperty(exports, "useExpanderCell", { enumerable: true, get: function () { return useExpanderCell_1.useExpanderCell; } });
|
|
11
10
|
var useSelectionCell_1 = require("./useSelectionCell");
|
|
12
|
-
Object.defineProperty(exports, "SELECTION_CELL_ID", { enumerable: true, get: function () { return useSelectionCell_1.SELECTION_CELL_ID; } });
|
|
13
11
|
Object.defineProperty(exports, "useSelectionCell", { enumerable: true, get: function () { return useSelectionCell_1.useSelectionCell; } });
|
|
14
12
|
var useSubRowFiltering_1 = require("./useSubRowFiltering");
|
|
15
13
|
Object.defineProperty(exports, "useSubRowFiltering", { enumerable: true, get: function () { return useSubRowFiltering_1.useSubRowFiltering; } });
|
|
@@ -1,4 +1,3 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { CellProps, Hooks, Row } from 'react-table';
|
|
3
|
-
export declare const EXPANDER_CELL_ID = "iui-table-expander";
|
|
4
3
|
export declare const useExpanderCell: <T extends Record<string, unknown>>(subComponent?: ((row: Row<T>) => React.ReactNode) | undefined, expanderCell?: ((cellProps: CellProps<T, any>) => React.ReactNode) | undefined, isRowDisabled?: ((rowData: T) => boolean) | undefined) => (hooks: Hooks<T>) => void;
|
|
@@ -1,4 +1,15 @@
|
|
|
1
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
|
+
};
|
|
2
13
|
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
3
14
|
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
4
15
|
if (ar || !(i in from)) {
|
|
@@ -8,50 +19,25 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
8
19
|
}
|
|
9
20
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
10
21
|
};
|
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
22
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.useExpanderCell =
|
|
16
|
-
|
|
17
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
18
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
19
|
-
*--------------------------------------------------------------------------------------------*/
|
|
20
|
-
var ChevronRight_1 = __importDefault(require("@itwin/itwinui-icons-react/cjs/icons/ChevronRight"));
|
|
21
|
-
var react_1 = __importDefault(require("react"));
|
|
22
|
-
var Buttons_1 = require("../../Buttons");
|
|
23
|
-
exports.EXPANDER_CELL_ID = 'iui-table-expander';
|
|
23
|
+
exports.useExpanderCell = void 0;
|
|
24
|
+
var columns_1 = require("../columns");
|
|
24
25
|
var useExpanderCell = function (subComponent, expanderCell, isRowDisabled) { return function (hooks) {
|
|
25
26
|
if (!subComponent) {
|
|
26
27
|
return;
|
|
27
28
|
}
|
|
28
|
-
hooks.allColumns.push(function (columns) {
|
|
29
|
-
{
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
disableGroupBy: true,
|
|
33
|
-
minWidth: 48,
|
|
34
|
-
width: 48,
|
|
35
|
-
maxWidth: 48,
|
|
36
|
-
columnClassName: 'iui-slot',
|
|
37
|
-
cellClassName: 'iui-slot',
|
|
38
|
-
disableReordering: true,
|
|
39
|
-
Cell: function (props) {
|
|
40
|
-
var row = props.row;
|
|
41
|
-
if (!subComponent(row)) {
|
|
42
|
-
return null;
|
|
43
|
-
}
|
|
44
|
-
else if (expanderCell) {
|
|
45
|
-
return expanderCell(props);
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
48
|
-
return (react_1.default.createElement(Buttons_1.IconButton, { className: 'iui-row-expander', styleType: 'borderless', size: 'small', onClick: function (e) {
|
|
49
|
-
e.stopPropagation();
|
|
50
|
-
row.toggleRowExpanded();
|
|
51
|
-
}, disabled: isRowDisabled === null || isRowDisabled === void 0 ? void 0 : isRowDisabled(props.row.original) }, react_1.default.createElement(ChevronRight_1.default, null)));
|
|
52
|
-
}
|
|
53
|
-
},
|
|
29
|
+
hooks.allColumns.push(function (columns) {
|
|
30
|
+
var hasExpanderColumn = columns.find(function (c) { return c.id === columns_1.EXPANDER_CELL_ID; });
|
|
31
|
+
if (hasExpanderColumn) {
|
|
32
|
+
return columns;
|
|
54
33
|
}
|
|
55
|
-
|
|
34
|
+
var expanderColumn = (0, columns_1.ExpanderColumn)({
|
|
35
|
+
subComponent: subComponent,
|
|
36
|
+
isDisabled: isRowDisabled,
|
|
37
|
+
});
|
|
38
|
+
return __spreadArray([
|
|
39
|
+
__assign(__assign({}, expanderColumn), { Cell: expanderCell !== null && expanderCell !== void 0 ? expanderCell : expanderColumn.Cell })
|
|
40
|
+
], columns, true);
|
|
41
|
+
});
|
|
56
42
|
}; };
|
|
57
43
|
exports.useExpanderCell = useExpanderCell;
|
|
@@ -229,7 +229,10 @@ var useInstanceBeforeDimensions = function (instance) {
|
|
|
229
229
|
};
|
|
230
230
|
var getPreviousResizableHeader = function (headerColumn, instance) {
|
|
231
231
|
var _a;
|
|
232
|
-
var headersList = ((_a = headerColumn.parent) === null || _a === void 0 ? void 0 : _a.columns) || instance.flatHeaders
|
|
232
|
+
var headersList = (((_a = headerColumn.parent) === null || _a === void 0 ? void 0 : _a.columns) || instance.flatHeaders).filter(function (_a) {
|
|
233
|
+
var isVisible = _a.isVisible;
|
|
234
|
+
return isVisible;
|
|
235
|
+
});
|
|
233
236
|
var headerIndex = headersList.findIndex(function (h) { return h.id === headerColumn.id; });
|
|
234
237
|
return __spreadArray([], headersList, true).slice(0, headerIndex)
|
|
235
238
|
.reverse()
|
|
@@ -237,7 +240,10 @@ var getPreviousResizableHeader = function (headerColumn, instance) {
|
|
|
237
240
|
};
|
|
238
241
|
var getNextResizableHeader = function (headerColumn, instance) {
|
|
239
242
|
var _a;
|
|
240
|
-
var headersList = ((_a = headerColumn.parent) === null || _a === void 0 ? void 0 : _a.columns) || instance.flatHeaders
|
|
243
|
+
var headersList = (((_a = headerColumn.parent) === null || _a === void 0 ? void 0 : _a.columns) || instance.flatHeaders).filter(function (_a) {
|
|
244
|
+
var isVisible = _a.isVisible;
|
|
245
|
+
return isVisible;
|
|
246
|
+
});
|
|
241
247
|
var headerIndex = headersList.findIndex(function (h) { return h.id === headerColumn.id; });
|
|
242
248
|
return __spreadArray([], headersList, true).slice(headerIndex + 1)
|
|
243
249
|
.find(function (h) { return !h.disableResizing; });
|
|
@@ -1,3 +1,2 @@
|
|
|
1
1
|
import { Hooks } from 'react-table';
|
|
2
|
-
export declare const SELECTION_CELL_ID = "iui-table-checkbox-selector";
|
|
3
2
|
export declare const useSelectionCell: <T extends Record<string, unknown>>(isSelectable: boolean, isRowDisabled?: ((rowData: T) => boolean) | undefined) => (hooks: Hooks<T>) => void;
|
|
@@ -1,15 +1,4 @@
|
|
|
1
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
2
|
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
14
3
|
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
15
4
|
if (ar || !(i in from)) {
|
|
@@ -19,52 +8,17 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
19
8
|
}
|
|
20
9
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
21
10
|
};
|
|
22
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
23
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
24
|
-
};
|
|
25
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.useSelectionCell =
|
|
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"));
|
|
32
|
-
var Checkbox_1 = require("../../Checkbox");
|
|
33
|
-
exports.SELECTION_CELL_ID = 'iui-table-checkbox-selector';
|
|
12
|
+
exports.useSelectionCell = void 0;
|
|
13
|
+
var columns_1 = require("../columns");
|
|
34
14
|
var useSelectionCell = function (isSelectable, isRowDisabled) { return function (hooks) {
|
|
35
15
|
if (!isSelectable) {
|
|
36
16
|
return;
|
|
37
17
|
}
|
|
38
|
-
hooks.allColumns.push(function (columns) {
|
|
39
|
-
{
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
disableGroupBy: true,
|
|
43
|
-
minWidth: 48,
|
|
44
|
-
width: 48,
|
|
45
|
-
maxWidth: 48,
|
|
46
|
-
columnClassName: 'iui-slot',
|
|
47
|
-
cellClassName: 'iui-slot',
|
|
48
|
-
disableReordering: true,
|
|
49
|
-
Header: function (_a) {
|
|
50
|
-
var getToggleAllRowsSelectedProps = _a.getToggleAllRowsSelectedProps, rows = _a.rows, initialRows = _a.initialRows, state = _a.state;
|
|
51
|
-
var disabled = rows.every(function (row) { return isRowDisabled === null || isRowDisabled === void 0 ? void 0 : isRowDisabled(row.original); });
|
|
52
|
-
var checked = initialRows.every(function (row) {
|
|
53
|
-
return state.selectedRowIds[row.id] || (isRowDisabled === null || isRowDisabled === void 0 ? void 0 : isRowDisabled(row.original));
|
|
54
|
-
});
|
|
55
|
-
return (react_1.default.createElement(Checkbox_1.Checkbox, __assign({}, getToggleAllRowsSelectedProps(), { checked: checked && !disabled, indeterminate: !checked && Object.keys(state.selectedRowIds).length > 0, disabled: disabled })));
|
|
56
|
-
},
|
|
57
|
-
Cell: function (_a) {
|
|
58
|
-
var row = _a.row;
|
|
59
|
-
return (react_1.default.createElement(Checkbox_1.Checkbox, __assign({}, row.getToggleRowSelectedProps(), { disabled: isRowDisabled === null || isRowDisabled === void 0 ? void 0 : isRowDisabled(row.original), onClick: function (e) { return e.stopPropagation(); } })));
|
|
60
|
-
},
|
|
61
|
-
}
|
|
62
|
-
], columns, true); });
|
|
63
|
-
hooks.useInstanceBeforeDimensions.push(function (_a) {
|
|
64
|
-
var headerGroups = _a.headerGroups;
|
|
65
|
-
// Fix the parent group of the selection button to not be resizable
|
|
66
|
-
var selectionGroupHeader = headerGroups[0].headers[0];
|
|
67
|
-
selectionGroupHeader.canResize = false;
|
|
18
|
+
hooks.allColumns.push(function (columns) {
|
|
19
|
+
return columns.find(function (c) { return c.id === columns_1.SELECTION_CELL_ID; })
|
|
20
|
+
? columns
|
|
21
|
+
: __spreadArray([(0, columns_1.SelectionColumn)({ isDisabled: isRowDisabled })], columns, true);
|
|
68
22
|
});
|
|
69
23
|
}; };
|
|
70
24
|
exports.useSelectionCell = useSelectionCell;
|
|
@@ -6,5 +6,6 @@ export { DefaultCell, EditableCell } from './cells';
|
|
|
6
6
|
export type { DefaultCellProps, EditableCellProps } from './cells';
|
|
7
7
|
export { TablePaginator } from './TablePaginator';
|
|
8
8
|
export type { TablePaginatorProps } from './TablePaginator';
|
|
9
|
+
export { ActionColumn, ExpanderColumn, SelectionColumn } from './columns';
|
|
9
10
|
declare const _default: "./Table";
|
|
10
11
|
export default _default;
|
package/cjs/core/Table/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TablePaginator = exports.EditableCell = exports.DefaultCell = exports.tableFilters = exports.FilterButtonBar = exports.BaseFilter = exports.Table = void 0;
|
|
3
|
+
exports.SelectionColumn = exports.ExpanderColumn = exports.ActionColumn = exports.TablePaginator = exports.EditableCell = exports.DefaultCell = exports.tableFilters = exports.FilterButtonBar = exports.BaseFilter = exports.Table = 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.
|
|
@@ -16,4 +16,8 @@ Object.defineProperty(exports, "DefaultCell", { enumerable: true, get: function
|
|
|
16
16
|
Object.defineProperty(exports, "EditableCell", { enumerable: true, get: function () { return cells_1.EditableCell; } });
|
|
17
17
|
var TablePaginator_1 = require("./TablePaginator");
|
|
18
18
|
Object.defineProperty(exports, "TablePaginator", { enumerable: true, get: function () { return TablePaginator_1.TablePaginator; } });
|
|
19
|
+
var columns_1 = require("./columns");
|
|
20
|
+
Object.defineProperty(exports, "ActionColumn", { enumerable: true, get: function () { return columns_1.ActionColumn; } });
|
|
21
|
+
Object.defineProperty(exports, "ExpanderColumn", { enumerable: true, get: function () { return columns_1.ExpanderColumn; } });
|
|
22
|
+
Object.defineProperty(exports, "SelectionColumn", { enumerable: true, get: function () { return columns_1.SelectionColumn; } });
|
|
19
23
|
exports.default = './Table';
|
package/cjs/core/Table/utils.js
CHANGED
|
@@ -9,7 +9,7 @@ var getCellStyle = function (column, isTableResizing) {
|
|
|
9
9
|
style.width = width;
|
|
10
10
|
// This allows flexbox to handle the width of the column on table resize
|
|
11
11
|
if (isTableResizing && column.canResize) {
|
|
12
|
-
style.flex = Number(column.width) + "
|
|
12
|
+
style.flex = Number(column.width) + " " + Number(column.width) + " " + width;
|
|
13
13
|
}
|
|
14
14
|
else {
|
|
15
15
|
style.flex = "0 0 " + width;
|
package/cjs/core/Toast/Toast.js
CHANGED
|
@@ -143,7 +143,7 @@ var ToastPresentation = function (props) {
|
|
|
143
143
|
return (react_1.default.createElement("div", __assign({ className: (0, classnames_1.default)("iui-toast iui-" + category, className) }, rest),
|
|
144
144
|
react_1.default.createElement("div", { className: 'iui-status-area' }, react_1.default.createElement(StatusIcon, { className: 'iui-icon' })),
|
|
145
145
|
react_1.default.createElement("div", { className: 'iui-message' }, content),
|
|
146
|
-
link && (react_1.default.createElement("a", { className: 'iui-anchor', onClick: link.onClick }, link.title)),
|
|
146
|
+
link && (react_1.default.createElement("a", { className: 'iui-toast-anchor', onClick: link.onClick }, link.title)),
|
|
147
147
|
(type === 'persisting' || hasCloseButton) && (react_1.default.createElement(Buttons_1.IconButton, { size: 'small', styleType: 'borderless', onClick: onClose, "aria-label": 'Close' },
|
|
148
148
|
react_1.default.createElement(CloseSmall_1.default, null)))));
|
|
149
149
|
};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import '@itwin/itwinui-css/css/anchor.css';
|
|
2
3
|
export declare const Anchor: React.ForwardRefExoticComponent<Pick<React.DetailedHTMLProps<React.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>, "key" | keyof React.AnchorHTMLAttributes<HTMLAnchorElement>> & React.RefAttributes<HTMLAnchorElement>>;
|
|
3
4
|
export default Anchor;
|
|
@@ -33,6 +33,7 @@ exports.Anchor = void 0;
|
|
|
33
33
|
var react_1 = __importDefault(require("react"));
|
|
34
34
|
var classnames_1 = __importDefault(require("classnames"));
|
|
35
35
|
var utils_1 = require("../../utils");
|
|
36
|
+
require("@itwin/itwinui-css/css/anchor.css");
|
|
36
37
|
exports.Anchor = react_1.default.forwardRef(function (_a, ref) {
|
|
37
38
|
var className = _a.className, rest = __rest(_a, ["className"]);
|
|
38
39
|
(0, utils_1.useTheme)();
|
package/cjs/core/index.d.ts
CHANGED
|
@@ -8,6 +8,8 @@ export { Button, DropdownButton, IconButton, IdeasButton, SplitButton, } from '.
|
|
|
8
8
|
export type { ButtonProps, DropdownButtonProps, IconButtonProps, IdeasButtonProps, SplitButtonProps, } from './Buttons';
|
|
9
9
|
export { ButtonGroup } from './ButtonGroup';
|
|
10
10
|
export type { ButtonGroupProps } from './ButtonGroup';
|
|
11
|
+
export { Carousel } from './Carousel';
|
|
12
|
+
export type { CarouselProps } from './Carousel';
|
|
11
13
|
export { Checkbox } from './Checkbox';
|
|
12
14
|
export type { CheckboxProps } from './Checkbox';
|
|
13
15
|
export { ColorPicker, ColorSwatch, ColorBuilder, ColorInputPanel, ColorPalette, } from './ColorPicker';
|
|
@@ -48,8 +50,8 @@ export { LabeledTextarea } from './LabeledTextarea';
|
|
|
48
50
|
export type { LabeledTextareaProps } from './LabeledTextarea';
|
|
49
51
|
export { Menu, MenuItem, MenuDivider, MenuExtraContent } from './Menu';
|
|
50
52
|
export type { MenuProps, MenuItemProps, MenuDividerProps, MenuExtraContentProps, } from './Menu';
|
|
51
|
-
export { Modal, ModalButtonBar } from './Modal';
|
|
52
|
-
export type { ModalProps, ModalButtonBarProps } from './Modal';
|
|
53
|
+
export { Modal, ModalButtonBar, ModalContent } from './Modal';
|
|
54
|
+
export type { ModalProps, ModalButtonBarProps, ModalContentProps, } from './Modal';
|
|
53
55
|
export { ProgressLinear, ProgressRadial } from './ProgressIndicators';
|
|
54
56
|
export type { ProgressLinearProps, ProgressRadialProps, } from './ProgressIndicators';
|
|
55
57
|
export { Radio } from './Radio';
|
|
@@ -64,7 +66,7 @@ export { Slider } from './Slider';
|
|
|
64
66
|
export type { SliderProps } from './Slider';
|
|
65
67
|
export { StatusMessage } from './StatusMessage';
|
|
66
68
|
export type { StatusMessageProps } from './StatusMessage';
|
|
67
|
-
export { Table, tableFilters, FilterButtonBar, DefaultCell, EditableCell, TablePaginator, } from './Table';
|
|
69
|
+
export { Table, tableFilters, FilterButtonBar, DefaultCell, EditableCell, TablePaginator, ActionColumn, ExpanderColumn, SelectionColumn, } from './Table';
|
|
68
70
|
export type { TableProps, TableFilterProps, TableFilterValue, DateRangeFilterOptions, FilterButtonBarProps, DefaultCellProps, EditableCellProps, TablePaginatorProps, TablePaginatorRendererProps, } from './Table';
|
|
69
71
|
export { Tag, TagContainer } from './Tag';
|
|
70
72
|
export type { TagProps, TagContainerProps } from './Tag';
|
package/cjs/core/index.js
CHANGED
|
@@ -3,8 +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.
|
|
6
|
+
exports.Modal = 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.Wizard = exports.UserIconGroup = exports.UserIcon = 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.StatusMessage = exports.Slider = exports.SidenavSubmenuHeader = exports.SidenavSubmenu = exports.SidenavButton = exports.SideNavigation = exports.Select = exports.RadioTileGroup = exports.RadioTile = exports.Radio = exports.ProgressRadial = exports.ProgressLinear = exports.ModalContent = exports.ModalButtonBar = void 0;
|
|
8
|
+
exports.MiddleTextTruncation = exports.ColorValue = exports.useTheme = exports.getUserColor = void 0;
|
|
8
9
|
/*---------------------------------------------------------------------------------------------
|
|
9
10
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
10
11
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
@@ -23,6 +24,8 @@ Object.defineProperty(exports, "IdeasButton", { enumerable: true, get: function
|
|
|
23
24
|
Object.defineProperty(exports, "SplitButton", { enumerable: true, get: function () { return Buttons_1.SplitButton; } });
|
|
24
25
|
var ButtonGroup_1 = require("./ButtonGroup");
|
|
25
26
|
Object.defineProperty(exports, "ButtonGroup", { enumerable: true, get: function () { return ButtonGroup_1.ButtonGroup; } });
|
|
27
|
+
var Carousel_1 = require("./Carousel");
|
|
28
|
+
Object.defineProperty(exports, "Carousel", { enumerable: true, get: function () { return Carousel_1.Carousel; } });
|
|
26
29
|
var Checkbox_1 = require("./Checkbox");
|
|
27
30
|
Object.defineProperty(exports, "Checkbox", { enumerable: true, get: function () { return Checkbox_1.Checkbox; } });
|
|
28
31
|
var ColorPicker_1 = require("./ColorPicker");
|
|
@@ -85,6 +88,7 @@ Object.defineProperty(exports, "MenuExtraContent", { enumerable: true, get: func
|
|
|
85
88
|
var Modal_1 = require("./Modal");
|
|
86
89
|
Object.defineProperty(exports, "Modal", { enumerable: true, get: function () { return Modal_1.Modal; } });
|
|
87
90
|
Object.defineProperty(exports, "ModalButtonBar", { enumerable: true, get: function () { return Modal_1.ModalButtonBar; } });
|
|
91
|
+
Object.defineProperty(exports, "ModalContent", { enumerable: true, get: function () { return Modal_1.ModalContent; } });
|
|
88
92
|
var ProgressIndicators_1 = require("./ProgressIndicators");
|
|
89
93
|
Object.defineProperty(exports, "ProgressLinear", { enumerable: true, get: function () { return ProgressIndicators_1.ProgressLinear; } });
|
|
90
94
|
Object.defineProperty(exports, "ProgressRadial", { enumerable: true, get: function () { return ProgressIndicators_1.ProgressRadial; } });
|
|
@@ -111,6 +115,9 @@ Object.defineProperty(exports, "FilterButtonBar", { enumerable: true, get: funct
|
|
|
111
115
|
Object.defineProperty(exports, "DefaultCell", { enumerable: true, get: function () { return Table_1.DefaultCell; } });
|
|
112
116
|
Object.defineProperty(exports, "EditableCell", { enumerable: true, get: function () { return Table_1.EditableCell; } });
|
|
113
117
|
Object.defineProperty(exports, "TablePaginator", { enumerable: true, get: function () { return Table_1.TablePaginator; } });
|
|
118
|
+
Object.defineProperty(exports, "ActionColumn", { enumerable: true, get: function () { return Table_1.ActionColumn; } });
|
|
119
|
+
Object.defineProperty(exports, "ExpanderColumn", { enumerable: true, get: function () { return Table_1.ExpanderColumn; } });
|
|
120
|
+
Object.defineProperty(exports, "SelectionColumn", { enumerable: true, get: function () { return Table_1.SelectionColumn; } });
|
|
114
121
|
var Tag_1 = require("./Tag");
|
|
115
122
|
Object.defineProperty(exports, "Tag", { enumerable: true, get: function () { return Tag_1.Tag; } });
|
|
116
123
|
Object.defineProperty(exports, "TagContainer", { enumerable: true, get: function () { return Tag_1.TagContainer; } });
|
|
@@ -78,7 +78,19 @@ exports.Popover = react_1.default.forwardRef(function (props, ref) {
|
|
|
78
78
|
};
|
|
79
79
|
}
|
|
80
80
|
else {
|
|
81
|
-
|
|
81
|
+
// Fixing issue where elements below Popover gets click events.
|
|
82
|
+
// Tippy uses react Portal, which propagates events by react tree, not dom tree.
|
|
83
|
+
// Read more: https://reactjs.org/docs/portals.html#event-bubbling-through-portals
|
|
84
|
+
var clonedContent = react_1.default.isValidElement(props.content)
|
|
85
|
+
? react_1.default.cloneElement(props.content, {
|
|
86
|
+
onClick: function (e) {
|
|
87
|
+
var _a, _b;
|
|
88
|
+
e.stopPropagation();
|
|
89
|
+
(_b = (_a = props.content.props).onClick) === null || _b === void 0 ? void 0 : _b.call(_a, e);
|
|
90
|
+
},
|
|
91
|
+
})
|
|
92
|
+
: props.content;
|
|
93
|
+
computedProps.content = mounted ? clonedContent : '';
|
|
82
94
|
}
|
|
83
95
|
return react_1.default.createElement(react_2.default, __assign({}, computedProps, { ref: refs }));
|
|
84
96
|
});
|
|
@@ -21,3 +21,4 @@ __exportStar(require("./useResizeObserver"), exports);
|
|
|
21
21
|
__exportStar(require("./useContainerWidth"), exports);
|
|
22
22
|
__exportStar(require("./useTheme"), exports);
|
|
23
23
|
__exportStar(require("./useIntersection"), exports);
|
|
24
|
+
__exportStar(require("./useMediaQuery"), exports);
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.useMediaQuery = void 0;
|
|
7
|
+
/*---------------------------------------------------------------------------------------------
|
|
8
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
9
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
10
|
+
*--------------------------------------------------------------------------------------------*/
|
|
11
|
+
var react_1 = __importDefault(require("react"));
|
|
12
|
+
var functions_1 = require("../functions");
|
|
13
|
+
var useMediaQuery = function (queryString) {
|
|
14
|
+
var _a = react_1.default.useState(), matches = _a[0], setMatches = _a[1];
|
|
15
|
+
react_1.default.useLayoutEffect(function () {
|
|
16
|
+
var _a, _b, _c;
|
|
17
|
+
var mediaQueryList = (_b = (_a = (0, functions_1.getWindow)()) === null || _a === void 0 ? void 0 : _a.matchMedia) === null || _b === void 0 ? void 0 : _b.call(_a, queryString);
|
|
18
|
+
var handleChange = function (_a) {
|
|
19
|
+
var matches = _a.matches;
|
|
20
|
+
return setMatches(matches);
|
|
21
|
+
};
|
|
22
|
+
if (mediaQueryList != undefined) {
|
|
23
|
+
setMatches(mediaQueryList.matches);
|
|
24
|
+
try {
|
|
25
|
+
mediaQueryList.addEventListener('change', handleChange);
|
|
26
|
+
}
|
|
27
|
+
catch (_d) {
|
|
28
|
+
// Safari 13 fallback
|
|
29
|
+
(_c = mediaQueryList.addListener) === null || _c === void 0 ? void 0 : _c.call(mediaQueryList, handleChange);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return function () {
|
|
33
|
+
var _a;
|
|
34
|
+
try {
|
|
35
|
+
mediaQueryList === null || mediaQueryList === void 0 ? void 0 : mediaQueryList.removeEventListener('change', handleChange);
|
|
36
|
+
}
|
|
37
|
+
catch (_b) {
|
|
38
|
+
// Safari 13 fallback
|
|
39
|
+
(_a = mediaQueryList === null || mediaQueryList === void 0 ? void 0 : mediaQueryList.removeListener) === null || _a === void 0 ? void 0 : _a.call(mediaQueryList, handleChange);
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
}, [queryString]);
|
|
43
|
+
return !!matches;
|
|
44
|
+
};
|
|
45
|
+
exports.useMediaQuery = useMediaQuery;
|
|
46
|
+
exports.default = exports.useMediaQuery;
|
|
@@ -6,6 +6,11 @@ export declare type ThemeOptions = {
|
|
|
6
6
|
* @default document
|
|
7
7
|
*/
|
|
8
8
|
ownerDocument?: Document;
|
|
9
|
+
/**
|
|
10
|
+
* Whether to apply high-contrast versions of light and dark themes.
|
|
11
|
+
* Will default to user preference if browser supports it.
|
|
12
|
+
*/
|
|
13
|
+
highContrast?: boolean;
|
|
9
14
|
};
|
|
10
15
|
export declare type ThemeType = 'light' | 'dark' | 'os';
|
|
11
16
|
/**
|