@ux-aspects/ux-aspects
Version:
Open source user interface framework for building modern, responsive, mobile big data applications
34 lines • 4.54 kB
JavaScript
import { Directive, inject } from '@angular/core';
import { ConduitZone } from './conduit-zone.service';
import * as i0 from "@angular/core";
export class ConduitComponent {
constructor() {
this._zone = inject(ConduitZone, { optional: true });
}
/** We need to register the conduits with the zone when the component is initialised */
ngOnInit() {
// register the conduit in the zone and ensure it gets the correct instance of the target
this._zone.registerConduits(this);
}
/** We need to unregister the conduits when the component is destroyed */
ngOnDestroy() {
this._zone.unregisterConduits(this);
}
/** Alter the properties of a conduit dynamically */
setConduitProperties(subject, properties) {
this._zone.setConduitProperties(subject, properties);
}
/** Programmatically create a conduit at runtime */
createConduit(subject, properties) {
this._zone.createConduit(subject, properties);
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ConduitComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.12", type: ConduitComponent, selector: "ux-conduit", ngImport: i0 }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ConduitComponent, decorators: [{
type: Directive,
args: [{
selector: 'ux-conduit',
}]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZHVpdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9jb25kdWl0L2NvbmR1aXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUVyRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBTXJELE1BQU0sT0FBTyxnQkFBZ0I7SUFIN0I7UUFJYyxVQUFLLEdBQUcsTUFBTSxDQUFDLFdBQVcsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0tBc0I3RDtJQXBCRyx1RkFBdUY7SUFDdkYsUUFBUTtRQUNKLHlGQUF5RjtRQUN6RixJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCx5RUFBeUU7SUFDekUsV0FBVztRQUNQLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELG9EQUFvRDtJQUNwRCxvQkFBb0IsQ0FBQyxPQUF3QixFQUFFLFVBQXNDO1FBQ2pGLElBQUksQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxtREFBbUQ7SUFDbkQsYUFBYSxDQUFDLE9BQXNCLEVBQUUsVUFBNkI7UUFDL0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ2xELENBQUM7K0dBdEJRLGdCQUFnQjttR0FBaEIsZ0JBQWdCOzs0RkFBaEIsZ0JBQWdCO2tCQUg1QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxZQUFZO2lCQUN6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgaW5qZWN0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29uZHVpdFpvbmUgfSBmcm9tICcuL2NvbmR1aXQtem9uZS5zZXJ2aWNlJztcbmltcG9ydCB7IENvbmR1aXRQcm9wZXJ0aWVzIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2NvbmR1aXQtcHJvcGVydGllcyc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAndXgtY29uZHVpdCcsXG59KVxuZXhwb3J0IGNsYXNzIENvbmR1aXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgcHJvdGVjdGVkIF96b25lID0gaW5qZWN0KENvbmR1aXRab25lLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gICAgLyoqIFdlIG5lZWQgdG8gcmVnaXN0ZXIgdGhlIGNvbmR1aXRzIHdpdGggdGhlIHpvbmUgd2hlbiB0aGUgY29tcG9uZW50IGlzIGluaXRpYWxpc2VkICovXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIC8vIHJlZ2lzdGVyIHRoZSBjb25kdWl0IGluIHRoZSB6b25lIGFuZCBlbnN1cmUgaXQgZ2V0cyB0aGUgY29ycmVjdCBpbnN0YW5jZSBvZiB0aGUgdGFyZ2V0XG4gICAgICAgIHRoaXMuX3pvbmUucmVnaXN0ZXJDb25kdWl0cyh0aGlzKTtcbiAgICB9XG5cbiAgICAvKiogV2UgbmVlZCB0byB1bnJlZ2lzdGVyIHRoZSBjb25kdWl0cyB3aGVuIHRoZSBjb21wb25lbnQgaXMgZGVzdHJveWVkICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3pvbmUudW5yZWdpc3RlckNvbmR1aXRzKHRoaXMpO1xuICAgIH1cblxuICAgIC8qKiBBbHRlciB0aGUgcHJvcGVydGllcyBvZiBhIGNvbmR1aXQgZHluYW1pY2FsbHkgKi9cbiAgICBzZXRDb25kdWl0UHJvcGVydGllcyhzdWJqZWN0OiBTdWJqZWN0PHN0cmluZz4sIHByb3BlcnRpZXM6IFBhcnRpYWw8Q29uZHVpdFByb3BlcnRpZXM+KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3pvbmUuc2V0Q29uZHVpdFByb3BlcnRpZXMoc3ViamVjdCwgcHJvcGVydGllcyk7XG4gICAgfVxuXG4gICAgLyoqIFByb2dyYW1tYXRpY2FsbHkgY3JlYXRlIGEgY29uZHVpdCBhdCBydW50aW1lICovXG4gICAgY3JlYXRlQ29uZHVpdChzdWJqZWN0OiBTdWJqZWN0PHZvaWQ+LCBwcm9wZXJ0aWVzOiBDb25kdWl0UHJvcGVydGllcyk6IHZvaWQge1xuICAgICAgICB0aGlzLl96b25lLmNyZWF0ZUNvbmR1aXQoc3ViamVjdCwgcHJvcGVydGllcyk7XG4gICAgfVxufVxuIl19