@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.41 kB
Source Map (JSON)
{"version":3,"file":"selection-contains-inlines.cjs","sources":["../../../../src/primitives/slate/utils/selection-contains-inlines.ts"],"sourcesContent":["import type { Node as SlateNode } from \"slate\";\nimport {\n Editor as SlateEditor,\n Element as SlateElement,\n Range as SlateRange,\n} from \"slate\";\n\nexport function selectionContainsInlines(\n editor: SlateEditor,\n match: (node: SlateNode) => boolean\n) {\n const { selection } = editor;\n if (!selection) {\n return false;\n }\n\n const roots = Array.from(\n SlateEditor.nodes(editor, {\n at: selection,\n match: (node) =>\n SlateElement.isElement(node) && SlateEditor.isBlock(editor, node),\n mode: \"lowest\",\n })\n );\n\n for (const [, rootPath] of roots) {\n const intersectingSelection = SlateRange.isRange(selection)\n ? SlateRange.intersection(selection, SlateEditor.range(editor, rootPath))\n : selection;\n\n if (!intersectingSelection) {\n continue;\n }\n\n const matches = Array.from(\n SlateEditor.nodes(editor, {\n at: intersectingSelection,\n match: (node) =>\n SlateEditor.isInline(editor, node as SlateElement) && match(node),\n })\n );\n\n if (matches.length > 0) {\n return true;\n }\n }\n\n return false;\n}\n"],"names":["SlateEditor","SlateElement","SlateRange"],"mappings":";;;;AAOgB,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,CAAY,MAAM,MAAQ,EAAA;AAAA,MACxB,EAAI,EAAA,SAAA;AAAA,MACJ,KAAA,EAAO,CAAC,IAAA,KACNC,aAAa,CAAA,SAAA,CAAU,IAAI,CAAK,IAAAD,YAAA,CAAY,OAAQ,CAAA,MAAA,EAAQ,IAAI,CAAA;AAAA,MAClE,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,CAAW,OAAQ,CAAA,SAAS,CACtD,GAAAA,WAAA,CAAW,YAAa,CAAA,SAAA,EAAWF,YAAY,CAAA,KAAA,CAAM,MAAQ,EAAA,QAAQ,CAAC,CACtE,GAAA,SAAA,CAAA;AAEJ,IAAA,IAAI,CAAC,qBAAuB,EAAA;AAC1B,MAAA,SAAA;AAAA,KACF;AAEA,IAAA,MAAM,UAAU,KAAM,CAAA,IAAA;AAAA,MACpBA,YAAA,CAAY,MAAM,MAAQ,EAAA;AAAA,QACxB,EAAI,EAAA,qBAAA;AAAA,QACJ,KAAA,EAAO,CAAC,IACN,KAAAA,YAAA,CAAY,SAAS,MAAQ,EAAA,IAAoB,CAAK,IAAA,KAAA,CAAM,IAAI,CAAA;AAAA,OACnE,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;;;;"}