UNPKG

@fluentui/react-northstar

Version:
87 lines (85 loc) 3.5 kB
import { getElementType, useUnhandledProps, useAccessibility, useFluentContext, useStyles, useTelemetry } from '@fluentui/react-bindings'; import * as customPropTypes from '@fluentui/react-proptypes'; import * as PropTypes from 'prop-types'; import * as React from 'react'; import { childrenExist, createShorthandFactory, commonPropTypes, rtlTextContainer } from '../../utils'; import { getBasePlacement } from '../../utils/positioner'; export var tooltipContentClassName = 'ui-tooltip__content'; /** * A TooltipContent contains the content of a Tooltip component. */ export var TooltipContent = /*#__PURE__*/function () { var TooltipContent = /*#__PURE__*/React.forwardRef(function (props, ref) { var context = useFluentContext(); var _useTelemetry = useTelemetry(TooltipContent.displayName, context.telemetry), setStart = _useTelemetry.setStart, setEnd = _useTelemetry.setEnd; setStart(); var accessibility = props.accessibility, children = props.children, className = props.className, content = props.content, design = props.design, open = props.open, placement = props.placement, pointing = props.pointing, pointerRef = props.pointerRef, styles = props.styles, variables = props.variables, subtle = props.subtle; var getA11Props = useAccessibility(accessibility, { debugName: TooltipContent.displayName, rtl: context.rtl }); var _useStyles = useStyles(TooltipContent.displayName, { className: tooltipContentClassName, mapPropsToStyles: function mapPropsToStyles() { return { basePlacement: getBasePlacement(placement, context.rtl), open: open, pointing: pointing, subtle: subtle }; }, mapPropsToInlineStyles: function mapPropsToInlineStyles() { return { className: className, design: design, styles: styles, variables: variables }; }, rtl: context.rtl }), classes = _useStyles.classes; var ElementType = getElementType(props); var unhandledProps = useUnhandledProps(TooltipContent.handledProps, props); var element = /*#__PURE__*/React.createElement(ElementType, getA11Props('root', Object.assign({ className: classes.root, ref: ref }, rtlTextContainer.getAttributes({ forElements: [children, content] }), unhandledProps)), open && pointing && /*#__PURE__*/React.createElement("div", { className: classes.pointer, ref: pointerRef }), /*#__PURE__*/React.createElement("div", getA11Props('content', { className: classes.content }), childrenExist(children) ? children : content)); setEnd(); return element; }); TooltipContent.displayName = 'TooltipContent'; TooltipContent.propTypes = Object.assign({}, commonPropTypes.createCommon(), { placement: PropTypes.oneOf(['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start']), pointing: PropTypes.bool, pointerRef: customPropTypes.ref, subtle: PropTypes.bool }); TooltipContent.handledProps = Object.keys(TooltipContent.propTypes); TooltipContent.create = createShorthandFactory({ Component: TooltipContent, mappedProp: 'content' }); return TooltipContent; }(); //# sourceMappingURL=TooltipContent.js.map