UNPKG

@design.estate/dees-element

Version:

A library for creating custom elements extending the lit element class with additional functionalities.

35 lines 2.3 kB
import { noChange } from 'lit'; import { AsyncDirective, directive } from 'lit/async-directive.js'; import { rxjs } from '@push.rocks/smartrx'; /** * Subscribes to an observable */ class SubscribeDirective extends AsyncDirective { constructor() { super(...arguments); this.sub = null; } render(observable) { if (this.observable !== observable) { this.sub?.unsubscribe(); this.observable = observable; if (this.isConnected) { this.subscribe(observable); } } return noChange; } subscribe(observable) { this.sub = observable.subscribe((v) => { this.setValue(v); }); } disconnected() { this.sub?.unsubscribe(); } reconnected() { this.subscribe(this.observable); } } export const subscribe = directive(SubscribeDirective); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5zdWJzY3JpYmVkaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9kaXJlY3RpdmVzL2NsYXNzZXMuc3Vic2NyaWJlZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFDL0IsT0FBTyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFM0M7O0dBRUc7QUFDSCxNQUFNLGtCQUFtQixTQUFRLGNBQWM7SUFBL0M7O1FBRUUsUUFBRyxHQUE2QixJQUFJLENBQUM7SUE0QnZDLENBQUM7SUExQkMsTUFBTSxDQUFDLFVBQW9DO1FBQ3pDLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsR0FBRyxFQUFFLFdBQVcsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1lBRTdCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUNyQixJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzdCLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVELFNBQVMsQ0FBQyxVQUFvQztRQUM1QyxJQUFJLENBQUMsR0FBRyxHQUFHLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFVLEVBQUUsRUFBRTtZQUM3QyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsR0FBRyxFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVyxDQUFDLENBQUM7SUFDbkMsQ0FBQztDQUNGO0FBRUQsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDIn0=