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/ui/draganddrop/draggable/src/sensor/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/ui/draganddrop/draggable/src/sensor/sensor.js
import { Type } from 'main.core';
import { EventEmitter } from 'main.core.events';
import { DragStartSensorEvent } from './events/drag.start.sensor.event';

export default class Sensor extends EventEmitter
{
	containers: Array<HTMLElement>;
	options: Object;
	originalDragStartEvent: null | MouseEvent | TouchEvent = null;
	dragStartEvent: ?DragStartSensorEvent = null;

	constructor(container: HTMLElement | Array<HTMLElement> = [], options: Object = {})
	{
		super();
		this.setEventNamespace('BX.UI.DragAndDrop.Draggable.Sensor');

		const { dropzone } = options;
		this.containers = Type.isArray(container) ? [...container] : [container];
		this.dropzones = Type.isArrayLike(dropzone) ? [...dropzone] : [dropzone];
		this.options = { delay: 0, ...options };
	}

	getDocument(): HTMLDocument
	{
		return this.options.context.document;
	}

	addContainer(...containers: Array<HTMLElement>)
	{
		this.containers = [...this.containers, ...containers];
	}

	removeContainer(...containers: Array<HTMLElement>)
	{
		this.containers = this.containers.filter((container) => {
			return !containers.includes(container);
		});
	}

	getContainerByChild(childElement: HTMLElement): ?HTMLElement
	{
		return this.containers.find((container) => {
			return container.contains(childElement);
		});
	}

	addDropzone(...dropzones: Array<HTMLElement>)
	{
		this.dropzones = [...this.dropzones, ...dropzones];
	}

	removeDropzone(...dropzones: Array<HTMLElement>)
	{
		this.dropzones = this.dropzones.filter((dropzone) => {
			return !dropzones.includes(dropzone);
		});
	}

	getDropzoneByChild(childElement: HTMLElement): ?HTMLElement
	{
		return this.dropzones.find((dropzone) => {
			return dropzone.contains(childElement);
		});
	}

	// eslint-disable-next-line class-methods-use-this
	getElementFromPoint(x: number, y: number): HTMLElement
	{
		return this.getDocument().elementFromPoint(x, y);
	}

	// eslint-disable-next-line class-methods-use-this
	preventDefaultEventAction(event)
	{
		if (event.cancelable)
		{
			event.preventDefault();
		}
	}

	isDragging(): boolean
	{
		return this.dragStartEvent && !this.dragStartEvent.isDefaultPrevented();
	}

	enable()
	{
		return this;
	}

	disable()
	{
		return this;
	}

	getDragElementByChild(child: HTMLElement): ?HTMLElement
	{
		if (child)
		{
			const { dragElement, elementsPreventingDrag } = this.options;

			if ((elementsPreventingDrag ?? []).some((selector) => child.closest(selector)))
			{
				return null;
			}

			return child.closest(dragElement) || null;
		}

		return null;
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit