You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1 line
4.0 KiB

{"version":3,"file":"tiptap-extension-hard-break.cjs","sources":["../src/hard-break.ts"],"sourcesContent":["import { mergeAttributes, Node } from '@tiptap/core'\n\nexport interface HardBreakOptions {\n keepMarks: boolean,\n HTMLAttributes: Record<string, any>,\n}\n\ndeclare module '@tiptap/core' {\n interface Commands<ReturnType> {\n hardBreak: {\n /**\n * Add a hard break\n */\n setHardBreak: () => ReturnType,\n }\n }\n}\n\nexport const HardBreak = Node.create<HardBreakOptions>({\n name: 'hardBreak',\n\n addOptions() {\n return {\n keepMarks: true,\n HTMLAttributes: {},\n }\n },\n\n inline: true,\n\n group: 'inline',\n\n selectable: false,\n\n parseHTML() {\n return [\n { tag: 'br' },\n ]\n },\n\n renderHTML({ HTMLAttributes }) {\n return ['br', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes)]\n },\n\n renderText() {\n return '\\n'\n },\n\n addCommands() {\n return {\n setHardBreak: () => ({\n commands,\n chain,\n state,\n editor,\n }) => {\n return commands.first([\n () => commands.exitCode(),\n () => commands.command(() => {\n const { selection, storedMarks } = state\n\n if (selection.$from.parent.type.spec.isolating) {\n return false\n }\n\n const { keepMarks } = this.options\n const { splittableMarks } = editor.extensionManager\n const marks = storedMarks\n || (selection.$to.parentOffset && selection.$from.marks())\n\n return chain()\n .insertContent({ type: this.name })\n .command(({ tr, dispatch }) => {\n if (dispatch && marks && keepMarks) {\n const filteredMarks = marks\n .filter(mark => splittableMarks.includes(mark.type.name))\n\n tr.ensureMarks(filteredMarks)\n }\n\n return true\n })\n .run()\n }),\n ])\n },\n }\n },\n\n addKeyboardShortcuts() {\n return {\n 'Mod-Enter': () => this.editor.commands.setHardBreak(),\n 'Shift-Enter': () => this.editor.commands.setHardBreak(),\n }\n },\n})\n"],"names":["Node","mergeAttributes"],"mappings":";;;;;;AAkBa,MAAA,SAAS,GAAGA,SAAI,CAAC,MAAM,CAAmB;AACrD,IAAA,IAAI,EAAE,WAAW;IAEjB,UAAU,GAAA;QACR,OAAO;AACL,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,cAAc,EAAE,EAAE;SACnB,CAAA;KACF;AAED,IAAA,MAAM,EAAE,IAAI;AAEZ,IAAA,KAAK,EAAE,QAAQ;AAEf,IAAA,UAAU,EAAE,KAAK;IAEjB,SAAS,GAAA;QACP,OAAO;YACL,EAAE,GAAG,EAAE,IAAI,EAAE;SACd,CAAA;KACF;IAED,UAAU,CAAC,EAAE,cAAc,EAAE,EAAA;AAC3B,QAAA,OAAO,CAAC,IAAI,EAAEC,oBAAe,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC,CAAA;KAC5E;IAED,UAAU,GAAA;AACR,QAAA,OAAO,IAAI,CAAA;KACZ;IAED,WAAW,GAAA;QACT,OAAO;AACL,YAAA,YAAY,EAAE,MAAM,CAAC,EACnB,QAAQ,EACR,KAAK,EACL,KAAK,EACL,MAAM,GACP,KAAI;gBACH,OAAO,QAAQ,CAAC,KAAK,CAAC;AACpB,oBAAA,MAAM,QAAQ,CAAC,QAAQ,EAAE;AACzB,oBAAA,MAAM,QAAQ,CAAC,OAAO,CAAC,MAAK;AAC1B,wBAAA,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,KAAK,CAAA;wBAExC,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AAC9C,4BAAA,OAAO,KAAK,CAAA;AACb,yBAAA;AAED,wBAAA,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,OAAO,CAAA;AAClC,wBAAA,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,CAAC,gBAAgB,CAAA;wBACnD,MAAM,KAAK,GAAG,WAAW;AACpB,gCAAC,SAAS,CAAC,GAAG,CAAC,YAAY,IAAI,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAA;AAE5D,wBAAA,OAAO,KAAK,EAAE;6BACX,aAAa,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;6BAClC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAI;AAC5B,4BAAA,IAAI,QAAQ,IAAI,KAAK,IAAI,SAAS,EAAE;gCAClC,MAAM,aAAa,GAAG,KAAK;AACxB,qCAAA,MAAM,CAAC,IAAI,IAAI,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;AAE3D,gCAAA,EAAE,CAAC,WAAW,CAAC,aAAa,CAAC,CAAA;AAC9B,6BAAA;AAED,4BAAA,OAAO,IAAI,CAAA;AACb,yBAAC,CAAC;AACD,6BAAA,GAAG,EAAE,CAAA;AACV,qBAAC,CAAC;AACH,iBAAA,CAAC,CAAA;aACH;SACF,CAAA;KACF;IAED,oBAAoB,GAAA;QAClB,OAAO;YACL,WAAW,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE;YACtD,aAAa,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE;SACzD,CAAA;KACF;AACF,CAAA;;;;;"}