UNPKG

@bespunky/angular-zen

Version:

The Angular tools you always wished were there.

36 lines 4.59 kB
import { Directive } from '@angular/core'; import { ObserveBaseDirective } from './observe-base.directive'; import * as i0 from "@angular/core"; /** * The base class for `*observe` directives combining observables using a map of observable values (i.e. { x: x$, y: y$ }). * * Emitted values will be available as the implicit context values but will also be spread into the context by key. * Meaning, this would work: * ```html * <div *observeXXX="{ x: x$, y: y$ } as result">{{result.x}}</div> * ``` * * And this also: * ``` * <div *observeXXX="{ x: x$, y: y$ }; let x = x">{{x}}</div> * ``` * * @export * @abstract * @class ObserveMapDirective * @extends {ObserveBaseDirective<TInput, EmittedMapOf<TInput>, TContext>} * @template TInput The type of observable map. * @template TContext The the of context the directive will provide to the view. */ export class ObserveMapDirective extends ObserveBaseDirective { createViewContext(data) { // Spread the values emitted from the observable to allow `let` microsyntax and directly accessing them return { ...super.createViewContext(data), ...data.value }; } } ObserveMapDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ObserveMapDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); ObserveMapDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: ObserveMapDirective, usesInheritance: true, ngImport: i0 }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ObserveMapDirective, decorators: [{ type: Directive }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2ZS1tYXAtYmFzZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItemVuL2NvcmUvc3JjL3J4anMvb2JzZXJ2ZS9hYnN0cmFjdGlvbi9vYnNlcnZlLW1hcC1iYXNlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFHLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBRSxvQkFBb0IsRUFBNEIsTUFBTSwwQkFBMEIsQ0FBQzs7QUFHMUY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHO0FBRUgsTUFBTSxPQUFnQixtQkFDUixTQUFRLG9CQUE0RDtJQUUzRCxpQkFBaUIsQ0FBQyxJQUF5RjtRQUUxSCx1R0FBdUc7UUFDdkcsT0FBTyxFQUFFLEdBQUcsS0FBSyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2hFLENBQUM7O2lIQVBpQixtQkFBbUI7cUdBQW5CLG1CQUFtQjs0RkFBbkIsbUJBQW1CO2tCQUR4QyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlICB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBPYnNlcnZlQmFzZURpcmVjdGl2ZSAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZnJvbSAnLi9vYnNlcnZlLWJhc2UuZGlyZWN0aXZlJztcbmltcG9ydCB7IE9ic2VydmFibGVNYXAsIEVtaXR0ZWRNYXBPZiwgT2JzZXJ2ZU1hcENvbnRleHQgfSBmcm9tICcuL3R5cGVzL21hcHMnO1xuXG4vKipcbiAqIFRoZSBiYXNlIGNsYXNzIGZvciBgKm9ic2VydmVgIGRpcmVjdGl2ZXMgY29tYmluaW5nIG9ic2VydmFibGVzIHVzaW5nIGEgbWFwIG9mIG9ic2VydmFibGUgdmFsdWVzIChpLmUuIHsgeDogeCQsIHk6IHkkIH0pLlxuICpcbiAqIEVtaXR0ZWQgdmFsdWVzIHdpbGwgYmUgYXZhaWxhYmxlIGFzIHRoZSBpbXBsaWNpdCBjb250ZXh0IHZhbHVlcyBidXQgd2lsbCBhbHNvIGJlIHNwcmVhZCBpbnRvIHRoZSBjb250ZXh0IGJ5IGtleS5cbiAqIE1lYW5pbmcsIHRoaXMgd291bGQgd29yazpcbiAqIGBgYGh0bWxcbiAqIDxkaXYgKm9ic2VydmVYWFg9XCJ7IHg6IHgkLCB5OiB5JCB9IGFzIHJlc3VsdFwiPnt7cmVzdWx0Lnh9fTwvZGl2PlxuICogYGBgXG4gKiBcbiAqIEFuZCB0aGlzIGFsc286XG4gKiBgYGBcbiAqIDxkaXYgKm9ic2VydmVYWFg9XCJ7IHg6IHgkLCB5OiB5JCB9OyBsZXQgeCA9IHhcIj57e3h9fTwvZGl2PlxuICogYGBgXG4gKiBcbiAqIEBleHBvcnRcbiAqIEBhYnN0cmFjdFxuICogQGNsYXNzIE9ic2VydmVNYXBEaXJlY3RpdmVcbiAqIEBleHRlbmRzIHtPYnNlcnZlQmFzZURpcmVjdGl2ZTxUSW5wdXQsIEVtaXR0ZWRNYXBPZjxUSW5wdXQ+LCBUQ29udGV4dD59XG4gKiBAdGVtcGxhdGUgVElucHV0IFRoZSB0eXBlIG9mIG9ic2VydmFibGUgbWFwLlxuICogQHRlbXBsYXRlIFRDb250ZXh0IFRoZSB0aGUgb2YgY29udGV4dCB0aGUgZGlyZWN0aXZlIHdpbGwgcHJvdmlkZSB0byB0aGUgdmlldy5cbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgT2JzZXJ2ZU1hcERpcmVjdGl2ZTxUSW5wdXQgZXh0ZW5kcyBPYnNlcnZhYmxlTWFwLCBUQ29udGV4dCBleHRlbmRzIE9ic2VydmVNYXBDb250ZXh0PFRJbnB1dD4+XG4gICAgICAgICAgICAgIGV4dGVuZHMgT2JzZXJ2ZUJhc2VEaXJlY3RpdmU8VElucHV0LCBFbWl0dGVkTWFwT2Y8VElucHV0PiwgVENvbnRleHQ+XG57XG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGNyZWF0ZVZpZXdDb250ZXh0KGRhdGE6IHsgdmFsdWU/OiBFbWl0dGVkTWFwT2Y8VElucHV0PiB8IG51bGwgLCBzb3VyY2U/OiBPYnNlcnZhYmxlPEVtaXR0ZWRNYXBPZjxUSW5wdXQ+PiB9KTogVENvbnRleHRcbiAgICB7XG4gICAgICAgIC8vIFNwcmVhZCB0aGUgdmFsdWVzIGVtaXR0ZWQgZnJvbSB0aGUgb2JzZXJ2YWJsZSB0byBhbGxvdyBgbGV0YCBtaWNyb3N5bnRheCBhbmQgZGlyZWN0bHkgYWNjZXNzaW5nIHRoZW1cbiAgICAgICAgcmV0dXJuIHsgLi4uc3VwZXIuY3JlYXRlVmlld0NvbnRleHQoZGF0YSksICAuLi5kYXRhLnZhbHVlIH07XG4gICAgfVxufVxuIl19