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