{"version":3,"file":"ngx-editor-schema.mjs","sources":["../../../projects/ngx-editor/schema/marks.ts","../../../projects/ngx-editor/schema/nodes.ts","../../../projects/ngx-editor/schema/index.ts","../../../projects/ngx-editor/schema/ngx-editor-schema.ts"],"sourcesContent":["import { DOMOutputSpec, Mark, MarkSpec } from 'prosemirror-model';\n\n// :: MarkSpec A link. Has `href` and `title` attributes. `title`\n// defaults to the empty string. Rendered and parsed as an `<a>`\n// element.\nconst link: MarkSpec = {\n  attrs: {\n    href: {},\n    title: { default: null },\n    target: { default: '_blank' }\n  },\n  inclusive: false,\n  parseDOM: [\n    {\n      tag: 'a[href]',\n      getAttrs(dom: HTMLElement): Record<string, any> {\n        return {\n          href: dom.getAttribute('href'),\n          title: dom.getAttribute('title'),\n          target: dom.getAttribute('target'),\n        };\n      }\n    }\n  ],\n  toDOM(node): DOMOutputSpec {\n    const { href, title, target } = node.attrs;\n    return ['a', { href, title, target }, 0];\n  }\n};\n\n// :: MarkSpec An emphasis mark. Rendered as an `<em>` element.\n// Has parse rules that also match `<i>` and `font-style: italic`.\nconst em: MarkSpec = {\n  parseDOM: [\n    { tag: 'i' },\n    { tag: 'em' },\n    { style: 'font-style=italic' }\n  ],\n  toDOM(): DOMOutputSpec {\n    return ['em', 0];\n  }\n};\n\n// :: MarkSpec A strong mark. Rendered as `<strong>`, parse rules\n// also match `<b>` and `font-weight: bold`.\nconst strong: MarkSpec = {\n  parseDOM: [\n    { tag: 'strong' },\n    // This works around a Google Docs misbehavior where\n    // pasted content will be inexplicably wrapped in `<b>`\n    // tags with a font-weight normal.\n    {\n      tag: 'b',\n      getAttrs: (dom: HTMLElement): Record<string, any> => {\n        return dom.style.fontWeight !== 'normal' && null;\n      },\n    },\n    {\n      style: 'font-weight',\n      getAttrs: (value: string): Record<string, any> => {\n        return /^(bold(er)?|[5-9]\\d{2,})$/.test(value) && null;\n      }\n    }\n  ],\n  toDOM(): DOMOutputSpec {\n    return ['strong', 0];\n  }\n};\n\n// :: MarkSpec Code font mark. Represented as a `<code>` element.\nconst code: MarkSpec = {\n  parseDOM: [\n    { tag: 'code' }\n  ],\n  toDOM(): DOMOutputSpec {\n    return ['code', 0];\n  }\n};\n\n// :: MarkSpec An underline mark. Rendered as an `<u>` element.\n// Has parse rules that also match `text-decoration: underline`.\nconst u: MarkSpec = {\n  parseDOM: [\n    { tag: 'u' },\n    {\n      style: 'text-decoration=underline',\n      consuming: false\n    }\n  ],\n  toDOM(): DOMOutputSpec {\n    return ['u', 0];\n  }\n};\n\n// :: MarkSpec An underline mark. Rendered as an `<s>` element.\n// Has parse rules that also match `strike`, `del` tag and css property `text-decoration: line-through`.\nconst s: MarkSpec = {\n  parseDOM: [\n    { tag: 's' },\n    { tag: 'strike' },\n    { style: 'text-decoration=line-through' }\n  ],\n  toDOM(): DOMOutputSpec {\n    return ['s', 0];\n  }\n};\n\nconst textColor: MarkSpec = {\n  attrs: {\n    color: {\n      default: null\n    },\n  },\n  parseDOM: [\n    {\n      style: 'color',\n      getAttrs: (value: string): Record<string, any> => {\n        return { color: value };\n      }\n    }\n  ],\n  toDOM(mark: Mark): DOMOutputSpec {\n    const { color } = mark.attrs;\n    return ['span', { style: `color:${color};` }, 0];\n  },\n};\n\nconst textBackgroundColor: MarkSpec = {\n  attrs: {\n    backgroundColor: {\n      default: null\n    },\n  },\n  parseDOM: [\n    {\n      style: 'background-color',\n      getAttrs: (value: string): Record<string, any> => {\n        return { backgroundColor: value };\n      }\n    }\n  ],\n  toDOM(mark: Mark): DOMOutputSpec {\n    const { backgroundColor } = mark.attrs;\n    return ['span', { style: `background-color:${backgroundColor};` }, 0];\n  },\n};\n\nconst marks = {\n  link,\n  em,\n  strong,\n  code,\n  u,\n  s,\n  text_color: textColor,\n  text_background_color: textBackgroundColor\n};\n\nexport default marks;\n","import { DOMOutputSpec, Node as ProseMirrorNode, NodeSpec } from 'prosemirror-model';\nimport * as sl from 'prosemirror-schema-list';\n\nimport { toStyleString } from 'ngx-editor/utils';\n\nconst doc: NodeSpec = {\n  content: 'block+'\n};\n\n// :: NodeSpec The text node.\nconst text: NodeSpec = {\n  group: 'inline'\n};\n\n// :: NodeSpec A plain paragraph textblock. Represented in the DOM\n// as a `<p>` element.\nconst paragraph: NodeSpec = {\n  content: 'inline*',\n  group: 'block',\n  attrs: {\n    align: {\n      default: null,\n    }\n  },\n  parseDOM: [\n    {\n      tag: 'p',\n      getAttrs(dom: HTMLElement): Record<string, any> {\n        const { textAlign } = dom.style;\n        const align = dom.getAttribute('align') || textAlign || null;\n\n        return {\n          align\n        };\n      }\n    }\n  ],\n  toDOM(node): DOMOutputSpec {\n    const { align } = node.attrs;\n\n    const styles: Partial<CSSStyleDeclaration> = {\n      textAlign: align !== 'left' ? align : null\n    };\n    const style = toStyleString(styles) || null;\n\n    return ['p', { style }, 0];\n  }\n};\n\n// :: NodeSpec A blockquote (`<blockquote>`) wrapping one or more blocks.\nconst blockquote: NodeSpec = {\n  content: 'block+',\n  group: 'block',\n  defining: true,\n  parseDOM: [{ tag: 'blockquote' }],\n  toDOM(): DOMOutputSpec {\n    return ['blockquote', 0];\n  }\n};\n\n// :: NodeSpec A horizontal rule (`<hr>`).\nconst horizontalRule: NodeSpec = {\n  group: 'block',\n  parseDOM: [{ tag: 'hr' }],\n  toDOM(): DOMOutputSpec {\n    return ['hr'];\n  }\n};\n\n// :: NodeSpec A heading textblock, with a `level` attribute that\n// should hold the number 1 to 6. Parsed and serialized as `<h1>` to\n// `<h6>` elements.\nconst heading: NodeSpec = {\n  attrs: {\n    level: {\n      default: 1\n    },\n    align: {\n      default: null,\n    }\n  },\n  content: 'inline*',\n  group: 'block',\n  defining: true,\n  parseDOM: [\n    {\n      tag: 'h1',\n      getAttrs(dom: HTMLElement): Record<string, any> {\n        const { textAlign } = dom.style;\n        const align = dom.getAttribute('align') || textAlign || null;\n\n        return {\n          level: 1,\n          align\n        };\n      }\n    },\n    {\n      tag: 'h2',\n      getAttrs(dom: HTMLElement): Record<string, any> {\n        const { textAlign } = dom.style;\n        const align = dom.getAttribute('align') || textAlign || null;\n\n        return {\n          level: 2,\n          align\n        };\n      }\n    },\n    {\n      tag: 'h3',\n      getAttrs(dom: HTMLElement): Record<string, any> {\n        const { textAlign } = dom.style;\n        const align = dom.getAttribute('align') || textAlign || null;\n\n        return {\n          level: 3,\n          align\n        };\n      }\n    },\n    {\n      tag: 'h4',\n      getAttrs(dom: HTMLElement): Record<string, any> {\n        const { textAlign } = dom.style;\n        const align = dom.getAttribute('align') || textAlign || null;\n\n        return {\n          level: 4,\n          align\n        };\n      }\n    },\n    {\n      tag: 'h5',\n      getAttrs(dom: HTMLElement): Record<string, any> {\n        const { textAlign } = dom.style;\n        const align = dom.getAttribute('align') || textAlign || null;\n\n        return {\n          level: 5,\n          align\n        };\n      }\n    },\n    {\n      tag: 'h6',\n      getAttrs(dom: HTMLElement): Record<string, any> {\n        const { textAlign } = dom.style;\n        const align = dom.getAttribute('align') || textAlign || null;\n\n        return {\n          level: 6,\n          align\n        };\n      }\n    },\n  ],\n  toDOM(node): DOMOutputSpec {\n    const { level, align } = node.attrs;\n\n    const styles: Partial<CSSStyleDeclaration> = {\n      textAlign: align !== 'left' ? align : null\n    };\n    const style = toStyleString(styles) || null;\n\n    return ['h' + level, { style }, 0];\n  }\n};\n\n// :: NodeSpec A code listing. Disallows marks or non-text inline\n// nodes by default. Represented as a `<pre>` element with a\n// `<code>` element inside of it.\nconst codeBlock: NodeSpec = {\n  content: 'text*',\n  marks: '',\n  group: 'block',\n  code: true,\n  defining: true,\n  parseDOM: [\n    {\n      tag: 'pre',\n      preserveWhitespace: 'full'\n    }\n  ],\n  toDOM(): DOMOutputSpec {\n    return ['pre', ['code', 0]];\n  }\n};\n\n// :: NodeSpec A hard line break, represented in the DOM as `<br>`.\nconst hardBreak: NodeSpec = {\n  inline: true,\n  group: 'inline',\n  selectable: false,\n  parseDOM: [{ tag: 'br' }],\n  toDOM(): DOMOutputSpec {\n    return ['br'];\n  }\n};\n\n// :: NodeSpec An inline image (`<img>`) node. Supports `src`,\n// `alt`, and `href` attributes. The latter two default to the empty\n// string.\nexport const image: NodeSpec = {\n  inline: true,\n  attrs: {\n    src: {},\n    alt: { default: null },\n    title: { default: null },\n    width: { default: null }\n  },\n  group: 'inline',\n  draggable: true,\n  parseDOM: [\n    {\n      tag: 'img[src]',\n      getAttrs(dom: HTMLElement): Record<string, any> {\n        return {\n          src: dom.getAttribute('src'),\n          title: dom.getAttribute('title'),\n          alt: dom.getAttribute('alt'),\n          width: dom.getAttribute('width')\n        };\n      }\n    }\n  ],\n  toDOM(node: ProseMirrorNode): DOMOutputSpec {\n    const { src, alt, title, width } = node.attrs;\n    return ['img', { src, alt, title, width }];\n  }\n};\n\nconst listItem = {\n  ...sl.listItem,\n  content: 'paragraph block*'\n};\n\nconst orderedList = {\n  ...sl.orderedList,\n  content: 'list_item+',\n  group: 'block'\n};\n\nconst bulletList = {\n  ...sl.bulletList,\n  content: 'list_item+',\n  group: 'block'\n};\n\nconst nodes = {\n  doc,\n  text,\n  paragraph,\n  blockquote,\n  horizontal_rule: horizontalRule,\n  heading,\n  hard_break: hardBreak,\n  code_block: codeBlock,\n  image,\n  list_item: listItem,\n  ordered_list: orderedList,\n  bullet_list: bulletList\n};\n\nexport default nodes;\n","import { Schema } from 'prosemirror-model';\n\nimport marks from './marks';\nimport nodes from './nodes';\n\nconst schema = new Schema({\n  marks,\n  nodes\n});\n\nexport default schema;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}