UNPKG

@liveblocks/react-ui

Version:

A set of React pre-built components for the Liveblocks products. Liveblocks is the all-in-one toolkit to build collaborative products like Figma, Notion, and more.

1 lines 2.24 kB
{"version":3,"file":"selection-contains-inlines.cjs","sources":["../../../src/slate/utils/selection-contains-inlines.ts"],"sourcesContent":["import type { Node } from \"slate\";\nimport { Editor, Element, Range } from \"slate\";\n\nexport function selectionContainsInlines(\n editor: Editor,\n match: (node: Node) => boolean\n) {\n const { selection } = editor;\n if (!selection) {\n return false;\n }\n\n const roots = Array.from(\n Editor.nodes(editor, {\n at: selection,\n match: (node) => Element.isElement(node) && Editor.isBlock(editor, node),\n mode: \"lowest\",\n })\n );\n\n for (const [, rootPath] of roots) {\n const intersectingSelection = Range.isRange(selection)\n ? Range.intersection(selection, Editor.range(editor, rootPath))\n : selection;\n\n if (!intersectingSelection) {\n continue;\n }\n\n const matches = Array.from(\n Editor.nodes(editor, {\n at: intersectingSelection,\n match: (node) =>\n Editor.isInline(editor, node as Element) && match(node),\n })\n );\n\n if (matches.length > 0) {\n return true;\n }\n }\n\n return false;\n}\n"],"names":["Editor","Element","Range"],"mappings":";;;;AAGgB,SAAA,wBAAA,CACd,QACA,KACA,EAAA;AACA,EAAM,MAAA,EAAE,WAAc,GAAA,MAAA,CAAA;AACtB,EAAA,IAAI,CAAC,SAAW,EAAA;AACd,IAAO,OAAA,KAAA,CAAA;AAAA,GACT;AAEA,EAAA,MAAM,QAAQ,KAAM,CAAA,IAAA;AAAA,IAClBA,YAAA,CAAO,MAAM,MAAQ,EAAA;AAAA,MACnB,EAAI,EAAA,SAAA;AAAA,MACJ,KAAA,EAAO,CAAC,IAAA,KAASC,aAAQ,CAAA,SAAA,CAAU,IAAI,CAAK,IAAAD,YAAA,CAAO,OAAQ,CAAA,MAAA,EAAQ,IAAI,CAAA;AAAA,MACvE,IAAM,EAAA,QAAA;AAAA,KACP,CAAA;AAAA,GACH,CAAA;AAEA,EAAA,KAAA,MAAW,GAAG,QAAQ,CAAA,IAAK,KAAO,EAAA;AAChC,IAAA,MAAM,qBAAwB,GAAAE,WAAA,CAAM,OAAQ,CAAA,SAAS,CACjD,GAAAA,WAAA,CAAM,YAAa,CAAA,SAAA,EAAWF,YAAO,CAAA,KAAA,CAAM,MAAQ,EAAA,QAAQ,CAAC,CAC5D,GAAA,SAAA,CAAA;AAEJ,IAAA,IAAI,CAAC,qBAAuB,EAAA;AAC1B,MAAA,SAAA;AAAA,KACF;AAEA,IAAA,MAAM,UAAU,KAAM,CAAA,IAAA;AAAA,MACpBA,YAAA,CAAO,MAAM,MAAQ,EAAA;AAAA,QACnB,EAAI,EAAA,qBAAA;AAAA,QACJ,KAAA,EAAO,CAAC,IACN,KAAAA,YAAA,CAAO,SAAS,MAAQ,EAAA,IAAe,CAAK,IAAA,KAAA,CAAM,IAAI,CAAA;AAAA,OACzD,CAAA;AAAA,KACH,CAAA;AAEA,IAAI,IAAA,OAAA,CAAQ,SAAS,CAAG,EAAA;AACtB,MAAO,OAAA,IAAA,CAAA;AAAA,KACT;AAAA,GACF;AAEA,EAAO,OAAA,KAAA,CAAA;AACT;;;;"}