UNPKG

azure-devops-ui

Version:

React components for building web UI in Azure DevOps

1 lines 1.36 kB
import"../../CommonImports";import"../../Core/core.css";import*as React from"react";import{ObservableArray,ObservableValue}from"../../Core/Observable";import{ResponsiveLayout}from"../../ResponsiveLayout";const ResizeGroupContext=React.createContext({});class ResizeGroup extends React.Component{constructor(e){super(e),this.onLayoutChange=e=>{this.state.hiddenCount.value=e,this.props.responsiveLayoutProps.onLayoutChange&&this.props.responsiveLayoutProps.onLayoutChange(e),ResizeGroup.updateOverflowItems(this.props,this.state)};e=this.props.extraItems||[];this.state={hiddenCount:new ObservableValue(0),overflowItems:new ObservableArray([...e]),editedItems:[]}}static getDerivedStateFromProps(e,t){return ResizeGroup.updateOverflowItems(e,t),t}render(){return React.createElement(ResizeGroupContext.Provider,{value:{overflowItems:this.state.overflowItems}},React.createElement(ResponsiveLayout,Object.assign({},this.props.responsiveLayoutProps,{onLayoutChange:this.onLayoutChange}),this.props.children))}static updateOverflowItems(e,t){var o=e.extraItems||[];t.overflowItems.value=[...o,...e.overflowMenuItems.slice(0,t.hiddenCount.value)],e.useAriaLabelForOverflow&&(t.editedItems.forEach(e=>e.text=""),t.editedItems=[],t.overflowItems.value.forEach(e=>{!e.text&&e.ariaLabel&&(e.text=e.ariaLabel,t.editedItems.push(e))}))}}export{ResizeGroupContext,ResizeGroup};