UNPKG

azure-devops-ui

Version:

React components for building web UI in Azure DevOps

1 lines 1.48 kB
import{__assign,__extends}from"tslib";import"../../CommonImports";import"../../Core/core.css";import"./ClipboardButton.css";import*as React from"react";import{ObservableValue}from"../../Core/Observable";import{Button}from"../../Button";import{Observer}from"../../Observer";import*as Resources from"../../Resources.Clipboard";import{css}from"../../Util";import{copyToClipboard}from"../../Utils/ClipboardUtils";var ClipboardButton=function(o){function e(){var r=null!==o&&o.apply(this,arguments)||this;return r.copied=new ObservableValue(!1),r.onClick=function(o){var e=r.props,t=e.getContent,e=e.onCopy,t=(r.copied.value||(r.copied.value=!0),t());copyToClipboard(t,e),o.preventDefault(),o.stopPropagation()},r.onMouseLeave=function(o){r.copied.value&&(r.copied.value=!1),r.props.onMouseLeave&&r.props.onMouseLeave(o)},r}return __extends(e,o),e.prototype.render=function(){var e=this,o=this.props,t=o.ariaLabel,r=o.onBlur,s=o.onFocus,i=o.showCopiedTooltip,p=o.subtle,a=o.tooltipProps,n="string"==typeof i?i:Resources.CopiedToClipboard;return React.createElement("div",{className:css("bolt-clipboard-button",this.props.className)},React.createElement(Observer,{copied:this.copied},function(o){return React.createElement(Button,{ariaLabel:t||Resources.CopyToClipboard,iconProps:{iconName:"Copy"},onBlur:r,onClick:e.onClick,onFocus:s,subtle:p,tooltipProps:i&&o.copied?__assign(__assign({},a),{text:n}):a,onMouseLeave:e.onMouseLeave})}))},e}(React.Component);export{ClipboardButton};