azure-devops-ui
Version:
React components for building web UI in Azure DevOps
1 lines • 7.12 kB
JavaScript
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){var 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(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var n=[],o=0,r=e;o<r.length;o++){var i=r[o];if(i)if("string"==typeof i)n.push(i);else if(i.hasOwnProperty("toString")&&"function"==typeof i.toString)n.push(i.toString());else for(var u in i)i[u]&&n.push(u)}return n.filter(function(e){return e}).join(" ").trim()}function getParents(e,t,n,o){var r=[];for(t&&r.push(e);e.parentElement&&e.parentElement!==n;)r.splice(0,0,e.parentElement),e=e.parentElement;return e.parentElement&&o&&r.splice(0,0,e.parentElement),r}function eventTargetContainsNode(e,t,n){e=e.target;return(n?getParents(e,!0,n,!0):[e]).some(function(e){return-1!==t.indexOf(e.nodeName)})}function getRelationship(e,t){if(e.contains(t))return ElementRelationship.Parent;if(t.contains(e))return ElementRelationship.Child;for(var n=getParents(e,!0),o=getParents(t,!0),r=0;;r++)if(n[r]!==o[r])for(var i=n[r-1].children,u=0;u<i.length;u++){if(i[u]===n[r])return ElementRelationship.Before;if(i[u]===o[r])return ElementRelationship.After}}function preventDefault(e){e.preventDefault()}function shimRef(e){e=e.ref;if(e){if(!e.hasOwnProperty("current"))throw Error("Children of a focus zone MUST use React.createRef to obtain child references")}else e=React.createRef();return e}function createResolver(r){return function(e){for(var t=0,n=r.refs;t<n.length;t++){var o=n[t];"function"==typeof o?o(e):o&&(o.current=e)}}}function createMergedRef(e){var n={refs:[]};return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return n.resolver&&arrayEquals(n.refs,e)||(n.resolver=createResolver(n)),n.refs=e,n.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||{});var 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")}var mouseCapture,touchCapture,nonFocusKeys=new Array(255),mouseCaptureFunction=(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",function(e){nonFocusKeys[e.which]||setFocusVisible(!0)},!0),function(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){void 0===t&&(t=0),mouseCapture&&Mouse.releaseCapture(mouseCapture.callback),mouseCapture={button:t,callback:e}}},touchCaptureFunction=(document.addEventListener("mousemove",mouseCaptureFunction),document.addEventListener("mouseup",mouseCaptureFunction),document.addEventListener("mousedown",function(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),function(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",function(){return setFocusVisible(!1)},!0),[]),pointerCaptureFunction=function(e){Pointer.position.x=e.clientX,Pointer.position.y=e.clientY;for(var t=pointerCaptures.length-1;0<=t;t--){var n=pointerCaptures[t];n&&n.callback&&(n.callback(e),"pointerup"===e.type)&&Pointer.releaseCapture(n.callback)}},Pointer={position:{x:0,y:0},releaseCapture:function(t){var e=pointerCaptures.findIndex(function(e){return 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(e,t,n){if(void 0===n&&(n=function(e,t){return e===t}),e||t){if(!e||!t)return!1;if(e.length!==t.length)return!1;for(var o=0;o<e.length;o++)if(!n(e[o],t[o]))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",function(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};