go-captcha-angular
Version:
GoCaptcha for Angular, which implements click mode, slider mode, drag-drop mode and rotation mode.
53 lines • 5.07 kB
JavaScript
/**
* @Author Awen
* @Date 2024/05/25
* @Email wengaolng@gmail.com
**/
export function getDomXY(dom) {
let x = 0;
let y = 0;
if (dom.getBoundingClientRect) {
const box = dom.getBoundingClientRect();
const D = document.documentElement;
x = box.left + Math.max(D.scrollLeft, document.body.scrollLeft) - D.clientLeft;
y = box.top + Math.max(D.scrollTop, document.body.scrollTop) - D.clientTop;
}
else {
while (dom !== document.body) {
x += dom.offsetLeft;
y += dom.offsetTop;
dom = dom.offsetParent;
}
}
return {
domX: x,
domY: y
};
}
export function checkTargetFather(that, e) {
let parent = e.relatedTarget;
try {
while (parent && parent !== that) {
parent = parent.parentNode;
}
}
catch (e) {
console.warn(e);
}
return parent !== that;
}
export function mergeToOver(src, dest) {
for (const ccKey in src) {
if (dest.hasOwnProperty(ccKey)) {
dest[ccKey] = src[ccKey];
}
}
}
export function mergeTo(src, dest) {
for (const ccKey in src) {
if (!dest.hasOwnProperty(ccKey)) {
dest[ccKey] = src[ccKey];
}
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ28tY2FwdGNoYS1hbmd1bGFyL3NyYy9saWIvaGVscGVyL2hlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztJQUlJO0FBRUosTUFBTSxVQUFVLFFBQVEsQ0FBQyxHQUFRO0lBQy9CLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUNULElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUNULElBQUksR0FBRyxDQUFDLHFCQUFxQixFQUFFO1FBQzdCLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ3hDLE1BQU0sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxlQUFlLENBQUM7UUFDbkMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQztRQUMvRSxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFBO0tBQzNFO1NBQ0c7UUFDRixPQUFPLEdBQUcsS0FBSyxRQUFRLENBQUMsSUFBSSxFQUFFO1lBQzVCLENBQUMsSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFBO1lBQ25CLENBQUMsSUFBSSxHQUFHLENBQUMsU0FBUyxDQUFBO1lBQ2xCLEdBQUcsR0FBRyxHQUFHLENBQUMsWUFBWSxDQUFBO1NBQ3ZCO0tBQ0Y7SUFDRCxPQUFPO1FBQ0wsSUFBSSxFQUFFLENBQUM7UUFDUCxJQUFJLEVBQUUsQ0FBQztLQUNSLENBQUE7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLGlCQUFpQixDQUFDLElBQVMsRUFBRSxDQUFNO0lBQ2pELElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUE7SUFDNUIsSUFBRztRQUNELE9BQU0sTUFBTSxJQUFJLE1BQU0sS0FBSyxJQUFJLEVBQUU7WUFDL0IsTUFBTSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUE7U0FDM0I7S0FDRjtJQUFBLE9BQU8sQ0FBQyxFQUFDO1FBQ1IsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtLQUNoQjtJQUVELE9BQU8sTUFBTSxLQUFLLElBQUksQ0FBQTtBQUN4QixDQUFDO0FBRUQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxHQUFRLEVBQUUsSUFBUztJQUM3QyxLQUFLLE1BQU0sS0FBSyxJQUFJLEdBQUcsRUFBRTtRQUN2QixJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDOUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQTtTQUN6QjtLQUNGO0FBQ0gsQ0FBQztBQUdELE1BQU0sVUFBVSxPQUFPLENBQUMsR0FBUSxFQUFFLElBQVM7SUFDekMsS0FBSyxNQUFNLEtBQUssSUFBSSxHQUFHLEVBQUU7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDL0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQTtTQUN6QjtLQUNGO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQEF1dGhvciBBd2VuXG4gKiBARGF0ZSAyMDI0LzA1LzI1XG4gKiBARW1haWwgd2VuZ2FvbG5nQGdtYWlsLmNvbVxuICoqL1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RG9tWFkoZG9tOiBhbnkpe1xuICBsZXQgeCA9IDBcbiAgbGV0IHkgPSAwXG4gIGlmIChkb20uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KSB7XG4gICAgY29uc3QgYm94ID0gZG9tLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IEQgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XG4gICAgeCA9IGJveC5sZWZ0ICsgTWF0aC5tYXgoRC5zY3JvbGxMZWZ0LCBkb2N1bWVudC5ib2R5LnNjcm9sbExlZnQpIC0gRC5jbGllbnRMZWZ0O1xuICAgIHkgPSBib3gudG9wICsgTWF0aC5tYXgoRC5zY3JvbGxUb3AsIGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wKSAtIEQuY2xpZW50VG9wXG4gIH1cbiAgZWxzZXtcbiAgICB3aGlsZSAoZG9tICE9PSBkb2N1bWVudC5ib2R5KSB7XG4gICAgICB4ICs9IGRvbS5vZmZzZXRMZWZ0XG4gICAgICB5ICs9IGRvbS5vZmZzZXRUb3BcbiAgICAgIGRvbSA9IGRvbS5vZmZzZXRQYXJlbnRcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBkb21YOiB4LFxuICAgIGRvbVk6IHlcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tUYXJnZXRGYXRoZXIodGhhdDogYW55LCBlOiBhbnkpIHtcbiAgbGV0IHBhcmVudCA9IGUucmVsYXRlZFRhcmdldFxuICB0cnl7XG4gICAgd2hpbGUocGFyZW50ICYmIHBhcmVudCAhPT0gdGhhdCkge1xuICAgICAgcGFyZW50ID0gcGFyZW50LnBhcmVudE5vZGVcbiAgICB9XG4gIH1jYXRjaCAoZSl7XG4gICAgY29uc29sZS53YXJuKGUpXG4gIH1cblxuICByZXR1cm4gcGFyZW50ICE9PSB0aGF0XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtZXJnZVRvT3ZlcihzcmM6IGFueSwgZGVzdDogYW55KSB7XG4gIGZvciAoY29uc3QgY2NLZXkgaW4gc3JjKSB7XG4gICAgaWYgKGRlc3QuaGFzT3duUHJvcGVydHkoY2NLZXkpKSB7XG4gICAgICBkZXN0W2NjS2V5XSA9IHNyY1tjY0tleV1cbiAgICB9XG4gIH1cbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2VUbyhzcmM6IGFueSwgZGVzdDogYW55KSB7XG4gIGZvciAoY29uc3QgY2NLZXkgaW4gc3JjKSB7XG4gICAgaWYgKCFkZXN0Lmhhc093blByb3BlcnR5KGNjS2V5KSkge1xuICAgICAgZGVzdFtjY0tleV0gPSBzcmNbY2NLZXldXG4gICAgfVxuICB9XG59XG4iXX0=