UNPKG

ngx-editor

Version:

The Rich Text Editor for Angular, Built on ProseMirror

1 lines 23.1 kB
{"version":3,"file":"ngx-editor-schema.mjs","sources":["../../../projects/ngx-editor/schema/marks.ts","../../../projects/ngx-editor/schema/nodes.ts","../../../projects/ngx-editor/schema/schema.ts","../../../projects/ngx-editor/schema/ngx-editor-schema.ts"],"sourcesContent":["import { 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) {\n return {\n href: dom.getAttribute('href'),\n title: dom.getAttribute('title'),\n target: dom.getAttribute('target'),\n };\n },\n },\n ],\n toDOM(node) {\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() {\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) => {\n return dom.style.fontWeight !== 'normal' && null;\n },\n },\n {\n style: 'font-weight',\n getAttrs: (value: string) => {\n return (/^(?:bold(?:er)?|[5-9]\\d{2,})$/).test(value) && null;\n },\n },\n ],\n toDOM() {\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() {\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() {\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() {\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) => {\n return { color: value };\n },\n },\n ],\n toDOM(mark: Mark) {\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) => {\n return { backgroundColor: value };\n },\n },\n ],\n toDOM(mark: Mark) {\n const { backgroundColor } = mark.attrs;\n return ['span', { style: `background-color:${backgroundColor};` }, 0];\n },\n};\n\nconst sup: MarkSpec = {\n attrs: {},\n parseDOM: [\n { tag: 'sup' },\n { style: 'vertical-align=super' },\n ],\n toDOM() {\n return ['sup', 0];\n },\n};\n\nconst sub: MarkSpec = {\n attrs: {},\n parseDOM: [\n { tag: 'sub' },\n { style: 'vertical-align=sub' },\n ],\n toDOM() {\n return ['sub', 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 sup,\n sub,\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 indent: {\n default: null,\n },\n },\n parseDOM: [\n {\n tag: 'p',\n getAttrs(dom: HTMLElement) {\n const { textAlign } = dom.style;\n const align = dom.getAttribute('align') || textAlign || null;\n const indent = dom.getAttribute('data-indent') || null;\n\n return {\n align,\n indent: parseInt(indent, 10) || null,\n };\n },\n },\n ],\n toDOM(node): DOMOutputSpec {\n const { align, indent } = node.attrs;\n\n const styles: Partial<CSSStyleDeclaration> = {\n textAlign: align !== 'left' ? align : null,\n marginLeft: indent !== null ? `${indent * 40}px` : null,\n };\n const style = toStyleString(styles) || null;\n\n const attrs = {\n style,\n 'data-indent': indent ?? null,\n };\n\n return ['p', attrs, 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 attrs: {\n indent: {\n default: null,\n },\n },\n parseDOM: [\n {\n tag: 'blockquote',\n getAttrs(dom: HTMLElement) {\n const indent = dom.getAttribute('data-indent') || null;\n return {\n indent: parseInt(indent, 10) || null,\n };\n },\n },\n ],\n toDOM(node): DOMOutputSpec {\n const { indent } = node.attrs;\n\n const styles: Partial<CSSStyleDeclaration> = {\n marginLeft: indent !== null ? `${indent * 40}px` : null,\n };\n\n const style = toStyleString(styles) || null;\n\n const attrs = {\n style,\n 'data-indent': indent ?? null,\n };\n\n return ['blockquote', attrs, 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 indent: {\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, string | number | null> {\n const { textAlign } = dom.style;\n const align = dom.getAttribute('align') || textAlign || null;\n const indent = dom.getAttribute('data-indent') || null;\n\n return {\n level: 1,\n align,\n indent: parseInt(indent, 10) || null,\n };\n },\n },\n {\n tag: 'h2',\n getAttrs(dom: HTMLElement): Record<string, string | number | null> {\n const { textAlign } = dom.style;\n const align = dom.getAttribute('align') || textAlign || null;\n const indent = dom.getAttribute('data-indent') || null;\n\n return {\n level: 2,\n align,\n indent: parseInt(indent, 10) || null,\n };\n },\n },\n {\n tag: 'h3',\n getAttrs(dom: HTMLElement): Record<string, string | number | null> {\n const { textAlign } = dom.style;\n const align = dom.getAttribute('align') || textAlign || null;\n const indent = dom.getAttribute('data-indent') || null;\n\n return {\n level: 3,\n align,\n indent: parseInt(indent, 10) || null,\n };\n },\n },\n {\n tag: 'h4',\n getAttrs(dom: HTMLElement): Record<string, string | number | null> {\n const { textAlign } = dom.style;\n const align = dom.getAttribute('align') || textAlign || null;\n const indent = dom.getAttribute('data-indent') || null;\n\n return {\n level: 4,\n align,\n indent: parseInt(indent, 10) || null,\n };\n },\n },\n {\n tag: 'h5',\n getAttrs(dom: HTMLElement): Record<string, string | number | null> {\n const { textAlign } = dom.style;\n const align = dom.getAttribute('align') || textAlign || null;\n const indent = dom.getAttribute('data-indent') || null;\n\n return {\n level: 5,\n align,\n indent: parseInt(indent, 10) || null,\n };\n },\n },\n {\n tag: 'h6',\n getAttrs(dom: HTMLElement): Record<string, string | number | null> {\n const { textAlign } = dom.style;\n const align = dom.getAttribute('align') || textAlign || null;\n const indent = dom.getAttribute('data-indent') || null;\n\n return {\n level: 6,\n align,\n indent: parseInt(indent, 10) || null,\n };\n },\n },\n ],\n toDOM(node): DOMOutputSpec {\n const { level, align, indent } = node.attrs;\n\n const styles: Partial<CSSStyleDeclaration> = {\n textAlign: align !== 'left' ? align : null,\n marginLeft: indent !== null ? `${indent * 40}px` : null,\n };\n const style = toStyleString(styles) || null;\n\n const attrs = {\n style,\n 'data-indent': indent ?? null,\n };\n\n return [`h${level}`, attrs, 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, string> {\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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"}