infinity-forge
Version:
371 lines • 13 kB
JavaScript
;
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
if (ar || !(i in from)) {
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
ar[i] = from[i];
}
}
return to.concat(ar || Array.prototype.slice.call(from));
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.animateCSSModeScroll = animateCSSModeScroll;
exports.deleteProps = deleteProps;
exports.nextTick = nextTick;
exports.now = now;
exports.getTranslate = getTranslate;
exports.isObject = isObject;
exports.extend = extend;
exports.getComputedStyle = getComputedStyle;
exports.setCSSProperty = setCSSProperty;
exports.getSlideTransformEl = getSlideTransformEl;
exports.showWarning = showWarning;
exports.findElementsInElements = findElementsInElements;
exports.createElement = createElement;
exports.elementChildren = elementChildren;
exports.elementOffset = elementOffset;
exports.elementPrevAll = elementPrevAll;
exports.elementNextAll = elementNextAll;
exports.elementStyle = elementStyle;
exports.elementIndex = elementIndex;
exports.elementParents = elementParents;
exports.elementTransitionEnd = elementTransitionEnd;
exports.elementOuterSize = elementOuterSize;
exports.makeElementsArray = makeElementsArray;
//@ts-nocheck
var classes_to_tokens_1 = __importDefault(require("./classes-to-tokens.js"));
var document_1 = require("../ssr-window/document.js");
var window_1 = require("../ssr-window/window.js");
function deleteProps(obj) {
var object = obj;
Object.keys(object).forEach(function (key) {
try {
object[key] = null;
}
catch (e) {
// no getter for object
}
try {
delete object[key];
}
catch (e) {
// something got wrong
}
});
}
function nextTick(callback, delay) {
if (delay === void 0) { delay = 0; }
return setTimeout(callback, delay);
}
function now() {
return Date.now();
}
function getComputedStyle(el) {
var window = (0, window_1.getWindow)();
var style;
if (window.getComputedStyle) {
style = window.getComputedStyle(el, null);
}
if (!style && el.currentStyle) {
style = el.currentStyle;
}
if (!style) {
style = el.style;
}
return style;
}
function getTranslate(el, axis) {
if (axis === void 0) { axis = 'x'; }
var window = (0, window_1.getWindow)();
var matrix;
var curTransform;
var transformMatrix;
var curStyle = getComputedStyle(el, null);
if (window.WebKitCSSMatrix) {
curTransform = curStyle.transform || curStyle.webkitTransform;
if (curTransform.split(',').length > 6) {
curTransform = curTransform
.split(', ')
.map(function (a) { return a.replace(',', '.'); })
.join(', ');
}
// Some old versions of Webkit choke when 'none' is passed; pass
// empty string instead in this case
transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);
}
else {
transformMatrix =
curStyle.MozTransform ||
curStyle.OTransform ||
curStyle.MsTransform ||
curStyle.msTransform ||
curStyle.transform ||
curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');
matrix = transformMatrix.toString().split(',');
}
if (axis === 'x') {
// Latest Chrome and webkits Fix
if (window.WebKitCSSMatrix)
curTransform = transformMatrix.m41;
// Crazy IE10 Matrix
else if (matrix.length === 16)
curTransform = parseFloat(matrix[12]);
// Normal Browsers
else
curTransform = parseFloat(matrix[4]);
}
if (axis === 'y') {
// Latest Chrome and webkits Fix
if (window.WebKitCSSMatrix)
curTransform = transformMatrix.m42;
// Crazy IE10 Matrix
else if (matrix.length === 16)
curTransform = parseFloat(matrix[13]);
// Normal Browsers
else
curTransform = parseFloat(matrix[5]);
}
return curTransform || 0;
}
function isObject(o) {
return (typeof o === 'object' &&
o !== null &&
o.constructor &&
Object.prototype.toString.call(o).slice(8, -1) === 'Object');
}
function isNode(node) {
// eslint-disable-next-line
if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {
return node instanceof HTMLElement;
}
return node && (node.nodeType === 1 || node.nodeType === 11);
}
function extend() {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
var to = Object(args[0]);
var noExtend = ['__proto__', 'constructor', 'prototype'];
for (var i = 1; i < args.length; i += 1) {
var nextSource = args[i];
if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {
var keysArray = Object.keys(Object(nextSource)).filter(function (key) { return noExtend.indexOf(key) < 0; });
for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {
var nextKey = keysArray[nextIndex];
var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);
if (desc !== undefined && desc.enumerable) {
if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {
if (nextSource[nextKey].__swiper__) {
to[nextKey] = nextSource[nextKey];
}
else {
extend(to[nextKey], nextSource[nextKey]);
}
}
else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {
to[nextKey] = {};
if (nextSource[nextKey].__swiper__) {
to[nextKey] = nextSource[nextKey];
}
else {
extend(to[nextKey], nextSource[nextKey]);
}
}
else {
to[nextKey] = nextSource[nextKey];
}
}
}
}
}
return to;
}
function setCSSProperty(el, varName, varValue) {
el.style.setProperty(varName, varValue);
}
function animateCSSModeScroll(_a) {
var swiper = _a.swiper, targetPosition = _a.targetPosition, side = _a.side;
var window = (0, window_1.getWindow)();
var startPosition = -swiper.translate;
var startTime = null;
var time;
var duration = swiper.params.speed;
swiper.wrapperEl.style.scrollSnapType = 'none';
window.cancelAnimationFrame(swiper.cssModeFrameID);
var dir = targetPosition > startPosition ? 'next' : 'prev';
var isOutOfBound = function (current, target) {
return (dir === 'next' && current >= target) || (dir === 'prev' && current <= target);
};
var animate = function () {
var _a;
time = new Date().getTime();
if (startTime === null) {
startTime = time;
}
var progress = Math.max(Math.min((time - startTime) / duration, 1), 0);
var easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;
var currentPosition = startPosition + easeProgress * (targetPosition - startPosition);
if (isOutOfBound(currentPosition, targetPosition)) {
currentPosition = targetPosition;
}
swiper.wrapperEl.scrollTo((_a = {},
_a[side] = currentPosition,
_a));
if (isOutOfBound(currentPosition, targetPosition)) {
swiper.wrapperEl.style.overflow = 'hidden';
swiper.wrapperEl.style.scrollSnapType = '';
setTimeout(function () {
var _a;
swiper.wrapperEl.style.overflow = '';
swiper.wrapperEl.scrollTo((_a = {},
_a[side] = currentPosition,
_a));
});
window.cancelAnimationFrame(swiper.cssModeFrameID);
return;
}
swiper.cssModeFrameID = window.requestAnimationFrame(animate);
};
animate();
}
function getSlideTransformEl(slideEl) {
return (slideEl.querySelector('.swiper-slide-transform') ||
(slideEl.shadowRoot && slideEl.shadowRoot.querySelector('.swiper-slide-transform')) ||
slideEl);
}
function findElementsInElements(elements, selector) {
if (elements === void 0) { elements = []; }
if (selector === void 0) { selector = ''; }
var found = [];
elements.forEach(function (el) {
found.push.apply(found, el.querySelectorAll(selector));
});
return found;
}
function elementChildren(element, selector) {
if (selector === void 0) { selector = ''; }
return __spreadArray([], element.children, true).filter(function (el) { return el.matches(selector); });
}
function showWarning(text) {
try {
console.warn(text);
return;
}
catch (err) {
// err
}
}
function createElement(tag, classes) {
var _a;
if (classes === void 0) { classes = []; }
var el = document.createElement(tag);
(_a = el.classList).add.apply(_a, (Array.isArray(classes) ? classes : (0, classes_to_tokens_1.default)(classes)));
return el;
}
function elementOffset(el) {
var window = (0, window_1.getWindow)();
var document = (0, document_1.getDocument)();
var box = el.getBoundingClientRect();
var body = document.body;
var clientTop = el.clientTop || body.clientTop || 0;
var clientLeft = el.clientLeft || body.clientLeft || 0;
var scrollTop = el === window ? window.scrollY : el.scrollTop;
var scrollLeft = el === window ? window.scrollX : el.scrollLeft;
return {
top: box.top + scrollTop - clientTop,
left: box.left + scrollLeft - clientLeft,
};
}
function elementPrevAll(el, selector) {
var prevEls = [];
while (el.previousElementSibling) {
var prev = el.previousElementSibling; // eslint-disable-line
if (selector) {
if (prev.matches(selector))
prevEls.push(prev);
}
else
prevEls.push(prev);
el = prev;
}
return prevEls;
}
function elementNextAll(el, selector) {
var nextEls = [];
while (el.nextElementSibling) {
var next = el.nextElementSibling; // eslint-disable-line
if (selector) {
if (next.matches(selector))
nextEls.push(next);
}
else
nextEls.push(next);
el = next;
}
return nextEls;
}
function elementStyle(el, prop) {
var window = (0, window_1.getWindow)();
return window.getComputedStyle(el, null).getPropertyValue(prop);
}
function elementIndex(el) {
var child = el;
var i;
if (child) {
i = 0;
// eslint-disable-next-line
while ((child = child.previousSibling) !== null) {
if (child.nodeType === 1)
i += 1;
}
return i;
}
return undefined;
}
function elementParents(el, selector) {
var parents = []; // eslint-disable-line
var parent = el.parentElement; // eslint-disable-line
while (parent) {
if (selector) {
if (parent.matches(selector))
parents.push(parent);
}
else {
parents.push(parent);
}
parent = parent.parentElement;
}
return parents;
}
function elementTransitionEnd(el, callback) {
function fireCallBack(e) {
if (e.target !== el)
return;
callback.call(el, e);
el.removeEventListener('transitionend', fireCallBack);
}
if (callback) {
el.addEventListener('transitionend', fireCallBack);
}
}
function elementOuterSize(el, size, includeMargins) {
var window = (0, window_1.getWindow)();
if (includeMargins) {
return (el[size === 'width' ? 'offsetWidth' : 'offsetHeight'] +
parseFloat(window
.getComputedStyle(el, null)
.getPropertyValue(size === 'width' ? 'margin-right' : 'margin-top')) +
parseFloat(window
.getComputedStyle(el, null)
.getPropertyValue(size === 'width' ? 'margin-left' : 'margin-bottom')));
}
return el.offsetWidth;
}
function makeElementsArray(el) {
return (Array.isArray(el) ? el : [el]).filter(function (e) { return !!e; });
}
//# sourceMappingURL=utils.js.map