PHP 7.4.33
Preview: EnterLeaveCounter.ts Size: 1018 B
/var/www/uibuilder.cmshelp.dk/httpdocs/node_modules/react-dnd-html5-backend/src/EnterLeaveCounter.ts
import { union, without } from './utils/js_utils.js'

type NodePredicate = (node: Node | null | undefined) => boolean

export class EnterLeaveCounter {
	private entered: any[] = []
	private isNodeInDocument: NodePredicate

	public constructor(isNodeInDocument: NodePredicate) {
		this.isNodeInDocument = isNodeInDocument
	}

	public enter(enteringNode: EventTarget | null): boolean {
		const previousLength = this.entered.length

		const isNodeEntered = (node: Node): boolean =>
			this.isNodeInDocument(node) &&
			(!node.contains || node.contains(enteringNode as Node))

		this.entered = union(this.entered.filter(isNodeEntered), [enteringNode])

		return previousLength === 0 && this.entered.length > 0
	}

	public leave(leavingNode: EventTarget | null): boolean {
		const previousLength = this.entered.length

		this.entered = without(
			this.entered.filter(this.isNodeInDocument),
			leavingNode,
		)

		return previousLength > 0 && this.entered.length === 0
	}

	public reset(): void {
		this.entered = []
	}
}

Directory Contents

Dirs: 2 × Files: 11
Name Size Perms Modified Actions
- drwxr-xr-x 2025-03-28 11:04:37
Edit Download
utils DIR
- drwxr-xr-x 2025-03-28 11:04:37
Edit Download
326 B lrw-r--r-- 2025-03-28 11:04:37
Edit Download
1018 B lrw-r--r-- 2025-03-28 11:04:37
Edit Download
269 B lrw-r--r-- 2025-03-28 11:04:37
Edit Download
21.24 KB lrw-r--r-- 2025-03-28 11:04:37
Edit Download
611 B lrw-r--r-- 2025-03-28 11:04:37
Edit Download
455 B lrw-r--r-- 2025-03-28 11:04:37
Edit Download
2.30 KB lrw-r--r-- 2025-03-28 11:04:37
Edit Download
150 B lrw-r--r-- 2025-03-28 11:04:37
Edit Download
3.52 KB lrw-r--r-- 2025-03-28 11:04:37
Edit Download
933 B lrw-r--r-- 2025-03-28 11:04:37
Edit Download
249 B lrw-r--r-- 2025-03-28 11:04:37
Edit Download
If ZipArchive is unavailable, a .tar will be created (no compression).