UNPKG

azure-devops-ui

Version:

React components for building web UI in Azure DevOps

1 lines 1.42 kB
import*as React from"react";import{ObservableValue}from"../Core/Observable";class BaseMasterDetailsContext{constructor(e,t){this.hideDetailsPanel=new ObservableValue(!1),this.getCurrentLayer=()=>this.payload,this.getStack=()=>this.payloadStack,this.push=e=>{this.payloadStack.push(e),e.onPushed&&e.onPushed(this),this.payload.value=this.payloadStack[this.payloadStack.length-1]},this.pop=()=>{var e=this.payloadStack.pop();return e&&e.onPopped&&e.onPopped(this),0<this.payloadStack.length?this.payload.value=this.payloadStack[this.payloadStack.length-1]:this.onExit(),e},this.setDetailsPanelVisbility=e=>{this.hideDetailsPanel.value=!e},this.payload=new ObservableValue(e),this.payloadStack=[e],this.onExit=t,e.onPushed&&e.onPushed(this)}}const MasterDetailsContext=React.createContext(new BaseMasterDetailsContext({key:"",masterPanelContent:{},detailsContent:{renderContent:()=>React.createElement("div",null)},selectedMasterItem:new ObservableValue(null)},()=>{}));function bindSelectionToObservable(e,t,a){var s=t.value.findIndex(e=>e===a.value);0<=s&&e.select(s),e.subscribe(e=>{e[0]&&(e=e[0].beginIndex,a.value=t.value[e])})}function createChildLayer(e,t,a,s,l,n,i){return{key:e,masterPanelContent:t,detailsContent:a,selectedMasterItem:new ObservableValue(s),parentItem:l.selectedMasterItem.value,onPushed:n,ariaLabel:i}}export{BaseMasterDetailsContext,MasterDetailsContext,bindSelectionToObservable,createChildLayer};