Buckets:
Quantumbraid/trainingdata / ui /node_modules /@react-aria /utils /dist /focusWithoutScrolling.module.js
| /* | |
| * Copyright 2020 Adobe. All rights reserved. | |
| * This file is licensed to you under the Apache License, Version 2.0 (the "License"); | |
| * you may not use this file except in compliance with the License. You may obtain a copy | |
| * of the License at http://www.apache.org/licenses/LICENSE-2.0 | |
| * | |
| * Unless required by applicable law or agreed to in writing, software distributed under | |
| * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS | |
| * OF ANY KIND, either express or implied. See the License for the specific language | |
| * governing permissions and limitations under the License. | |
| */ function $7215afc6de606d6b$export$de79e2c695e052f3(element) { | |
| if ($7215afc6de606d6b$var$supportsPreventScroll()) element.focus({ | |
| preventScroll: true | |
| }); | |
| else { | |
| let scrollableElements = $7215afc6de606d6b$var$getScrollableElements(element); | |
| element.focus(); | |
| $7215afc6de606d6b$var$restoreScrollPosition(scrollableElements); | |
| } | |
| } | |
| let $7215afc6de606d6b$var$supportsPreventScrollCached = null; | |
| function $7215afc6de606d6b$var$supportsPreventScroll() { | |
| if ($7215afc6de606d6b$var$supportsPreventScrollCached == null) { | |
| $7215afc6de606d6b$var$supportsPreventScrollCached = false; | |
| try { | |
| let focusElem = document.createElement('div'); | |
| focusElem.focus({ | |
| get preventScroll () { | |
| $7215afc6de606d6b$var$supportsPreventScrollCached = true; | |
| return true; | |
| } | |
| }); | |
| } catch { | |
| // Ignore | |
| } | |
| } | |
| return $7215afc6de606d6b$var$supportsPreventScrollCached; | |
| } | |
| function $7215afc6de606d6b$var$getScrollableElements(element) { | |
| let parent = element.parentNode; | |
| let scrollableElements = []; | |
| let rootScrollingElement = document.scrollingElement || document.documentElement; | |
| while(parent instanceof HTMLElement && parent !== rootScrollingElement){ | |
| if (parent.offsetHeight < parent.scrollHeight || parent.offsetWidth < parent.scrollWidth) scrollableElements.push({ | |
| element: parent, | |
| scrollTop: parent.scrollTop, | |
| scrollLeft: parent.scrollLeft | |
| }); | |
| parent = parent.parentNode; | |
| } | |
| if (rootScrollingElement instanceof HTMLElement) scrollableElements.push({ | |
| element: rootScrollingElement, | |
| scrollTop: rootScrollingElement.scrollTop, | |
| scrollLeft: rootScrollingElement.scrollLeft | |
| }); | |
| return scrollableElements; | |
| } | |
| function $7215afc6de606d6b$var$restoreScrollPosition(scrollableElements) { | |
| for (let { element: element, scrollTop: scrollTop, scrollLeft: scrollLeft } of scrollableElements){ | |
| element.scrollTop = scrollTop; | |
| element.scrollLeft = scrollLeft; | |
| } | |
| } | |
| export {$7215afc6de606d6b$export$de79e2c695e052f3 as focusWithoutScrolling}; | |
| //# sourceMappingURL=focusWithoutScrolling.module.js.map | |
Xet Storage Details
- Size:
- 2.9 kB
- Xet hash:
- f6a92210129edad4d177caffd9f66f6fa2545cc7c9f8a2f9d79a7b665540e12d
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.