403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/main/core/resize_observer/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/main/core/resize_observer/resize_observer.js
;(function() {
	'use strict';

	BX.namespace('BX');

	var canUseNative = (
		BX.type.isFunction(window.ResizeObserver)
		&& BX.type.isFunction(window.ResizeObserverEntry)
	);

	if (canUseNative)
	{
		BX.ResizeObserver = window.ResizeObserver;
		return;
	}

	/**
	 * Implements ResizeObserver interface
	 * @see https://wicg.github.io/ResizeObserver/#resize-observer-interface
	 *
	 * @param {function} callback
	 * @constructor
	 */
	BX.ResizeObserver = function(callback)
	{
		this.callback = callback;
		this.targets = new BX.ResizeObserverItemCollection();
		BX.ResizeObserver.observers.push(this);
	};


	/**
	 * Observers collection
	 * @static
	 * @type {BX.ResizeObserverCollection}
	 */
	BX.ResizeObserver.observers = new BX.ResizeObserverCollection();


	/**
	 * Broadcasts observations
	 * @static
	 * @private
	 */
	BX.ResizeObserver.broadcastObservation = function()
	{
		BX.ResizeObserver.observers.forEach(function(observer) {
			var activeTargets = observer.targets.getActive();

			if (activeTargets.length)
			{
				clearTimeout(observer.timeout);
				observer.timeout = setTimeout(function() {
					observer.callback(activeTargets);
				}, 400);
			}
		});

		BX.ResizeObserver.setFrameWait(BX.ResizeObserver.broadcastObservation);
	};


	/**
	 * @static
	 * @private
	 * @param callback
	 */
	BX.ResizeObserver.setFrameWait = function(callback)
	{
		setTimeout(function() {
			if (typeof window.requestAnimationFrame === 'function')
			{
				window.requestAnimationFrame(callback);
			}
			else
			{
				callback();
			}
		}, 200);
	};


	/**
	 * Starts wait
	 * @static
	 * @private
	 */
	BX.ResizeObserver.run = function()
	{
		BX.ResizeObserver.setFrameWait(BX.ResizeObserver.broadcastObservation);
	};



	BX.ResizeObserver.prototype = {
		/**
		 * Adds target to the list of observed elements.
		 * @param {HTMLElement} element
		 */
		observe: function(element)
		{
			if (!this.targets.hasTarget(element))
			{
				this.targets.push(new BX.ResizeObserverItem(element));
			}
		},


		/**
		 * Removes target from the list of observed elements.
		 * @param {HTMLElement} element
		 */
		unobserve: function(element)
		{
			this.targets.removeTarget(element);
		},


		/**
		 * Clear observation targets list
		 */
		disconnect: function()
		{
			this.targets = new BX.ResizeObserverItemCollection();
		}
	};


	BX.ResizeObserver.run();
})();

Youez - 2016 - github.com/yon3zu
LinuXploit