UNPKG

ngx-lil-gui

Version:
65 lines 8 kB
import { Directive, EventEmitter, inject, Input, Output, } from '@angular/core'; import { NgxLilGui } from './ngx-lil-gui.component'; import * as i0 from "@angular/core"; class NgxLilGuiController { constructor() { this.valueChange = new EventEmitter(); this.finishChange = new EventEmitter(); this.controllerReady = new EventEmitter(); this.preAdd = new EventEmitter(); this.#parentGui = inject(NgxLilGui, { optional: true, skipSelf: true }); } #controller; #parentGui; ngOnInit() { if (!this.#parentGui) { throw new Error('ngx-lil-gui-controller must be used within a ngx-lil-gui'); } this.preAdd.emit(); this.#controller = this.#parentGui.addController(this.property, this.controllerConfig); this.#parentGui.run(() => { if (this.controller) { this.controller.updateDisplay(); this.controller.onChange((value) => { this.valueChange.emit({ value, controller: this.controller }); }); this.controller.onFinishChange((value) => { this.finishChange.emit({ value, controller: this.controller }); }); this.controllerReady.emit(this.controller); } }); } ngOnDestroy() { if (this.controller) { this.controller.destroy(); } } get controller() { return this.#controller; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: NgxLilGuiController, deps: [], target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.2", type: NgxLilGuiController, isStandalone: true, selector: "ngx-lil-gui-controller", inputs: { property: "property", controllerConfig: "controllerConfig" }, outputs: { valueChange: "valueChange", finishChange: "finishChange", controllerReady: "controllerReady", preAdd: "preAdd" }, ngImport: i0 }); } } export { NgxLilGuiController }; i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: NgxLilGuiController, decorators: [{ type: Directive, args: [{ selector: 'ngx-lil-gui-controller', standalone: true, }] }], propDecorators: { property: [{ type: Input, args: [{ required: true }] }], controllerConfig: [{ type: Input }], valueChange: [{ type: Output }], finishChange: [{ type: Output }], controllerReady: [{ type: Output }], preAdd: [{ type: Output }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWxpbC1ndWktY29udHJvbGxlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZ3gtbGlsLWd1aS9zcmMvbGliL25neC1saWwtZ3VpLWNvbnRyb2xsZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBR0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFPcEQsTUFJYSxtQkFBbUI7SUFKaEM7UUFRWSxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUE2QixDQUFDO1FBQzVELGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQW1DLENBQUM7UUFDbkUsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBYyxDQUFDO1FBQ2pELFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBSTVDLGVBQVUsR0FBRyxNQUFNLENBQUMsU0FBUyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztLQXdDcEU7SUExQ0MsV0FBVyxDQUFjO0lBRXpCLFVBQVUsQ0FBeUQ7SUFFbkUsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQ2IsMERBQTBELENBQzNELENBQUM7U0FDSDtRQUVELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFbkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FDOUMsSUFBSSxDQUFDLFFBQVEsRUFDYixJQUFJLENBQUMsZ0JBQWdCLENBQ3RCLENBQUM7UUFDRixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDdkIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUVoQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQVUsRUFBRSxFQUFFO29CQUN0QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVcsRUFBRSxDQUFDLENBQUM7Z0JBQ2pFLENBQUMsQ0FBQyxDQUFDO2dCQUNILElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUU7b0JBQzVDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVyxFQUFFLENBQUMsQ0FBQztnQkFDbEUsQ0FBQyxDQUFDLENBQUM7Z0JBRUgsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQzVDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQzNCO0lBQ0gsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDOzhHQWxEVSxtQkFBbUI7a0dBQW5CLG1CQUFtQjs7U0FBbkIsbUJBQW1COzJGQUFuQixtQkFBbUI7a0JBSi9CLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzhCQUU0QixRQUFRO3NCQUFsQyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFDaEIsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgRXZlbnRFbWl0dGVyLFxuICBpbmplY3QsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xsZXIgfSBmcm9tICdsaWwtZ3VpJztcbmltcG9ydCB7IE5neExpbEd1aSB9IGZyb20gJy4vbmd4LWxpbC1ndWkuY29tcG9uZW50JztcbmltcG9ydCB0eXBlIHtcbiAgTmd4TGlsR3VpQ29udHJvbGxlckNoYW5nZSxcbiAgTmd4TGlsR3VpQ29udHJvbGxlckNvbmZpZyxcbiAgTmd4TGlsR3VpQ29udHJvbGxlckZpbmlzaENoYW5nZSxcbn0gZnJvbSAnLi90eXBlcyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ25neC1saWwtZ3VpLWNvbnRyb2xsZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3hMaWxHdWlDb250cm9sbGVyIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBwcm9wZXJ0eSE6IHN0cmluZztcbiAgQElucHV0KCkgY29udHJvbGxlckNvbmZpZz86IE5neExpbEd1aUNvbnRyb2xsZXJDb25maWdbc3RyaW5nXTtcblxuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPE5neExpbEd1aUNvbnRyb2xsZXJDaGFuZ2U+KCk7XG4gIEBPdXRwdXQoKSBmaW5pc2hDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPE5neExpbEd1aUNvbnRyb2xsZXJGaW5pc2hDaGFuZ2U+KCk7XG4gIEBPdXRwdXQoKSBjb250cm9sbGVyUmVhZHkgPSBuZXcgRXZlbnRFbWl0dGVyPENvbnRyb2xsZXI+KCk7XG4gIEBPdXRwdXQoKSBwcmVBZGQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgI2NvbnRyb2xsZXI/OiBDb250cm9sbGVyO1xuXG4gICNwYXJlbnRHdWkgPSBpbmplY3QoTmd4TGlsR3VpLCB7IG9wdGlvbmFsOiB0cnVlLCBza2lwU2VsZjogdHJ1ZSB9KTtcblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAoIXRoaXMuI3BhcmVudEd1aSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnbmd4LWxpbC1ndWktY29udHJvbGxlciBtdXN0IGJlIHVzZWQgd2l0aGluIGEgbmd4LWxpbC1ndWknXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMucHJlQWRkLmVtaXQoKTtcblxuICAgIHRoaXMuI2NvbnRyb2xsZXIgPSB0aGlzLiNwYXJlbnRHdWkuYWRkQ29udHJvbGxlcihcbiAgICAgIHRoaXMucHJvcGVydHksXG4gICAgICB0aGlzLmNvbnRyb2xsZXJDb25maWdcbiAgICApO1xuICAgIHRoaXMuI3BhcmVudEd1aS5ydW4oKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuY29udHJvbGxlcikge1xuICAgICAgICB0aGlzLmNvbnRyb2xsZXIudXBkYXRlRGlzcGxheSgpO1xuXG4gICAgICAgIHRoaXMuY29udHJvbGxlci5vbkNoYW5nZSgodmFsdWU6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh7IHZhbHVlLCBjb250cm9sbGVyOiB0aGlzLmNvbnRyb2xsZXIhIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jb250cm9sbGVyLm9uRmluaXNoQ2hhbmdlKCh2YWx1ZTogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5maW5pc2hDaGFuZ2UuZW1pdCh7IHZhbHVlLCBjb250cm9sbGVyOiB0aGlzLmNvbnRyb2xsZXIhIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmNvbnRyb2xsZXJSZWFkeS5lbWl0KHRoaXMuY29udHJvbGxlcik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy5jb250cm9sbGVyKSB7XG4gICAgICB0aGlzLmNvbnRyb2xsZXIuZGVzdHJveSgpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBjb250cm9sbGVyKCk6IENvbnRyb2xsZXIgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiNjb250cm9sbGVyO1xuICB9XG59XG4iXX0=