@iotize/ionic
Version:
Iotize specific building blocks on top of @ionic/angular.
56 lines • 7.09 kB
JavaScript
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==