azure-devops-ui
Version:
React components for building web UI in Azure DevOps
1 lines • 1.77 kB
JavaScript
import{__rest}from"tslib";import"../../CommonImports";import"../../Core/core.css";import"./Dropdown.css";import*as React from"react";import{ExpandableTextField}from"../../ExpandableTextField";import*as Resources from"../../Resources.Dropdown";import{TextFieldFocusTreatmentBehavior}from"../../TextField";import{css}from"../../Util";function DropdownExpandableTextField(e){var t;const{disableAutocomplete:o,editable:r,expandableRef:l,items:a,inputClassName:i,renderSelectedItems:s,selection:n,showPrefix:d=!0}=e,p=__rest(e,["disableAutocomplete","editable","expandableRef","items","inputClassName","renderSelectedItems","selection","showPrefix"]);let c,m;return r||(m=e.placeholder,0<n.selectedCount&&(m=s(n,a))),d&&1===n.selectedCount&&(c=null==(t=a[n.value[0].beginIndex])?void 0:t.iconProps),React.createElement(ExpandableTextField,Object.assign({ariaHasPopup:"menu",ariaRoleDescription:r?void 0:Resources.DropdownExpandableRoleDescription,autoComplete:r&&!o,ariaAutoComplete:r?"list":void 0,focusTreatment:r?TextFieldFocusTreatmentBehavior.all:TextFieldFocusTreatmentBehavior.keyboardOnly,inputType:r?void 0:"button",editable:r,ref:l,value:m},p,{className:css(e.className,"bolt-dropdown-expandable-text-field",p.disabled&&"disabled"),inputClassName:css(i,"bolt-dropdown-expandable-textfield-input text-ellipsis"),onClick:e=>l.current&&l.current.expand(),prefixIconProps:e.prefixIconProps||c,tooltipProps:Object.assign({text:m,overflowOnly:!0,overflowDetected:overflowDetected},e.tooltipProps),required:e.required}))}function overflowDetected(e){var{wordBreak:t,whiteSpace:o}=e.style,r=e.clientHeight,r=(e.style.wordBreak="break-all",e.style.whiteSpace="normal",r<e.clientHeight);return e.style.wordBreak=t,e.style.whiteSpace=o,r}export{DropdownExpandableTextField};