Your IP : 3.145.40.61


Current Path : /var/www/axolotl/data/www/axolotl.ru/www/bitrix/js/yandexpaypay/widget/
Upload File :
Current File : /var/www/axolotl/data/www/axolotl.ru/www/bitrix/js/yandexpaypay/widget/intersection.js

export class Intersection {

	static defaults = {};

	observer;

	constructor(element: HTMLElement, options: Object = {}) {
		this.el = element;
		this.options = Object.assign({}, this.constructor.defaults, options);
	}

	wait() : Promise {
		return new Promise((resolve) => {
			if (typeof IntersectionObserver === 'undefined') {
				resolve(this.el);
				return;
			}

			this.observer = new IntersectionObserver((entries, observer) => {
				entries.forEach((entry) => {
					if (entry.isIntersecting) {
						const element = entry.target;
						observer.unobserve(element);
						resolve(element);
					}
				});
			});

			this.observer.observe(this.el);
		});
	}

	restore(node: HTMLElement) : void {
		this.observer?.unobserve(this.el);
		this.el = node;
		this.observer?.observe(this.el);
	}
}