UNPKG

@foblex/flow

Version:

An Angular library designed to simplify the creation and manipulation of dynamic flow. Provides components for flows, nodes, and connections, automating node manipulation and inter-node connections.

45 lines 7.56 kB
import { __decorate } from "tslib"; import { TransformModelExtensions } from '@foblex/2d'; import { AddPatternToBackgroundRequest } from './add-pattern-to-background.request'; import { inject, Injectable } from '@angular/core'; import { FExecutionRegister } from '@foblex/mediator'; import { createSVGElement } from '../../../domain'; import { FComponentsStore } from '../../../f-storage'; import { BrowserService } from '@foblex/platform'; import * as i0 from "@angular/core"; let uniqueId = 0; let AddPatternToBackgroundExecution = class AddPatternToBackgroundExecution { _fComponentsStore = inject(FComponentsStore); _fBrowser = inject(BrowserService); get _fBackground() { return this._fComponentsStore.fBackground; } handle(request) { const children = request.fPattern?.hostElement.getElementsByTagName('pattern') || []; const pattern = children.length ? children[0] : undefined; if (pattern) { const defs = createSVGElement('defs', this._fBrowser); pattern.id = 'f-background-pattern-' + uniqueId++; request.fPattern?.hostElement.remove(); defs.appendChild(pattern); this._fBackground.hostElement?.firstChild?.appendChild(defs); const rect = createSVGElement('rect', this._fBrowser); rect.setAttribute('fill', 'url(#' + pattern.id + ')'); rect.setAttribute('width', '100%'); rect.setAttribute('height', '100%'); this._fBackground.hostElement.firstChild?.appendChild(rect); const transform = this._fComponentsStore.fCanvas?.transform || TransformModelExtensions.default(); request.fPattern?.setTransform(transform); } } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AddPatternToBackgroundExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AddPatternToBackgroundExecution }); }; AddPatternToBackgroundExecution = __decorate([ FExecutionRegister(AddPatternToBackgroundRequest) ], AddPatternToBackgroundExecution); export { AddPatternToBackgroundExecution }; i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AddPatternToBackgroundExecution, decorators: [{ type: Injectable }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXBhdHRlcm4tdG8tYmFja2dyb3VuZC5leGVjdXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RvbWFpbi9mLWJhY2tncm91bmQvYWRkLXBhdHRlcm4tdG8tYmFja2dyb3VuZC9hZGQtcGF0dGVybi10by1iYWNrZ3JvdW5kLmV4ZWN1dGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3RELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBYyxNQUFNLGtCQUFrQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFHbEQsSUFBSSxRQUFRLEdBQVcsQ0FBQyxDQUFDO0FBSWxCLElBQU0sK0JBQStCLEdBQXJDLE1BQU0sK0JBQStCO0lBRXpCLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzdDLFNBQVMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFFcEQsSUFBWSxZQUFZO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVksQ0FBQztJQUM3QyxDQUFDO0lBRU0sTUFBTSxDQUFDLE9BQXNDO1FBQ2xELE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyRixNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUUsQ0FBQyxDQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUM1RCxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osTUFBTSxJQUFJLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN0RCxPQUFPLENBQUMsRUFBRSxHQUFHLHVCQUF1QixHQUFHLFFBQVEsRUFBRSxDQUFDO1lBQ2xELE9BQU8sQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDMUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsVUFBVSxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM3RCxNQUFNLElBQUksR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3RELElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLE9BQU8sR0FBRyxPQUFPLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1lBQ3RELElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ25DLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDNUQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxTQUFTLElBQUksd0JBQXdCLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbEcsT0FBTyxDQUFDLFFBQVEsRUFBRSxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDNUMsQ0FBQztJQUNILENBQUM7d0dBMUJVLCtCQUErQjs0R0FBL0IsK0JBQStCOztBQUEvQiwrQkFBK0I7SUFEM0Msa0JBQWtCLENBQUMsNkJBQTZCLENBQUM7R0FDckMsK0JBQStCLENBMkIzQzs7NEZBM0JZLCtCQUErQjtrQkFGM0MsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zZm9ybU1vZGVsRXh0ZW5zaW9ucyB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgQWRkUGF0dGVyblRvQmFja2dyb3VuZFJlcXVlc3QgfSBmcm9tICcuL2FkZC1wYXR0ZXJuLXRvLWJhY2tncm91bmQucmVxdWVzdCc7XG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZFeGVjdXRpb25SZWdpc3RlciwgSUV4ZWN1dGlvbiB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHsgY3JlYXRlU1ZHRWxlbWVudCB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vLi4vLi4vZi1zdG9yYWdlJztcbmltcG9ydCB7IEJyb3dzZXJTZXJ2aWNlIH0gZnJvbSAnQGZvYmxleC9wbGF0Zm9ybSc7XG5pbXBvcnQgeyBGQmFja2dyb3VuZEJhc2UgfSBmcm9tICcuLi8uLi8uLi9mLWJhY2tncm91ZCc7XG5cbmxldCB1bmlxdWVJZDogbnVtYmVyID0gMDtcblxuQEluamVjdGFibGUoKVxuQEZFeGVjdXRpb25SZWdpc3RlcihBZGRQYXR0ZXJuVG9CYWNrZ3JvdW5kUmVxdWVzdClcbmV4cG9ydCBjbGFzcyBBZGRQYXR0ZXJuVG9CYWNrZ3JvdW5kRXhlY3V0aW9uIGltcGxlbWVudHMgSUV4ZWN1dGlvbjxBZGRQYXR0ZXJuVG9CYWNrZ3JvdW5kUmVxdWVzdCwgdm9pZD4ge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZDb21wb25lbnRzU3RvcmUgPSBpbmplY3QoRkNvbXBvbmVudHNTdG9yZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZCcm93c2VyID0gaW5qZWN0KEJyb3dzZXJTZXJ2aWNlKTtcblxuICBwcml2YXRlIGdldCBfZkJhY2tncm91bmQoKTogRkJhY2tncm91bmRCYXNlIHtcbiAgICByZXR1cm4gdGhpcy5fZkNvbXBvbmVudHNTdG9yZS5mQmFja2dyb3VuZCE7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlKHJlcXVlc3Q6IEFkZFBhdHRlcm5Ub0JhY2tncm91bmRSZXF1ZXN0KTogdm9pZCB7XG4gICAgY29uc3QgY2hpbGRyZW4gPSByZXF1ZXN0LmZQYXR0ZXJuPy5ob3N0RWxlbWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgncGF0dGVybicpIHx8IFtdO1xuICAgIGNvbnN0IHBhdHRlcm4gPSBjaGlsZHJlbi5sZW5ndGggPyBjaGlsZHJlblsgMCBdIDogdW5kZWZpbmVkO1xuICAgIGlmIChwYXR0ZXJuKSB7XG4gICAgICBjb25zdCBkZWZzID0gY3JlYXRlU1ZHRWxlbWVudCgnZGVmcycsIHRoaXMuX2ZCcm93c2VyKTtcbiAgICAgIHBhdHRlcm4uaWQgPSAnZi1iYWNrZ3JvdW5kLXBhdHRlcm4tJyArIHVuaXF1ZUlkKys7XG4gICAgICByZXF1ZXN0LmZQYXR0ZXJuPy5ob3N0RWxlbWVudC5yZW1vdmUoKTtcbiAgICAgIGRlZnMuYXBwZW5kQ2hpbGQocGF0dGVybik7XG4gICAgICB0aGlzLl9mQmFja2dyb3VuZC5ob3N0RWxlbWVudD8uZmlyc3RDaGlsZD8uYXBwZW5kQ2hpbGQoZGVmcyk7XG4gICAgICBjb25zdCByZWN0ID0gY3JlYXRlU1ZHRWxlbWVudCgncmVjdCcsIHRoaXMuX2ZCcm93c2VyKTtcbiAgICAgIHJlY3Quc2V0QXR0cmlidXRlKCdmaWxsJywgJ3VybCgjJyArIHBhdHRlcm4uaWQgKyAnKScpO1xuICAgICAgcmVjdC5zZXRBdHRyaWJ1dGUoJ3dpZHRoJywgJzEwMCUnKTtcbiAgICAgIHJlY3Quc2V0QXR0cmlidXRlKCdoZWlnaHQnLCAnMTAwJScpO1xuICAgICAgdGhpcy5fZkJhY2tncm91bmQuaG9zdEVsZW1lbnQuZmlyc3RDaGlsZD8uYXBwZW5kQ2hpbGQocmVjdCk7XG4gICAgICBjb25zdCB0cmFuc2Zvcm0gPSB0aGlzLl9mQ29tcG9uZW50c1N0b3JlLmZDYW52YXM/LnRyYW5zZm9ybSB8fCBUcmFuc2Zvcm1Nb2RlbEV4dGVuc2lvbnMuZGVmYXVsdCgpO1xuICAgICAgcmVxdWVzdC5mUGF0dGVybj8uc2V0VHJhbnNmb3JtKHRyYW5zZm9ybSk7XG4gICAgfVxuICB9XG59XG4iXX0=