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/src/lib/z-index/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/main/core/src/lib/z-index/z-index-component.js
import Type from '../type';
import EventEmitter from '../event/event-emitter';

import type ZIndexStack from './z-index-stack';
import type { ZIndexComponentOptions } from './z-index-component-options';

export default class ZIndexComponent extends EventEmitter
{
	sort: number = 0;
	alwaysOnTop: boolean | number = false;
	zIndex: number = 0;
	element: HTMLElement = null;
	overlay: HTMLElement = null;
	overlayGap: number = -5;
	stack: ZIndexStack = null;

	constructor(element: HTMLElement, componentOptions: ZIndexComponentOptions = {})
	{
		super();
		this.setEventNamespace('BX.Main.ZIndexManager.Component');

		if (!Type.isElementNode(element))
		{
			throw new Error('ZIndexManager.Component: The argument \'element\' must be a DOM element.');
		}

		this.element = element;

		const options = Type.isPlainObject(componentOptions) ? componentOptions : {};

		this.setAlwaysOnTop(options.alwaysOnTop);
		this.setOverlay(options.overlay);
		this.setOverlayGap(options.overlayGap);

		this.subscribeFromOptions(options.events);
	}

	getSort(): number
	{
		return this.sort;
	}

	/**
	 * @internal
	 * @param sort
	 */
	setSort(sort: number): void
	{
		if (Type.isNumber(sort))
		{
			this.sort = sort;
		}
	}

	/**
	 * @internal
	 * @param stack
	 */
	setStack(stack: ZIndexStack): void
	{
		this.stack = stack;
	}

	getStack(): ?ZIndexStack
	{
		return this.stack;
	}

	getZIndex(): number
	{
		return this.zIndex;
	}

	/**
	 * @internal
	 */
	setZIndex(zIndex: number): void
	{
		const changed = this.getZIndex() !== zIndex;

		this.getElement().style.setProperty('z-index', zIndex, 'important');
		this.zIndex = zIndex;

		if (this.getOverlay() !== null)
		{
			this.getOverlay().style.setProperty('z-index', zIndex + this.getOverlayGap(), 'important');
		}

		if (changed)
		{
			this.emit('onZIndexChange', { component: this });
		}
	}

	getAlwaysOnTop(): boolean | number
	{
		return this.alwaysOnTop;
	}

	setAlwaysOnTop(value: boolean | number): void
	{
		if (Type.isNumber(value) || Type.isBoolean(value))
		{
			this.alwaysOnTop = value;
		}
	}

	getElement(): HTMLElement
	{
		return this.element;
	}

	setOverlay(overlay: HTMLElement, gap?: number): void
	{
		if (Type.isElementNode(overlay) || overlay === null)
		{
			this.overlay = overlay;
			this.setOverlayGap(gap);

			if (this.getStack())
			{
				this.getStack().sort();
			}
		}
	}

	getOverlay(): ?HTMLElement
	{
		return this.overlay;
	}

	setOverlayGap(gap: number): void
	{
		if (Type.isNumber(gap))
		{
			this.overlayGap = gap;
		}
	}

	getOverlayGap(): number
	{
		return this.overlayGap;
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit