UNPKG

azure-devops-ui

Version:

React components for building web UI in Azure DevOps

1 lines 2.2 kB
import{__assign,__extends}from"tslib";import"../../CommonImports";import"../../Core/core.css";import"./Link.css";import*as React from"react";import{FocusGroupContext}from"../../FocusGroup";import{FocusZoneContext}from"../../FocusZone";import{Tooltip}from"../../TooltipEx";import{css,getSafeId,KeyCode}from"../../Util";import{getTabIndex}from"../../Utilities/Focus";var Link=function(e){function o(){var o=null!==e&&e.apply(this,arguments)||this;return o.ref=React.createRef(),o.onClick=function(e){o.handleActivation(e)},o.onKeyPress=function(e){o.props.href||e.which!==KeyCode.enter||o.handleActivation(e)},o.onFocus=function(e){o.props.onFocus&&o.props.onFocus(e),o.props.id&&o.context.onFocus(o.props.id)},o}return __extends(o,e),o.prototype.render=function(){var h=this;return React.createElement(FocusZoneContext.Consumer,null,function(e){var o=h.props,t=o.ariaDescribedBy,n=o.ariaLabel,r=o.ariaExpanded,s=o.ariaHasPopup,a=o.ariaSelected,i=o.className,c=o.draggable,u=o.excludeFocusZone,p=o.target,l=o.dataIsFocusable,d=o.rel,f=o.role,m="a",m=(p&&!d&&(d="noopener"),o.href||o.role||(f="button"),o.href||(m="span"),React.createElement(m,{ref:h.ref,"aria-describedby":getSafeId(t),"aria-expanded":r,"aria-haspopup":s,"aria-label":n,"aria-selected":a,className:css(i,"bolt-link",o.disabled&&"disabled",o.subtle&&"subtle",o.underline&&"underline",o.removeUnderline&&"no-underline-link"),"data-focuszone":!u&&e.focuszoneId,"data-is-focusable":l,download:o.download,draggable:c,href:o.href,id:getSafeId(o.id),onBlur:o.onBlur,onClick:h.onClick,onFocus:h.onFocus,onKeyPress:h.onKeyPress,onMouseEnter:o.onMouseEnter,onMouseLeave:o.onMouseLeave,onMouseOver:o.onMouseOver,onTouchEnd:o.onTouchEnd,onTouchMove:o.onTouchMove,onTouchStart:o.onTouchStart,rel:d,role:f,tabIndex:getTabIndex(h.props,h.context),target:p},h.props.children));return m=o.tooltipProps?React.createElement(Tooltip,__assign({},o.tooltipProps),m):m})},o.prototype.focus=function(){this.ref.current&&this.ref.current.focus()},o.prototype.handleActivation=function(e){e.defaultPrevented||(this.props.disabled?e.preventDefault():this.props.onClick&&this.props.onClick(e))},o.contextType=FocusGroupContext,o}(React.Component);export{Link};