ngx-feature-toggle
Advanced tools
Comparing version 7.4.4 to 7.4.5
@@ -239,3 +239,3 @@ (function (global, factory) { | ||
FeatureToggleDirective.prototype.ngDoCheck = function () { | ||
if (this.isOn !== featureToggleService.isOn(this.featureToggle)) { | ||
if (this.isOn !== this.isOnCheck(this.featureToggle)) { | ||
this.shouldRender(); | ||
@@ -245,3 +245,3 @@ } | ||
FeatureToggleDirective.prototype.shouldRender = function () { | ||
this.isOn = featureToggleService.isOn(this.featureToggle); | ||
this.isOn = this.isOnCheck(this.featureToggle); | ||
if (this.isOn) { | ||
@@ -254,2 +254,17 @@ this.viewContainer.createEmbeddedView(this.templateRef); | ||
}; | ||
FeatureToggleDirective.prototype.isOnCheck = function (featureToggle) { | ||
var DEV_MODE = core.isDevMode(); | ||
var isFeatureToggleOn = function (toggle) { | ||
return toggle[0] === '!' ? !featureToggleService.isOn(toggle.replace('!', '')) : featureToggleService.isOn(toggle); | ||
}; | ||
if (typeof featureToggle === 'string') { | ||
return isFeatureToggleOn(featureToggle); | ||
} | ||
else if (Array.isArray(featureToggle)) { | ||
return featureToggle.every(isFeatureToggleOn); | ||
} | ||
else if (DEV_MODE) { | ||
console.error('`NgxFeatureToggle`: `featureToggle` should receive an array or an string as a value.'); | ||
} | ||
}; | ||
FeatureToggleDirective.ctorParameters = function () { return [ | ||
@@ -261,3 +276,3 @@ { type: core.TemplateRef }, | ||
core.Input(), | ||
__metadata("design:type", String) | ||
__metadata("design:type", Object) | ||
], FeatureToggleDirective.prototype, "featureToggle", void 0); | ||
@@ -275,47 +290,2 @@ FeatureToggleDirective = __decorate([ | ||
var FeatureToggleWhenDisabledDirective = /** @class */ (function () { | ||
function FeatureToggleWhenDisabledDirective(templateRef, viewContainer) { | ||
this.templateRef = templateRef; | ||
this.viewContainer = viewContainer; | ||
this.isOn = false; | ||
} | ||
FeatureToggleWhenDisabledDirective.prototype.ngOnInit = function () { | ||
if (!this.featureToggleWhenDisabled) { | ||
throw new Error('Attribute `featureToggleWhenDisabled` should not be null or empty'); | ||
} | ||
this.shouldRender(); | ||
}; | ||
FeatureToggleWhenDisabledDirective.prototype.ngDoCheck = function () { | ||
if (this.isOn !== featureToggleService.isOn(this.featureToggleWhenDisabled)) { | ||
this.shouldRender(); | ||
} | ||
}; | ||
FeatureToggleWhenDisabledDirective.prototype.shouldRender = function () { | ||
this.isOn = featureToggleService.isOn(this.featureToggleWhenDisabled); | ||
if (!this.isOn) { | ||
this.viewContainer.createEmbeddedView(this.templateRef); | ||
} | ||
else { | ||
this.viewContainer.clear(); | ||
} | ||
}; | ||
FeatureToggleWhenDisabledDirective.ctorParameters = function () { return [ | ||
{ type: core.TemplateRef }, | ||
{ type: core.ViewContainerRef } | ||
]; }; | ||
__decorate([ | ||
core.Input(), | ||
__metadata("design:type", String) | ||
], FeatureToggleWhenDisabledDirective.prototype, "featureToggleWhenDisabled", void 0); | ||
FeatureToggleWhenDisabledDirective = __decorate([ | ||
core.Directive({ | ||
// tslint:disable-next-line: directive-selector | ||
selector: '[featureToggleWhenDisabled]', | ||
}), | ||
__metadata("design:paramtypes", [core.TemplateRef, | ||
core.ViewContainerRef]) | ||
], FeatureToggleWhenDisabledDirective); | ||
return FeatureToggleWhenDisabledDirective; | ||
}()); | ||
var FeatureToggleProviderComponent = /** @class */ (function () { | ||
@@ -359,4 +329,4 @@ function FeatureToggleProviderComponent() { | ||
core.NgModule({ | ||
declarations: [FeatureToggleProviderComponent, FeatureToggleDirective, FeatureToggleWhenDisabledDirective], | ||
exports: [FeatureToggleProviderComponent, FeatureToggleDirective, FeatureToggleWhenDisabledDirective], | ||
declarations: [FeatureToggleProviderComponent, FeatureToggleDirective], | ||
exports: [FeatureToggleProviderComponent, FeatureToggleDirective], | ||
imports: [common.CommonModule], | ||
@@ -382,12 +352,15 @@ }) | ||
} | ||
if (!Array.isArray(route.data.featureToggle)) { | ||
if (DEV_MODE) { | ||
console.error('`NgxFeatureToggleCanActivateGuard` need to receive `featureToggle` as data as an array in your route configuration.'); | ||
} | ||
return false; | ||
var isFeatureToggleOn = function (toggle) { | ||
return toggle[0] === '!' ? !featureToggleService.isOn(toggle.replace('!', '')) : featureToggleService.isOn(toggle); | ||
}; | ||
if (typeof route.data.featureToggle === 'string') { | ||
return isFeatureToggleOn(route.data.featureToggle); | ||
} | ||
var userCanAccess = route.data.featureToggle.every(function (toggle) { | ||
return toggle[0] === '!' ? !featureToggleService.isOn(toggle.replace('!', '')) : featureToggleService.isOn(toggle); | ||
}); | ||
return userCanAccess; | ||
else if (Array.isArray(route.data.featureToggle)) { | ||
return route.data.featureToggle.every(isFeatureToggleOn); | ||
} | ||
if (DEV_MODE) { | ||
console.error('`NgxFeatureToggleCanActivateGuard` need to receive `featureToggle` as data as an array or string in your route configuration.'); | ||
} | ||
return false; | ||
}; | ||
@@ -415,12 +388,15 @@ NgxFeatureToggleCanActivateGuard.ɵprov = core.ɵɵdefineInjectable({ factory: function NgxFeatureToggleCanActivateGuard_Factory() { return new NgxFeatureToggleCanActivateGuard(); }, token: NgxFeatureToggleCanActivateGuard, providedIn: "root" }); | ||
} | ||
if (!Array.isArray(route.data.featureToggle)) { | ||
if (DEV_MODE) { | ||
console.error('`NgxFeatureToggleCanActivateChildGuard` need to receive `featureToggle` as data as an array in your route configuration.'); | ||
} | ||
return false; | ||
var isFeatureToggleOn = function (toggle) { | ||
return toggle[0] === '!' ? !featureToggleService.isOn(toggle.replace('!', '')) : featureToggleService.isOn(toggle); | ||
}; | ||
if (typeof route.data.featureToggle === 'string') { | ||
return isFeatureToggleOn(route.data.featureToggle); | ||
} | ||
var userCanAccess = route.data.featureToggle.every(function (toggle) { | ||
return toggle[0] === '!' ? !featureToggleService.isOn(toggle.replace('!', '')) : featureToggleService.isOn(toggle); | ||
}); | ||
return userCanAccess; | ||
else if (Array.isArray(route.data.featureToggle)) { | ||
return route.data.featureToggle.every(isFeatureToggleOn); | ||
} | ||
if (DEV_MODE) { | ||
console.error('`NgxFeatureToggleCanActivateChildGuard` need to receive `featureToggle` as data as an array or string in your route configuration.'); | ||
} | ||
return false; | ||
}; | ||
@@ -448,12 +424,15 @@ NgxFeatureToggleCanActivateChildGuard.ɵprov = core.ɵɵdefineInjectable({ factory: function NgxFeatureToggleCanActivateChildGuard_Factory() { return new NgxFeatureToggleCanActivateChildGuard(); }, token: NgxFeatureToggleCanActivateChildGuard, providedIn: "root" }); | ||
} | ||
if (!Array.isArray(route.data.featureToggle)) { | ||
if (DEV_MODE) { | ||
console.error('`NgxFeatureToggleCanLoadGuard` need to receive `featureToggle` as data as an array in your route configuration.'); | ||
} | ||
return false; | ||
var isFeatureToggleOn = function (toggle) { | ||
return toggle[0] === '!' ? !featureToggleService.isOn(toggle.replace('!', '')) : featureToggleService.isOn(toggle); | ||
}; | ||
if (typeof route.data.featureToggle === 'string') { | ||
return isFeatureToggleOn(route.data.featureToggle); | ||
} | ||
var userCanAccess = route.data.featureToggle.every(function (toggle) { | ||
return toggle[0] === '!' ? !featureToggleService.isOn(toggle.replace('!', '')) : featureToggleService.isOn(toggle); | ||
}); | ||
return userCanAccess; | ||
else if (Array.isArray(route.data.featureToggle)) { | ||
return route.data.featureToggle.every(isFeatureToggleOn); | ||
} | ||
if (DEV_MODE) { | ||
console.error('`NgxFeatureToggleCanLoadGuard` need to receive `featureToggle` as data as an array or string in your route configuration.'); | ||
} | ||
return false; | ||
}; | ||
@@ -470,3 +449,2 @@ NgxFeatureToggleCanLoadGuard.ɵprov = core.ɵɵdefineInjectable({ factory: function NgxFeatureToggleCanLoadGuard_Factory() { return new NgxFeatureToggleCanLoadGuard(); }, token: NgxFeatureToggleCanLoadGuard, providedIn: "root" }); | ||
exports.FeatureToggleProviderComponent = FeatureToggleProviderComponent; | ||
exports.FeatureToggleWhenDisabledDirective = FeatureToggleWhenDisabledDirective; | ||
exports.NgxFeatureToggleCanActivateChildGuard = NgxFeatureToggleCanActivateChildGuard; | ||
@@ -473,0 +451,0 @@ exports.NgxFeatureToggleCanActivateGuard = NgxFeatureToggleCanActivateGuard; |
@@ -15,3 +15,3 @@ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("feature-toggle-service"),require("@angular/common")):"function"==typeof define&&define.amd?define("ngx-feature-toggle",["exports","@angular/core","feature-toggle-service","@angular/common"],t):t((e=e||self)["ngx-feature-toggle"]={},e.ng.core,e.FeatureToggleService,e.ng.common)}(this,(function(e,t,r,o){"use strict"; | ||
PERFORMANCE OF THIS SOFTWARE. | ||
***************************************************************************** */function n(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var u=e.length-1;u>=0;u--)(n=e[u])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a}function i(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}var a=function(){function e(e,t){this.templateRef=e,this.viewContainer=t,this.isOn=!1}return e.prototype.ngOnInit=function(){if(!this.featureToggle)throw new Error("Attribute `featureToggle` should not be null or empty");this.shouldRender()},e.prototype.ngDoCheck=function(){this.isOn!==r.isOn(this.featureToggle)&&this.shouldRender()},e.prototype.shouldRender=function(){this.isOn=r.isOn(this.featureToggle),this.isOn?this.viewContainer.createEmbeddedView(this.templateRef):this.viewContainer.clear()},e.ctorParameters=function(){return[{type:t.TemplateRef},{type:t.ViewContainerRef}]},n([t.Input(),i("design:type",String)],e.prototype,"featureToggle",void 0),e=n([t.Directive({selector:"[featureToggle]"}),i("design:paramtypes",[t.TemplateRef,t.ViewContainerRef])],e)}(),u=function(){function e(e,t){this.templateRef=e,this.viewContainer=t,this.isOn=!1}return e.prototype.ngOnInit=function(){if(!this.featureToggleWhenDisabled)throw new Error("Attribute `featureToggleWhenDisabled` should not be null or empty");this.shouldRender()},e.prototype.ngDoCheck=function(){this.isOn!==r.isOn(this.featureToggleWhenDisabled)&&this.shouldRender()},e.prototype.shouldRender=function(){this.isOn=r.isOn(this.featureToggleWhenDisabled),this.isOn?this.viewContainer.clear():this.viewContainer.createEmbeddedView(this.templateRef)},e.ctorParameters=function(){return[{type:t.TemplateRef},{type:t.ViewContainerRef}]},n([t.Input(),i("design:type",String)],e.prototype,"featureToggleWhenDisabled",void 0),e=n([t.Directive({selector:"[featureToggleWhenDisabled]"}),i("design:paramtypes",[t.TemplateRef,t.ViewContainerRef])],e)}(),g=function(){function e(){this.features={},this.currentConfig={}}return e.prototype.ngOnInit=function(){if("object"!=typeof this.features)throw new Error("Attribute `features` should not be null or empty");this.setFeatureToggles()},e.prototype.ngDoCheck=function(){this.setFeatureToggles()},e.prototype.setFeatureToggles=function(){this.currentConfig!==this.features&&(this.currentConfig=this.features,r.set(this.features))},n([t.Input(),i("design:type",Object)],e.prototype,"features",void 0),e=n([t.Component({selector:"feature-toggle-provider",template:"\n <ng-content></ng-content>\n "})],e)}(),s=function(){function e(){}return e=n([t.NgModule({declarations:[g,a,u],exports:[g,a,u],imports:[o.CommonModule]})],e)}(),f=function(){function e(){}return e.prototype.isDevMode=function(){return t.isDevMode()},e.prototype.canActivate=function(e){var t=this.isDevMode();return e&&e.data&&e.data.featureToggle?Array.isArray(e.data.featureToggle)?e.data.featureToggle.every((function(e){return"!"===e[0]?!r.isOn(e.replace("!","")):r.isOn(e)})):(t&&console.error("`NgxFeatureToggleCanActivateGuard` need to receive `featureToggle` as data as an array in your route configuration."),!1):(t&&console.error("`NgxFeatureToggleCanActivateGuard` need to receive `featureToggle` as data in your route configuration."),!1)},e.ɵprov=t.ɵɵdefineInjectable({factory:function(){return new e},token:e,providedIn:"root"}),e=n([t.Injectable({providedIn:"root"})],e)}(),c=function(){function e(){}return e.prototype.isDevMode=function(){return t.isDevMode()},e.prototype.canActivateChild=function(e){var t=this.isDevMode();return e&&e.data&&e.data.featureToggle?Array.isArray(e.data.featureToggle)?e.data.featureToggle.every((function(e){return"!"===e[0]?!r.isOn(e.replace("!","")):r.isOn(e)})):(t&&console.error("`NgxFeatureToggleCanActivateChildGuard` need to receive `featureToggle` as data as an array in your route configuration."),!1):(t&&console.error("`NgxFeatureToggleCanActivateChildGuard` need to receive `featureToggle` as data in your route configuration."),!1)},e.ɵprov=t.ɵɵdefineInjectable({factory:function(){return new e},token:e,providedIn:"root"}),e=n([t.Injectable({providedIn:"root"})],e)}(),l=function(){function e(){}return e.prototype.isDevMode=function(){return t.isDevMode()},e.prototype.canLoad=function(e){var t=this.isDevMode();return e&&e.data&&e.data.featureToggle?Array.isArray(e.data.featureToggle)?e.data.featureToggle.every((function(e){return"!"===e[0]?!r.isOn(e.replace("!","")):r.isOn(e)})):(t&&console.error("`NgxFeatureToggleCanLoadGuard` need to receive `featureToggle` as data as an array in your route configuration."),!1):(t&&console.error("`NgxFeatureToggleCanLoadGuard` need to receive `featureToggle` as data in your route configuration."),!1)},e.ɵprov=t.ɵɵdefineInjectable({factory:function(){return new e},token:e,providedIn:"root"}),e=n([t.Injectable({providedIn:"root"})],e)}();e.FeatureToggleDirective=a,e.FeatureToggleModule=s,e.FeatureToggleProviderComponent=g,e.FeatureToggleWhenDisabledDirective=u,e.NgxFeatureToggleCanActivateChildGuard=c,e.NgxFeatureToggleCanActivateGuard=f,e.NgxFeatureToggleCanLoadGuard=l,Object.defineProperty(e,"__esModule",{value:!0})})); | ||
***************************************************************************** */function n(e,t,r,o){var n,a=arguments.length,i=a<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,r,o);else for(var u=e.length-1;u>=0;u--)(n=e[u])&&(i=(a<3?n(i):a>3?n(t,r,i):n(t,r))||i);return a>3&&i&&Object.defineProperty(t,r,i),i}function a(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}var i=function(){function e(e,t){this.templateRef=e,this.viewContainer=t,this.isOn=!1}return e.prototype.ngOnInit=function(){if(!this.featureToggle)throw new Error("Attribute `featureToggle` should not be null or empty");this.shouldRender()},e.prototype.ngDoCheck=function(){this.isOn!==this.isOnCheck(this.featureToggle)&&this.shouldRender()},e.prototype.shouldRender=function(){this.isOn=this.isOnCheck(this.featureToggle),this.isOn?this.viewContainer.createEmbeddedView(this.templateRef):this.viewContainer.clear()},e.prototype.isOnCheck=function(e){var o=t.isDevMode(),n=function(e){return"!"===e[0]?!r.isOn(e.replace("!","")):r.isOn(e)};return"string"==typeof e?n(e):Array.isArray(e)?e.every(n):void(o&&console.error("`NgxFeatureToggle`: `featureToggle` should receive an array or an string as a value."))},e.ctorParameters=function(){return[{type:t.TemplateRef},{type:t.ViewContainerRef}]},n([t.Input(),a("design:type",Object)],e.prototype,"featureToggle",void 0),e=n([t.Directive({selector:"[featureToggle]"}),a("design:paramtypes",[t.TemplateRef,t.ViewContainerRef])],e)}(),u=function(){function e(){this.features={},this.currentConfig={}}return e.prototype.ngOnInit=function(){if("object"!=typeof this.features)throw new Error("Attribute `features` should not be null or empty");this.setFeatureToggles()},e.prototype.ngDoCheck=function(){this.setFeatureToggles()},e.prototype.setFeatureToggles=function(){this.currentConfig!==this.features&&(this.currentConfig=this.features,r.set(this.features))},n([t.Input(),a("design:type",Object)],e.prototype,"features",void 0),e=n([t.Component({selector:"feature-toggle-provider",template:"\n <ng-content></ng-content>\n "})],e)}(),g=function(){function e(){}return e=n([t.NgModule({declarations:[u,i],exports:[u,i],imports:[o.CommonModule]})],e)}(),f=function(){function e(){}return e.prototype.isDevMode=function(){return t.isDevMode()},e.prototype.canActivate=function(e){var t=this.isDevMode();if(!e||!e.data||!e.data.featureToggle)return t&&console.error("`NgxFeatureToggleCanActivateGuard` need to receive `featureToggle` as data in your route configuration."),!1;var o=function(e){return"!"===e[0]?!r.isOn(e.replace("!","")):r.isOn(e)};return"string"==typeof e.data.featureToggle?o(e.data.featureToggle):Array.isArray(e.data.featureToggle)?e.data.featureToggle.every(o):(t&&console.error("`NgxFeatureToggleCanActivateGuard` need to receive `featureToggle` as data as an array or string in your route configuration."),!1)},e.ɵprov=t.ɵɵdefineInjectable({factory:function(){return new e},token:e,providedIn:"root"}),e=n([t.Injectable({providedIn:"root"})],e)}(),c=function(){function e(){}return e.prototype.isDevMode=function(){return t.isDevMode()},e.prototype.canActivateChild=function(e){var t=this.isDevMode();if(!e||!e.data||!e.data.featureToggle)return t&&console.error("`NgxFeatureToggleCanActivateChildGuard` need to receive `featureToggle` as data in your route configuration."),!1;var o=function(e){return"!"===e[0]?!r.isOn(e.replace("!","")):r.isOn(e)};return"string"==typeof e.data.featureToggle?o(e.data.featureToggle):Array.isArray(e.data.featureToggle)?e.data.featureToggle.every(o):(t&&console.error("`NgxFeatureToggleCanActivateChildGuard` need to receive `featureToggle` as data as an array or string in your route configuration."),!1)},e.ɵprov=t.ɵɵdefineInjectable({factory:function(){return new e},token:e,providedIn:"root"}),e=n([t.Injectable({providedIn:"root"})],e)}(),s=function(){function e(){}return e.prototype.isDevMode=function(){return t.isDevMode()},e.prototype.canLoad=function(e){var t=this.isDevMode();if(!e||!e.data||!e.data.featureToggle)return t&&console.error("`NgxFeatureToggleCanLoadGuard` need to receive `featureToggle` as data in your route configuration."),!1;var o=function(e){return"!"===e[0]?!r.isOn(e.replace("!","")):r.isOn(e)};return"string"==typeof e.data.featureToggle?o(e.data.featureToggle):Array.isArray(e.data.featureToggle)?e.data.featureToggle.every(o):(t&&console.error("`NgxFeatureToggleCanLoadGuard` need to receive `featureToggle` as data as an array or string in your route configuration."),!1)},e.ɵprov=t.ɵɵdefineInjectable({factory:function(){return new e},token:e,providedIn:"root"}),e=n([t.Injectable({providedIn:"root"})],e)}();e.FeatureToggleDirective=i,e.FeatureToggleModule=g,e.FeatureToggleProviderComponent=u,e.NgxFeatureToggleCanActivateChildGuard=c,e.NgxFeatureToggleCanActivateGuard=f,e.NgxFeatureToggleCanLoadGuard=s,Object.defineProperty(e,"__esModule",{value:!0})})); | ||
//# sourceMappingURL=ngx-feature-toggle.umd.min.js.map |
@@ -10,2 +10,50 @@ # Change Log | ||
## [7.4.5][] - 2020-06-13 | ||
### Added | ||
- Adding support for accept array or string as feature toggle configuration of | ||
- `NgxFeatureToggleCanLoadGuard` | ||
- `NgxFeatureToggleCanActivateGuard` | ||
- `NgxFeatureToggleCanActivateChildGuard` | ||
- `*featureToggle` now supports a string or an array of toggles to be checked | ||
```html | ||
<div | ||
class="feature-toggle-enabled-with-exclamation-mark" | ||
*featureToggle="'enableFirstText'" | ||
> | ||
Feature toggle is enabled if `enableFirstText` is true | ||
</div> | ||
<div | ||
class="feature-toggle-enabled-with-exclamation-mark" | ||
*featureToggle="['enableFirstText', 'enableSecondText']" | ||
> | ||
Feature toggle is enabled if both feature toggles are true | ||
</div> | ||
``` | ||
### Updated | ||
- Breaking changes: | ||
- `*featureToggleWhenDisabled` directive was removed since we can have the same behavior by using `*featureToggle` directive and passing `!` as a prefix for the feature toggle. | ||
```html | ||
<div | ||
class="feature-toggle-enabled-with-exclamation-mark" | ||
*featureToggle="'enableFirstText'" | ||
> | ||
Feature toggle is enabled | ||
</div> | ||
<div | ||
class="feature-toggle-enabled-with-exclamation-mark" | ||
*featureToggle="'!enableFirstText'" | ||
> | ||
Feature toggle disabled since it's enabled and it has <b>!</b> at front. | ||
</div> | ||
``` | ||
## [7.4.4][] - 2020-06-01 | ||
@@ -339,5 +387,7 @@ | ||
[7.4.3]: https://github.com/willmendesneto/ngx-feature-toggle/tree/v7.4.3 | ||
[unreleased]: https://github.com/willmendesneto/ngx-feature-toggle/compare/v7.4.4...HEAD | ||
[7.4.4]: https://github.com/willmendesneto/ngx-feature-toggle/tree/v7.4.4 | ||
[Unreleased]: https://github.com/willmendesneto/ngx-feature-toggle/compare/v7.4.4...HEAD | ||
[7.4.4]: https://github.com/willmendesneto/ngx-feature-toggle/tree/v7.4.4 | ||
[Unreleased]: https://github.com/willmendesneto/ngx-feature-toggle/compare/v7.4.5...HEAD | ||
[7.4.5]: https://github.com/willmendesneto/ngx-feature-toggle/tree/v7.4.5 |
@@ -17,10 +17,13 @@ import { __decorate } from "tslib"; | ||
} | ||
if (!Array.isArray(route.data.featureToggle)) { | ||
if (DEV_MODE) { | ||
console.error('`NgxFeatureToggleCanActivateChildGuard` need to receive `featureToggle` as data as an array in your route configuration.'); | ||
} | ||
return false; | ||
const isFeatureToggleOn = (toggle) => toggle[0] === '!' ? !isOn(toggle.replace('!', '')) : isOn(toggle); | ||
if (typeof route.data.featureToggle === 'string') { | ||
return isFeatureToggleOn(route.data.featureToggle); | ||
} | ||
const userCanAccess = route.data.featureToggle.every(toggle => toggle[0] === '!' ? !isOn(toggle.replace('!', '')) : isOn(toggle)); | ||
return userCanAccess; | ||
else if (Array.isArray(route.data.featureToggle)) { | ||
return route.data.featureToggle.every(isFeatureToggleOn); | ||
} | ||
if (DEV_MODE) { | ||
console.error('`NgxFeatureToggleCanActivateChildGuard` need to receive `featureToggle` as data as an array or string in your route configuration.'); | ||
} | ||
return false; | ||
} | ||
@@ -33,2 +36,2 @@ }; | ||
export { NgxFeatureToggleCanActivateChildGuard }; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWZlYXR1cmUtdG9nZ2xlLWNhbi1hY3RpdmF0ZS1jaGlsZC1ndWFyZC5yb3V0ZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtZmVhdHVyZS10b2dnbGUvIiwic291cmNlcyI6WyJsaWIvbmd4LWZlYXR1cmUtdG9nZ2xlLWNhbi1hY3RpdmF0ZS1jaGlsZC1ndWFyZC5yb3V0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3RELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFHOUMsSUFBYSxxQ0FBcUMsR0FBbEQsTUFBYSxxQ0FBcUM7SUFDaEQsU0FBUztRQUNQLE9BQU8sU0FBUyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQXFDO1FBQ3BELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3RELElBQUksUUFBUSxFQUFFO2dCQUNaLE9BQU8sQ0FBQyxLQUFLLENBQ1gsOEdBQThHLENBQy9HLENBQUM7YUFDSDtZQUNELE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFO1lBQzVDLElBQUksUUFBUSxFQUFFO2dCQUNaLE9BQU8sQ0FBQyxLQUFLLENBQ1gsMEhBQTBILENBQzNILENBQUM7YUFDSDtZQUNELE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxNQUFNLGFBQWEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FDNUQsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUNsRSxDQUFDO1FBRUYsT0FBTyxhQUFhLENBQUM7SUFDdkIsQ0FBQztDQUNGLENBQUE7O0FBL0JZLHFDQUFxQztJQURqRCxVQUFVLENBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUM7R0FDdEIscUNBQXFDLENBK0JqRDtTQS9CWSxxQ0FBcUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpc0Rldk1vZGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIFJvdXRlLCBDYW5BY3RpdmF0ZUNoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgaXNPbiB9IGZyb20gJ2ZlYXR1cmUtdG9nZ2xlLXNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIE5neEZlYXR1cmVUb2dnbGVDYW5BY3RpdmF0ZUNoaWxkR3VhcmQgaW1wbGVtZW50cyBDYW5BY3RpdmF0ZUNoaWxkIHtcbiAgaXNEZXZNb2RlKCkge1xuICAgIHJldHVybiBpc0Rldk1vZGUoKTtcbiAgfVxuXG4gIGNhbkFjdGl2YXRlQ2hpbGQocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QgfCBSb3V0ZSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IERFVl9NT0RFID0gdGhpcy5pc0Rldk1vZGUoKTtcbiAgICBpZiAoIXJvdXRlIHx8ICFyb3V0ZS5kYXRhIHx8ICFyb3V0ZS5kYXRhLmZlYXR1cmVUb2dnbGUpIHtcbiAgICAgIGlmIChERVZfTU9ERSkge1xuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICdgTmd4RmVhdHVyZVRvZ2dsZUNhbkFjdGl2YXRlQ2hpbGRHdWFyZGAgbmVlZCB0byByZWNlaXZlIGBmZWF0dXJlVG9nZ2xlYCBhcyBkYXRhIGluIHlvdXIgcm91dGUgY29uZmlndXJhdGlvbi4nLFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmICghQXJyYXkuaXNBcnJheShyb3V0ZS5kYXRhLmZlYXR1cmVUb2dnbGUpKSB7XG4gICAgICBpZiAoREVWX01PREUpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAnYE5neEZlYXR1cmVUb2dnbGVDYW5BY3RpdmF0ZUNoaWxkR3VhcmRgIG5lZWQgdG8gcmVjZWl2ZSBgZmVhdHVyZVRvZ2dsZWAgYXMgZGF0YSBhcyBhbiBhcnJheSBpbiB5b3VyIHJvdXRlIGNvbmZpZ3VyYXRpb24uJyxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCB1c2VyQ2FuQWNjZXNzID0gcm91dGUuZGF0YS5mZWF0dXJlVG9nZ2xlLmV2ZXJ5KHRvZ2dsZSA9PlxuICAgICAgdG9nZ2xlWzBdID09PSAnIScgPyAhaXNPbih0b2dnbGUucmVwbGFjZSgnIScsICcnKSkgOiBpc09uKHRvZ2dsZSksXG4gICAgKTtcblxuICAgIHJldHVybiB1c2VyQ2FuQWNjZXNzO1xuICB9XG59XG4iXX0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWZlYXR1cmUtdG9nZ2xlLWNhbi1hY3RpdmF0ZS1jaGlsZC1ndWFyZC5yb3V0ZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtZmVhdHVyZS10b2dnbGUvIiwic291cmNlcyI6WyJsaWIvbmd4LWZlYXR1cmUtdG9nZ2xlLWNhbi1hY3RpdmF0ZS1jaGlsZC1ndWFyZC5yb3V0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBT3RELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFHOUMsSUFBYSxxQ0FBcUMsR0FBbEQsTUFBYSxxQ0FBcUM7SUFDaEQsU0FBUztRQUNQLE9BQU8sU0FBUyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQXFDO1FBQ3BELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3RELElBQUksUUFBUSxFQUFFO2dCQUNaLE9BQU8sQ0FBQyxLQUFLLENBQ1gsOEdBQThHLENBQy9HLENBQUM7YUFDSDtZQUNELE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxNQUFNLGlCQUFpQixHQUFHLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FDbkMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXBFLElBQUksT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsS0FBSyxRQUFRLEVBQUU7WUFDaEQsT0FBTyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQXVCLENBQUMsQ0FBQztTQUM5RDthQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFO1lBQ2xELE9BQVEsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUEwQixDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1NBQ3hFO1FBRUQsSUFBSSxRQUFRLEVBQUU7WUFDWixPQUFPLENBQUMsS0FBSyxDQUNYLG9JQUFvSSxDQUNySSxDQUFDO1NBQ0g7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7Q0FDRixDQUFBOztBQWhDWSxxQ0FBcUM7SUFEakQsVUFBVSxDQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDO0dBQ3RCLHFDQUFxQyxDQWdDakQ7U0FoQ1kscUNBQXFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaXNEZXZNb2RlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LFxuICBSb3V0ZSxcbiAgQ2FuQWN0aXZhdGVDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgaXNPbiB9IGZyb20gJ2ZlYXR1cmUtdG9nZ2xlLXNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIE5neEZlYXR1cmVUb2dnbGVDYW5BY3RpdmF0ZUNoaWxkR3VhcmQgaW1wbGVtZW50cyBDYW5BY3RpdmF0ZUNoaWxkIHtcbiAgaXNEZXZNb2RlKCkge1xuICAgIHJldHVybiBpc0Rldk1vZGUoKTtcbiAgfVxuXG4gIGNhbkFjdGl2YXRlQ2hpbGQocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QgfCBSb3V0ZSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IERFVl9NT0RFID0gdGhpcy5pc0Rldk1vZGUoKTtcbiAgICBpZiAoIXJvdXRlIHx8ICFyb3V0ZS5kYXRhIHx8ICFyb3V0ZS5kYXRhLmZlYXR1cmVUb2dnbGUpIHtcbiAgICAgIGlmIChERVZfTU9ERSkge1xuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICdgTmd4RmVhdHVyZVRvZ2dsZUNhbkFjdGl2YXRlQ2hpbGRHdWFyZGAgbmVlZCB0byByZWNlaXZlIGBmZWF0dXJlVG9nZ2xlYCBhcyBkYXRhIGluIHlvdXIgcm91dGUgY29uZmlndXJhdGlvbi4nXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgaXNGZWF0dXJlVG9nZ2xlT24gPSAodG9nZ2xlKSA9PlxuICAgICAgdG9nZ2xlWzBdID09PSAnIScgPyAhaXNPbih0b2dnbGUucmVwbGFjZSgnIScsICcnKSkgOiBpc09uKHRvZ2dsZSk7XG5cbiAgICBpZiAodHlwZW9mIHJvdXRlLmRhdGEuZmVhdHVyZVRvZ2dsZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBpc0ZlYXR1cmVUb2dnbGVPbihyb3V0ZS5kYXRhLmZlYXR1cmVUb2dnbGUgYXMgc3RyaW5nKTtcbiAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkocm91dGUuZGF0YS5mZWF0dXJlVG9nZ2xlKSkge1xuICAgICAgcmV0dXJuIChyb3V0ZS5kYXRhLmZlYXR1cmVUb2dnbGUgYXMgc3RyaW5nW10pLmV2ZXJ5KGlzRmVhdHVyZVRvZ2dsZU9uKTtcbiAgICB9XG5cbiAgICBpZiAoREVWX01PREUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICdgTmd4RmVhdHVyZVRvZ2dsZUNhbkFjdGl2YXRlQ2hpbGRHdWFyZGAgbmVlZCB0byByZWNlaXZlIGBmZWF0dXJlVG9nZ2xlYCBhcyBkYXRhIGFzIGFuIGFycmF5IG9yIHN0cmluZyBpbiB5b3VyIHJvdXRlIGNvbmZpZ3VyYXRpb24uJ1xuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iXX0= |
@@ -17,10 +17,13 @@ import { __decorate } from "tslib"; | ||
} | ||
if (!Array.isArray(route.data.featureToggle)) { | ||
if (DEV_MODE) { | ||
console.error('`NgxFeatureToggleCanActivateGuard` need to receive `featureToggle` as data as an array in your route configuration.'); | ||
} | ||
return false; | ||
const isFeatureToggleOn = (toggle) => toggle[0] === '!' ? !isOn(toggle.replace('!', '')) : isOn(toggle); | ||
if (typeof route.data.featureToggle === 'string') { | ||
return isFeatureToggleOn(route.data.featureToggle); | ||
} | ||
const userCanAccess = route.data.featureToggle.every(toggle => toggle[0] === '!' ? !isOn(toggle.replace('!', '')) : isOn(toggle)); | ||
return userCanAccess; | ||
else if (Array.isArray(route.data.featureToggle)) { | ||
return route.data.featureToggle.every(isFeatureToggleOn); | ||
} | ||
if (DEV_MODE) { | ||
console.error('`NgxFeatureToggleCanActivateGuard` need to receive `featureToggle` as data as an array or string in your route configuration.'); | ||
} | ||
return false; | ||
} | ||
@@ -33,2 +36,2 @@ }; | ||
export { NgxFeatureToggleCanActivateGuard }; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWZlYXR1cmUtdG9nZ2xlLWNhbi1hY3RpdmF0ZS1ndWFyZC5yb3V0ZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtZmVhdHVyZS10b2dnbGUvIiwic291cmNlcyI6WyJsaWIvbmd4LWZlYXR1cmUtdG9nZ2xlLWNhbi1hY3RpdmF0ZS1ndWFyZC5yb3V0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3RELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFHOUMsSUFBYSxnQ0FBZ0MsR0FBN0MsTUFBYSxnQ0FBZ0M7SUFDM0MsU0FBUztRQUNQLE9BQU8sU0FBUyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFxQztRQUMvQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN0RCxJQUFJLFFBQVEsRUFBRTtnQkFDWixPQUFPLENBQUMsS0FBSyxDQUNYLHlHQUF5RyxDQUMxRyxDQUFDO2FBQ0g7WUFDRCxPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUM1QyxJQUFJLFFBQVEsRUFBRTtnQkFDWixPQUFPLENBQUMsS0FBSyxDQUNYLHFIQUFxSCxDQUN0SCxDQUFDO2FBQ0g7WUFDRCxPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQzVELE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FDbEUsQ0FBQztRQUVGLE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUM7Q0FDRixDQUFBOztBQS9CWSxnQ0FBZ0M7SUFENUMsVUFBVSxDQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDO0dBQ3RCLGdDQUFnQyxDQStCNUM7U0EvQlksZ0NBQWdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaXNEZXZNb2RlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBDYW5BY3RpdmF0ZSwgUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBpc09uIH0gZnJvbSAnZmVhdHVyZS10b2dnbGUtc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgTmd4RmVhdHVyZVRvZ2dsZUNhbkFjdGl2YXRlR3VhcmQgaW1wbGVtZW50cyBDYW5BY3RpdmF0ZSB7XG4gIGlzRGV2TW9kZSgpIHtcbiAgICByZXR1cm4gaXNEZXZNb2RlKCk7XG4gIH1cblxuICBjYW5BY3RpdmF0ZShyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCB8IFJvdXRlKTogYm9vbGVhbiB7XG4gICAgY29uc3QgREVWX01PREUgPSB0aGlzLmlzRGV2TW9kZSgpO1xuICAgIGlmICghcm91dGUgfHwgIXJvdXRlLmRhdGEgfHwgIXJvdXRlLmRhdGEuZmVhdHVyZVRvZ2dsZSkge1xuICAgICAgaWYgKERFVl9NT0RFKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgJ2BOZ3hGZWF0dXJlVG9nZ2xlQ2FuQWN0aXZhdGVHdWFyZGAgbmVlZCB0byByZWNlaXZlIGBmZWF0dXJlVG9nZ2xlYCBhcyBkYXRhIGluIHlvdXIgcm91dGUgY29uZmlndXJhdGlvbi4nLFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmICghQXJyYXkuaXNBcnJheShyb3V0ZS5kYXRhLmZlYXR1cmVUb2dnbGUpKSB7XG4gICAgICBpZiAoREVWX01PREUpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAnYE5neEZlYXR1cmVUb2dnbGVDYW5BY3RpdmF0ZUd1YXJkYCBuZWVkIHRvIHJlY2VpdmUgYGZlYXR1cmVUb2dnbGVgIGFzIGRhdGEgYXMgYW4gYXJyYXkgaW4geW91ciByb3V0ZSBjb25maWd1cmF0aW9uLicsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgdXNlckNhbkFjY2VzcyA9IHJvdXRlLmRhdGEuZmVhdHVyZVRvZ2dsZS5ldmVyeSh0b2dnbGUgPT5cbiAgICAgIHRvZ2dsZVswXSA9PT0gJyEnID8gIWlzT24odG9nZ2xlLnJlcGxhY2UoJyEnLCAnJykpIDogaXNPbih0b2dnbGUpLFxuICAgICk7XG5cbiAgICByZXR1cm4gdXNlckNhbkFjY2VzcztcbiAgfVxufVxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWZlYXR1cmUtdG9nZ2xlLWNhbi1hY3RpdmF0ZS1ndWFyZC5yb3V0ZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtZmVhdHVyZS10b2dnbGUvIiwic291cmNlcyI6WyJsaWIvbmd4LWZlYXR1cmUtdG9nZ2xlLWNhbi1hY3RpdmF0ZS1ndWFyZC5yb3V0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3RELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFHOUMsSUFBYSxnQ0FBZ0MsR0FBN0MsTUFBYSxnQ0FBZ0M7SUFDM0MsU0FBUztRQUNQLE9BQU8sU0FBUyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFxQztRQUMvQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN0RCxJQUFJLFFBQVEsRUFBRTtnQkFDWixPQUFPLENBQUMsS0FBSyxDQUNYLHlHQUF5RyxDQUMxRyxDQUFDO2FBQ0g7WUFDRCxPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQ25DLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVwRSxJQUFJLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLEtBQUssUUFBUSxFQUFFO1lBQ2hELE9BQU8saUJBQWlCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUF1QixDQUFDLENBQUM7U0FDOUQ7YUFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUNsRCxPQUFRLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBMEIsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUN4RTtRQUVELElBQUksUUFBUSxFQUFFO1lBQ1osT0FBTyxDQUFDLEtBQUssQ0FDWCwrSEFBK0gsQ0FDaEksQ0FBQztTQUNIO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBQ0YsQ0FBQTs7QUFoQ1ksZ0NBQWdDO0lBRDVDLFVBQVUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQztHQUN0QixnQ0FBZ0MsQ0FnQzVDO1NBaENZLGdDQUFnQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGlzRGV2TW9kZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgQ2FuQWN0aXZhdGUsIFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgaXNPbiB9IGZyb20gJ2ZlYXR1cmUtdG9nZ2xlLXNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIE5neEZlYXR1cmVUb2dnbGVDYW5BY3RpdmF0ZUd1YXJkIGltcGxlbWVudHMgQ2FuQWN0aXZhdGUge1xuICBpc0Rldk1vZGUoKSB7XG4gICAgcmV0dXJuIGlzRGV2TW9kZSgpO1xuICB9XG5cbiAgY2FuQWN0aXZhdGUocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QgfCBSb3V0ZSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IERFVl9NT0RFID0gdGhpcy5pc0Rldk1vZGUoKTtcbiAgICBpZiAoIXJvdXRlIHx8ICFyb3V0ZS5kYXRhIHx8ICFyb3V0ZS5kYXRhLmZlYXR1cmVUb2dnbGUpIHtcbiAgICAgIGlmIChERVZfTU9ERSkge1xuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICdgTmd4RmVhdHVyZVRvZ2dsZUNhbkFjdGl2YXRlR3VhcmRgIG5lZWQgdG8gcmVjZWl2ZSBgZmVhdHVyZVRvZ2dsZWAgYXMgZGF0YSBpbiB5b3VyIHJvdXRlIGNvbmZpZ3VyYXRpb24uJ1xuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IGlzRmVhdHVyZVRvZ2dsZU9uID0gKHRvZ2dsZSkgPT5cbiAgICAgIHRvZ2dsZVswXSA9PT0gJyEnID8gIWlzT24odG9nZ2xlLnJlcGxhY2UoJyEnLCAnJykpIDogaXNPbih0b2dnbGUpO1xuXG4gICAgaWYgKHR5cGVvZiByb3V0ZS5kYXRhLmZlYXR1cmVUb2dnbGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gaXNGZWF0dXJlVG9nZ2xlT24ocm91dGUuZGF0YS5mZWF0dXJlVG9nZ2xlIGFzIHN0cmluZyk7XG4gICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHJvdXRlLmRhdGEuZmVhdHVyZVRvZ2dsZSkpIHtcbiAgICAgIHJldHVybiAocm91dGUuZGF0YS5mZWF0dXJlVG9nZ2xlIGFzIHN0cmluZ1tdKS5ldmVyeShpc0ZlYXR1cmVUb2dnbGVPbik7XG4gICAgfVxuXG4gICAgaWYgKERFVl9NT0RFKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAnYE5neEZlYXR1cmVUb2dnbGVDYW5BY3RpdmF0ZUd1YXJkYCBuZWVkIHRvIHJlY2VpdmUgYGZlYXR1cmVUb2dnbGVgIGFzIGRhdGEgYXMgYW4gYXJyYXkgb3Igc3RyaW5nIGluIHlvdXIgcm91dGUgY29uZmlndXJhdGlvbi4nXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ== |
@@ -17,10 +17,13 @@ import { __decorate } from "tslib"; | ||
} | ||
if (!Array.isArray(route.data.featureToggle)) { | ||
if (DEV_MODE) { | ||
console.error('`NgxFeatureToggleCanLoadGuard` need to receive `featureToggle` as data as an array in your route configuration.'); | ||
} | ||
return false; | ||
const isFeatureToggleOn = (toggle) => toggle[0] === '!' ? !isOn(toggle.replace('!', '')) : isOn(toggle); | ||
if (typeof route.data.featureToggle === 'string') { | ||
return isFeatureToggleOn(route.data.featureToggle); | ||
} | ||
const userCanAccess = route.data.featureToggle.every(toggle => toggle[0] === '!' ? !isOn(toggle.replace('!', '')) : isOn(toggle)); | ||
return userCanAccess; | ||
else if (Array.isArray(route.data.featureToggle)) { | ||
return route.data.featureToggle.every(isFeatureToggleOn); | ||
} | ||
if (DEV_MODE) { | ||
console.error('`NgxFeatureToggleCanLoadGuard` need to receive `featureToggle` as data as an array or string in your route configuration.'); | ||
} | ||
return false; | ||
} | ||
@@ -33,2 +36,2 @@ }; | ||
export { NgxFeatureToggleCanLoadGuard }; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWZlYXR1cmUtdG9nZ2xlLWNhbi1sb2FkLWd1YXJkLnJvdXRlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1mZWF0dXJlLXRvZ2dsZS8iLCJzb3VyY2VzIjpbImxpYi9uZ3gtZmVhdHVyZS10b2dnbGUtY2FuLWxvYWQtZ3VhcmQucm91dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd0RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBRzlDLElBQWEsNEJBQTRCLEdBQXpDLE1BQWEsNEJBQTRCO0lBQ3ZDLFNBQVM7UUFDUCxPQUFPLFNBQVMsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxPQUFPLENBQUMsS0FBWTtRQUNsQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN0RCxJQUFJLFFBQVEsRUFBRTtnQkFDWixPQUFPLENBQUMsS0FBSyxDQUNYLHFHQUFxRyxDQUN0RyxDQUFDO2FBQ0g7WUFDRCxPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUM1QyxJQUFJLFFBQVEsRUFBRTtnQkFDWixPQUFPLENBQUMsS0FBSyxDQUNYLGlIQUFpSCxDQUNsSCxDQUFDO2FBQ0g7WUFDRCxPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQzVELE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FDbEUsQ0FBQztRQUVGLE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUM7Q0FDRixDQUFBOztBQS9CWSw0QkFBNEI7SUFEeEMsVUFBVSxDQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDO0dBQ3RCLDRCQUE0QixDQStCeEM7U0EvQlksNEJBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaXNEZXZNb2RlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZSwgQ2FuTG9hZCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IGlzT24gfSBmcm9tICdmZWF0dXJlLXRvZ2dsZS1zZXJ2aWNlJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBOZ3hGZWF0dXJlVG9nZ2xlQ2FuTG9hZEd1YXJkIGltcGxlbWVudHMgQ2FuTG9hZCB7XG4gIGlzRGV2TW9kZSgpIHtcbiAgICByZXR1cm4gaXNEZXZNb2RlKCk7XG4gIH1cblxuICBjYW5Mb2FkKHJvdXRlOiBSb3V0ZSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IERFVl9NT0RFID0gdGhpcy5pc0Rldk1vZGUoKTtcbiAgICBpZiAoIXJvdXRlIHx8ICFyb3V0ZS5kYXRhIHx8ICFyb3V0ZS5kYXRhLmZlYXR1cmVUb2dnbGUpIHtcbiAgICAgIGlmIChERVZfTU9ERSkge1xuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICdgTmd4RmVhdHVyZVRvZ2dsZUNhbkxvYWRHdWFyZGAgbmVlZCB0byByZWNlaXZlIGBmZWF0dXJlVG9nZ2xlYCBhcyBkYXRhIGluIHlvdXIgcm91dGUgY29uZmlndXJhdGlvbi4nLFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmICghQXJyYXkuaXNBcnJheShyb3V0ZS5kYXRhLmZlYXR1cmVUb2dnbGUpKSB7XG4gICAgICBpZiAoREVWX01PREUpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAnYE5neEZlYXR1cmVUb2dnbGVDYW5Mb2FkR3VhcmRgIG5lZWQgdG8gcmVjZWl2ZSBgZmVhdHVyZVRvZ2dsZWAgYXMgZGF0YSBhcyBhbiBhcnJheSBpbiB5b3VyIHJvdXRlIGNvbmZpZ3VyYXRpb24uJyxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCB1c2VyQ2FuQWNjZXNzID0gcm91dGUuZGF0YS5mZWF0dXJlVG9nZ2xlLmV2ZXJ5KHRvZ2dsZSA9PlxuICAgICAgdG9nZ2xlWzBdID09PSAnIScgPyAhaXNPbih0b2dnbGUucmVwbGFjZSgnIScsICcnKSkgOiBpc09uKHRvZ2dsZSksXG4gICAgKTtcblxuICAgIHJldHVybiB1c2VyQ2FuQWNjZXNzO1xuICB9XG59XG4iXX0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWZlYXR1cmUtdG9nZ2xlLWNhbi1sb2FkLWd1YXJkLnJvdXRlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1mZWF0dXJlLXRvZ2dsZS8iLCJzb3VyY2VzIjpbImxpYi9uZ3gtZmVhdHVyZS10b2dnbGUtY2FuLWxvYWQtZ3VhcmQucm91dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd0RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBRzlDLElBQWEsNEJBQTRCLEdBQXpDLE1BQWEsNEJBQTRCO0lBQ3ZDLFNBQVM7UUFDUCxPQUFPLFNBQVMsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxPQUFPLENBQUMsS0FBWTtRQUNsQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN0RCxJQUFJLFFBQVEsRUFBRTtnQkFDWixPQUFPLENBQUMsS0FBSyxDQUNYLHFHQUFxRyxDQUN0RyxDQUFDO2FBQ0g7WUFDRCxPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQ25DLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVwRSxJQUFJLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLEtBQUssUUFBUSxFQUFFO1lBQ2hELE9BQU8saUJBQWlCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUF1QixDQUFDLENBQUM7U0FDOUQ7YUFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUNsRCxPQUFRLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBMEIsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUN4RTtRQUVELElBQUksUUFBUSxFQUFFO1lBQ1osT0FBTyxDQUFDLEtBQUssQ0FDWCwySEFBMkgsQ0FDNUgsQ0FBQztTQUNIO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBQ0YsQ0FBQTs7QUFqQ1ksNEJBQTRCO0lBRHhDLFVBQVUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQztHQUN0Qiw0QkFBNEIsQ0FpQ3hDO1NBakNZLDRCQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGlzRGV2TW9kZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGUsIENhbkxvYWQgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBpc09uIH0gZnJvbSAnZmVhdHVyZS10b2dnbGUtc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgTmd4RmVhdHVyZVRvZ2dsZUNhbkxvYWRHdWFyZCBpbXBsZW1lbnRzIENhbkxvYWQge1xuICBpc0Rldk1vZGUoKSB7XG4gICAgcmV0dXJuIGlzRGV2TW9kZSgpO1xuICB9XG5cbiAgY2FuTG9hZChyb3V0ZTogUm91dGUpOiBib29sZWFuIHtcbiAgICBjb25zdCBERVZfTU9ERSA9IHRoaXMuaXNEZXZNb2RlKCk7XG4gICAgaWYgKCFyb3V0ZSB8fCAhcm91dGUuZGF0YSB8fCAhcm91dGUuZGF0YS5mZWF0dXJlVG9nZ2xlKSB7XG4gICAgICBpZiAoREVWX01PREUpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAnYE5neEZlYXR1cmVUb2dnbGVDYW5Mb2FkR3VhcmRgIG5lZWQgdG8gcmVjZWl2ZSBgZmVhdHVyZVRvZ2dsZWAgYXMgZGF0YSBpbiB5b3VyIHJvdXRlIGNvbmZpZ3VyYXRpb24uJ1xuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IGlzRmVhdHVyZVRvZ2dsZU9uID0gKHRvZ2dsZSkgPT5cbiAgICAgIHRvZ2dsZVswXSA9PT0gJyEnID8gIWlzT24odG9nZ2xlLnJlcGxhY2UoJyEnLCAnJykpIDogaXNPbih0b2dnbGUpO1xuXG4gICAgaWYgKHR5cGVvZiByb3V0ZS5kYXRhLmZlYXR1cmVUb2dnbGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gaXNGZWF0dXJlVG9nZ2xlT24ocm91dGUuZGF0YS5mZWF0dXJlVG9nZ2xlIGFzIHN0cmluZyk7XG4gICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHJvdXRlLmRhdGEuZmVhdHVyZVRvZ2dsZSkpIHtcbiAgICAgIHJldHVybiAocm91dGUuZGF0YS5mZWF0dXJlVG9nZ2xlIGFzIHN0cmluZ1tdKS5ldmVyeShpc0ZlYXR1cmVUb2dnbGVPbik7XG4gICAgfVxuXG4gICAgaWYgKERFVl9NT0RFKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAnYE5neEZlYXR1cmVUb2dnbGVDYW5Mb2FkR3VhcmRgIG5lZWQgdG8gcmVjZWl2ZSBgZmVhdHVyZVRvZ2dsZWAgYXMgZGF0YSBhcyBhbiBhcnJheSBvciBzdHJpbmcgaW4geW91ciByb3V0ZSBjb25maWd1cmF0aW9uLidcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iXX0= |
import { __decorate, __metadata } from "tslib"; | ||
import { Directive, Input, OnInit, TemplateRef, ViewContainerRef, DoCheck, } from '@angular/core'; | ||
import { Directive, Input, OnInit, TemplateRef, ViewContainerRef, DoCheck, isDevMode, } from '@angular/core'; | ||
import { isOn } from 'feature-toggle-service'; | ||
@@ -17,3 +17,3 @@ let FeatureToggleDirective = class FeatureToggleDirective { | ||
ngDoCheck() { | ||
if (this.isOn !== isOn(this.featureToggle)) { | ||
if (this.isOn !== this.isOnCheck(this.featureToggle)) { | ||
this.shouldRender(); | ||
@@ -23,3 +23,3 @@ } | ||
shouldRender() { | ||
this.isOn = isOn(this.featureToggle); | ||
this.isOn = this.isOnCheck(this.featureToggle); | ||
if (this.isOn) { | ||
@@ -32,2 +32,15 @@ this.viewContainer.createEmbeddedView(this.templateRef); | ||
} | ||
isOnCheck(featureToggle) { | ||
const DEV_MODE = isDevMode(); | ||
const isFeatureToggleOn = (toggle) => toggle[0] === '!' ? !isOn(toggle.replace('!', '')) : isOn(toggle); | ||
if (typeof featureToggle === 'string') { | ||
return isFeatureToggleOn(featureToggle); | ||
} | ||
else if (Array.isArray(featureToggle)) { | ||
return featureToggle.every(isFeatureToggleOn); | ||
} | ||
else if (DEV_MODE) { | ||
console.error('`NgxFeatureToggle`: `featureToggle` should receive an array or an string as a value.'); | ||
} | ||
} | ||
}; | ||
@@ -40,3 +53,3 @@ FeatureToggleDirective.ctorParameters = () => [ | ||
Input(), | ||
__metadata("design:type", String) | ||
__metadata("design:type", Object) | ||
], FeatureToggleDirective.prototype, "featureToggle", void 0); | ||
@@ -52,2 +65,2 @@ FeatureToggleDirective = __decorate([ | ||
export { FeatureToggleDirective }; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWZlYXR1cmUtdG9nZ2xlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1mZWF0dXJlLXRvZ2dsZS8iLCJzb3VyY2VzIjpbImxpYi9uZ3gtZmVhdHVyZS10b2dnbGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sV0FBVyxFQUNYLGdCQUFnQixFQUNoQixPQUFPLEdBQ1IsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBTzlDLElBQWEsc0JBQXNCLEdBQW5DLE1BQWEsc0JBQXNCO0lBS2pDLFlBQ1UsV0FBNkIsRUFDN0IsYUFBK0I7UUFEL0IsZ0JBQVcsR0FBWCxXQUFXLENBQWtCO1FBQzdCLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQUpqQyxTQUFJLEdBQUcsS0FBSyxDQUFDO0lBS2pCLENBQUM7SUFFTCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdkIsTUFBTSxJQUFJLEtBQUssQ0FBQyx1REFBdUQsQ0FBQyxDQUFDO1NBQzFFO1FBQ0QsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDMUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3JCO0lBQ0gsQ0FBQztJQUVPLFlBQVk7UUFDbEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3JDLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNiLElBQUksQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ3pEO2FBQU07WUFDTCxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQzVCO0lBQ0gsQ0FBQztDQUNGLENBQUE7O1lBekJ3QixXQUFXO1lBQ1QsZ0JBQWdCOztBQUxoQztJQUFSLEtBQUssRUFBRTs7NkRBQThCO0FBRjNCLHNCQUFzQjtJQUxsQyxTQUFTLENBQUM7UUFDVCwrQ0FBK0M7UUFDL0MsUUFBUSxFQUFFLGlCQUFpQjtLQUM1QixDQUFDO3FDQVF1QixXQUFXO1FBQ1QsZ0JBQWdCO0dBUDlCLHNCQUFzQixDQStCbEM7U0EvQlksc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NvbnRhaW5lclJlZixcbiAgRG9DaGVjayxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IGlzT24gfSBmcm9tICdmZWF0dXJlLXRvZ2dsZS1zZXJ2aWNlJztcblxuQERpcmVjdGl2ZSh7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogZGlyZWN0aXZlLXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnW2ZlYXR1cmVUb2dnbGVdJyxcbn0pXG5cbmV4cG9ydCBjbGFzcyBGZWF0dXJlVG9nZ2xlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBEb0NoZWNrIHtcblxuICBASW5wdXQoKSBwdWJsaWMgZmVhdHVyZVRvZ2dsZTogc3RyaW5nO1xuICBwcml2YXRlIGlzT24gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZlxuICApIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICghdGhpcy5mZWF0dXJlVG9nZ2xlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0F0dHJpYnV0ZSBgZmVhdHVyZVRvZ2dsZWAgc2hvdWxkIG5vdCBiZSBudWxsIG9yIGVtcHR5Jyk7XG4gICAgfVxuICAgIHRoaXMuc2hvdWxkUmVuZGVyKCk7XG4gIH1cblxuICBuZ0RvQ2hlY2soKSB7XG4gICAgaWYgKHRoaXMuaXNPbiAhPT0gaXNPbih0aGlzLmZlYXR1cmVUb2dnbGUpKSB7XG4gICAgICB0aGlzLnNob3VsZFJlbmRlcigpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2hvdWxkUmVuZGVyKCkge1xuICAgIHRoaXMuaXNPbiA9IGlzT24odGhpcy5mZWF0dXJlVG9nZ2xlKTtcbiAgICBpZiAodGhpcy5pc09uKSB7XG4gICAgICB0aGlzLnZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMudGVtcGxhdGVSZWYpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnZpZXdDb250YWluZXIuY2xlYXIoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWZlYXR1cmUtdG9nZ2xlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1mZWF0dXJlLXRvZ2dsZS8iLCJzb3VyY2VzIjpbImxpYi9uZ3gtZmVhdHVyZS10b2dnbGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sV0FBVyxFQUNYLGdCQUFnQixFQUNoQixPQUFPLEVBQ1AsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQU05QyxJQUFhLHNCQUFzQixHQUFuQyxNQUFhLHNCQUFzQjtJQUlqQyxZQUNVLFdBQTZCLEVBQzdCLGFBQStCO1FBRC9CLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQUM3QixrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFKakMsU0FBSSxHQUFHLEtBQUssQ0FBQztJQUtsQixDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQUMsdURBQXVELENBQUMsQ0FBQztTQUMxRTtRQUNELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUNwRCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDckI7SUFDSCxDQUFDO0lBRU8sWUFBWTtRQUNsQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQy9DLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNiLElBQUksQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ3pEO2FBQU07WUFDTCxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQzVCO0lBQ0gsQ0FBQztJQUVELFNBQVMsQ0FBQyxhQUFnQztRQUN4QyxNQUFNLFFBQVEsR0FBRyxTQUFTLEVBQUUsQ0FBQztRQUU3QixNQUFNLGlCQUFpQixHQUFHLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FDbkMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXBFLElBQUksT0FBTyxhQUFhLEtBQUssUUFBUSxFQUFFO1lBQ3JDLE9BQU8saUJBQWlCLENBQUMsYUFBdUIsQ0FBQyxDQUFDO1NBQ25EO2FBQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxFQUFFO1lBQ3ZDLE9BQVEsYUFBMEIsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUM3RDthQUFNLElBQUksUUFBUSxFQUFFO1lBQ25CLE9BQU8sQ0FBQyxLQUFLLENBQ1gsc0ZBQXNGLENBQ3ZGLENBQUM7U0FDSDtJQUNILENBQUM7Q0FDRixDQUFBOztZQTFDd0IsV0FBVztZQUNULGdCQUFnQjs7QUFMaEM7SUFBUixLQUFLLEVBQUU7OzZEQUF5QztBQUR0QyxzQkFBc0I7SUFKbEMsU0FBUyxDQUFDO1FBQ1QsK0NBQStDO1FBQy9DLFFBQVEsRUFBRSxpQkFBaUI7S0FDNUIsQ0FBQztxQ0FNdUIsV0FBVztRQUNULGdCQUFnQjtHQU45QixzQkFBc0IsQ0ErQ2xDO1NBL0NZLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIERvQ2hlY2ssXG4gIGlzRGV2TW9kZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IGlzT24gfSBmcm9tICdmZWF0dXJlLXRvZ2dsZS1zZXJ2aWNlJztcblxuQERpcmVjdGl2ZSh7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogZGlyZWN0aXZlLXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnW2ZlYXR1cmVUb2dnbGVdJyxcbn0pXG5leHBvcnQgY2xhc3MgRmVhdHVyZVRvZ2dsZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgRG9DaGVjayB7XG4gIEBJbnB1dCgpIHB1YmxpYyBmZWF0dXJlVG9nZ2xlOiBzdHJpbmdbXSB8IHN0cmluZztcbiAgcHJpdmF0ZSBpc09uID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PixcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWZcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICghdGhpcy5mZWF0dXJlVG9nZ2xlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0F0dHJpYnV0ZSBgZmVhdHVyZVRvZ2dsZWAgc2hvdWxkIG5vdCBiZSBudWxsIG9yIGVtcHR5Jyk7XG4gICAgfVxuICAgIHRoaXMuc2hvdWxkUmVuZGVyKCk7XG4gIH1cblxuICBuZ0RvQ2hlY2soKSB7XG4gICAgaWYgKHRoaXMuaXNPbiAhPT0gdGhpcy5pc09uQ2hlY2sodGhpcy5mZWF0dXJlVG9nZ2xlKSkge1xuICAgICAgdGhpcy5zaG91bGRSZW5kZXIoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNob3VsZFJlbmRlcigpIHtcbiAgICB0aGlzLmlzT24gPSB0aGlzLmlzT25DaGVjayh0aGlzLmZlYXR1cmVUb2dnbGUpO1xuICAgIGlmICh0aGlzLmlzT24pIHtcbiAgICAgIHRoaXMudmlld0NvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50ZW1wbGF0ZVJlZik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmlld0NvbnRhaW5lci5jbGVhcigpO1xuICAgIH1cbiAgfVxuXG4gIGlzT25DaGVjayhmZWF0dXJlVG9nZ2xlOiBzdHJpbmdbXSB8IHN0cmluZykge1xuICAgIGNvbnN0IERFVl9NT0RFID0gaXNEZXZNb2RlKCk7XG5cbiAgICBjb25zdCBpc0ZlYXR1cmVUb2dnbGVPbiA9ICh0b2dnbGUpID0+XG4gICAgICB0b2dnbGVbMF0gPT09ICchJyA/ICFpc09uKHRvZ2dsZS5yZXBsYWNlKCchJywgJycpKSA6IGlzT24odG9nZ2xlKTtcblxuICAgIGlmICh0eXBlb2YgZmVhdHVyZVRvZ2dsZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBpc0ZlYXR1cmVUb2dnbGVPbihmZWF0dXJlVG9nZ2xlIGFzIHN0cmluZyk7XG4gICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGZlYXR1cmVUb2dnbGUpKSB7XG4gICAgICByZXR1cm4gKGZlYXR1cmVUb2dnbGUgYXMgc3RyaW5nW10pLmV2ZXJ5KGlzRmVhdHVyZVRvZ2dsZU9uKTtcbiAgICB9IGVsc2UgaWYgKERFVl9NT0RFKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAnYE5neEZlYXR1cmVUb2dnbGVgOiBgZmVhdHVyZVRvZ2dsZWAgc2hvdWxkIHJlY2VpdmUgYW4gYXJyYXkgb3IgYW4gc3RyaW5nIGFzIGEgdmFsdWUuJ1xuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ== |
@@ -6,3 +6,2 @@ import { __decorate } from "tslib"; | ||
import { FeatureToggleDirective } from './ngx-feature-toggle.directive'; | ||
import { FeatureToggleWhenDisabledDirective } from './ngx-feature-toggle-when-disabled.directive'; | ||
let FeatureToggleModule = class FeatureToggleModule { | ||
@@ -12,4 +11,4 @@ }; | ||
NgModule({ | ||
declarations: [FeatureToggleProviderComponent, FeatureToggleDirective, FeatureToggleWhenDisabledDirective], | ||
exports: [FeatureToggleProviderComponent, FeatureToggleDirective, FeatureToggleWhenDisabledDirective], | ||
declarations: [FeatureToggleProviderComponent, FeatureToggleDirective], | ||
exports: [FeatureToggleProviderComponent, FeatureToggleDirective], | ||
imports: [CommonModule], | ||
@@ -19,2 +18,2 @@ }) | ||
export { FeatureToggleModule }; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWZlYXR1cmUtdG9nZ2xlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1mZWF0dXJlLXRvZ2dsZS8iLCJzb3VyY2VzIjpbImxpYi9uZ3gtZmVhdHVyZS10b2dnbGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN6RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQU9sRyxJQUFhLG1CQUFtQixHQUFoQyxNQUFhLG1CQUFtQjtDQUFJLENBQUE7QUFBdkIsbUJBQW1CO0lBTC9CLFFBQVEsQ0FBQztRQUNSLFlBQVksRUFBRSxDQUFDLDhCQUE4QixFQUFFLHNCQUFzQixFQUFFLGtDQUFrQyxDQUFDO1FBQzFHLE9BQU8sRUFBRSxDQUFDLDhCQUE4QixFQUFFLHNCQUFzQixFQUFFLGtDQUFrQyxDQUFDO1FBQ3JHLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztLQUN4QixDQUFDO0dBQ1csbUJBQW1CLENBQUk7U0FBdkIsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGZWF0dXJlVG9nZ2xlUHJvdmlkZXJDb21wb25lbnQgfSBmcm9tICcuL25neC1mZWF0dXJlLXRvZ2dsZS1wcm92aWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmVhdHVyZVRvZ2dsZURpcmVjdGl2ZSB9IGZyb20gJy4vbmd4LWZlYXR1cmUtdG9nZ2xlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGZWF0dXJlVG9nZ2xlV2hlbkRpc2FibGVkRGlyZWN0aXZlIH0gZnJvbSAnLi9uZ3gtZmVhdHVyZS10b2dnbGUtd2hlbi1kaXNhYmxlZC5kaXJlY3RpdmUnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtGZWF0dXJlVG9nZ2xlUHJvdmlkZXJDb21wb25lbnQsIEZlYXR1cmVUb2dnbGVEaXJlY3RpdmUsIEZlYXR1cmVUb2dnbGVXaGVuRGlzYWJsZWREaXJlY3RpdmVdLFxuICBleHBvcnRzOiBbRmVhdHVyZVRvZ2dsZVByb3ZpZGVyQ29tcG9uZW50LCBGZWF0dXJlVG9nZ2xlRGlyZWN0aXZlLCBGZWF0dXJlVG9nZ2xlV2hlbkRpc2FibGVkRGlyZWN0aXZlXSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIEZlYXR1cmVUb2dnbGVNb2R1bGUgeyB9XG4iXX0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWZlYXR1cmUtdG9nZ2xlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1mZWF0dXJlLXRvZ2dsZS8iLCJzb3VyY2VzIjpbImxpYi9uZ3gtZmVhdHVyZS10b2dnbGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN6RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQU94RSxJQUFhLG1CQUFtQixHQUFoQyxNQUFhLG1CQUFtQjtDQUFHLENBQUE7QUFBdEIsbUJBQW1CO0lBTC9CLFFBQVEsQ0FBQztRQUNSLFlBQVksRUFBRSxDQUFDLDhCQUE4QixFQUFFLHNCQUFzQixDQUFDO1FBQ3RFLE9BQU8sRUFBRSxDQUFDLDhCQUE4QixFQUFFLHNCQUFzQixDQUFDO1FBQ2pFLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztLQUN4QixDQUFDO0dBQ1csbUJBQW1CLENBQUc7U0FBdEIsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGZWF0dXJlVG9nZ2xlUHJvdmlkZXJDb21wb25lbnQgfSBmcm9tICcuL25neC1mZWF0dXJlLXRvZ2dsZS1wcm92aWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmVhdHVyZVRvZ2dsZURpcmVjdGl2ZSB9IGZyb20gJy4vbmd4LWZlYXR1cmUtdG9nZ2xlLmRpcmVjdGl2ZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW0ZlYXR1cmVUb2dnbGVQcm92aWRlckNvbXBvbmVudCwgRmVhdHVyZVRvZ2dsZURpcmVjdGl2ZV0sXG4gIGV4cG9ydHM6IFtGZWF0dXJlVG9nZ2xlUHJvdmlkZXJDb21wb25lbnQsIEZlYXR1cmVUb2dnbGVEaXJlY3RpdmVdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgRmVhdHVyZVRvZ2dsZU1vZHVsZSB7fVxuIl19 |
@@ -5,3 +5,2 @@ /* | ||
export * from './lib/ngx-feature-toggle.directive'; | ||
export * from './lib/ngx-feature-toggle-when-disabled.directive'; | ||
export * from './lib/ngx-feature-toggle-provider.component'; | ||
@@ -12,2 +11,2 @@ export * from './lib/ngx-feature-toggle.module'; | ||
export * from './lib/ngx-feature-toggle-can-load-guard.router'; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1mZWF0dXJlLXRvZ2dsZS8iLCJzb3VyY2VzIjpbInB1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYywwREFBMEQsQ0FBQztBQUN6RSxjQUFjLGdEQUFnRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBuZ3gtZmVhdHVyZS10b2dnbGVcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9uZ3gtZmVhdHVyZS10b2dnbGUuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL25neC1mZWF0dXJlLXRvZ2dsZS13aGVuLWRpc2FibGVkLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9uZ3gtZmVhdHVyZS10b2dnbGUtcHJvdmlkZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL25neC1mZWF0dXJlLXRvZ2dsZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbmd4LWZlYXR1cmUtdG9nZ2xlLWNhbi1hY3RpdmF0ZS1ndWFyZC5yb3V0ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbmd4LWZlYXR1cmUtdG9nZ2xlLWNhbi1hY3RpdmF0ZS1jaGlsZC1ndWFyZC5yb3V0ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbmd4LWZlYXR1cmUtdG9nZ2xlLWNhbi1sb2FkLWd1YXJkLnJvdXRlcic7XG4iXX0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1mZWF0dXJlLXRvZ2dsZS8iLCJzb3VyY2VzIjpbInB1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsMERBQTBELENBQUM7QUFDekUsY0FBYyxnREFBZ0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygbmd4LWZlYXR1cmUtdG9nZ2xlXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbmd4LWZlYXR1cmUtdG9nZ2xlLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9uZ3gtZmVhdHVyZS10b2dnbGUtcHJvdmlkZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL25neC1mZWF0dXJlLXRvZ2dsZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbmd4LWZlYXR1cmUtdG9nZ2xlLWNhbi1hY3RpdmF0ZS1ndWFyZC5yb3V0ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbmd4LWZlYXR1cmUtdG9nZ2xlLWNhbi1hY3RpdmF0ZS1jaGlsZC1ndWFyZC5yb3V0ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbmd4LWZlYXR1cmUtdG9nZ2xlLWNhbi1sb2FkLWd1YXJkLnJvdXRlcic7XG4iXX0= |
@@ -19,12 +19,15 @@ import { __decorate } from "tslib"; | ||
} | ||
if (!Array.isArray(route.data.featureToggle)) { | ||
if (DEV_MODE) { | ||
console.error('`NgxFeatureToggleCanActivateChildGuard` need to receive `featureToggle` as data as an array in your route configuration.'); | ||
} | ||
return false; | ||
var isFeatureToggleOn = function (toggle) { | ||
return toggle[0] === '!' ? !isOn(toggle.replace('!', '')) : isOn(toggle); | ||
}; | ||
if (typeof route.data.featureToggle === 'string') { | ||
return isFeatureToggleOn(route.data.featureToggle); | ||
} | ||
var userCanAccess = route.data.featureToggle.every(function (toggle) { | ||
return toggle[0] === '!' ? !isOn(toggle.replace('!', '')) : isOn(toggle); | ||
}); | ||
return userCanAccess; | ||
else if (Array.isArray(route.data.featureToggle)) { | ||
return route.data.featureToggle.every(isFeatureToggleOn); | ||
} | ||
if (DEV_MODE) { | ||
console.error('`NgxFeatureToggleCanActivateChildGuard` need to receive `featureToggle` as data as an array or string in your route configuration.'); | ||
} | ||
return false; | ||
}; | ||
@@ -38,2 +41,2 @@ NgxFeatureToggleCanActivateChildGuard.ɵprov = i0.ɵɵdefineInjectable({ factory: function NgxFeatureToggleCanActivateChildGuard_Factory() { return new NgxFeatureToggleCanActivateChildGuard(); }, token: NgxFeatureToggleCanActivateChildGuard, providedIn: "root" }); | ||
export { NgxFeatureToggleCanActivateChildGuard }; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWZlYXR1cmUtdG9nZ2xlLWNhbi1hY3RpdmF0ZS1jaGlsZC1ndWFyZC5yb3V0ZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtZmVhdHVyZS10b2dnbGUvIiwic291cmNlcyI6WyJsaWIvbmd4LWZlYXR1cmUtdG9nZ2xlLWNhbi1hY3RpdmF0ZS1jaGlsZC1ndWFyZC5yb3V0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3RELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFHOUM7SUFBQTtLQStCQztJQTlCQyx5REFBUyxHQUFUO1FBQ0UsT0FBTyxTQUFTLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsZ0VBQWdCLEdBQWhCLFVBQWlCLEtBQXFDO1FBQ3BELElBQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3RELElBQUksUUFBUSxFQUFFO2dCQUNaLE9BQU8sQ0FBQyxLQUFLLENBQ1gsOEdBQThHLENBQy9HLENBQUM7YUFDSDtZQUNELE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFO1lBQzVDLElBQUksUUFBUSxFQUFFO2dCQUNaLE9BQU8sQ0FBQyxLQUFLLENBQ1gsMEhBQTBILENBQzNILENBQUM7YUFDSDtZQUNELE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxJQUFNLGFBQWEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsVUFBQSxNQUFNO1lBQ3pELE9BQUEsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUFqRSxDQUFpRSxDQUNsRSxDQUFDO1FBRUYsT0FBTyxhQUFhLENBQUM7SUFDdkIsQ0FBQzs7SUE5QlUscUNBQXFDO1FBRGpELFVBQVUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQztPQUN0QixxQ0FBcUMsQ0ErQmpEO2dEQXJDRDtDQXFDQyxBQS9CRCxJQStCQztTQS9CWSxxQ0FBcUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpc0Rldk1vZGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIFJvdXRlLCBDYW5BY3RpdmF0ZUNoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgaXNPbiB9IGZyb20gJ2ZlYXR1cmUtdG9nZ2xlLXNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIE5neEZlYXR1cmVUb2dnbGVDYW5BY3RpdmF0ZUNoaWxkR3VhcmQgaW1wbGVtZW50cyBDYW5BY3RpdmF0ZUNoaWxkIHtcbiAgaXNEZXZNb2RlKCkge1xuICAgIHJldHVybiBpc0Rldk1vZGUoKTtcbiAgfVxuXG4gIGNhbkFjdGl2YXRlQ2hpbGQocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QgfCBSb3V0ZSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IERFVl9NT0RFID0gdGhpcy5pc0Rldk1vZGUoKTtcbiAgICBpZiAoIXJvdXRlIHx8ICFyb3V0ZS5kYXRhIHx8ICFyb3V0ZS5kYXRhLmZlYXR1cmVUb2dnbGUpIHtcbiAgICAgIGlmIChERVZfTU9ERSkge1xuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICdgTmd4RmVhdHVyZVRvZ2dsZUNhbkFjdGl2YXRlQ2hpbGRHdWFyZGAgbmVlZCB0byByZWNlaXZlIGBmZWF0dXJlVG9nZ2xlYCBhcyBkYXRhIGluIHlvdXIgcm91dGUgY29uZmlndXJhdGlvbi4nLFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmICghQXJyYXkuaXNBcnJheShyb3V0ZS5kYXRhLmZlYXR1cmVUb2dnbGUpKSB7XG4gICAgICBpZiAoREVWX01PREUpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAnYE5neEZlYXR1cmVUb2dnbGVDYW5BY3RpdmF0ZUNoaWxkR3VhcmRgIG5lZWQgdG8gcmVjZWl2ZSBgZmVhdHVyZVRvZ2dsZWAgYXMgZGF0YSBhcyBhbiBhcnJheSBpbiB5b3VyIHJvdXRlIGNvbmZpZ3VyYXRpb24uJyxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCB1c2VyQ2FuQWNjZXNzID0gcm91dGUuZGF0YS5mZWF0dXJlVG9nZ2xlLmV2ZXJ5KHRvZ2dsZSA9PlxuICAgICAgdG9nZ2xlWzBdID09PSAnIScgPyAhaXNPbih0b2dnbGUucmVwbGFjZSgnIScsICcnKSkgOiBpc09uKHRvZ2dsZSksXG4gICAgKTtcblxuICAgIHJldHVybiB1c2VyQ2FuQWNjZXNzO1xuICB9XG59XG4iXX0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWZlYXR1cmUtdG9nZ2xlLWNhbi1hY3RpdmF0ZS1jaGlsZC1ndWFyZC5yb3V0ZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtZmVhdHVyZS10b2dnbGUvIiwic291cmNlcyI6WyJsaWIvbmd4LWZlYXR1cmUtdG9nZ2xlLWNhbi1hY3RpdmF0ZS1jaGlsZC1ndWFyZC5yb3V0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBT3RELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFHOUM7SUFBQTtLQWdDQztJQS9CQyx5REFBUyxHQUFUO1FBQ0UsT0FBTyxTQUFTLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsZ0VBQWdCLEdBQWhCLFVBQWlCLEtBQXFDO1FBQ3BELElBQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3RELElBQUksUUFBUSxFQUFFO2dCQUNaLE9BQU8sQ0FBQyxLQUFLLENBQ1gsOEdBQThHLENBQy9HLENBQUM7YUFDSDtZQUNELE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxJQUFNLGlCQUFpQixHQUFHLFVBQUMsTUFBTTtZQUMvQixPQUFBLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7UUFBakUsQ0FBaUUsQ0FBQztRQUVwRSxJQUFJLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLEtBQUssUUFBUSxFQUFFO1lBQ2hELE9BQU8saUJBQWlCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUF1QixDQUFDLENBQUM7U0FDOUQ7YUFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUNsRCxPQUFRLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBMEIsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUN4RTtRQUVELElBQUksUUFBUSxFQUFFO1lBQ1osT0FBTyxDQUFDLEtBQUssQ0FDWCxvSUFBb0ksQ0FDckksQ0FBQztTQUNIO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOztJQS9CVSxxQ0FBcUM7UUFEakQsVUFBVSxDQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDO09BQ3RCLHFDQUFxQyxDQWdDakQ7Z0RBMUNEO0NBMENDLEFBaENELElBZ0NDO1NBaENZLHFDQUFxQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGlzRGV2TW9kZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcbiAgUm91dGUsXG4gIENhbkFjdGl2YXRlQ2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IGlzT24gfSBmcm9tICdmZWF0dXJlLXRvZ2dsZS1zZXJ2aWNlJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBOZ3hGZWF0dXJlVG9nZ2xlQ2FuQWN0aXZhdGVDaGlsZEd1YXJkIGltcGxlbWVudHMgQ2FuQWN0aXZhdGVDaGlsZCB7XG4gIGlzRGV2TW9kZSgpIHtcbiAgICByZXR1cm4gaXNEZXZNb2RlKCk7XG4gIH1cblxuICBjYW5BY3RpdmF0ZUNoaWxkKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90IHwgUm91dGUpOiBib29sZWFuIHtcbiAgICBjb25zdCBERVZfTU9ERSA9IHRoaXMuaXNEZXZNb2RlKCk7XG4gICAgaWYgKCFyb3V0ZSB8fCAhcm91dGUuZGF0YSB8fCAhcm91dGUuZGF0YS5mZWF0dXJlVG9nZ2xlKSB7XG4gICAgICBpZiAoREVWX01PREUpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAnYE5neEZlYXR1cmVUb2dnbGVDYW5BY3RpdmF0ZUNoaWxkR3VhcmRgIG5lZWQgdG8gcmVjZWl2ZSBgZmVhdHVyZVRvZ2dsZWAgYXMgZGF0YSBpbiB5b3VyIHJvdXRlIGNvbmZpZ3VyYXRpb24uJ1xuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IGlzRmVhdHVyZVRvZ2dsZU9uID0gKHRvZ2dsZSkgPT5cbiAgICAgIHRvZ2dsZVswXSA9PT0gJyEnID8gIWlzT24odG9nZ2xlLnJlcGxhY2UoJyEnLCAnJykpIDogaXNPbih0b2dnbGUpO1xuXG4gICAgaWYgKHR5cGVvZiByb3V0ZS5kYXRhLmZlYXR1cmVUb2dnbGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gaXNGZWF0dXJlVG9nZ2xlT24ocm91dGUuZGF0YS5mZWF0dXJlVG9nZ2xlIGFzIHN0cmluZyk7XG4gICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHJvdXRlLmRhdGEuZmVhdHVyZVRvZ2dsZSkpIHtcbiAgICAgIHJldHVybiAocm91dGUuZGF0YS5mZWF0dXJlVG9nZ2xlIGFzIHN0cmluZ1tdKS5ldmVyeShpc0ZlYXR1cmVUb2dnbGVPbik7XG4gICAgfVxuXG4gICAgaWYgKERFVl9NT0RFKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAnYE5neEZlYXR1cmVUb2dnbGVDYW5BY3RpdmF0ZUNoaWxkR3VhcmRgIG5lZWQgdG8gcmVjZWl2ZSBgZmVhdHVyZVRvZ2dsZWAgYXMgZGF0YSBhcyBhbiBhcnJheSBvciBzdHJpbmcgaW4geW91ciByb3V0ZSBjb25maWd1cmF0aW9uLidcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIl19 |
@@ -19,12 +19,15 @@ import { __decorate } from "tslib"; | ||
} | ||
if (!Array.isArray(route.data.featureToggle)) { | ||
if (DEV_MODE) { | ||
console.error('`NgxFeatureToggleCanActivateGuard` need to receive `featureToggle` as data as an array in your route configuration.'); | ||
} | ||
return false; | ||
var isFeatureToggleOn = function (toggle) { | ||
return toggle[0] === '!' ? !isOn(toggle.replace('!', '')) : isOn(toggle); | ||
}; | ||
if (typeof route.data.featureToggle === 'string') { | ||
return isFeatureToggleOn(route.data.featureToggle); | ||
} | ||
var userCanAccess = route.data.featureToggle.every(function (toggle) { | ||
return toggle[0] === '!' ? !isOn(toggle.replace('!', '')) : isOn(toggle); | ||
}); | ||
return userCanAccess; | ||
else if (Array.isArray(route.data.featureToggle)) { | ||
return route.data.featureToggle.every(isFeatureToggleOn); | ||
} | ||
if (DEV_MODE) { | ||
console.error('`NgxFeatureToggleCanActivateGuard` need to receive `featureToggle` as data as an array or string in your route configuration.'); | ||
} | ||
return false; | ||
}; | ||
@@ -38,2 +41,2 @@ NgxFeatureToggleCanActivateGuard.ɵprov = i0.ɵɵdefineInjectable({ factory: function NgxFeatureToggleCanActivateGuard_Factory() { return new NgxFeatureToggleCanActivateGuard(); }, token: NgxFeatureToggleCanActivateGuard, providedIn: "root" }); | ||
export { NgxFeatureToggleCanActivateGuard }; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWZlYXR1cmUtdG9nZ2xlLWNhbi1hY3RpdmF0ZS1ndWFyZC5yb3V0ZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtZmVhdHVyZS10b2dnbGUvIiwic291cmNlcyI6WyJsaWIvbmd4LWZlYXR1cmUtdG9nZ2xlLWNhbi1hY3RpdmF0ZS1ndWFyZC5yb3V0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3RELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFHOUM7SUFBQTtLQStCQztJQTlCQyxvREFBUyxHQUFUO1FBQ0UsT0FBTyxTQUFTLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsc0RBQVcsR0FBWCxVQUFZLEtBQXFDO1FBQy9DLElBQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3RELElBQUksUUFBUSxFQUFFO2dCQUNaLE9BQU8sQ0FBQyxLQUFLLENBQ1gseUdBQXlHLENBQzFHLENBQUM7YUFDSDtZQUNELE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFO1lBQzVDLElBQUksUUFBUSxFQUFFO2dCQUNaLE9BQU8sQ0FBQyxLQUFLLENBQ1gscUhBQXFILENBQ3RILENBQUM7YUFDSDtZQUNELE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxJQUFNLGFBQWEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsVUFBQSxNQUFNO1lBQ3pELE9BQUEsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUFqRSxDQUFpRSxDQUNsRSxDQUFDO1FBRUYsT0FBTyxhQUFhLENBQUM7SUFDdkIsQ0FBQzs7SUE5QlUsZ0NBQWdDO1FBRDVDLFVBQVUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQztPQUN0QixnQ0FBZ0MsQ0ErQjVDOzJDQXJDRDtDQXFDQyxBQS9CRCxJQStCQztTQS9CWSxnQ0FBZ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpc0Rldk1vZGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIENhbkFjdGl2YXRlLCBSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IGlzT24gfSBmcm9tICdmZWF0dXJlLXRvZ2dsZS1zZXJ2aWNlJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBOZ3hGZWF0dXJlVG9nZ2xlQ2FuQWN0aXZhdGVHdWFyZCBpbXBsZW1lbnRzIENhbkFjdGl2YXRlIHtcbiAgaXNEZXZNb2RlKCkge1xuICAgIHJldHVybiBpc0Rldk1vZGUoKTtcbiAgfVxuXG4gIGNhbkFjdGl2YXRlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90IHwgUm91dGUpOiBib29sZWFuIHtcbiAgICBjb25zdCBERVZfTU9ERSA9IHRoaXMuaXNEZXZNb2RlKCk7XG4gICAgaWYgKCFyb3V0ZSB8fCAhcm91dGUuZGF0YSB8fCAhcm91dGUuZGF0YS5mZWF0dXJlVG9nZ2xlKSB7XG4gICAgICBpZiAoREVWX01PREUpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAnYE5neEZlYXR1cmVUb2dnbGVDYW5BY3RpdmF0ZUd1YXJkYCBuZWVkIHRvIHJlY2VpdmUgYGZlYXR1cmVUb2dnbGVgIGFzIGRhdGEgaW4geW91ciByb3V0ZSBjb25maWd1cmF0aW9uLicsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHJvdXRlLmRhdGEuZmVhdHVyZVRvZ2dsZSkpIHtcbiAgICAgIGlmIChERVZfTU9ERSkge1xuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICdgTmd4RmVhdHVyZVRvZ2dsZUNhbkFjdGl2YXRlR3VhcmRgIG5lZWQgdG8gcmVjZWl2ZSBgZmVhdHVyZVRvZ2dsZWAgYXMgZGF0YSBhcyBhbiBhcnJheSBpbiB5b3VyIHJvdXRlIGNvbmZpZ3VyYXRpb24uJyxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCB1c2VyQ2FuQWNjZXNzID0gcm91dGUuZGF0YS5mZWF0dXJlVG9nZ2xlLmV2ZXJ5KHRvZ2dsZSA9PlxuICAgICAgdG9nZ2xlWzBdID09PSAnIScgPyAhaXNPbih0b2dnbGUucmVwbGFjZSgnIScsICcnKSkgOiBpc09uKHRvZ2dsZSksXG4gICAgKTtcblxuICAgIHJldHVybiB1c2VyQ2FuQWNjZXNzO1xuICB9XG59XG4iXX0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWZlYXR1cmUtdG9nZ2xlLWNhbi1hY3RpdmF0ZS1ndWFyZC5yb3V0ZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtZmVhdHVyZS10b2dnbGUvIiwic291cmNlcyI6WyJsaWIvbmd4LWZlYXR1cmUtdG9nZ2xlLWNhbi1hY3RpdmF0ZS1ndWFyZC5yb3V0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3RELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFHOUM7SUFBQTtLQWdDQztJQS9CQyxvREFBUyxHQUFUO1FBQ0UsT0FBTyxTQUFTLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsc0RBQVcsR0FBWCxVQUFZLEtBQXFDO1FBQy9DLElBQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3RELElBQUksUUFBUSxFQUFFO2dCQUNaLE9BQU8sQ0FBQyxLQUFLLENBQ1gseUdBQXlHLENBQzFHLENBQUM7YUFDSDtZQUNELE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxJQUFNLGlCQUFpQixHQUFHLFVBQUMsTUFBTTtZQUMvQixPQUFBLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7UUFBakUsQ0FBaUUsQ0FBQztRQUVwRSxJQUFJLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLEtBQUssUUFBUSxFQUFFO1lBQ2hELE9BQU8saUJBQWlCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUF1QixDQUFDLENBQUM7U0FDOUQ7YUFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUNsRCxPQUFRLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBMEIsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUN4RTtRQUVELElBQUksUUFBUSxFQUFFO1lBQ1osT0FBTyxDQUFDLEtBQUssQ0FDWCwrSEFBK0gsQ0FDaEksQ0FBQztTQUNIO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOztJQS9CVSxnQ0FBZ0M7UUFENUMsVUFBVSxDQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDO09BQ3RCLGdDQUFnQyxDQWdDNUM7MkNBdENEO0NBc0NDLEFBaENELElBZ0NDO1NBaENZLGdDQUFnQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGlzRGV2TW9kZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgQ2FuQWN0aXZhdGUsIFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgaXNPbiB9IGZyb20gJ2ZlYXR1cmUtdG9nZ2xlLXNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIE5neEZlYXR1cmVUb2dnbGVDYW5BY3RpdmF0ZUd1YXJkIGltcGxlbWVudHMgQ2FuQWN0aXZhdGUge1xuICBpc0Rldk1vZGUoKSB7XG4gICAgcmV0dXJuIGlzRGV2TW9kZSgpO1xuICB9XG5cbiAgY2FuQWN0aXZhdGUocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QgfCBSb3V0ZSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IERFVl9NT0RFID0gdGhpcy5pc0Rldk1vZGUoKTtcbiAgICBpZiAoIXJvdXRlIHx8ICFyb3V0ZS5kYXRhIHx8ICFyb3V0ZS5kYXRhLmZlYXR1cmVUb2dnbGUpIHtcbiAgICAgIGlmIChERVZfTU9ERSkge1xuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICdgTmd4RmVhdHVyZVRvZ2dsZUNhbkFjdGl2YXRlR3VhcmRgIG5lZWQgdG8gcmVjZWl2ZSBgZmVhdHVyZVRvZ2dsZWAgYXMgZGF0YSBpbiB5b3VyIHJvdXRlIGNvbmZpZ3VyYXRpb24uJ1xuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IGlzRmVhdHVyZVRvZ2dsZU9uID0gKHRvZ2dsZSkgPT5cbiAgICAgIHRvZ2dsZVswXSA9PT0gJyEnID8gIWlzT24odG9nZ2xlLnJlcGxhY2UoJyEnLCAnJykpIDogaXNPbih0b2dnbGUpO1xuXG4gICAgaWYgKHR5cGVvZiByb3V0ZS5kYXRhLmZlYXR1cmVUb2dnbGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gaXNGZWF0dXJlVG9nZ2xlT24ocm91dGUuZGF0YS5mZWF0dXJlVG9nZ2xlIGFzIHN0cmluZyk7XG4gICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHJvdXRlLmRhdGEuZmVhdHVyZVRvZ2dsZSkpIHtcbiAgICAgIHJldHVybiAocm91dGUuZGF0YS5mZWF0dXJlVG9nZ2xlIGFzIHN0cmluZ1tdKS5ldmVyeShpc0ZlYXR1cmVUb2dnbGVPbik7XG4gICAgfVxuXG4gICAgaWYgKERFVl9NT0RFKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAnYE5neEZlYXR1cmVUb2dnbGVDYW5BY3RpdmF0ZUd1YXJkYCBuZWVkIHRvIHJlY2VpdmUgYGZlYXR1cmVUb2dnbGVgIGFzIGRhdGEgYXMgYW4gYXJyYXkgb3Igc3RyaW5nIGluIHlvdXIgcm91dGUgY29uZmlndXJhdGlvbi4nXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ== |
@@ -19,12 +19,15 @@ import { __decorate } from "tslib"; | ||
} | ||
if (!Array.isArray(route.data.featureToggle)) { | ||
if (DEV_MODE) { | ||
console.error('`NgxFeatureToggleCanLoadGuard` need to receive `featureToggle` as data as an array in your route configuration.'); | ||
} | ||
return false; | ||
var isFeatureToggleOn = function (toggle) { | ||
return toggle[0] === '!' ? !isOn(toggle.replace('!', '')) : isOn(toggle); | ||
}; | ||
if (typeof route.data.featureToggle === 'string') { | ||
return isFeatureToggleOn(route.data.featureToggle); | ||
} | ||
var userCanAccess = route.data.featureToggle.every(function (toggle) { | ||
return toggle[0] === '!' ? !isOn(toggle.replace('!', '')) : isOn(toggle); | ||
}); | ||
return userCanAccess; | ||
else if (Array.isArray(route.data.featureToggle)) { | ||
return route.data.featureToggle.every(isFeatureToggleOn); | ||
} | ||
if (DEV_MODE) { | ||
console.error('`NgxFeatureToggleCanLoadGuard` need to receive `featureToggle` as data as an array or string in your route configuration.'); | ||
} | ||
return false; | ||
}; | ||
@@ -38,2 +41,2 @@ NgxFeatureToggleCanLoadGuard.ɵprov = i0.ɵɵdefineInjectable({ factory: function NgxFeatureToggleCanLoadGuard_Factory() { return new NgxFeatureToggleCanLoadGuard(); }, token: NgxFeatureToggleCanLoadGuard, providedIn: "root" }); | ||
export { NgxFeatureToggleCanLoadGuard }; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWZlYXR1cmUtdG9nZ2xlLWNhbi1sb2FkLWd1YXJkLnJvdXRlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1mZWF0dXJlLXRvZ2dsZS8iLCJzb3VyY2VzIjpbImxpYi9uZ3gtZmVhdHVyZS10b2dnbGUtY2FuLWxvYWQtZ3VhcmQucm91dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd0RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBRzlDO0lBQUE7S0ErQkM7SUE5QkMsZ0RBQVMsR0FBVDtRQUNFLE9BQU8sU0FBUyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELDhDQUFPLEdBQVAsVUFBUSxLQUFZO1FBQ2xCLElBQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3RELElBQUksUUFBUSxFQUFFO2dCQUNaLE9BQU8sQ0FBQyxLQUFLLENBQ1gscUdBQXFHLENBQ3RHLENBQUM7YUFDSDtZQUNELE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFO1lBQzVDLElBQUksUUFBUSxFQUFFO2dCQUNaLE9BQU8sQ0FBQyxLQUFLLENBQ1gsaUhBQWlILENBQ2xILENBQUM7YUFDSDtZQUNELE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxJQUFNLGFBQWEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsVUFBQSxNQUFNO1lBQ3pELE9BQUEsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUFqRSxDQUFpRSxDQUNsRSxDQUFDO1FBRUYsT0FBTyxhQUFhLENBQUM7SUFDdkIsQ0FBQzs7SUE5QlUsNEJBQTRCO1FBRHhDLFVBQVUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQztPQUN0Qiw0QkFBNEIsQ0ErQnhDO3VDQXJDRDtDQXFDQyxBQS9CRCxJQStCQztTQS9CWSw0QkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpc0Rldk1vZGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlLCBDYW5Mb2FkIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgaXNPbiB9IGZyb20gJ2ZlYXR1cmUtdG9nZ2xlLXNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIE5neEZlYXR1cmVUb2dnbGVDYW5Mb2FkR3VhcmQgaW1wbGVtZW50cyBDYW5Mb2FkIHtcbiAgaXNEZXZNb2RlKCkge1xuICAgIHJldHVybiBpc0Rldk1vZGUoKTtcbiAgfVxuXG4gIGNhbkxvYWQocm91dGU6IFJvdXRlKTogYm9vbGVhbiB7XG4gICAgY29uc3QgREVWX01PREUgPSB0aGlzLmlzRGV2TW9kZSgpO1xuICAgIGlmICghcm91dGUgfHwgIXJvdXRlLmRhdGEgfHwgIXJvdXRlLmRhdGEuZmVhdHVyZVRvZ2dsZSkge1xuICAgICAgaWYgKERFVl9NT0RFKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgJ2BOZ3hGZWF0dXJlVG9nZ2xlQ2FuTG9hZEd1YXJkYCBuZWVkIHRvIHJlY2VpdmUgYGZlYXR1cmVUb2dnbGVgIGFzIGRhdGEgaW4geW91ciByb3V0ZSBjb25maWd1cmF0aW9uLicsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHJvdXRlLmRhdGEuZmVhdHVyZVRvZ2dsZSkpIHtcbiAgICAgIGlmIChERVZfTU9ERSkge1xuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICdgTmd4RmVhdHVyZVRvZ2dsZUNhbkxvYWRHdWFyZGAgbmVlZCB0byByZWNlaXZlIGBmZWF0dXJlVG9nZ2xlYCBhcyBkYXRhIGFzIGFuIGFycmF5IGluIHlvdXIgcm91dGUgY29uZmlndXJhdGlvbi4nLFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IHVzZXJDYW5BY2Nlc3MgPSByb3V0ZS5kYXRhLmZlYXR1cmVUb2dnbGUuZXZlcnkodG9nZ2xlID0+XG4gICAgICB0b2dnbGVbMF0gPT09ICchJyA/ICFpc09uKHRvZ2dsZS5yZXBsYWNlKCchJywgJycpKSA6IGlzT24odG9nZ2xlKSxcbiAgICApO1xuXG4gICAgcmV0dXJuIHVzZXJDYW5BY2Nlc3M7XG4gIH1cbn1cbiJdfQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWZlYXR1cmUtdG9nZ2xlLWNhbi1sb2FkLWd1YXJkLnJvdXRlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1mZWF0dXJlLXRvZ2dsZS8iLCJzb3VyY2VzIjpbImxpYi9uZ3gtZmVhdHVyZS10b2dnbGUtY2FuLWxvYWQtZ3VhcmQucm91dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd0RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBRzlDO0lBQUE7S0FpQ0M7SUFoQ0MsZ0RBQVMsR0FBVDtRQUNFLE9BQU8sU0FBUyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELDhDQUFPLEdBQVAsVUFBUSxLQUFZO1FBQ2xCLElBQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3RELElBQUksUUFBUSxFQUFFO2dCQUNaLE9BQU8sQ0FBQyxLQUFLLENBQ1gscUdBQXFHLENBQ3RHLENBQUM7YUFDSDtZQUNELE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxJQUFNLGlCQUFpQixHQUFHLFVBQUMsTUFBTTtZQUMvQixPQUFBLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7UUFBakUsQ0FBaUUsQ0FBQztRQUVwRSxJQUFJLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLEtBQUssUUFBUSxFQUFFO1lBQ2hELE9BQU8saUJBQWlCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUF1QixDQUFDLENBQUM7U0FDOUQ7YUFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUNsRCxPQUFRLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBMEIsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUN4RTtRQUVELElBQUksUUFBUSxFQUFFO1lBQ1osT0FBTyxDQUFDLEtBQUssQ0FDWCwySEFBMkgsQ0FDNUgsQ0FBQztTQUNIO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOztJQWhDVSw0QkFBNEI7UUFEeEMsVUFBVSxDQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDO09BQ3RCLDRCQUE0QixDQWlDeEM7dUNBdkNEO0NBdUNDLEFBakNELElBaUNDO1NBakNZLDRCQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGlzRGV2TW9kZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGUsIENhbkxvYWQgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBpc09uIH0gZnJvbSAnZmVhdHVyZS10b2dnbGUtc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgTmd4RmVhdHVyZVRvZ2dsZUNhbkxvYWRHdWFyZCBpbXBsZW1lbnRzIENhbkxvYWQge1xuICBpc0Rldk1vZGUoKSB7XG4gICAgcmV0dXJuIGlzRGV2TW9kZSgpO1xuICB9XG5cbiAgY2FuTG9hZChyb3V0ZTogUm91dGUpOiBib29sZWFuIHtcbiAgICBjb25zdCBERVZfTU9ERSA9IHRoaXMuaXNEZXZNb2RlKCk7XG4gICAgaWYgKCFyb3V0ZSB8fCAhcm91dGUuZGF0YSB8fCAhcm91dGUuZGF0YS5mZWF0dXJlVG9nZ2xlKSB7XG4gICAgICBpZiAoREVWX01PREUpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAnYE5neEZlYXR1cmVUb2dnbGVDYW5Mb2FkR3VhcmRgIG5lZWQgdG8gcmVjZWl2ZSBgZmVhdHVyZVRvZ2dsZWAgYXMgZGF0YSBpbiB5b3VyIHJvdXRlIGNvbmZpZ3VyYXRpb24uJ1xuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IGlzRmVhdHVyZVRvZ2dsZU9uID0gKHRvZ2dsZSkgPT5cbiAgICAgIHRvZ2dsZVswXSA9PT0gJyEnID8gIWlzT24odG9nZ2xlLnJlcGxhY2UoJyEnLCAnJykpIDogaXNPbih0b2dnbGUpO1xuXG4gICAgaWYgKHR5cGVvZiByb3V0ZS5kYXRhLmZlYXR1cmVUb2dnbGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gaXNGZWF0dXJlVG9nZ2xlT24ocm91dGUuZGF0YS5mZWF0dXJlVG9nZ2xlIGFzIHN0cmluZyk7XG4gICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHJvdXRlLmRhdGEuZmVhdHVyZVRvZ2dsZSkpIHtcbiAgICAgIHJldHVybiAocm91dGUuZGF0YS5mZWF0dXJlVG9nZ2xlIGFzIHN0cmluZ1tdKS5ldmVyeShpc0ZlYXR1cmVUb2dnbGVPbik7XG4gICAgfVxuXG4gICAgaWYgKERFVl9NT0RFKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAnYE5neEZlYXR1cmVUb2dnbGVDYW5Mb2FkR3VhcmRgIG5lZWQgdG8gcmVjZWl2ZSBgZmVhdHVyZVRvZ2dsZWAgYXMgZGF0YSBhcyBhbiBhcnJheSBvciBzdHJpbmcgaW4geW91ciByb3V0ZSBjb25maWd1cmF0aW9uLidcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iXX0= |
import { __decorate, __metadata } from "tslib"; | ||
import { Directive, Input, OnInit, TemplateRef, ViewContainerRef, DoCheck, } from '@angular/core'; | ||
import { Directive, Input, OnInit, TemplateRef, ViewContainerRef, DoCheck, isDevMode, } from '@angular/core'; | ||
import { isOn } from 'feature-toggle-service'; | ||
@@ -17,3 +17,3 @@ var FeatureToggleDirective = /** @class */ (function () { | ||
FeatureToggleDirective.prototype.ngDoCheck = function () { | ||
if (this.isOn !== isOn(this.featureToggle)) { | ||
if (this.isOn !== this.isOnCheck(this.featureToggle)) { | ||
this.shouldRender(); | ||
@@ -23,3 +23,3 @@ } | ||
FeatureToggleDirective.prototype.shouldRender = function () { | ||
this.isOn = isOn(this.featureToggle); | ||
this.isOn = this.isOnCheck(this.featureToggle); | ||
if (this.isOn) { | ||
@@ -32,2 +32,17 @@ this.viewContainer.createEmbeddedView(this.templateRef); | ||
}; | ||
FeatureToggleDirective.prototype.isOnCheck = function (featureToggle) { | ||
var DEV_MODE = isDevMode(); | ||
var isFeatureToggleOn = function (toggle) { | ||
return toggle[0] === '!' ? !isOn(toggle.replace('!', '')) : isOn(toggle); | ||
}; | ||
if (typeof featureToggle === 'string') { | ||
return isFeatureToggleOn(featureToggle); | ||
} | ||
else if (Array.isArray(featureToggle)) { | ||
return featureToggle.every(isFeatureToggleOn); | ||
} | ||
else if (DEV_MODE) { | ||
console.error('`NgxFeatureToggle`: `featureToggle` should receive an array or an string as a value.'); | ||
} | ||
}; | ||
FeatureToggleDirective.ctorParameters = function () { return [ | ||
@@ -39,3 +54,3 @@ { type: TemplateRef }, | ||
Input(), | ||
__metadata("design:type", String) | ||
__metadata("design:type", Object) | ||
], FeatureToggleDirective.prototype, "featureToggle", void 0); | ||
@@ -53,2 +68,2 @@ FeatureToggleDirective = __decorate([ | ||
export { FeatureToggleDirective }; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWZlYXR1cmUtdG9nZ2xlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1mZWF0dXJlLXRvZ2dsZS8iLCJzb3VyY2VzIjpbImxpYi9uZ3gtZmVhdHVyZS10b2dnbGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sV0FBVyxFQUNYLGdCQUFnQixFQUNoQixPQUFPLEdBQ1IsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBTzlDO0lBS0UsZ0NBQ1UsV0FBNkIsRUFDN0IsYUFBK0I7UUFEL0IsZ0JBQVcsR0FBWCxXQUFXLENBQWtCO1FBQzdCLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQUpqQyxTQUFJLEdBQUcsS0FBSyxDQUFDO0lBS2pCLENBQUM7SUFFTCx5Q0FBUSxHQUFSO1FBQ0UsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdkIsTUFBTSxJQUFJLEtBQUssQ0FBQyx1REFBdUQsQ0FBQyxDQUFDO1NBQzFFO1FBQ0QsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCwwQ0FBUyxHQUFUO1FBQ0UsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDMUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3JCO0lBQ0gsQ0FBQztJQUVPLDZDQUFZLEdBQXBCO1FBQ0UsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3JDLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNiLElBQUksQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ3pEO2FBQU07WUFDTCxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQzVCO0lBQ0gsQ0FBQzs7Z0JBeEJzQixXQUFXO2dCQUNULGdCQUFnQjs7SUFMaEM7UUFBUixLQUFLLEVBQUU7O2lFQUE4QjtJQUYzQixzQkFBc0I7UUFMbEMsU0FBUyxDQUFDO1lBQ1QsK0NBQStDO1lBQy9DLFFBQVEsRUFBRSxpQkFBaUI7U0FDNUIsQ0FBQzt5Q0FRdUIsV0FBVztZQUNULGdCQUFnQjtPQVA5QixzQkFBc0IsQ0ErQmxDO0lBQUQsNkJBQUM7Q0FBQSxBQS9CRCxJQStCQztTQS9CWSxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q29udGFpbmVyUmVmLFxuICBEb0NoZWNrLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgaXNPbiB9IGZyb20gJ2ZlYXR1cmUtdG9nZ2xlLXNlcnZpY2UnO1xuXG5ARGlyZWN0aXZlKHtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBkaXJlY3RpdmUtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdbZmVhdHVyZVRvZ2dsZV0nLFxufSlcblxuZXhwb3J0IGNsYXNzIEZlYXR1cmVUb2dnbGVEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIERvQ2hlY2sge1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBmZWF0dXJlVG9nZ2xlOiBzdHJpbmc7XG4gIHByaXZhdGUgaXNPbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4sXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKCF0aGlzLmZlYXR1cmVUb2dnbGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQXR0cmlidXRlIGBmZWF0dXJlVG9nZ2xlYCBzaG91bGQgbm90IGJlIG51bGwgb3IgZW1wdHknKTtcbiAgICB9XG4gICAgdGhpcy5zaG91bGRSZW5kZXIoKTtcbiAgfVxuXG4gIG5nRG9DaGVjaygpIHtcbiAgICBpZiAodGhpcy5pc09uICE9PSBpc09uKHRoaXMuZmVhdHVyZVRvZ2dsZSkpIHtcbiAgICAgIHRoaXMuc2hvdWxkUmVuZGVyKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzaG91bGRSZW5kZXIoKSB7XG4gICAgdGhpcy5pc09uID0gaXNPbih0aGlzLmZlYXR1cmVUb2dnbGUpO1xuICAgIGlmICh0aGlzLmlzT24pIHtcbiAgICAgIHRoaXMudmlld0NvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50ZW1wbGF0ZVJlZik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmlld0NvbnRhaW5lci5jbGVhcigpO1xuICAgIH1cbiAgfVxufVxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWZlYXR1cmUtdG9nZ2xlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1mZWF0dXJlLXRvZ2dsZS8iLCJzb3VyY2VzIjpbImxpYi9uZ3gtZmVhdHVyZS10b2dnbGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sV0FBVyxFQUNYLGdCQUFnQixFQUNoQixPQUFPLEVBQ1AsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQU05QztJQUlFLGdDQUNVLFdBQTZCLEVBQzdCLGFBQStCO1FBRC9CLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQUM3QixrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFKakMsU0FBSSxHQUFHLEtBQUssQ0FBQztJQUtsQixDQUFDO0lBRUoseUNBQVEsR0FBUjtRQUNFLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQUMsdURBQXVELENBQUMsQ0FBQztTQUMxRTtRQUNELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsMENBQVMsR0FBVDtRQUNFLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUNwRCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDckI7SUFDSCxDQUFDO0lBRU8sNkNBQVksR0FBcEI7UUFDRSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQy9DLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNiLElBQUksQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ3pEO2FBQU07WUFDTCxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQzVCO0lBQ0gsQ0FBQztJQUVELDBDQUFTLEdBQVQsVUFBVSxhQUFnQztRQUN4QyxJQUFNLFFBQVEsR0FBRyxTQUFTLEVBQUUsQ0FBQztRQUU3QixJQUFNLGlCQUFpQixHQUFHLFVBQUMsTUFBTTtZQUMvQixPQUFBLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7UUFBakUsQ0FBaUUsQ0FBQztRQUVwRSxJQUFJLE9BQU8sYUFBYSxLQUFLLFFBQVEsRUFBRTtZQUNyQyxPQUFPLGlCQUFpQixDQUFDLGFBQXVCLENBQUMsQ0FBQztTQUNuRDthQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUN2QyxPQUFRLGFBQTBCLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7U0FDN0Q7YUFBTSxJQUFJLFFBQVEsRUFBRTtZQUNuQixPQUFPLENBQUMsS0FBSyxDQUNYLHNGQUFzRixDQUN2RixDQUFDO1NBQ0g7SUFDSCxDQUFDOztnQkF6Q3NCLFdBQVc7Z0JBQ1QsZ0JBQWdCOztJQUxoQztRQUFSLEtBQUssRUFBRTs7aUVBQXlDO0lBRHRDLHNCQUFzQjtRQUpsQyxTQUFTLENBQUM7WUFDVCwrQ0FBK0M7WUFDL0MsUUFBUSxFQUFFLGlCQUFpQjtTQUM1QixDQUFDO3lDQU11QixXQUFXO1lBQ1QsZ0JBQWdCO09BTjlCLHNCQUFzQixDQStDbEM7SUFBRCw2QkFBQztDQUFBLEFBL0NELElBK0NDO1NBL0NZLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIERvQ2hlY2ssXG4gIGlzRGV2TW9kZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IGlzT24gfSBmcm9tICdmZWF0dXJlLXRvZ2dsZS1zZXJ2aWNlJztcblxuQERpcmVjdGl2ZSh7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogZGlyZWN0aXZlLXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnW2ZlYXR1cmVUb2dnbGVdJyxcbn0pXG5leHBvcnQgY2xhc3MgRmVhdHVyZVRvZ2dsZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgRG9DaGVjayB7XG4gIEBJbnB1dCgpIHB1YmxpYyBmZWF0dXJlVG9nZ2xlOiBzdHJpbmdbXSB8IHN0cmluZztcbiAgcHJpdmF0ZSBpc09uID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PixcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWZcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICghdGhpcy5mZWF0dXJlVG9nZ2xlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0F0dHJpYnV0ZSBgZmVhdHVyZVRvZ2dsZWAgc2hvdWxkIG5vdCBiZSBudWxsIG9yIGVtcHR5Jyk7XG4gICAgfVxuICAgIHRoaXMuc2hvdWxkUmVuZGVyKCk7XG4gIH1cblxuICBuZ0RvQ2hlY2soKSB7XG4gICAgaWYgKHRoaXMuaXNPbiAhPT0gdGhpcy5pc09uQ2hlY2sodGhpcy5mZWF0dXJlVG9nZ2xlKSkge1xuICAgICAgdGhpcy5zaG91bGRSZW5kZXIoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNob3VsZFJlbmRlcigpIHtcbiAgICB0aGlzLmlzT24gPSB0aGlzLmlzT25DaGVjayh0aGlzLmZlYXR1cmVUb2dnbGUpO1xuICAgIGlmICh0aGlzLmlzT24pIHtcbiAgICAgIHRoaXMudmlld0NvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50ZW1wbGF0ZVJlZik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmlld0NvbnRhaW5lci5jbGVhcigpO1xuICAgIH1cbiAgfVxuXG4gIGlzT25DaGVjayhmZWF0dXJlVG9nZ2xlOiBzdHJpbmdbXSB8IHN0cmluZykge1xuICAgIGNvbnN0IERFVl9NT0RFID0gaXNEZXZNb2RlKCk7XG5cbiAgICBjb25zdCBpc0ZlYXR1cmVUb2dnbGVPbiA9ICh0b2dnbGUpID0+XG4gICAgICB0b2dnbGVbMF0gPT09ICchJyA/ICFpc09uKHRvZ2dsZS5yZXBsYWNlKCchJywgJycpKSA6IGlzT24odG9nZ2xlKTtcblxuICAgIGlmICh0eXBlb2YgZmVhdHVyZVRvZ2dsZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBpc0ZlYXR1cmVUb2dnbGVPbihmZWF0dXJlVG9nZ2xlIGFzIHN0cmluZyk7XG4gICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGZlYXR1cmVUb2dnbGUpKSB7XG4gICAgICByZXR1cm4gKGZlYXR1cmVUb2dnbGUgYXMgc3RyaW5nW10pLmV2ZXJ5KGlzRmVhdHVyZVRvZ2dsZU9uKTtcbiAgICB9IGVsc2UgaWYgKERFVl9NT0RFKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAnYE5neEZlYXR1cmVUb2dnbGVgOiBgZmVhdHVyZVRvZ2dsZWAgc2hvdWxkIHJlY2VpdmUgYW4gYXJyYXkgb3IgYW4gc3RyaW5nIGFzIGEgdmFsdWUuJ1xuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ== |
@@ -6,3 +6,2 @@ import { __decorate } from "tslib"; | ||
import { FeatureToggleDirective } from './ngx-feature-toggle.directive'; | ||
import { FeatureToggleWhenDisabledDirective } from './ngx-feature-toggle-when-disabled.directive'; | ||
var FeatureToggleModule = /** @class */ (function () { | ||
@@ -13,4 +12,4 @@ function FeatureToggleModule() { | ||
NgModule({ | ||
declarations: [FeatureToggleProviderComponent, FeatureToggleDirective, FeatureToggleWhenDisabledDirective], | ||
exports: [FeatureToggleProviderComponent, FeatureToggleDirective, FeatureToggleWhenDisabledDirective], | ||
declarations: [FeatureToggleProviderComponent, FeatureToggleDirective], | ||
exports: [FeatureToggleProviderComponent, FeatureToggleDirective], | ||
imports: [CommonModule], | ||
@@ -22,2 +21,2 @@ }) | ||
export { FeatureToggleModule }; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWZlYXR1cmUtdG9nZ2xlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1mZWF0dXJlLXRvZ2dsZS8iLCJzb3VyY2VzIjpbImxpYi9uZ3gtZmVhdHVyZS10b2dnbGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN6RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQU9sRztJQUFBO0lBQW1DLENBQUM7SUFBdkIsbUJBQW1CO1FBTC9CLFFBQVEsQ0FBQztZQUNSLFlBQVksRUFBRSxDQUFDLDhCQUE4QixFQUFFLHNCQUFzQixFQUFFLGtDQUFrQyxDQUFDO1lBQzFHLE9BQU8sRUFBRSxDQUFDLDhCQUE4QixFQUFFLHNCQUFzQixFQUFFLGtDQUFrQyxDQUFDO1lBQ3JHLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztTQUN4QixDQUFDO09BQ1csbUJBQW1CLENBQUk7SUFBRCwwQkFBQztDQUFBLEFBQXBDLElBQW9DO1NBQXZCLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRmVhdHVyZVRvZ2dsZVByb3ZpZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9uZ3gtZmVhdHVyZS10b2dnbGUtcHJvdmlkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEZlYXR1cmVUb2dnbGVEaXJlY3RpdmUgfSBmcm9tICcuL25neC1mZWF0dXJlLXRvZ2dsZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRmVhdHVyZVRvZ2dsZVdoZW5EaXNhYmxlZERpcmVjdGl2ZSB9IGZyb20gJy4vbmd4LWZlYXR1cmUtdG9nZ2xlLXdoZW4tZGlzYWJsZWQuZGlyZWN0aXZlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbRmVhdHVyZVRvZ2dsZVByb3ZpZGVyQ29tcG9uZW50LCBGZWF0dXJlVG9nZ2xlRGlyZWN0aXZlLCBGZWF0dXJlVG9nZ2xlV2hlbkRpc2FibGVkRGlyZWN0aXZlXSxcbiAgZXhwb3J0czogW0ZlYXR1cmVUb2dnbGVQcm92aWRlckNvbXBvbmVudCwgRmVhdHVyZVRvZ2dsZURpcmVjdGl2ZSwgRmVhdHVyZVRvZ2dsZVdoZW5EaXNhYmxlZERpcmVjdGl2ZV0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBGZWF0dXJlVG9nZ2xlTW9kdWxlIHsgfVxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWZlYXR1cmUtdG9nZ2xlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1mZWF0dXJlLXRvZ2dsZS8iLCJzb3VyY2VzIjpbImxpYi9uZ3gtZmVhdHVyZS10b2dnbGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN6RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQU94RTtJQUFBO0lBQWtDLENBQUM7SUFBdEIsbUJBQW1CO1FBTC9CLFFBQVEsQ0FBQztZQUNSLFlBQVksRUFBRSxDQUFDLDhCQUE4QixFQUFFLHNCQUFzQixDQUFDO1lBQ3RFLE9BQU8sRUFBRSxDQUFDLDhCQUE4QixFQUFFLHNCQUFzQixDQUFDO1lBQ2pFLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztTQUN4QixDQUFDO09BQ1csbUJBQW1CLENBQUc7SUFBRCwwQkFBQztDQUFBLEFBQW5DLElBQW1DO1NBQXRCLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRmVhdHVyZVRvZ2dsZVByb3ZpZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9uZ3gtZmVhdHVyZS10b2dnbGUtcHJvdmlkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEZlYXR1cmVUb2dnbGVEaXJlY3RpdmUgfSBmcm9tICcuL25neC1mZWF0dXJlLXRvZ2dsZS5kaXJlY3RpdmUnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtGZWF0dXJlVG9nZ2xlUHJvdmlkZXJDb21wb25lbnQsIEZlYXR1cmVUb2dnbGVEaXJlY3RpdmVdLFxuICBleHBvcnRzOiBbRmVhdHVyZVRvZ2dsZVByb3ZpZGVyQ29tcG9uZW50LCBGZWF0dXJlVG9nZ2xlRGlyZWN0aXZlXSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIEZlYXR1cmVUb2dnbGVNb2R1bGUge31cbiJdfQ== |
@@ -5,3 +5,2 @@ /* | ||
export * from './lib/ngx-feature-toggle.directive'; | ||
export * from './lib/ngx-feature-toggle-when-disabled.directive'; | ||
export * from './lib/ngx-feature-toggle-provider.component'; | ||
@@ -12,2 +11,2 @@ export * from './lib/ngx-feature-toggle.module'; | ||
export * from './lib/ngx-feature-toggle-can-load-guard.router'; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1mZWF0dXJlLXRvZ2dsZS8iLCJzb3VyY2VzIjpbInB1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYywwREFBMEQsQ0FBQztBQUN6RSxjQUFjLGdEQUFnRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBuZ3gtZmVhdHVyZS10b2dnbGVcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9uZ3gtZmVhdHVyZS10b2dnbGUuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL25neC1mZWF0dXJlLXRvZ2dsZS13aGVuLWRpc2FibGVkLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9uZ3gtZmVhdHVyZS10b2dnbGUtcHJvdmlkZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL25neC1mZWF0dXJlLXRvZ2dsZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbmd4LWZlYXR1cmUtdG9nZ2xlLWNhbi1hY3RpdmF0ZS1ndWFyZC5yb3V0ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbmd4LWZlYXR1cmUtdG9nZ2xlLWNhbi1hY3RpdmF0ZS1jaGlsZC1ndWFyZC5yb3V0ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbmd4LWZlYXR1cmUtdG9nZ2xlLWNhbi1sb2FkLWd1YXJkLnJvdXRlcic7XG4iXX0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1mZWF0dXJlLXRvZ2dsZS8iLCJzb3VyY2VzIjpbInB1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsMERBQTBELENBQUM7QUFDekUsY0FBYyxnREFBZ0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygbmd4LWZlYXR1cmUtdG9nZ2xlXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbmd4LWZlYXR1cmUtdG9nZ2xlLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9uZ3gtZmVhdHVyZS10b2dnbGUtcHJvdmlkZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL25neC1mZWF0dXJlLXRvZ2dsZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbmd4LWZlYXR1cmUtdG9nZ2xlLWNhbi1hY3RpdmF0ZS1ndWFyZC5yb3V0ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbmd4LWZlYXR1cmUtdG9nZ2xlLWNhbi1hY3RpdmF0ZS1jaGlsZC1ndWFyZC5yb3V0ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbmd4LWZlYXR1cmUtdG9nZ2xlLWNhbi1sb2FkLWd1YXJkLnJvdXRlcic7XG4iXX0= |
import { __decorate, __metadata } from 'tslib'; | ||
import { TemplateRef, ViewContainerRef, Input, Directive, Component, NgModule, isDevMode, ɵɵdefineInjectable, Injectable } from '@angular/core'; | ||
import { isDevMode, TemplateRef, ViewContainerRef, Input, Directive, Component, NgModule, ɵɵdefineInjectable, Injectable } from '@angular/core'; | ||
import { isOn, set } from 'feature-toggle-service'; | ||
@@ -19,3 +19,3 @@ import { CommonModule } from '@angular/common'; | ||
ngDoCheck() { | ||
if (this.isOn !== isOn(this.featureToggle)) { | ||
if (this.isOn !== this.isOnCheck(this.featureToggle)) { | ||
this.shouldRender(); | ||
@@ -25,3 +25,3 @@ } | ||
shouldRender() { | ||
this.isOn = isOn(this.featureToggle); | ||
this.isOn = this.isOnCheck(this.featureToggle); | ||
if (this.isOn) { | ||
@@ -34,2 +34,15 @@ this.viewContainer.createEmbeddedView(this.templateRef); | ||
} | ||
isOnCheck(featureToggle) { | ||
const DEV_MODE = isDevMode(); | ||
const isFeatureToggleOn = (toggle) => toggle[0] === '!' ? !isOn(toggle.replace('!', '')) : isOn(toggle); | ||
if (typeof featureToggle === 'string') { | ||
return isFeatureToggleOn(featureToggle); | ||
} | ||
else if (Array.isArray(featureToggle)) { | ||
return featureToggle.every(isFeatureToggleOn); | ||
} | ||
else if (DEV_MODE) { | ||
console.error('`NgxFeatureToggle`: `featureToggle` should receive an array or an string as a value.'); | ||
} | ||
} | ||
}; | ||
@@ -42,3 +55,3 @@ FeatureToggleDirective.ctorParameters = () => [ | ||
Input(), | ||
__metadata("design:type", String) | ||
__metadata("design:type", Object) | ||
], FeatureToggleDirective.prototype, "featureToggle", void 0); | ||
@@ -54,46 +67,2 @@ FeatureToggleDirective = __decorate([ | ||
let FeatureToggleWhenDisabledDirective = class FeatureToggleWhenDisabledDirective { | ||
constructor(templateRef, viewContainer) { | ||
this.templateRef = templateRef; | ||
this.viewContainer = viewContainer; | ||
this.isOn = false; | ||
} | ||
ngOnInit() { | ||
if (!this.featureToggleWhenDisabled) { | ||
throw new Error('Attribute `featureToggleWhenDisabled` should not be null or empty'); | ||
} | ||
this.shouldRender(); | ||
} | ||
ngDoCheck() { | ||
if (this.isOn !== isOn(this.featureToggleWhenDisabled)) { | ||
this.shouldRender(); | ||
} | ||
} | ||
shouldRender() { | ||
this.isOn = isOn(this.featureToggleWhenDisabled); | ||
if (!this.isOn) { | ||
this.viewContainer.createEmbeddedView(this.templateRef); | ||
} | ||
else { | ||
this.viewContainer.clear(); | ||
} | ||
} | ||
}; | ||
FeatureToggleWhenDisabledDirective.ctorParameters = () => [ | ||
{ type: TemplateRef }, | ||
{ type: ViewContainerRef } | ||
]; | ||
__decorate([ | ||
Input(), | ||
__metadata("design:type", String) | ||
], FeatureToggleWhenDisabledDirective.prototype, "featureToggleWhenDisabled", void 0); | ||
FeatureToggleWhenDisabledDirective = __decorate([ | ||
Directive({ | ||
// tslint:disable-next-line: directive-selector | ||
selector: '[featureToggleWhenDisabled]', | ||
}), | ||
__metadata("design:paramtypes", [TemplateRef, | ||
ViewContainerRef]) | ||
], FeatureToggleWhenDisabledDirective); | ||
let FeatureToggleProviderComponent = class FeatureToggleProviderComponent { | ||
@@ -137,4 +106,4 @@ constructor() { | ||
NgModule({ | ||
declarations: [FeatureToggleProviderComponent, FeatureToggleDirective, FeatureToggleWhenDisabledDirective], | ||
exports: [FeatureToggleProviderComponent, FeatureToggleDirective, FeatureToggleWhenDisabledDirective], | ||
declarations: [FeatureToggleProviderComponent, FeatureToggleDirective], | ||
exports: [FeatureToggleProviderComponent, FeatureToggleDirective], | ||
imports: [CommonModule], | ||
@@ -156,10 +125,13 @@ }) | ||
} | ||
if (!Array.isArray(route.data.featureToggle)) { | ||
if (DEV_MODE) { | ||
console.error('`NgxFeatureToggleCanActivateGuard` need to receive `featureToggle` as data as an array in your route configuration.'); | ||
} | ||
return false; | ||
const isFeatureToggleOn = (toggle) => toggle[0] === '!' ? !isOn(toggle.replace('!', '')) : isOn(toggle); | ||
if (typeof route.data.featureToggle === 'string') { | ||
return isFeatureToggleOn(route.data.featureToggle); | ||
} | ||
const userCanAccess = route.data.featureToggle.every(toggle => toggle[0] === '!' ? !isOn(toggle.replace('!', '')) : isOn(toggle)); | ||
return userCanAccess; | ||
else if (Array.isArray(route.data.featureToggle)) { | ||
return route.data.featureToggle.every(isFeatureToggleOn); | ||
} | ||
if (DEV_MODE) { | ||
console.error('`NgxFeatureToggleCanActivateGuard` need to receive `featureToggle` as data as an array or string in your route configuration.'); | ||
} | ||
return false; | ||
} | ||
@@ -184,10 +156,13 @@ }; | ||
} | ||
if (!Array.isArray(route.data.featureToggle)) { | ||
if (DEV_MODE) { | ||
console.error('`NgxFeatureToggleCanActivateChildGuard` need to receive `featureToggle` as data as an array in your route configuration.'); | ||
} | ||
return false; | ||
const isFeatureToggleOn = (toggle) => toggle[0] === '!' ? !isOn(toggle.replace('!', '')) : isOn(toggle); | ||
if (typeof route.data.featureToggle === 'string') { | ||
return isFeatureToggleOn(route.data.featureToggle); | ||
} | ||
const userCanAccess = route.data.featureToggle.every(toggle => toggle[0] === '!' ? !isOn(toggle.replace('!', '')) : isOn(toggle)); | ||
return userCanAccess; | ||
else if (Array.isArray(route.data.featureToggle)) { | ||
return route.data.featureToggle.every(isFeatureToggleOn); | ||
} | ||
if (DEV_MODE) { | ||
console.error('`NgxFeatureToggleCanActivateChildGuard` need to receive `featureToggle` as data as an array or string in your route configuration.'); | ||
} | ||
return false; | ||
} | ||
@@ -212,10 +187,13 @@ }; | ||
} | ||
if (!Array.isArray(route.data.featureToggle)) { | ||
if (DEV_MODE) { | ||
console.error('`NgxFeatureToggleCanLoadGuard` need to receive `featureToggle` as data as an array in your route configuration.'); | ||
} | ||
return false; | ||
const isFeatureToggleOn = (toggle) => toggle[0] === '!' ? !isOn(toggle.replace('!', '')) : isOn(toggle); | ||
if (typeof route.data.featureToggle === 'string') { | ||
return isFeatureToggleOn(route.data.featureToggle); | ||
} | ||
const userCanAccess = route.data.featureToggle.every(toggle => toggle[0] === '!' ? !isOn(toggle.replace('!', '')) : isOn(toggle)); | ||
return userCanAccess; | ||
else if (Array.isArray(route.data.featureToggle)) { | ||
return route.data.featureToggle.every(isFeatureToggleOn); | ||
} | ||
if (DEV_MODE) { | ||
console.error('`NgxFeatureToggleCanLoadGuard` need to receive `featureToggle` as data as an array or string in your route configuration.'); | ||
} | ||
return false; | ||
} | ||
@@ -236,3 +214,3 @@ }; | ||
export { FeatureToggleDirective, FeatureToggleModule, FeatureToggleProviderComponent, FeatureToggleWhenDisabledDirective, NgxFeatureToggleCanActivateChildGuard, NgxFeatureToggleCanActivateGuard, NgxFeatureToggleCanLoadGuard }; | ||
export { FeatureToggleDirective, FeatureToggleModule, FeatureToggleProviderComponent, NgxFeatureToggleCanActivateChildGuard, NgxFeatureToggleCanActivateGuard, NgxFeatureToggleCanLoadGuard }; | ||
//# sourceMappingURL=ngx-feature-toggle.js.map |
import { __decorate, __metadata } from 'tslib'; | ||
import { TemplateRef, ViewContainerRef, Input, Directive, Component, NgModule, isDevMode, ɵɵdefineInjectable, Injectable } from '@angular/core'; | ||
import { isDevMode, TemplateRef, ViewContainerRef, Input, Directive, Component, NgModule, ɵɵdefineInjectable, Injectable } from '@angular/core'; | ||
import { isOn, set } from 'feature-toggle-service'; | ||
@@ -19,3 +19,3 @@ import { CommonModule } from '@angular/common'; | ||
FeatureToggleDirective.prototype.ngDoCheck = function () { | ||
if (this.isOn !== isOn(this.featureToggle)) { | ||
if (this.isOn !== this.isOnCheck(this.featureToggle)) { | ||
this.shouldRender(); | ||
@@ -25,3 +25,3 @@ } | ||
FeatureToggleDirective.prototype.shouldRender = function () { | ||
this.isOn = isOn(this.featureToggle); | ||
this.isOn = this.isOnCheck(this.featureToggle); | ||
if (this.isOn) { | ||
@@ -34,2 +34,17 @@ this.viewContainer.createEmbeddedView(this.templateRef); | ||
}; | ||
FeatureToggleDirective.prototype.isOnCheck = function (featureToggle) { | ||
var DEV_MODE = isDevMode(); | ||
var isFeatureToggleOn = function (toggle) { | ||
return toggle[0] === '!' ? !isOn(toggle.replace('!', '')) : isOn(toggle); | ||
}; | ||
if (typeof featureToggle === 'string') { | ||
return isFeatureToggleOn(featureToggle); | ||
} | ||
else if (Array.isArray(featureToggle)) { | ||
return featureToggle.every(isFeatureToggleOn); | ||
} | ||
else if (DEV_MODE) { | ||
console.error('`NgxFeatureToggle`: `featureToggle` should receive an array or an string as a value.'); | ||
} | ||
}; | ||
FeatureToggleDirective.ctorParameters = function () { return [ | ||
@@ -41,3 +56,3 @@ { type: TemplateRef }, | ||
Input(), | ||
__metadata("design:type", String) | ||
__metadata("design:type", Object) | ||
], FeatureToggleDirective.prototype, "featureToggle", void 0); | ||
@@ -55,47 +70,2 @@ FeatureToggleDirective = __decorate([ | ||
var FeatureToggleWhenDisabledDirective = /** @class */ (function () { | ||
function FeatureToggleWhenDisabledDirective(templateRef, viewContainer) { | ||
this.templateRef = templateRef; | ||
this.viewContainer = viewContainer; | ||
this.isOn = false; | ||
} | ||
FeatureToggleWhenDisabledDirective.prototype.ngOnInit = function () { | ||
if (!this.featureToggleWhenDisabled) { | ||
throw new Error('Attribute `featureToggleWhenDisabled` should not be null or empty'); | ||
} | ||
this.shouldRender(); | ||
}; | ||
FeatureToggleWhenDisabledDirective.prototype.ngDoCheck = function () { | ||
if (this.isOn !== isOn(this.featureToggleWhenDisabled)) { | ||
this.shouldRender(); | ||
} | ||
}; | ||
FeatureToggleWhenDisabledDirective.prototype.shouldRender = function () { | ||
this.isOn = isOn(this.featureToggleWhenDisabled); | ||
if (!this.isOn) { | ||
this.viewContainer.createEmbeddedView(this.templateRef); | ||
} | ||
else { | ||
this.viewContainer.clear(); | ||
} | ||
}; | ||
FeatureToggleWhenDisabledDirective.ctorParameters = function () { return [ | ||
{ type: TemplateRef }, | ||
{ type: ViewContainerRef } | ||
]; }; | ||
__decorate([ | ||
Input(), | ||
__metadata("design:type", String) | ||
], FeatureToggleWhenDisabledDirective.prototype, "featureToggleWhenDisabled", void 0); | ||
FeatureToggleWhenDisabledDirective = __decorate([ | ||
Directive({ | ||
// tslint:disable-next-line: directive-selector | ||
selector: '[featureToggleWhenDisabled]', | ||
}), | ||
__metadata("design:paramtypes", [TemplateRef, | ||
ViewContainerRef]) | ||
], FeatureToggleWhenDisabledDirective); | ||
return FeatureToggleWhenDisabledDirective; | ||
}()); | ||
var FeatureToggleProviderComponent = /** @class */ (function () { | ||
@@ -139,4 +109,4 @@ function FeatureToggleProviderComponent() { | ||
NgModule({ | ||
declarations: [FeatureToggleProviderComponent, FeatureToggleDirective, FeatureToggleWhenDisabledDirective], | ||
exports: [FeatureToggleProviderComponent, FeatureToggleDirective, FeatureToggleWhenDisabledDirective], | ||
declarations: [FeatureToggleProviderComponent, FeatureToggleDirective], | ||
exports: [FeatureToggleProviderComponent, FeatureToggleDirective], | ||
imports: [CommonModule], | ||
@@ -162,12 +132,15 @@ }) | ||
} | ||
if (!Array.isArray(route.data.featureToggle)) { | ||
if (DEV_MODE) { | ||
console.error('`NgxFeatureToggleCanActivateGuard` need to receive `featureToggle` as data as an array in your route configuration.'); | ||
} | ||
return false; | ||
var isFeatureToggleOn = function (toggle) { | ||
return toggle[0] === '!' ? !isOn(toggle.replace('!', '')) : isOn(toggle); | ||
}; | ||
if (typeof route.data.featureToggle === 'string') { | ||
return isFeatureToggleOn(route.data.featureToggle); | ||
} | ||
var userCanAccess = route.data.featureToggle.every(function (toggle) { | ||
return toggle[0] === '!' ? !isOn(toggle.replace('!', '')) : isOn(toggle); | ||
}); | ||
return userCanAccess; | ||
else if (Array.isArray(route.data.featureToggle)) { | ||
return route.data.featureToggle.every(isFeatureToggleOn); | ||
} | ||
if (DEV_MODE) { | ||
console.error('`NgxFeatureToggleCanActivateGuard` need to receive `featureToggle` as data as an array or string in your route configuration.'); | ||
} | ||
return false; | ||
}; | ||
@@ -195,12 +168,15 @@ NgxFeatureToggleCanActivateGuard.ɵprov = ɵɵdefineInjectable({ factory: function NgxFeatureToggleCanActivateGuard_Factory() { return new NgxFeatureToggleCanActivateGuard(); }, token: NgxFeatureToggleCanActivateGuard, providedIn: "root" }); | ||
} | ||
if (!Array.isArray(route.data.featureToggle)) { | ||
if (DEV_MODE) { | ||
console.error('`NgxFeatureToggleCanActivateChildGuard` need to receive `featureToggle` as data as an array in your route configuration.'); | ||
} | ||
return false; | ||
var isFeatureToggleOn = function (toggle) { | ||
return toggle[0] === '!' ? !isOn(toggle.replace('!', '')) : isOn(toggle); | ||
}; | ||
if (typeof route.data.featureToggle === 'string') { | ||
return isFeatureToggleOn(route.data.featureToggle); | ||
} | ||
var userCanAccess = route.data.featureToggle.every(function (toggle) { | ||
return toggle[0] === '!' ? !isOn(toggle.replace('!', '')) : isOn(toggle); | ||
}); | ||
return userCanAccess; | ||
else if (Array.isArray(route.data.featureToggle)) { | ||
return route.data.featureToggle.every(isFeatureToggleOn); | ||
} | ||
if (DEV_MODE) { | ||
console.error('`NgxFeatureToggleCanActivateChildGuard` need to receive `featureToggle` as data as an array or string in your route configuration.'); | ||
} | ||
return false; | ||
}; | ||
@@ -228,12 +204,15 @@ NgxFeatureToggleCanActivateChildGuard.ɵprov = ɵɵdefineInjectable({ factory: function NgxFeatureToggleCanActivateChildGuard_Factory() { return new NgxFeatureToggleCanActivateChildGuard(); }, token: NgxFeatureToggleCanActivateChildGuard, providedIn: "root" }); | ||
} | ||
if (!Array.isArray(route.data.featureToggle)) { | ||
if (DEV_MODE) { | ||
console.error('`NgxFeatureToggleCanLoadGuard` need to receive `featureToggle` as data as an array in your route configuration.'); | ||
} | ||
return false; | ||
var isFeatureToggleOn = function (toggle) { | ||
return toggle[0] === '!' ? !isOn(toggle.replace('!', '')) : isOn(toggle); | ||
}; | ||
if (typeof route.data.featureToggle === 'string') { | ||
return isFeatureToggleOn(route.data.featureToggle); | ||
} | ||
var userCanAccess = route.data.featureToggle.every(function (toggle) { | ||
return toggle[0] === '!' ? !isOn(toggle.replace('!', '')) : isOn(toggle); | ||
}); | ||
return userCanAccess; | ||
else if (Array.isArray(route.data.featureToggle)) { | ||
return route.data.featureToggle.every(isFeatureToggleOn); | ||
} | ||
if (DEV_MODE) { | ||
console.error('`NgxFeatureToggleCanLoadGuard` need to receive `featureToggle` as data as an array or string in your route configuration.'); | ||
} | ||
return false; | ||
}; | ||
@@ -255,3 +234,3 @@ NgxFeatureToggleCanLoadGuard.ɵprov = ɵɵdefineInjectable({ factory: function NgxFeatureToggleCanLoadGuard_Factory() { return new NgxFeatureToggleCanLoadGuard(); }, token: NgxFeatureToggleCanLoadGuard, providedIn: "root" }); | ||
export { FeatureToggleDirective, FeatureToggleModule, FeatureToggleProviderComponent, FeatureToggleWhenDisabledDirective, NgxFeatureToggleCanActivateChildGuard, NgxFeatureToggleCanActivateGuard, NgxFeatureToggleCanLoadGuard }; | ||
export { FeatureToggleDirective, FeatureToggleModule, FeatureToggleProviderComponent, NgxFeatureToggleCanActivateChildGuard, NgxFeatureToggleCanActivateGuard, NgxFeatureToggleCanLoadGuard }; | ||
//# sourceMappingURL=ngx-feature-toggle.js.map |
@@ -5,3 +5,3 @@ import { OnInit, TemplateRef, ViewContainerRef, DoCheck } from '@angular/core'; | ||
private viewContainer; | ||
featureToggle: string; | ||
featureToggle: string[] | string; | ||
private isOn; | ||
@@ -12,2 +12,3 @@ constructor(templateRef: TemplateRef<any>, viewContainer: ViewContainerRef); | ||
private shouldRender; | ||
isOnCheck(featureToggle: string[] | string): boolean; | ||
} |
@@ -1,1 +0,1 @@ | ||
{"__symbolic":"module","version":4,"metadata":{"FeatureToggleDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":11,"character":1},"arguments":[{"selector":"[featureToggle]"}]}],"members":{"featureToggle":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"reference","name":"any"}]},{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":23,"character":27}]}],"ngOnInit":[{"__symbolic":"method"}],"ngDoCheck":[{"__symbolic":"method"}],"shouldRender":[{"__symbolic":"method"}]}},"FeatureToggleWhenDisabledDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":11,"character":1},"arguments":[{"selector":"[featureToggleWhenDisabled]"}]}],"members":{"featureToggleWhenDisabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"reference","name":"any"}]},{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":23,"character":27}]}],"ngOnInit":[{"__symbolic":"method"}],"ngDoCheck":[{"__symbolic":"method"}],"shouldRender":[{"__symbolic":"method"}]}},"FeatureToggleProviderComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"feature-toggle-provider","template":"\n <ng-content></ng-content>\n "}]}],"members":{"features":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3}}]}],"ngOnInit":[{"__symbolic":"method"}],"ngDoCheck":[{"__symbolic":"method"}],"setFeatureToggles":[{"__symbolic":"method"}]}},"FeatureToggleModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":6,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"FeatureToggleProviderComponent"},{"__symbolic":"reference","name":"FeatureToggleDirective"},{"__symbolic":"reference","name":"FeatureToggleWhenDisabledDirective"}],"exports":[{"__symbolic":"reference","name":"FeatureToggleProviderComponent"},{"__symbolic":"reference","name":"FeatureToggleDirective"},{"__symbolic":"reference","name":"FeatureToggleWhenDisabledDirective"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":9,"character":12}]}]}],"members":{}},"NgxFeatureToggleCanActivateGuard":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":5,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"isDevMode":[{"__symbolic":"method"}],"canActivate":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"NgxFeatureToggleCanActivateChildGuard":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":5,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"isDevMode":[{"__symbolic":"method"}],"canActivateChild":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"NgxFeatureToggleCanLoadGuard":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":5,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"isDevMode":[{"__symbolic":"method"}],"canLoad":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}}},"origins":{"FeatureToggleDirective":"./lib/ngx-feature-toggle.directive","FeatureToggleWhenDisabledDirective":"./lib/ngx-feature-toggle-when-disabled.directive","FeatureToggleProviderComponent":"./lib/ngx-feature-toggle-provider.component","FeatureToggleModule":"./lib/ngx-feature-toggle.module","NgxFeatureToggleCanActivateGuard":"./lib/ngx-feature-toggle-can-activate-guard.router","NgxFeatureToggleCanActivateChildGuard":"./lib/ngx-feature-toggle-can-activate-child-guard.router","NgxFeatureToggleCanLoadGuard":"./lib/ngx-feature-toggle-can-load-guard.router"},"importAs":"ngx-feature-toggle"} | ||
{"__symbolic":"module","version":4,"metadata":{"FeatureToggleDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":12,"character":1},"arguments":[{"selector":"[featureToggle]"}]}],"members":{"featureToggle":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"reference","name":"any"}]},{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":22,"character":27}]}],"ngOnInit":[{"__symbolic":"method"}],"ngDoCheck":[{"__symbolic":"method"}],"shouldRender":[{"__symbolic":"method"}],"isOnCheck":[{"__symbolic":"method"}]}},"FeatureToggleProviderComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"feature-toggle-provider","template":"\n <ng-content></ng-content>\n "}]}],"members":{"features":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3}}]}],"ngOnInit":[{"__symbolic":"method"}],"ngDoCheck":[{"__symbolic":"method"}],"setFeatureToggles":[{"__symbolic":"method"}]}},"FeatureToggleModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":5,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"FeatureToggleProviderComponent"},{"__symbolic":"reference","name":"FeatureToggleDirective"}],"exports":[{"__symbolic":"reference","name":"FeatureToggleProviderComponent"},{"__symbolic":"reference","name":"FeatureToggleDirective"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":8,"character":12}]}]}],"members":{}},"NgxFeatureToggleCanActivateGuard":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":5,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"isDevMode":[{"__symbolic":"method"}],"canActivate":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"NgxFeatureToggleCanActivateChildGuard":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":9,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"isDevMode":[{"__symbolic":"method"}],"canActivateChild":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"NgxFeatureToggleCanLoadGuard":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":5,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"isDevMode":[{"__symbolic":"method"}],"canLoad":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}}},"origins":{"FeatureToggleDirective":"./lib/ngx-feature-toggle.directive","FeatureToggleProviderComponent":"./lib/ngx-feature-toggle-provider.component","FeatureToggleModule":"./lib/ngx-feature-toggle.module","NgxFeatureToggleCanActivateGuard":"./lib/ngx-feature-toggle-can-activate-guard.router","NgxFeatureToggleCanActivateChildGuard":"./lib/ngx-feature-toggle-can-activate-child-guard.router","NgxFeatureToggleCanLoadGuard":"./lib/ngx-feature-toggle-can-load-guard.router"},"importAs":"ngx-feature-toggle"} |
@@ -5,3 +5,3 @@ { | ||
"author": "Will Mendes <willmendesneto@gmail.com>", | ||
"version": "7.4.4", | ||
"version": "7.4.5", | ||
"keywords": [ | ||
@@ -8,0 +8,0 @@ "angular", |
export * from './lib/ngx-feature-toggle.directive'; | ||
export * from './lib/ngx-feature-toggle-when-disabled.directive'; | ||
export * from './lib/ngx-feature-toggle-provider.component'; | ||
@@ -4,0 +3,0 @@ export * from './lib/ngx-feature-toggle.module'; |
100
README.md
@@ -93,6 +93,6 @@ # NGX Feature Toggle | ||
```typescript | ||
import { Component } from '@angular/core'; | ||
import { Component } from "@angular/core"; | ||
@Component({ | ||
selector: 'component-docs', | ||
selector: "component-docs", | ||
template: ` | ||
@@ -105,13 +105,24 @@ <feature-toggle-provider [features]="featureToggleData"> | ||
<p> | ||
condition is false and "featureToggle" is disabled. In that case this content should not | ||
be rendered. | ||
condition is false and "featureToggle" is disabled. In that case this | ||
content should not be rendered. | ||
</p> | ||
</div> | ||
<div *featureToggleWhenDisabled="'enableFirstText'"> | ||
<div *featureToggle="'!enableFirstText'"> | ||
<p> | ||
condition is false and "featureToggle" is disabled | ||
<b>and it has "featureToggleWhenDisabled" directive.</b> In that case this content should | ||
be rendered. | ||
<b>but it has "!" as a prefix of the feature toggle to be checked.</b> | ||
In that case this content should be rendered. | ||
</p> | ||
</div> | ||
<div | ||
class="combined-feature-toggles-with-truthly-option" | ||
*featureToggle="['!enableFirstText', 'enableSecondText']" | ||
> | ||
<p> | ||
This is a combined condition. It shows if <b>enableSecondText</b> is | ||
true and <b>enableFirstText</b> is falsy, but it has "!" as a prefix. | ||
If both cases are correct, then the "featureToggle" is enabled and | ||
rendering this component. | ||
</p> | ||
</div> | ||
</feature-toggle-provider> | ||
@@ -135,10 +146,27 @@ `, | ||
export const routes: Routes = [ | ||
{ | ||
path: 'home', | ||
component: HomeComponent, | ||
canLoad: [NgxFeatureToggleCanLoadGuard], | ||
canActivate: [NgxFeatureToggleCanLoadGuard], | ||
data: { | ||
featureToggle: ['enableSecondText'], | ||
// Using array as configuration | ||
featureToggle: [ | ||
// This configuration will check if feature toggle is enabled | ||
'enableSecondText', | ||
// This configuration will check if feature toggle is disabled | ||
// since it has `!` prefix in the configuration | ||
'!enableFirstText' | ||
], | ||
}, | ||
}, | ||
{ | ||
path: 'dashboard', | ||
component: DashboardComponent, | ||
canActivate: [NgxFeatureToggleCanLoadGuard], | ||
data: { | ||
// Using string as configuration | ||
featureToggle: 'enableSecondText', | ||
}, | ||
}, | ||
]; | ||
@@ -153,2 +181,3 @@ ... | ||
export const routes: Routes = [ | ||
{ | ||
@@ -159,5 +188,21 @@ path: 'home', | ||
data: { | ||
featureToggle: ['enableSecondText'], | ||
// Using array as configuration | ||
featureToggle: [ | ||
// This configuration will check if feature toggle is enabled | ||
'enableSecondText', | ||
// This configuration will check if feature toggle is disabled | ||
// since it has `!` prefix in the configuration | ||
'!enableFirstText' | ||
], | ||
}, | ||
}, | ||
{ | ||
path: 'dashboard', | ||
component: DashboardComponent, | ||
canActivate: [NgxFeatureToggleCanActivateGuard], | ||
data: { | ||
// Using string as configuration | ||
featureToggle: 'enableSecondText', | ||
}, | ||
}, | ||
]; | ||
@@ -177,2 +222,3 @@ ... | ||
data: { | ||
// Using array as configuration | ||
featureToggle: [ | ||
@@ -187,2 +233,11 @@ // This configuration will check if feature toggle is enabled | ||
}, | ||
{ | ||
path: 'dashboard', | ||
component: DashboardComponent, | ||
canActivate: [NgxFeatureToggleCanActivateGuard], | ||
data: { | ||
// Using string as configuration | ||
featureToggle: 'enableSecondText', | ||
}, | ||
}, | ||
]; | ||
@@ -211,3 +266,8 @@ ... | ||
data: { | ||
featureToggle: ['enableCustomerPage', '!enableChildrenNavigation'], | ||
featureToggle: [ | ||
// This configuration will check if feature toggle is enabled | ||
'enableCustomerPage', | ||
// This configuration will check if feature toggle is disabled | ||
// since it has `!` prefix in the configuration | ||
'!enableChildrenNavigation'], | ||
}, | ||
@@ -217,2 +277,20 @@ }, | ||
}, | ||
{ | ||
path: 'dashboard', | ||
component: DashboardComponent, | ||
canActivateChild: [NgxFeatureToggleCanActivateChildGuard], | ||
children: [ | ||
{ | ||
path: ':id', | ||
component: DashboardDetailsComponent, | ||
// This is the featureToggle configuration for | ||
// the child component. It can also use | ||
// a combination of feature toggles | ||
data: { | ||
// using string to configure | ||
featureToggle: 'enableDashboardDetailsPage', | ||
}, | ||
}, | ||
], | ||
}, | ||
]; | ||
@@ -219,0 +297,0 @@ ... |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
349
229536
38
1380