UNPKG

ngx-rx-if

Version:

An implementation of conditional reactive directive based on @ngrx/store (Redux)

2 lines (1 loc) 3.16 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("@angular/core"),require("@ngrx/store"),require("rxjs/add/operator/map"),require("rxjs/add/operator/distinctUntilChanged")):"function"==typeof define&&define.amd?define(["@angular/core","@ngrx/store","rxjs/add/operator/map","rxjs/add/operator/distinctUntilChanged"],t):(e.ngx=e.ngx||{},e.ngx.rx=e.ngx.rx||{},e.ngx.rx.if=t(e.ng.core,e.ngrx.store,e.rxjs.add.operator.map,e.rxjs.add.operator.distinctUntilChanged))}(this,function(e,t,n,r){"use strict";function o(e,t){return t={exports:{}},e(t,t.exports),t.exports}e="default"in e?e.default:e,t="default"in t?t.default:t,n="default"in n?n.default:n,r="default"in r?r.default:r;var i=o(function(t,n){Object.defineProperty(n,"__esModule",{value:!0});var r=e,o=function(){function e(){}return e}();o.decorators=[{type:r.Component,args:[{selector:"rx-if-message",template:'<span class="rx-if-message">{{ message }}</span>',encapsulation:r.ViewEncapsulation.None}]}],o.ctorParameters=function(){return[]},o.propDecorators={message:[{type:r.Input}]},n.RxIfElseMessageComponent=o}),s=o(function(n,r){Object.defineProperty(r,"__esModule",{value:!0});var o=e,s=t,a=i,u=function(){function e(e,t,n,r){this._viewContainer=e,this.templateRef=t,this.store=n,this.componentFactoryResolver=r}return Object.defineProperty(e.prototype,"rxIf",{set:function(e){var t=this;this.config=e,this.ngOnDestroy(),this.subscription=this.store.select(function(e){return t.extractBindingFromState(e)}).map(Boolean).distinctUntilChanged().subscribe(function(e){return t.updateView(e)})},enumerable:!0,configurable:!0}),e.prototype.ngOnDestroy=function(){this.subscription&&this.subscription.unsubscribe()},e.prototype.updateView=function(e){if(void 0!==e&&null!==e)if(this._viewContainer.clear(),e)this._viewContainer.createEmbeddedView(this.templateRef);else{var t=this._viewContainer.createComponent(this.componentFactoryResolver.resolveComponentFactory(this.config.elseMsg?a.RxIfElseMessageComponent:this.config.elseMsgCmp));this.config.elseMsg?t.instance.message=this.config.elseMsg:t.instance.ctx=this.config.elseMsgCmpCtx}},e.prototype.extractBindingFromState=function(e){return this.config.bindTo.split(".").reduce(function(t,n){return"string"==typeof t?e&&e[t]?e[t][n]:null:t?t[n]:null})},e}();u.decorators=[{type:o.Directive,args:[{selector:"[rxIf]"}]}],u.ctorParameters=function(){return[{type:o.ViewContainerRef},{type:o.TemplateRef},{type:s.Store},{type:o.ComponentFactoryResolver}]},u.propDecorators={rxIf:[{type:o.Input}]},r.RxIfDirective=u}),a=o(function(t,n){Object.defineProperty(n,"__esModule",{value:!0});var r=e,o=s,a=i,u=function(){function e(){}return e.forRoot=function(){return{ngModule:e}},e}();u.decorators=[{type:r.NgModule,args:[{declarations:[o.RxIfDirective,a.RxIfElseMessageComponent],entryComponents:[a.RxIfElseMessageComponent],exports:[o.RxIfDirective]}]}],u.ctorParameters=function(){return[]},n.RxIfModule=u}),u=o(function(e,t){function n(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}Object.defineProperty(t,"__esModule",{value:!0}),n(s),n(a)});return function(e){return e&&e.__esModule?e.default:e}(u)});