{"version":3,"file":"rete-angular-plugin-ng21.mjs","sources":["../../../ng21/.src/ref.ts","../../../ng21/.src/shared/pipes/impure-keyvalue.pipe.ts","../../../ng21/.src/presets/classic/components/node/node.component.html","../../../ng21/.src/presets/classic/components/node/node.component.ts","../../../ng21/.src/presets/classic/components/socket/socket.component.ts","../../../ng21/.src/presets/classic/components/control/control.component.ts","../../../ng21/.src/presets/classic/components/control/control.component.html","../../../ng21/.src/presets/classic/components/connection/connection.component.ts","../../../ng21/.src/presets/classic/components/connection/connection.component.html","../../../ng21/.src/presets/classic/components/connection/connection-wrapper.component.ts","../../../ng21/.src/presets/classic/index.ts","../../../ng21/.src/presets/context-menu/debounce.ts","../../../ng21/.src/presets/context-menu/components/search/search.component.ts","../../../ng21/.src/presets/context-menu/components/search/search.component.html","../../../ng21/.src/presets/context-menu/components/item/item.component.html","../../../ng21/.src/presets/context-menu/components/item/item.component.ts","../../../ng21/.src/presets/context-menu/components/menu/menu.component.html","../../../ng21/.src/presets/context-menu/components/menu/menu.component.ts","../../../ng21/.src/presets/context-menu/index.ts","../../../ng21/.src/presets/minimap/components/mini-node/mini-node.component.ts","../../../ng21/.src/shared/drag.ts","../../../ng21/.src/presets/minimap/components/mini-viewport/mini-viewport.component.ts","../../../ng21/.src/presets/minimap/components/minimap/minimap.component.html","../../../ng21/.src/presets/minimap/components/minimap/minimap.component.ts","../../../ng21/.src/presets/minimap/index.ts","../../../ng21/.src/presets/reroute/components/pin/pin.component.ts","../../../ng21/.src/presets/reroute/components/pins/pins.component.html","../../../ng21/.src/presets/reroute/components/pins/pins.component.ts","../../../ng21/.src/presets/reroute/index.ts","../../../ng21/.src/presets/index.ts","../../../ng21/.src/module.ts","../../../ng21/.src/presets/context-menu/module.ts","../../../ng21/.src/presets/minimap/module.ts","../../../ng21/.src/presets/reroute/module.ts","../../../ng21/.src/reflect.ts","../../../ng21/.src/core.ts","../../../ng21/.src/rete-angular-plugin-ng21.ts"],"sourcesContent":["import { Input, ElementRef, OnChanges, OnDestroy } from '@angular/core';\nimport { Directive } from '@angular/core';\n\n@Directive({\n  selector: '[refComponent]'\n})\nexport class RefDirective implements OnChanges, OnDestroy {\n  @Input() data!: any\n  @Input() emit!: any\n\n  constructor(private el: ElementRef) { }\n\n  ngOnChanges() {\n    this.emit({ type: 'render', data: { ...this.data, element: this.el.nativeElement } })\n  }\n\n  ngOnDestroy() {\n    this.emit({ type: 'unmount', data: { element: this.el.nativeElement } })\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'keyvalueimpure',\n  pure: false\n})\nexport class ImpureKeyvaluePipe implements PipeTransform {\n\n  transform(value: {[key: string]: any} | null | undefined, compareFn?: (a: any, b: any) => number): Array<{key: string, value: any}> {\n    if (!value || typeof value !== 'object') {\n      return [];\n    }\n\n    const result = Object.entries(value).map(([key, val]) => ({key, value: val}));\n\n    if (compareFn) {\n      result.sort(compareFn);\n    }\n\n    return result;\n  }\n}\n","<div class=\"title\" data-testid=\"title\">{{data.label}}</div>\n<div class=\"output\" *ngFor=\"let output of data.outputs | keyvalueimpure: sortByIndex\" [attr.data-testid]=\"'output-'+output.key\">\n    <div class=\"output-title\" data-testid=\"output-title\">{{output.value?.label}}</div>\n    <div\n        class=\"output-socket\"\n        refComponent\n        [data]=\"{type: 'socket', side: 'output', key: output.key, nodeId: data.id, payload: output.value?.socket, seed: seed }\"\n        [emit]=\"emit\"\n        data-testid=\"output-socket\"\n    ></div>\n</div>\n<div\n    class=\"control\"\n    *ngFor=\"let control of data.controls | keyvalueimpure: sortByIndex\"\n    refComponent\n    [data]=\"{type: 'control', payload: control.value }\"\n    [emit]=\"emit\"\n    [attr.data-testid]=\"'control-'+control.key\"\n></div>\n<div class=\"input\" *ngFor=\"let input of data.inputs | keyvalueimpure: sortByIndex\" [attr.data-testid]=\"'input-'+input.key\">\n    <div\n        class=\"input-socket\"\n        refComponent\n        [data]=\"{type: 'socket', side: 'input', key: input.key, nodeId: data.id, payload: input.value?.socket, seed: seed }\"\n        [emit]=\"emit\"\n        data-testid=\"input-socket\"\n    ></div>\n    <div class=\"input-title\" data-testid=\"input-title\" *ngIf=\"!input.value?.control || !input.value?.showControl\">{{input.value?.label}}</div>\n    <div\n        class=\"input-control\"\n        [style.display]=\"input.value?.control && input.value?.showControl ? '' : 'none'\"\n        refComponent\n        [data]=\"{type: 'control', payload: input.value?.control }\"\n        [emit]=\"emit\"\n        data-testid=\"input-control\"\n    ></div>\n</div>\n","import { Component, Input, HostBinding, ChangeDetectorRef, OnChanges } from '@angular/core';\nimport { ClassicPreset as Classic } from 'rete';\nimport { KeyValue } from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport { RefDirective } from '../../../../ref';\nimport { ImpureKeyvaluePipe } from '../../../../shared/pipes/impure-keyvalue.pipe';\n\n\ntype NodeExtraData = { width?: number, height?: number }\ntype SortValue<N extends Classic.Node> = (N['controls'] | N['inputs'] | N['outputs'])[string]\n\n@Component({\n  imports: [CommonModule, RefDirective, ImpureKeyvaluePipe],\n\n  templateUrl: './node.component.html',\n  styleUrls: ['./node.component.sass'],\n  host: {\n    'data-testid': 'node'\n  }\n})\nexport class NodeComponent implements OnChanges {\n  @Input() data!: Classic.Node & NodeExtraData;\n  @Input() emit!: (data: any) => void\n  @Input() rendered!: () => void\n\n  seed = 0\n\n  @HostBinding('style.width.px') get width() {\n    return this.data.width\n  }\n\n  @HostBinding('style.height.px') get height() {\n    return this.data.height\n  }\n\n  @HostBinding('class.selected') get selected() {\n    return this.data.selected\n  }\n\n  constructor(private cdr: ChangeDetectorRef) {\n    this.cdr.detach()\n  }\n\n  ngOnChanges(): void {\n    this.cdr.detectChanges()\n    requestAnimationFrame(() => this.rendered())\n    this.seed++ // force render sockets\n  }\n\n  sortByIndex<N extends Classic.Node, I extends KeyValue<string, SortValue<N>>>(a: I, b: I) {\n    const ai = a.value?.index || 0\n    const bi = b.value?.index || 0\n\n    return ai - bi\n  }\n}\n","import { Component, Input, HostBinding, AfterViewChecked, ChangeDetectorRef, OnChanges } from '@angular/core';\n\n@Component({\n  template: ``,\n  styleUrls: ['./socket.component.sass']\n})\nexport class SocketComponent implements OnChanges {\n  @Input() data!: any;\n  @Input() rendered!: any;\n\n\n  @HostBinding('title') get title() {\n    return this.data.name\n  }\n\n  constructor(private cdr: ChangeDetectorRef)  {\n    this.cdr.detach()\n  }\n\n  ngOnChanges(): void {\n    this.cdr.detectChanges()\n    requestAnimationFrame(() => this.rendered())\n  }\n}\n","import { Component, Input, OnChanges, SimpleChanges, ChangeDetectorRef, HostListener } from '@angular/core';\nimport { ClassicPreset } from 'rete';\n\n@Component({\n  templateUrl: `./control.component.html`,\n  styleUrls: ['./control.component.sass']\n})\nexport class ControlComponent<T extends 'text' | 'number'> implements OnChanges {\n  @Input() data!: ClassicPreset.InputControl<T>;\n  @Input() rendered!: any;\n\n\n  @HostListener('pointerdown', ['$event'])\n  public pointerdown(event: any) {\n    event.stopPropagation();\n  }\n\n  constructor(private cdr: ChangeDetectorRef) {\n    this.cdr.detach()\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const seed = changes['seed']\n    const data = changes['data']\n\n    if ((seed && seed.currentValue !== seed.previousValue)\n      || (data && data.currentValue !== data.previousValue)) {\n      this.cdr.detectChanges()\n    }\n    requestAnimationFrame(() => this.rendered())\n  }\n\n  onChange(e: Event) {\n    const target = e.target as HTMLInputElement\n    const value = (this.data.type === 'number'\n      ? +target.value\n      : target.value) as ClassicPreset.InputControl<T>['value']\n\n    this.data.setValue(value)\n    this.cdr.detectChanges()\n  }\n}\n","<input\n  [value]=\"data.value\"\n  [readonly]=\"data.readonly\"\n  [type]=\"data.type\"\n  (input)=\"onChange($event)\"\n/>\n","import { Component, Input } from '@angular/core';\nimport { ClassicPreset } from 'rete';\nimport { classicConnectionPath } from 'rete-render-utils'\nimport { Position } from '../../../../types';\n\n\n@Component({\n  selector: 'connection',\n  templateUrl: './connection.component.html',\n  styleUrls: ['./connection.component.sass']\n})\nexport class ConnectionComponent {\n  @Input() data!: ClassicPreset.Connection<ClassicPreset.Node, ClassicPreset.Node>;\n  @Input() start: Position\n  @Input() end: Position\n  @Input() path: string\n}\n","<svg data-testid=\"connection\">\n    <path [attr.d]=\"path\" />\n</svg>\n","import { Component, Input, OnInit, ChangeDetectorRef, OnChanges, ViewContainerRef, ComponentFactoryResolver, ComponentRef } from '@angular/core';\nimport { ClassicPreset } from 'rete';\nimport { Position } from '../../../../types';\n\ntype PositionWatcher = (cb: (value: Position) => void) => (() => void)\n\n@Component({\n  template: ''\n})\nexport class ConnectionWrapperComponent implements OnInit, OnChanges{\n  @Input() data!: ClassicPreset.Connection<ClassicPreset.Node, ClassicPreset.Node>;\n  @Input() start!: Position | PositionWatcher\n  @Input() end!: Position | PositionWatcher\n  @Input() path!: (start: Position, end: Position) => Promise<string>\n  @Input() rendered!: any\n  @Input() connectionComponent!: any\n\n  ref!: ComponentRef<any>\n\n  startOb: Position | null = null\n  get _start(): Position | null {\n    return 'x' in this.start ? this.start : this.startOb\n  }\n  endOb: Position | null = null\n  get _end(): Position | null {\n    return 'x' in this.end ? this.end : this.endOb\n  }\n  _path: string\n\n  constructor(private cdr: ChangeDetectorRef, public viewContainerRef: ViewContainerRef, private componentFactoryResolver: ComponentFactoryResolver)  {\n    this.cdr.detach()\n  }\n\n  async ngOnChanges(): Promise<void> {\n    await this.updatePath()\n    requestAnimationFrame(() => this.rendered())\n    this.cdr.detectChanges()\n    this.update()\n  }\n\n  async updatePath() {\n    if (this._start && this._end) {\n      this._path = await this.path(this._start, this._end)\n    }\n  }\n\n  ngOnInit() {\n    if (typeof this.start === 'function') {\n      this.start(async value => {\n        this.startOb = value\n        await this.updatePath()\n        this.cdr.detectChanges()\n        this.update()\n      })\n    }\n    if (typeof this.end === 'function') {\n      this.end(async value => {\n        this.endOb = value\n        await this.updatePath()\n        this.cdr.detectChanges()\n        this.update()\n      })\n    }\n    const componentFactory = this.componentFactoryResolver.resolveComponentFactory(this.connectionComponent);\n    this.viewContainerRef.clear();\n\n    this.ref = this.viewContainerRef.createComponent(componentFactory);\n    this.update()\n  }\n\n  update() {\n    this.ref.instance.data = this.data\n    this.ref.instance.start = this._start\n    this.ref.instance.end = this._end\n    this.ref.instance.path = this._path\n    this.ref.changeDetectorRef.markForCheck();\n  }\n}\n","import { Type } from '@angular/core';\nimport { ClassicPreset, getUID, Scope } from 'rete';\nimport { classicConnectionPath, loopConnectionPath, SocketPositionWatcher, getDOMSocketPosition } from 'rete-render-utils';\nimport { AngularArea2D, ClassicScheme, ExtractPayload } from './types';\nimport { NodeComponent } from './components/node/node.component';\nimport { SocketComponent } from './components/socket/socket.component';\nimport { ControlComponent } from './components/control/control.component';\nimport { ConnectionComponent } from './components/connection/connection.component';\nimport { ConnectionWrapperComponent } from './components/connection/connection-wrapper.component';\nimport { Position } from '../../types';\nimport { RenderPreset } from '../types'\n\ntype AngularComponent = Type<any>\ntype CustomizationProps<Schemes extends ClassicScheme> = {\n  node?: (data: ExtractPayload<Schemes, 'node'>) => AngularComponent | null\n  connection?: (data: ExtractPayload<Schemes, 'connection'>) => AngularComponent | null\n  socket?: (data: ExtractPayload<Schemes, 'socket'>) => AngularComponent | null\n  control?: (data: ExtractPayload<Schemes, 'control'>) => AngularComponent | null\n}\n\ntype ClassicProps<Schemes extends ClassicScheme, K> = {\n  socketPositionWatcher?: SocketPositionWatcher<Scope<never, [K]>>\n  customize?: CustomizationProps<Schemes>\n}\n\n/**\n * Classic preset for rendering nodes, connections, controls and sockets.\n */\nexport function setup<Schemes extends ClassicScheme, K extends AngularArea2D<Schemes>>(\n  props?: ClassicProps<Schemes, K>\n): RenderPreset<Schemes, K> {\n  const positionWatcher = typeof props?.socketPositionWatcher === 'undefined'\n    ? getDOMSocketPosition<Schemes, any>() // fix Type instantiation is excessively deep and possibly infinite.\n    : props?.socketPositionWatcher\n  const { node, connection, socket, control } = props?.customize || {}\n\n\n  return {\n    attach(plugin) {\n      positionWatcher.attach(plugin as unknown as Scope<never, [K]>)\n    },\n    update(context) {\n      const data = context.data.payload\n\n      if (context.data.type === 'connection') {\n        const { start, end } = context.data\n\n        return {\n          data,\n          ...(start ? { start } : {}),\n          ...(end ? { end } : {}),\n        }\n      }\n      return { data }\n    },\n    mount(context, plugin) {\n      const parent = plugin.parentScope()\n      const emit = parent.emit.bind(parent)\n      const rendered = () => {\n        emit({ type: 'rendered', data: context.data })\n      }\n\n      if (context.data.type === 'node') {\n        const component = node ? node(context.data) : NodeComponent\n\n        return {\n          key: `node-${context.data.payload.id}`,\n          component,\n          props: {\n            data: context.data.payload,\n            emit,\n            rendered\n          }\n        }\n      }\n      if (context.data.type === 'connection') {\n        const component = connection ? connection(context.data) : ConnectionComponent\n        const id = context.data.payload.id\n        const { sourceOutput, targetInput, source, target } = context.data.payload\n        const { start, end, payload } = context.data\n\n        return {\n          key: `connection-${id}`,\n          component: ConnectionWrapperComponent,\n          props: {\n            connectionComponent: component,\n            data: payload,\n            start: start || ((change: any) => positionWatcher.listen(source, 'output', sourceOutput, change)),\n            end: end || ((change: any) => positionWatcher.listen(target, 'input', targetInput, change)),\n            path: async (start, end) => {\n              const response = await plugin.emit({ type: 'connectionpath', data: { payload, points: [start, end] } })\n\n              if (!response) return ''\n\n              const { path, points } = response.data\n              const curvature = 0.3\n\n              if (!path && points.length !== 2) throw new Error('cannot render connection with a custom number of points')\n              if (!path) return payload.isLoop\n                ? loopConnectionPath(points as [Position, Position], curvature, 120)\n                : classicConnectionPath(points as [Position, Position], curvature)\n\n              return path\n            },\n            rendered\n          }\n        }\n      }\n      if (context.data.type === 'socket') {\n        const component = socket ? socket(context.data) : SocketComponent\n\n        return {\n          key: `socket-${getUID()}`,\n          component,\n          props: {\n            data: context.data.payload,\n            rendered\n          }\n        }\n      }\n      if (context.data.type === 'control') {\n        const component = control\n          ? control(context.data)\n          : (\n            context.data.payload instanceof ClassicPreset.InputControl\n              ? ControlComponent\n              : null\n          )\n\n        if (component) {\n          return {\n            key: `control-${context.data.payload.id}`,\n            component,\n            props: {\n              data: context.data.payload,\n              rendered\n            }\n          }\n        }\n        return\n      }\n      return\n    }\n  }\n}\n","export function debounce(cb: () => void) {\n  return {\n    timeout: null as null | number,\n    cancel() {\n      if (this.timeout) {\n        window.clearTimeout(this.timeout)\n        this.timeout = null\n      }\n    },\n    call(delay: number) {\n      this.timeout = window.setTimeout(() => {\n        cb()\n      }, delay)\n    }\n  }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n  selector: 'context-menu-search',\n  templateUrl: './search.component.html',\n  styleUrls: ['./search.component.sass']\n})\nexport class ContextMenuSearchComponent {\n  @Input() value!: string\n  @Output() update = new EventEmitter<string>()\n}\n","<input class=\"search\" [value]=\"value\" (input)=\"update.emit($any($event.target)?.value || '')\"\n  data-testid=\"context-menu-search-input\" />\n","<ng-content></ng-content>\n<div class=\"subitems\" *ngIf=\"subitems && visibleSubitems\">\n  <context-menu-item *ngFor=\"let item of subitems\" [delay]=\"delay\" (select)=\"item.handler()\" (hide)=\"hide.emit()\">\n    {{ item.label }}\n  </context-menu-item>\n</div>\n","import { ChangeDetectorRef, Component, EventEmitter, HostBinding, HostListener, Input, Output } from '@angular/core';\nimport { Item } from '../../types';\nimport { debounce } from '../../debounce';\nimport { CommonModule } from '@angular/common';\n\n\n\n@Component({\n  imports: [CommonModule],\n\n  selector: 'context-menu-item',\n  templateUrl: './item.component.html',\n  styleUrls: ['./item.component.sass', '../../block.sass'],\n  host: {\n    'data-testid': 'context-menu-item'\n  }\n})\nexport class ContextMenuItemComponent {\n  @Input() subitems?: Item[]\n  @Input() delay!: number\n  @Output() select = new EventEmitter<void>();\n  @Output() hide = new EventEmitter<void>();\n\n  @HostBinding('class.block') get block() { return true }\n  @HostBinding('class.hasSubitems') get hasSubitems() { return this.subitems }\n\n  @HostListener('click', ['$event']) click(event: MouseEvent) {\n    event.stopPropagation()\n    this.select.emit()\n    this.hide.emit()\n  }\n  @HostListener('pointerdown', ['$event']) pointerdown(event: PointerEvent) {\n    event.stopPropagation()\n  }\n  @HostListener('wheel', ['$event']) wheel(event: MouseEvent) {\n    event.stopPropagation()\n  }\n\n  hideSubitems = debounce(() => {\n    this.visibleSubitems = false\n    this.cdr.detectChanges()\n  })\n  visibleSubitems = false\n\n  @HostListener('pointerover') pointerover() {\n    this.hideSubitems.cancel()\n    this.visibleSubitems = true\n    this.cdr.detectChanges()\n  }\n  @HostListener('pointerleave') pointerleave() {\n    this.hideSubitems.call(this.delay)\n    this.cdr.detectChanges()\n  }\n\n  constructor(private cdr: ChangeDetectorRef) {\n    this.cdr.detach()\n  }\n}\n","<div class=\"block\" *ngIf=\"searchBar\">\n  <context-menu-search [value]=\"filter\" (update)=\"setFilter($event)\"></context-menu-search>\n</div>\n\n<context-menu-item *ngFor=\"let item of getItems()\" [delay]=\"delay\" (select)=\"item.handler()\" [subitems]=\"item.subitems\"\n  (hide)=\"onHide()\">\n  {{ item.label }}\n</context-menu-item>\n","import { Component, Input, ChangeDetectorRef, OnChanges, OnDestroy, HostListener, HostBinding } from '@angular/core';\nimport { Item } from '../../types';\nimport { debounce } from '../../debounce';\nimport { CommonModule } from '@angular/common';\nimport { ContextMenuSearchComponent } from '../search/search.component';\nimport { ContextMenuItemComponent } from '../item/item.component';\n\n\n\n@Component({\n  imports: [CommonModule, ContextMenuSearchComponent, ContextMenuItemComponent],\n\n  templateUrl: './menu.component.html',\n  styleUrls: ['./menu.component.sass', '../../block.sass'],\n  host: {\n    'data-testid': 'context-menu'\n  }\n})\nexport class ContextMenuComponent implements OnChanges, OnDestroy {\n  @Input() items!: Item[]\n  @Input() delay!: number\n  @Input() searchBar?: boolean\n  @Input() onHide!: () => void\n  @Input() rendered!: () => void\n\n  public filter: string = ''\n\n  hide = debounce(() => {\n    this.onHide()\n    this.cdr.detectChanges()\n  })\n\n  @HostBinding('attr.rete-context-menu') customAttribute = ''\n\n  @HostListener('mouseover') pointerover() {\n    this.hide.cancel()\n    this.cdr.detectChanges()\n  }\n  @HostListener('mouseleave') pointerleave() {\n    this.hide.call(this.delay)\n    this.cdr.detectChanges()\n  }\n\n  constructor(private cdr: ChangeDetectorRef) {\n    this.cdr.detach()\n  }\n\n  ngOnChanges(): void {\n    this.cdr.detectChanges()\n    requestAnimationFrame(() => this.rendered())\n  }\n\n  setFilter(value: string) {\n    this.filter = value\n    this.cdr.detectChanges()\n  }\n\n  getItems() {\n    const filterRegexp = new RegExp(this.filter, 'i')\n    const filteredList = this.items.filter(item => (\n      item.label.match(filterRegexp)\n    ))\n\n    return filteredList\n  }\n\n  ngOnDestroy(): void {\n    if (this.hide) this.hide.cancel()\n  }\n}\n","import { BaseSchemes } from 'rete';\n\nimport { ContextMenuRender } from './types';\nimport { ContextMenuComponent } from './components/menu/menu.component';\nimport { RenderPreset } from '../types';\n\n/**\n * Preset for rendering context menu.\n */\nexport function setup<Schemes extends BaseSchemes, K extends ContextMenuRender>(props?: { delay?: number }): RenderPreset<Schemes, K> {\n  const delay = typeof props?.delay === 'undefined' ? 1000 : props.delay\n\n  return {\n    update(context) {\n      if (context.data.type === 'contextmenu') {\n        return {\n          items: context.data.items,\n          delay,\n          searchBar: context.data.searchBar,\n          onHide: context.data.onHide\n        }\n      }\n    },\n    mount(context, plugin) {\n      const parent = plugin.parentScope()\n      const emit = parent.emit.bind(parent)\n      const rendered = () => {\n        emit({ type: 'rendered', data: context.data } as any)\n      }\n\n      if (context.data.type === 'contextmenu') {\n        return {\n          key: 'context-menu',\n          component: ContextMenuComponent,\n          props: {\n            items: context.data.items,\n            delay,\n            searchBar: context.data.searchBar,\n            onHide: context.data.onHide,\n            rendered\n          }\n        }\n      }\n      return null\n    }\n  }\n}\n","import { Component, Input, HostBinding } from '@angular/core';\n\n@Component({\n  selector: 'minimap-mini-node',\n  templateUrl: './mini-node.component.html',\n  styleUrls: ['./mini-node.component.sass'],\n  host: {\n    'data-testid': 'minimap-node'\n  }\n})\nexport class MiniNodeComponent {\n  @Input() left!: number\n  @Input() top!: number\n  @Input() width!: number\n  @Input() height!: number\n\n  @HostBinding('style.left') get styleLeft() {\n    return this.px(this.left)\n  }\n  @HostBinding('style.top') get styleTop() {\n    return this.px(this.top)\n  }\n  @HostBinding('style.width') get styleWidth() {\n    return this.px(this.width)\n  }\n  @HostBinding('style.height') get styleHeight() {\n    return this.px(this.height)\n  }\n\n  px(value: number) {\n    return `${value}px`\n  }\n\n}\n","import { Position } from '../types'\n\ntype Translate = (dx: number, dy: number) => void\ntype StartEvent = { pageX: number, pageY: number }\n\nexport function useDrag(translate: Translate, getPointer: (e: StartEvent) => Position) {\n  return {\n    start(e: StartEvent) {\n      let previous = { ...getPointer(e) }\n\n      function move(moveEvent: MouseEvent) {\n        const current = { ...getPointer(moveEvent) }\n        const dx = current.x - previous.x\n        const dy = current.y - previous.y\n\n        previous = current\n\n        translate(dx, dy)\n      }\n      function up() {\n        window.removeEventListener('pointermove', move)\n        window.removeEventListener('pointerup', up)\n        window.removeEventListener('pointercancel', up)\n      }\n\n      window.addEventListener('pointermove', move)\n      window.addEventListener('pointerup', up)\n      window.addEventListener('pointercancel', up)\n    }\n  }\n}\n","import { Component, Input, HostBinding, HostListener } from '@angular/core';\nimport { useDrag } from '../../../../shared/drag';\nimport { MinimapData } from '../../types';\n\n@Component({\n  selector: 'minimap-mini-viewport',\n  templateUrl: './mini-viewport.component.html',\n  styleUrls: ['./mini-viewport.component.sass'],\n  host: {\n    'data-testid': 'minimap-viewport'\n  }\n})\nexport class MiniViewportComponent {\n  @Input() left!: number\n  @Input() top!: number\n  @Input() width!: number\n  @Input() height!: number\n  @Input() containerWidth!: number\n  @Input() translate!: MinimapData['translate']\n\n  drag = useDrag((dx, dy) => this.onDrag(dx, dy), e => ({ x: e.pageX, y: e.pageY }))\n\n  @HostBinding('style.left') get styleLeft() {\n    return this.px(this.scale(this.left))\n  }\n  @HostBinding('style.top') get styleTop() {\n    return this.px(this.scale(this.top))\n  }\n  @HostBinding('style.width') get styleWidth() {\n    return this.px(this.scale(this.width))\n  }\n  @HostBinding('style.height') get styleHeight() {\n    return this.px(this.scale(this.height))\n  }\n\n  @HostListener('pointerdown', ['$event']) pointerdown(event: PointerEvent) {\n    event.stopPropagation()\n    this.drag.start(event)\n  }\n\n  px(value: number) {\n    return `${value}px`\n  }\n\n  scale(v: number) {\n    return v * this.containerWidth\n  }\n\n  invert(v: number) {\n    return v / this.containerWidth\n  }\n\n  onDrag(dx: number, dy: number) {\n    this.translate(this.invert(-dx), this.invert(-dy))\n  }\n}\n","<minimap-mini-node *ngFor=\"let node of nodes; trackBy: identifyMiniNode\" [left]=\"scale(node.left)\"\n  [top]=\"scale(node.top)\" [width]=\"scale(node.width)\" [height]=\"scale(node.height)\">\n\n</minimap-mini-node>\n<minimap-mini-viewport [left]=\"viewport.left\" [top]=\"viewport.top\" [width]=\"viewport.width\" [height]=\"viewport.height\"\n  [containerWidth]=\"el.nativeElement?.clientWidth\" [translate]=\"translate\"></minimap-mini-viewport>\n","import { Component, Input, ChangeDetectorRef, OnChanges, HostListener, ElementRef, HostBinding } from '@angular/core';\nimport { MinimapData } from '../../types';\nimport { CommonModule } from '@angular/common';\nimport { MiniNodeComponent } from '../mini-node/mini-node.component';\nimport { MiniViewportComponent } from '../mini-viewport/mini-viewport.component';\n\n\n@Component({\n  imports: [CommonModule, MiniNodeComponent, MiniViewportComponent],\n\n  templateUrl: './minimap.component.html',\n  styleUrls: ['./minimap.component.sass'],\n  host: {\n    'data-testid': 'minimap'\n  }\n})\nexport class MinimapComponent implements OnChanges {\n  @Input() rendered!: () => void\n  @Input() size!: number\n  @Input() ratio!: MinimapData['ratio']\n  @Input() nodes!: MinimapData['nodes']\n  @Input() viewport!: MinimapData['viewport']\n  @Input() translate!: MinimapData['translate']\n  @Input() point!: MinimapData['point']\n\n  @HostBinding('style.width') get width() {\n    return this.px(this.size * this.ratio)\n  }\n  @HostBinding('style.height') get height() {\n    return this.px(this.size)\n  }\n\n  @HostListener('pointerdown', ['$event']) pointerdown(event: PointerEvent) {\n    event.stopPropagation()\n    event.preventDefault()\n  }\n\n  @HostListener('dblclick', ['$event']) dblclick(event: MouseEvent) {\n    event.stopPropagation()\n    event.preventDefault()\n\n    if (!this.el.nativeElement) return\n    const box = this.el.nativeElement.getBoundingClientRect()\n    const x = (event.clientX - box.left) / (this.size * this.ratio)\n    const y = (event.clientY - box.top) / (this.size * this.ratio)\n\n    this.point(x, y)\n  }\n\n  constructor(public el: ElementRef, private cdr: ChangeDetectorRef)  {\n    this.cdr.detach()\n  }\n\n  ngOnChanges(): void {\n    this.cdr.detectChanges()\n    requestAnimationFrame(() => this.rendered())\n  }\n\n  px(value: number) {\n    return `${value}px`\n  }\n\n  scale(value: number) {\n    if (!this.el.nativeElement) return 0\n\n    return value * this.el.nativeElement.clientWidth\n  }\n\n  identifyMiniNode(_: number, item: MinimapData['nodes'][number]) {\n    return [item.top, item.left].join('_')\n  }\n}\n","import { BaseSchemes } from 'rete';\n\nimport { RenderPreset } from '../types';\nimport { MinimapRender } from './types';\nimport { MinimapComponent } from './components/minimap/minimap.component';\n\n/**\n * Preset for rendering minimap.\n */\nexport function setup<Schemes extends BaseSchemes, K extends MinimapRender>(props?: { size?: number }): RenderPreset<Schemes, K> {\n  return {\n    update(context) {\n      if (context.data.type === 'minimap') {\n        return {\n          nodes: context.data.nodes,\n          size: props?.size || 200,\n          ratio: context.data.ratio,\n          viewport: context.data.viewport,\n          translate: context.data.translate,\n          point: context.data.point\n        }\n      }\n      return null\n    },\n    mount(context, plugin) {\n      const parent = plugin.parentScope()\n      const emit = parent.emit.bind(parent)\n      const rendered = () => {\n        emit({ type: 'rendered', data: context.data } as any)\n      }\n\n      if (context.data.type === 'minimap') {\n        return {\n          key: 'rete-minimap',\n          component: MinimapComponent,\n          props: {\n            nodes: context.data.nodes,\n            size: props?.size || 200,\n            ratio: context.data.ratio,\n            viewport: context.data.viewport,\n            translate: context.data.translate,\n            point: context.data.point,\n            rendered\n          }\n        }\n      }\n      return null\n    }\n  }\n}\n","import { Component, Input, ChangeDetectorRef, OnChanges, HostListener, HostBinding, Output, EventEmitter } from '@angular/core';\nimport { Position } from '../../types';\nimport { useDrag } from '../../../../shared/drag'\n\nconst pinSize = 20\n\n@Component({\n  selector: 'reroute-pin',\n  template: '',\n  styleUrls: ['./pin.component.sass'],\n  host: {\n    'data-testid': 'pin'\n  }\n})\nexport class PinComponent implements OnChanges {\n  @Input() position!: Position\n  @Input() selected?: boolean\n  @Input() getPointer!: () => Position\n  @Output() menu = new EventEmitter<void>()\n  @Output() translate = new EventEmitter<{ dx: number, dy: number }>()\n  @Output() down = new EventEmitter<void>()\n\n  drag = useDrag((dx, dy) => {\n    this.translate.emit({ dx, dy })\n  }, () => this.getPointer())\n\n  @HostBinding('class.selected') get _selected() {\n    return this.selected\n  }\n  @HostBinding('style.top') get top() {\n    return `${this.position.y - pinSize / 2}px`\n  }\n  @HostBinding('style.left') get left() {\n    return `${this.position.x - pinSize / 2}px`\n  }\n  @HostListener('pointerdown', ['$event']) pointerdown(event: PointerEvent) {\n    event.stopPropagation()\n    event.preventDefault()\n\n    this.drag.start(event)\n    this.down.emit()\n  }\n  @HostListener('contextmenu', ['$event']) contextmenu(event: MouseEvent) {\n    event.stopPropagation()\n    event.preventDefault()\n\n    this.menu.emit()\n  }\n\n  constructor(private cdr: ChangeDetectorRef) {\n    // this.cdr.detach()\n  }\n\n  ngOnChanges(): void {\n    // this.cdr.detectChanges()\n    // requestAnimationFrame(() => this.rendered())\n  }\n\n}\n","<reroute-pin *ngFor=\"let pin of pins; trackBy: track\" [position]=\"pin.position\" [selected]=\"pin.selected\"\n  (menu)=\"menu && menu(pin.id)\" (translate)=\"translate && translate(pin.id, $event.dx, $event.dy)\"\n  (down)=\"down && down(pin.id)\" [getPointer]=\"getPointer\"></reroute-pin>\n","import { Component, Input, ChangeDetectorRef, OnChanges } from '@angular/core';\nimport { Pin, PinData, Position } from '../../types';\nimport { CommonModule } from '@angular/common';\nimport { PinComponent } from '../pin/pin.component';\n\n\n@Component({\n  imports: [CommonModule, PinComponent],\n\n  templateUrl: './pins.component.html'\n})\nexport class PinsComponent implements OnChanges {\n  @Input() rendered!: () => void\n  @Input() pins!: PinData['pins']\n  @Input() down?: (id: string) => void\n  @Input() translate?: (id: string, dx: number, dy: number) => void\n  @Input() menu?: (id: string) => void\n  @Input() getPointer?: () => Position\n\n  constructor(private cdr: ChangeDetectorRef) {\n    this.cdr.detach()\n  }\n\n  ngOnChanges(): void {\n    this.cdr.detectChanges()\n    requestAnimationFrame(() => this.rendered())\n  }\n\n  track(_: number, item: Pin) {\n    return item.id\n  }\n}\n","import { BaseSchemes } from 'rete';\nimport { BaseAreaPlugin } from 'rete-area-plugin';\n\nimport { RenderPreset } from '../types'\nimport { PinsRender } from './types';\nimport { PinsComponent } from './components/pins/pins.component';\n\ntype Props = {\n  translate?: (id: string, dx: number, dy: number) => void\n  contextMenu?: (id: string) => void\n  pointerdown?: (id: string) => void\n}\n\n/**\n * Preset for rendering pins.\n */\nexport function setup<Schemes extends BaseSchemes, K extends PinsRender>(props?: Props): RenderPreset<Schemes, K> {\n  const getProps = () => ({\n    menu: props?.contextMenu || (() => null),\n    translate: props?.translate || (() => null),\n    down: props?.pointerdown || (() => null)\n  })\n\n  return {\n    update(context) {\n      if (context.data.type === 'reroute-pins') {\n        return {\n          ...getProps(),\n          pins: context.data.data.pins\n        }\n      }\n      return null\n    },\n    mount(context, plugin) {\n      const area = plugin.parentScope<BaseAreaPlugin<Schemes, PinsRender>>(BaseAreaPlugin)\n      const rendered = () => {\n        area.emit({ type: 'rendered', data: context.data })\n      }\n\n      if (context.data.type === 'reroute-pins') {\n        return {\n          key: 'rete-reroute',\n          component: PinsComponent,\n          props: {\n            ...getProps(),\n            pins: context.data.data.pins,\n            rendered,\n            getPointer: () => area.area.pointer\n          }\n        }\n      }\n      return null\n    }\n  }\n}\n","/**\n * Built-in presets, responsible for rendering different parts of the editor.\n * @module\n */\nexport * as classic from './classic'\nexport * as contextMenu from './context-menu'\nexport * as minimap from './minimap'\nexport * as reroute from './reroute'\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { NodeComponent } from './presets/classic/components/node/node.component';\nimport { ConnectionComponent } from './presets/classic/components/connection/connection.component';\nimport { SocketComponent } from './presets/classic/components/socket/socket.component';\nimport { ConnectionWrapperComponent } from './presets/classic/components/connection/connection-wrapper.component';\nimport { ControlComponent } from './presets/classic/components/control/control.component';\nimport { RefDirective } from './ref';\n\n@NgModule({\n  imports: [\n    CommonModule,\n    RefDirective,\n    NodeComponent,\n    ConnectionComponent,\n    ConnectionWrapperComponent,\n    SocketComponent,\n    ControlComponent\n  ],\n  exports: [\n    RefDirective,\n    NodeComponent,\n    ConnectionComponent,\n    ConnectionWrapperComponent,\n    SocketComponent,\n    ControlComponent\n  ]\n})\nexport class ReteModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { ContextMenuComponent } from './components/menu/menu.component'\nimport { ContextMenuSearchComponent } from './components/search/search.component'\nimport { ContextMenuItemComponent } from './components/item/item.component'\n\n@NgModule({\n  imports: [\n    CommonModule,\n    ContextMenuComponent,\n    ContextMenuSearchComponent,\n    ContextMenuItemComponent\n  ],\n  exports: [\n    ContextMenuComponent,\n    ContextMenuSearchComponent,\n    ContextMenuItemComponent,\n  ]\n})\nexport class ReteContextMenuModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { MinimapComponent } from './components/minimap/minimap.component';\nimport { MiniViewportComponent } from './components/mini-viewport/mini-viewport.component';\nimport { MiniNodeComponent } from './components/mini-node/mini-node.component';\n\n@NgModule({\n  imports: [\n    CommonModule,\n    MinimapComponent,\n    MiniViewportComponent,\n    MiniNodeComponent\n  ],\n  exports: [\n    MinimapComponent,\n    MiniViewportComponent,\n    MiniNodeComponent\n  ]\n})\nexport class ReteMinimapModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { PinsComponent } from './components/pins/pins.component';\nimport { PinComponent } from './components/pin/pin.component';\n\n@NgModule({\n  imports: [\n    CommonModule,\n    PinsComponent,\n    PinComponent,\n  ],\n  exports: [\n    PinsComponent,\n    PinComponent,\n  ]\n})\nexport class ReteRerouteModule {}\n","export function reflect(obj: unknown) {\n  if (typeof obj !== 'object' || obj === null) {\n    return obj;\n  }\n\n  return new Proxy(obj, {\n    get(target, prop) {\n      return target[prop];\n    },\n    set(target, prop, value) {\n      target[prop] = value;\n      return true;\n    },\n    has: (target, prop) => prop in target,\n    deleteProperty: (target, prop) => delete target[prop],\n    ownKeys: target => Reflect.ownKeys(target)\n  });\n}","import { Injector } from '@angular/core';\nimport { BaseSchemes, CanAssignSignal, Scope } from 'rete'\nimport { createCustomElement } from '@angular/elements';\n\nimport { NgElement, NodeProps, Position, RenderSignal } from './types'\nimport { RenderPreset } from './presets/types';\nimport { reflect } from './reflect';\n\ntype Item = { key: string, ngElement: NgElement }\n\ntype Renderer = {\n  get(element: HTMLElement): Item | undefined\n  mount(element: HTMLElement, key: string, component: any, injector: Injector, props: Record<string, unknown>): void\n  update(item: Item, props: Record<string, unknown>): void\n  unmount(element: HTMLElement): void\n}\nfunction getRenderer(): Renderer {\n  const elements = new WeakMap<HTMLElement, Item>()\n\n  return {\n    get(element) {\n      return elements.get(element)\n    },\n    mount(element, key, component, injector, props) {\n      // LIMITATION: If an element is remounted with the same identifier, the component cannot be replaced\n      let CustomElement = customElements.get(key)\n      \n      if (!CustomElement) {\n        CustomElement = createCustomElement(component, { injector })\n        customElements.define(key, CustomElement)\n      }\n\n      const ngElement = new CustomElement(injector) as NodeProps & NgElement & typeof props\n\n      Object.keys(props).forEach(key => {\n        ngElement[key] = props[key]\n      })\n\n      element.appendChild(ngElement)\n      elements.set(element, { key, ngElement })\n    },\n    update({ ngElement }, props) {\n      Object.keys(props).forEach(key => {\n        ngElement.ngElementStrategy.setInputValue(key, reflect(props[key]))\n      })\n    },\n    unmount(element) {\n      const existing = elements.get(element)\n\n      if (existing) {\n        existing.ngElement.remove()\n        elements.delete(element)\n      }\n    }\n  }\n}\n\n/**\n * Signals that can be emitted by the plugin\n * @priority 10\n */\nexport type Produces<Schemes extends BaseSchemes> =\n  | { type: 'connectionpath', data: { payload: Schemes['Connection'], path?: string, points: Position[] } }\n\ntype Requires<Schemes extends BaseSchemes> =\n  | RenderSignal<'node', { payload: Schemes['Node'] }>\n  | RenderSignal<'connection', { payload: Schemes['Connection'], start?: Position, end?: Position }>\n  | { type: 'unmount', data: { element: HTMLElement } }\n\n/**\n * Angular plugin. Renders nodes, connections and other elements using React.\n * @priority 9\n * @emits connectionpath\n * @listens render\n * @listens unmount\n */\nexport class AngularPlugin<Schemes extends BaseSchemes, T = Requires<Schemes>> extends Scope<Produces<Schemes>, [Requires<Schemes> | T]> {\n  presets: RenderPreset<Schemes, T>[] = []\n  renderer: Renderer\n  owners = new WeakMap<HTMLElement, RenderPreset<Schemes, T>>()\n\n  /**\n   * @constructor\n   * @param params Plugin properties\n   * @param params.injector Angular's Injector instance\n   */\n  constructor(private params: { injector: Injector }) {\n    super('angular-render')\n    this.renderer = getRenderer()\n\n    this.addPipe(context => {\n      if (!context || typeof context !== 'object' || !('type' in context)) return context\n      if (context.type === 'unmount') {\n        this.unmount(context.data.element)\n      } else if (context.type === 'render') {\n        if ('filled' in context.data && context.data.filled) {\n          return context\n        }\n        if (this.mount(context.data.element, context)) {\n          return {\n            ...context,\n            data: {\n              ...context.data,\n              filled: true\n            }\n          } as typeof context\n        }\n      }\n      return context\n    })\n  }\n\n  setParent(scope: Scope<Requires<Schemes> | T>): void {\n    super.setParent(scope)\n\n    this.presets.forEach(preset => {\n      if (preset.attach) preset.attach(this)\n    })\n  }\n\n\n  private unmount(element: HTMLElement) {\n    this.owners.delete(element)\n    this.renderer.unmount(element)\n  }\n\n  private mount(element: HTMLElement, context: Requires<Schemes>) {\n    const existing = this.renderer.get(element)\n\n    if (existing) {\n      this.presets.forEach(preset => {\n        if (this.owners.get(element) !== preset) return\n        const result = preset.update(context as unknown as Extract<T, { type: 'render' }>, this)\n\n        if (result) {\n          this.renderer.update(existing, result)\n        }\n      })\n      return true\n    }\n\n    for (const preset of this.presets) {\n      const result = preset.mount(context as unknown as Extract<T, { type: 'render' }>, this)\n\n      if (!result) continue\n\n      const { key, component, props } = result\n\n      this.renderer.mount(element, key, component, this.params.injector, props)\n\n      this.owners.set(element, preset)\n      return true\n    }\n    return\n  }\n\n  /**\n   * Adds a preset to the plugin.\n   * @param preset Preset that can render nodes, connections and other elements.\n   */\n  public addPreset<K>(preset: RenderPreset<Schemes, CanAssignSignal<T, K> extends true ? K : 'Cannot apply preset. Provided signals are not compatible'>) {\n    const local = preset as unknown as RenderPreset<Schemes, T>\n\n    if (local.attach) local.attach(this)\n    this.presets.push(local)\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["setup"],"mappings":"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"}