UNPKG

@dnb/eufemia

Version:

DNB Eufemia Design System UI Library

76 lines (75 loc) 2.62 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.defaultProps = void 0; exports.getPropsFromTooltipProp = getPropsFromTooltipProp; exports.getRefElement = getRefElement; exports.getTargetElement = getTargetElement; exports.injectTooltipSemantic = injectTooltipSemantic; exports.isTouch = void 0; exports.useHandleAria = useHandleAria; var _react = _interopRequireDefault(require("react")); var _classnames = _interopRequireDefault(require("classnames")); var _componentHelper = require("../../shared/component-helper"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } function injectTooltipSemantic(params) { params.tabIndex = '0'; params.className = (0, _classnames.default)("dnb-tooltip__wrapper dnb-tab-focus", params.className); return params; } const defaultProps = exports.defaultProps = { id: null, size: 'basis', active: null, position: 'top', arrow: 'center', align: null, fixedPosition: false, skipPortal: null, noAnimation: false, showDelay: 300, hideDelay: 500, targetSelector: null, targetElement: null, className: null, children: null, tooltip: null }; function getTargetElement(target) { if (typeof document !== 'undefined') { return typeof target === 'string' ? typeof document !== 'undefined' && document.querySelector(target) : target; } } function useHandleAria(targetElement, internalId) { _react.default.useEffect(() => { try { const existing = { 'aria-describedby': targetElement.getAttribute('aria-describedby') }; targetElement.setAttribute('aria-describedby', (0, _componentHelper.combineDescribedBy)(existing, internalId)); } catch (e) {} }, [targetElement, internalId]); } function getPropsFromTooltipProp(localProps) { return localProps.tooltip ? _react.default.isValidElement(localProps.tooltip) && localProps.tooltip.props ? localProps.tooltip.props : { children: localProps.tooltip } : null; } function getRefElement(target) { var _unknownTarget$curren; const unknownTarget = target; let element = target; if (unknownTarget !== null && unknownTarget !== void 0 && (_unknownTarget$curren = unknownTarget.current) !== null && _unknownTarget$curren !== void 0 && _unknownTarget$curren._ref) { element = getRefElement(unknownTarget.current._ref); } if (element && Object.prototype.hasOwnProperty.call(element, 'current')) { element = element.current; } return element; } const isTouch = type => { return /touch/i.test(type); }; exports.isTouch = isTouch; //# sourceMappingURL=TooltipHelpers.js.map