UNPKG

@obliczeniowo/elementary

Version:
1 lines 16.8 kB
{"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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"}