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/text-editor/src/helpers/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/ui/text-editor/src/helpers/create-node-selection.js
import {
	$getSelection,
	$getNodeByKey,
	$isNodeSelection,
	$createNodeSelection,
	$setSelection,
	type NodeKey,
	type NodeSelection,
} from 'ui.lexical.core';

import { type TextEditor } from '../text-editor';

function isNodeSelected(editor: TextEditor, key: NodeKey): boolean
{
	return editor.getEditorState().read(() => {
		const node = $getNodeByKey(key);
		if (node === null)
		{
			return false;
		}

		return node.isSelected();
	});
}

export function createNodeSelection(editor: TextEditor, key: NodeKey)
{
	let isSelected = false;
	const subscribers = new Set();
	const onSelect = (fn: Function) => {
		subscribers.add(fn);
	};

	const unregisterListener = editor.registerUpdateListener(() => {
		isSelected = isNodeSelected(editor, key);
		for (const subscribeFunc of subscribers)
		{
			subscribeFunc(isSelected);
		}
	});

	const setSelected = (selected: boolean) => {
		editor.update(() => {
			let selection: NodeSelection = $getSelection();
			if (!$isNodeSelection(selection))
			{
				selection = $createNodeSelection();
				$setSelection(selection);
			}

			if (selected)
			{
				selection.add(key);
			}
			else
			{
				selection.delete(key);
			}
		});
	};

	const clearSelection = () => {
		editor.update(() => {
			const selection: NodeSelection = $getSelection();
			if ($isNodeSelection(selection))
			{
				selection.clear();
			}
		});
	};

	return {
		isSelected: () => {
			return isSelected;
		},
		dispose: () => {
			unregisterListener();
		},
		onSelect,
		setSelected,
		clearSelection,
	};
}

Youez - 2016 - github.com/yon3zu
LinuXploit