@itwin/itwinui-react 1.42.0 → 1.44.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/Backdrop/Backdrop.d.ts +10 -0
- package/cjs/core/Backdrop/Backdrop.js +41 -0
- package/cjs/core/Backdrop/index.d.ts +2 -0
- package/cjs/core/Backdrop/index.js +9 -0
- package/cjs/core/Breadcrumbs/Breadcrumbs.js +18 -18
- package/cjs/core/ButtonGroup/ButtonGroup.js +11 -4
- package/cjs/core/Dialog/Dialog.d.ts +41 -0
- package/cjs/core/Dialog/Dialog.js +59 -0
- package/cjs/core/Dialog/DialogBackdrop.d.ts +12 -0
- package/cjs/core/Dialog/DialogBackdrop.js +61 -0
- package/cjs/core/Dialog/DialogButtonBar.d.ts +18 -0
- package/cjs/core/Dialog/DialogButtonBar.js +50 -0
- package/cjs/core/Dialog/DialogContent.d.ts +17 -0
- package/cjs/core/Dialog/DialogContent.js +49 -0
- package/cjs/core/Dialog/DialogContext.d.ts +39 -0
- package/cjs/core/Dialog/DialogContext.js +16 -0
- package/cjs/core/Dialog/DialogMain.d.ts +36 -0
- package/cjs/core/Dialog/DialogMain.js +120 -0
- package/cjs/core/Dialog/DialogTitleBar.d.ts +34 -0
- package/cjs/core/Dialog/DialogTitleBar.js +69 -0
- package/cjs/core/Dialog/DialogTitleBarTitle.d.ts +15 -0
- package/cjs/core/Dialog/DialogTitleBarTitle.js +47 -0
- package/cjs/core/Dialog/index.d.ts +8 -0
- package/cjs/core/Dialog/index.js +10 -0
- package/cjs/core/Footer/Footer.d.ts +16 -2
- package/cjs/core/Footer/Footer.js +57 -45
- package/cjs/core/Footer/FooterItem.d.ts +8 -0
- package/cjs/core/Footer/FooterItem.js +46 -0
- package/cjs/core/Footer/FooterList.d.ts +8 -0
- package/cjs/core/Footer/FooterList.js +46 -0
- package/cjs/core/Footer/FooterSeparator.d.ts +8 -0
- package/cjs/core/Footer/FooterSeparator.js +46 -0
- package/cjs/core/Footer/index.d.ts +1 -1
- package/cjs/core/Footer/index.js +2 -1
- package/cjs/core/Menu/Menu.js +0 -3
- package/cjs/core/Modal/Modal.d.ts +4 -14
- package/cjs/core/Modal/Modal.js +9 -74
- package/cjs/core/Modal/ModalButtonBar.d.ts +1 -2
- package/cjs/core/Modal/ModalButtonBar.js +2 -39
- package/cjs/core/Modal/ModalContent.d.ts +1 -2
- package/cjs/core/Modal/ModalContent.js +2 -39
- package/cjs/core/Select/Select.d.ts +23 -8
- package/cjs/core/Select/Select.js +82 -25
- package/cjs/core/Select/SelectTag.d.ts +15 -0
- package/cjs/core/Select/SelectTag.js +48 -0
- package/cjs/core/Select/index.d.ts +1 -1
- package/cjs/core/Slider/Slider.d.ts +10 -0
- package/cjs/core/Slider/Slider.js +20 -14
- package/cjs/core/Slider/Thumb.d.ts +2 -1
- package/cjs/core/Slider/Thumb.js +5 -3
- package/cjs/core/Slider/Track.d.ts +2 -1
- package/cjs/core/Slider/Track.js +23 -4
- package/cjs/core/Table/Table.d.ts +2 -1
- package/cjs/core/Table/Table.js +8 -2
- package/cjs/core/Table/columns/actionColumn.d.ts +8 -3
- package/cjs/core/Table/columns/actionColumn.js +33 -2
- package/cjs/core/Table/hooks/useScrollToRow.d.ts +1 -1
- package/cjs/core/Table/hooks/useScrollToRow.js +3 -3
- package/cjs/core/index.d.ts +4 -2
- package/cjs/core/index.js +6 -3
- package/cjs/core/utils/components/FocusTrap.js +1 -1
- package/cjs/core/utils/components/MiddleTextTruncation.js +1 -1
- package/cjs/core/utils/hooks/useOverflow.js +4 -1
- package/esm/core/Backdrop/Backdrop.d.ts +10 -0
- package/esm/core/Backdrop/Backdrop.js +35 -0
- package/esm/core/Backdrop/index.d.ts +2 -0
- package/esm/core/Backdrop/index.js +5 -0
- package/esm/core/Breadcrumbs/Breadcrumbs.js +18 -18
- package/esm/core/ButtonGroup/ButtonGroup.js +11 -4
- package/esm/core/Dialog/Dialog.d.ts +41 -0
- package/esm/core/Dialog/Dialog.js +53 -0
- package/esm/core/Dialog/DialogBackdrop.d.ts +12 -0
- package/esm/core/Dialog/DialogBackdrop.js +55 -0
- package/esm/core/Dialog/DialogButtonBar.d.ts +18 -0
- package/esm/core/Dialog/DialogButtonBar.js +44 -0
- package/esm/core/Dialog/DialogContent.d.ts +17 -0
- package/esm/core/Dialog/DialogContent.js +43 -0
- package/esm/core/Dialog/DialogContext.d.ts +39 -0
- package/esm/core/Dialog/DialogContext.js +9 -0
- package/esm/core/Dialog/DialogMain.d.ts +36 -0
- package/esm/core/Dialog/DialogMain.js +114 -0
- package/esm/core/Dialog/DialogTitleBar.d.ts +34 -0
- package/esm/core/Dialog/DialogTitleBar.js +63 -0
- package/esm/core/Dialog/DialogTitleBarTitle.d.ts +15 -0
- package/esm/core/Dialog/DialogTitleBarTitle.js +41 -0
- package/esm/core/Dialog/index.d.ts +8 -0
- package/esm/core/Dialog/index.js +6 -0
- package/esm/core/Footer/Footer.d.ts +16 -2
- package/esm/core/Footer/Footer.js +56 -43
- package/esm/core/Footer/FooterItem.d.ts +8 -0
- package/esm/core/Footer/FooterItem.js +39 -0
- package/esm/core/Footer/FooterList.d.ts +8 -0
- package/esm/core/Footer/FooterList.js +39 -0
- package/esm/core/Footer/FooterSeparator.d.ts +8 -0
- package/esm/core/Footer/FooterSeparator.js +39 -0
- package/esm/core/Footer/index.d.ts +1 -1
- package/esm/core/Footer/index.js +1 -1
- package/esm/core/Menu/Menu.js +0 -3
- package/esm/core/Modal/Modal.d.ts +4 -14
- package/esm/core/Modal/Modal.js +10 -75
- package/esm/core/Modal/ModalButtonBar.d.ts +1 -2
- package/esm/core/Modal/ModalButtonBar.js +2 -35
- package/esm/core/Modal/ModalContent.d.ts +1 -2
- package/esm/core/Modal/ModalContent.js +2 -35
- package/esm/core/Select/Select.d.ts +23 -8
- package/esm/core/Select/Select.js +83 -26
- package/esm/core/Select/SelectTag.d.ts +15 -0
- package/esm/core/Select/SelectTag.js +41 -0
- package/esm/core/Select/index.d.ts +1 -1
- package/esm/core/Slider/Slider.d.ts +10 -0
- package/esm/core/Slider/Slider.js +20 -14
- package/esm/core/Slider/Thumb.d.ts +2 -1
- package/esm/core/Slider/Thumb.js +5 -3
- package/esm/core/Slider/Track.d.ts +2 -1
- package/esm/core/Slider/Track.js +23 -4
- package/esm/core/Table/Table.d.ts +2 -1
- package/esm/core/Table/Table.js +8 -2
- package/esm/core/Table/columns/actionColumn.d.ts +8 -3
- package/esm/core/Table/columns/actionColumn.js +33 -2
- package/esm/core/Table/hooks/useScrollToRow.d.ts +1 -1
- package/esm/core/Table/hooks/useScrollToRow.js +3 -3
- package/esm/core/index.d.ts +4 -2
- package/esm/core/index.js +2 -1
- package/esm/core/utils/components/FocusTrap.js +1 -1
- package/esm/core/utils/components/MiddleTextTruncation.js +1 -1
- package/esm/core/utils/hooks/useOverflow.js +4 -1
- package/package.json +6 -5
package/cjs/core/Footer/index.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Footer = void 0;
|
|
3
|
+
exports.defaultFooterElements = exports.Footer = 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 Footer_1 = require("./Footer");
|
|
9
9
|
Object.defineProperty(exports, "Footer", { enumerable: true, get: function () { return Footer_1.Footer; } });
|
|
10
|
+
Object.defineProperty(exports, "defaultFooterElements", { enumerable: true, get: function () { return Footer_1.defaultFooterElements; } });
|
|
10
11
|
exports.default = './Footer';
|
package/cjs/core/Menu/Menu.js
CHANGED
|
@@ -43,9 +43,6 @@ exports.Menu = react_1.default.forwardRef(function (props, ref) {
|
|
|
43
43
|
var _c = react_1.default.useState(), focusedIndex = _c[0], setFocusedIndex = _c[1];
|
|
44
44
|
var menuRef = react_1.default.useRef(null);
|
|
45
45
|
var refs = (0, utils_1.useMergedRefs)(menuRef, ref);
|
|
46
|
-
react_1.default.useEffect(function () {
|
|
47
|
-
setFocusedIndex(null);
|
|
48
|
-
}, [children]);
|
|
49
46
|
var getFocusableNodes = react_1.default.useCallback(function () {
|
|
50
47
|
var focusableItems = (0, utils_1.getFocusableElements)(menuRef.current);
|
|
51
48
|
// Filter out focusable elements that are inside each menu item, e.g. checkbox, anchor
|
|
@@ -1,13 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { CommonProps } from '../utils';
|
|
3
3
|
import '@itwin/itwinui-css/css/dialog.css';
|
|
4
|
-
import '
|
|
4
|
+
import { DialogMainProps } from '../Dialog';
|
|
5
5
|
export declare type ModalProps = {
|
|
6
|
-
/**
|
|
7
|
-
* Flag whether modal should be shown.
|
|
8
|
-
* @default false
|
|
9
|
-
*/
|
|
10
|
-
isOpen?: boolean;
|
|
11
6
|
/**
|
|
12
7
|
* Modal title.
|
|
13
8
|
*/
|
|
@@ -46,16 +41,11 @@ export declare type ModalProps = {
|
|
|
46
41
|
* @default document
|
|
47
42
|
*/
|
|
48
43
|
ownerDocument?: Document;
|
|
49
|
-
/**
|
|
50
|
-
* Type of the modal.
|
|
51
|
-
* @default 'default'
|
|
52
|
-
*/
|
|
53
|
-
styleType?: 'default' | 'fullPage';
|
|
54
44
|
/**
|
|
55
45
|
* Content of the modal.
|
|
56
46
|
*/
|
|
57
47
|
children: React.ReactNode;
|
|
58
|
-
} & Omit<CommonProps, 'title'>;
|
|
48
|
+
} & Pick<DialogMainProps, 'isOpen' | 'styleType'> & Omit<CommonProps, 'title'>;
|
|
59
49
|
/**
|
|
60
50
|
* Modal component which can wrap any content.
|
|
61
51
|
* @example
|
|
@@ -64,9 +54,9 @@ export declare type ModalProps = {
|
|
|
64
54
|
* title='My modal'
|
|
65
55
|
* onClose={onClose}
|
|
66
56
|
* >
|
|
67
|
-
* <
|
|
57
|
+
* <ModalContent>
|
|
68
58
|
* Here is my modal content
|
|
69
|
-
* </
|
|
59
|
+
* </ModalContent>
|
|
70
60
|
* <ModalButtonBar>
|
|
71
61
|
* <Button styleType='high-visibility'>
|
|
72
62
|
* Primary button
|
package/cjs/core/Modal/Modal.js
CHANGED
|
@@ -32,13 +32,9 @@ exports.Modal = void 0;
|
|
|
32
32
|
*--------------------------------------------------------------------------------------------*/
|
|
33
33
|
var react_1 = __importDefault(require("react"));
|
|
34
34
|
var react_dom_1 = __importDefault(require("react-dom"));
|
|
35
|
-
var classnames_1 = __importDefault(require("classnames"));
|
|
36
|
-
var Close_1 = __importDefault(require("@itwin/itwinui-icons-react/cjs/icons/Close"));
|
|
37
35
|
var utils_1 = require("../utils");
|
|
38
36
|
require("@itwin/itwinui-css/css/dialog.css");
|
|
39
|
-
require("
|
|
40
|
-
var IconButton_1 = require("../Buttons/IconButton");
|
|
41
|
-
var react_transition_group_1 = require("react-transition-group");
|
|
37
|
+
var Dialog_1 = require("../Dialog");
|
|
42
38
|
/**
|
|
43
39
|
* Modal component which can wrap any content.
|
|
44
40
|
* @example
|
|
@@ -47,9 +43,9 @@ var react_transition_group_1 = require("react-transition-group");
|
|
|
47
43
|
* title='My modal'
|
|
48
44
|
* onClose={onClose}
|
|
49
45
|
* >
|
|
50
|
-
* <
|
|
46
|
+
* <ModalContent>
|
|
51
47
|
* Here is my modal content
|
|
52
|
-
* </
|
|
48
|
+
* </ModalContent>
|
|
53
49
|
* <ModalButtonBar>
|
|
54
50
|
* <Button styleType='high-visibility'>
|
|
55
51
|
* Primary button
|
|
@@ -61,75 +57,14 @@ var react_transition_group_1 = require("react-transition-group");
|
|
|
61
57
|
* </Modal>
|
|
62
58
|
*/
|
|
63
59
|
var Modal = function (props) {
|
|
64
|
-
var _a = props.isOpen, isOpen = _a === void 0 ? false : _a, _b = props.isDismissible, isDismissible = _b === void 0 ? true : _b, _c = props.closeOnEsc, closeOnEsc = _c === void 0 ? true : _c, _d = props.closeOnExternalClick, closeOnExternalClick = _d === void 0 ? true : _d, onClose = props.onClose, title = props.title,
|
|
60
|
+
var _a = props.isOpen, isOpen = _a === void 0 ? false : _a, _b = props.isDismissible, isDismissible = _b === void 0 ? true : _b, _c = props.closeOnEsc, closeOnEsc = _c === void 0 ? true : _c, _d = props.closeOnExternalClick, closeOnExternalClick = _d === void 0 ? true : _d, onClose = props.onClose, title = props.title, children = props.children, _e = props.modalRootId, modalRootId = _e === void 0 ? 'iui-react-portal-container' : _e, _f = props.ownerDocument, ownerDocument = _f === void 0 ? (0, utils_1.getDocument)() : _f, rest = __rest(props, ["isOpen", "isDismissible", "closeOnEsc", "closeOnExternalClick", "onClose", "title", "children", "modalRootId", "ownerDocument"]);
|
|
65
61
|
(0, utils_1.useTheme)();
|
|
66
62
|
var container = (0, utils_1.getContainer)(modalRootId, ownerDocument);
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
var _a, _b;
|
|
73
|
-
if (isOpen) {
|
|
74
|
-
previousFocusedElement.current = document.activeElement;
|
|
75
|
-
(_a = overlayRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
(_b = previousFocusedElement.current) === null || _b === void 0 ? void 0 : _b.focus();
|
|
79
|
-
}
|
|
80
|
-
var modalOverlayRef = overlayRef.current;
|
|
81
|
-
return function () {
|
|
82
|
-
var _a;
|
|
83
|
-
(modalOverlayRef === null || modalOverlayRef === void 0 ? void 0 : modalOverlayRef.contains(document.activeElement)) &&
|
|
84
|
-
((_a = previousFocusedElement.current) === null || _a === void 0 ? void 0 : _a.focus());
|
|
85
|
-
};
|
|
86
|
-
}, [isOpen]);
|
|
87
|
-
react_1.default.useEffect(function () {
|
|
88
|
-
if (!ownerDocument) {
|
|
89
|
-
return;
|
|
90
|
-
}
|
|
91
|
-
if (isOpen) {
|
|
92
|
-
originalBodyOverflow.current = ownerDocument.body.style.overflow;
|
|
93
|
-
ownerDocument.body.style.overflow = 'hidden';
|
|
94
|
-
}
|
|
95
|
-
else {
|
|
96
|
-
ownerDocument.body.style.overflow = originalBodyOverflow.current;
|
|
97
|
-
}
|
|
98
|
-
return function () {
|
|
99
|
-
ownerDocument.body.style.overflow = originalBodyOverflow.current;
|
|
100
|
-
};
|
|
101
|
-
}, [isOpen, ownerDocument]);
|
|
102
|
-
var handleKeyDown = function (event) {
|
|
103
|
-
// Prevents React from resetting its properties
|
|
104
|
-
event.persist();
|
|
105
|
-
if (isDismissible && closeOnEsc && event.key === 'Escape' && onClose) {
|
|
106
|
-
onClose(event);
|
|
107
|
-
}
|
|
108
|
-
if (onKeyDown) {
|
|
109
|
-
onKeyDown(event);
|
|
110
|
-
}
|
|
111
|
-
};
|
|
112
|
-
var handleMouseDown = function (event) {
|
|
113
|
-
// Prevents React from resetting its properties
|
|
114
|
-
event.persist();
|
|
115
|
-
if (event.target !== overlayRef.current) {
|
|
116
|
-
return;
|
|
117
|
-
}
|
|
118
|
-
if (isDismissible && closeOnExternalClick && onClose) {
|
|
119
|
-
onClose(event);
|
|
120
|
-
}
|
|
121
|
-
};
|
|
122
|
-
return !!container ? (react_dom_1.default.createPortal(react_1.default.createElement(react_1.default.Fragment, null,
|
|
123
|
-
react_1.default.createElement("div", { className: (0, classnames_1.default)('iui-backdrop', { 'iui-backdrop-visible': isOpen }), tabIndex: -1, onKeyDown: handleKeyDown, ref: overlayRef, onMouseDown: handleMouseDown }),
|
|
124
|
-
react_1.default.createElement(utils_1.FocusTrap, null,
|
|
125
|
-
react_1.default.createElement("div", null,
|
|
126
|
-
react_1.default.createElement(react_transition_group_1.CSSTransition, { in: isOpen, classNames: 'iui-dialog-animation', timeout: { exit: 600 }, unmountOnExit: true },
|
|
127
|
-
react_1.default.createElement("div", __assign({ className: (0, classnames_1.default)('iui-dialog', { 'iui-dialog-default': styleType === 'default' }, { 'iui-dialog-full-page': styleType === 'fullPage' }, { 'iui-dialog-visible': isOpen }, className), id: id, style: style, role: 'dialog', "aria-modal": 'true' }, rest),
|
|
128
|
-
react_1.default.createElement("div", { className: 'iui-dialog-title-bar' },
|
|
129
|
-
react_1.default.createElement("div", { className: 'iui-dialog-title' }, title),
|
|
130
|
-
isDismissible && (react_1.default.createElement(IconButton_1.IconButton, { size: 'small', styleType: 'borderless', onClick: onClose, "aria-label": 'Close' },
|
|
131
|
-
react_1.default.createElement(Close_1.default, null)))),
|
|
132
|
-
children))))), container)) : (react_1.default.createElement(react_1.default.Fragment, null));
|
|
63
|
+
return !!container ? (react_dom_1.default.createPortal(react_1.default.createElement(Dialog_1.Dialog, { isOpen: isOpen, closeOnEsc: closeOnEsc, closeOnExternalClick: closeOnExternalClick, isDismissible: isDismissible, onClose: onClose, preventDocumentScroll: true, trapFocus: true },
|
|
64
|
+
react_1.default.createElement(Dialog_1.Dialog.Backdrop, null),
|
|
65
|
+
react_1.default.createElement(Dialog_1.Dialog.Main, __assign({ "aria-modal": true }, rest),
|
|
66
|
+
react_1.default.createElement(Dialog_1.Dialog.TitleBar, { titleText: title }),
|
|
67
|
+
children)), container)) : (react_1.default.createElement(react_1.default.Fragment, null));
|
|
133
68
|
};
|
|
134
69
|
exports.Modal = Modal;
|
|
135
70
|
exports.default = exports.Modal;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { CommonProps } from '../utils';
|
|
3
|
-
import '@itwin/itwinui-css/css/dialog.css';
|
|
4
3
|
export declare type ModalButtonBarProps = {
|
|
5
4
|
/**
|
|
6
5
|
* Buttons in the modal bar.
|
|
@@ -10,5 +9,5 @@ export declare type ModalButtonBarProps = {
|
|
|
10
9
|
/**
|
|
11
10
|
* Container for Buttons in modal.
|
|
12
11
|
*/
|
|
13
|
-
export declare const ModalButtonBar: (
|
|
12
|
+
export declare const ModalButtonBar: React.ForwardRefExoticComponent<Pick<import("../Dialog/DialogButtonBar").DialogButtonBarProps, "key" | keyof React.HTMLAttributes<HTMLDivElement>> & React.RefAttributes<HTMLDivElement>>;
|
|
14
13
|
export default ModalButtonBar;
|
|
@@ -1,46 +1,9 @@
|
|
|
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
|
-
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
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28
3
|
exports.ModalButtonBar = 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/dialog.css");
|
|
4
|
+
var DialogButtonBar_1 = require("../Dialog/DialogButtonBar");
|
|
37
5
|
/**
|
|
38
6
|
* Container for Buttons in modal.
|
|
39
7
|
*/
|
|
40
|
-
|
|
41
|
-
var children = props.children, className = props.className, rest = __rest(props, ["children", "className"]);
|
|
42
|
-
(0, utils_1.useTheme)();
|
|
43
|
-
return (react_1.default.createElement("div", __assign({ className: (0, classnames_1.default)('iui-dialog-button-bar', className) }, rest), children));
|
|
44
|
-
};
|
|
45
|
-
exports.ModalButtonBar = ModalButtonBar;
|
|
8
|
+
exports.ModalButtonBar = DialogButtonBar_1.DialogButtonBar;
|
|
46
9
|
exports.default = exports.ModalButtonBar;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { CommonProps } from '../utils';
|
|
3
|
-
import '@itwin/itwinui-css/css/dialog.css';
|
|
4
3
|
export declare type ModalContentProps = {
|
|
5
4
|
/**
|
|
6
5
|
* Main content in the `Modal`.
|
|
@@ -10,5 +9,5 @@ export declare type ModalContentProps = {
|
|
|
10
9
|
/**
|
|
11
10
|
* Container for content in `Modal`.
|
|
12
11
|
*/
|
|
13
|
-
export declare const ModalContent: (
|
|
12
|
+
export declare const ModalContent: React.ForwardRefExoticComponent<Pick<import("../Dialog/DialogContent").DialogContentProps, "key" | keyof React.HTMLAttributes<HTMLDivElement>> & React.RefAttributes<HTMLDivElement>>;
|
|
14
13
|
export default ModalContent;
|
|
@@ -1,46 +1,9 @@
|
|
|
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
|
-
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
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28
3
|
exports.ModalContent = 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/dialog.css");
|
|
4
|
+
var DialogContent_1 = require("../Dialog/DialogContent");
|
|
37
5
|
/**
|
|
38
6
|
* Container for content in `Modal`.
|
|
39
7
|
*/
|
|
40
|
-
|
|
41
|
-
var children = props.children, className = props.className, rest = __rest(props, ["children", "className"]);
|
|
42
|
-
(0, utils_1.useTheme)();
|
|
43
|
-
return (react_1.default.createElement("div", __assign({ className: (0, classnames_1.default)('iui-dialog-content', className) }, rest), children));
|
|
44
|
-
};
|
|
45
|
-
exports.ModalContent = ModalContent;
|
|
8
|
+
exports.ModalContent = DialogContent_1.DialogContent;
|
|
46
9
|
exports.default = exports.ModalContent;
|
|
@@ -44,19 +44,38 @@ export declare type SelectOption<T> = {
|
|
|
44
44
|
*/
|
|
45
45
|
[key: string]: unknown;
|
|
46
46
|
} & CommonProps;
|
|
47
|
-
export declare type
|
|
47
|
+
export declare type SelectValueChangeEvent = 'added' | 'removed';
|
|
48
|
+
export declare type SelectMultipleTypeProps<T> = {
|
|
48
49
|
/**
|
|
49
|
-
*
|
|
50
|
+
* Enable multiple selection.
|
|
51
|
+
* @default false
|
|
50
52
|
*/
|
|
51
|
-
|
|
53
|
+
multiple?: false;
|
|
54
|
+
/**
|
|
55
|
+
* Custom renderer for the selected item in select.
|
|
56
|
+
* If `multiple` is enabled, it will give array of options to render.
|
|
57
|
+
*/
|
|
58
|
+
selectedItemRenderer?: (option: SelectOption<T>) => JSX.Element;
|
|
52
59
|
/**
|
|
53
60
|
* Selected option value.
|
|
61
|
+
* If `multiple` is enabled, it is an array of values.
|
|
54
62
|
*/
|
|
55
63
|
value?: T;
|
|
56
64
|
/**
|
|
57
65
|
* Callback function handling change event on select.
|
|
58
66
|
*/
|
|
59
67
|
onChange?: (value: T) => void;
|
|
68
|
+
} | {
|
|
69
|
+
multiple: true;
|
|
70
|
+
selectedItemRenderer?: (options: SelectOption<T>[]) => JSX.Element;
|
|
71
|
+
value?: T[];
|
|
72
|
+
onChange?: (value: T, event: SelectValueChangeEvent) => void;
|
|
73
|
+
};
|
|
74
|
+
export declare type SelectProps<T> = {
|
|
75
|
+
/**
|
|
76
|
+
* Array of options that populates the select menu.
|
|
77
|
+
*/
|
|
78
|
+
options: SelectOption<T>[];
|
|
60
79
|
/**
|
|
61
80
|
* Placeholder when no item is selected.
|
|
62
81
|
*/
|
|
@@ -79,10 +98,6 @@ export declare type SelectProps<T> = {
|
|
|
79
98
|
* Custom renderer for an item in the dropdown list. `MenuItem` item props are going to be populated if not provided.
|
|
80
99
|
*/
|
|
81
100
|
itemRenderer?: (option: SelectOption<T>, itemProps: ItemRendererProps) => JSX.Element;
|
|
82
|
-
/**
|
|
83
|
-
* Custom renderer for the selected item in select.
|
|
84
|
-
*/
|
|
85
|
-
selectedItemRenderer?: (option: SelectOption<T>) => JSX.Element;
|
|
86
101
|
/**
|
|
87
102
|
* Custom class for menu.
|
|
88
103
|
*/
|
|
@@ -96,7 +111,7 @@ export declare type SelectProps<T> = {
|
|
|
96
111
|
* @see [tippy.js props](https://atomiks.github.io/tippyjs/v6/all-props/)
|
|
97
112
|
*/
|
|
98
113
|
popoverProps?: Omit<PopoverProps, 'onShow' | 'onHide' | 'disabled'>;
|
|
99
|
-
} & Pick<PopoverProps, 'onShow' | 'onHide'> & Omit<React.ComponentPropsWithoutRef<'div'>, 'size' | 'disabled' | 'placeholder' | 'onChange'>;
|
|
114
|
+
} & SelectMultipleTypeProps<T> & Pick<PopoverProps, 'onShow' | 'onHide'> & Omit<React.ComponentPropsWithoutRef<'div'>, 'size' | 'disabled' | 'placeholder' | 'onChange'>;
|
|
100
115
|
/**
|
|
101
116
|
* Select component to select value from options.
|
|
102
117
|
* Generic type is used for value. It prevents you from mistakenly using other types in `options`, `value` and `onChange`.
|
|
@@ -37,6 +37,14 @@ var MenuItem_1 = require("../Menu/MenuItem");
|
|
|
37
37
|
var utils_1 = require("../utils");
|
|
38
38
|
require("@itwin/itwinui-css/css/inputs.css");
|
|
39
39
|
var CaretDownSmall_1 = __importDefault(require("@itwin/itwinui-icons-react/cjs/icons/CaretDownSmall"));
|
|
40
|
+
var SelectTag_1 = __importDefault(require("./SelectTag"));
|
|
41
|
+
var isMultipleEnabled = function (variable, multiple) {
|
|
42
|
+
return multiple;
|
|
43
|
+
};
|
|
44
|
+
// Type guard for multiple did not work
|
|
45
|
+
var isSingleOnChange = function (onChange, multiple) {
|
|
46
|
+
return !multiple;
|
|
47
|
+
};
|
|
40
48
|
/**
|
|
41
49
|
* Select component to select value from options.
|
|
42
50
|
* Generic type is used for value. It prevents you from mistakenly using other types in `options`, `value` and `onChange`.
|
|
@@ -89,13 +97,13 @@ var CaretDownSmall_1 = __importDefault(require("@itwin/itwinui-icons-react/cjs/i
|
|
|
89
97
|
var Select = function (props) {
|
|
90
98
|
var _a;
|
|
91
99
|
var _b;
|
|
92
|
-
var options = props.options, value = props.value, onChange = props.onChange, placeholder = props.placeholder, _c = props.disabled, disabled = _c === void 0 ? false : _c, size = props.size, _d = props.setFocus, setFocus = _d === void 0 ? false : _d, itemRenderer = props.itemRenderer, selectedItemRenderer = props.selectedItemRenderer, className = props.className, style = props.style, menuClassName = props.menuClassName, menuStyle = props.menuStyle, onShow = props.onShow, onHide = props.onHide, popoverProps = props.popoverProps, rest = __rest(props, ["options", "value", "onChange", "placeholder", "disabled", "size", "setFocus", "itemRenderer", "selectedItemRenderer", "className", "style", "menuClassName", "menuStyle", "onShow", "onHide", "popoverProps"]);
|
|
100
|
+
var options = props.options, value = props.value, onChange = props.onChange, placeholder = props.placeholder, _c = props.disabled, disabled = _c === void 0 ? false : _c, size = props.size, _d = props.setFocus, setFocus = _d === void 0 ? false : _d, itemRenderer = props.itemRenderer, selectedItemRenderer = props.selectedItemRenderer, className = props.className, style = props.style, menuClassName = props.menuClassName, menuStyle = props.menuStyle, onShow = props.onShow, onHide = props.onHide, popoverProps = props.popoverProps, _e = props.multiple, multiple = _e === void 0 ? false : _e, rest = __rest(props, ["options", "value", "onChange", "placeholder", "disabled", "size", "setFocus", "itemRenderer", "selectedItemRenderer", "className", "style", "menuClassName", "menuStyle", "onShow", "onHide", "popoverProps", "multiple"]);
|
|
93
101
|
(0, utils_1.useTheme)();
|
|
94
|
-
var
|
|
102
|
+
var _f = react_1.default.useState((_b = popoverProps === null || popoverProps === void 0 ? void 0 : popoverProps.visible) !== null && _b !== void 0 ? _b : false), isOpen = _f[0], setIsOpen = _f[1];
|
|
95
103
|
react_1.default.useEffect(function () {
|
|
96
104
|
setIsOpen(function (open) { var _a; return (_a = popoverProps === null || popoverProps === void 0 ? void 0 : popoverProps.visible) !== null && _a !== void 0 ? _a : open; });
|
|
97
105
|
}, [popoverProps]);
|
|
98
|
-
var
|
|
106
|
+
var _g = react_1.default.useState(0), minWidth = _g[0], setMinWidth = _g[1];
|
|
99
107
|
var toggle = function () { return setIsOpen(function (open) { return !open; }); };
|
|
100
108
|
var selectRef = react_1.default.useRef(null);
|
|
101
109
|
var toggleButtonRef = react_1.default.useRef(null);
|
|
@@ -122,8 +130,10 @@ var Select = function (props) {
|
|
|
122
130
|
case 'Enter':
|
|
123
131
|
case ' ':
|
|
124
132
|
case 'Spacebar':
|
|
125
|
-
|
|
126
|
-
|
|
133
|
+
if (event.target === selectRef.current) {
|
|
134
|
+
toggle();
|
|
135
|
+
event.preventDefault();
|
|
136
|
+
}
|
|
127
137
|
break;
|
|
128
138
|
default:
|
|
129
139
|
break;
|
|
@@ -131,20 +141,41 @@ var Select = function (props) {
|
|
|
131
141
|
};
|
|
132
142
|
var menuItems = react_1.default.useCallback(function (close) {
|
|
133
143
|
return options.map(function (option, index) {
|
|
134
|
-
var
|
|
144
|
+
var _a;
|
|
145
|
+
var isSelected = isMultipleEnabled(value, multiple)
|
|
146
|
+
? (_a = value === null || value === void 0 ? void 0 : value.includes(option.value)) !== null && _a !== void 0 ? _a : false
|
|
147
|
+
: value === option.value;
|
|
135
148
|
var menuItem = itemRenderer ? (itemRenderer(option, { close: close, isSelected: isSelected })) : (react_1.default.createElement(MenuItem_1.MenuItem, null, option.label));
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
149
|
+
var label = option.label, restOption = __rest(option, ["label"]);
|
|
150
|
+
return react_1.default.cloneElement(menuItem, __assign(__assign({ key: "".concat(label, "-").concat(index), isSelected: isSelected, onClick: function () {
|
|
151
|
+
if (option.disabled) {
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
if (isSingleOnChange(onChange, multiple)) {
|
|
155
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(option.value);
|
|
156
|
+
close();
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(option.value, isSelected ? 'removed' : 'added');
|
|
160
|
+
}
|
|
161
|
+
}, ref: function (el) {
|
|
162
|
+
if (isSelected && !multiple) {
|
|
163
|
+
el === null || el === void 0 ? void 0 : el.scrollIntoView();
|
|
164
|
+
}
|
|
165
|
+
}, role: 'option' }, restOption), menuItem.props));
|
|
140
166
|
});
|
|
141
|
-
}, [itemRenderer, onChange, options, value]);
|
|
142
|
-
var
|
|
167
|
+
}, [itemRenderer, multiple, onChange, options, value]);
|
|
168
|
+
var selectedItems = react_1.default.useMemo(function () {
|
|
143
169
|
if (value == null) {
|
|
144
170
|
return undefined;
|
|
145
171
|
}
|
|
146
|
-
return
|
|
147
|
-
|
|
172
|
+
return isMultipleEnabled(value, multiple)
|
|
173
|
+
? options.filter(function (option) { return value.some(function (val) { return val === option.value; }); })
|
|
174
|
+
: options.find(function (option) { return option.value === value; });
|
|
175
|
+
}, [multiple, options, value]);
|
|
176
|
+
var tagRenderer = react_1.default.useCallback(function (item) {
|
|
177
|
+
return react_1.default.createElement(SelectTag_1.default, { key: item.label, label: item.label });
|
|
178
|
+
}, []);
|
|
148
179
|
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
180
|
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
181
|
var _b;
|
|
@@ -154,21 +185,13 @@ var Select = function (props) {
|
|
|
154
185
|
}
|
|
155
186
|
} }),
|
|
156
187
|
react_1.default.createElement("div", { ref: selectRef, className: (0, classnames_1.default)('iui-select-button', (_a = {
|
|
157
|
-
'iui-placeholder': !
|
|
188
|
+
'iui-placeholder': (!selectedItems || selectedItems.length === 0) && !!placeholder,
|
|
158
189
|
'iui-disabled': disabled
|
|
159
190
|
},
|
|
160
191
|
_a["iui-".concat(size)] = !!size,
|
|
161
192
|
_a)), onClick: function () { return !disabled && toggle(); }, onKeyDown: function (e) { return !disabled && onKeyDown(e, toggle); }, tabIndex: !disabled ? 0 : undefined },
|
|
162
|
-
!
|
|
163
|
-
selectedItem
|
|
164
|
-
selectedItemRenderer &&
|
|
165
|
-
selectedItemRenderer(selectedItem),
|
|
166
|
-
selectedItem && !selectedItemRenderer && (react_1.default.createElement(react_1.default.Fragment, null,
|
|
167
|
-
(selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.icon) &&
|
|
168
|
-
react_1.default.cloneElement(selectedItem.icon, {
|
|
169
|
-
className: (0, classnames_1.default)(selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.icon.props.className, 'iui-icon'),
|
|
170
|
-
}),
|
|
171
|
-
react_1.default.createElement("span", { className: 'iui-content' }, selectedItem.label))))),
|
|
193
|
+
(!selectedItems || selectedItems.length === 0) && (react_1.default.createElement("span", { className: 'iui-content' }, placeholder)),
|
|
194
|
+
isMultipleEnabled(selectedItems, multiple) ? (react_1.default.createElement(MultipleSelectButton, { selectedItems: selectedItems, selectedItemsRenderer: selectedItemRenderer, tagRenderer: tagRenderer })) : (react_1.default.createElement(SingleSelectButton, { selectedItem: selectedItems, selectedItemRenderer: selectedItemRenderer })))),
|
|
172
195
|
react_1.default.createElement("span", { ref: toggleButtonRef, className: (0, classnames_1.default)('iui-end-icon', {
|
|
173
196
|
'iui-actionable': !disabled,
|
|
174
197
|
'iui-disabled': disabled,
|
|
@@ -177,4 +200,38 @@ var Select = function (props) {
|
|
|
177
200
|
react_1.default.createElement(CaretDownSmall_1.default, { "aria-hidden": true }))));
|
|
178
201
|
};
|
|
179
202
|
exports.Select = Select;
|
|
203
|
+
var SingleSelectButton = function (_a) {
|
|
204
|
+
var selectedItem = _a.selectedItem, selectedItemRenderer = _a.selectedItemRenderer;
|
|
205
|
+
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
206
|
+
selectedItem &&
|
|
207
|
+
selectedItemRenderer &&
|
|
208
|
+
selectedItemRenderer(selectedItem),
|
|
209
|
+
selectedItem && !selectedItemRenderer && (react_1.default.createElement(react_1.default.Fragment, null,
|
|
210
|
+
selectedItem.icon &&
|
|
211
|
+
react_1.default.cloneElement(selectedItem.icon, {
|
|
212
|
+
className: (0, classnames_1.default)(selectedItem.icon.props.className, 'iui-icon'),
|
|
213
|
+
}),
|
|
214
|
+
react_1.default.createElement("span", { className: 'iui-content' }, selectedItem.label)))));
|
|
215
|
+
};
|
|
216
|
+
var MultipleSelectButton = function (_a) {
|
|
217
|
+
var selectedItems = _a.selectedItems, selectedItemsRenderer = _a.selectedItemsRenderer, tagRenderer = _a.tagRenderer;
|
|
218
|
+
var selectedItemsElements = react_1.default.useMemo(function () {
|
|
219
|
+
if (!selectedItems) {
|
|
220
|
+
return [];
|
|
221
|
+
}
|
|
222
|
+
return selectedItems.map(function (item) { return tagRenderer(item); });
|
|
223
|
+
}, [selectedItems, tagRenderer]);
|
|
224
|
+
var _b = (0, utils_1.useOverflow)(selectedItemsElements), containerRef = _b[0], visibleCount = _b[1];
|
|
225
|
+
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
226
|
+
selectedItems &&
|
|
227
|
+
selectedItemsRenderer &&
|
|
228
|
+
selectedItemsRenderer(selectedItems),
|
|
229
|
+
selectedItems && !selectedItemsRenderer && (react_1.default.createElement("span", { className: 'iui-content' },
|
|
230
|
+
react_1.default.createElement("div", { className: 'iui-select-tag-container', ref: containerRef },
|
|
231
|
+
react_1.default.createElement(react_1.default.Fragment, null,
|
|
232
|
+
visibleCount < selectedItemsElements.length
|
|
233
|
+
? selectedItemsElements.slice(0, visibleCount - 1)
|
|
234
|
+
: selectedItemsElements,
|
|
235
|
+
visibleCount < selectedItemsElements.length && (react_1.default.createElement(SelectTag_1.default, { label: "+".concat(selectedItemsElements.length - visibleCount + 1, " item(s)") }))))))));
|
|
236
|
+
};
|
|
180
237
|
exports.default = exports.Select;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { CommonProps } from '../utils';
|
|
3
|
+
import '@itwin/itwinui-css/css/inputs.css';
|
|
4
|
+
export declare type SelectTagProps = {
|
|
5
|
+
/**
|
|
6
|
+
* Text inside the tag.
|
|
7
|
+
*/
|
|
8
|
+
label: string;
|
|
9
|
+
} & CommonProps;
|
|
10
|
+
/**
|
|
11
|
+
* Tag for showing selected value in `Select`.
|
|
12
|
+
* @private
|
|
13
|
+
*/
|
|
14
|
+
export declare const SelectTag: (props: SelectTagProps) => JSX.Element;
|
|
15
|
+
export default SelectTag;
|
|
@@ -0,0 +1,48 @@
|
|
|
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.SelectTag = 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 classnames_1 = __importDefault(require("classnames"));
|
|
34
|
+
var react_1 = __importDefault(require("react"));
|
|
35
|
+
var utils_1 = require("../utils");
|
|
36
|
+
require("@itwin/itwinui-css/css/inputs.css");
|
|
37
|
+
/**
|
|
38
|
+
* Tag for showing selected value in `Select`.
|
|
39
|
+
* @private
|
|
40
|
+
*/
|
|
41
|
+
var SelectTag = function (props) {
|
|
42
|
+
var className = props.className, label = props.label, rest = __rest(props, ["className", "label"]);
|
|
43
|
+
(0, utils_1.useTheme)();
|
|
44
|
+
return (react_1.default.createElement("span", __assign({ className: (0, classnames_1.default)('iui-select-tag', className) }, rest),
|
|
45
|
+
react_1.default.createElement("span", { className: 'iui-select-tag-label' }, label)));
|
|
46
|
+
};
|
|
47
|
+
exports.SelectTag = SelectTag;
|
|
48
|
+
exports.default = exports.SelectTag;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { Select } from './Select';
|
|
2
|
-
export type { SelectProps, SelectOption, ItemRendererProps } from './Select';
|
|
2
|
+
export type { SelectProps, SelectOption, ItemRendererProps, SelectValueChangeEvent, } from './Select';
|
|
3
3
|
declare const _default: "./Select";
|
|
4
4
|
export default _default;
|
|
@@ -96,6 +96,11 @@ export declare type SliderProps = {
|
|
|
96
96
|
* high-volume of updates will occur when dragging.
|
|
97
97
|
*/
|
|
98
98
|
onUpdate?: (values: ReadonlyArray<number>) => void;
|
|
99
|
+
/**
|
|
100
|
+
* The orientation of slider
|
|
101
|
+
* @default 'horizontal'
|
|
102
|
+
*/
|
|
103
|
+
orientation?: 'horizontal' | 'vertical';
|
|
99
104
|
} & Omit<CommonProps, 'title'>;
|
|
100
105
|
/**
|
|
101
106
|
* Slider component that display Thumbs for each value specified along a Rail.
|
|
@@ -195,5 +200,10 @@ export declare const Slider: React.ForwardRefExoticComponent<{
|
|
|
195
200
|
* high-volume of updates will occur when dragging.
|
|
196
201
|
*/
|
|
197
202
|
onUpdate?: ((values: ReadonlyArray<number>) => void) | undefined;
|
|
203
|
+
/**
|
|
204
|
+
* The orientation of slider
|
|
205
|
+
* @default 'horizontal'
|
|
206
|
+
*/
|
|
207
|
+
orientation?: "horizontal" | "vertical" | undefined;
|
|
198
208
|
} & Omit<CommonProps, "title"> & React.RefAttributes<HTMLDivElement>>;
|
|
199
209
|
export default Slider;
|