UNPKG

@iotize/ionic

Version:

Iotize specific building blocks on top of @ionic/angular.

57 lines 7.17 kB
import { Injectable } from '@angular/core'; import { BehaviorSubject, ReplaySubject } from 'rxjs'; import * as i0 from "@angular/core"; export class DefaultDataSourceProvider { constructor() { this._streamsChange = new BehaviorSubject({}); } getAvailableStreamIds() { return Object.keys(this._streamsChange.value); } /** * @deprecated * @param streamId * @returns */ getEditableStream(streamId) { throw new Error('Method not implemented.'); } getStream(streamId) { return this._getOrCreateStream(streamId).asObservable(); } clearAll() { const streams = this._streamsChange.value; for (const [streamId, stream] of Object.entries(streams)) { stream.complete(); delete streams[streamId]; } this._streamsChange.next(streams); } _getOrCreateStream(streamId) { const existingStream = this._streamsChange.value[streamId]; if (!existingStream) { return this._createStream(streamId); } else { return existingStream; } } _createStream(streamId, value) { const streams = this._streamsChange.value; const newStream = arguments.length > 1 && value !== undefined ? new BehaviorSubject(value) : new ReplaySubject(1); streams[streamId] = newStream; this._streamsChange.next(streams); return newStream; } notifyValue(streamId, value) { this._getOrCreateStream(streamId).next(value); } } /** @nocollapse */ DefaultDataSourceProvider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DefaultDataSourceProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); /** @nocollapse */ DefaultDataSourceProvider.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DefaultDataSourceProvider }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DefaultDataSourceProvider, decorators: [{ type: Injectable }], ctorParameters: function () { return []; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1kYXRhLXNvdXJjZS1wcm92aWRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW90aXplLWlvbmljL2RhdGEtc3RyZWFtL3NyYy9saWIvZGVmYXVsdC1kYXRhLXNvdXJjZS1wcm92aWRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBYyxhQUFhLEVBQVcsTUFBTSxNQUFNLENBQUM7O0FBTzNFLE1BQU0sT0FBTyx5QkFBeUI7SUFLcEM7UUFKUSxtQkFBYyxHQUFHLElBQUksZUFBZSxDQUUxQyxFQUFFLENBQUMsQ0FBQztJQUVTLENBQUM7SUFFaEIscUJBQXFCO1FBQ25CLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsaUJBQWlCLENBQ2YsUUFBZ0I7UUFFaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxTQUFTLENBQWMsUUFBZ0I7UUFDckMsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUksUUFBUSxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDN0QsQ0FBQztJQUVELFFBQVE7UUFDTixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQztRQUMxQyxLQUFLLE1BQU0sQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUN4RCxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEIsT0FBTyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDMUI7UUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRU8sa0JBQWtCLENBQUksUUFBZ0I7UUFDNUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUNuQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUksUUFBUSxDQUFDLENBQUM7U0FDeEM7YUFBTTtZQUNMLE9BQU8sY0FBNEIsQ0FBQztTQUNyQztJQUNILENBQUM7SUFFTyxhQUFhLENBQUksUUFBZ0IsRUFBRSxLQUFTO1FBQ2xELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDO1FBQzFDLE1BQU0sU0FBUyxHQUNiLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLEtBQUssS0FBSyxTQUFTO1lBQ3pDLENBQUMsQ0FBQyxJQUFJLGVBQWUsQ0FBSSxLQUFLLENBQUM7WUFDL0IsQ0FBQyxDQUFDLElBQUksYUFBYSxDQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzlCLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxTQUE2QixDQUFDO1FBQ2xELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xDLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxXQUFXLENBQUksUUFBZ0IsRUFBRSxLQUFRO1FBQ3ZDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEQsQ0FBQzs7MElBekRVLHlCQUF5Qjs4SUFBekIseUJBQXlCOzRGQUF6Qix5QkFBeUI7a0JBRHJDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIERhdGFTb3VyY2VQcm92aWRlckludGVyZmFjZSxcbiAgRWRpdGFibGVEYXRhU3RyZWFtSW50ZXJmYWNlLFxufSBmcm9tICcuL2FwaS9kYXRhLXNvdXJjZS1wcm92aWRlci1pbnRlcmZhY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRGVmYXVsdERhdGFTb3VyY2VQcm92aWRlciBpbXBsZW1lbnRzIERhdGFTb3VyY2VQcm92aWRlckludGVyZmFjZSB7XG4gIHByaXZhdGUgX3N0cmVhbXNDaGFuZ2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIFJlY29yZDxzdHJpbmcsIFN1YmplY3Q8dW5rbm93bj4+XG4gID4oe30pO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBnZXRBdmFpbGFibGVTdHJlYW1JZHMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLl9zdHJlYW1zQ2hhbmdlLnZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZFxuICAgKiBAcGFyYW0gc3RyZWFtSWRcbiAgICogQHJldHVybnNcbiAgICovXG4gIGdldEVkaXRhYmxlU3RyZWFtKFxuICAgIHN0cmVhbUlkOiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxFZGl0YWJsZURhdGFTdHJlYW1JbnRlcmZhY2U8dW5rbm93bj4+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICBnZXRTdHJlYW08VCA9IHVua25vd24+KHN0cmVhbUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5fZ2V0T3JDcmVhdGVTdHJlYW08VD4oc3RyZWFtSWQpLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgY2xlYXJBbGwoKSB7XG4gICAgY29uc3Qgc3RyZWFtcyA9IHRoaXMuX3N0cmVhbXNDaGFuZ2UudmFsdWU7XG4gICAgZm9yIChjb25zdCBbc3RyZWFtSWQsIHN0cmVhbV0gb2YgT2JqZWN0LmVudHJpZXMoc3RyZWFtcykpIHtcbiAgICAgIHN0cmVhbS5jb21wbGV0ZSgpO1xuICAgICAgZGVsZXRlIHN0cmVhbXNbc3RyZWFtSWRdO1xuICAgIH1cbiAgICB0aGlzLl9zdHJlYW1zQ2hhbmdlLm5leHQoc3RyZWFtcyk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRPckNyZWF0ZVN0cmVhbTxUPihzdHJlYW1JZDogc3RyaW5nKTogU3ViamVjdDxUPiB7XG4gICAgY29uc3QgZXhpc3RpbmdTdHJlYW0gPSB0aGlzLl9zdHJlYW1zQ2hhbmdlLnZhbHVlW3N0cmVhbUlkXTtcbiAgICBpZiAoIWV4aXN0aW5nU3RyZWFtKSB7XG4gICAgICByZXR1cm4gdGhpcy5fY3JlYXRlU3RyZWFtPFQ+KHN0cmVhbUlkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGV4aXN0aW5nU3RyZWFtIGFzIFN1YmplY3Q8VD47XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY3JlYXRlU3RyZWFtPFQ+KHN0cmVhbUlkOiBzdHJpbmcsIHZhbHVlPzogVCk6IFN1YmplY3Q8VD4ge1xuICAgIGNvbnN0IHN0cmVhbXMgPSB0aGlzLl9zdHJlYW1zQ2hhbmdlLnZhbHVlO1xuICAgIGNvbnN0IG5ld1N0cmVhbSA9XG4gICAgICBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkXG4gICAgICAgID8gbmV3IEJlaGF2aW9yU3ViamVjdDxUPih2YWx1ZSlcbiAgICAgICAgOiBuZXcgUmVwbGF5U3ViamVjdDxUPigxKTtcbiAgICBzdHJlYW1zW3N0cmVhbUlkXSA9IG5ld1N0cmVhbSBhcyBTdWJqZWN0PHVua25vd24+O1xuICAgIHRoaXMuX3N0cmVhbXNDaGFuZ2UubmV4dChzdHJlYW1zKTtcbiAgICByZXR1cm4gbmV3U3RyZWFtO1xuICB9XG5cbiAgbm90aWZ5VmFsdWU8VD4oc3RyZWFtSWQ6IHN0cmluZywgdmFsdWU6IFQpIHtcbiAgICB0aGlzLl9nZXRPckNyZWF0ZVN0cmVhbShzdHJlYW1JZCkubmV4dCh2YWx1ZSk7XG4gIH1cbn1cbiJdfQ==