@fluentui/react
Version:
Reusable React components for building web experiences.
41 lines • 2.77 kB
JavaScript
define(["require", "exports", "tslib", "react", "../../../Utilities", "../../../Button", "./TagItem.styles", "@fluentui/react-hooks"], function (require, exports, tslib_1, React, Utilities_1, Button_1, TagItem_styles_1, react_hooks_1) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.TagItem = exports.TagItemBase = void 0;
var getClassNames = (0, Utilities_1.classNamesFunction)();
/**
* {@docCategory TagPicker}
*/
var TagItemBase = function (props) {
var theme = props.theme, styles = props.styles, selected = props.selected, disabled = props.disabled, enableTagFocusInDisabledPicker = props.enableTagFocusInDisabledPicker, children = props.children, className = props.className, index = props.index, onRemoveItem = props.onRemoveItem, removeButtonAriaLabel = props.removeButtonAriaLabel, _a = props.title, title = _a === void 0 ? typeof props.children === 'string' ? props.children : props.item.name : _a, removeButtonIconProps = props.removeButtonIconProps;
var buttonRef = React.createRef();
var handleClick = function () {
var _a;
(_a = buttonRef.current) === null || _a === void 0 ? void 0 : _a.focus();
};
var classNames = getClassNames(styles, {
theme: theme,
className: className,
selected: selected,
disabled: disabled,
});
var itemId = (0, react_hooks_1.useId)();
var disabledAttrs = enableTagFocusInDisabledPicker
? {
'aria-disabled': disabled,
tabindex: 0,
}
: {
disabled: disabled,
};
return (React.createElement("div", { "data-selection-index": index, className: classNames.root, role: 'listitem', key: index, onClick: handleClick },
React.createElement("span", { className: classNames.text, title: title, id: "".concat(itemId, "-text") }, children),
React.createElement(Button_1.IconButton, tslib_1.__assign({ componentRef: buttonRef, id: itemId, onClick: onRemoveItem }, disabledAttrs, { iconProps: removeButtonIconProps !== null && removeButtonIconProps !== void 0 ? removeButtonIconProps : { iconName: 'Cancel' }, styles: { icon: { fontSize: '12px' } }, className: classNames.close, "aria-labelledby": "".concat(itemId, "-removeLabel ").concat(itemId, "-text") })),
React.createElement("span", { id: "".concat(itemId, "-removeLabel"), hidden: true }, removeButtonAriaLabel)));
};
exports.TagItemBase = TagItemBase;
exports.TagItem = (0, Utilities_1.styled)(exports.TagItemBase, TagItem_styles_1.getStyles, undefined, {
scope: 'TagItem',
});
});
//# sourceMappingURL=TagItem.js.map