@zodiac-ui/ng-observable
Version:
Create powerful reactive components with Angular. AoT compatible and Ivy ready.
55 lines • 6.64 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import * as tslib_1 from "tslib";
import { InvokeSubject } from "../invoke-subject";
import { createMask } from "./create-mask";
/**
* Future API for declaring lifecycle hooks at runtime without extending a base class. Will
* become available if/when Angular supports runtime lifecycle hooks that work AoT or when
* the compiler can be configured to add lifecycle features without adding them to the class.
*
* @param {...?} flags Enum flags for toggling which lifecycle hooks to enable
*
* @return {?}
*/
export function UseHooks() {
var flags = [];
for (var _i = 0; _i < arguments.length; _i++) {
flags[_i] = arguments[_i];
}
/** @type {?} */
var features = createMask.apply(void 0, tslib_1.__spread(flags));
return (/**
* @param {?} target
* @return {?}
*/
function (target) {
if (features & 1) {
target.prototype.ngOnChanges = new InvokeSubject(target.prototype.ngOnChanges);
}
if (features & 2) {
target.prototype.ngOnInit = new InvokeSubject(target.prototype.ngOnInit);
}
if (features & 4) {
target.prototype.ngDoCheck = new InvokeSubject(target.prototype.ngDoCheck);
}
if (features & 8) {
target.prototype.ngAfterContentInit = new InvokeSubject(target.prototype.ngAfterContentInit);
}
if (features & 16) {
target.prototype.ngAfterContentChecked = new InvokeSubject(target.prototype.ngAfterContentChecked);
}
if (features & 32) {
target.prototype.ngAfterViewInit = new InvokeSubject(target.prototype.ngAfterViewInit);
}
if (features & 64) {
target.prototype.ngAfterViewChecked = new InvokeSubject(target.prototype.ngAfterViewChecked);
}
if (features & 128) {
target.prototype.ngOnDestroy = new InvokeSubject(target.prototype.ngOnDestroy);
}
});
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLWhvb2tzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHpvZGlhYy11aS9uZy1vYnNlcnZhYmxlLyIsInNvdXJjZXMiOlsibGliL2ludGVybmFscy91c2UtaG9va3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDakQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTs7Ozs7Ozs7OztBQVUxQyxNQUFNLFVBQVUsUUFBUTtJQUFDLGVBQWtCO1NBQWxCLFVBQWtCLEVBQWxCLHFCQUFrQixFQUFsQixJQUFrQjtRQUFsQiwwQkFBa0I7OztRQUNqQyxRQUFRLEdBQUcsVUFBVSxnQ0FBSSxLQUFLLEVBQUM7SUFDckM7Ozs7SUFBTyxVQUFTLE1BQVc7UUFDdkIsSUFBSSxRQUFRLEdBQUcsQ0FBQyxFQUFFO1lBQ2QsTUFBTSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEdBQUcsSUFBSSxhQUFhLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQTtTQUNqRjtRQUNELElBQUksUUFBUSxHQUFHLENBQUMsRUFBRTtZQUNkLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxHQUFHLElBQUksYUFBYSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUE7U0FDM0U7UUFDRCxJQUFJLFFBQVEsR0FBRyxDQUFDLEVBQUU7WUFDZCxNQUFNLENBQUMsU0FBUyxDQUFDLFNBQVMsR0FBRyxJQUFJLGFBQWEsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFBO1NBQzdFO1FBQ0QsSUFBSSxRQUFRLEdBQUcsQ0FBQyxFQUFFO1lBQ2QsTUFBTSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLGFBQWEsQ0FDbkQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FDdEMsQ0FBQTtTQUNKO1FBQ0QsSUFBSSxRQUFRLEdBQUcsRUFBRSxFQUFFO1lBQ2YsTUFBTSxDQUFDLFNBQVMsQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLGFBQWEsQ0FDdEQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxxQkFBcUIsQ0FDekMsQ0FBQTtTQUNKO1FBQ0QsSUFBSSxRQUFRLEdBQUcsRUFBRSxFQUFFO1lBQ2YsTUFBTSxDQUFDLFNBQVMsQ0FBQyxlQUFlLEdBQUcsSUFBSSxhQUFhLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsQ0FBQTtTQUN6RjtRQUNELElBQUksUUFBUSxHQUFHLEVBQUUsRUFBRTtZQUNmLE1BQU0sQ0FBQyxTQUFTLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxhQUFhLENBQ25ELE1BQU0sQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQ3RDLENBQUE7U0FDSjtRQUNELElBQUksUUFBUSxHQUFHLEdBQUcsRUFBRTtZQUNoQixNQUFNLENBQUMsU0FBUyxDQUFDLFdBQVcsR0FBRyxJQUFJLGFBQWEsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFBO1NBQ2pGO0lBQ0wsQ0FBQyxFQUFBO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEludm9rZVN1YmplY3QgfSBmcm9tIFwiLi4vaW52b2tlLXN1YmplY3RcIlxyXG5pbXBvcnQgeyBjcmVhdGVNYXNrIH0gZnJvbSBcIi4vY3JlYXRlLW1hc2tcIlxyXG5cclxuLyoqXHJcbiAqIEZ1dHVyZSBBUEkgZm9yIGRlY2xhcmluZyBsaWZlY3ljbGUgaG9va3MgYXQgcnVudGltZSB3aXRob3V0IGV4dGVuZGluZyBhIGJhc2UgY2xhc3MuIFdpbGxcclxuICogYmVjb21lIGF2YWlsYWJsZSBpZi93aGVuIEFuZ3VsYXIgc3VwcG9ydHMgcnVudGltZSBsaWZlY3ljbGUgaG9va3MgdGhhdCB3b3JrIEFvVCBvciB3aGVuXHJcbiAqIHRoZSBjb21waWxlciBjYW4gYmUgY29uZmlndXJlZCB0byBhZGQgbGlmZWN5Y2xlIGZlYXR1cmVzIHdpdGhvdXQgYWRkaW5nIHRoZW0gdG8gdGhlIGNsYXNzLlxyXG4gKlxyXG4gKiBAcGFyYW0gZmxhZ3MgRW51bSBmbGFncyBmb3IgdG9nZ2xpbmcgd2hpY2ggbGlmZWN5Y2xlIGhvb2tzIHRvIGVuYWJsZVxyXG4gKlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIFVzZUhvb2tzKC4uLmZsYWdzOiBudW1iZXJbXSkge1xyXG4gICAgY29uc3QgZmVhdHVyZXMgPSBjcmVhdGVNYXNrKC4uLmZsYWdzKVxyXG4gICAgcmV0dXJuIGZ1bmN0aW9uKHRhcmdldDogYW55KSB7XHJcbiAgICAgICAgaWYgKGZlYXR1cmVzICYgMSkge1xyXG4gICAgICAgICAgICB0YXJnZXQucHJvdG90eXBlLm5nT25DaGFuZ2VzID0gbmV3IEludm9rZVN1YmplY3QodGFyZ2V0LnByb3RvdHlwZS5uZ09uQ2hhbmdlcylcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGZlYXR1cmVzICYgMikge1xyXG4gICAgICAgICAgICB0YXJnZXQucHJvdG90eXBlLm5nT25Jbml0ID0gbmV3IEludm9rZVN1YmplY3QodGFyZ2V0LnByb3RvdHlwZS5uZ09uSW5pdClcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGZlYXR1cmVzICYgNCkge1xyXG4gICAgICAgICAgICB0YXJnZXQucHJvdG90eXBlLm5nRG9DaGVjayA9IG5ldyBJbnZva2VTdWJqZWN0KHRhcmdldC5wcm90b3R5cGUubmdEb0NoZWNrKVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZmVhdHVyZXMgJiA4KSB7XHJcbiAgICAgICAgICAgIHRhcmdldC5wcm90b3R5cGUubmdBZnRlckNvbnRlbnRJbml0ID0gbmV3IEludm9rZVN1YmplY3QoXHJcbiAgICAgICAgICAgICAgICB0YXJnZXQucHJvdG90eXBlLm5nQWZ0ZXJDb250ZW50SW5pdCxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZmVhdHVyZXMgJiAxNikge1xyXG4gICAgICAgICAgICB0YXJnZXQucHJvdG90eXBlLm5nQWZ0ZXJDb250ZW50Q2hlY2tlZCA9IG5ldyBJbnZva2VTdWJqZWN0KFxyXG4gICAgICAgICAgICAgICAgdGFyZ2V0LnByb3RvdHlwZS5uZ0FmdGVyQ29udGVudENoZWNrZWQsXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGZlYXR1cmVzICYgMzIpIHtcclxuICAgICAgICAgICAgdGFyZ2V0LnByb3RvdHlwZS5uZ0FmdGVyVmlld0luaXQgPSBuZXcgSW52b2tlU3ViamVjdCh0YXJnZXQucHJvdG90eXBlLm5nQWZ0ZXJWaWV3SW5pdClcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGZlYXR1cmVzICYgNjQpIHtcclxuICAgICAgICAgICAgdGFyZ2V0LnByb3RvdHlwZS5uZ0FmdGVyVmlld0NoZWNrZWQgPSBuZXcgSW52b2tlU3ViamVjdChcclxuICAgICAgICAgICAgICAgIHRhcmdldC5wcm90b3R5cGUubmdBZnRlclZpZXdDaGVja2VkLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChmZWF0dXJlcyAmIDEyOCkge1xyXG4gICAgICAgICAgICB0YXJnZXQucHJvdG90eXBlLm5nT25EZXN0cm95ID0gbmV3IEludm9rZVN1YmplY3QodGFyZ2V0LnByb3RvdHlwZS5uZ09uRGVzdHJveSlcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19