1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.DetailsRowCheck = void 0;
|
4 | var tslib_1 = require("tslib");
|
5 | var React = require("react");
|
6 | var Utilities_1 = require("../../Utilities");
|
7 | var Check_1 = require("../../Check");
|
8 | var DetailsRowCheck_styles_1 = require("./DetailsRowCheck.styles");
|
9 | var Selection_1 = require("../../Selection");
|
10 | var getClassNames = Utilities_1.classNamesFunction();
|
11 | var DetailsRowCheckBase = function (props) {
|
12 | var _a = props.isVisible, isVisible = _a === void 0 ? false : _a, _b = props.canSelect, canSelect = _b === void 0 ? false : _b, _c = props.anySelected, anySelected = _c === void 0 ? false : _c, _d = props.selected, selected = _d === void 0 ? false : _d, selectionMode = props.selectionMode, _e = props.isHeader, isHeader = _e === void 0 ? false : _e, className = props.className, checkClassName = props.checkClassName, styles = props.styles, theme = props.theme, compact = props.compact, onRenderDetailsCheckbox = props.onRenderDetailsCheckbox, _f = props.useFastIcons, useFastIcons = _f === void 0 ? true : _f,
|
13 | buttonProps = tslib_1.__rest(props, ["isVisible", "canSelect", "anySelected", "selected", "selectionMode", "isHeader", "className", "checkClassName", "styles", "theme", "compact", "onRenderDetailsCheckbox", "useFastIcons"]);
|
14 | var defaultCheckboxRender = useFastIcons ? _fastDefaultCheckboxRender : _defaultCheckboxRender;
|
15 | var onRenderCheckbox = onRenderDetailsCheckbox
|
16 | ? Utilities_1.composeRenderFunction(onRenderDetailsCheckbox, defaultCheckboxRender)
|
17 | : defaultCheckboxRender;
|
18 | var classNames = getClassNames(styles, {
|
19 | theme: theme,
|
20 | canSelect: canSelect,
|
21 | selected: selected,
|
22 | anySelected: anySelected,
|
23 | className: className,
|
24 | isHeader: isHeader,
|
25 | isVisible: isVisible,
|
26 | compact: compact,
|
27 | });
|
28 | var detailsCheckboxProps = {
|
29 | checked: selected,
|
30 | theme: theme,
|
31 | };
|
32 | var divProps = Utilities_1.getNativeElementProps('div', buttonProps, ['aria-label', 'aria-labelledby', 'aria-describedby']);
|
33 | var checkRole = selectionMode === Selection_1.SelectionMode.single ? 'radio' : 'checkbox';
|
34 | return canSelect ? (React.createElement("div", tslib_1.__assign({}, buttonProps, { role: checkRole,
|
35 |
|
36 | className: Utilities_1.css(classNames.root, classNames.check), "aria-checked": selected, "data-selection-toggle": true, "data-automationid": "DetailsRowCheck", tabIndex: -1 }), onRenderCheckbox(detailsCheckboxProps))) : (
|
37 |
|
38 | React.createElement("div", tslib_1.__assign({}, divProps, { className: Utilities_1.css(classNames.root, classNames.check) })));
|
39 | };
|
40 | var FastCheck = React.memo(function (props) {
|
41 | return React.createElement(Check_1.Check, { theme: props.theme, checked: props.checked, className: props.className, useFastIcons: true });
|
42 | });
|
43 | function _defaultCheckboxRender(checkboxProps) {
|
44 | return React.createElement(Check_1.Check, { checked: checkboxProps.checked });
|
45 | }
|
46 | function _fastDefaultCheckboxRender(checkboxProps) {
|
47 | return React.createElement(FastCheck, { theme: checkboxProps.theme, checked: checkboxProps.checked });
|
48 | }
|
49 | exports.DetailsRowCheck = Utilities_1.styled(DetailsRowCheckBase, DetailsRowCheck_styles_1.getDetailsRowCheckStyles, undefined, { scope: 'DetailsRowCheck' }, true);
|
50 |
|
\ | No newline at end of file |