@zodiac-ui/ng-observable
Version:
Create powerful reactive components with Angular. AoT compatible and Ivy ready.
167 lines (161 loc) • 4.33 kB
JavaScript
import { __spread } from 'tslib';
import { filter, take, map, distinctUntilChanged, mapTo } from 'rxjs/operators';
import { isObservable } from 'rxjs';
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @template U, V
* @param {?} source
* @param {?} name
* @param {?=} once
* @param {?=} pipes
* @return {?}
*/
function createLifecycleHook(source, name, once, pipes) {
if (pipes === void 0) { pipes = [filter((/**
* @param {?} inst
* @return {?}
*/
function (inst) { return inst === source; }))]; }
/** @type {?} */
var hook = source[name];
if (once) {
pipes.push(take(1));
}
if (isObservable(hook)) {
return ((/** @type {?} */ (hook))).pipe.apply(((/** @type {?} */ (hook))), __spread(pipes));
}
else {
console.error(name + " is not an observable! Error context: ", source);
throw new Error();
}
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @template T, U
* @param {?} source
* @return {?}
*/
function ngOnChanges(source) {
/** @type {?} */
var onChangesPipe = [filter((/**
* @param {?} args
* @return {?}
*/
function (args) { return args[0] === source; })), map((/**
* @param {?} args
* @return {?}
*/
function (args) { return args[1]; }))];
return createLifecycleHook(source, "ngOnChanges", false, onChangesPipe);
}
/**
* @template T
* @param {?} source
* @return {?}
*/
function ngOnInit(source) {
return createLifecycleHook(source, "ngOnInit", true);
}
/**
* @template T
* @param {?} source
* @return {?}
*/
function ngDoCheck(source) {
return createLifecycleHook(source, "ngDoCheck");
}
/**
* @template T
* @param {?} source
* @return {?}
*/
function ngAfterContentInit(source) {
return createLifecycleHook(source, "ngAfterContentInit", true);
}
/**
* @template T
* @param {?} source
* @return {?}
*/
function ngAfterContentChecked(source) {
return createLifecycleHook(source, "ngAfterContentChecked");
}
/**
* @template T
* @param {?} source
* @return {?}
*/
function ngAfterViewInit(source) {
return createLifecycleHook(source, "ngAfterViewInit", true);
}
/**
* @template T
* @param {?} source
* @return {?}
*/
function ngAfterViewChecked(source) {
return createLifecycleHook(source, "ngAfterViewChecked");
}
/**
* @template T
* @param {?} source
* @return {?}
*/
function ngOnDestroy(source) {
return createLifecycleHook(source, "ngOnDestroy", true);
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @template T, U
* @param {...?} args
* @return {?}
*/
function select() {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
/** @type {?} */
var selector = args[args.length - 1];
/**
* @param {?} source
* @return {?}
*/
function pipeState(source) {
return source.pipe(map(selector), distinctUntilChanged());
}
return args.length > 1 ? pipeState(args[0]) : pipeState;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @template T
* @param {?=} value
* @return {?}
*/
function defaultMapFn(value) {
return value;
}
/**
* @template T, U
* @param {?} source
* @param {?=} mapFn
* @return {?}
*/
function mapInputsToState(source, mapFn) {
if (mapFn === void 0) { mapFn = defaultMapFn; }
return ngOnChanges(source).pipe(mapTo(Object.create(source)), map(mapFn));
}
export { mapInputsToState, ngAfterContentChecked, ngAfterContentInit, ngAfterViewChecked, ngAfterViewInit, ngDoCheck, ngOnChanges, ngOnDestroy, ngOnInit, select, createLifecycleHook as ɵa };
//# sourceMappingURL=zodiac-ui-ng-observable-operators.js.map