UNPKG

ngx-diagrams

Version:

This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 7.2.0.

95 lines 8.73 kB
/** * @fileoverview added by tsickle * Generated from: lib/defaults/factories/default-node.factory.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { DefaultNodeComponent } from '../components/default-node/default-node.component'; import { AbstractNodeFactory } from '../../factories/node.factory'; import { DefaultNodeModel } from '../models/default-node.model'; export class DefaultNodeFactory extends AbstractNodeFactory { /** * @param {?} resolver * @param {?} renderer */ constructor(resolver, renderer) { super('default'); this.resolver = resolver; this.renderer = renderer; } /** * @param {?} diagramEngine * @param {?} node * @param {?} nodesHost * @return {?} */ generateWidget(diagramEngine, node, nodesHost) { /** @type {?} */ const componentRef = nodesHost.createComponent(this.getRecipe()); // attach coordinates and default positional behaviour to the generated component host /** @type {?} */ const rootNode = componentRef.location.nativeElement; // default style for node this.renderer.setStyle(rootNode, 'position', 'absolute'); this.renderer.setStyle(rootNode, 'display', 'block'); // data attributes this.renderer.setAttribute(rootNode, 'data-nodeid', node.id); // subscribe to node coordinates node.selectCoords().subscribe((/** * @param {?} __0 * @return {?} */ ({ x, y }) => { this.renderer.setStyle(rootNode, 'left', `${x}px`); this.renderer.setStyle(rootNode, 'top', `${y}px`); })); node.selectionChanges().subscribe((/** * @param {?} e * @return {?} */ e => { e.isSelected ? this.renderer.addClass(rootNode, 'selected') : this.renderer.removeClass(rootNode, 'selected'); })); node.onEntityDestroy().subscribe((/** * @return {?} */ ( /** e */) => { componentRef.destroy(); })); // assign all passed properties to node initialization. Object.entries(node).forEach((/** * @param {?} __0 * @return {?} */ ([key, value]) => { componentRef.instance[key] = value; })); componentRef.instance.diagramEngine = diagramEngine; return componentRef; } /** * @return {?} */ getRecipe() { return this.resolver.resolveComponentFactory(DefaultNodeComponent); } /** * @param {?=} initialConfig * @return {?} */ getNewInstance(initialConfig) { return new DefaultNodeModel('default', ...initialConfig); } } if (false) { /** * @type {?} * @private */ DefaultNodeFactory.prototype.resolver; /** * @type {?} * @private */ DefaultNodeFactory.prototype.renderer; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1ub2RlLmZhY3RvcnkuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtZGlhZ3JhbXMvIiwic291cmNlcyI6WyJsaWIvZGVmYXVsdHMvZmFjdG9yaWVzL2RlZmF1bHQtbm9kZS5mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDekYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFHbkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFaEUsTUFBTSxPQUFPLGtCQUFtQixTQUFRLG1CQUFxQzs7Ozs7SUFDNUUsWUFBb0IsUUFBa0MsRUFBVSxRQUFtQjtRQUNsRixLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFERSxhQUFRLEdBQVIsUUFBUSxDQUEwQjtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVc7SUFFbkYsQ0FBQzs7Ozs7OztJQUVELGNBQWMsQ0FBQyxhQUE0QixFQUFFLElBQXNCLEVBQUUsU0FBMkI7O2NBQ3pGLFlBQVksR0FBRyxTQUFTLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQzs7O2NBRzFELFFBQVEsR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFDLGFBQWE7UUFFcEQseUJBQXlCO1FBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUVyRCxrQkFBa0I7UUFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLGFBQWEsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFN0QsZ0NBQWdDO1FBQ2hDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxTQUFTOzs7O1FBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFO1lBQzFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ25ELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25ELENBQUMsRUFBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsU0FBUzs7OztRQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3JDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQy9HLENBQUMsRUFBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLFNBQVM7OztRQUFDLEVBQUMsUUFBUSxFQUFFLEVBQUU7WUFDN0MsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3hCLENBQUMsRUFBQyxDQUFDO1FBRUgsdURBQXVEO1FBQ3ZELE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTzs7OztRQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtZQUM3QyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUNwQyxDQUFDLEVBQUMsQ0FBQztRQUVILFlBQVksQ0FBQyxRQUFRLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUVwRCxPQUFPLFlBQVksQ0FBQztJQUNyQixDQUFDOzs7O0lBRUQsU0FBUztRQUNSLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7Ozs7O0lBRUQsY0FBYyxDQUFDLGFBQW1CO1FBQ2pDLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsR0FBRyxhQUFhLENBQUMsQ0FBQztJQUMxRCxDQUFDO0NBQ0Q7Ozs7OztJQWhEWSxzQ0FBMEM7Ozs7O0lBQUUsc0NBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVmYXVsdE5vZGVDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2RlZmF1bHQtbm9kZS9kZWZhdWx0LW5vZGUuY29tcG9uZW50JztcbmltcG9ydCB7IEFic3RyYWN0Tm9kZUZhY3RvcnkgfSBmcm9tICcuLi8uLi9mYWN0b3JpZXMvbm9kZS5mYWN0b3J5JztcbmltcG9ydCB7IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgVmlld0NvbnRhaW5lclJlZiwgQ29tcG9uZW50UmVmLCBDb21wb25lbnRGYWN0b3J5LCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERpYWdyYW1FbmdpbmUgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9lbmdpbmUuc2VydmljZS5qcyc7XG5pbXBvcnQgeyBEZWZhdWx0Tm9kZU1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL2RlZmF1bHQtbm9kZS5tb2RlbCc7XG5cbmV4cG9ydCBjbGFzcyBEZWZhdWx0Tm9kZUZhY3RvcnkgZXh0ZW5kcyBBYnN0cmFjdE5vZGVGYWN0b3J5PERlZmF1bHROb2RlTW9kZWw+IHtcblx0Y29uc3RydWN0b3IocHJpdmF0ZSByZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHtcblx0XHRzdXBlcignZGVmYXVsdCcpO1xuXHR9XG5cblx0Z2VuZXJhdGVXaWRnZXQoZGlhZ3JhbUVuZ2luZTogRGlhZ3JhbUVuZ2luZSwgbm9kZTogRGVmYXVsdE5vZGVNb2RlbCwgbm9kZXNIb3N0OiBWaWV3Q29udGFpbmVyUmVmKTogQ29tcG9uZW50UmVmPERlZmF1bHROb2RlQ29tcG9uZW50PiB7XG5cdFx0Y29uc3QgY29tcG9uZW50UmVmID0gbm9kZXNIb3N0LmNyZWF0ZUNvbXBvbmVudCh0aGlzLmdldFJlY2lwZSgpKTtcblxuXHRcdC8vIGF0dGFjaCBjb29yZGluYXRlcyBhbmQgZGVmYXVsdCBwb3NpdGlvbmFsIGJlaGF2aW91ciB0byB0aGUgZ2VuZXJhdGVkIGNvbXBvbmVudCBob3N0XG5cdFx0Y29uc3Qgcm9vdE5vZGUgPSBjb21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudDtcblxuXHRcdC8vIGRlZmF1bHQgc3R5bGUgZm9yIG5vZGVcblx0XHR0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHJvb3ROb2RlLCAncG9zaXRpb24nLCAnYWJzb2x1dGUnKTtcblx0XHR0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHJvb3ROb2RlLCAnZGlzcGxheScsICdibG9jaycpO1xuXG5cdFx0Ly8gZGF0YSBhdHRyaWJ1dGVzXG5cdFx0dGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUocm9vdE5vZGUsICdkYXRhLW5vZGVpZCcsIG5vZGUuaWQpO1xuXG5cdFx0Ly8gc3Vic2NyaWJlIHRvIG5vZGUgY29vcmRpbmF0ZXNcblx0XHRub2RlLnNlbGVjdENvb3JkcygpLnN1YnNjcmliZSgoeyB4LCB5IH0pID0+IHtcblx0XHRcdHRoaXMucmVuZGVyZXIuc2V0U3R5bGUocm9vdE5vZGUsICdsZWZ0JywgYCR7eH1weGApO1xuXHRcdFx0dGhpcy5yZW5kZXJlci5zZXRTdHlsZShyb290Tm9kZSwgJ3RvcCcsIGAke3l9cHhgKTtcblx0XHR9KTtcblxuXHRcdG5vZGUuc2VsZWN0aW9uQ2hhbmdlcygpLnN1YnNjcmliZShlID0+IHtcblx0XHRcdGUuaXNTZWxlY3RlZCA/IHRoaXMucmVuZGVyZXIuYWRkQ2xhc3Mocm9vdE5vZGUsICdzZWxlY3RlZCcpIDogdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhyb290Tm9kZSwgJ3NlbGVjdGVkJyk7XG5cdFx0fSk7XG5cblx0XHRub2RlLm9uRW50aXR5RGVzdHJveSgpLnN1YnNjcmliZSgoLyoqIGUgKi8pID0+IHtcblx0XHRcdGNvbXBvbmVudFJlZi5kZXN0cm95KCk7XG5cdFx0fSk7XG5cblx0XHQvLyBhc3NpZ24gYWxsIHBhc3NlZCBwcm9wZXJ0aWVzIHRvIG5vZGUgaW5pdGlhbGl6YXRpb24uXG5cdFx0T2JqZWN0LmVudHJpZXMobm9kZSkuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG5cdFx0XHRjb21wb25lbnRSZWYuaW5zdGFuY2Vba2V5XSA9IHZhbHVlO1xuXHRcdH0pO1xuXG5cdFx0Y29tcG9uZW50UmVmLmluc3RhbmNlLmRpYWdyYW1FbmdpbmUgPSBkaWFncmFtRW5naW5lO1xuXG5cdFx0cmV0dXJuIGNvbXBvbmVudFJlZjtcblx0fVxuXG5cdGdldFJlY2lwZSgpOiBDb21wb25lbnRGYWN0b3J5PERlZmF1bHROb2RlQ29tcG9uZW50PiB7XG5cdFx0cmV0dXJuIHRoaXMucmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoRGVmYXVsdE5vZGVDb21wb25lbnQpO1xuXHR9XG5cblx0Z2V0TmV3SW5zdGFuY2UoaW5pdGlhbENvbmZpZz86IGFueSk6IERlZmF1bHROb2RlTW9kZWwge1xuXHRcdHJldHVybiBuZXcgRGVmYXVsdE5vZGVNb2RlbCgnZGVmYXVsdCcsIC4uLmluaXRpYWxDb25maWcpO1xuXHR9XG59XG4iXX0=