@soeren_balke/ng-builder
Version:
This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 10.0.1. The ng-builder is a module to dynamicly build components. This Tool wrapps the angular viewContainerRef. The Components are easy to develop and use with
2 lines • 2.85 kB
JavaScript
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core")):"function"==typeof define&&define.amd?define("@soeren_balke/ng-builder",["exports","@angular/core"],t):t(((e=e||self).soeren_balke=e.soeren_balke||{},e.soeren_balke["ng-builder"]={}),e.ng.core)}(this,(function(e,t){"use strict";var n=function(e){this.viewContainerRef=e};n.decorators=[{type:t.Directive,args:[{selector:"[libBuilder]"}]}],n.ctorParameters=function(){return[{type:t.ViewContainerRef}]};var o=function(){function e(e){this.componentFactoryResolver=e,this.saveComponent=new t.EventEmitter}return Object.defineProperty(e.prototype,"_componentList",{set:function(e){e&&(this.componentList=e)},enumerable:!1,configurable:!0}),e.prototype.ngOnInit=function(){this.viewContainerRef=this.builder.viewContainerRef,this.renderdComonentList=[],this.componentList&&this.componentList.length>0&&this.update()},e.prototype.generateComponentList=function(){this.update()},e.prototype.update=function(){for(var e in this.componentList)this.loadComponent(this.componentList[e],e);for(var t=this.renderdComonentList.length-1;t>=0;t--)this.componentList.includes(this.renderdComonentList[t])||(this.viewContainerRef.get(t)&&this.viewContainerRef.remove(t),this.renderdComonentList.splice(t,1))},e.prototype.clearComponentList=function(){this.viewContainerRef.clear(),this.renderdComonentList=[]},e.prototype.loadComponent=function(e,t){var n=this;if(this.renderdComonentList.includes(e)){var o=this.renderdComonentList.indexOf(e);if(t===o)return;var i=this.viewContainerRef.get(o);return this.viewContainerRef.move(i,t),this.renderdComonentList.splice(o,1),void this.renderdComonentList.splice(t,0,e)}var r=this.componentFactoryResolver.resolveComponentFactory(e.component),s=this.viewContainerRef.createComponent(r,t).instance;e.data&&(s.data=e.data),s.edit=e.edit,s.saveEdit.subscribe((function(o){n.saveComponent.emit({index:t,component:e,data:o})})),this.renderdComonentList.splice(t,0,e)},e}();o.decorators=[{type:t.Component,args:[{selector:"lib-ng-builder",template:"\n <ng-template libBuilder>\n </ng-template>\n "}]}],o.ctorParameters=function(){return[{type:t.ComponentFactoryResolver}]},o.propDecorators={_componentList:[{type:t.Input,args:["componentList"]}],saveComponent:[{type:t.Output}],builder:[{type:t.ViewChild,args:[n,{static:!0}]}]};var i=function(){};i.decorators=[{type:t.NgModule,args:[{imports:[],declarations:[o,n],exports:[o]}]}];var r=function(){this.saveEdit=new t.EventEmitter};r.decorators=[{type:t.Directive}],r.ctorParameters=function(){return[]},r.propDecorators={data:[{type:t.Input}],edit:[{type:t.Input}],saveEdit:[{type:t.Output}]},e.Builder=r,e.NgBuilderComponent=o,e.NgBuilderModule=i,e.ɵa=n,Object.defineProperty(e,"__esModule",{value:!0})}));
//# sourceMappingURL=soeren_balke-ng-builder.umd.min.js.map