UNPKG

@fluentui/react

Version:

Reusable React components for building web experiences.

46 lines 3.71 kB
define(["require", "exports", "tslib", "react", "../../Utilities", "../../Check", "./DetailsRowCheck.styles", "../../Selection"], function (require, exports, tslib_1, React, Utilities_1, Check_1, DetailsRowCheck_styles_1, Selection_1) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DetailsRowCheck = void 0; var getClassNames = (0, Utilities_1.classNamesFunction)(); var DetailsRowCheckBase = function (props) { 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, // must be removed from buttonProps buttonProps = tslib_1.__rest(props, ["isVisible", "canSelect", "anySelected", "selected", "selectionMode", "isHeader", "className", "checkClassName", "styles", "theme", "compact", "onRenderDetailsCheckbox", "useFastIcons"]); var defaultCheckboxRender = useFastIcons ? _fastDefaultCheckboxRender : _defaultCheckboxRender; var onRenderCheckbox = onRenderDetailsCheckbox ? (0, Utilities_1.composeRenderFunction)(onRenderDetailsCheckbox, defaultCheckboxRender) : defaultCheckboxRender; var classNames = getClassNames(styles, { theme: theme, canSelect: canSelect, selected: selected, anySelected: anySelected, className: className, isHeader: isHeader, isVisible: isVisible, compact: compact, }); var detailsCheckboxProps = { checked: selected, theme: theme, }; var divProps = (0, Utilities_1.getNativeElementProps)('div', buttonProps, ['aria-label', 'aria-labelledby', 'aria-describedby']); var checkRole = selectionMode === Selection_1.SelectionMode.single ? 'radio' : 'checkbox'; return canSelect ? (React.createElement("div", tslib_1.__assign({}, buttonProps, { role: checkRole, // eslint-disable-next-line @typescript-eslint/no-deprecated className: (0, Utilities_1.css)(classNames.root, classNames.check), "aria-checked": selected, "data-selection-toggle": true, "data-automationid": "DetailsRowCheck", tabIndex: -1 }), onRenderCheckbox(detailsCheckboxProps))) : ( // eslint-disable-next-line @typescript-eslint/no-deprecated React.createElement("div", tslib_1.__assign({}, divProps, { className: (0, Utilities_1.css)(classNames.root, classNames.check) }))); }; var FastCheck = React.memo(function (props) { return React.createElement(Check_1.Check, { theme: props.theme, checked: props.checked, className: props.className, useFastIcons: true }); }); function _defaultCheckboxRender(checkboxProps) { return React.createElement(Check_1.Check, { checked: checkboxProps.checked }); } function _fastDefaultCheckboxRender(checkboxProps) { return React.createElement(FastCheck, { theme: checkboxProps.theme, checked: checkboxProps.checked }); } exports.DetailsRowCheck = (0, Utilities_1.styled)(DetailsRowCheckBase, DetailsRowCheck_styles_1.getDetailsRowCheckStyles, undefined, { scope: 'DetailsRowCheck' }, true); }); //# sourceMappingURL=DetailsRowCheck.js.map