{"version":3,"file":"ngx-tiptap.mjs","sources":["../../../projects/ngx-tiptap/src/lib/editor.directive.ts","../../../projects/ngx-tiptap/src/lib/floating-menu.directive.ts","../../../projects/ngx-tiptap/src/lib/bubble-menu.directive.ts","../../../projects/ngx-tiptap/src/lib/draggable.directive.ts","../../../projects/ngx-tiptap/src/lib/node-view-content.directive.ts","../../../projects/ngx-tiptap/src/lib/node-view.component.ts","../../../projects/ngx-tiptap/src/lib/AngularRenderer.ts","../../../projects/ngx-tiptap/src/lib/NodeViewRenderer.ts","../../../projects/ngx-tiptap/src/public-api.ts","../../../projects/ngx-tiptap/src/ngx-tiptap.ts"],"sourcesContent":["import {\n  AfterViewInit, ChangeDetectorRef, Directive, ElementRef, forwardRef, OnInit, Renderer2, inject,\n  input,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Content, Editor, type EditorEvents } from '@tiptap/core';\n\n@Directive({\n  selector: 'tiptap[editor], [tiptap][editor], tiptap-editor[editor], [tiptapEditor][editor]',\n  providers: [{\n    provide: NG_VALUE_ACCESSOR,\n    useExisting: forwardRef(() => TiptapEditorDirective),\n    multi: true,\n  }],\n})\n\nexport class TiptapEditorDirective implements OnInit, AfterViewInit, ControlValueAccessor {\n  protected elRef = inject<ElementRef<HTMLElement>>(ElementRef);\n  protected renderer = inject(Renderer2);\n  protected changeDetectorRef = inject(ChangeDetectorRef);\n\n  readonly editor = input.required<Editor>();\n  readonly outputFormat = input<'json' | 'html'>('html');\n\n  protected onChange: (value: Content) => void = () => { /** */ };\n  protected onTouched: () => void = () => { /** */ };\n\n  // Writes a new value to the element.\n  // This methods is called when programmatic changes from model to view are requested.\n  writeValue(value: Content): void {\n    this.editor().chain().setContent(value, { emitUpdate: false }).run();\n  }\n\n  // Registers a callback function that is called when the control's value changes in the UI.\n  registerOnChange(fn: () => void): void {\n    this.onChange = fn;\n  }\n\n  // Registers a callback function that is called by the forms API on initialization to update the form model on blur.\n  registerOnTouched(fn: () => void): void {\n    this.onTouched = fn;\n  }\n\n  // Called by the forms api to enable or disable the element\n  setDisabledState(isDisabled: boolean): void {\n    this.editor().setEditable(!isDisabled);\n    this.renderer.setProperty(this.elRef.nativeElement, 'disabled', isDisabled);\n  }\n\n  protected handleChange = ({ editor, transaction }: EditorEvents['transaction']): void => {\n    if (!transaction.docChanged) {\n      return;\n    }\n\n    // Needed for ChangeDetectionStrategy.OnPush to get notified about changes\n    this.changeDetectorRef.markForCheck();\n\n    if (this.outputFormat() === 'html') {\n      this.onChange(editor.getHTML());\n      return;\n    }\n\n    this.onChange(editor.getJSON());\n  };\n\n  ngOnInit(): void {\n    const editor = this.editor();\n\n    // take the inner contents and clear the block\n    const { innerHTML } = this.elRef.nativeElement;\n    this.elRef.nativeElement.innerHTML = '';\n\n    // insert the editor in the dom\n    this.elRef.nativeElement.append(...Array.from(editor.options.element?.childNodes || []));\n\n    // update the options for the editor\n    editor.setOptions({ element: this.elRef.nativeElement });\n\n    // update content to the editor\n    if (innerHTML) {\n      editor.chain().setContent(innerHTML, { emitUpdate: false }).run();\n    }\n\n    // register blur handler to update `touched` property\n    editor.on('blur', () => {\n      this.onTouched();\n    });\n\n    // register update handler to listen to changes on update\n    editor.on('update', this.handleChange);\n\n    // Needed for ChangeDetectionStrategy.OnPush to get notified\n    editor.on('selectionUpdate', () => this.changeDetectorRef.markForCheck());\n  }\n\n  ngAfterViewInit(): void {\n    this.changeDetectorRef.detectChanges();\n  }\n}\n","import {\n  Directive, ElementRef, OnDestroy, OnInit, inject,\n  input,\n} from '@angular/core';\nimport { Editor } from '@tiptap/core';\nimport { FloatingMenuPlugin, FloatingMenuPluginProps } from '@tiptap/extension-floating-menu';\n\n@Directive({\n  selector: 'tiptap-floating-menu[editor], [tiptapFloatingMenu][editor]',\n})\n\nexport class TiptapFloatingMenuDirective implements OnInit, OnDestroy {\n  private elRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n  readonly pluginKey = input<FloatingMenuPluginProps['pluginKey']>('NgxTiptapFloatingMenu');\n  readonly editor = input.required<Editor>();\n  readonly options = input<FloatingMenuPluginProps['options']>({});\n  readonly shouldShow = input<FloatingMenuPluginProps['shouldShow']>(null);\n\n  ngOnInit(): void {\n    const editor = this.editor();\n    if (!editor) {\n      throw new Error('Required: Input `editor`');\n    }\n\n    editor.registerPlugin(FloatingMenuPlugin({\n      pluginKey: this.pluginKey(),\n      editor,\n      element: this.elRef.nativeElement,\n      options: this.options(),\n      shouldShow: this.shouldShow(),\n    }));\n  }\n\n  ngOnDestroy(): void {\n    this.editor().unregisterPlugin(this.pluginKey());\n  }\n}\n","import {\n  Directive, ElementRef, OnDestroy,\n  OnInit, inject, input,\n} from '@angular/core';\nimport { Editor } from '@tiptap/core';\nimport { BubbleMenuPlugin, BubbleMenuPluginProps } from '@tiptap/extension-bubble-menu';\n\n@Directive({\n  selector: 'tiptap-bubble-menu[editor], [tiptapBubbleMenu][editor]',\n})\nexport class TiptapBubbleMenuDirective implements OnInit, OnDestroy {\n  private elRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n  readonly editor = input.required<Editor>();\n  readonly pluginKey = input<BubbleMenuPluginProps['pluginKey']>('NgxTiptapBubbleMenu');\n  readonly options = input<BubbleMenuPluginProps['options']>({});\n  readonly shouldShow = input<BubbleMenuPluginProps['shouldShow']>(null);\n  readonly updateDelay = input<BubbleMenuPluginProps['updateDelay']>();\n\n  ngOnInit(): void {\n    const editor = this.editor();\n\n    editor.registerPlugin(BubbleMenuPlugin({\n      pluginKey: this.pluginKey(),\n      editor,\n      element: this.elRef.nativeElement,\n      options: this.options(),\n      shouldShow: this.shouldShow(),\n      updateDelay: this.updateDelay(),\n    }));\n  }\n\n  ngOnDestroy(): void {\n    this.editor().unregisterPlugin(this.pluginKey());\n  }\n}\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n  selector: '[tiptapDraggable]',\n})\nexport class TiptapDraggableDirective {\n  @HostBinding('attr.draggable') draggable = true;\n  @HostBinding('attr.data-drag-handle') handle = '';\n}\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n  selector: '[tiptapNodeViewContent]',\n})\nexport class TiptapNodeViewContentDirective {\n  @HostBinding('attr.data-node-view-content') handle = '';\n  @HostBinding('style.white-space') whiteSpace = 'pre-wrap';\n}\n","import { Component, input } from '@angular/core';\nimport type { NodeViewProps } from '@tiptap/core';\n\ntype Inputs = 'editor' | 'node' | 'decorations' | 'innerDecorations' | 'view' | 'selected' | 'extension' | 'HTMLAttributes' | 'getPos' | 'updateAttributes' | 'deleteNode';\ntype NodeViewPropsWithoutInputs = Omit<NodeViewProps, Inputs>;\n\n@Component({\n  template: '',\n})\nexport class AngularNodeViewComponent implements NodeViewPropsWithoutInputs {\n  readonly editor = input.required<NodeViewProps['editor']>();\n  readonly node = input.required<NodeViewProps['node']>();\n  readonly decorations = input.required<NodeViewProps['decorations']>();\n  readonly innerDecorations = input.required<NodeViewProps['innerDecorations']>();\n  readonly view = input.required<NodeViewProps['view']>();\n  readonly selected = input.required<NodeViewProps['selected']>();\n  readonly extension = input.required<NodeViewProps['extension']>();\n  readonly HTMLAttributes = input.required<NodeViewProps['HTMLAttributes']>();\n  readonly getPos = input.required<NodeViewProps['getPos']>();\n  readonly updateAttributes = input.required<NodeViewProps['updateAttributes']>();\n  readonly deleteNode = input.required<NodeViewProps['deleteNode']>();\n}\n","import {\n  ApplicationRef, ComponentRef, ElementRef,\n  Injector, Type, createComponent,\n} from '@angular/core';\n\nexport class AngularRenderer<C, P> {\n  private applicationRef: ApplicationRef;\n  private componentRef: ComponentRef<C>;\n\n  constructor(ViewComponent: Type<C>, injector: Injector, props: Partial<P>) {\n    this.applicationRef = injector.get(ApplicationRef);\n\n    this.componentRef = createComponent(ViewComponent, {\n      environmentInjector: this.applicationRef.injector,\n      elementInjector: injector,\n    });\n\n    // set input props to the component\n    this.updateProps(props);\n\n    this.applicationRef.attachView(this.componentRef.hostView);\n  }\n\n  get instance(): C {\n    return this.componentRef.instance;\n  }\n\n  get elementRef(): ElementRef {\n    return this.componentRef.injector.get(ElementRef);\n  }\n\n  get dom(): HTMLElement {\n    return this.elementRef.nativeElement;\n  }\n\n  updateProps<T extends P>(props: Partial<T>): void {\n    Object.entries(props).forEach(([key, value]) => {\n      this.componentRef.setInput(key, value);\n    });\n  }\n\n  updateAttributes(attributes: Record<string, string>): void {\n    Object.keys(attributes).forEach((key) => {\n      this.dom.setAttribute(key, attributes[key]);\n    });\n  }\n\n  detectChanges(): void {\n    this.componentRef.changeDetectorRef.detectChanges();\n  }\n\n  destroy(): void {\n    this.componentRef.destroy();\n    this.applicationRef.detachView(this.componentRef.hostView);\n  }\n}\n","import { Injector, Type } from '@angular/core';\nimport {\n  Editor, NodeView, NodeViewProps,\n  NodeViewRenderer, NodeViewRendererProps, NodeViewRendererOptions, DecorationWithType,\n  getRenderedAttributes,\n} from '@tiptap/core';\nimport type { Decoration, DecorationSource } from '@tiptap/pm/view';\nimport type { Node as ProseMirrorNode } from '@tiptap/pm/model';\n\nimport { AngularRenderer } from './AngularRenderer';\nimport { AngularNodeViewComponent } from './node-view.component';\n\ninterface RendererUpdateProps {\n  oldNode: ProseMirrorNode;\n  oldDecorations: readonly Decoration[];\n  oldInnerDecorations: DecorationSource;\n  newNode: ProseMirrorNode;\n  newDecorations: readonly Decoration[];\n  innerDecorations: DecorationSource;\n  updateProps: () => void;\n}\n\ntype AttrProps = Record<string, string>\n| ((props: {\n  node: ProseMirrorNode;\n  HTMLAttributes: Record<string, unknown>;\n}) => Record<string, string>);\n\ninterface AngularNodeViewRendererOptions extends NodeViewRendererOptions {\n  update?: ((props: RendererUpdateProps) => boolean) | null;\n  injector: Injector;\n  attrs?: AttrProps;\n}\n\nclass AngularNodeView extends NodeView<Type<AngularNodeViewComponent>, Editor, AngularNodeViewRendererOptions> {\n  declare renderer: AngularRenderer<AngularNodeViewComponent, NodeViewProps>;\n  declare contentDOMElement: HTMLElement | null;\n\n  override mount() {\n    const injector = this.options.injector as Injector;\n\n    const props: NodeViewProps = {\n      editor: this.editor,\n      node: this.node,\n      decorations: this.decorations as DecorationWithType[],\n      innerDecorations: this.innerDecorations,\n      view: this.view,\n      selected: false,\n      extension: this.extension,\n      HTMLAttributes: this.HTMLAttributes,\n      getPos: () => this.getPos(),\n      updateAttributes: (attributes = {}) => this.updateAttributes(attributes),\n      deleteNode: () => this.deleteNode(),\n    };\n\n    this.handleSelectionUpdate = this.handleSelectionUpdate.bind(this);\n\n    // create renderer\n    this.renderer = new AngularRenderer(this.component, injector, props);\n\n    // Register drag handler\n    if (this.extension.config.draggable) {\n      this.renderer.elementRef.nativeElement.ondragstart = (e: DragEvent) => {\n        this.onDragStart(e);\n      };\n    }\n\n    if (this.node.isLeaf) {\n      this.contentDOMElement = null;\n    } else if (this.options.contentDOMElementTag) {\n      this.contentDOMElement = document.createElement(this.options.contentDOMElementTag);\n    } else {\n      this.contentDOMElement = document.createElement(this.node.isInline ? 'span' : 'div');\n    }\n\n    if (this.contentDOMElement) {\n      this.contentDOMElement.dataset['nodeViewContentAngular'] = '';\n\n      // For some reason the whiteSpace prop is not inherited properly in Chrome and Safari\n      // With this fix it seems to work fine\n      // See: https://github.com/ueberdosis/tiptap/issues/1197\n      this.contentDOMElement.style.whiteSpace = 'inherit';\n\n      // Required for editable node views\n      // The content won't be rendered if `editable` is set to `false`\n      this.renderer.detectChanges();\n    }\n\n    this.appendContendDom();\n    this.editor.on('selectionUpdate', this.handleSelectionUpdate);\n    this.updateElementAttributes();\n  }\n\n  override get dom() {\n    return this.renderer.dom;\n  }\n\n  override get contentDOM() {\n    if (this.node.isLeaf) {\n      return null;\n    }\n\n    return this.contentDOMElement;\n  }\n\n  private appendContendDom() {\n    const contentElement = this.dom.querySelector('[data-node-view-content]');\n\n    if (\n      this.contentDOMElement\n      && contentElement\n      && !contentElement.contains(this.contentDOMElement)\n    ) {\n      contentElement.appendChild(this.contentDOMElement);\n    }\n  }\n\n  handleSelectionUpdate() {\n    const { from, to } = this.editor.state.selection;\n    const pos = this.getPos();\n\n    if (typeof pos !== 'number') {\n      return;\n    }\n\n    if (from <= pos && to >= pos + this.node.nodeSize) {\n      if (this.renderer.instance.selected()) {\n        return;\n      }\n\n      this.selectNode();\n    } else {\n      if (!this.renderer.instance.selected()) {\n        return;\n      }\n\n      this.deselectNode();\n    }\n  }\n\n  update(node: ProseMirrorNode, decorations: readonly Decoration[], innerDecorations: DecorationSource): boolean {\n    const updateProps = (props: Partial<NodeViewProps>) => {\n      this.renderer.updateProps(props);\n\n      if (typeof this.options.attrs === 'function') {\n        this.updateElementAttributes();\n      }\n    };\n\n    if (this.options.update) {\n      const oldNode = this.node;\n      const oldDecorations = this.decorations;\n      const oldInnerDecorations = this.innerDecorations;\n\n      this.node = node;\n      this.decorations = decorations;\n      this.innerDecorations = innerDecorations;\n\n      return this.options.update({\n        oldNode,\n        oldDecorations,\n        oldInnerDecorations,\n        newNode: node,\n        newDecorations: decorations,\n        innerDecorations: this.innerDecorations,\n        updateProps: () => updateProps({\n          node,\n          decorations: decorations as DecorationWithType[],\n          innerDecorations,\n        }),\n      });\n    }\n\n    if (node.type !== this.node.type) {\n      return false;\n    }\n\n    if (\n      node === this.node\n      && this.decorations === decorations\n      && this.innerDecorations === innerDecorations\n    ) {\n      return true;\n    }\n\n    this.node = node;\n    this.decorations = decorations;\n    this.innerDecorations = innerDecorations;\n\n    updateProps({\n      node,\n      decorations: decorations as DecorationWithType[],\n      innerDecorations,\n    });\n\n    return true;\n  }\n\n  selectNode() {\n    this.renderer.updateProps({ selected: true });\n    this.renderer.dom.classList.add('ProseMirror-selectednode');\n  }\n\n  deselectNode() {\n    this.renderer.updateProps({ selected: false });\n    this.renderer.dom.classList.remove('ProseMirror-selectednode');\n  }\n\n  destroy() {\n    this.renderer.destroy();\n    this.editor.off('selectionUpdate', this.handleSelectionUpdate);\n    this.contentDOMElement = null;\n  }\n\n  /**\n * Update the attributes of the top-level element that holds the React component.\n * Applying the attributes defined in the `attrs` option.\n */\n  updateElementAttributes() {\n    if (this.options.attrs) {\n      let attrsObj: Record<string, string> = {};\n\n      if (typeof this.options.attrs === 'function') {\n        const extensionAttributes = this.editor.extensionManager.attributes;\n        const HTMLAttributes = getRenderedAttributes(this.node, extensionAttributes);\n\n        attrsObj = this.options.attrs({ node: this.node, HTMLAttributes });\n      } else {\n        attrsObj = this.options.attrs;\n      }\n\n      this.renderer.updateAttributes(attrsObj);\n    }\n  }\n}\n\nexport const AngularNodeViewRenderer = (\n  ViewComponent: Type<AngularNodeViewComponent>,\n  options: Partial<AngularNodeViewRendererOptions>,\n): NodeViewRenderer => {\n  return (props: NodeViewRendererProps) => {\n    return new AngularNodeView(ViewComponent, props, options);\n  };\n};\n","/*\n * Public API Surface of ngx-tiptap\n */\n\nexport * from './lib/editor.directive';\nexport * from './lib/floating-menu.directive';\nexport * from './lib/bubble-menu.directive';\nexport * from './lib/draggable.directive';\nexport * from './lib/node-view-content.directive';\nexport * from './lib/node-view.component';\n\nexport * from './lib/AngularRenderer';\nexport * from './lib/NodeViewRenderer';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}