Module: @lexical/utils
參考
$splitNode
重新匯出 $splitNode
isBlockDomNode
重新匯出 isBlockDomNode
isHTMLAnchorElement
重新匯出 isHTMLAnchorElement
isHTMLElement
重新匯出 isHTMLElement
isInlineDomNode
重新匯出 isInlineDomNode
類型別名
DFSNode
Ƭ DFSNode: Readonly
<{ depth
: number
; node
: LexicalNode
}>
定義於
packages/lexical-utils/src/index.ts:66
DOMNodeToLexicalConversion
Ƭ DOMNodeToLexicalConversion: (element
: Node
) => LexicalNode
類型宣告
▸ (element
): LexicalNode
參數
名稱 | 類型 |
---|---|
element | Node |
返回
定義於
packages/lexical-utils/src/index.ts:309
DOMNodeToLexicalConversionMap
Ƭ DOMNodeToLexicalConversionMap: Record
<string
, DOMNodeToLexicalConversion
>
定義於
packages/lexical-utils/src/index.ts:311
變數
CAN_USE_BEFORE_INPUT
• Const
CAN_USE_BEFORE_INPUT: boolean
= CAN_USE_BEFORE_INPUT_
定義於
packages/lexical-utils/src/index.ts:55
CAN_USE_DOM
• Const
CAN_USE_DOM: boolean
= CAN_USE_DOM_
定義於
packages/lexical-utils/src/index.ts:56
IS_ANDROID
• Const
IS_ANDROID: boolean
= IS_ANDROID_
定義於
packages/lexical-utils/src/index.ts:57
IS_ANDROID_CHROME
• Const
IS_ANDROID_CHROME: boolean
= IS_ANDROID_CHROME_
定義於
packages/lexical-utils/src/index.ts:58
IS_APPLE
• Const
IS_APPLE: boolean
= IS_APPLE_
定義於
packages/lexical-utils/src/index.ts:59
IS_APPLE_WEBKIT
• Const
IS_APPLE_WEBKIT: boolean
= IS_APPLE_WEBKIT_
定義於
packages/lexical-utils/src/index.ts:60
IS_CHROME
• Const
IS_CHROME: boolean
= IS_CHROME_
定義於
packages/lexical-utils/src/index.ts:61
IS_FIREFOX
• Const
IS_FIREFOX: boolean
= IS_FIREFOX_
定義於
packages/lexical-utils/src/index.ts:62
IS_IOS
• Const
IS_IOS: boolean
= IS_IOS_
定義於
packages/lexical-utils/src/index.ts:63
IS_SAFARI
• Const
IS_SAFARI: boolean
= IS_SAFARI_
定義於
packages/lexical-utils/src/index.ts:64
函數
$dfs
▸ $dfs(startingNode?
, endingNode?
): DFSNode
[]
"深度優先搜尋" 從樹的根節點/頂部節點開始,向下搜尋直到分支結束後回溯並找到新路徑。可以想像成解迷宮的過程,沿著牆壁行走,直到遇到死胡同(葉子節點),然後回溯到最近的分支點並重複此過程。它會返回所有搜尋到的節點,並以物件數組的形式呈現。
參數
名稱 | 類型 | 描述 |
---|---|---|
startingNode? | LexicalNode | 開始搜尋的節點,若省略,將從根節點開始。 |
endingNode? | LexicalNode | 結束搜尋的節點,若省略,將搜尋所有從 startingNode 開始的後代節點。 |
返回
DFSNode
[]
包含搜尋到的所有節點的物件數組,包含它們在樹中的深度。 {depth: number, node: LexicalNode} 只要結束節點存在,將至少返回 1 個節點。
定義於
packages/lexical-utils/src/index.ts:179
$filter
▸ $filter<T
>(nodes
, filterFn
): T
[]
過濾節點
類型參數
名稱 |
---|
T |
參數
名稱 | 類型 | 描述 |
---|---|---|
nodes | LexicalNode [] | 需要過濾的節點數組 |
filterFn | (node : LexicalNode ) => null | T | 過濾函數,如果當前節點符合條件則返回節點,否則返回 null |
返回
T
[]
過濾後的節點數組
定義於
packages/lexical-utils/src/index.ts:558
$findMatchingParent
▸ $findMatchingParent<T
>(startingNode
, findFn
): null
| T
從一個節點開始,向上搜尋(朝向根節點),根據 findFn
的搜尋參數找到匹配的節點。(類似於 JavaScript 的 .find()
函數,需要傳入測試函數作為參數。例如:if( (node) => node.__type === 'div') ) return true; 否則返回 false)
類型參數
名稱 | 類型 |
---|---|
T | 擴展自 LexicalNode |
參數
名稱 | 類型 | 描述 |
---|---|---|
startingNode | LexicalNode | 搜索開始的節點。 |
findFn | (node : LexicalNode ) => node is T | 測試函數,如果當前節點滿足測試參數,則返回 true 。 |
返回值
null
| T
與 findFn
參數匹配的父節點,若未找到則返回 null
。
定義於
packages/lexical-utils/src/index.ts:325
▸ $findMatchingParent(startingNode
, findFn
): null
| LexicalNode
從一個節點開始,向上遍歷樹(朝向根節點)以找到一個匹配的節點,基於 findFn
的搜索參數。(考慮 JavaScript 的 .find()
函數,其中需要傳遞一個測試函數作為參數。例如,如果 (node) => node.__type === 'div')
返回 true
,則返回 true
;否則返回 false
。)
參數
名稱 | 類型 | 描述 |
---|---|---|
startingNode | LexicalNode | 搜索開始的節點。 |
findFn | (node : LexicalNode ) => boolean | 測試函數,如果當前節點滿足測試參數,則返回 true 。 |
返回值
null
| LexicalNode
與 findFn
參數匹配的父節點,若未找到則返回 null
。
定義於
packages/lexical-utils/src/index.ts:329
$getNearestBlockElementAncestorOrThrow
▸ $getNearestBlockElementAncestorOrThrow(startNode
): ElementNode
返回最近的祖先元素節點,否則拋出錯誤。
參數
名稱 | 類型 | 描述 |
---|---|---|
startNode | LexicalNode | 搜索的起始節點 |
返回值
找到的祖先節點
定義於
packages/lexical-utils/src/index.ts:292
$getNearestNodeOfType
▸ $getNearestNodeOfType<T
>(node
, klass
): T
| null
從節點開始,向上遍歷其祖先(朝向根節點),以找到特定類型的節點。
類型參數
名稱 | 類型 |
---|---|
T | 擴展自 ElementNode |
參數
名稱 | 類型 | 描述 |
---|---|---|
node | LexicalNode | 開始搜索的節點。 |
klass | Klass <T > | 要查找的節點類型的實例。 |
返回值
T
| null
傳遞的 klass
類型的節點,若不存在則返回 null
。
定義於
packages/lexical-utils/src/index.ts:270
$getNextRightPreorderNode
▸ $getNextRightPreorderNode(startingNode
): LexicalNode
| null
執行從右到左的前序樹遍歷。
從起始節點開始,向右遍歷到最右側的子節點,然後回溯到父節點,找到新的最右側路徑。
將返回遍歷序列中起始節點之後的下一個 節點。
該遍歷方式與上面的 $dfs
函數類似,但節點是從右到左訪問的,而不是從左到右。
參數
名稱 | 類型 | 描述 |
---|---|---|
startingNode | LexicalNode | 開始搜索的節點。 |
返回值
LexicalNode
| null
前序右到左遍歷序列中的下一個節點,若該節點不存在則返回 null
。
定義於
packages/lexical-utils/src/index.ts:240
$insertFirst
▸ $insertFirst(parent
, node
): void
將節點插入到父節點的第一個子節點之前