UNPKG

@iotize/ionic

Version:

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

1 lines 11.7 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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"}