rete-angular-plugin
Version:
Rete.js Angular plugin ==== [](https://stand-with-ukraine.pp.ua) [](ht
86 lines • 8.46 kB
JavaScript
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