UNPKG

azure-devops-ui

Version:

React components for building web UI in Azure DevOps

1 lines 6.81 kB
import*as React from"react";var KeyCode,ElementRelationship;function isArrowKey(e){return e.which===KeyCode.downArrow||e.which===KeyCode.upArrow||e.which===KeyCode.leftArrow||e.which===KeyCode.rightArrow}function isFunctionalChildren(e){return"function"==typeof e}function childCount(e){let t=0;return React.Children.forEach(e,function(e){e&&t++}),t}function getSafeId(e){return e?"__bolt-"+e.replace(/[^0-9A-Za-z_]/g,"-"):void 0}function getSafeIdSelector(e){return"#"+getSafeId(e)}function noop(){}function css(...e){var t,o=[];for(t of e)if(t)if("string"==typeof t)o.push(t);else if(t.hasOwnProperty("toString")&&"function"==typeof t.toString)o.push(t.toString());else for(var n in t)t[n]&&o.push(n);return o.filter(e=>e).join(" ").trim()}function getParents(e,t,o,n){var r=[];for(t&&r.push(e);e.parentElement&&e.parentElement!==o;)r.splice(0,0,e.parentElement),e=e.parentElement;return e.parentElement&&n&&r.splice(0,0,e.parentElement),r}function eventTargetContainsNode(e,t,o){e=e.target;return(o?getParents(e,!0,o,!0):[e]).some(e=>-1!==t.indexOf(e.nodeName))}function getRelationship(e,t){if(e.contains(t))return ElementRelationship.Parent;if(t.contains(e))return ElementRelationship.Child;var o=getParents(e,!0),n=getParents(t,!0);for(let t=0;;t++)if(o[t]!==n[t]){var r=o[t-1].children;for(let e=0;e<r.length;e++){if(r[e]===o[t])return ElementRelationship.Before;if(r[e]===n[t])return ElementRelationship.After}}}function preventDefault(e){e.preventDefault()}function shimRef(e){let t=e.ref;if(t){if(!t.hasOwnProperty("current"))throw Error("Children of a focus zone MUST use React.createRef to obtain child references")}else t=React.createRef();return t}function createResolver(o){return e=>{for(const t of o.refs)"function"==typeof t?t(e):t&&(t.current=e)}}function createMergedRef(e){const t={refs:[]};return(...e)=>(t.resolver&&arrayEquals(t.refs,e)||(t.resolver=createResolver(t)),t.refs=e,t.resolver)}!function(e){e[e.backspace=8]="backspace",e[e.tab=9]="tab",e[e.enter=13]="enter",e[e.shift=16]="shift",e[e.ctrl=17]="ctrl",e[e.alt=18]="alt",e[e.pause=19]="pause",e[e.capsLock=20]="capsLock",e[e.escape=27]="escape",e[e.space=32]="space",e[e.pageUp=33]="pageUp",e[e.pageDown=34]="pageDown",e[e.end=35]="end",e[e.home=36]="home",e[e.leftArrow=37]="leftArrow",e[e.upArrow=38]="upArrow",e[e.rightArrow=39]="rightArrow",e[e.downArrow=40]="downArrow",e[e.delete=46]="delete",e[e.b=66]="b",e[e.i=73]="i",e[e.k=75]="k",e[e.q=81]="q",e[e.t=84]="t",e[e.windowsKey=91]="windowsKey",e[e.macCommand=91]="macCommand",e[e.F10=121]="F10",e[e.numLock=144]="numLock",e[e.scrollLock=145]="scrollLock",e[e.comma=188]="comma"}(KeyCode=KeyCode||{}),function(e){e[e.Unrelated=0]="Unrelated",e[e.Before=1]="Before",e[e.After=2]="After",e[e.Child=3]="Child",e[e.Parent=4]="Parent"}(ElementRelationship=ElementRelationship||{});let focusVisible=!1;function getFocusVisible(){return focusVisible}function setFocusVisible(e){!0===(focusVisible=e)?document.body&&document.body.classList.add("bolt-focus-visible"):document.body&&document.body.classList.remove("bolt-focus-visible")}const nonFocusKeys=new Array(255);nonFocusKeys[KeyCode.alt]=!0,nonFocusKeys[KeyCode.capsLock]=!0,nonFocusKeys[KeyCode.ctrl]=!0,nonFocusKeys[KeyCode.numLock]=!0,nonFocusKeys[KeyCode.pause]=!0,nonFocusKeys[KeyCode.scrollLock]=!0,nonFocusKeys[KeyCode.shift]=!0,nonFocusKeys[KeyCode.windowsKey]=!0,document.addEventListener("keydown",e=>{nonFocusKeys[e.which]||setFocusVisible(!0)},!0);let mouseCapture;const mouseCaptureFunction=e=>{Mouse.position.x=e.clientX,Mouse.position.y=e.clientY,mouseCapture&&mouseCapture.callback&&mouseCapture.button===e.button&&(mouseCapture.callback(e),"mouseup"===e.type)&&Mouse.releaseCapture(mouseCapture.callback)},Mouse={position:{x:0,y:0},releaseCapture:function(e){mouseCapture&&mouseCapture.callback===e&&(mouseCapture=void 0)},setCapture:function(e,t=0){mouseCapture&&Mouse.releaseCapture(mouseCapture.callback),mouseCapture={button:t,callback:e}}};document.addEventListener("mousemove",mouseCaptureFunction),document.addEventListener("mouseup",mouseCaptureFunction),document.addEventListener("mousedown",e=>{0===e.button&&0===e.clientX&&0===e.clientY&&0===e.screenX&&0===e.screenY&&0===e.pageX&&0===e.pageY||setFocusVisible(!1)},!0);let touchCapture;const touchCaptureFunction=e=>{var t=(e.changedTouches&&e.changedTouches.length?e.changedTouches:e.touches)[0];Touch.position.x=t.clientX,Touch.position.y=t.clientY,touchCapture&&touchCapture.callback&&(touchCapture.callback(e),"touchend"===e.type)&&Touch.releaseCapture(touchCapture.callback)},Touch={position:{x:0,y:0},releaseCapture:function(e){touchCapture&&touchCapture.callback===e&&(touchCapture=void 0)},setCapture:function(e){touchCapture&&Touch.releaseCapture(touchCapture.callback),touchCapture={callback:e}}},pointerCaptures=(document.addEventListener("touchmove",touchCaptureFunction),document.addEventListener("touchend",touchCaptureFunction),document.addEventListener("touchstart",()=>setFocusVisible(!1),!0),[]),pointerCaptureFunction=t=>{Pointer.position.x=t.clientX,Pointer.position.y=t.clientY;for(let e=pointerCaptures.length-1;0<=e;e--){var o=pointerCaptures[e];o&&o.callback&&(o.callback(t),"pointerup"===t.type)&&Pointer.releaseCapture(o.callback)}},Pointer={position:{x:0,y:0},releaseCapture:function(t){var e=pointerCaptures.findIndex(e=>e.callback===t);-1<e&&pointerCaptures.splice(e,1)},setCapture:function(e){pointerCaptures.push({callback:e})}};function getPointByEventType(e){return void 0!==e.clientX?{x:Pointer.position.x,y:Pointer.position.y}:e.changedTouches||e.touches?{x:Touch.position.x,y:Touch.position.y}:void 0!==e.clientX?{x:Mouse.position.x,y:Mouse.position.y}:void 0}function arrayEquals(t,o,n=(e,t)=>e===t){if(t||o){if(!t||!o)return!1;if(t.length!==o.length)return!1;for(let e=0;e<t.length;e++)if(!n(t[e],o[e]))return!1}return!0}function isSafari(){return!!/Safari\/([\d.]+)/i.exec(window.navigator.userAgent)&&navigator.userAgent.toLowerCase().includes("chrome")}function convertSpecialSymbols(e){return null==e?void 0:e.replace(/=/g,"eq").replace(/>/g,"gt").replace(/</g,"lt")}function getSafeIdWithSymbolConversion(e){return getSafeId(convertSpecialSymbols(e))}document.addEventListener("pointermove",pointerCaptureFunction),document.addEventListener("pointerup",pointerCaptureFunction),document.addEventListener("pointerdown",e=>{0===e.button&&0===e.clientX&&0===e.clientY&&0===e.screenX&&0===e.screenY&&0===e.pageX&&0===e.pageY||setFocusVisible(!1)},!0);export{KeyCode,isArrowKey,isFunctionalChildren,childCount,getSafeId,getSafeIdSelector,noop,css,getParents,eventTargetContainsNode,ElementRelationship,getRelationship,preventDefault,shimRef,createMergedRef,getFocusVisible,setFocusVisible,Mouse,Touch,Pointer,getPointByEventType,arrayEquals,isSafari,convertSpecialSymbols,getSafeIdWithSymbolConversion};