Latest updates from IceHrmPro
This commit is contained in:
21
web/node_modules/compute-scroll-into-view/LICENSE
generated
vendored
Normal file
21
web/node_modules/compute-scroll-into-view/LICENSE
generated
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2018 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.
|
||||
134
web/node_modules/compute-scroll-into-view/README.md
generated
vendored
Normal file
134
web/node_modules/compute-scroll-into-view/README.md
generated
vendored
Normal file
@@ -0,0 +1,134 @@
|
||||
[](https://circleci.com/gh/stipsan/compute-scroll-into-view)
|
||||
[](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/stipsan/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
|
||||
yarn add 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-if-needed.netlify.com/#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-if-needed.netlify.com/#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-if-needed.netlify.com/#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-if-needed.netlify.com/#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/stipsan/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
|
||||
193
web/node_modules/compute-scroll-into-view/es/index.js
generated
vendored
Normal file
193
web/node_modules/compute-scroll-into-view/es/index.js
generated
vendored
Normal file
@@ -0,0 +1,193 @@
|
||||
function isElement(el) {
|
||||
return el != null && typeof el === 'object' && el.nodeType === 1;
|
||||
}
|
||||
|
||||
function canOverflow(overflow, skipOverflowHiddenElements) {
|
||||
if (skipOverflowHiddenElements && overflow === 'hidden') {
|
||||
return false;
|
||||
}
|
||||
|
||||
return overflow !== 'visible' && overflow !== 'clip';
|
||||
}
|
||||
|
||||
function getFrameElement(el) {
|
||||
if (!el.ownerDocument || !el.ownerDocument.defaultView) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return el.ownerDocument.defaultView.frameElement;
|
||||
}
|
||||
|
||||
function isHiddenByFrame(el) {
|
||||
var frame = getFrameElement(el);
|
||||
|
||||
if (!frame) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return frame.clientHeight < el.scrollHeight || frame.clientWidth < el.scrollWidth;
|
||||
}
|
||||
|
||||
function isScrollable(el, skipOverflowHiddenElements) {
|
||||
if (el.clientHeight < el.scrollHeight || el.clientWidth < el.scrollWidth) {
|
||||
var style = getComputedStyle(el, null);
|
||||
return canOverflow(style.overflowY, skipOverflowHiddenElements) || canOverflow(style.overflowX, skipOverflowHiddenElements) || isHiddenByFrame(el);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
function alignNearest(scrollingEdgeStart, scrollingEdgeEnd, scrollingSize, scrollingBorderStart, scrollingBorderEnd, elementEdgeStart, elementEdgeEnd, elementSize) {
|
||||
if (elementEdgeStart < scrollingEdgeStart && elementEdgeEnd > scrollingEdgeEnd || elementEdgeStart > scrollingEdgeStart && elementEdgeEnd < scrollingEdgeEnd) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (elementEdgeStart <= scrollingEdgeStart && elementSize <= scrollingSize || elementEdgeEnd >= scrollingEdgeEnd && elementSize >= scrollingSize) {
|
||||
return elementEdgeStart - scrollingEdgeStart - scrollingBorderStart;
|
||||
}
|
||||
|
||||
if (elementEdgeEnd > scrollingEdgeEnd && elementSize < scrollingSize || elementEdgeStart < scrollingEdgeStart && elementSize > scrollingSize) {
|
||||
return elementEdgeEnd - scrollingEdgeEnd + scrollingBorderEnd;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
export default (function (target, options) {
|
||||
var scrollMode = options.scrollMode,
|
||||
block = options.block,
|
||||
inline = options.inline,
|
||||
boundary = options.boundary,
|
||||
skipOverflowHiddenElements = options.skipOverflowHiddenElements;
|
||||
var checkBoundary = typeof boundary === 'function' ? boundary : function (node) {
|
||||
return node !== boundary;
|
||||
};
|
||||
|
||||
if (!isElement(target)) {
|
||||
throw new TypeError('Invalid target');
|
||||
}
|
||||
|
||||
var scrollingElement = document.scrollingElement || document.documentElement;
|
||||
var frames = [];
|
||||
var cursor = target;
|
||||
|
||||
while (isElement(cursor) && checkBoundary(cursor)) {
|
||||
cursor = cursor.parentNode;
|
||||
|
||||
if (cursor === scrollingElement) {
|
||||
frames.push(cursor);
|
||||
break;
|
||||
}
|
||||
|
||||
if (cursor === document.body && isScrollable(cursor) && !isScrollable(document.documentElement)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (isScrollable(cursor, skipOverflowHiddenElements)) {
|
||||
frames.push(cursor);
|
||||
}
|
||||
}
|
||||
|
||||
var viewportWidth = window.visualViewport ? visualViewport.width : innerWidth;
|
||||
var viewportHeight = window.visualViewport ? visualViewport.height : innerHeight;
|
||||
var viewportX = window.scrollX || pageXOffset;
|
||||
var viewportY = window.scrollY || pageYOffset;
|
||||
|
||||
var _target$getBoundingCl = target.getBoundingClientRect(),
|
||||
targetHeight = _target$getBoundingCl.height,
|
||||
targetWidth = _target$getBoundingCl.width,
|
||||
targetTop = _target$getBoundingCl.top,
|
||||
targetRight = _target$getBoundingCl.right,
|
||||
targetBottom = _target$getBoundingCl.bottom,
|
||||
targetLeft = _target$getBoundingCl.left;
|
||||
|
||||
var targetBlock = block === 'start' || block === 'nearest' ? targetTop : block === 'end' ? targetBottom : targetTop + targetHeight / 2;
|
||||
var targetInline = inline === 'center' ? targetLeft + targetWidth / 2 : inline === 'end' ? targetRight : targetLeft;
|
||||
var computations = [];
|
||||
|
||||
for (var index = 0; index < frames.length; index++) {
|
||||
var frame = frames[index];
|
||||
|
||||
var _frame$getBoundingCli = frame.getBoundingClientRect(),
|
||||
height = _frame$getBoundingCli.height,
|
||||
width = _frame$getBoundingCli.width,
|
||||
top = _frame$getBoundingCli.top,
|
||||
right = _frame$getBoundingCli.right,
|
||||
bottom = _frame$getBoundingCli.bottom,
|
||||
left = _frame$getBoundingCli.left;
|
||||
|
||||
if (scrollMode === 'if-needed' && targetTop >= 0 && targetLeft >= 0 && targetBottom <= viewportHeight && targetRight <= viewportWidth && targetTop >= top && targetBottom <= bottom && targetLeft >= left && targetRight <= right) {
|
||||
return computations;
|
||||
}
|
||||
|
||||
var frameStyle = getComputedStyle(frame);
|
||||
var borderLeft = parseInt(frameStyle.borderLeftWidth, 10);
|
||||
var borderTop = parseInt(frameStyle.borderTopWidth, 10);
|
||||
var borderRight = parseInt(frameStyle.borderRightWidth, 10);
|
||||
var borderBottom = parseInt(frameStyle.borderBottomWidth, 10);
|
||||
var blockScroll = 0;
|
||||
var inlineScroll = 0;
|
||||
var scrollbarWidth = 'offsetWidth' in frame ? frame.offsetWidth - frame.clientWidth - borderLeft - borderRight : 0;
|
||||
var scrollbarHeight = 'offsetHeight' in frame ? frame.offsetHeight - frame.clientHeight - borderTop - borderBottom : 0;
|
||||
|
||||
if (scrollingElement === frame) {
|
||||
if (block === 'start') {
|
||||
blockScroll = targetBlock;
|
||||
} else if (block === 'end') {
|
||||
blockScroll = targetBlock - viewportHeight;
|
||||
} else if (block === 'nearest') {
|
||||
blockScroll = alignNearest(viewportY, viewportY + viewportHeight, viewportHeight, borderTop, borderBottom, viewportY + targetBlock, viewportY + targetBlock + targetHeight, targetHeight);
|
||||
} else {
|
||||
blockScroll = targetBlock - viewportHeight / 2;
|
||||
}
|
||||
|
||||
if (inline === 'start') {
|
||||
inlineScroll = targetInline;
|
||||
} else if (inline === 'center') {
|
||||
inlineScroll = targetInline - viewportWidth / 2;
|
||||
} else if (inline === 'end') {
|
||||
inlineScroll = targetInline - viewportWidth;
|
||||
} else {
|
||||
inlineScroll = alignNearest(viewportX, viewportX + viewportWidth, viewportWidth, borderLeft, borderRight, viewportX + targetInline, viewportX + targetInline + targetWidth, targetWidth);
|
||||
}
|
||||
|
||||
blockScroll = Math.max(0, blockScroll + viewportY);
|
||||
inlineScroll = Math.max(0, inlineScroll + viewportX);
|
||||
} else {
|
||||
if (block === 'start') {
|
||||
blockScroll = targetBlock - top - borderTop;
|
||||
} else if (block === 'end') {
|
||||
blockScroll = targetBlock - bottom + borderBottom + scrollbarHeight;
|
||||
} else if (block === 'nearest') {
|
||||
blockScroll = alignNearest(top, bottom, height, borderTop, borderBottom + scrollbarHeight, targetBlock, targetBlock + targetHeight, targetHeight);
|
||||
} else {
|
||||
blockScroll = targetBlock - (top + height / 2) + scrollbarHeight / 2;
|
||||
}
|
||||
|
||||
if (inline === 'start') {
|
||||
inlineScroll = targetInline - left - borderLeft;
|
||||
} else if (inline === 'center') {
|
||||
inlineScroll = targetInline - (left + width / 2) + scrollbarWidth / 2;
|
||||
} else if (inline === 'end') {
|
||||
inlineScroll = targetInline - right + borderRight + scrollbarWidth;
|
||||
} else {
|
||||
inlineScroll = alignNearest(left, right, width, borderLeft, borderRight + scrollbarWidth, targetInline, targetInline + targetWidth, targetWidth);
|
||||
}
|
||||
|
||||
var scrollLeft = frame.scrollLeft,
|
||||
scrollTop = frame.scrollTop;
|
||||
blockScroll = Math.max(0, Math.min(scrollTop + blockScroll, frame.scrollHeight - height + scrollbarHeight));
|
||||
inlineScroll = Math.max(0, Math.min(scrollLeft + inlineScroll, frame.scrollWidth - width + scrollbarWidth));
|
||||
targetBlock += scrollTop - blockScroll;
|
||||
targetInline += scrollLeft - inlineScroll;
|
||||
}
|
||||
|
||||
computations.push({
|
||||
el: frame,
|
||||
top: blockScroll,
|
||||
left: inlineScroll
|
||||
});
|
||||
}
|
||||
|
||||
return computations;
|
||||
});
|
||||
201
web/node_modules/compute-scroll-into-view/index.js
generated
vendored
Normal file
201
web/node_modules/compute-scroll-into-view/index.js
generated
vendored
Normal file
@@ -0,0 +1,201 @@
|
||||
"use strict";
|
||||
|
||||
exports.__esModule = true;
|
||||
exports["default"] = void 0;
|
||||
|
||||
function isElement(el) {
|
||||
return el != null && typeof el === 'object' && el.nodeType === 1;
|
||||
}
|
||||
|
||||
function canOverflow(overflow, skipOverflowHiddenElements) {
|
||||
if (skipOverflowHiddenElements && overflow === 'hidden') {
|
||||
return false;
|
||||
}
|
||||
|
||||
return overflow !== 'visible' && overflow !== 'clip';
|
||||
}
|
||||
|
||||
function getFrameElement(el) {
|
||||
if (!el.ownerDocument || !el.ownerDocument.defaultView) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return el.ownerDocument.defaultView.frameElement;
|
||||
}
|
||||
|
||||
function isHiddenByFrame(el) {
|
||||
var frame = getFrameElement(el);
|
||||
|
||||
if (!frame) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return frame.clientHeight < el.scrollHeight || frame.clientWidth < el.scrollWidth;
|
||||
}
|
||||
|
||||
function isScrollable(el, skipOverflowHiddenElements) {
|
||||
if (el.clientHeight < el.scrollHeight || el.clientWidth < el.scrollWidth) {
|
||||
var style = getComputedStyle(el, null);
|
||||
return canOverflow(style.overflowY, skipOverflowHiddenElements) || canOverflow(style.overflowX, skipOverflowHiddenElements) || isHiddenByFrame(el);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
function alignNearest(scrollingEdgeStart, scrollingEdgeEnd, scrollingSize, scrollingBorderStart, scrollingBorderEnd, elementEdgeStart, elementEdgeEnd, elementSize) {
|
||||
if (elementEdgeStart < scrollingEdgeStart && elementEdgeEnd > scrollingEdgeEnd || elementEdgeStart > scrollingEdgeStart && elementEdgeEnd < scrollingEdgeEnd) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (elementEdgeStart <= scrollingEdgeStart && elementSize <= scrollingSize || elementEdgeEnd >= scrollingEdgeEnd && elementSize >= scrollingSize) {
|
||||
return elementEdgeStart - scrollingEdgeStart - scrollingBorderStart;
|
||||
}
|
||||
|
||||
if (elementEdgeEnd > scrollingEdgeEnd && elementSize < scrollingSize || elementEdgeStart < scrollingEdgeStart && elementSize > scrollingSize) {
|
||||
return elementEdgeEnd - scrollingEdgeEnd + scrollingBorderEnd;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
var _default = function _default(target, options) {
|
||||
var scrollMode = options.scrollMode,
|
||||
block = options.block,
|
||||
inline = options.inline,
|
||||
boundary = options.boundary,
|
||||
skipOverflowHiddenElements = options.skipOverflowHiddenElements;
|
||||
var checkBoundary = typeof boundary === 'function' ? boundary : function (node) {
|
||||
return node !== boundary;
|
||||
};
|
||||
|
||||
if (!isElement(target)) {
|
||||
throw new TypeError('Invalid target');
|
||||
}
|
||||
|
||||
var scrollingElement = document.scrollingElement || document.documentElement;
|
||||
var frames = [];
|
||||
var cursor = target;
|
||||
|
||||
while (isElement(cursor) && checkBoundary(cursor)) {
|
||||
cursor = cursor.parentNode;
|
||||
|
||||
if (cursor === scrollingElement) {
|
||||
frames.push(cursor);
|
||||
break;
|
||||
}
|
||||
|
||||
if (cursor === document.body && isScrollable(cursor) && !isScrollable(document.documentElement)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (isScrollable(cursor, skipOverflowHiddenElements)) {
|
||||
frames.push(cursor);
|
||||
}
|
||||
}
|
||||
|
||||
var viewportWidth = window.visualViewport ? visualViewport.width : innerWidth;
|
||||
var viewportHeight = window.visualViewport ? visualViewport.height : innerHeight;
|
||||
var viewportX = window.scrollX || pageXOffset;
|
||||
var viewportY = window.scrollY || pageYOffset;
|
||||
|
||||
var _target$getBoundingCl = target.getBoundingClientRect(),
|
||||
targetHeight = _target$getBoundingCl.height,
|
||||
targetWidth = _target$getBoundingCl.width,
|
||||
targetTop = _target$getBoundingCl.top,
|
||||
targetRight = _target$getBoundingCl.right,
|
||||
targetBottom = _target$getBoundingCl.bottom,
|
||||
targetLeft = _target$getBoundingCl.left;
|
||||
|
||||
var targetBlock = block === 'start' || block === 'nearest' ? targetTop : block === 'end' ? targetBottom : targetTop + targetHeight / 2;
|
||||
var targetInline = inline === 'center' ? targetLeft + targetWidth / 2 : inline === 'end' ? targetRight : targetLeft;
|
||||
var computations = [];
|
||||
|
||||
for (var index = 0; index < frames.length; index++) {
|
||||
var frame = frames[index];
|
||||
|
||||
var _frame$getBoundingCli = frame.getBoundingClientRect(),
|
||||
height = _frame$getBoundingCli.height,
|
||||
width = _frame$getBoundingCli.width,
|
||||
top = _frame$getBoundingCli.top,
|
||||
right = _frame$getBoundingCli.right,
|
||||
bottom = _frame$getBoundingCli.bottom,
|
||||
left = _frame$getBoundingCli.left;
|
||||
|
||||
if (scrollMode === 'if-needed' && targetTop >= 0 && targetLeft >= 0 && targetBottom <= viewportHeight && targetRight <= viewportWidth && targetTop >= top && targetBottom <= bottom && targetLeft >= left && targetRight <= right) {
|
||||
return computations;
|
||||
}
|
||||
|
||||
var frameStyle = getComputedStyle(frame);
|
||||
var borderLeft = parseInt(frameStyle.borderLeftWidth, 10);
|
||||
var borderTop = parseInt(frameStyle.borderTopWidth, 10);
|
||||
var borderRight = parseInt(frameStyle.borderRightWidth, 10);
|
||||
var borderBottom = parseInt(frameStyle.borderBottomWidth, 10);
|
||||
var blockScroll = 0;
|
||||
var inlineScroll = 0;
|
||||
var scrollbarWidth = 'offsetWidth' in frame ? frame.offsetWidth - frame.clientWidth - borderLeft - borderRight : 0;
|
||||
var scrollbarHeight = 'offsetHeight' in frame ? frame.offsetHeight - frame.clientHeight - borderTop - borderBottom : 0;
|
||||
|
||||
if (scrollingElement === frame) {
|
||||
if (block === 'start') {
|
||||
blockScroll = targetBlock;
|
||||
} else if (block === 'end') {
|
||||
blockScroll = targetBlock - viewportHeight;
|
||||
} else if (block === 'nearest') {
|
||||
blockScroll = alignNearest(viewportY, viewportY + viewportHeight, viewportHeight, borderTop, borderBottom, viewportY + targetBlock, viewportY + targetBlock + targetHeight, targetHeight);
|
||||
} else {
|
||||
blockScroll = targetBlock - viewportHeight / 2;
|
||||
}
|
||||
|
||||
if (inline === 'start') {
|
||||
inlineScroll = targetInline;
|
||||
} else if (inline === 'center') {
|
||||
inlineScroll = targetInline - viewportWidth / 2;
|
||||
} else if (inline === 'end') {
|
||||
inlineScroll = targetInline - viewportWidth;
|
||||
} else {
|
||||
inlineScroll = alignNearest(viewportX, viewportX + viewportWidth, viewportWidth, borderLeft, borderRight, viewportX + targetInline, viewportX + targetInline + targetWidth, targetWidth);
|
||||
}
|
||||
|
||||
blockScroll = Math.max(0, blockScroll + viewportY);
|
||||
inlineScroll = Math.max(0, inlineScroll + viewportX);
|
||||
} else {
|
||||
if (block === 'start') {
|
||||
blockScroll = targetBlock - top - borderTop;
|
||||
} else if (block === 'end') {
|
||||
blockScroll = targetBlock - bottom + borderBottom + scrollbarHeight;
|
||||
} else if (block === 'nearest') {
|
||||
blockScroll = alignNearest(top, bottom, height, borderTop, borderBottom + scrollbarHeight, targetBlock, targetBlock + targetHeight, targetHeight);
|
||||
} else {
|
||||
blockScroll = targetBlock - (top + height / 2) + scrollbarHeight / 2;
|
||||
}
|
||||
|
||||
if (inline === 'start') {
|
||||
inlineScroll = targetInline - left - borderLeft;
|
||||
} else if (inline === 'center') {
|
||||
inlineScroll = targetInline - (left + width / 2) + scrollbarWidth / 2;
|
||||
} else if (inline === 'end') {
|
||||
inlineScroll = targetInline - right + borderRight + scrollbarWidth;
|
||||
} else {
|
||||
inlineScroll = alignNearest(left, right, width, borderLeft, borderRight + scrollbarWidth, targetInline, targetInline + targetWidth, targetWidth);
|
||||
}
|
||||
|
||||
var scrollLeft = frame.scrollLeft,
|
||||
scrollTop = frame.scrollTop;
|
||||
blockScroll = Math.max(0, Math.min(scrollTop + blockScroll, frame.scrollHeight - height + scrollbarHeight));
|
||||
inlineScroll = Math.max(0, Math.min(scrollLeft + inlineScroll, frame.scrollWidth - width + scrollbarWidth));
|
||||
targetBlock += scrollTop - blockScroll;
|
||||
targetInline += scrollLeft - inlineScroll;
|
||||
}
|
||||
|
||||
computations.push({
|
||||
el: frame,
|
||||
top: blockScroll,
|
||||
left: inlineScroll
|
||||
});
|
||||
}
|
||||
|
||||
return computations;
|
||||
};
|
||||
|
||||
exports["default"] = _default;
|
||||
module.exports = exports.default;
|
||||
154
web/node_modules/compute-scroll-into-view/package.json
generated
vendored
Normal file
154
web/node_modules/compute-scroll-into-view/package.json
generated
vendored
Normal file
@@ -0,0 +1,154 @@
|
||||
{
|
||||
"_from": "compute-scroll-into-view@^1.0.13",
|
||||
"_id": "compute-scroll-into-view@1.0.13",
|
||||
"_inBundle": false,
|
||||
"_integrity": "sha512-o+w9w7A98aAFi/GjK8cxSV+CdASuPa2rR5UWs3+yHkJzWqaKoBEufFNWYaXInCSmUfDCVhesG+v9MTWqOjsxFg==",
|
||||
"_location": "/compute-scroll-into-view",
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"type": "range",
|
||||
"registry": true,
|
||||
"raw": "compute-scroll-into-view@^1.0.13",
|
||||
"name": "compute-scroll-into-view",
|
||||
"escapedName": "compute-scroll-into-view",
|
||||
"rawSpec": "^1.0.13",
|
||||
"saveSpec": null,
|
||||
"fetchSpec": "^1.0.13"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"/scroll-into-view-if-needed"
|
||||
],
|
||||
"_resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-1.0.13.tgz",
|
||||
"_shasum": "be1b1663b0e3f56cd5f7713082549f562a3477e2",
|
||||
"_spec": "compute-scroll-into-view@^1.0.13",
|
||||
"_where": "/Users/thilina/TestProjects/icehrm-pro/web/node_modules/scroll-into-view-if-needed",
|
||||
"author": {
|
||||
"name": "Cody Olsen"
|
||||
},
|
||||
"browserify": {
|
||||
"transform": [
|
||||
"loose-envify"
|
||||
]
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/stipsan/compute-scroll-into-view/issues"
|
||||
},
|
||||
"bundleDependencies": false,
|
||||
"bundlesize": [
|
||||
{
|
||||
"path": "./umd/compute-scroll-into-view.min.js",
|
||||
"maxSize": "2.6 kB",
|
||||
"compression": "none"
|
||||
}
|
||||
],
|
||||
"deprecated": false,
|
||||
"description": "The engine that powers scroll-into-view-if-needed",
|
||||
"devDependencies": {
|
||||
"@babel/cli": "7.8.3",
|
||||
"@babel/core": "7.8.3",
|
||||
"@babel/plugin-external-helpers": "7.8.3",
|
||||
"@babel/preset-env": "7.8.3",
|
||||
"@babel/preset-typescript": "7.8.3",
|
||||
"babel-plugin-add-module-exports": "1.0.2",
|
||||
"babel-plugin-dev-expression": "0.2.2",
|
||||
"concurrently": "5.0.2",
|
||||
"husky": "3.1.0",
|
||||
"jest": "23.6.0",
|
||||
"jest-junit": "10.0.0",
|
||||
"jest-puppeteer": "4.4.0",
|
||||
"lint-staged": "10.0.0",
|
||||
"prettier": "1.19.1",
|
||||
"prettier-package-json": "2.1.3",
|
||||
"puppeteer": "2.0.0",
|
||||
"rimraf": "3.0.0",
|
||||
"rollup": "1.29.0",
|
||||
"rollup-plugin-babel": "4.3.3",
|
||||
"rollup-plugin-commonjs": "10.1.0",
|
||||
"rollup-plugin-node-resolve": "5.2.0",
|
||||
"rollup-plugin-replace": "2.2.0",
|
||||
"rollup-plugin-terser": "5.2.0",
|
||||
"semantic-release": "15.14.0",
|
||||
"serve": "11.3.0",
|
||||
"tslint": "5.20.1",
|
||||
"tslint-config-prettier": "1.18.0",
|
||||
"typescript": "3.7.5"
|
||||
},
|
||||
"files": [
|
||||
"es",
|
||||
"typings",
|
||||
"umd"
|
||||
],
|
||||
"homepage": "https://scroll-into-view-if-needed.netlify.com",
|
||||
"keywords": [
|
||||
"if-needed",
|
||||
"scroll",
|
||||
"scroll-into-view",
|
||||
"scroll-into-view-if-needed",
|
||||
"scrollIntoView",
|
||||
"scrollIntoViewIfNeeded",
|
||||
"scrollMode",
|
||||
"typescript"
|
||||
],
|
||||
"license": "MIT",
|
||||
"lint-staged": {
|
||||
"*.js": [
|
||||
"prettier --write",
|
||||
"git add"
|
||||
],
|
||||
"*.{ts,tsx}": [
|
||||
"prettier --write",
|
||||
"git add"
|
||||
],
|
||||
"*.json": [
|
||||
"prettier --write",
|
||||
"git add"
|
||||
],
|
||||
"*.md": [
|
||||
"prettier --write",
|
||||
"git add"
|
||||
],
|
||||
"**/package.json": [
|
||||
"prettier-package-json --write",
|
||||
"git add"
|
||||
],
|
||||
"**/.babelrc": [
|
||||
"prettier --write",
|
||||
"git add"
|
||||
]
|
||||
},
|
||||
"main": "index.js",
|
||||
"module": "es/index.js",
|
||||
"name": "compute-scroll-into-view",
|
||||
"prettier": {
|
||||
"semi": false,
|
||||
"singleQuote": true,
|
||||
"trailingComma": "es5"
|
||||
},
|
||||
"release": {
|
||||
"prepare": [
|
||||
"@semantic-release/npm"
|
||||
]
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/stipsan/compute-scroll-into-view.git"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "yarn build:d.ts && yarn build:cjs && yarn build:es && yarn build:umd && yarn build:umd.min",
|
||||
"build:cjs": "BABEL_ENV=cjs babel src -d . --extensions '.ts'",
|
||||
"build:d.ts": "tsc --emitDeclarationOnly",
|
||||
"build:es": "BABEL_ENV=es babel src -d es --extensions '.ts'",
|
||||
"build:umd": "BABEL_ENV=umd NODE_ENV=development rollup -c -f umd -o umd/compute-scroll-into-view.js",
|
||||
"build:umd.min": "BABEL_ENV=umd NODE_ENV=production rollup -c -f umd -o umd/compute-scroll-into-view.min.js",
|
||||
"clean": "rimraf 'umd' 'es' 'typings'",
|
||||
"dev": "concurrently 'tsc --noEmit --watch' 'yarn build:cjs --watch' 'yarn build:es --watch' 'yarn build:umd --watch' 'yarn build:umd.min --watch'",
|
||||
"prebuild": "yarn clean",
|
||||
"precommit": "lint-staged",
|
||||
"prepublishOnly": "unset npm_config_cafile && yarn build",
|
||||
"test": "jest -c integration/jest.config.js",
|
||||
"typecheck": "tsc --noEmit"
|
||||
},
|
||||
"sideEffects": false,
|
||||
"typings": "typings/index.d.ts",
|
||||
"version": "1.0.13"
|
||||
}
|
||||
27
web/node_modules/compute-scroll-into-view/typings/index.d.ts
generated
vendored
Normal file
27
web/node_modules/compute-scroll-into-view/typings/index.d.ts
generated
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
declare global {
|
||||
interface Window {
|
||||
visualViewport?: {
|
||||
height: number;
|
||||
width: number;
|
||||
};
|
||||
}
|
||||
}
|
||||
declare type ScrollLogicalPosition = 'start' | 'center' | 'end' | 'nearest';
|
||||
declare type ScrollMode = 'always' | 'if-needed';
|
||||
declare type SkipOverflowHiddenElements = boolean;
|
||||
interface Options {
|
||||
block?: ScrollLogicalPosition;
|
||||
inline?: ScrollLogicalPosition;
|
||||
scrollMode?: ScrollMode;
|
||||
boundary?: CustomScrollBoundary;
|
||||
skipOverflowHiddenElements?: SkipOverflowHiddenElements;
|
||||
}
|
||||
declare type CustomScrollBoundaryCallback = (parent: Element) => boolean;
|
||||
declare type CustomScrollBoundary = Element | CustomScrollBoundaryCallback | null;
|
||||
interface CustomScrollAction {
|
||||
el: Element;
|
||||
top: number;
|
||||
left: number;
|
||||
}
|
||||
declare const _default: (target: Element, options: Options) => CustomScrollAction[];
|
||||
export default _default;
|
||||
203
web/node_modules/compute-scroll-into-view/umd/compute-scroll-into-view.js
generated
vendored
Normal file
203
web/node_modules/compute-scroll-into-view/umd/compute-scroll-into-view.js
generated
vendored
Normal file
@@ -0,0 +1,203 @@
|
||||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||
typeof define === 'function' && define.amd ? define(factory) :
|
||||
(global = global || self, global.computeScrollIntoView = factory());
|
||||
}(this, (function () { 'use strict';
|
||||
|
||||
function isElement(el) {
|
||||
return el != null && typeof el === 'object' && el.nodeType === 1;
|
||||
}
|
||||
|
||||
function canOverflow(overflow, skipOverflowHiddenElements) {
|
||||
if (skipOverflowHiddenElements && overflow === 'hidden') {
|
||||
return false;
|
||||
}
|
||||
|
||||
return overflow !== 'visible' && overflow !== 'clip';
|
||||
}
|
||||
|
||||
function getFrameElement(el) {
|
||||
if (!el.ownerDocument || !el.ownerDocument.defaultView) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return el.ownerDocument.defaultView.frameElement;
|
||||
}
|
||||
|
||||
function isHiddenByFrame(el) {
|
||||
var frame = getFrameElement(el);
|
||||
|
||||
if (!frame) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return frame.clientHeight < el.scrollHeight || frame.clientWidth < el.scrollWidth;
|
||||
}
|
||||
|
||||
function isScrollable(el, skipOverflowHiddenElements) {
|
||||
if (el.clientHeight < el.scrollHeight || el.clientWidth < el.scrollWidth) {
|
||||
var style = getComputedStyle(el, null);
|
||||
return canOverflow(style.overflowY, skipOverflowHiddenElements) || canOverflow(style.overflowX, skipOverflowHiddenElements) || isHiddenByFrame(el);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
function alignNearest(scrollingEdgeStart, scrollingEdgeEnd, scrollingSize, scrollingBorderStart, scrollingBorderEnd, elementEdgeStart, elementEdgeEnd, elementSize) {
|
||||
if (elementEdgeStart < scrollingEdgeStart && elementEdgeEnd > scrollingEdgeEnd || elementEdgeStart > scrollingEdgeStart && elementEdgeEnd < scrollingEdgeEnd) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (elementEdgeStart <= scrollingEdgeStart && elementSize <= scrollingSize || elementEdgeEnd >= scrollingEdgeEnd && elementSize >= scrollingSize) {
|
||||
return elementEdgeStart - scrollingEdgeStart - scrollingBorderStart;
|
||||
}
|
||||
|
||||
if (elementEdgeEnd > scrollingEdgeEnd && elementSize < scrollingSize || elementEdgeStart < scrollingEdgeStart && elementSize > scrollingSize) {
|
||||
return elementEdgeEnd - scrollingEdgeEnd + scrollingBorderEnd;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
var index = (function (target, options) {
|
||||
var scrollMode = options.scrollMode,
|
||||
block = options.block,
|
||||
inline = options.inline,
|
||||
boundary = options.boundary,
|
||||
skipOverflowHiddenElements = options.skipOverflowHiddenElements;
|
||||
var checkBoundary = typeof boundary === 'function' ? boundary : function (node) {
|
||||
return node !== boundary;
|
||||
};
|
||||
|
||||
if (!isElement(target)) {
|
||||
throw new TypeError('Invalid target');
|
||||
}
|
||||
|
||||
var scrollingElement = document.scrollingElement || document.documentElement;
|
||||
var frames = [];
|
||||
var cursor = target;
|
||||
|
||||
while (isElement(cursor) && checkBoundary(cursor)) {
|
||||
cursor = cursor.parentNode;
|
||||
|
||||
if (cursor === scrollingElement) {
|
||||
frames.push(cursor);
|
||||
break;
|
||||
}
|
||||
|
||||
if (cursor === document.body && isScrollable(cursor) && !isScrollable(document.documentElement)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (isScrollable(cursor, skipOverflowHiddenElements)) {
|
||||
frames.push(cursor);
|
||||
}
|
||||
}
|
||||
|
||||
var viewportWidth = window.visualViewport ? visualViewport.width : innerWidth;
|
||||
var viewportHeight = window.visualViewport ? visualViewport.height : innerHeight;
|
||||
var viewportX = window.scrollX || pageXOffset;
|
||||
var viewportY = window.scrollY || pageYOffset;
|
||||
|
||||
var _target$getBoundingCl = target.getBoundingClientRect(),
|
||||
targetHeight = _target$getBoundingCl.height,
|
||||
targetWidth = _target$getBoundingCl.width,
|
||||
targetTop = _target$getBoundingCl.top,
|
||||
targetRight = _target$getBoundingCl.right,
|
||||
targetBottom = _target$getBoundingCl.bottom,
|
||||
targetLeft = _target$getBoundingCl.left;
|
||||
|
||||
var targetBlock = block === 'start' || block === 'nearest' ? targetTop : block === 'end' ? targetBottom : targetTop + targetHeight / 2;
|
||||
var targetInline = inline === 'center' ? targetLeft + targetWidth / 2 : inline === 'end' ? targetRight : targetLeft;
|
||||
var computations = [];
|
||||
|
||||
for (var index = 0; index < frames.length; index++) {
|
||||
var frame = frames[index];
|
||||
|
||||
var _frame$getBoundingCli = frame.getBoundingClientRect(),
|
||||
height = _frame$getBoundingCli.height,
|
||||
width = _frame$getBoundingCli.width,
|
||||
top = _frame$getBoundingCli.top,
|
||||
right = _frame$getBoundingCli.right,
|
||||
bottom = _frame$getBoundingCli.bottom,
|
||||
left = _frame$getBoundingCli.left;
|
||||
|
||||
if (scrollMode === 'if-needed' && targetTop >= 0 && targetLeft >= 0 && targetBottom <= viewportHeight && targetRight <= viewportWidth && targetTop >= top && targetBottom <= bottom && targetLeft >= left && targetRight <= right) {
|
||||
return computations;
|
||||
}
|
||||
|
||||
var frameStyle = getComputedStyle(frame);
|
||||
var borderLeft = parseInt(frameStyle.borderLeftWidth, 10);
|
||||
var borderTop = parseInt(frameStyle.borderTopWidth, 10);
|
||||
var borderRight = parseInt(frameStyle.borderRightWidth, 10);
|
||||
var borderBottom = parseInt(frameStyle.borderBottomWidth, 10);
|
||||
var blockScroll = 0;
|
||||
var inlineScroll = 0;
|
||||
var scrollbarWidth = 'offsetWidth' in frame ? frame.offsetWidth - frame.clientWidth - borderLeft - borderRight : 0;
|
||||
var scrollbarHeight = 'offsetHeight' in frame ? frame.offsetHeight - frame.clientHeight - borderTop - borderBottom : 0;
|
||||
|
||||
if (scrollingElement === frame) {
|
||||
if (block === 'start') {
|
||||
blockScroll = targetBlock;
|
||||
} else if (block === 'end') {
|
||||
blockScroll = targetBlock - viewportHeight;
|
||||
} else if (block === 'nearest') {
|
||||
blockScroll = alignNearest(viewportY, viewportY + viewportHeight, viewportHeight, borderTop, borderBottom, viewportY + targetBlock, viewportY + targetBlock + targetHeight, targetHeight);
|
||||
} else {
|
||||
blockScroll = targetBlock - viewportHeight / 2;
|
||||
}
|
||||
|
||||
if (inline === 'start') {
|
||||
inlineScroll = targetInline;
|
||||
} else if (inline === 'center') {
|
||||
inlineScroll = targetInline - viewportWidth / 2;
|
||||
} else if (inline === 'end') {
|
||||
inlineScroll = targetInline - viewportWidth;
|
||||
} else {
|
||||
inlineScroll = alignNearest(viewportX, viewportX + viewportWidth, viewportWidth, borderLeft, borderRight, viewportX + targetInline, viewportX + targetInline + targetWidth, targetWidth);
|
||||
}
|
||||
|
||||
blockScroll = Math.max(0, blockScroll + viewportY);
|
||||
inlineScroll = Math.max(0, inlineScroll + viewportX);
|
||||
} else {
|
||||
if (block === 'start') {
|
||||
blockScroll = targetBlock - top - borderTop;
|
||||
} else if (block === 'end') {
|
||||
blockScroll = targetBlock - bottom + borderBottom + scrollbarHeight;
|
||||
} else if (block === 'nearest') {
|
||||
blockScroll = alignNearest(top, bottom, height, borderTop, borderBottom + scrollbarHeight, targetBlock, targetBlock + targetHeight, targetHeight);
|
||||
} else {
|
||||
blockScroll = targetBlock - (top + height / 2) + scrollbarHeight / 2;
|
||||
}
|
||||
|
||||
if (inline === 'start') {
|
||||
inlineScroll = targetInline - left - borderLeft;
|
||||
} else if (inline === 'center') {
|
||||
inlineScroll = targetInline - (left + width / 2) + scrollbarWidth / 2;
|
||||
} else if (inline === 'end') {
|
||||
inlineScroll = targetInline - right + borderRight + scrollbarWidth;
|
||||
} else {
|
||||
inlineScroll = alignNearest(left, right, width, borderLeft, borderRight + scrollbarWidth, targetInline, targetInline + targetWidth, targetWidth);
|
||||
}
|
||||
|
||||
var scrollLeft = frame.scrollLeft,
|
||||
scrollTop = frame.scrollTop;
|
||||
blockScroll = Math.max(0, Math.min(scrollTop + blockScroll, frame.scrollHeight - height + scrollbarHeight));
|
||||
inlineScroll = Math.max(0, Math.min(scrollLeft + inlineScroll, frame.scrollWidth - width + scrollbarWidth));
|
||||
targetBlock += scrollTop - blockScroll;
|
||||
targetInline += scrollLeft - inlineScroll;
|
||||
}
|
||||
|
||||
computations.push({
|
||||
el: frame,
|
||||
top: blockScroll,
|
||||
left: inlineScroll
|
||||
});
|
||||
}
|
||||
|
||||
return computations;
|
||||
});
|
||||
|
||||
return index;
|
||||
|
||||
})));
|
||||
1
web/node_modules/compute-scroll-into-view/umd/compute-scroll-into-view.min.js
generated
vendored
Normal file
1
web/node_modules/compute-scroll-into-view/umd/compute-scroll-into-view.min.js
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).computeScrollIntoView=t()}(this,(function(){"use strict";function e(e){return null!=e&&"object"==typeof e&&1===e.nodeType}function t(e,t){return(!t||"hidden"!==e)&&("visible"!==e&&"clip"!==e)}function n(e,n){if(e.clientHeight<e.scrollHeight||e.clientWidth<e.scrollWidth){var i=getComputedStyle(e,null);return t(i.overflowY,n)||t(i.overflowX,n)||function(e){var t=function(e){return e.ownerDocument&&e.ownerDocument.defaultView?e.ownerDocument.defaultView.frameElement:null}(e);return!!t&&(t.clientHeight<e.scrollHeight||t.clientWidth<e.scrollWidth)}(e)}return!1}function i(e,t,n,i,o,r,l,d){return r<e&&l>t||r>e&&l<t?0:r<=e&&d<=n||l>=t&&d>=n?r-e-i:l>t&&d<n||r<e&&d>n?l-t+o:0}return function(t,o){var r=o.scrollMode,l=o.block,d=o.inline,u=o.boundary,f=o.skipOverflowHiddenElements,c="function"==typeof u?u:function(e){return e!==u};if(!e(t))throw new TypeError("Invalid target");for(var h=document.scrollingElement||document.documentElement,s=[],a=t;e(a)&&c(a);){if((a=a.parentNode)===h){s.push(a);break}a===document.body&&n(a)&&!n(document.documentElement)||n(a,f)&&s.push(a)}for(var p=window.visualViewport?visualViewport.width:innerWidth,m=window.visualViewport?visualViewport.height:innerHeight,g=window.scrollX||pageXOffset,w=window.scrollY||pageYOffset,v=t.getBoundingClientRect(),b=v.height,W=v.width,y=v.top,H=v.right,M=v.bottom,V=v.left,x="start"===l||"nearest"===l?y:"end"===l?M:y+b/2,E="center"===d?V+W/2:"end"===d?H:V,I=[],C=0;C<s.length;C++){var T=s[C],k=T.getBoundingClientRect(),B=k.height,D=k.width,O=k.top,R=k.right,S=k.bottom,X=k.left;if("if-needed"===r&&y>=0&&V>=0&&M<=m&&H<=p&&y>=O&&M<=S&&V>=X&&H<=R)return I;var Y=getComputedStyle(T),j=parseInt(Y.borderLeftWidth,10),L=parseInt(Y.borderTopWidth,10),N=parseInt(Y.borderRightWidth,10),q=parseInt(Y.borderBottomWidth,10),z=0,A=0,F="offsetWidth"in T?T.offsetWidth-T.clientWidth-j-N:0,G="offsetHeight"in T?T.offsetHeight-T.clientHeight-L-q:0;if(h===T)z="start"===l?x:"end"===l?x-m:"nearest"===l?i(w,w+m,m,L,q,w+x,w+x+b,b):x-m/2,A="start"===d?E:"center"===d?E-p/2:"end"===d?E-p:i(g,g+p,p,j,N,g+E,g+E+W,W),z=Math.max(0,z+w),A=Math.max(0,A+g);else{z="start"===l?x-O-L:"end"===l?x-S+q+G:"nearest"===l?i(O,S,B,L,q+G,x,x+b,b):x-(O+B/2)+G/2,A="start"===d?E-X-j:"center"===d?E-(X+D/2)+F/2:"end"===d?E-R+N+F:i(X,R,D,j,N+F,E,E+W,W);var J=T.scrollLeft,K=T.scrollTop;x+=K-(z=Math.max(0,Math.min(K+z,T.scrollHeight-B+G))),E+=J-(A=Math.max(0,Math.min(J+A,T.scrollWidth-D+F)))}I.push({el:T,top:z,left:A})}return I}}));
|
||||
Reference in New Issue
Block a user