This commit is contained in:
21
node_modules/compute-scroll-into-view/LICENSE
generated
vendored
Normal file
21
node_modules/compute-scroll-into-view/LICENSE
generated
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2022 Cody Olsen
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
133
node_modules/compute-scroll-into-view/README.md
generated
vendored
Normal file
133
node_modules/compute-scroll-into-view/README.md
generated
vendored
Normal file
@@ -0,0 +1,133 @@
|
||||
[](https://npm-stat.com/charts.html?package=compute-scroll-into-view)
|
||||
[](https://www.npmjs.com/package/compute-scroll-into-view)
|
||||
[![gzip size][gzip-badge]][unpkg-dist]
|
||||
[![size][size-badge]][unpkg-dist]
|
||||
[![module formats: umd, cjs, and es][module-formats-badge]][unpkg-dist]
|
||||
[](https://github.com/semantic-release/semantic-release)
|
||||
|
||||

|
||||
|
||||
Lower level API that is used by the [ponyfill](https://ponyfill.com) [scroll-into-view-if-needed](https://github.com/scroll-into-view/scroll-into-view-if-needed) to compute where (if needed) elements should scroll based on [options defined in the spec](https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoView) and the [`scrollMode: "if-needed"` draft spec proposal](https://github.com/w3c/csswg-drafts/pull/1805).
|
||||
Use this if you want the smallest possible bundlesize and is ok with implementing the actual scrolling yourself.
|
||||
|
||||
Scrolling SVG elements are supported, as well as Shadow DOM elements. The [VisualViewport](https://developer.mozilla.org/en-US/docs/Web/API/VisualViewport) API is also supported, ensuring scrolling works properly on modern devices. Quirksmode is also supported as long as you polyfill [`document.scrollingElement`](https://developer.mozilla.org/en-US/docs/Web/API/document/scrollingElement).
|
||||
|
||||
## Install
|
||||
|
||||
```bash
|
||||
npm i compute-scroll-into-view
|
||||
```
|
||||
|
||||
The UMD build is also available on [unpkg](https://unpkg.com/compute-scroll-into-view/umd/):
|
||||
|
||||
```html
|
||||
<script src="https://unpkg.com/compute-scroll-into-view/umd/compute-scroll-into-view.min.js"></script>
|
||||
```
|
||||
|
||||
You can find the library on `window.computeScrollIntoView`.
|
||||
|
||||
## Usage
|
||||
|
||||
```js
|
||||
// es6 import
|
||||
import computeScrollIntoView from 'compute-scroll-into-view'
|
||||
// or es5
|
||||
const computeScrollIntoView = require('compute-scroll-into-view')
|
||||
|
||||
const node = document.getElementById('hero')
|
||||
|
||||
// same behavior as Element.scrollIntoView({block: "nearest", inline: "nearest"})
|
||||
// see: https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoView
|
||||
const actions = computeScrollIntoView(node, {
|
||||
scrollMode: 'if-needed',
|
||||
block: 'nearest',
|
||||
inline: 'nearest',
|
||||
})
|
||||
|
||||
// same behavior as Element.scrollIntoViewIfNeeded(true)
|
||||
// see: https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoViewIfNeeded
|
||||
const actions = computeScrollIntoView(node, {
|
||||
scrollMode: 'if-needed',
|
||||
block: 'center',
|
||||
inline: 'center',
|
||||
})
|
||||
|
||||
// Then perform the scrolling, use scroll-into-view-if-needed if you don't want to implement this part
|
||||
actions.forEach(({ el, top, left }) => {
|
||||
el.scrollTop = top
|
||||
el.scrollLeft = left
|
||||
})
|
||||
```
|
||||
|
||||
## API
|
||||
|
||||
### computeScrollIntoView(target, options)
|
||||
|
||||
### options
|
||||
|
||||
Type: `Object`
|
||||
|
||||
#### [block](https://scroll-into-view.dev/#scroll-alignment)
|
||||
|
||||
Type: `'start' | 'center' | 'end' | 'nearest'`<br> Default: `'center'`
|
||||
|
||||
Control the logical scroll position on the y-axis. The spec states that the `block` direction is related to the [writing-mode](https://developer.mozilla.org/en-US/docs/Web/CSS/writing-mode), but this is not implemented yet in this library.
|
||||
This means that `block: 'start'` aligns to the top edge and `block: 'end'` to the bottom.
|
||||
|
||||
#### [inline](https://scroll-into-view.dev/#scroll-alignment)
|
||||
|
||||
Type: `'start' | 'center' | 'end' | 'nearest'`<br> Default: `'nearest'`
|
||||
|
||||
Like `block` this is affected by the [writing-mode](https://developer.mozilla.org/en-US/docs/Web/CSS/writing-mode). In left-to-right pages `inline: 'start'` will align to the left edge. In right-to-left it should be flipped. This will be supported in a future release.
|
||||
|
||||
#### [scrollMode](https://scroll-into-view.dev/#scrolling-if-needed)
|
||||
|
||||
Type: `'always' | 'if-needed'`<br> Default: `'always'`
|
||||
|
||||
This is a proposed addition to the spec that you can track here: https://github.com/w3c/csswg-drafts/pull/1805
|
||||
|
||||
This library will be updated to reflect any changes to the spec and will provide a migration path.
|
||||
To be backwards compatible with `Element.scrollIntoViewIfNeeded` if something is not 100% visible it will count as "needs scrolling". If you need a different visibility ratio your best option would be to implement an [Intersection Observer](https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API).
|
||||
|
||||
#### [boundary](https://scroll-into-view.dev/#limit-propagation)
|
||||
|
||||
Type: `Element | Function`
|
||||
|
||||
By default there is no boundary. All the parent elements of your target is checked until it reaches the viewport ([`document.scrollingElement`](https://developer.mozilla.org/en-US/docs/Web/API/document/scrollingElement)) when calculating layout and what to scroll.
|
||||
By passing a boundary you can short-circuit this loop depending on your needs:
|
||||
|
||||
- Prevent the browser window from scrolling.
|
||||
- Scroll elements into view in a list, without scrolling container elements.
|
||||
|
||||
You can also pass a function to do more dynamic checks to override the scroll scoping:
|
||||
|
||||
```js
|
||||
const actions = computeScrollIntoView(target, {
|
||||
boundary: (parent) => {
|
||||
// By default `overflow: hidden` elements are allowed, only `overflow: visible | clip` is skipped as
|
||||
// this is required by the CSSOM spec
|
||||
if (getComputedStyle(parent)['overflow'] === 'hidden') {
|
||||
return false
|
||||
}
|
||||
|
||||
return true
|
||||
},
|
||||
})
|
||||
```
|
||||
|
||||
#### skipOverflowHiddenElements
|
||||
|
||||
Type: `Boolean`<br> Default: `false`
|
||||
|
||||
By default the [spec](https://drafts.csswg.org/cssom-view/#scrolling-box) states that `overflow: hidden` elements should be scrollable because it has [been used to allow programatic scrolling](https://drafts.csswg.org/css-overflow-3/#valdef-overflow-hidden). This behavior can sometimes lead to [scrolling issues](https://github.com/scroll-into-view/scroll-into-view-if-needed/pull/225#issue-186419520) when you have a node that is a child of an `overflow: hidden` node.
|
||||
|
||||
This package follows the convention [adopted by Firefox](https://hg.mozilla.org/integration/fx-team/rev/c48c3ec05012#l7.18) of setting a boolean option to _not_ scroll all nodes with `overflow: hidden` set.
|
||||
|
||||
# TypeScript support
|
||||
|
||||
This library ships with library definitions for TypeScript.
|
||||
|
||||
[gzip-badge]: http://img.badgesize.io/https://unpkg.com/compute-scroll-into-view/umd/compute-scroll-into-view.min.js?compression=gzip&label=gzip%20size&style=flat-square
|
||||
[size-badge]: http://img.badgesize.io/https://unpkg.com/compute-scroll-into-view/umd/compute-scroll-into-view.min.js?label=size&style=flat-square
|
||||
[unpkg-dist]: https://unpkg.com/compute-scroll-into-view/umd/
|
||||
[module-formats-badge]: https://img.shields.io/badge/module%20formats-umd%2C%20cjs%2C%20es-green.svg?style=flat-square
|
||||
2
node_modules/compute-scroll-into-view/dist/index.js
generated
vendored
Normal file
2
node_modules/compute-scroll-into-view/dist/index.js
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
function t(t){return"object"==typeof t&&null!=t&&1===t.nodeType}function e(t,e){return(!e||"hidden"!==t)&&"visible"!==t&&"clip"!==t}function n(t,n){if(t.clientHeight<t.scrollHeight||t.clientWidth<t.scrollWidth){var i=getComputedStyle(t,null);return e(i.overflowY,n)||e(i.overflowX,n)||function(t){var e=function(t){if(!t.ownerDocument||!t.ownerDocument.defaultView)return null;try{return t.ownerDocument.defaultView.frameElement}catch(t){return null}}(t);return!!e&&(e.clientHeight<t.scrollHeight||e.clientWidth<t.scrollWidth)}(t)}return!1}function i(t,e,n,i,r,o,l,d){return o<t&&l>e||o>t&&l<e?0:o<=t&&d<=n||l>=e&&d>=n?o-t-i:l>e&&d<n||o<t&&d>n?l-e+r:0}module.exports=function(e,r){var o=window,l=r.scrollMode,d=r.block,f=r.inline,h=r.boundary,u=r.skipOverflowHiddenElements,s="function"==typeof h?h:function(t){return t!==h};if(!t(e))throw new TypeError("Invalid target");for(var c,a,g=document.scrollingElement||document.documentElement,m=[],p=e;t(p)&&s(p);){if((p=null==(a=(c=p).parentElement)?c.getRootNode().host||null:a)===g){m.push(p);break}null!=p&&p===document.body&&n(p)&&!n(document.documentElement)||null!=p&&n(p,u)&&m.push(p)}for(var w=o.visualViewport?o.visualViewport.width:innerWidth,v=o.visualViewport?o.visualViewport.height:innerHeight,W=window.scrollX||pageXOffset,H=window.scrollY||pageYOffset,b=e.getBoundingClientRect(),y=b.height,E=b.width,M=b.top,V=b.right,x=b.bottom,I=b.left,C="start"===d||"nearest"===d?M:"end"===d?x:M+y/2,R="center"===f?I+E/2:"end"===f?V:I,T=[],k=0;k<m.length;k++){var B=m[k],D=B.getBoundingClientRect(),O=D.height,X=D.width,Y=D.top,L=D.right,S=D.bottom,j=D.left;if("if-needed"===l&&M>=0&&I>=0&&x<=v&&V<=w&&M>=Y&&x<=S&&I>=j&&V<=L)return T;var N=getComputedStyle(B),q=parseInt(N.borderLeftWidth,10),z=parseInt(N.borderTopWidth,10),A=parseInt(N.borderRightWidth,10),F=parseInt(N.borderBottomWidth,10),G=0,J=0,K="offsetWidth"in B?B.offsetWidth-B.clientWidth-q-A:0,P="offsetHeight"in B?B.offsetHeight-B.clientHeight-z-F:0,Q="offsetWidth"in B?0===B.offsetWidth?0:X/B.offsetWidth:0,U="offsetHeight"in B?0===B.offsetHeight?0:O/B.offsetHeight:0;if(g===B)G="start"===d?C:"end"===d?C-v:"nearest"===d?i(H,H+v,v,z,F,H+C,H+C+y,y):C-v/2,J="start"===f?R:"center"===f?R-w/2:"end"===f?R-w:i(W,W+w,w,q,A,W+R,W+R+E,E),G=Math.max(0,G+H),J=Math.max(0,J+W);else{G="start"===d?C-Y-z:"end"===d?C-S+F+P:"nearest"===d?i(Y,S,O,z,F+P,C,C+y,y):C-(Y+O/2)+P/2,J="start"===f?R-j-q:"center"===f?R-(j+X/2)+K/2:"end"===f?R-L+A+K:i(j,L,X,q,A+K,R,R+E,E);var Z=B.scrollLeft,$=B.scrollTop;C+=$-(G=Math.max(0,Math.min($+G/U,B.scrollHeight-O/U+P))),R+=Z-(J=Math.max(0,Math.min(Z+J/Q,B.scrollWidth-X/Q+K)))}T.push({el:B,top:G,left:J})}return T};
|
||||
//# sourceMappingURL=index.js.map
|
||||
1
node_modules/compute-scroll-into-view/dist/index.js.map
generated
vendored
Normal file
1
node_modules/compute-scroll-into-view/dist/index.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
2
node_modules/compute-scroll-into-view/dist/index.mjs
generated
vendored
Normal file
2
node_modules/compute-scroll-into-view/dist/index.mjs
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
function t(t){return"object"==typeof t&&null!=t&&1===t.nodeType}function e(t,e){return(!e||"hidden"!==t)&&"visible"!==t&&"clip"!==t}function n(t,n){if(t.clientHeight<t.scrollHeight||t.clientWidth<t.scrollWidth){var r=getComputedStyle(t,null);return e(r.overflowY,n)||e(r.overflowX,n)||function(t){var e=function(t){if(!t.ownerDocument||!t.ownerDocument.defaultView)return null;try{return t.ownerDocument.defaultView.frameElement}catch(t){return null}}(t);return!!e&&(e.clientHeight<t.scrollHeight||e.clientWidth<t.scrollWidth)}(t)}return!1}function r(t,e,n,r,i,o,l,d){return o<t&&l>e||o>t&&l<e?0:o<=t&&d<=n||l>=e&&d>=n?o-t-r:l>e&&d<n||o<t&&d>n?l-e+i:0}var i=function(e,i){var o=window,l=i.scrollMode,d=i.block,f=i.inline,h=i.boundary,u=i.skipOverflowHiddenElements,s="function"==typeof h?h:function(t){return t!==h};if(!t(e))throw new TypeError("Invalid target");for(var a,c,g=document.scrollingElement||document.documentElement,p=[],m=e;t(m)&&s(m);){if((m=null==(c=(a=m).parentElement)?a.getRootNode().host||null:c)===g){p.push(m);break}null!=m&&m===document.body&&n(m)&&!n(document.documentElement)||null!=m&&n(m,u)&&p.push(m)}for(var w=o.visualViewport?o.visualViewport.width:innerWidth,v=o.visualViewport?o.visualViewport.height:innerHeight,W=window.scrollX||pageXOffset,H=window.scrollY||pageYOffset,b=e.getBoundingClientRect(),y=b.height,E=b.width,M=b.top,V=b.right,x=b.bottom,I=b.left,C="start"===d||"nearest"===d?M:"end"===d?x:M+y/2,R="center"===f?I+E/2:"end"===f?V:I,T=[],k=0;k<p.length;k++){var B=p[k],D=B.getBoundingClientRect(),O=D.height,X=D.width,Y=D.top,L=D.right,S=D.bottom,j=D.left;if("if-needed"===l&&M>=0&&I>=0&&x<=v&&V<=w&&M>=Y&&x<=S&&I>=j&&V<=L)return T;var N=getComputedStyle(B),q=parseInt(N.borderLeftWidth,10),z=parseInt(N.borderTopWidth,10),A=parseInt(N.borderRightWidth,10),F=parseInt(N.borderBottomWidth,10),G=0,J=0,K="offsetWidth"in B?B.offsetWidth-B.clientWidth-q-A:0,P="offsetHeight"in B?B.offsetHeight-B.clientHeight-z-F:0,Q="offsetWidth"in B?0===B.offsetWidth?0:X/B.offsetWidth:0,U="offsetHeight"in B?0===B.offsetHeight?0:O/B.offsetHeight:0;if(g===B)G="start"===d?C:"end"===d?C-v:"nearest"===d?r(H,H+v,v,z,F,H+C,H+C+y,y):C-v/2,J="start"===f?R:"center"===f?R-w/2:"end"===f?R-w:r(W,W+w,w,q,A,W+R,W+R+E,E),G=Math.max(0,G+H),J=Math.max(0,J+W);else{G="start"===d?C-Y-z:"end"===d?C-S+F+P:"nearest"===d?r(Y,S,O,z,F+P,C,C+y,y):C-(Y+O/2)+P/2,J="start"===f?R-j-q:"center"===f?R-(j+X/2)+K/2:"end"===f?R-L+A+K:r(j,L,X,q,A+K,R,R+E,E);var Z=B.scrollLeft,$=B.scrollTop;C+=$-(G=Math.max(0,Math.min($+G/U,B.scrollHeight-O/U+P))),R+=Z-(J=Math.max(0,Math.min(Z+J/Q,B.scrollWidth-X/Q+K)))}T.push({el:B,top:G,left:J})}return T};export{i as default};
|
||||
//# sourceMappingURL=index.mjs.map
|
||||
1
node_modules/compute-scroll-into-view/dist/index.mjs.map
generated
vendored
Normal file
1
node_modules/compute-scroll-into-view/dist/index.mjs.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
92
node_modules/compute-scroll-into-view/package.json
generated
vendored
Normal file
92
node_modules/compute-scroll-into-view/package.json
generated
vendored
Normal file
@@ -0,0 +1,92 @@
|
||||
{
|
||||
"name": "compute-scroll-into-view",
|
||||
"version": "1.0.20",
|
||||
"description": "The engine that powers scroll-into-view-if-needed",
|
||||
"keywords": [
|
||||
"if-needed",
|
||||
"scroll",
|
||||
"scroll-into-view",
|
||||
"scroll-into-view-if-needed",
|
||||
"scrollIntoView",
|
||||
"scrollIntoViewIfNeeded",
|
||||
"scrollMode",
|
||||
"typescript"
|
||||
],
|
||||
"homepage": "https://scroll-into-view.dev",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/scroll-into-view/compute-scroll-into-view.git"
|
||||
},
|
||||
"license": "MIT",
|
||||
"author": "Cody Olsen",
|
||||
"sideEffects": false,
|
||||
"exports": {
|
||||
".": {
|
||||
"types": "./typings/index.d.ts",
|
||||
"source": "./src/index.ts",
|
||||
"import": "./dist/index.mjs",
|
||||
"require": "./dist/index.js",
|
||||
"default": "./dist/index.mjs"
|
||||
},
|
||||
"./package.json": "./package.json"
|
||||
},
|
||||
"main": "dist/index.js",
|
||||
"umd:main": "umd/compute-scroll-into-view.min.js",
|
||||
"module": "dist/index.mjs",
|
||||
"source": "src/index.ts",
|
||||
"typings": "typings/index.d.ts",
|
||||
"files": [
|
||||
"dist",
|
||||
"typings",
|
||||
"umd/compute-scroll-into-view.min.js",
|
||||
"umd/compute-scroll-into-view.min.js.map"
|
||||
],
|
||||
"scripts": {
|
||||
"prebuild": "rimraf 'dist' 'umd'",
|
||||
"build": "npm run build:dist && npm run build:umd",
|
||||
"build:dist": "microbundle -f cjs,es",
|
||||
"build:umd": "microbundle -f umd -o umd",
|
||||
"prepublishOnly": "npm run build",
|
||||
"test": "jest -c integration/jest.config.js",
|
||||
"typecheck": "tsc --noEmit"
|
||||
},
|
||||
"husky": {
|
||||
"hooks": {
|
||||
"pre-commit": "lint-staged"
|
||||
}
|
||||
},
|
||||
"lint-staged": {
|
||||
"*.{js,ts,tsx,json,md}": "prettier --write"
|
||||
},
|
||||
"browserify": {
|
||||
"transform": [
|
||||
"loose-envify"
|
||||
]
|
||||
},
|
||||
"prettier": {
|
||||
"semi": false,
|
||||
"singleQuote": true
|
||||
},
|
||||
"devDependencies": {
|
||||
"@sanity/semantic-release-preset": "^2.0.2",
|
||||
"husky": "^8.0.2",
|
||||
"jest": "^29.3.1",
|
||||
"jest-junit": "^15.0.0",
|
||||
"jest-puppeteer": "^6.1.1",
|
||||
"lint-staged": "^13.0.4",
|
||||
"microbundle": "^0.15.1",
|
||||
"prettier": "^2.8.0",
|
||||
"prettier-plugin-packagejson": "^2.3.0",
|
||||
"puppeteer": "^19.3.0",
|
||||
"rimraf": "^3.0.2",
|
||||
"serve": "^14.1.2",
|
||||
"typescript": "^4.9.3"
|
||||
},
|
||||
"bundlesize": [
|
||||
{
|
||||
"path": "./umd/compute-scroll-into-view.min.js",
|
||||
"maxSize": "3 kB",
|
||||
"compression": "none"
|
||||
}
|
||||
]
|
||||
}
|
||||
19
node_modules/compute-scroll-into-view/typings/index.d.ts
generated
vendored
Normal file
19
node_modules/compute-scroll-into-view/typings/index.d.ts
generated
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
type ScrollLogicalPosition = 'start' | 'center' | 'end' | 'nearest';
|
||||
type ScrollMode = 'always' | 'if-needed';
|
||||
type SkipOverflowHiddenElements = boolean;
|
||||
interface Options {
|
||||
block?: ScrollLogicalPosition;
|
||||
inline?: ScrollLogicalPosition;
|
||||
scrollMode?: ScrollMode;
|
||||
boundary?: CustomScrollBoundary;
|
||||
skipOverflowHiddenElements?: SkipOverflowHiddenElements;
|
||||
}
|
||||
type CustomScrollBoundaryCallback = (parent: Element) => boolean;
|
||||
type CustomScrollBoundary = Element | CustomScrollBoundaryCallback | null;
|
||||
interface CustomScrollAction {
|
||||
el: Element;
|
||||
top: number;
|
||||
left: number;
|
||||
}
|
||||
declare const _default: (target: Element, options: Options) => CustomScrollAction[];
|
||||
export default _default;
|
||||
2
node_modules/compute-scroll-into-view/umd/compute-scroll-into-view.min.js
generated
vendored
Normal file
2
node_modules/compute-scroll-into-view/umd/compute-scroll-into-view.min.js
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t||self).computeScrollIntoView=e()}(this,function(){function t(t){return"object"==typeof t&&null!=t&&1===t.nodeType}function e(t,e){return(!e||"hidden"!==t)&&"visible"!==t&&"clip"!==t}function n(t,n){if(t.clientHeight<t.scrollHeight||t.clientWidth<t.scrollWidth){var o=getComputedStyle(t,null);return e(o.overflowY,n)||e(o.overflowX,n)||function(t){var e=function(t){if(!t.ownerDocument||!t.ownerDocument.defaultView)return null;try{return t.ownerDocument.defaultView.frameElement}catch(t){return null}}(t);return!!e&&(e.clientHeight<t.scrollHeight||e.clientWidth<t.scrollWidth)}(t)}return!1}function o(t,e,n,o,i,r,l,f){return r<t&&l>e||r>t&&l<e?0:r<=t&&f<=n||l>=e&&f>=n?r-t-o:l>e&&f<n||r<t&&f>n?l-e+i:0}return function(e,i){var r=window,l=i.scrollMode,f=i.block,d=i.inline,u=i.boundary,h=i.skipOverflowHiddenElements,s="function"==typeof u?u:function(t){return t!==u};if(!t(e))throw new TypeError("Invalid target");for(var c,a,p=document.scrollingElement||document.documentElement,g=[],m=e;t(m)&&s(m);){if((m=null==(a=(c=m).parentElement)?c.getRootNode().host||null:a)===p){g.push(m);break}null!=m&&m===document.body&&n(m)&&!n(document.documentElement)||null!=m&&n(m,h)&&g.push(m)}for(var w=r.visualViewport?r.visualViewport.width:innerWidth,v=r.visualViewport?r.visualViewport.height:innerHeight,W=window.scrollX||pageXOffset,b=window.scrollY||pageYOffset,y=e.getBoundingClientRect(),H=y.height,E=y.width,M=y.top,V=y.right,x=y.bottom,I=y.left,T="start"===f||"nearest"===f?M:"end"===f?x:M+H/2,C="center"===d?I+E/2:"end"===d?V:I,R=[],k=0;k<g.length;k++){var B=g[k],D=B.getBoundingClientRect(),O=D.height,S=D.width,X=D.top,Y=D.right,j=D.bottom,L=D.left;if("if-needed"===l&&M>=0&&I>=0&&x<=v&&V<=w&&M>=X&&x<=j&&I>=L&&V<=Y)return R;var N=getComputedStyle(B),q=parseInt(N.borderLeftWidth,10),z=parseInt(N.borderTopWidth,10),A=parseInt(N.borderRightWidth,10),F=parseInt(N.borderBottomWidth,10),G=0,J=0,K="offsetWidth"in B?B.offsetWidth-B.clientWidth-q-A:0,P="offsetHeight"in B?B.offsetHeight-B.clientHeight-z-F:0,Q="offsetWidth"in B?0===B.offsetWidth?0:S/B.offsetWidth:0,U="offsetHeight"in B?0===B.offsetHeight?0:O/B.offsetHeight:0;if(p===B)G="start"===f?T:"end"===f?T-v:"nearest"===f?o(b,b+v,v,z,F,b+T,b+T+H,H):T-v/2,J="start"===d?C:"center"===d?C-w/2:"end"===d?C-w:o(W,W+w,w,q,A,W+C,W+C+E,E),G=Math.max(0,G+b),J=Math.max(0,J+W);else{G="start"===f?T-X-z:"end"===f?T-j+F+P:"nearest"===f?o(X,j,O,z,F+P,T,T+H,H):T-(X+O/2)+P/2,J="start"===d?C-L-q:"center"===d?C-(L+S/2)+K/2:"end"===d?C-Y+A+K:o(L,Y,S,q,A+K,C,C+E,E);var Z=B.scrollLeft,$=B.scrollTop;T+=$-(G=Math.max(0,Math.min($+G/U,B.scrollHeight-O/U+P))),C+=Z-(J=Math.max(0,Math.min(Z+J/Q,B.scrollWidth-S/Q+K)))}R.push({el:B,top:G,left:J})}return R}});
|
||||
//# sourceMappingURL=compute-scroll-into-view.min.js.map
|
||||
1
node_modules/compute-scroll-into-view/umd/compute-scroll-into-view.min.js.map
generated
vendored
Normal file
1
node_modules/compute-scroll-into-view/umd/compute-scroll-into-view.min.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user