UNPKG

rete-angular-plugin

Version:

Rete.js Angular plugin ==== [![Made in Ukraine](https://img.shields.io/badge/made_in-ukraine-ffd700.svg?labelColor=0057b7)](https://stand-with-ukraine.pp.ua) [![Discord](https://img.shields.io/discord/1081223198055604244?color=%237289da&label=Discord)](ht

86 lines 8.46 kB
import { Component, Input, ChangeDetectorRef, HostListener, HostBinding, Output, EventEmitter } from '@angular/core'; import { useDrag } from '../../../../shared/drag'; import * as i0 from "@angular/core"; const pinSize = 20; export class PinComponent { constructor(cdr) { this.cdr = cdr; this.menu = new EventEmitter(); this.translate = new EventEmitter(); this.down = new EventEmitter(); this.drag = useDrag((dx, dy) => { this.translate.emit({ dx, dy }); }, () => this.getPointer()); // this.cdr.detach() } get _selected() { return this.selected; } get top() { return `${this.position.y - pinSize / 2}px`; } get left() { return `${this.position.x - pinSize / 2}px`; } pointerdown(event) { event.stopPropagation(); event.preventDefault(); this.drag.start(event); this.down.emit(); } contextmenu(event) { event.stopPropagation(); event.preventDefault(); this.menu.emit(); } ngOnChanges() { // this.cdr.detectChanges() // requestAnimationFrame(() => this.rendered()) } } PinComponent.ɵfac = function PinComponent_Factory(t) { return new (t || PinComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); }; PinComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PinComponent, selectors: [["reroute-pin"]], hostAttrs: ["data-testid", "pin"], hostVars: 6, hostBindings: function PinComponent_HostBindings(rf, ctx) { if (rf & 1) { i0.ɵɵlistener("pointerdown", function PinComponent_pointerdown_HostBindingHandler($event) { return ctx.pointerdown($event); })("contextmenu", function PinComponent_contextmenu_HostBindingHandler($event) { return ctx.contextmenu($event); }); } if (rf & 2) { i0.ɵɵstyleProp("top", ctx.top)("left", ctx.left); i0.ɵɵclassProp("selected", ctx._selected); } }, inputs: { position: "position", selected: "selected", getPointer: "getPointer" }, outputs: { menu: "menu", translate: "translate", down: "down" }, features: [i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function PinComponent_Template(rf, ctx) { }, styles: ["[_nghost-%COMP%]{display:block;width:20px;height:20px;box-sizing:border-box;background:steelblue;border:2px solid white;border-radius:20px;position:absolute}.selected[_nghost-%COMP%]{background:#ffd92c}"] }); (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PinComponent, [{ type: Component, args: [{ selector: 'reroute-pin', template: '', styleUrls: ['./pin.component.sass'], host: { 'data-testid': 'pin' } }] }], function () { return [{ type: i0.ChangeDetectorRef }]; }, { position: [{ type: Input }], selected: [{ type: Input }], getPointer: [{ type: Input }], menu: [{ type: Output }], translate: [{ type: Output }], down: [{ type: Output }], _selected: [{ type: HostBinding, args: ['class.selected'] }], top: [{ type: HostBinding, args: ['style.top'] }], left: [{ type: HostBinding, args: ['style.left'] }], pointerdown: [{ type: HostListener, args: ['pointerdown', ['$event']] }], contextmenu: [{ type: HostListener, args: ['contextmenu', ['$event']] }] }); })(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGluLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL25nMTIvc3JjL3ByZXNldHMvcmVyb3V0ZS9jb21wb25lbnRzL3Bpbi9waW4uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFhLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVoSSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUE7O0FBRWpELE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQTtBQVVsQixNQUFNLE9BQU8sWUFBWTtJQW1DdkIsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUEvQmhDLFNBQUksR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFBO1FBQy9CLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBOEIsQ0FBQTtRQUMxRCxTQUFJLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQTtRQUV6QyxTQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUE7UUFDakMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFBO1FBMEJ6QixvQkFBb0I7SUFDdEIsQ0FBQztJQXpCRCxJQUFtQyxTQUFTO1FBQzFDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQTtJQUN0QixDQUFDO0lBQ0QsSUFBOEIsR0FBRztRQUMvQixPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFBO0lBQzdDLENBQUM7SUFDRCxJQUErQixJQUFJO1FBQ2pDLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUE7SUFDN0MsQ0FBQztJQUN3QyxXQUFXLENBQUMsS0FBbUI7UUFDdEUsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFBO1FBQ3ZCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQTtRQUV0QixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFBO0lBQ2xCLENBQUM7SUFDd0MsV0FBVyxDQUFDLEtBQWlCO1FBQ3BFLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQTtRQUN2QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUE7UUFFdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUNsQixDQUFDO0lBTUQsV0FBVztRQUNULDJCQUEyQjtRQUMzQiwrQ0FBK0M7SUFDakQsQ0FBQzs7d0VBMUNVLFlBQVk7K0RBQVosWUFBWTsyR0FBWix1QkFBbUIsMEZBQW5CLHVCQUFtQjs7Ozs7dUZBQW5CLFlBQVk7Y0FSeEIsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSxhQUFhO2dCQUN2QixRQUFRLEVBQUUsRUFBRTtnQkFDWixTQUFTLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztnQkFDbkMsSUFBSSxFQUFFO29CQUNKLGFBQWEsRUFBRSxLQUFLO2lCQUNyQjthQUNGO29FQUVVLFFBQVE7a0JBQWhCLEtBQUs7WUFDRyxRQUFRO2tCQUFoQixLQUFLO1lBQ0csVUFBVTtrQkFBbEIsS0FBSztZQUNJLElBQUk7a0JBQWIsTUFBTTtZQUNHLFNBQVM7a0JBQWxCLE1BQU07WUFDRyxJQUFJO2tCQUFiLE1BQU07WUFNNEIsU0FBUztrQkFBM0MsV0FBVzttQkFBQyxnQkFBZ0I7WUFHQyxHQUFHO2tCQUFoQyxXQUFXO21CQUFDLFdBQVc7WUFHTyxJQUFJO2tCQUFsQyxXQUFXO21CQUFDLFlBQVk7WUFHZ0IsV0FBVztrQkFBbkQsWUFBWTttQkFBQyxhQUFhLEVBQUUsQ0FBQyxRQUFRLENBQUM7WUFPRSxXQUFXO2tCQUFuRCxZQUFZO21CQUFDLGFBQWEsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIENoYW5nZURldGVjdG9yUmVmLCBPbkNoYW5nZXMsIEhvc3RMaXN0ZW5lciwgSG9zdEJpbmRpbmcsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQb3NpdGlvbiB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IHVzZURyYWcgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvZHJhZydcblxuY29uc3QgcGluU2l6ZSA9IDIwXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Jlcm91dGUtcGluJyxcbiAgdGVtcGxhdGU6ICcnLFxuICBzdHlsZVVybHM6IFsnLi9waW4uY29tcG9uZW50LnNhc3MnXSxcbiAgaG9zdDoge1xuICAgICdkYXRhLXRlc3RpZCc6ICdwaW4nXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgUGluQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgcG9zaXRpb24hOiBQb3NpdGlvblxuICBASW5wdXQoKSBzZWxlY3RlZD86IGJvb2xlYW5cbiAgQElucHV0KCkgZ2V0UG9pbnRlciE6ICgpID0+IFBvc2l0aW9uXG4gIEBPdXRwdXQoKSBtZW51ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpXG4gIEBPdXRwdXQoKSB0cmFuc2xhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPHsgZHg6IG51bWJlciwgZHk6IG51bWJlciB9PigpXG4gIEBPdXRwdXQoKSBkb3duID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpXG5cbiAgZHJhZyA9IHVzZURyYWcoKGR4LCBkeSkgPT4ge1xuICAgIHRoaXMudHJhbnNsYXRlLmVtaXQoeyBkeCwgZHkgfSlcbiAgfSwgKCkgPT4gdGhpcy5nZXRQb2ludGVyKCkpXG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zZWxlY3RlZCcpIGdldCBfc2VsZWN0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRcbiAgfVxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLnRvcCcpIGdldCB0b3AoKSB7XG4gICAgcmV0dXJuIGAke3RoaXMucG9zaXRpb24ueSAtIHBpblNpemUgLyAyfXB4YFxuICB9XG4gIEBIb3N0QmluZGluZygnc3R5bGUubGVmdCcpIGdldCBsZWZ0KCkge1xuICAgIHJldHVybiBgJHt0aGlzLnBvc2l0aW9uLnggLSBwaW5TaXplIC8gMn1weGBcbiAgfVxuICBASG9zdExpc3RlbmVyKCdwb2ludGVyZG93bicsIFsnJGV2ZW50J10pIHBvaW50ZXJkb3duKGV2ZW50OiBQb2ludGVyRXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcblxuICAgIHRoaXMuZHJhZy5zdGFydChldmVudClcbiAgICB0aGlzLmRvd24uZW1pdCgpXG4gIH1cbiAgQEhvc3RMaXN0ZW5lcignY29udGV4dG1lbnUnLCBbJyRldmVudCddKSBjb250ZXh0bWVudShldmVudDogTW91c2VFdmVudCkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuXG4gICAgdGhpcy5tZW51LmVtaXQoKVxuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgLy8gdGhpcy5jZHIuZGV0YWNoKClcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgIC8vIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKVxuICAgIC8vIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB0aGlzLnJlbmRlcmVkKCkpXG4gIH1cblxufVxuIl19