@dnb/eufemia
Version:
DNB Eufemia Design System UI Library
76 lines (75 loc) • 2.62 kB
JavaScript
;
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