/** * @module plugins/backspace */ import type { IJodit } from 'jodit/types'; import { Dom } from 'jodit/core/dom/dom'; import { call } from 'jodit/core/helpers/utils'; /** * For first item in list on backspace try move his content in new P * * @example * ```html * * ``` * Result * ```html *

|first

* ``` * * @private */ export function checkUnwrapFirstListItem( jodit: IJodit, fakeNode: Node, backspace: boolean ): boolean { const li = Dom.closest(fakeNode, Dom.isElement, jodit.editor); const { s } = jodit; if ( Dom.isTag(li, 'li') && li?.parentElement?.[ backspace ? 'firstElementChild' : 'lastElementChild' ] === li && s.cursorInTheEdge(backspace, li) ) { const ul = li.parentElement; const p = jodit.createInside.element(jodit.o.enterBlock); call(backspace ? Dom.before : Dom.after, ul, p); Dom.moveContent(li, p); Dom.safeRemove(li); if (Dom.isEmpty(ul)) { Dom.safeRemove(ul); } call(backspace ? s.setCursorBefore : s.setCursorAfter, fakeNode); return true; } return false; }