@zodiac-ui/ng-observable
Version:
Create powerful reactive components with Angular. AoT compatible and Ivy ready.
171 lines • 10.7 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { makePropertyMapper } from "./make-property-mapper";
import { InvokeSubject } from "../invoke-subject";
/**
* @param {?} decorator
* @return {?}
*/
export function makeDecorator(decorator) {
return decorator;
}
/**
* @param {?} decorator
* @return {?}
*/
export function makePropDecorator(decorator) {
return decorator;
}
/**
* @template R, T, U
* @param {?} selectorFactory
* @return {?}
*/
export function computed(selectorFactory) {
return (/**
* @param {?} target
* @param {?} propertyKey
* @return {?}
*/
function (target, propertyKey) {
makePropertyMapper(target, propertyKey, selectorFactory);
});
}
/**
* @param {?} target
* @param {?} propertyKey
* @param {?} name
* @return {?}
*/
export function decorateLifecycle(target, propertyKey, name) {
/** @type {?} */
var originalHook = target[name];
target[name] = new InvokeSubject((/**
* @this {?}
* @param {...?} args
* @return {?}
*/
function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
this[propertyKey].apply(this, args);
originalHook.apply(this, args);
}));
}
/**
* @template T
* @return {?}
*/
export function ngOnChanges() {
return (/**
* @param {?} target
* @param {?} propertyKey
* @return {?}
*/
function (target, propertyKey) {
return decorateLifecycle(target, propertyKey, "ngOnChanges");
});
}
/**
* @template T
* @return {?}
*/
export function ngOnInit() {
return (/**
* @param {?} target
* @param {?} propertyKey
* @return {?}
*/
function (target, propertyKey) {
return decorateLifecycle(target, propertyKey, "ngOnInit");
});
}
/**
* @template T
* @return {?}
*/
export function ngDoCheck() {
return (/**
* @param {?} target
* @param {?} propertyKey
* @return {?}
*/
function (target, propertyKey) {
return decorateLifecycle(target, propertyKey, "ngDoCheck");
});
}
/**
* @template T
* @return {?}
*/
export function ngAfterContentInit() {
return (/**
* @param {?} target
* @param {?} propertyKey
* @return {?}
*/
function (target, propertyKey) {
return decorateLifecycle(target, propertyKey, "ngAfterContentInit");
});
}
/**
* @template T
* @return {?}
*/
export function ngAfterContentChecked() {
return (/**
* @param {?} target
* @param {?} propertyKey
* @return {?}
*/
function (target, propertyKey) {
return decorateLifecycle(target, propertyKey, "ngAfterContentChecked");
});
}
/**
* @template T
* @return {?}
*/
export function ngAfterViewInit() {
return (/**
* @param {?} target
* @param {?} propertyKey
* @return {?}
*/
function (target, propertyKey) {
return decorateLifecycle(target, propertyKey, "ngAfterViewInit");
});
}
/**
* @template T
* @return {?}
*/
export function ngAfterViewChecked() {
return (/**
* @param {?} target
* @param {?} propertyKey
* @return {?}
*/
function (target, propertyKey) {
return decorateLifecycle(target, propertyKey, "ngAfterViewChecked");
});
}
/**
* @template T
* @return {?}
*/
export function ngOnDestroy() {
return (/**
* @param {?} target
* @param {?} propertyKey
* @return {?}
*/
function (target, propertyKey) {
return decorateLifecycle(target, propertyKey, "ngOnDestroy");
});
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B6b2RpYWMtdWkvbmctb2JzZXJ2YWJsZS8iLCJzb3VyY2VzIjpbImxpYi9pbnRlcm5hbHMvZGVjb3JhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFBOzs7OztBQUdqRCxNQUFNLFVBQVUsYUFBYSxDQUFDLFNBQW1CO0lBQzdDLE9BQU8sU0FBUyxDQUFBO0FBQ3BCLENBQUM7Ozs7O0FBRUQsTUFBTSxVQUFVLGlCQUFpQixDQUFDLFNBQW1CO0lBQ2pELE9BQU8sU0FBUyxDQUFBO0FBQ3BCLENBQUM7Ozs7OztBQUVELE1BQU0sVUFBVSxRQUFRLENBQ3BCLGVBQTRDO0lBRTVDOzs7OztJQUFPLFVBQVMsTUFBVyxFQUFFLFdBQWM7UUFDdkMsa0JBQWtCLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxlQUFlLENBQUMsQ0FBQTtJQUM1RCxDQUFDLEVBQUE7QUFDTCxDQUFDOzs7Ozs7O0FBRUQsTUFBTSxVQUFVLGlCQUFpQixDQUFDLE1BQVcsRUFBRSxXQUFtQixFQUFFLElBQVk7O1FBQ3RFLFlBQVksR0FBUSxNQUFNLENBQUMsSUFBSSxDQUFDO0lBQ3RDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGFBQWE7Ozs7O0lBQUM7UUFBb0IsY0FBYzthQUFkLFVBQWMsRUFBZCxxQkFBYyxFQUFkLElBQWM7WUFBZCx5QkFBYzs7UUFDL0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUE7UUFDbkMsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUE7SUFDbEMsQ0FBQyxFQUFDLENBQUE7QUFDTixDQUFDOzs7OztBQUVELE1BQU0sVUFBVSxXQUFXO0lBQ3ZCOzs7OztJQUFPLFVBQVMsTUFBTSxFQUFFLFdBQW1CO1FBQ3ZDLE9BQU8saUJBQWlCLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxhQUFhLENBQUMsQ0FBQTtJQUNoRSxDQUFDLEVBQUE7QUFDTCxDQUFDOzs7OztBQUVELE1BQU0sVUFBVSxRQUFRO0lBQ3BCOzs7OztJQUFPLFVBQVMsTUFBTSxFQUFFLFdBQVc7UUFDL0IsT0FBTyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxDQUFBO0lBQzdELENBQUMsRUFBQTtBQUNMLENBQUM7Ozs7O0FBRUQsTUFBTSxVQUFVLFNBQVM7SUFDckI7Ozs7O0lBQU8sVUFBUyxNQUFNLEVBQUUsV0FBVztRQUMvQixPQUFPLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUE7SUFDOUQsQ0FBQyxFQUFBO0FBQ0wsQ0FBQzs7Ozs7QUFFRCxNQUFNLFVBQVUsa0JBQWtCO0lBSTlCOzs7OztJQUFPLFVBQVMsTUFBTSxFQUFFLFdBQVc7UUFDL0IsT0FBTyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLG9CQUFvQixDQUFDLENBQUE7SUFDdkUsQ0FBQyxFQUFBO0FBQ0wsQ0FBQzs7Ozs7QUFFRCxNQUFNLFVBQVUscUJBQXFCO0lBSWpDOzs7OztJQUFPLFVBQVMsTUFBTSxFQUFFLFdBQVc7UUFDL0IsT0FBTyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLHVCQUF1QixDQUFDLENBQUE7SUFDMUUsQ0FBQyxFQUFBO0FBQ0wsQ0FBQzs7Ozs7QUFFRCxNQUFNLFVBQVUsZUFBZTtJQUkzQjs7Ozs7SUFBTyxVQUFTLE1BQU0sRUFBRSxXQUFXO1FBQy9CLE9BQU8saUJBQWlCLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsQ0FBQyxDQUFBO0lBQ3BFLENBQUMsRUFBQTtBQUNMLENBQUM7Ozs7O0FBRUQsTUFBTSxVQUFVLGtCQUFrQjtJQUk5Qjs7Ozs7SUFBTyxVQUFTLE1BQU0sRUFBRSxXQUFXO1FBQy9CLE9BQU8saUJBQWlCLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxvQkFBb0IsQ0FBQyxDQUFBO0lBQ3ZFLENBQUMsRUFBQTtBQUNMLENBQUM7Ozs7O0FBRUQsTUFBTSxVQUFVLFdBQVc7SUFDdkI7Ozs7O0lBQU8sVUFBUyxNQUFNLEVBQUUsV0FBVztRQUMvQixPQUFPLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsYUFBYSxDQUFDLENBQUE7SUFDaEUsQ0FBQyxFQUFBO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1ha2VQcm9wZXJ0eU1hcHBlciB9IGZyb20gXCIuL21ha2UtcHJvcGVydHktbWFwcGVyXCJcclxuaW1wb3J0IHsgSW52b2tlU3ViamVjdCB9IGZyb20gXCIuLi9pbnZva2Utc3ViamVjdFwiXHJcbmltcG9ydCB7IE5nT2JzZXJ2YWJsZSB9IGZyb20gXCIuLi9uZy1vYnNlcnZhYmxlXCJcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBtYWtlRGVjb3JhdG9yKGRlY29yYXRvcjogRnVuY3Rpb24pOiBhbnkge1xyXG4gICAgcmV0dXJuIGRlY29yYXRvclxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbWFrZVByb3BEZWNvcmF0b3IoZGVjb3JhdG9yOiBGdW5jdGlvbik6IGFueSB7XHJcbiAgICByZXR1cm4gZGVjb3JhdG9yXHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjb21wdXRlZDxSIGV4dGVuZHMgdW5rbm93biA9IG5ldmVyLCBUIGV4dGVuZHMgYW55ID0gYW55LCBVIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nPihcclxuICAgIHNlbGVjdG9yRmFjdG9yeTogKCkgPT4gKHN0YXRlOiBhbnkpID0+IFQgJiBSLFxyXG4pIHtcclxuICAgIHJldHVybiBmdW5jdGlvbih0YXJnZXQ6IGFueSwgcHJvcGVydHlLZXk6IFUpIHtcclxuICAgICAgICBtYWtlUHJvcGVydHlNYXBwZXIodGFyZ2V0LCBwcm9wZXJ0eUtleSwgc2VsZWN0b3JGYWN0b3J5KVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZGVjb3JhdGVMaWZlY3ljbGUodGFyZ2V0OiBhbnksIHByb3BlcnR5S2V5OiBzdHJpbmcsIG5hbWU6IHN0cmluZykge1xyXG4gICAgY29uc3Qgb3JpZ2luYWxIb29rOiBhbnkgPSB0YXJnZXRbbmFtZV1cclxuICAgIHRhcmdldFtuYW1lXSA9IG5ldyBJbnZva2VTdWJqZWN0KGZ1bmN0aW9uKHRoaXM6IGFueSwgLi4uYXJnczogYW55W10pIHtcclxuICAgICAgICB0aGlzW3Byb3BlcnR5S2V5XS5hcHBseSh0aGlzLCBhcmdzKVxyXG4gICAgICAgIG9yaWdpbmFsSG9vay5hcHBseSh0aGlzLCBhcmdzKVxyXG4gICAgfSlcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIG5nT25DaGFuZ2VzPFQgZXh0ZW5kcyBOZ09ic2VydmFibGU+KCk6ICh0YXJnZXQ6IFQsIHByb3BlcnR5S2V5OiBzdHJpbmcpID0+IHZvaWQge1xyXG4gICAgcmV0dXJuIGZ1bmN0aW9uKHRhcmdldCwgcHJvcGVydHlLZXk6IHN0cmluZykge1xyXG4gICAgICAgIHJldHVybiBkZWNvcmF0ZUxpZmVjeWNsZSh0YXJnZXQsIHByb3BlcnR5S2V5LCBcIm5nT25DaGFuZ2VzXCIpXHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBuZ09uSW5pdDxUIGV4dGVuZHMgTmdPYnNlcnZhYmxlPigpOiAodGFyZ2V0OiBULCBwcm9wZXJ0eUtleTogc3RyaW5nKSA9PiB2b2lkIHtcclxuICAgIHJldHVybiBmdW5jdGlvbih0YXJnZXQsIHByb3BlcnR5S2V5KSB7XHJcbiAgICAgICAgcmV0dXJuIGRlY29yYXRlTGlmZWN5Y2xlKHRhcmdldCwgcHJvcGVydHlLZXksIFwibmdPbkluaXRcIilcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIG5nRG9DaGVjazxUIGV4dGVuZHMgTmdPYnNlcnZhYmxlPigpOiAodGFyZ2V0OiBULCBwcm9wZXJ0eUtleTogc3RyaW5nKSA9PiB2b2lkIHtcclxuICAgIHJldHVybiBmdW5jdGlvbih0YXJnZXQsIHByb3BlcnR5S2V5KSB7XHJcbiAgICAgICAgcmV0dXJuIGRlY29yYXRlTGlmZWN5Y2xlKHRhcmdldCwgcHJvcGVydHlLZXksIFwibmdEb0NoZWNrXCIpXHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBuZ0FmdGVyQ29udGVudEluaXQ8VCBleHRlbmRzIE5nT2JzZXJ2YWJsZT4oKTogKFxyXG4gICAgdGFyZ2V0OiBULFxyXG4gICAgcHJvcGVydHlLZXk6IHN0cmluZyxcclxuKSA9PiB2b2lkIHtcclxuICAgIHJldHVybiBmdW5jdGlvbih0YXJnZXQsIHByb3BlcnR5S2V5KSB7XHJcbiAgICAgICAgcmV0dXJuIGRlY29yYXRlTGlmZWN5Y2xlKHRhcmdldCwgcHJvcGVydHlLZXksIFwibmdBZnRlckNvbnRlbnRJbml0XCIpXHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBuZ0FmdGVyQ29udGVudENoZWNrZWQ8VCBleHRlbmRzIE5nT2JzZXJ2YWJsZT4oKTogKFxyXG4gICAgdGFyZ2V0OiBULFxyXG4gICAgcHJvcGVydHlLZXk6IHN0cmluZyxcclxuKSA9PiB2b2lkIHtcclxuICAgIHJldHVybiBmdW5jdGlvbih0YXJnZXQsIHByb3BlcnR5S2V5KSB7XHJcbiAgICAgICAgcmV0dXJuIGRlY29yYXRlTGlmZWN5Y2xlKHRhcmdldCwgcHJvcGVydHlLZXksIFwibmdBZnRlckNvbnRlbnRDaGVja2VkXCIpXHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBuZ0FmdGVyVmlld0luaXQ8VCBleHRlbmRzIE5nT2JzZXJ2YWJsZT4oKTogKFxyXG4gICAgdGFyZ2V0OiBULFxyXG4gICAgcHJvcGVydHlLZXk6IHN0cmluZyxcclxuKSA9PiB2b2lkIHtcclxuICAgIHJldHVybiBmdW5jdGlvbih0YXJnZXQsIHByb3BlcnR5S2V5KSB7XHJcbiAgICAgICAgcmV0dXJuIGRlY29yYXRlTGlmZWN5Y2xlKHRhcmdldCwgcHJvcGVydHlLZXksIFwibmdBZnRlclZpZXdJbml0XCIpXHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBuZ0FmdGVyVmlld0NoZWNrZWQ8VCBleHRlbmRzIE5nT2JzZXJ2YWJsZT4oKTogKFxyXG4gICAgdGFyZ2V0OiBULFxyXG4gICAgcHJvcGVydHlLZXk6IHN0cmluZyxcclxuKSA9PiB2b2lkIHtcclxuICAgIHJldHVybiBmdW5jdGlvbih0YXJnZXQsIHByb3BlcnR5S2V5KSB7XHJcbiAgICAgICAgcmV0dXJuIGRlY29yYXRlTGlmZWN5Y2xlKHRhcmdldCwgcHJvcGVydHlLZXksIFwibmdBZnRlclZpZXdDaGVja2VkXCIpXHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBuZ09uRGVzdHJveTxUIGV4dGVuZHMgTmdPYnNlcnZhYmxlPigpOiAodGFyZ2V0OiBULCBwcm9wZXJ0eUtleTogc3RyaW5nKSA9PiB2b2lkIHtcclxuICAgIHJldHVybiBmdW5jdGlvbih0YXJnZXQsIHByb3BlcnR5S2V5KSB7XHJcbiAgICAgICAgcmV0dXJuIGRlY29yYXRlTGlmZWN5Y2xlKHRhcmdldCwgcHJvcGVydHlLZXksIFwibmdPbkRlc3Ryb3lcIilcclxuICAgIH1cclxufVxyXG5cclxuIl19