{"version":3,"file":"obliczeniowo-elementary-connectors.mjs","sources":["../../../../projects/components/connectors/components/directional-connector/directional-connector.component.ts","../../../../projects/components/connectors/components/directional-connector/directional-connector.component.html","../../../../projects/components/connectors/components/relation-connector/relation-connector.component.ts","../../../../projects/components/connectors/components/relation-connector/relation-connector.component.html","../../../../projects/components/connectors/connectors.module.ts","../../../../projects/components/connectors/obliczeniowo-elementary-connectors.ts"],"sourcesContent":["import { Component, Input, ChangeDetectorRef, HostBinding, HostListener, SimpleChanges, EventEmitter, Output } from '@angular/core';\r\nimport { HtmlColor, IPoint2D } from '@obliczeniowo/elementary/classes';\r\nimport { MenuComponent, MenuItem } from '@obliczeniowo/elementary/menu';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n    selector: 'g[obl-directional-connector]',\r\n    templateUrl: './directional-connector.component.html',\r\n    styleUrls: ['./directional-connector.component.scss'],\r\n    standalone: false\r\n})\r\nexport class DirectionalConnectorComponent {\r\n  @Input() start?: IPoint2D;\r\n\r\n  @Input() end?: IPoint2D;\r\n\r\n  @Input() startAngle?: number;\r\n\r\n  @Input() endAngle?: number;\r\n\r\n  @Input() offset: number = 30;\r\n\r\n  @Input() k: number = 6;\r\n\r\n  @Input() color?: HtmlColor;\r\n\r\n  @Input() startName?: string;\r\n\r\n  @Input() endName?: string;\r\n\r\n  @Input() menu?: MenuComponent;\r\n\r\n  @HostBinding('class.highlight')\r\n  @Input() highlight: boolean = false;\r\n\r\n  @Output() remove = new EventEmitter<void>();\r\n\r\n  protected menuItems: MenuItem[] = [\r\n    {\r\n      id: 1,\r\n      text: 'Delete',\r\n      command: 'delete',\r\n    }\r\n  ];\r\n\r\n  protected subscription?: Subscription;\r\n\r\n  @HostListener('mouseover') mouseOver() {\r\n    if (this.menu) {\r\n      this.menu.items = this.menuItems;\r\n    }\r\n  }\r\n\r\n  constructor(public changes: ChangeDetectorRef) {}\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    if (changes.menu) {\r\n      if (this.subscription && !this.subscription.closed) {\r\n        this.subscription.unsubscribe();\r\n      }\r\n      if (this.menu) {\r\n        this.subscription = this.menu.command.subscribe(command => {\r\n          if (this.menu?.items !== this.menuItems) {\r\n            return;\r\n          }\r\n          switch (command) {\r\n            case 'delete':\r\n              this.remove.emit();\r\n              break;\r\n          }\r\n          this.menu.items = [];\r\n        })\r\n      }\r\n    }\r\n  }\r\n\r\n  protected shape() {\r\n    const { start, end, startAngle, endAngle, offset, k } = this;\r\n\r\n    if (!start || !end || startAngle === undefined || endAngle === undefined) {\r\n      return '';\r\n    }\r\n\r\n    const offsetPoint: IPoint2D = { x: offset * Math.cos(endAngle), y: offset * Math.sin(endAngle) };\r\n    const offsetPointStart: IPoint2D = { x: offset * Math.cos(startAngle), y: offset * Math.sin(startAngle) };\r\n\r\n    const startOffset: IPoint2D = { x: start.x + offsetPointStart.x, y: start.y + offsetPointStart.y };\r\n    const endOffset: IPoint2D = { x: end.x - offsetPoint.x, y: end.y - offsetPoint.y }\r\n\r\n    return 'M ' +\r\n      start.x +\r\n      ',' +\r\n      start.y +\r\n      ' ' + startOffset.x + ',' + startOffset.y + 'C ' +\r\n      + (startOffset.x + offsetPointStart.x * k) + ',' + (startOffset.y + offsetPointStart.y * k) + ' ' +\r\n      (endOffset.x - offsetPoint.x * k) +\r\n      ',' +\r\n      (endOffset.y - offsetPoint.y * k) + ' ' +\r\n      endOffset.x +\r\n      ',' +\r\n      endOffset.y +\r\n      ' L ' +\r\n      end.x +\r\n      ',' +\r\n      end.y;\r\n  }\r\n}\r\n","<svg:path\r\n  [attr.d]=\"shape()\"\r\n  [ngStyle]=\"{ stroke: color || 'gray' }\"\r\n></svg:path>\r\n","import { Component, Input, ChangeDetectorRef, Output, HostListener, ElementRef, SimpleChanges } from '@angular/core';\r\nimport { HtmlColor, IPoint2D } from '@obliczeniowo/elementary/classes';\r\nimport { Connector } from '../../models/connector.model';\r\nimport { MenuComponent } from '@obliczeniowo/elementary/menu';\r\nimport { Subscription } from 'rxjs';\r\nimport { ConnectorDataModel } from '../../models/connector-data.model';\r\nimport { BehaviorSubjectExt, EventEmitterExt } from '@obliczeniowo/elementary/rx-js-ext';\r\n\r\n@Component({\r\n    selector: 'g[obl-relation-connector]',\r\n    templateUrl: './relation-connector.component.html',\r\n    styleUrls: ['./relation-connector.component.scss'],\r\n    standalone: false\r\n})\r\nexport class RelationConnectorComponent {\r\n  // left connector pos\r\n  @Input() left?: IPoint2D;\r\n  // right connector pos\r\n  @Input() right?: IPoint2D;\r\n  // connector required\r\n  @Input() connector?: Connector;\r\n  //\r\n  @Input() highlighted?: string;\r\n  //\r\n  @Input() offset = 20;\r\n  //\r\n  @Input() defaultColor: HtmlColor = 'gray';\r\n  //\r\n  @Input() menu?: MenuComponent;\r\n  //\r\n  @Input() translations: { [english: string]: string } = {};\r\n  //\r\n  @Input() disabled?: boolean;\r\n  //\r\n  @Input() input = new BehaviorSubjectExt<ConnectorDataModel | undefined>(undefined);\r\n\r\n  //\r\n  @Output() clicked = new EventEmitterExt<Connector>()\r\n  //\r\n  @Output() remove = new EventEmitterExt<Connector>();\r\n  //\r\n  @Output() editColor = new EventEmitterExt<Connector>();\r\n\r\n  protected menuItems = [\r\n    {\r\n      id: 1,\r\n      text: 'Delete',\r\n      command: 'delete',\r\n    },\r\n    {\r\n      id: 2,\r\n      text: 'Set color',\r\n      command: 'set-color',\r\n    }\r\n  ]\r\n\r\n  @HostListener('mouseover') onMouseOver() {\r\n    if (this.menu && !this.disabled) {\r\n      this.menu.items = this.menuItems;\r\n    }\r\n  }\r\n\r\n  @HostListener('mouseleave') onMouseLeave() {\r\n    if (this.menu && !this.menu?.opened) {\r\n      this.menu.items = [];\r\n    }\r\n  }\r\n\r\n  protected subscription!: Subscription;\r\n\r\n  constructor(public change: ChangeDetectorRef, protected elementRef: ElementRef<HTMLElement>) {\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    if (changes.disabled && !this.disabled && this.menu) {\r\n      this.menu.items = [];\r\n    }\r\n    if (changes.menu && this.menu) {\r\n      if (this.subscription && !this.subscription?.closed) {\r\n        this.subscription.unsubscribe();\r\n      }\r\n      this.subscription = this.menu.command.subscribe((command) => {\r\n        if (this.menu?.items !== this.menuItems) {\r\n          return;\r\n        }\r\n        switch (command) {\r\n          case 'delete': {\r\n            this.remove.emit(\r\n              this.connector\r\n            )\r\n          }\r\n            break;\r\n          case 'set-color': {\r\n            this.editColor.emit(\r\n              this.connector\r\n            )\r\n          }\r\n            break;\r\n          case 'on-close': {\r\n            this.menu.items = [];\r\n          }\r\n            break;\r\n        }\r\n      })\r\n    }\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    if (this.subscription && !this.subscription?.closed) {\r\n      this.subscription.unsubscribe();\r\n    }\r\n    this.input.clearSubscriptions();\r\n  }\r\n\r\n  protected shape() {\r\n    const { left, right, offset } = this;\r\n\r\n    if (!left || !right) {\r\n      return;\r\n    }\r\n\r\n    const size = (right.x - offset - left.x - offset) * 0.5;\r\n\r\n    return 'm ' +\r\n      left?.x +\r\n      ',' +\r\n      left?.y +\r\n      ' h ' + offset +\r\n      ' c ' + Math.abs(size) + ',0 ' + (size < 0 ? 3 * size : size) + ',' + (right.y - left.y) + ' ' +\r\n      (right.x - offset - left.x - offset) +\r\n      ',' +\r\n      (right.y - left.y) +\r\n      ' h ' + offset;\r\n  }\r\n}\r\n","@if (left && right) {\r\n  <svg:path\r\n    [class.highlighted]=\"highlighted === connector?.left || highlighted === connector?.right\"\r\n    [ngStyle]=\"{ stroke: connector?.color || defaultColor }\"\r\n    [attr.d]=\"shape()\"\r\n    (click)=\"clicked.emit(connector)\"\r\n  ></svg:path>\r\n}\r\n","import { DirectionalConnectorComponent } from './components/directional-connector/directional-connector.component';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RelationConnectorComponent } from './components/relation-connector/relation-connector.component';\r\nimport { MenuModule } from '@obliczeniowo/elementary/menu';\r\n\r\n@NgModule({\r\n  declarations: [\r\n    DirectionalConnectorComponent,\r\n    RelationConnectorComponent\r\n  ],\r\n  imports: [\r\n    CommonModule,\r\n    MenuModule\r\n  ],\r\n  exports: [\r\n    DirectionalConnectorComponent,\r\n    RelationConnectorComponent\r\n  ]\r\n})\r\nexport class ConnectorsModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}