1 | /**
|
2 | * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
|
3 | * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
4 | */
|
5 | /**
|
6 | * @module list/documentlist/documentlistutils
|
7 | */
|
8 | import type { Element, Node } from 'ckeditor5/src/engine';
|
9 | import type { ArrayOrItem } from 'ckeditor5/src/utils';
|
10 | import { Plugin } from 'ckeditor5/src/core';
|
11 | /**
|
12 | * A set of helpers related to document lists.
|
13 | */
|
14 | export default class DocumentListUtils extends Plugin {
|
15 | /**
|
16 | * @inheritDoc
|
17 | */
|
18 | static get pluginName(): 'DocumentListUtils';
|
19 | /**
|
20 | * Expands the given list of selected blocks to include all the items of the lists they're in.
|
21 | *
|
22 | * @param blocks The list of selected blocks.
|
23 | */
|
24 | expandListBlocksToCompleteList(blocks: ArrayOrItem<Element>): Array<Element>;
|
25 | /**
|
26 | * Check if the given block is the first in the list item.
|
27 | *
|
28 | * @param listBlock The list block element.
|
29 | */
|
30 | isFirstBlockOfListItem(listBlock: Element): boolean;
|
31 | /**
|
32 | * Returns true if the given model node is a list item block.
|
33 | *
|
34 | * @param node A model node.
|
35 | */
|
36 | isListItemBlock(node: Node): boolean;
|
37 | /**
|
38 | * Expands the given list of selected blocks to include the leading and tailing blocks of partially selected list items.
|
39 | *
|
40 | * @param blocks The list of selected blocks.
|
41 | * @param options.withNested Whether should include nested list items.
|
42 | */
|
43 | expandListBlocksToCompleteItems(blocks: ArrayOrItem<Element>, options?: {
|
44 | withNested?: boolean;
|
45 | }): Array<Element>;
|
46 | }
|