201 lines
5.5 KiB
JavaScript
201 lines
5.5 KiB
JavaScript
"use strict";
|
|
|
|
exports.__esModule = true;
|
|
exports.deleteProps = deleteProps;
|
|
exports.nextTick = nextTick;
|
|
exports.now = now;
|
|
exports.getTranslate = getTranslate;
|
|
exports.isObject = isObject;
|
|
exports.extend = extend;
|
|
exports.bindModuleMethods = bindModuleMethods;
|
|
exports.getComputedStyle = getComputedStyle;
|
|
exports.classesToSelector = classesToSelector;
|
|
exports.createElementIfNotDefined = createElementIfNotDefined;
|
|
|
|
var _ssrWindow = require("ssr-window");
|
|
|
|
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, _ssrWindow.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, _ssrWindow.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 to = Object(arguments.length <= 0 ? undefined : arguments[0]);
|
|
var noExtend = ['__proto__', 'constructor', 'prototype'];
|
|
|
|
for (var i = 1; i < arguments.length; i += 1) {
|
|
var nextSource = i < 0 || arguments.length <= i ? undefined : arguments[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 bindModuleMethods(instance, obj) {
|
|
Object.keys(obj).forEach(function (key) {
|
|
if (isObject(obj[key])) {
|
|
Object.keys(obj[key]).forEach(function (subKey) {
|
|
if (typeof obj[key][subKey] === 'function') {
|
|
obj[key][subKey] = obj[key][subKey].bind(instance);
|
|
}
|
|
});
|
|
}
|
|
|
|
instance[key] = obj[key];
|
|
});
|
|
}
|
|
|
|
function classesToSelector(classes) {
|
|
if (classes === void 0) {
|
|
classes = '';
|
|
}
|
|
|
|
return "." + classes.trim().replace(/([\.:!\/])/g, '\\$1') // eslint-disable-line
|
|
.replace(/ /g, '.');
|
|
}
|
|
|
|
function createElementIfNotDefined($container, params, createElements, checkProps) {
|
|
var document = (0, _ssrWindow.getDocument)();
|
|
|
|
if (createElements) {
|
|
Object.keys(checkProps).forEach(function (key) {
|
|
if (!params[key] && params.auto === true) {
|
|
var element = document.createElement('div');
|
|
element.className = checkProps[key];
|
|
$container.append(element);
|
|
params[key] = element;
|
|
}
|
|
});
|
|
}
|
|
|
|
return params;
|
|
} |