0.6.21 • Published 6 years ago

@acaprojects/a2-composer v0.6.21

Weekly downloads
-
License
MIT
Repository
github
Last release
6 years ago

Angular 2 - Composer Library

Note:: You can create your own components that are customised for your application. Composer does all the heavy lifting allowing maximum flexibility for app integration.

Directives

Binding

The binding attribute can be attached to any element to manage the data for a device property.

<div binding [(value)]="value" [sys]="'sys-B0'" [mod]="module" [index]="2" [bind]="'power'" exec="switch" [params]="[value, value1, value2]"></div>

NameBindingDirectionValid TypesDescription
valueTwo-wayRead & WriteStringValue of the bound. Updates when servers value is changed.
sysOne-wayWrite-onlyStringIdentifier of the system to connect
modOne-wayWrite-onlyStringIdentifier of the module in the system to use e.g. Display
indexOne-wayWrite-onlyNumberIndex of the module in the system. Default: 1
bindOne-wayWrite-onlyStringName of the variable in module to bind
execOne-wayWrite-onlyStringName of the function to execute on the server when the binding value changes. If undefined no function call will occur. If defined as empty function name will be bind value
paramsOne-wayWrite-onlyAny[]Array parameters to pass into the function on the server. Defaults to value

Debug

The debug attribute can be attached to any element to get logging information for the selected device.

<div debug [(output)]="value" [sys]="'sys-B0'" [mod]="module" [index]="2" enabled="true"></div>

NameBindingDirectionValid TypesDescription
outputTwo-wayRead & WriteStringArray of Debugging messsages on set module
sysOne-wayWrite-onlyStringIdentifier of the system to connect
modOne-wayWrite-onlyStringIdentifier of the module in the system to use e.g. Display
indexOne-wayWrite-onlyNumberIndex of the module in the system. Default: 1
enableOne-wayWrite-onlyStringEnables debugging. Output will not update if false

Services

System Service

The systems service performs all the interactions on bindings.

Authentication details are setup through this service.

Resources Service

The resources service is used to make accessing Control API simple.

Usage in Web Workers

Running Angular 2 in web worker limits the access to certain global scope variables. As the auth needs local and session storage to operate correctly you will need to register a Message Broker in you app so that the auth can operate.

An example of how to register this message broker is given below.

import {WORKER_UI_LOCATION_PROVIDERS, bootstrapWorkerUi} from '@angular/platform-webworker';
import { DataStoreBroker } from '@aca-1/a2-composer';

bootstrapWorkerUi('webworker.bundle.js', WORKER_UI_LOCATION_PROVIDERS).then((ref) => {
	let broker = new DataStoreBroker(ref);
});

You also need to add the DataStoreWorkerService to root module so that the worker communcates with the broker.

import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http';
import { RouterModule } from '@angular/router';
import { WorkerAppModule, WORKER_APP_LOCATION_PROVIDERS } from '@angular/platform-webworker';
import { ACA_COMPOSER_MODULE, DataStoreService, DataStoreWorkerService } from '@acaprojects/a2-composer';

@NgModule({
  bootstrap: [ AppComponent ],
  declarations: [
  	...
  ],
  imports: [
    WorkerAppModule,
    FormsModule,
    HttpModule,
    RouterModule.forRoot(ROUTES, { useHash: true }),
    ACA_COMPOSER_MODULE
  ],
  providers: [
    ...
    WORKER_APP_LOCATION_PROVIDERS,
    { provide: DataStoreService, useClass: DataStoreWorkerService }
  ]
})
export class AppModule {

}

License

MIT © Alex Sorafumo