UNPKG

@iotize/ionic

Version:

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

1 lines 11.4 kB
{"version":3,"file":"iotize-ionic-data-stream.mjs","sources":["../../../../projects/iotize-ionic/data-stream/src/lib/default-dashboard-event-stream.service.ts","../../../../projects/iotize-ionic/data-stream/src/lib/injections.ts","../../../../projects/iotize-ionic/data-stream/src/lib/data-stream-id-to-value-stream.pipe.ts","../../../../projects/iotize-ionic/data-stream/src/lib/data-stream.module.ts","../../../../projects/iotize-ionic/data-stream/src/lib/default-data-source-provider.service.ts","../../../../projects/iotize-ionic/data-stream/src/lib/lwm2m-data-stream.ts","../../../../projects/iotize-ionic/data-stream/src/iotize-ionic-data-stream.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport {\n DashboardComponentEvent,\n DashboardEventStreamInterface,\n} from './api/dashboard-event-stream-interface';\n\n@Injectable()\nexport class DefaultDashboardEventStreamService\n implements DashboardEventStreamInterface<any>\n{\n private _events = new Subject<DashboardComponentEvent<any>>();\n\n events: Observable<DashboardComponentEvent<any>> =\n this._events.asObservable();\n\n // private _componentRefs: [IComponent, string][] = [];\n\n constructor() {}\n\n emit<T>(data: DashboardComponentEvent<T>): void {\n this._events.next(data);\n }\n}\n","export const DATA_SOURCE_PROVIDER = 'DATA_SOURCE_PROVIDER';\n\nexport const DASHBOARD_EVENT_STREAM_PROVIDER =\n 'DASHBOARD_EVENT_STREAM_PROVIDER';\n","import { Inject, NgZone, Pipe, PipeTransform } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { DataSourceProviderInterface } from './api/data-source-provider-interface';\nimport { StreamIdType } from './api/definitions';\nimport { DATA_SOURCE_PROVIDER } from './injections';\nimport { runInZone } from '@iotize/ionic';\n\n@Pipe({\n name: 'dashboardValue',\n})\nexport class DataStreamIdToValueStreamPipe implements PipeTransform {\n constructor(\n @Inject(DATA_SOURCE_PROVIDER)\n private dataSourceProvider: DataSourceProviderInterface,\n private ngZone: NgZone\n ) {}\n\n transform(streamId: StreamIdType): Observable<any> {\n return this.dataSourceProvider\n .getStream(streamId)\n .pipe(runInZone(this.ngZone));\n }\n}\n","import { ModuleWithProviders, NgModule, Type } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DataSourceProviderInterface } from './api/data-source-provider-interface';\nimport { DashboardEventStreamInterface } from './api/dashboard-event-stream-interface';\nimport {\n DATA_SOURCE_PROVIDER,\n DASHBOARD_EVENT_STREAM_PROVIDER,\n} from './injections';\nimport { DataStreamIdToValueStreamPipe } from './data-stream-id-to-value-stream.pipe';\n\n@NgModule({\n declarations: [DataStreamIdToValueStreamPipe],\n exports: [DataStreamIdToValueStreamPipe],\n imports: [CommonModule],\n})\nexport class DataStreamModule {\n static forRoot(settings: {\n dataSourceProvider: Type<DataSourceProviderInterface>;\n dashboardEventStreamProvider: Type<DashboardEventStreamInterface<any>>;\n }): ModuleWithProviders<DataStreamModule> {\n return {\n ngModule: DataStreamModule,\n providers: DataStreamModule.createProviders(settings),\n };\n }\n\n static createProviders(settings: {\n dataSourceProvider: Type<DataSourceProviderInterface>;\n dashboardEventStreamProvider: Type<DashboardEventStreamInterface<any>>;\n }) {\n return [\n {\n provide: DATA_SOURCE_PROVIDER,\n useExisting: settings.dataSourceProvider,\n },\n {\n provide: DASHBOARD_EVENT_STREAM_PROVIDER,\n useExisting: settings.dashboardEventStreamProvider,\n },\n ];\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable, ReplaySubject, Subject } from 'rxjs';\nimport {\n DataSourceProviderInterface,\n EditableDataStreamInterface,\n} from './api/data-source-provider-interface';\n\n@Injectable()\nexport class DefaultDataSourceProvider implements DataSourceProviderInterface {\n private _streamsChange = new BehaviorSubject<\n Record<string, Subject<unknown>>\n >({});\n\n constructor() {}\n\n getAvailableStreamIds(): string[] {\n return Object.keys(this._streamsChange.value);\n }\n\n /**\n * @deprecated\n * @param streamId\n * @returns\n */\n getEditableStream(\n streamId: string\n ): Observable<EditableDataStreamInterface<unknown>> {\n throw new Error('Method not implemented.');\n }\n\n getStream<T = unknown>(streamId: string): Observable<T> {\n return this._getOrCreateStream<T>(streamId).asObservable();\n }\n\n clearAll() {\n const streams = this._streamsChange.value;\n for (const [streamId, stream] of Object.entries(streams)) {\n stream.complete();\n delete streams[streamId];\n }\n this._streamsChange.next(streams);\n }\n\n private _getOrCreateStream<T>(streamId: string): Subject<T> {\n const existingStream = this._streamsChange.value[streamId];\n if (!existingStream) {\n return this._createStream<T>(streamId);\n } else {\n return existingStream as Subject<T>;\n }\n }\n\n private _createStream<T>(streamId: string, value?: T): Subject<T> {\n const streams = this._streamsChange.value;\n const newStream =\n arguments.length > 1 && value !== undefined\n ? new BehaviorSubject<T>(value)\n : new ReplaySubject<T>(1);\n streams[streamId] = newStream as Subject<unknown>;\n this._streamsChange.next(streams);\n return newStream;\n }\n\n notifyValue<T>(streamId: string, value: T) {\n this._getOrCreateStream(streamId).next(value);\n }\n}\n","import { ServiceCallType, Tap } from '@iotize/tap';\nimport { EditableDataStreamInterface } from './api/data-source-provider-interface';\nimport { Subject } from 'rxjs';\nimport { shareReplay } from 'rxjs/operators';\n\ninterface LwM2MEditableDataStreamConfig {\n readCallFactory(): ServiceCallType<Uint8Array>;\n writeCallFactory(data: Uint8Array): ServiceCallType<void>;\n}\n\nexport class LwM2MEditableDataStream\n implements EditableDataStreamInterface<Uint8Array>\n{\n private _values = new Subject<Uint8Array>();\n\n /**\n * Values observable\n */\n values = this._values.asObservable().pipe(shareReplay(1));\n\n constructor(\n private tap: Tap,\n private config: LwM2MEditableDataStreamConfig\n ) {}\n\n /**\n * Read value.\n * It may also trigger a value changed event\n */\n async read(): Promise<Uint8Array> {\n const result = await this.tap.lwm2m.execute(this.config.readCallFactory());\n const body = result.body();\n this._values.next(body);\n return body;\n }\n\n /**\n * Write given value\n * @param value\n */\n async write(value: Uint8Array): Promise<any> {\n const result = await this.tap.lwm2m.execute(\n this.config.writeCallFactory(value)\n );\n result.successful();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}