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.6 KiB
1 line
4.6 KiB
{"version":3,"file":"tiptap-extension-heading.cjs","sources":["../src/heading.ts"],"sourcesContent":["import { mergeAttributes, Node, textblockTypeInputRule } from '@tiptap/core'\n\nexport type Level = 1 | 2 | 3 | 4 | 5 | 6\n\nexport interface HeadingOptions {\n levels: Level[],\n HTMLAttributes: Record<string, any>,\n}\n\ndeclare module '@tiptap/core' {\n interface Commands<ReturnType> {\n heading: {\n /**\n * Set a heading node\n */\n setHeading: (attributes: { level: Level }) => ReturnType,\n /**\n * Toggle a heading node\n */\n toggleHeading: (attributes: { level: Level }) => ReturnType,\n }\n }\n}\n\nexport const Heading = Node.create<HeadingOptions>({\n name: 'heading',\n\n addOptions() {\n return {\n levels: [1, 2, 3, 4, 5, 6],\n HTMLAttributes: {},\n }\n },\n\n content: 'inline*',\n\n group: 'block',\n\n defining: true,\n\n addAttributes() {\n return {\n level: {\n default: 1,\n rendered: false,\n },\n }\n },\n\n parseHTML() {\n return this.options.levels\n .map((level: Level) => ({\n tag: `h${level}`,\n attrs: { level },\n }))\n },\n\n renderHTML({ node, HTMLAttributes }) {\n const hasLevel = this.options.levels.includes(node.attrs.level)\n const level = hasLevel\n ? node.attrs.level\n : this.options.levels[0]\n\n return [`h${level}`, mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0]\n },\n\n addCommands() {\n return {\n setHeading: attributes => ({ commands }) => {\n if (!this.options.levels.includes(attributes.level)) {\n return false\n }\n\n return commands.setNode(this.name, attributes)\n },\n toggleHeading: attributes => ({ commands }) => {\n if (!this.options.levels.includes(attributes.level)) {\n return false\n }\n\n return commands.toggleNode(this.name, 'paragraph', attributes)\n },\n }\n },\n\n addKeyboardShortcuts() {\n return this.options.levels.reduce((items, level) => ({\n ...items,\n ...{\n [`Mod-Alt-${level}`]: () => this.editor.commands.toggleHeading({ level }),\n },\n }), {})\n },\n\n addInputRules() {\n return this.options.levels.map(level => {\n return textblockTypeInputRule({\n find: new RegExp(`^(#{1,${level}})\\\\s$`),\n type: this.type,\n getAttributes: {\n level,\n },\n })\n })\n },\n})\n"],"names":["Node","mergeAttributes","textblockTypeInputRule"],"mappings":"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"} |