import { DOMOutputSpec , Mark , MarkSpec } from 'prosemirror-model' ; const link = { attrs : { href : { } , title : { default : null } , target : { default : '_blank' } } , inclusive : false , parseDOM : [ { tag : 'a[href]' , getAttrs ( dom ) { return { href : dom . getAttribute ( 'href' ) , title : dom . getAttribute ( 'title' ) , target : dom . getAttribute ( 'target' ) , } ; } } ] , toDOM ( node ) { const { href , title , target } = node . attrs ; return [ 'a' , { href , title , target } , 0 ] ; } } ; const em = { parseDOM : [ { tag : 'i' } , { tag : 'em' } , { style : 'font-style=italic' } ] , toDOM ( ) { return [ 'em' , 0 ] ; } } ; const strong = { parseDOM : [ { tag : 'strong' } , { tag : 'b' , getAttrs : ( dom ) : Record < string , any > => { return dom . style . fontWeight !== 'normal' && null ; } , } , { style : 'font-weight' , getAttrs : ( value ) : Record < string , any > => { return /^(bold(er)?|[5-9]\d{2,})$/ . test ( value ) && null ; } } ] , toDOM ( ) { return [ 'strong' , 0 ] ; } } ; const code = { parseDOM : [ { tag : 'code' } ] , toDOM ( ) { return [ 'code' , 0 ] ; } } ; const u = { parseDOM : [ { tag : 'u' } , { style : 'text-decoration=underline' , consuming : false } ] , toDOM ( ) { return [ 'u' , 0 ] ; } } ; const s = { parseDOM : [ { tag : 's' } , { tag : 'strike' } , { style : 'text-decoration=line-through' } ] , toDOM ( ) { return [ 's' , 0 ] ; } } ; const textColor = { attrs : { color : { default : null } , } , parseDOM : [ { style : 'color' , getAttrs : ( value ) : Record < string , any > => { return { color : value } ; } } ] , toDOM ( mark ) { const { color } = mark . attrs ; return [ 'span' , { style : `color:${ color };` } , 0 ] ; } , } ; const textBackgroundColor = { attrs : { backgroundColor : { default : null } , } , parseDOM : [ { style : 'background-color' , getAttrs : ( value ) : Record < string , any > => { return { backgroundColor : value } ; } } ] , toDOM ( mark ) { const { backgroundColor } = mark . attrs ; return [ 'span' , { style : `background-color:${ backgroundColor };` } , 0 ] ; } , } ; const marks = { link , em , strong , code , u , s , text_color : textColor , text_background_color : textBackgroundColor } ; export default marks ;