patternlock
Version:
Pattern Lock is a light weight plugin to simulate android like pattern lock mechanism for your hybrid app or for a website. It's easy to configure and style so you can have different type of pattern lock according to your need. Is also provide some method
97 lines (82 loc) • 2.52 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.noop = noop;
exports.toArray = toArray;
exports.assign = assign;
exports.css = css;
exports.addClass = addClass;
exports.removeClass = removeClass;
exports.remove = remove;
exports.createDom = createDom;
exports.getLengthAngle = getLengthAngle;
function noop() {}
function toArray(list) {
if (!(list instanceof NodeList || list instanceof HTMLCollection)) return [list];
return Array.prototype.slice.call(list);
}
function assign(target) {
for (var _len = arguments.length, rest = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
rest[_key - 1] = arguments[_key];
}
rest.forEach(function (obj) {
Object.keys(obj).forEach(function (key) {
target[key] = obj[key]; // eslint-disable-line no-param-reassign
});
});
return target;
}
function css(element, properties) {
if (typeof properties === 'string') {
return window.getComputedStyle(element)[properties];
}
Object.keys(properties).forEach(function (key) {
var value = properties[key];
element.style[key] = value; // eslint-disable-line no-param-reassign
});
return undefined;
}
function addClass(el, className) {
var classNameAry = className.split(' ');
if (classNameAry.length > 1) {
classNameAry.forEach(function (classItem) {
return addClass(el, classItem);
});
} else if (el.classList) {
el.classList.add(className);
} else {
el.className += ' ' + className; // eslint-disable-line no-param-reassign
}
}
function removeClass(el, className) {
var classNameAry = className.split(' ');
if (classNameAry.length > 1) {
classNameAry.forEach(function (classItem) {
return removeClass(el, classItem);
});
} else if (el.classList) {
el.classList.remove(className);
} else {
el.className = el.className.replace(new RegExp('(^|\\b)' + className.split(' ').join('|') + '(\\b|$)', 'gi'), ' '); // eslint-disable-line no-param-reassign
}
}
function remove(nodes) {
toArray(nodes).forEach(function (el) {
el.parentNode.removeChild(el);
});
}
function createDom(str) {
var div = document.createElement('div');
div.innerHTML = str;
return div.children[0];
}
// return height and angle for lines
function getLengthAngle(x1, x2, y1, y2) {
var xDiff = x2 - x1;
var yDiff = y2 - y1;
return {
length: Math.ceil(Math.sqrt(xDiff * xDiff + yDiff * yDiff)),
angle: Math.round(Math.atan2(yDiff, xDiff) * 180 / Math.PI)
};
}