UNPKG

@iotize/ionic

Version:

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

56 lines 7.09 kB
import { Injectable } from '@angular/core'; import { BehaviorSubject, ReplaySubject } from 'rxjs'; import * as i0 from "@angular/core"; export class DefaultDataSourceProvider { _streamsChange = new BehaviorSubject({}); constructor() { } 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 */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DefaultDataSourceProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); /** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DefaultDataSourceProvider }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DefaultDataSourceProvider, decorators: [{ type: Injectable }], ctorParameters: () => [] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1kYXRhLXNvdXJjZS1wcm92aWRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW90aXplLWlvbmljL2RhdGEtc3RyZWFtL3NyYy9saWIvZGVmYXVsdC1kYXRhLXNvdXJjZS1wcm92aWRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBYyxhQUFhLEVBQVcsTUFBTSxNQUFNLENBQUM7O0FBTzNFLE1BQU0sT0FBTyx5QkFBeUI7SUFDNUIsY0FBYyxHQUFHLElBQUksZUFBZSxDQUUxQyxFQUFFLENBQUMsQ0FBQztJQUVOLGdCQUFlLENBQUM7SUFFaEIscUJBQXFCO1FBQ25CLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsaUJBQWlCLENBQ2YsUUFBZ0I7UUFFaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxTQUFTLENBQWMsUUFBZ0I7UUFDckMsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUksUUFBUSxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDN0QsQ0FBQztJQUVELFFBQVE7UUFDTixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQztRQUMxQyxLQUFLLE1BQU0sQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ3pELE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQixPQUFPLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMzQixDQUFDO1FBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVPLGtCQUFrQixDQUFJLFFBQWdCO1FBQzVDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNwQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUksUUFBUSxDQUFDLENBQUM7UUFDekMsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLGNBQTRCLENBQUM7UUFDdEMsQ0FBQztJQUNILENBQUM7SUFFTyxhQUFhLENBQUksUUFBZ0IsRUFBRSxLQUFTO1FBQ2xELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDO1FBQzFDLE1BQU0sU0FBUyxHQUNiLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLEtBQUssS0FBSyxTQUFTO1lBQ3pDLENBQUMsQ0FBQyxJQUFJLGVBQWUsQ0FBSSxLQUFLLENBQUM7WUFDL0IsQ0FBQyxDQUFDLElBQUksYUFBYSxDQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzlCLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxTQUE2QixDQUFDO1FBQ2xELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xDLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxXQUFXLENBQUksUUFBZ0IsRUFBRSxLQUFRO1FBQ3ZDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEQsQ0FBQzsySEF6RFUseUJBQXlCOytIQUF6Qix5QkFBeUI7OzRGQUF6Qix5QkFBeUI7a0JBRHJDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIERhdGFTb3VyY2VQcm92aWRlckludGVyZmFjZSxcbiAgRWRpdGFibGVEYXRhU3RyZWFtSW50ZXJmYWNlLFxufSBmcm9tICcuL2FwaS9kYXRhLXNvdXJjZS1wcm92aWRlci1pbnRlcmZhY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRGVmYXVsdERhdGFTb3VyY2VQcm92aWRlciBpbXBsZW1lbnRzIERhdGFTb3VyY2VQcm92aWRlckludGVyZmFjZSB7XG4gIHByaXZhdGUgX3N0cmVhbXNDaGFuZ2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIFJlY29yZDxzdHJpbmcsIFN1YmplY3Q8dW5rbm93bj4+XG4gID4oe30pO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBnZXRBdmFpbGFibGVTdHJlYW1JZHMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLl9zdHJlYW1zQ2hhbmdlLnZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZFxuICAgKiBAcGFyYW0gc3RyZWFtSWRcbiAgICogQHJldHVybnNcbiAgICovXG4gIGdldEVkaXRhYmxlU3RyZWFtKFxuICAgIHN0cmVhbUlkOiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxFZGl0YWJsZURhdGFTdHJlYW1JbnRlcmZhY2U8dW5rbm93bj4+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICBnZXRTdHJlYW08VCA9IHVua25vd24+KHN0cmVhbUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5fZ2V0T3JDcmVhdGVTdHJlYW08VD4oc3RyZWFtSWQpLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgY2xlYXJBbGwoKSB7XG4gICAgY29uc3Qgc3RyZWFtcyA9IHRoaXMuX3N0cmVhbXNDaGFuZ2UudmFsdWU7XG4gICAgZm9yIChjb25zdCBbc3RyZWFtSWQsIHN0cmVhbV0gb2YgT2JqZWN0LmVudHJpZXMoc3RyZWFtcykpIHtcbiAgICAgIHN0cmVhbS5jb21wbGV0ZSgpO1xuICAgICAgZGVsZXRlIHN0cmVhbXNbc3RyZWFtSWRdO1xuICAgIH1cbiAgICB0aGlzLl9zdHJlYW1zQ2hhbmdlLm5leHQoc3RyZWFtcyk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRPckNyZWF0ZVN0cmVhbTxUPihzdHJlYW1JZDogc3RyaW5nKTogU3ViamVjdDxUPiB7XG4gICAgY29uc3QgZXhpc3RpbmdTdHJlYW0gPSB0aGlzLl9zdHJlYW1zQ2hhbmdlLnZhbHVlW3N0cmVhbUlkXTtcbiAgICBpZiAoIWV4aXN0aW5nU3RyZWFtKSB7XG4gICAgICByZXR1cm4gdGhpcy5fY3JlYXRlU3RyZWFtPFQ+KHN0cmVhbUlkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGV4aXN0aW5nU3RyZWFtIGFzIFN1YmplY3Q8VD47XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY3JlYXRlU3RyZWFtPFQ+KHN0cmVhbUlkOiBzdHJpbmcsIHZhbHVlPzogVCk6IFN1YmplY3Q8VD4ge1xuICAgIGNvbnN0IHN0cmVhbXMgPSB0aGlzLl9zdHJlYW1zQ2hhbmdlLnZhbHVlO1xuICAgIGNvbnN0IG5ld1N0cmVhbSA9XG4gICAgICBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkXG4gICAgICAgID8gbmV3IEJlaGF2aW9yU3ViamVjdDxUPih2YWx1ZSlcbiAgICAgICAgOiBuZXcgUmVwbGF5U3ViamVjdDxUPigxKTtcbiAgICBzdHJlYW1zW3N0cmVhbUlkXSA9IG5ld1N0cmVhbSBhcyBTdWJqZWN0PHVua25vd24+O1xuICAgIHRoaXMuX3N0cmVhbXNDaGFuZ2UubmV4dChzdHJlYW1zKTtcbiAgICByZXR1cm4gbmV3U3RyZWFtO1xuICB9XG5cbiAgbm90aWZ5VmFsdWU8VD4oc3RyZWFtSWQ6IHN0cmluZywgdmFsdWU6IFQpIHtcbiAgICB0aGlzLl9nZXRPckNyZWF0ZVN0cmVhbShzdHJlYW1JZCkubmV4dCh2YWx1ZSk7XG4gIH1cbn1cbiJdfQ==