UNPKG

@grafana/ui

Version:
1 lines 1.76 kB
{"version":3,"file":"newline.mjs","sources":["../../../src/slate-plugins/newline.ts"],"sourcesContent":["import { type Plugin } from 'slate-react';\n\nfunction getIndent(text: string) {\n let offset = text.length - text.trimLeft().length;\n if (offset) {\n let indent = text[0];\n while (--offset) {\n indent += text[0];\n }\n return indent;\n }\n return '';\n}\n\nexport function NewlinePlugin(): Plugin {\n return {\n onKeyDown(event, editor, next) {\n const value = editor.value;\n\n if (value.selection.isExpanded) {\n return next();\n }\n\n if (event.key === 'Enter') {\n event.preventDefault();\n\n const { startBlock } = value;\n const currentLineText = startBlock.text;\n const indent = getIndent(currentLineText);\n\n return editor.splitBlock().insertText(indent).focus();\n }\n\n return next();\n },\n };\n}\n"],"names":[],"mappings":";AAEA,SAAS,UAAU,IAAA,EAAc;AAC/B,EAAA,IAAI,MAAA,GAAS,IAAA,CAAK,MAAA,GAAS,IAAA,CAAK,UAAS,CAAE,MAAA;AAC3C,EAAA,IAAI,MAAA,EAAQ;AACV,IAAA,IAAI,MAAA,GAAS,KAAK,CAAC,CAAA;AACnB,IAAA,OAAO,EAAE,MAAA,EAAQ;AACf,MAAA,MAAA,IAAU,KAAK,CAAC,CAAA;AAAA,IAClB;AACA,IAAA,OAAO,MAAA;AAAA,EACT;AACA,EAAA,OAAO,EAAA;AACT;AAEO,SAAS,aAAA,GAAwB;AACtC,EAAA,OAAO;AAAA,IACL,SAAA,CAAU,KAAA,EAAO,MAAA,EAAQ,IAAA,EAAM;AAC7B,MAAA,MAAM,QAAQ,MAAA,CAAO,KAAA;AAErB,MAAA,IAAI,KAAA,CAAM,UAAU,UAAA,EAAY;AAC9B,QAAA,OAAO,IAAA,EAAK;AAAA,MACd;AAEA,MAAA,IAAI,KAAA,CAAM,QAAQ,OAAA,EAAS;AACzB,QAAA,KAAA,CAAM,cAAA,EAAe;AAErB,QAAA,MAAM,EAAE,YAAW,GAAI,KAAA;AACvB,QAAA,MAAM,kBAAkB,UAAA,CAAW,IAAA;AACnC,QAAA,MAAM,MAAA,GAAS,UAAU,eAAe,CAAA;AAExC,QAAA,OAAO,OAAO,UAAA,EAAW,CAAE,UAAA,CAAW,MAAM,EAAE,KAAA,EAAM;AAAA,MACtD;AAEA,MAAA,OAAO,IAAA,EAAK;AAAA,IACd;AAAA,GACF;AACF;;;;"}